Implemented the next parity slice.

New runtime/code:

  - src/ask_user_runtime.py
  - src/team_runtime.py

  New real tools in src/agent_tools.py:

  - ask_user_question
  - team_create
  - team_delete
  - team_list
  - team_get
  - send_message
  - team_messages
  - notebook_edit
This commit is contained in:
Abdelrahman Abdallah
2026-04-07 02:51:30 +02:00
parent a54c90b18f
commit a5629295ac
21 changed files with 1886 additions and 24 deletions
+46
View File
@@ -129,6 +129,11 @@ def get_slash_command_specs() -> tuple[SlashCommandSpec, ...]:
description='Show local account runtime status or configured account profiles.',
handler=_handle_account,
),
SlashCommandSpec(
names=('ask',),
description='Show local ask-user runtime status or ask-user history.',
handler=_handle_ask,
),
SlashCommandSpec(
names=('login',),
description='Activate a local account profile or ephemeral identity.',
@@ -189,6 +194,21 @@ def get_slash_command_specs() -> tuple[SlashCommandSpec, ...]:
description='Show the local runtime task list, optionally filtered by status.',
handler=_handle_tasks,
),
SlashCommandSpec(
names=('teams',),
description='List the locally configured collaboration teams.',
handler=_handle_teams,
),
SlashCommandSpec(
names=('team',),
description='Show one local collaboration team by name.',
handler=_handle_team,
),
SlashCommandSpec(
names=('messages',),
description='Show recorded collaboration messages for all teams or one team.',
handler=_handle_messages,
),
SlashCommandSpec(
names=('task-next', 'next-task'),
description='Show the next actionable tasks from the local runtime task list.',
@@ -343,6 +363,15 @@ def _handle_account(agent: 'LocalCodingAgent', args: str, input_text: str) -> Sl
return _local_result(input_text, 'Usage: /account [profiles|profile <name>]')
def _handle_ask(agent: 'LocalCodingAgent', args: str, input_text: str) -> SlashCommandResult:
command = args.strip()
if not command:
return _local_result(input_text, agent.render_ask_user_report())
if command == 'history':
return _local_result(input_text, agent.render_ask_user_history_report())
return _local_result(input_text, 'Usage: /ask [history]')
def _handle_login(agent: 'LocalCodingAgent', args: str, input_text: str) -> SlashCommandResult:
target = args.strip()
if not target:
@@ -429,6 +458,23 @@ def _handle_tasks(agent: 'LocalCodingAgent', args: str, input_text: str) -> Slas
return _local_result(input_text, agent.render_tasks_report(status))
def _handle_teams(agent: 'LocalCodingAgent', args: str, input_text: str) -> SlashCommandResult:
query = args or None
return _local_result(input_text, agent.render_teams_report(query))
def _handle_team(agent: 'LocalCodingAgent', args: str, input_text: str) -> SlashCommandResult:
team_name = args.strip()
if not team_name:
return _local_result(input_text, 'Usage: /team <team-name>')
return _local_result(input_text, agent.render_team_report(team_name))
def _handle_messages(agent: 'LocalCodingAgent', args: str, input_text: str) -> SlashCommandResult:
team_name = args.strip() or None
return _local_result(input_text, agent.render_team_messages_report(team_name))
def _handle_task_next(agent: 'LocalCodingAgent', _args: str, input_text: str) -> SlashCommandResult:
return _local_result(input_text, agent.render_next_tasks_report())