@elizaos/plugin-agent-orchestrator 0.3.18 → 0.3.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/actions/coding-task-handlers.d.ts +2 -8
- package/dist/actions/coding-task-handlers.d.ts.map +1 -1
- package/dist/actions/spawn-agent.d.ts.map +1 -1
- package/dist/actions/start-coding-task.d.ts.map +1 -1
- package/dist/index.js +6 -172
- package/dist/index.js.map +5 -5
- package/package.json +1 -1
package/dist/index.js.map
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"/**\n * MANAGE_ISSUES action - Create, list, update, and close GitHub issues\n *\n * Provides full issue lifecycle management through the CodingWorkspaceService.\n * Supports creating issues, listing issues, adding comments, closing, and reopening.\n *\n * @module actions/manage-issues\n */\n\nimport type {\n Action,\n ActionResult,\n HandlerCallback,\n HandlerOptions,\n IAgentRuntime,\n Memory,\n State,\n} from \"@elizaos/core\";\nimport type { CodingWorkspaceService } from \"../services/workspace-service.js\";\n\nexport const manageIssuesAction: Action = {\n name: \"MANAGE_ISSUES\",\n\n similes: [\n \"CREATE_ISSUE\",\n \"LIST_ISSUES\",\n \"CLOSE_ISSUE\",\n \"COMMENT_ISSUE\",\n \"UPDATE_ISSUE\",\n \"GET_ISSUE\",\n ],\n\n description:\n \"Manage GitHub issues for a repository. \" +\n \"Supports creating issues, listing issues, getting issue details, \" +\n \"adding comments, updating, closing, and reopening issues.\",\n\n examples: [\n [\n {\n name: \"{{user1}}\",\n content: {\n text: \"Create an issue on the testbed repo to add a login page\",\n },\n },\n {\n name: \"{{agentName}}\",\n content: {\n text: \"I'll create that issue for you.\",\n action: \"MANAGE_ISSUES\",\n },\n },\n ],\n [\n {\n name: \"{{user1}}\",\n content: {\n text: \"List the open issues on HaruHunab1320/git-workspace-service-testbed\",\n },\n },\n {\n name: \"{{agentName}}\",\n content: {\n text: \"Let me check the open issues for that repo.\",\n action: \"MANAGE_ISSUES\",\n },\n },\n ],\n [\n {\n name: \"{{user1}}\",\n content: { text: \"Close issue #3 on the testbed repo\" },\n },\n {\n name: \"{{agentName}}\",\n content: {\n text: \"I'll close that issue.\",\n action: \"MANAGE_ISSUES\",\n },\n },\n ],\n ],\n\n validate: async (\n runtime: IAgentRuntime,\n _message: Memory,\n ): Promise<boolean> => {\n const workspaceService = runtime.getService(\n \"CODING_WORKSPACE_SERVICE\",\n ) as unknown as CodingWorkspaceService | undefined;\n return workspaceService != null;\n },\n\n handler: async (\n runtime: IAgentRuntime,\n message: Memory,\n _state?: State,\n options?: HandlerOptions,\n callback?: HandlerCallback,\n ): Promise<ActionResult | undefined> => {\n const workspaceService = runtime.getService(\n \"CODING_WORKSPACE_SERVICE\",\n ) as unknown as CodingWorkspaceService | undefined;\n if (!workspaceService) {\n if (callback) {\n await callback({ text: \"Workspace Service is not available.\" });\n }\n return { success: false, error: \"SERVICE_UNAVAILABLE\" };\n }\n\n // Wire auth prompt so OAuth device flow surfaces through chat\n workspaceService.setAuthPromptCallback((prompt) => {\n if (callback) {\n callback({\n text:\n `I need GitHub access to manage issues. Please authorize me:\\n\\n` +\n `Go to: ${prompt.verificationUri}\\n` +\n `Enter code: **${prompt.userCode}**\\n\\n` +\n `This code expires in ${Math.floor(prompt.expiresIn / 60)} minutes. ` +\n `I'll wait for you to complete authorization...`,\n });\n }\n });\n\n const params = options?.parameters;\n const content = message.content as Record<string, unknown>;\n const text = (content.text as string) ?? \"\";\n\n const operation =\n (params?.operation as string) ??\n (content.operation as string) ??\n inferOperation(text);\n const repo = (params?.repo as string) ?? (content.repo as string);\n\n if (!repo) {\n // Try to extract repo from text\n const urlMatch = text?.match(\n /(?:https?:\\/\\/github\\.com\\/)?([a-zA-Z0-9_.-]+\\/[a-zA-Z0-9_.-]+)/,\n );\n if (!urlMatch) {\n if (callback) {\n await callback({\n text: \"Please specify a repository (e.g., owner/repo or a GitHub URL).\",\n });\n }\n return { success: false, error: \"MISSING_REPO\" };\n }\n return handleOperation(\n workspaceService,\n urlMatch[1],\n operation,\n params ?? content,\n text,\n callback,\n );\n }\n\n return handleOperation(\n workspaceService,\n repo,\n operation,\n params ?? content,\n text,\n callback,\n );\n },\n\n parameters: [\n {\n name: \"operation\",\n description:\n \"The operation to perform: create, list, get, update, comment, close, reopen, add_labels\",\n required: true,\n schema: { type: \"string\" as const },\n },\n {\n name: \"repo\",\n description: \"Repository in owner/repo format or full GitHub URL.\",\n required: true,\n schema: { type: \"string\" as const },\n },\n {\n name: \"title\",\n description: \"Issue title (for create operation).\",\n required: false,\n schema: { type: \"string\" as const },\n },\n {\n name: \"body\",\n description: \"Issue body/description (for create or comment operations).\",\n required: false,\n schema: { type: \"string\" as const },\n },\n {\n name: \"issueNumber\",\n description:\n \"Issue number (for get, update, comment, close, reopen operations).\",\n required: false,\n schema: { type: \"number\" as const },\n },\n {\n name: \"labels\",\n description: \"Labels to add (comma-separated string or array).\",\n required: false,\n schema: { type: \"string\" as const },\n },\n {\n name: \"state\",\n description:\n \"Filter by state: open, closed, or all (for list operation).\",\n required: false,\n schema: { type: \"string\" as const },\n },\n ],\n};\n\nasync function handleOperation(\n service: CodingWorkspaceService,\n repo: string,\n operation: string,\n params: Record<string, unknown>,\n originalText: string,\n callback?: HandlerCallback,\n): Promise<ActionResult | undefined> {\n try {\n switch (operation.toLowerCase()) {\n case \"create\": {\n const title = params.title as string;\n const body = params.body as string | undefined;\n\n // Support batch create: if no explicit title but text contains numbered items, create multiple\n if (!title) {\n const items = extractBulkItems(\n (params.text as string) ?? originalText,\n );\n if (items.length > 0) {\n const labels = parseLabels(params.labels);\n const created = [];\n for (const item of items) {\n const issue = await service.createIssue(repo, {\n title: item.title,\n body: item.body ?? \"\",\n labels: labels.length > 0 ? labels : undefined,\n });\n created.push(issue);\n }\n if (callback) {\n const summary = created\n .map((i) => `#${i.number}: ${i.title}\\n ${i.url}`)\n .join(\"\\n\");\n await callback({\n text: `Created ${created.length} issues:\\n${summary}`,\n });\n }\n return { success: true, data: { issues: created } };\n }\n\n if (callback)\n await callback({ text: \"Issue title is required for create.\" });\n return { success: false, error: \"MISSING_TITLE\" };\n }\n\n const labels = parseLabels(params.labels);\n const issue = await service.createIssue(repo, {\n title,\n body: body ?? \"\",\n labels: labels.length > 0 ? labels : undefined,\n });\n if (callback) {\n await callback({\n text: `Created issue #${issue.number}: ${issue.title}\\n${issue.url}`,\n });\n }\n return { success: true, data: { issue } };\n }\n\n case \"list\": {\n const stateFilter = (params.state as string) ?? \"open\";\n const labels = parseLabels(params.labels);\n const issues = await service.listIssues(repo, {\n state: stateFilter as \"open\" | \"closed\" | \"all\",\n labels: labels.length > 0 ? labels : undefined,\n });\n if (callback) {\n if (issues.length === 0) {\n await callback({\n text: `No ${stateFilter} issues found in ${repo}.`,\n });\n } else {\n const summary = issues\n .map(\n (i) =>\n `#${i.number} [${i.state}] ${i.title}${i.labels.length > 0 ? ` (${i.labels.join(\", \")})` : \"\"}`,\n )\n .join(\"\\n\");\n await callback({ text: `Issues in ${repo}:\\n${summary}` });\n }\n }\n return { success: true, data: { issues } };\n }\n\n case \"get\": {\n const issueNumber = Number(params.issueNumber);\n if (!issueNumber) {\n if (callback) await callback({ text: \"Issue number is required.\" });\n return { success: false, error: \"MISSING_ISSUE_NUMBER\" };\n }\n const issue = await service.getIssue(repo, issueNumber);\n if (callback) {\n await callback({\n text: `Issue #${issue.number}: ${issue.title} [${issue.state}]\\n\\n${issue.body}\\n\\nLabels: ${issue.labels.join(\", \") || \"none\"}\\n${issue.url}`,\n });\n }\n return { success: true, data: { issue } };\n }\n\n case \"update\": {\n const issueNumber = Number(params.issueNumber);\n if (!issueNumber) {\n if (callback) await callback({ text: \"Issue number is required.\" });\n return { success: false, error: \"MISSING_ISSUE_NUMBER\" };\n }\n const labels = parseLabels(params.labels);\n const issue = await service.updateIssue(repo, issueNumber, {\n title: params.title as string | undefined,\n body: params.body as string | undefined,\n labels: labels.length > 0 ? labels : undefined,\n });\n if (callback) {\n await callback({\n text: `Updated issue #${issue.number}: ${issue.title}`,\n });\n }\n return { success: true, data: { issue } };\n }\n\n case \"comment\": {\n const issueNumber = Number(params.issueNumber);\n const body = params.body as string;\n if (!issueNumber || !body) {\n if (callback)\n await callback({\n text: \"Issue number and comment body are required.\",\n });\n return { success: false, error: \"MISSING_PARAMS\" };\n }\n const comment = await service.addComment(repo, issueNumber, body);\n if (callback) {\n await callback({\n text: `Added comment to issue #${issueNumber}: ${comment.url}`,\n });\n }\n return { success: true, data: { comment } };\n }\n\n case \"close\": {\n const issueNumber = Number(params.issueNumber);\n if (!issueNumber) {\n if (callback) await callback({ text: \"Issue number is required.\" });\n return { success: false, error: \"MISSING_ISSUE_NUMBER\" };\n }\n const issue = await service.closeIssue(repo, issueNumber);\n if (callback) {\n await callback({\n text: `Closed issue #${issue.number}: ${issue.title}`,\n });\n }\n return { success: true, data: { issue } };\n }\n\n case \"reopen\": {\n const issueNumber = Number(params.issueNumber);\n if (!issueNumber) {\n if (callback) await callback({ text: \"Issue number is required.\" });\n return { success: false, error: \"MISSING_ISSUE_NUMBER\" };\n }\n const issue = await service.reopenIssue(repo, issueNumber);\n if (callback) {\n await callback({\n text: `Reopened issue #${issue.number}: ${issue.title}`,\n });\n }\n return { success: true, data: { issue } };\n }\n\n case \"add_labels\": {\n const issueNumber = Number(params.issueNumber);\n const labels = parseLabels(params.labels);\n if (!issueNumber || labels.length === 0) {\n if (callback)\n await callback({ text: \"Issue number and labels are required.\" });\n return { success: false, error: \"MISSING_PARAMS\" };\n }\n await service.addLabels(repo, issueNumber, labels);\n if (callback) {\n await callback({\n text: `Added labels [${labels.join(\", \")}] to issue #${issueNumber}`,\n });\n }\n return { success: true };\n }\n\n default:\n if (callback) {\n await callback({\n text: `Unknown operation: ${operation}. Use: create, list, get, update, comment, close, reopen, add_labels`,\n });\n }\n return { success: false, error: \"UNKNOWN_OPERATION\" };\n }\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n if (callback) {\n await callback({ text: `Issue operation failed: ${errorMessage}` });\n }\n return { success: false, error: errorMessage };\n }\n}\n\n/**\n * Extract multiple issue titles/bodies from text containing numbered or bulleted items.\n * E.g. \"1) Add a login page 2) Fix the bug 3) Add tests\"\n */\nfunction extractBulkItems(\n text: string,\n): Array<{ title: string; body?: string }> {\n if (!text) return [];\n\n // Match numbered items: \"1) ...\", \"1. ...\", \"1: ...\"\n const numberedPattern =\n /(?:^|\\s)(\\d+)[).:-]\\s*(.+?)(?=(?:\\s+\\d+[).:-]\\s)|$)/gs;\n const items: Array<{ title: string; body?: string }> = [];\n\n for (const match of text.matchAll(numberedPattern)) {\n const raw = match[2].trim();\n if (raw.length > 0) {\n items.push({ title: raw });\n }\n }\n\n if (items.length >= 2) return items;\n\n // Fallback: split by common delimiters like \" - \" or newlines with bullets\n const bulletPattern = /(?:^|\\n)\\s*[-*•]\\s+(.+)/g;\n const bulletItems: Array<{ title: string; body?: string }> = [];\n for (const match of text.matchAll(bulletPattern)) {\n const raw = match[1].trim();\n if (raw.length > 0) {\n bulletItems.push({ title: raw });\n }\n }\n\n if (bulletItems.length >= 2) return bulletItems;\n\n return [];\n}\n\n/**\n * Infer the operation from the user's message text when the LLM\n * doesn't explicitly set the operation parameter.\n */\nfunction inferOperation(text: string): string {\n const lower = text.toLowerCase();\n\n // Order matters: check more specific patterns first\n if (/\\b(create|open|file|submit|make|add)\\b.*\\bissue/.test(lower))\n return \"create\";\n if (/\\bissue.*\\b(create|open|file|submit|make)\\b/.test(lower))\n return \"create\";\n if (/\\b(close|resolve)\\b.*\\bissue/.test(lower)) return \"close\";\n if (/\\bissue.*\\b(close|resolve)\\b/.test(lower)) return \"close\";\n if (/\\b(reopen|re-open)\\b.*\\bissue/.test(lower)) return \"reopen\";\n if (/\\b(comment|reply)\\b.*\\bissue/.test(lower)) return \"comment\";\n if (/\\bissue.*\\b(comment|reply)\\b/.test(lower)) return \"comment\";\n if (/\\b(update|edit|modify)\\b.*\\bissue/.test(lower)) return \"update\";\n if (/\\bissue.*\\b(update|edit|modify)\\b/.test(lower)) return \"update\";\n if (/\\b(label|tag)\\b.*\\bissue/.test(lower)) return \"add_labels\";\n if (/\\bget\\b.*\\bissue\\s*#?\\d/.test(lower)) return \"get\";\n if (/\\bissue\\s*#?\\d/.test(lower) && !/\\b(list|show|all)\\b/.test(lower))\n return \"get\";\n if (/\\b(list|show|check|what are)\\b.*\\bissue/.test(lower)) return \"list\";\n\n return \"list\";\n}\n\nfunction parseLabels(input: unknown): string[] {\n if (!input) return [];\n if (Array.isArray(input)) return input.map(String);\n if (typeof input === \"string\")\n return input\n .split(\",\")\n .map((s) => s.trim())\n .filter(Boolean);\n return [];\n}\n",
|
|
13
13
|
"/**\n * PROVISION_WORKSPACE action - Create a git workspace for coding tasks\n *\n * Clones a repository or creates a worktree for isolated development.\n * Useful for setting up a clean environment before spawning a coding agent.\n *\n * @module actions/provision-workspace\n */\n\nimport type {\n Action,\n ActionResult,\n HandlerCallback,\n HandlerOptions,\n IAgentRuntime,\n Memory,\n State,\n} from \"@elizaos/core\";\nimport type {\n CodingWorkspaceService,\n WorkspaceResult,\n} from \"../services/workspace-service.js\";\n\nexport const provisionWorkspaceAction: Action = {\n name: \"PROVISION_WORKSPACE\",\n\n similes: [\n \"CREATE_WORKSPACE\",\n \"CLONE_REPO\",\n \"SETUP_WORKSPACE\",\n \"PREPARE_WORKSPACE\",\n ],\n\n description:\n \"Create a git workspace for coding tasks. \" +\n \"Can clone a repository or create a git worktree for isolated development.\",\n\n examples: [\n [\n {\n name: \"{{user1}}\",\n content: {\n text: \"Clone the repo and create a workspace for the feature\",\n },\n },\n {\n name: \"{{agentName}}\",\n content: {\n text: \"I'll set up a workspace for you.\",\n action: \"PROVISION_WORKSPACE\",\n },\n },\n ],\n [\n {\n name: \"{{user1}}\",\n content: { text: \"Create a worktree for the bug fix\" },\n },\n {\n name: \"{{agentName}}\",\n content: {\n text: \"Creating an isolated worktree for the bug fix.\",\n action: \"PROVISION_WORKSPACE\",\n },\n },\n ],\n ],\n\n validate: async (\n runtime: IAgentRuntime,\n _message: Memory,\n ): Promise<boolean> => {\n const workspaceService = runtime.getService(\n \"CODING_WORKSPACE_SERVICE\",\n ) as unknown as CodingWorkspaceService | undefined;\n return workspaceService != null;\n },\n\n handler: async (\n runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: HandlerOptions,\n callback?: HandlerCallback,\n ): Promise<ActionResult | undefined> => {\n const workspaceService = runtime.getService(\n \"CODING_WORKSPACE_SERVICE\",\n ) as unknown as CodingWorkspaceService | undefined;\n if (!workspaceService) {\n if (callback) {\n await callback({\n text: \"Workspace Service is not available.\",\n });\n }\n return { success: false, error: \"SERVICE_UNAVAILABLE\" };\n }\n\n const content = message.content as {\n text?: string;\n repo?: string;\n baseBranch?: string;\n useWorktree?: boolean;\n parentWorkspaceId?: string;\n };\n\n // Try to extract repo URL from text if not provided explicitly\n let repo = content.repo;\n if (!repo && content.text) {\n // Match GitHub/GitLab/Bitbucket URLs\n const urlMatch = content.text.match(\n /https?:\\/\\/(?:github\\.com|gitlab\\.com|bitbucket\\.org)\\/[\\w.-]+\\/[\\w.-]+(?:\\.git)?/i,\n );\n if (urlMatch) {\n repo = urlMatch[0];\n }\n }\n\n if (!repo && !content.useWorktree) {\n if (callback) {\n await callback({\n text: \"Please specify a repository URL or use worktree mode with a parent workspace.\",\n });\n }\n return { success: false, error: \"MISSING_REPO\" };\n }\n\n // Validate repo URL against allowed domains\n if (repo) {\n const ALLOWED_DOMAINS =\n /^https?:\\/\\/(github\\.com|gitlab\\.com|bitbucket\\.org)\\//i;\n if (!ALLOWED_DOMAINS.test(repo)) {\n if (callback) {\n await callback({\n text: \"Repository URL must be from github.com, gitlab.com, or bitbucket.org.\",\n });\n }\n return { success: false, error: \"INVALID_REPO_DOMAIN\" };\n }\n }\n\n // For worktree mode, need parent\n let parentWorkspaceId = content.parentWorkspaceId;\n if (content.useWorktree && !parentWorkspaceId) {\n // Try to use the current workspace from state\n if (state?.codingWorkspace) {\n parentWorkspaceId = (state.codingWorkspace as { id: string }).id;\n } else {\n if (callback) {\n await callback({\n text: \"Worktree mode requires a parent workspace. Clone a repo first or specify parentWorkspaceId.\",\n });\n }\n return { success: false, error: \"MISSING_PARENT\" };\n }\n }\n\n try {\n const workspace: WorkspaceResult =\n await workspaceService.provisionWorkspace({\n repo: repo ?? \"\",\n baseBranch: content.baseBranch,\n useWorktree: content.useWorktree,\n parentWorkspaceId,\n });\n\n // Store workspace in state\n if (state) {\n state.codingWorkspace = {\n id: workspace.id,\n path: workspace.path,\n branch: workspace.branch,\n isWorktree: workspace.isWorktree,\n };\n }\n\n if (callback) {\n await callback({\n text:\n `Created workspace at ${workspace.path}\\n` +\n `Branch: ${workspace.branch}\\n` +\n `Type: ${workspace.isWorktree ? \"worktree\" : \"clone\"}`,\n });\n }\n\n return {\n success: true,\n text: `Created workspace ${workspace.id}`,\n data: {\n workspaceId: workspace.id,\n path: workspace.path,\n branch: workspace.branch,\n isWorktree: workspace.isWorktree,\n },\n };\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : String(error);\n if (callback) {\n await callback({\n text: `Failed to provision workspace: ${errorMessage}`,\n });\n }\n return { success: false, error: errorMessage };\n }\n },\n\n parameters: [\n {\n name: \"repo\",\n description: \"Git repository URL to clone.\",\n required: false,\n schema: { type: \"string\" as const },\n },\n {\n name: \"baseBranch\",\n description: \"Base branch to create feature branch from (default: main).\",\n required: false,\n schema: { type: \"string\" as const },\n },\n {\n name: \"useWorktree\",\n description: \"Create a git worktree instead of a full clone.\",\n required: false,\n schema: { type: \"boolean\" as const },\n },\n {\n name: \"parentWorkspaceId\",\n description: \"Parent workspace ID for worktree creation.\",\n required: false,\n schema: { type: \"string\" as const },\n },\n ],\n};\n",
|
|
14
14
|
"/**\n * SEND_TO_CODING_AGENT action - Send input to a running coding agent\n *\n * Allows sending text or commands to an active PTY session.\n * Useful for responding to prompts, providing feedback, or giving new instructions.\n *\n * @module actions/send-to-agent\n */\n\nimport type {\n Action,\n ActionResult,\n HandlerCallback,\n HandlerOptions,\n IAgentRuntime,\n Memory,\n State,\n} from \"@elizaos/core\";\nimport type { PTYService } from \"../services/pty-service.js\";\n\nexport const sendToAgentAction: Action = {\n name: \"SEND_TO_CODING_AGENT\",\n\n similes: [\n \"MESSAGE_CODING_AGENT\",\n \"INPUT_TO_AGENT\",\n \"RESPOND_TO_AGENT\",\n \"TELL_CODING_AGENT\",\n ],\n\n description:\n \"Send text input to a running coding agent session. \" +\n \"Use this to respond to agent prompts, provide feedback, or give new instructions.\",\n\n examples: [\n [\n {\n name: \"{{user1}}\",\n content: { text: \"Tell the coding agent to accept the changes\" },\n },\n {\n name: \"{{agentName}}\",\n content: {\n text: \"I'll send the approval to the coding agent.\",\n action: \"SEND_TO_CODING_AGENT\",\n },\n },\n ],\n [\n {\n name: \"{{user1}}\",\n content: { text: \"Say yes to the agent prompt\" },\n },\n {\n name: \"{{agentName}}\",\n content: {\n text: \"Sending confirmation to the agent.\",\n action: \"SEND_TO_CODING_AGENT\",\n },\n },\n ],\n ],\n\n validate: async (\n runtime: IAgentRuntime,\n _message: Memory,\n ): Promise<boolean> => {\n const ptyService = runtime.getService(\"PTY_SERVICE\") as unknown as\n | PTYService\n | undefined;\n if (!ptyService) {\n return false;\n }\n // Fast-fail: listSessions() does a JSON-RPC call to the Node worker which\n // can take 30s to timeout when the worker is busy. Cap at 2s so action\n // validation doesn't block the entire message pipeline.\n try {\n const sessions = await Promise.race([\n ptyService.listSessions(),\n new Promise<never>((_, reject) =>\n setTimeout(() => reject(new Error(\"validate timeout\")), 2000),\n ),\n ]);\n return sessions.length > 0;\n } catch {\n return false;\n }\n },\n\n handler: async (\n runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: HandlerOptions,\n callback?: HandlerCallback,\n ): Promise<ActionResult | undefined> => {\n const ptyService = runtime.getService(\"PTY_SERVICE\") as unknown as\n | PTYService\n | undefined;\n if (!ptyService) {\n if (callback) {\n await callback({\n text: \"PTY Service is not available.\",\n });\n }\n return { success: false, error: \"SERVICE_UNAVAILABLE\" };\n }\n\n const content = message.content as {\n sessionId?: string;\n input?: string;\n keys?: string;\n };\n\n // Get session ID from content or state\n let sessionId = content.sessionId;\n if (!sessionId && state?.codingSession) {\n sessionId = (state.codingSession as { id: string }).id;\n }\n\n if (!sessionId) {\n // Try to find the most recent session\n const sessions = await ptyService.listSessions();\n if (sessions.length === 0) {\n if (callback) {\n await callback({\n text: \"No active coding sessions. Spawn an agent first.\",\n });\n }\n return { success: false, error: \"NO_SESSION\" };\n }\n sessionId = sessions[sessions.length - 1].id;\n }\n\n const session = ptyService.getSession(sessionId);\n if (!session) {\n if (callback) {\n await callback({\n text: `Session ${sessionId} not found.`,\n });\n }\n return { success: false, error: \"SESSION_NOT_FOUND\" };\n }\n\n try {\n if (content.keys) {\n // Send special key sequence\n await ptyService.sendKeysToSession(sessionId, content.keys);\n if (callback) {\n await callback({\n text: `Sent key sequence to coding agent.`,\n });\n }\n return {\n success: true,\n text: \"Sent key sequence\",\n data: { sessionId, keys: content.keys },\n };\n } else if (content.input) {\n // Send text input\n await ptyService.sendToSession(sessionId, content.input);\n if (callback) {\n await callback({\n text: `Sent to coding agent: \"${content.input}\"`,\n });\n }\n return {\n success: true,\n text: \"Sent input to agent\",\n data: { sessionId, input: content.input },\n };\n } else {\n if (callback) {\n await callback({\n text: \"No input provided. Specify 'input' or 'keys' parameter.\",\n });\n }\n return { success: false, error: \"NO_INPUT\" };\n }\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : String(error);\n if (callback) {\n await callback({\n text: `Failed to send to agent: ${errorMessage}`,\n });\n }\n return { success: false, error: errorMessage };\n }\n },\n\n parameters: [\n {\n name: \"sessionId\",\n description:\n \"ID of the coding session to send to. If not specified, uses the current session.\",\n required: false,\n schema: { type: \"string\" as const },\n },\n {\n name: \"input\",\n description: \"Text input to send to the agent.\",\n required: false,\n schema: { type: \"string\" as const },\n },\n {\n name: \"keys\",\n description:\n \"Special key sequence to send (e.g., 'Enter', 'Ctrl-C', 'y').\",\n required: false,\n schema: { type: \"string\" as const },\n },\n ],\n};\n",
|
|
15
|
-
"/**\n * SPAWN_CODING_AGENT action - Spawns a CLI coding agent\n *\n * Creates a new PTY session for a coding agent (Claude Code, Codex, etc.)\n * and returns a session ID for subsequent interactions.\n *\n * @module actions/spawn-agent\n */\n\nimport * as os from \"node:os\";\nimport * as path from \"node:path\";\nimport {\n type Action,\n type ActionResult,\n type HandlerCallback,\n type HandlerOptions,\n type IAgentRuntime,\n logger,\n type Memory,\n type State,\n} from \"@elizaos/core\";\nimport type { AgentCredentials, ApprovalPreset } from \"coding-agent-adapters\";\nimport type { PTYService } from \"../services/pty-service.js\";\nimport { getCoordinator } from \"../services/pty-service.js\";\nimport {\n type CodingAgentType,\n isPiAgentType,\n normalizeAgentType,\n type SessionInfo,\n toPiCommand,\n} from \"../services/pty-types.js\";\nimport type { CodingWorkspaceService } from \"../services/workspace-service.js\";\n\nexport const spawnAgentAction: Action = {\n name: \"SPAWN_CODING_AGENT\",\n\n similes: [\n \"START_CODING_AGENT\",\n \"LAUNCH_CODING_AGENT\",\n \"CREATE_CODING_AGENT\",\n \"SPAWN_CODER\",\n \"RUN_CODING_AGENT\",\n ],\n\n description:\n \"Spawn a CLI coding agent (Claude Code, Codex, Gemini, Aider, Pi) to work on a coding task. \" +\n \"The agent runs in a PTY session and can execute code, run tests, and make changes. \" +\n \"Returns a session ID that can be used to interact with the agent.\",\n\n examples: [\n [\n {\n name: \"{{user1}}\",\n content: { text: \"Spawn Claude Code to fix the bug in auth.ts\" },\n },\n {\n name: \"{{agentName}}\",\n content: {\n text: \"I'll spawn Claude Code to work on that. Let me set up the coding session.\",\n action: \"SPAWN_CODING_AGENT\",\n },\n },\n ],\n [\n {\n name: \"{{user1}}\",\n content: { text: \"Start a coding agent to implement the new feature\" },\n },\n {\n name: \"{{agentName}}\",\n content: {\n text: \"I'll create a coding session for that task.\",\n action: \"SPAWN_CODING_AGENT\",\n },\n },\n ],\n ],\n\n validate: async (\n runtime: IAgentRuntime,\n _message: Memory,\n ): Promise<boolean> => {\n // Check if PTYService is available\n const ptyService = runtime.getService(\"PTY_SERVICE\") as unknown as\n | PTYService\n | undefined;\n if (!ptyService) {\n logger.warn(\"[SPAWN_CODING_AGENT] PTYService not available\");\n return false;\n }\n return true;\n },\n\n handler: async (\n runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n options?: HandlerOptions,\n callback?: HandlerCallback,\n ): Promise<ActionResult | undefined> => {\n const ptyService = runtime.getService(\"PTY_SERVICE\") as unknown as\n | PTYService\n | undefined;\n if (!ptyService) {\n if (callback) {\n await callback({\n text: \"PTY Service is not available. Cannot spawn coding agent.\",\n });\n }\n return { success: false, error: \"SERVICE_UNAVAILABLE\" };\n }\n\n // Extract parameters from options or message content\n const params = options?.parameters;\n const content = message.content as Record<string, unknown>;\n\n const rawAgentType =\n (params?.agentType as string) ??\n (content.agentType as string) ??\n \"claude\";\n const agentType = normalizeAgentType(rawAgentType);\n const task = (params?.task as string) ?? (content.task as string);\n const piRequested = isPiAgentType(rawAgentType);\n const initialTask = piRequested ? toPiCommand(task) : task;\n\n // Resolve workdir: explicit param > state from PROVISION_WORKSPACE > most recent workspace > cwd\n let workdir = (params?.workdir as string) ?? (content.workdir as string);\n if (!workdir && state?.codingWorkspace) {\n workdir = (state.codingWorkspace as { path: string }).path;\n }\n if (!workdir) {\n // Check workspace service for most recently provisioned workspace\n const wsService = runtime.getService(\n \"CODING_WORKSPACE_SERVICE\",\n ) as unknown as CodingWorkspaceService | undefined;\n if (wsService) {\n const workspaces = wsService.listWorkspaces();\n if (workspaces.length > 0) {\n workdir = workspaces[workspaces.length - 1].path;\n }\n }\n }\n if (!workdir) {\n if (callback) {\n await callback({\n text: \"No workspace found. Please provision a workspace first using PROVISION_WORKSPACE or provide a workdir.\",\n });\n }\n return { success: false, error: \"NO_WORKSPACE\" };\n }\n\n // Validate workdir is within allowed directories\n const resolvedWorkdir = path.resolve(workdir);\n const workspaceBaseDir = path.join(os.homedir(), \".milady\", \"workspaces\");\n const allowedPrefixes = [\n path.resolve(workspaceBaseDir),\n path.resolve(process.cwd()),\n ];\n const isAllowed = allowedPrefixes.some(\n (prefix) =>\n resolvedWorkdir.startsWith(prefix + path.sep) ||\n resolvedWorkdir === prefix,\n );\n if (!isAllowed) {\n if (callback) {\n await callback({\n text: \"The specified workdir is outside of allowed directories. Please use a workspace directory.\",\n });\n }\n return { success: false, error: \"WORKDIR_OUTSIDE_ALLOWED\" };\n }\n workdir = resolvedWorkdir;\n\n const memoryContent =\n (params?.memoryContent as string) ?? (content.memoryContent as string);\n const approvalPreset =\n (params?.approvalPreset as string) ?? (content.approvalPreset as string);\n\n // Custom credentials for MCP servers and other integrations\n const customCredentialKeys = runtime.getSetting(\"CUSTOM_CREDENTIAL_KEYS\") as\n | string\n | undefined;\n let customCredentials: Record<string, string> | undefined;\n if (customCredentialKeys) {\n customCredentials = {};\n for (const key of customCredentialKeys.split(\",\").map((k) => k.trim())) {\n const val = runtime.getSetting(key) as string | undefined;\n if (val) customCredentials[key] = val;\n }\n }\n\n // Build credentials from runtime settings\n const credentials: AgentCredentials = {\n anthropicKey: runtime.getSetting(\"ANTHROPIC_API_KEY\") as\n | string\n | undefined,\n openaiKey: runtime.getSetting(\"OPENAI_API_KEY\") as string | undefined,\n googleKey: runtime.getSetting(\"GOOGLE_GENERATIVE_AI_API_KEY\") as\n | string\n | undefined,\n githubToken: runtime.getSetting(\"GITHUB_TOKEN\") as string | undefined,\n };\n\n try {\n // Check if the agent CLI is installed (for non-shell agents)\n if (agentType !== \"shell\" && agentType !== \"pi\") {\n const [preflight] = await ptyService.checkAvailableAgents([\n agentType as Exclude<CodingAgentType, \"shell\" | \"pi\">,\n ]);\n if (preflight && !preflight.installed) {\n if (callback) {\n await callback({\n text:\n `${preflight.adapter} CLI is not installed.\\n` +\n `Install with: ${preflight.installCommand}\\n` +\n `Docs: ${preflight.docsUrl}`,\n });\n }\n return { success: false, error: \"AGENT_NOT_INSTALLED\" };\n }\n }\n\n // Check if coordinator is active — route blocking prompts through it\n const coordinator = getCoordinator(runtime);\n\n // Spawn the PTY session\n const session: SessionInfo = await ptyService.spawnSession({\n name: `coding-${Date.now()}`,\n agentType,\n workdir,\n initialTask,\n memoryContent,\n credentials,\n approvalPreset:\n (approvalPreset as ApprovalPreset | undefined) ??\n ptyService.defaultApprovalPreset,\n customCredentials,\n ...(coordinator ? { skipAdapterAutoResponse: true } : {}),\n metadata: {\n requestedType: rawAgentType,\n messageId: message.id,\n userId: (message as unknown as Record<string, unknown>).userId,\n },\n });\n\n // Register event handler for this session\n ptyService.onSessionEvent((sessionId, event, data) => {\n if (sessionId !== session.id) return;\n\n // Log session events for debugging\n logger.debug(\n `[Session ${sessionId}] ${event}: ${JSON.stringify(data)}`,\n );\n\n // When coordinator is active it owns chat messaging for these events\n if (!coordinator) {\n // Handle blocked state - agent is waiting for input\n if (event === \"blocked\" && callback) {\n callback({\n text: `Coding agent is waiting for input: ${(data as { prompt?: string }).prompt ?? \"unknown prompt\"}`,\n });\n }\n\n // Handle completion\n if (event === \"completed\" && callback) {\n callback({\n text: \"Coding agent completed the task.\",\n });\n }\n\n // Handle errors\n if (event === \"error\" && callback) {\n callback({\n text: `Coding agent encountered an error: ${(data as { message?: string }).message ?? \"unknown error\"}`,\n });\n }\n }\n });\n if (coordinator && task) {\n coordinator.registerTask(session.id, {\n agentType,\n label: `agent-${session.id.slice(-8)}`,\n originalTask: task,\n workdir,\n });\n }\n\n // Store session info in state for subsequent actions\n if (state) {\n state.codingSession = {\n id: session.id,\n agentType: session.agentType,\n workdir: session.workdir,\n status: session.status,\n };\n }\n\n if (callback) {\n await callback({\n text: `Started ${piRequested ? \"pi\" : agentType} coding agent in ${workdir}${task ? ` with task: \"${task}\"` : \"\"}. Session ID: ${session.id}`,\n });\n }\n\n return {\n success: true,\n text: `Started ${piRequested ? \"pi\" : agentType} coding agent`,\n data: {\n sessionId: session.id,\n agentType: piRequested ? \"pi\" : session.agentType,\n workdir: session.workdir,\n status: session.status,\n },\n };\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : String(error);\n logger.error(\"[SPAWN_CODING_AGENT] Failed to spawn agent:\", errorMessage);\n\n if (callback) {\n await callback({\n text: `Failed to spawn coding agent: ${errorMessage}`,\n });\n }\n\n return { success: false, error: errorMessage };\n }\n },\n\n parameters: [\n {\n name: \"agentType\",\n description:\n \"Type of coding agent to spawn. Options: claude (Claude Code), codex (OpenAI Codex), gemini (Google Gemini), aider, pi, shell (generic shell)\",\n required: false,\n schema: { type: \"string\" as const, default: \"claude\" },\n },\n {\n name: \"workdir\",\n description:\n \"Working directory for the agent. Defaults to current directory.\",\n required: false,\n schema: { type: \"string\" as const },\n },\n {\n name: \"task\",\n description: \"Initial task or prompt to send to the agent once spawned.\",\n required: false,\n schema: { type: \"string\" as const },\n },\n {\n name: \"memoryContent\",\n description:\n \"Instructions/context to write to the agent's memory file (e.g. CLAUDE.md) before spawning.\",\n required: false,\n schema: { type: \"string\" as const },\n },\n {\n name: \"approvalPreset\",\n description:\n \"Permission level: readonly (safe audit), standard (reads+web auto, writes prompt), permissive (file ops auto, shell prompts), autonomous (all auto, use with sandbox)\",\n required: false,\n schema: {\n type: \"string\" as const,\n enum: [\"readonly\", \"standard\", \"permissive\", \"autonomous\"],\n },\n },\n ],\n};\n",
|
|
15
|
+
"/**\n * SPAWN_CODING_AGENT action - Spawns a CLI coding agent\n *\n * Creates a new PTY session for a coding agent (Claude Code, Codex, etc.)\n * and returns a session ID for subsequent interactions.\n *\n * @module actions/spawn-agent\n */\n\nimport * as os from \"node:os\";\nimport * as path from \"node:path\";\nimport {\n type Action,\n type ActionResult,\n type HandlerCallback,\n type HandlerOptions,\n type IAgentRuntime,\n logger,\n type Memory,\n type State,\n} from \"@elizaos/core\";\nimport type { AgentCredentials, ApprovalPreset } from \"coding-agent-adapters\";\nimport type { PTYService } from \"../services/pty-service.js\";\nimport { getCoordinator } from \"../services/pty-service.js\";\nimport {\n type CodingAgentType,\n isPiAgentType,\n normalizeAgentType,\n type SessionInfo,\n toPiCommand,\n} from \"../services/pty-types.js\";\nimport type { CodingWorkspaceService } from \"../services/workspace-service.js\";\n\nexport const spawnAgentAction: Action = {\n name: \"SPAWN_CODING_AGENT\",\n\n similes: [\n \"START_CODING_AGENT\",\n \"LAUNCH_CODING_AGENT\",\n \"CREATE_CODING_AGENT\",\n \"SPAWN_CODER\",\n \"RUN_CODING_AGENT\",\n ],\n\n description:\n \"Spawn a CLI coding agent (Claude Code, Codex, Gemini, Aider, Pi) to work on a coding task. \" +\n \"The agent runs in a PTY session and can execute code, run tests, and make changes. \" +\n \"Returns a session ID that can be used to interact with the agent.\",\n\n examples: [\n [\n {\n name: \"{{user1}}\",\n content: { text: \"Spawn Claude Code to fix the bug in auth.ts\" },\n },\n {\n name: \"{{agentName}}\",\n content: {\n text: \"I'll spawn Claude Code to work on that. Let me set up the coding session.\",\n action: \"SPAWN_CODING_AGENT\",\n },\n },\n ],\n [\n {\n name: \"{{user1}}\",\n content: { text: \"Start a coding agent to implement the new feature\" },\n },\n {\n name: \"{{agentName}}\",\n content: {\n text: \"I'll create a coding session for that task.\",\n action: \"SPAWN_CODING_AGENT\",\n },\n },\n ],\n ],\n\n validate: async (\n runtime: IAgentRuntime,\n _message: Memory,\n ): Promise<boolean> => {\n // Check if PTYService is available\n const ptyService = runtime.getService(\"PTY_SERVICE\") as unknown as\n | PTYService\n | undefined;\n if (!ptyService) {\n logger.warn(\"[SPAWN_CODING_AGENT] PTYService not available\");\n return false;\n }\n return true;\n },\n\n handler: async (\n runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n options?: HandlerOptions,\n callback?: HandlerCallback,\n ): Promise<ActionResult | undefined> => {\n const ptyService = runtime.getService(\"PTY_SERVICE\") as unknown as\n | PTYService\n | undefined;\n if (!ptyService) {\n if (callback) {\n await callback({\n text: \"PTY Service is not available. Cannot spawn coding agent.\",\n });\n }\n return { success: false, error: \"SERVICE_UNAVAILABLE\" };\n }\n\n // Extract parameters from options or message content\n const params = options?.parameters;\n const content = message.content as Record<string, unknown>;\n\n const rawAgentType =\n (params?.agentType as string) ??\n (content.agentType as string) ??\n \"claude\";\n const agentType = normalizeAgentType(rawAgentType);\n const task = (params?.task as string) ?? (content.task as string);\n const piRequested = isPiAgentType(rawAgentType);\n const initialTask = piRequested ? toPiCommand(task) : task;\n\n // Resolve workdir: explicit param > state from PROVISION_WORKSPACE > most recent workspace > cwd\n let workdir = (params?.workdir as string) ?? (content.workdir as string);\n if (!workdir && state?.codingWorkspace) {\n workdir = (state.codingWorkspace as { path: string }).path;\n }\n if (!workdir) {\n // Check workspace service for most recently provisioned workspace\n const wsService = runtime.getService(\n \"CODING_WORKSPACE_SERVICE\",\n ) as unknown as CodingWorkspaceService | undefined;\n if (wsService) {\n const workspaces = wsService.listWorkspaces();\n if (workspaces.length > 0) {\n workdir = workspaces[workspaces.length - 1].path;\n }\n }\n }\n if (!workdir) {\n if (callback) {\n await callback({\n text: \"No workspace found. Please provision a workspace first using PROVISION_WORKSPACE or provide a workdir.\",\n });\n }\n return { success: false, error: \"NO_WORKSPACE\" };\n }\n\n // Validate workdir is within allowed directories\n const resolvedWorkdir = path.resolve(workdir);\n const workspaceBaseDir = path.join(os.homedir(), \".milady\", \"workspaces\");\n const allowedPrefixes = [\n path.resolve(workspaceBaseDir),\n path.resolve(process.cwd()),\n ];\n const isAllowed = allowedPrefixes.some(\n (prefix) =>\n resolvedWorkdir.startsWith(prefix + path.sep) ||\n resolvedWorkdir === prefix,\n );\n if (!isAllowed) {\n if (callback) {\n await callback({\n text: \"The specified workdir is outside of allowed directories. Please use a workspace directory.\",\n });\n }\n return { success: false, error: \"WORKDIR_OUTSIDE_ALLOWED\" };\n }\n workdir = resolvedWorkdir;\n\n const memoryContent =\n (params?.memoryContent as string) ?? (content.memoryContent as string);\n const approvalPreset =\n (params?.approvalPreset as string) ?? (content.approvalPreset as string);\n\n // Custom credentials for MCP servers and other integrations\n const customCredentialKeys = runtime.getSetting(\"CUSTOM_CREDENTIAL_KEYS\") as\n | string\n | undefined;\n let customCredentials: Record<string, string> | undefined;\n if (customCredentialKeys) {\n customCredentials = {};\n for (const key of customCredentialKeys.split(\",\").map((k) => k.trim())) {\n const val = runtime.getSetting(key) as string | undefined;\n if (val) customCredentials[key] = val;\n }\n }\n\n // Build credentials from runtime settings\n const credentials: AgentCredentials = {\n anthropicKey: runtime.getSetting(\"ANTHROPIC_API_KEY\") as\n | string\n | undefined,\n openaiKey: runtime.getSetting(\"OPENAI_API_KEY\") as string | undefined,\n googleKey: runtime.getSetting(\"GOOGLE_GENERATIVE_AI_API_KEY\") as\n | string\n | undefined,\n githubToken: runtime.getSetting(\"GITHUB_TOKEN\") as string | undefined,\n };\n\n try {\n // Check if the agent CLI is installed (for non-shell agents)\n if (agentType !== \"shell\" && agentType !== \"pi\") {\n const [preflight] = await ptyService.checkAvailableAgents([\n agentType as Exclude<CodingAgentType, \"shell\" | \"pi\">,\n ]);\n if (preflight && !preflight.installed) {\n if (callback) {\n await callback({\n text:\n `${preflight.adapter} CLI is not installed.\\n` +\n `Install with: ${preflight.installCommand}\\n` +\n `Docs: ${preflight.docsUrl}`,\n });\n }\n return { success: false, error: \"AGENT_NOT_INSTALLED\" };\n }\n }\n\n // Check if coordinator is active — route blocking prompts through it\n const coordinator = getCoordinator(runtime);\n\n // Spawn the PTY session\n const session: SessionInfo = await ptyService.spawnSession({\n name: `coding-${Date.now()}`,\n agentType,\n workdir,\n initialTask,\n memoryContent,\n credentials,\n approvalPreset:\n (approvalPreset as ApprovalPreset | undefined) ??\n ptyService.defaultApprovalPreset,\n customCredentials,\n ...(coordinator ? { skipAdapterAutoResponse: true } : {}),\n metadata: {\n requestedType: rawAgentType,\n messageId: message.id,\n userId: (message as unknown as Record<string, unknown>).userId,\n },\n });\n\n // Register event handler for this session\n ptyService.onSessionEvent((sessionId, event, data) => {\n if (sessionId !== session.id) return;\n\n // Log session events for debugging\n logger.debug(\n `[Session ${sessionId}] ${event}: ${JSON.stringify(data)}`,\n );\n\n // When coordinator is active it owns chat messaging for these events\n if (!coordinator) {\n // Handle blocked state - agent is waiting for input\n if (event === \"blocked\" && callback) {\n callback({\n text: `Coding agent is waiting for input: ${(data as { prompt?: string }).prompt ?? \"unknown prompt\"}`,\n });\n }\n\n // Handle completion\n if (event === \"completed\" && callback) {\n callback({\n text: \"Coding agent completed the task.\",\n });\n }\n\n // Handle errors\n if (event === \"error\" && callback) {\n callback({\n text: `Coding agent encountered an error: ${(data as { message?: string }).message ?? \"unknown error\"}`,\n });\n }\n }\n });\n if (coordinator && task) {\n coordinator.registerTask(session.id, {\n agentType,\n label: `agent-${session.id.slice(-8)}`,\n originalTask: task,\n workdir,\n });\n }\n\n // Store session info in state for subsequent actions\n\n if (state) {\n state.codingSession = {\n id: session.id,\n agentType: session.agentType,\n workdir: session.workdir,\n status: session.status,\n };\n }\n\n if (callback) {\n await callback({\n text: `Started ${piRequested ? \"pi\" : agentType} coding agent in ${workdir}${task ? ` with task: \"${task}\"` : \"\"}. Session ID: ${session.id}`,\n });\n }\n\n return {\n success: true,\n text: `Started ${piRequested ? \"pi\" : agentType} coding agent`,\n data: {\n sessionId: session.id,\n agentType: piRequested ? \"pi\" : session.agentType,\n workdir: session.workdir,\n status: session.status,\n },\n };\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : String(error);\n logger.error(\"[SPAWN_CODING_AGENT] Failed to spawn agent:\", errorMessage);\n\n if (callback) {\n await callback({\n text: `Failed to spawn coding agent: ${errorMessage}`,\n });\n }\n\n return { success: false, error: errorMessage };\n }\n },\n\n parameters: [\n {\n name: \"agentType\",\n description:\n \"Type of coding agent to spawn. Options: claude (Claude Code), codex (OpenAI Codex), gemini (Google Gemini), aider, pi, shell (generic shell)\",\n required: false,\n schema: { type: \"string\" as const, default: \"claude\" },\n },\n {\n name: \"workdir\",\n description:\n \"Working directory for the agent. Defaults to current directory.\",\n required: false,\n schema: { type: \"string\" as const },\n },\n {\n name: \"task\",\n description: \"Initial task or prompt to send to the agent once spawned.\",\n required: false,\n schema: { type: \"string\" as const },\n },\n {\n name: \"memoryContent\",\n description:\n \"Instructions/context to write to the agent's memory file (e.g. CLAUDE.md) before spawning.\",\n required: false,\n schema: { type: \"string\" as const },\n },\n {\n name: \"approvalPreset\",\n description:\n \"Permission level: readonly (safe audit), standard (reads+web auto, writes prompt), permissive (file ops auto, shell prompts), autonomous (all auto, use with sandbox)\",\n required: false,\n schema: {\n type: \"string\" as const,\n enum: [\"readonly\", \"standard\", \"permissive\", \"autonomous\"],\n },\n },\n ],\n};\n",
|
|
16
16
|
"/** @module services/pty-service */\n\nimport { appendFile, mkdir, readFile, writeFile } from \"node:fs/promises\";\nimport { dirname, join } from \"node:path\";\nimport { type IAgentRuntime, type Service, logger } from \"@elizaos/core\";\nimport {\n type AdapterType,\n type AgentFileDescriptor,\n type ApprovalConfig,\n type ApprovalPreset,\n type BaseCodingAdapter,\n checkAdapters,\n createAdapter,\n generateApprovalConfig,\n type PreflightResult,\n type WriteMemoryOptions,\n} from \"coding-agent-adapters\";\nimport { PTYConsoleBridge } from \"pty-console\";\nimport type {\n BunCompatiblePTYManager,\n PTYManager,\n SessionFilter,\n SessionHandle,\n SessionMessage,\n SpawnConfig,\n StallClassification,\n WorkerSessionHandle,\n} from \"pty-manager\";\nimport { AgentMetricsTracker } from \"./agent-metrics.js\";\nimport {\n type AgentSelectionStrategy,\n selectAgentType,\n} from \"./agent-selection.js\";\nimport {\n handleGeminiAuth as handleGeminiAuthFlow,\n pushDefaultRules as pushDefaultAutoResponseRules,\n} from \"./pty-auto-response.js\";\nimport { initializePTYManager } from \"./pty-init.js\";\nimport {\n getSessionOutput as getSessionOutputIO,\n type SessionIOContext,\n sendKeysToSession as sendKeysToSessionIO,\n sendToSession as sendToSessionIO,\n stopSession as stopSessionIO,\n subscribeToOutput as subscribeToOutputIO,\n} from \"./pty-session-io.js\";\nimport {\n buildSpawnConfig,\n setupDeferredTaskDelivery,\n setupOutputBuffer,\n} from \"./pty-spawn.js\";\nimport type {\n CodingAgentType,\n PTYServiceConfig,\n SessionEventCallback,\n SessionInfo,\n SpawnSessionOptions,\n} from \"./pty-types.js\";\nimport { isPiAgentType, toPiCommand } from \"./pty-types.js\";\nimport {\n classifyAndDecideForCoordinator,\n classifyStallOutput,\n} from \"./stall-classifier.js\";\nimport { POST_SEND_COOLDOWN_MS } from \"./swarm-decision-loop.js\";\nimport { SwarmCoordinator } from \"./swarm-coordinator.js\";\nimport {\n captureFeed,\n captureLifecycle,\n captureSessionOpen,\n isDebugCaptureEnabled,\n} from \"./debug-capture.js\";\n\nexport type {\n CodingAgentType,\n PTYServiceConfig,\n SessionEventName,\n SessionInfo,\n SpawnSessionOptions,\n} from \"./pty-types.js\";\n// Re-export for backward compatibility\nexport { normalizeAgentType } from \"./pty-types.js\";\n\n/**\n * Retrieve the SwarmCoordinator from the PTYService registered on the runtime.\n * Returns undefined if PTYService or coordinator is not available.\n */\nexport function getCoordinator(\n runtime: IAgentRuntime,\n): SwarmCoordinator | undefined {\n const ptyService = runtime.getService(\"PTY_SERVICE\") as unknown as\n | PTYService\n | undefined;\n return ptyService?.coordinator ?? undefined;\n}\n\nexport class PTYService {\n static serviceType = \"PTY_SERVICE\";\n capabilityDescription = \"Manages PTY sessions for CLI coding agents\";\n\n private runtime: IAgentRuntime;\n private manager: PTYManager | BunCompatiblePTYManager | null = null;\n private usingBunWorker: boolean = false;\n private serviceConfig: PTYServiceConfig;\n private sessionMetadata: Map<string, Record<string, unknown>> = new Map();\n private sessionWorkdirs: Map<string, string> = new Map();\n private eventCallbacks: SessionEventCallback[] = [];\n private outputUnsubscribers: Map<string, () => void> = new Map();\n private sessionOutputBuffers: Map<string, string[]> = new Map();\n private adapterCache: Map<string, BaseCodingAdapter> = new Map();\n /** Tracks the buffer index when a task was sent, so we can capture the response on completion */\n private taskResponseMarkers: Map<string, number> = new Map();\n /** Captures \"Task completion trace\" log entries from worker stderr (rolling, capped at 200) */\n private traceEntries: Array<string | Record<string, unknown>> = [];\n private static readonly MAX_TRACE_ENTRIES = 200;\n /** Lightweight per-agent-type metrics for observability */\n private metricsTracker = new AgentMetricsTracker();\n /** Console bridge for terminal output streaming and buffered hydration */\n consoleBridge: PTYConsoleBridge | null = null;\n /** Swarm coordinator instance (if active). Accessed via getCoordinator(runtime). */\n coordinator: SwarmCoordinator | null = null;\n\n constructor(runtime: IAgentRuntime, config: PTYServiceConfig = {}) {\n this.runtime = runtime;\n this.serviceConfig = {\n maxLogLines: config.maxLogLines ?? 1000,\n debug: config.debug ?? false,\n registerCodingAdapters: config.registerCodingAdapters ?? true,\n maxConcurrentSessions: config.maxConcurrentSessions ?? 8,\n defaultApprovalPreset: config.defaultApprovalPreset ?? \"permissive\",\n };\n }\n\n static async start(runtime: IAgentRuntime): Promise<PTYService> {\n const config = runtime.getSetting(\"PTY_SERVICE_CONFIG\") as\n | PTYServiceConfig\n | null\n | undefined;\n const service = new PTYService(runtime, config ?? {});\n await service.initialize();\n\n // Wire the SwarmCoordinator — done here instead of plugin init()\n // because ElizaOS calls Service.start() reliably but may not call\n // plugin.init() depending on the registration path.\n // Guard: the framework may call start() more than once — skip if\n // a coordinator is already registered on this runtime.\n const servicesMap = runtime.services as Map<string, Service[]> | undefined;\n const existing = servicesMap?.get?.(\"SWARM_COORDINATOR\");\n if (existing && existing.length > 0) {\n service.coordinator = existing[0] as unknown as SwarmCoordinator;\n logger.info(\"[PTYService] SwarmCoordinator already registered, skipping duplicate start\");\n } else {\n try {\n const coordinator = new SwarmCoordinator(runtime);\n coordinator.start(service);\n service.coordinator = coordinator;\n\n // Register the coordinator as a discoverable runtime service so\n // server.ts can find it via runtime.getService(\"SWARM_COORDINATOR\")\n // without a hard import from this plugin package.\n // We bypass registerService() (which would call start() again) and\n // write directly to the services map that getService() reads from.\n servicesMap?.set?.(\"SWARM_COORDINATOR\", [coordinator as unknown as Service]);\n\n logger.info(\"[PTYService] SwarmCoordinator wired and started\");\n } catch (err) {\n logger.error(`[PTYService] Failed to wire SwarmCoordinator: ${err}`);\n }\n }\n\n return service;\n }\n\n static async stopRuntime(runtime: IAgentRuntime): Promise<void> {\n const service = runtime.getService(\"PTY_SERVICE\") as unknown as\n | PTYService\n | undefined;\n if (service) {\n await service.stop();\n }\n }\n\n private async initialize(): Promise<void> {\n const result = await initializePTYManager({\n serviceConfig: this.serviceConfig,\n classifyStall: (id, out) => this.classifyStall(id, out),\n emitEvent: (id, event, data) => this.emitEvent(id, event, data),\n handleGeminiAuth: (id) => this.handleGeminiAuth(id),\n sessionOutputBuffers: this.sessionOutputBuffers,\n taskResponseMarkers: this.taskResponseMarkers,\n metricsTracker: this.metricsTracker,\n traceEntries: this.traceEntries,\n maxTraceEntries: PTYService.MAX_TRACE_ENTRIES,\n log: (msg) => this.log(msg),\n hasActiveTask: (sessionId) => {\n const coordinator = this.coordinator;\n if (!coordinator) return false;\n const taskCtx = coordinator.getTaskContext(sessionId);\n return taskCtx?.status === \"active\";\n },\n hasTaskActivity: (sessionId) => {\n const coordinator = this.coordinator;\n if (!coordinator) return false;\n const taskCtx = coordinator.getTaskContext(sessionId);\n if (!taskCtx) return false;\n // Task has activity if the initial task was delivered (agent started\n // working) OR coordinator made decisions. The taskDelivered flag\n // covers agents that finish without hitting any blocking prompts.\n return taskCtx.taskDelivered || taskCtx.decisions.length > 0;\n },\n markTaskDelivered: (sessionId) => {\n const coordinator = this.coordinator;\n if (!coordinator) return;\n const taskCtx = coordinator.getTaskContext(sessionId);\n if (taskCtx) taskCtx.taskDelivered = true;\n },\n });\n this.manager = result.manager;\n this.usingBunWorker = result.usingBunWorker;\n\n // Wire console bridge for terminal output streaming / hydration\n try {\n this.consoleBridge = new PTYConsoleBridge(this.manager, {\n maxBufferedCharsPerSession: 100_000,\n });\n this.log(\"PTYConsoleBridge wired\");\n } catch (err) {\n this.log(`Failed to wire PTYConsoleBridge: ${err}`);\n }\n\n this.log(\"PTYService initialized\");\n }\n\n async stop(): Promise<void> {\n // Stop the coordinator if one was wired to this service\n if (this.coordinator) {\n this.coordinator.stop();\n // Remove from runtime services map\n (this.runtime.services as Map<string, Service[]>).delete(\"SWARM_COORDINATOR\");\n this.coordinator = null;\n }\n\n if (this.consoleBridge) {\n this.consoleBridge.close();\n this.consoleBridge = null;\n }\n\n for (const unsubscribe of this.outputUnsubscribers.values()) {\n unsubscribe();\n }\n this.outputUnsubscribers.clear();\n\n if (this.manager) {\n await this.manager.shutdown();\n this.manager = null;\n }\n this.sessionMetadata.clear();\n this.sessionWorkdirs.clear();\n this.sessionOutputBuffers.clear();\n this.log(\"PTYService shutdown complete\");\n }\n\n private generateSessionId(): string {\n return `pty-${Date.now()}-${crypto.randomUUID().slice(0, 8)}`;\n }\n\n /** Build a SessionIOContext from current instance state. */\n private ioContext(): SessionIOContext {\n return {\n manager: this.manager as PTYManager | BunCompatiblePTYManager,\n usingBunWorker: this.usingBunWorker,\n sessionOutputBuffers: this.sessionOutputBuffers,\n taskResponseMarkers: this.taskResponseMarkers,\n outputUnsubscribers: this.outputUnsubscribers,\n };\n }\n\n /**\n * Spawn a new PTY session for a coding agent\n */\n async spawnSession(options: SpawnSessionOptions): Promise<SessionInfo> {\n if (!this.manager) {\n throw new Error(\"PTYService not initialized\");\n }\n\n const piRequested = isPiAgentType(options.agentType);\n const resolvedAgentType: CodingAgentType = piRequested\n ? \"shell\"\n : options.agentType;\n const resolvedInitialTask = piRequested\n ? toPiCommand(options.initialTask)\n : options.initialTask;\n\n const maxSessions = this.serviceConfig.maxConcurrentSessions ?? 8;\n const activeSessions = (await this.listSessions()).length;\n if (activeSessions >= maxSessions) {\n throw new Error(`Concurrent session limit reached (${maxSessions})`);\n }\n\n const sessionId = this.generateSessionId();\n const workdir = options.workdir ?? process.cwd();\n\n // Store workdir for later retrieval\n this.sessionWorkdirs.set(sessionId, workdir);\n\n // Write memory content before spawning so the agent reads it on startup\n if (options.memoryContent && resolvedAgentType !== \"shell\") {\n try {\n const writtenPath = await this.writeMemoryFile(\n resolvedAgentType as AdapterType,\n workdir,\n options.memoryContent,\n );\n this.log(`Wrote memory file for ${resolvedAgentType}: ${writtenPath}`);\n } catch (err) {\n this.log(\n `Failed to write memory file for ${resolvedAgentType}: ${err}`,\n );\n }\n }\n\n // Write approval config files to workspace before spawn\n if (options.approvalPreset && resolvedAgentType !== \"shell\") {\n try {\n const written = await this.getAdapter(\n resolvedAgentType as AdapterType,\n ).writeApprovalConfig(workdir, {\n name: options.name,\n type: resolvedAgentType,\n workdir,\n adapterConfig: { approvalPreset: options.approvalPreset },\n } as SpawnConfig);\n this.log(\n `Wrote approval config (${options.approvalPreset}) for ${resolvedAgentType}: ${written.join(\", \")}`,\n );\n } catch (err) {\n this.log(`Failed to write approval config: ${err}`);\n }\n }\n\n // Inject agent-specific settings and HTTP hooks\n const hookUrl = `http://localhost:${(this.runtime.getSetting(\"SERVER_PORT\") as string | undefined) ?? \"2138\"}/api/coding-agents/hooks`;\n\n if (resolvedAgentType === \"claude\") {\n try {\n const settingsPath = join(workdir, \".claude\", \"settings.json\");\n let settings: Record<string, unknown> = {};\n try {\n settings = JSON.parse(await readFile(settingsPath, \"utf-8\"));\n } catch {\n // File may not exist yet\n }\n const permissions =\n (settings.permissions as Record<string, unknown>) ?? {};\n permissions.allowedDirectories = [workdir];\n settings.permissions = permissions;\n\n // Inject HTTP hooks for deterministic state detection.\n // Merge with existing hooks to preserve workspace-owned hook entries.\n const adapter = this.getAdapter(\"claude\");\n const hookProtocol = adapter.getHookTelemetryProtocol({\n httpUrl: hookUrl,\n sessionId,\n });\n if (hookProtocol) {\n const existingHooks = (settings.hooks ?? {}) as Record<string, unknown>;\n settings.hooks = { ...existingHooks, ...hookProtocol.settingsHooks };\n this.log(`Injecting HTTP hooks for session ${sessionId}`);\n }\n\n await mkdir(dirname(settingsPath), { recursive: true });\n await writeFile(\n settingsPath,\n JSON.stringify(settings, null, 2),\n \"utf-8\",\n );\n this.log(`Wrote allowedDirectories [${workdir}] to ${settingsPath}`);\n } catch (err) {\n this.log(`Failed to write Claude settings: ${err}`);\n }\n }\n\n if (resolvedAgentType === \"gemini\") {\n try {\n const settingsPath = join(workdir, \".gemini\", \"settings.json\");\n let settings: Record<string, unknown> = {};\n try {\n settings = JSON.parse(await readFile(settingsPath, \"utf-8\"));\n } catch {\n // File may not exist yet\n }\n\n // Inject command hooks that curl the orchestrator endpoint.\n // Merge with existing hooks to preserve workspace-owned hook entries.\n const adapter = this.getAdapter(\"gemini\");\n const hookProtocol = adapter.getHookTelemetryProtocol({\n httpUrl: hookUrl,\n sessionId,\n });\n if (hookProtocol) {\n const existingHooks = (settings.hooks ?? {}) as Record<string, unknown>;\n settings.hooks = { ...existingHooks, ...hookProtocol.settingsHooks };\n this.log(`Injecting Gemini CLI hooks for session ${sessionId}`);\n }\n\n await mkdir(dirname(settingsPath), { recursive: true });\n await writeFile(\n settingsPath,\n JSON.stringify(settings, null, 2),\n \"utf-8\",\n );\n } catch (err) {\n this.log(`Failed to write Gemini settings: ${err}`);\n }\n }\n\n // Ensure injected config/memory files are gitignored so agents don't\n // commit them. Appends to existing .gitignore if present.\n if (resolvedAgentType !== \"shell\" && workdir !== process.cwd()) {\n await this.ensureOrchestratorGitignore(workdir);\n }\n\n const spawnConfig = buildSpawnConfig(\n sessionId,\n {\n ...options,\n agentType: resolvedAgentType,\n initialTask: resolvedInitialTask,\n },\n workdir,\n );\n const session = await this.manager.spawn(spawnConfig);\n\n // Store metadata separately (always include agentType for stall classification)\n this.sessionMetadata.set(session.id, {\n ...options.metadata,\n requestedType: options.metadata?.requestedType ?? options.agentType,\n agentType: resolvedAgentType,\n coordinatorManaged: !!options.skipAdapterAutoResponse,\n });\n\n // Build spawn context for delegating to extracted spawn modules\n const ctx = {\n manager: this.manager as PTYManager | BunCompatiblePTYManager,\n usingBunWorker: this.usingBunWorker,\n serviceConfig: this.serviceConfig,\n sessionMetadata: this.sessionMetadata,\n sessionWorkdirs: this.sessionWorkdirs,\n sessionOutputBuffers: this.sessionOutputBuffers,\n outputUnsubscribers: this.outputUnsubscribers,\n taskResponseMarkers: this.taskResponseMarkers,\n getAdapter: (t: AdapterType) => this.getAdapter(t),\n sendToSession: (id: string, input: string) =>\n this.sendToSession(id, input),\n sendKeysToSession: (id: string, keys: string | string[]) =>\n this.sendKeysToSession(id, keys),\n pushDefaultRules: (id: string, type: string) =>\n this.pushDefaultRules(id, type),\n toSessionInfo: (s: SessionHandle | WorkerSessionHandle, w?: string) =>\n this.toSessionInfo(s, w),\n log: (msg: string) => this.log(msg),\n markTaskDelivered: (sessionId: string) => {\n const coordinator = this.coordinator;\n if (!coordinator) return;\n const taskCtx = coordinator.getTaskContext(sessionId);\n if (taskCtx) taskCtx.taskDelivered = true;\n },\n };\n\n // Buffer output for Bun worker path (no logs() method available)\n if (this.usingBunWorker) {\n setupOutputBuffer(ctx, session.id);\n }\n\n // Debug capture: open a capture session and wire stdout feed.\n // Capture files persist after the agent is killed for offline analysis.\n if (isDebugCaptureEnabled()) {\n captureSessionOpen(session.id, resolvedAgentType).catch(() => {});\n if (this.usingBunWorker) {\n (this.manager as BunCompatiblePTYManager).onSessionData(\n session.id,\n (data: string) => { captureFeed(session.id, data, \"stdout\"); },\n );\n } else {\n const ptySession = (this.manager as PTYManager).getSession(session.id);\n if (ptySession) {\n ptySession.on(\"output\", (data: string) => {\n captureFeed(session.id, data, \"stdout\");\n });\n }\n }\n }\n\n // Defer initial task until session is ready.\n // IMPORTANT: Set up the listener BEFORE pushDefaultRules (which has a 1500ms sleep),\n // otherwise session_ready fires during pushDefaultRules and the listener misses it.\n if (resolvedInitialTask) {\n setupDeferredTaskDelivery(\n ctx,\n session,\n resolvedInitialTask,\n resolvedAgentType,\n );\n }\n\n await this.pushDefaultRules(session.id, resolvedAgentType);\n this.metricsTracker.get(resolvedAgentType).spawned++;\n this.log(`Spawned session ${session.id} (${resolvedAgentType})`);\n return this.toSessionInfo(session, workdir);\n }\n\n private autoResponseContext() {\n return {\n manager: this.manager as PTYManager | BunCompatiblePTYManager,\n usingBunWorker: this.usingBunWorker,\n runtime: this.runtime,\n log: (msg: string) => this.log(msg),\n };\n }\n\n private async pushDefaultRules(\n sessionId: string,\n agentType: string,\n ): Promise<void> {\n if (!this.manager) return;\n await pushDefaultAutoResponseRules(\n this.autoResponseContext(),\n sessionId,\n agentType,\n );\n }\n\n private async handleGeminiAuth(sessionId: string): Promise<void> {\n await handleGeminiAuthFlow(\n this.autoResponseContext(),\n sessionId,\n (id, keys) => this.sendKeysToSession(id, keys),\n );\n }\n\n async sendToSession(\n sessionId: string,\n input: string,\n ): Promise<SessionMessage | undefined> {\n if (!this.manager) throw new Error(\"PTYService not initialized\");\n captureFeed(sessionId, input, \"stdin\");\n return sendToSessionIO(this.ioContext(), sessionId, input);\n }\n\n async sendKeysToSession(\n sessionId: string,\n keys: string | string[],\n ): Promise<void> {\n if (!this.manager) throw new Error(\"PTYService not initialized\");\n return sendKeysToSessionIO(this.ioContext(), sessionId, keys);\n }\n\n async stopSession(sessionId: string, force = false): Promise<void> {\n if (!this.manager) throw new Error(\"PTYService not initialized\");\n captureLifecycle(sessionId, \"session_stopped\", force ? \"force\" : undefined);\n return stopSessionIO(\n this.ioContext(),\n sessionId,\n this.sessionMetadata,\n this.sessionWorkdirs,\n (msg) => this.log(msg),\n force,\n );\n }\n\n /** Default approval preset — runtime env var takes precedence over config. */\n get defaultApprovalPreset(): ApprovalPreset {\n const fromEnv = this.runtime.getSetting(\n \"PARALLAX_DEFAULT_APPROVAL_PRESET\",\n ) as string | undefined;\n if (\n fromEnv &&\n [\"readonly\", \"standard\", \"permissive\", \"autonomous\"].includes(fromEnv)\n ) {\n return fromEnv as ApprovalPreset;\n }\n return this.serviceConfig.defaultApprovalPreset ?? \"permissive\";\n }\n\n /** Agent selection strategy — env var takes precedence. */\n get agentSelectionStrategy(): AgentSelectionStrategy {\n const fromEnv = this.runtime.getSetting(\n \"PARALLAX_AGENT_SELECTION_STRATEGY\",\n ) as string | undefined;\n if (fromEnv && (fromEnv === \"fixed\" || fromEnv === \"ranked\")) {\n return fromEnv;\n }\n return \"fixed\";\n }\n\n /** Default agent type when strategy is \"fixed\" — env var takes precedence. */\n get defaultAgentType(): AdapterType {\n const fromEnv = this.runtime.getSetting(\"PARALLAX_DEFAULT_AGENT_TYPE\") as\n | string\n | undefined;\n if (\n fromEnv &&\n [\"claude\", \"gemini\", \"codex\", \"aider\"].includes(fromEnv.toLowerCase())\n ) {\n return fromEnv.toLowerCase() as AdapterType;\n }\n return \"claude\";\n }\n\n /**\n * Resolve which agent type to use when the caller didn't specify one.\n *\n * - **fixed**: returns `defaultAgentType` immediately\n * - **ranked**: fetches preflight data, scores installed agents via\n * metrics, and returns the highest scorer\n */\n async resolveAgentType(): Promise<string> {\n const strategy = this.agentSelectionStrategy;\n const fixedAgentType = this.defaultAgentType;\n\n if (strategy === \"fixed\") {\n return fixedAgentType;\n }\n\n // Ranked mode — need installed agents list\n const preflight = await this.checkAvailableAgents();\n const metrics = this.metricsTracker.getAll();\n\n return selectAgentType({\n config: { strategy, fixedAgentType },\n metrics,\n installedAgents: preflight,\n });\n }\n\n getSession(sessionId: string): SessionInfo | undefined {\n if (!this.manager) return undefined;\n const session = this.manager.get(sessionId);\n if (!session) return undefined;\n return this.toSessionInfo(session, this.sessionWorkdirs.get(sessionId));\n }\n\n async listSessions(filter?: SessionFilter): Promise<SessionInfo[]> {\n if (!this.manager) return [];\n const sessions = this.usingBunWorker\n ? await (this.manager as BunCompatiblePTYManager).list()\n : (this.manager as PTYManager).list(filter);\n return sessions.map((s) =>\n this.toSessionInfo(s, this.sessionWorkdirs.get(s.id)),\n );\n }\n\n subscribeToOutput(\n sessionId: string,\n callback: (data: string) => void,\n ): () => void {\n if (!this.manager) throw new Error(\"PTYService not initialized\");\n return subscribeToOutputIO(this.ioContext(), sessionId, callback);\n }\n\n async getSessionOutput(sessionId: string, lines?: number): Promise<string> {\n if (!this.manager) throw new Error(\"PTYService not initialized\");\n return getSessionOutputIO(this.ioContext(), sessionId, lines);\n }\n\n isSessionBlocked(sessionId: string): boolean {\n const session = this.getSession(sessionId);\n return session?.status === \"authenticating\";\n }\n\n /**\n * Find a PTY session ID by its working directory.\n * Used by the HTTP hooks endpoint to correlate Claude's cwd with our session.\n */\n findSessionIdByCwd(cwd: string): string | undefined {\n for (const [sessionId, workdir] of this.sessionWorkdirs) {\n if (workdir === cwd) return sessionId;\n }\n return undefined;\n }\n\n /**\n * Handle an incoming hook event from Claude Code's HTTP hooks.\n * Translates hook events into PTY service events.\n */\n handleHookEvent(\n sessionId: string,\n event: string,\n data: Record<string, unknown>,\n ): void {\n // Log high-frequency events (tool_running, permission) at debug level;\n // completion events at info level.\n const summary = event === \"tool_running\"\n ? `tool=${(data as { toolName?: string }).toolName ?? \"?\"}`\n : event === \"permission_approved\"\n ? `tool=${(data as { tool?: string }).tool ?? \"?\"}`\n : JSON.stringify(data);\n if (event === \"tool_running\" || event === \"permission_approved\") {\n logger.debug(`[PTYService] Hook event for ${sessionId}: ${event} ${summary}`);\n } else {\n this.log(`Hook event for ${sessionId}: ${event} ${summary}`);\n }\n\n // Forward hook event to the underlying PTY session so it can reset its\n // stall timer and update internal status. Without this, the stall detector\n // runs independently of hooks and can falsely escalate hook-managed sessions.\n if (this.manager && this.usingBunWorker) {\n (this.manager as BunCompatiblePTYManager)\n .notifyHookEvent(sessionId, event)\n .catch((err) =>\n logger.debug(`[PTYService] Failed to forward hook event to session: ${err}`),\n );\n }\n\n switch (event) {\n case \"tool_running\":\n this.emitEvent(sessionId, \"tool_running\", data);\n break;\n case \"task_complete\":\n this.emitEvent(sessionId, \"task_complete\", data);\n break;\n case \"permission_approved\":\n // Permission was auto-approved via PermissionRequest hook.\n // No PTY event needed — the hook response already allowed it.\n break;\n case \"notification\":\n this.emitEvent(sessionId, \"message\", data);\n break;\n case \"session_end\":\n // CLI session is ending — treat as a stopped event so the coordinator\n // and frontend see the session transition to terminal state.\n this.emitEvent(sessionId, \"stopped\", { ...data, reason: \"session_end\" });\n break;\n default:\n break;\n }\n }\n\n async checkAvailableAgents(\n types?: AdapterType[],\n ): Promise<PreflightResult[]> {\n const agentTypes =\n types ?? ([\"claude\", \"gemini\", \"codex\", \"aider\"] as AdapterType[]);\n return checkAdapters(agentTypes);\n }\n\n getSupportedAgentTypes(): CodingAgentType[] {\n return [\"shell\", \"claude\", \"gemini\", \"codex\", \"aider\", \"pi\"];\n }\n\n private async classifyStall(\n sessionId: string,\n recentOutput: string,\n ): Promise<StallClassification | null> {\n const meta = this.sessionMetadata.get(sessionId);\n const agentType = (meta?.agentType as string) ?? \"unknown\";\n\n // For coordinator-managed sessions in autonomous mode: use combined\n // classify+decide in a single LLM call. The suggestedResponse is kept\n // intact so pty-manager auto-responds, and the coordinator receives\n // autoResponded: true — skipping the second LLM call in handleBlocked().\n if (\n meta?.coordinatorManaged &&\n this.coordinator?.getSupervisionLevel() === \"autonomous\"\n ) {\n const taskCtx = this.coordinator.getTaskContext(sessionId);\n if (taskCtx) {\n // Suppress stall classification during the post-send cooldown.\n // The agent is processing coordinator input — the output buffer\n // still contains the previous response, so classifying now would\n // produce a stale \"task_complete\" that triggers cascading follow-ups.\n if (taskCtx.lastInputSentAt) {\n const elapsed = Date.now() - taskCtx.lastInputSentAt;\n if (elapsed < POST_SEND_COOLDOWN_MS) {\n this.log(\n `Suppressing stall classification for ${sessionId} — ` +\n `${Math.round(elapsed / 1000)}s since coordinator sent input`,\n );\n return null;\n }\n }\n return classifyAndDecideForCoordinator({\n sessionId,\n recentOutput,\n agentType,\n buffers: this.sessionOutputBuffers,\n traceEntries: this.traceEntries,\n runtime: this.runtime,\n manager: this.manager,\n metricsTracker: this.metricsTracker,\n debugSnapshots: this.serviceConfig.debug === true,\n log: (msg: string) => this.log(msg),\n taskContext: {\n sessionId: taskCtx.sessionId,\n agentType: taskCtx.agentType,\n label: taskCtx.label,\n originalTask: taskCtx.originalTask,\n workdir: taskCtx.workdir,\n repo: taskCtx.repo,\n },\n decisionHistory: taskCtx.decisions\n .filter((d) => d.decision !== \"auto_resolved\")\n .slice(-5)\n .map((d) => ({\n event: d.event,\n promptText: d.promptText,\n action: d.decision,\n response: d.response,\n reasoning: d.reasoning,\n })),\n });\n }\n }\n\n const classification = await classifyStallOutput({\n sessionId,\n recentOutput,\n agentType,\n buffers: this.sessionOutputBuffers,\n traceEntries: this.traceEntries,\n runtime: this.runtime,\n manager: this.manager,\n metricsTracker: this.metricsTracker,\n debugSnapshots: this.serviceConfig.debug === true,\n log: (msg: string) => this.log(msg),\n });\n\n // When the SwarmCoordinator manages this session (non-autonomous mode),\n // strip suggestedResponse so the PTY worker doesn't auto-respond.\n // The coordinator's LLM decision loop will handle blocked prompts instead.\n if (classification && meta?.coordinatorManaged && classification.suggestedResponse) {\n this.log(\n `Suppressing stall auto-response for coordinator-managed session ${sessionId} ` +\n `(would have sent: \"${classification.suggestedResponse}\")`,\n );\n classification.suggestedResponse = undefined;\n }\n\n return classification;\n }\n\n // ─── Workspace Files ───\n\n private getAdapter(agentType: AdapterType): BaseCodingAdapter {\n let adapter = this.adapterCache.get(agentType);\n if (!adapter) {\n adapter = createAdapter(agentType);\n this.adapterCache.set(agentType, adapter);\n }\n return adapter;\n }\n\n getWorkspaceFiles(agentType: AdapterType): AgentFileDescriptor[] {\n return this.getAdapter(agentType).getWorkspaceFiles();\n }\n\n getMemoryFilePath(agentType: AdapterType): string {\n return this.getAdapter(agentType).memoryFilePath;\n }\n\n getApprovalConfig(\n agentType: AdapterType,\n preset: ApprovalPreset,\n ): ApprovalConfig {\n return generateApprovalConfig(agentType, preset);\n }\n\n async writeMemoryFile(\n agentType: AdapterType,\n workspacePath: string,\n content: string,\n options?: WriteMemoryOptions,\n ): Promise<string> {\n return this.getAdapter(agentType).writeMemoryFile(\n workspacePath,\n content,\n options,\n );\n }\n\n // ─── Gitignore for Orchestrator Files ───\n\n /** Marker comment used to detect orchestrator-managed gitignore entries. */\n private static readonly GITIGNORE_MARKER =\n \"# orchestrator-injected (do not commit agent config/memory files)\";\n\n /** Per-path lock to serialize concurrent gitignore updates for the same workdir. */\n private static gitignoreLocks = new Map<string, Promise<void>>();\n\n /**\n * Ensure that orchestrator-injected files (CLAUDE.md, .claude/, GEMINI.md, etc.)\n * are listed in the workspace .gitignore so agents don't commit them.\n * Appends to an existing .gitignore or creates one. Idempotent — skips if\n * the marker comment is already present. Serialized per-path to prevent\n * duplicate entries from concurrent spawns.\n */\n private async ensureOrchestratorGitignore(\n workdir: string,\n ): Promise<void> {\n const gitignorePath = join(workdir, \".gitignore\");\n\n // Serialize per-path: wait for any in-flight update to the same file.\n const existing_lock = PTYService.gitignoreLocks.get(gitignorePath);\n if (existing_lock) await existing_lock;\n\n const task = this.doEnsureGitignore(gitignorePath, workdir);\n PTYService.gitignoreLocks.set(gitignorePath, task);\n try {\n await task;\n } finally {\n // Only delete if we're still the current holder\n if (PTYService.gitignoreLocks.get(gitignorePath) === task) {\n PTYService.gitignoreLocks.delete(gitignorePath);\n }\n }\n }\n\n private async doEnsureGitignore(\n gitignorePath: string,\n workdir: string,\n ): Promise<void> {\n let existing = \"\";\n try {\n existing = await readFile(gitignorePath, \"utf-8\");\n } catch {\n // No .gitignore yet — we'll create one\n }\n\n // Idempotent: skip if we already added our entries\n if (existing.includes(PTYService.GITIGNORE_MARKER)) return;\n\n // Include all common patterns so multi-agent swarms with mixed types are covered.\n const entries = [\n \"\",\n PTYService.GITIGNORE_MARKER,\n \"CLAUDE.md\",\n \".claude/\",\n \"GEMINI.md\",\n \".gemini/\",\n \".aider*\",\n ];\n\n try {\n if (existing.length === 0) {\n // No .gitignore yet — create with just our entries\n await writeFile(gitignorePath, entries.join(\"\\n\") + \"\\n\", \"utf-8\");\n } else {\n // Append-only to avoid clobbering concurrent edits\n const separator = existing.endsWith(\"\\n\") ? \"\" : \"\\n\";\n await appendFile(gitignorePath, separator + entries.join(\"\\n\") + \"\\n\", \"utf-8\");\n }\n } catch (err) {\n this.log(`Failed to update .gitignore in ${workdir}: ${err}`);\n }\n }\n\n // ─── Event & Adapter Registration ───\n\n onSessionEvent(callback: SessionEventCallback): () => void {\n this.eventCallbacks.push(callback);\n return () => {\n const idx = this.eventCallbacks.indexOf(callback);\n if (idx !== -1) this.eventCallbacks.splice(idx, 1);\n };\n }\n\n registerAdapter(adapter: unknown): void {\n if (!this.manager) {\n throw new Error(\"PTYService not initialized\");\n }\n\n if (this.usingBunWorker) {\n this.log(\n \"registerAdapter not available with Bun worker - adapters must be in the worker\",\n );\n return;\n }\n\n (this.manager as PTYManager).registerAdapter(\n adapter as Parameters<PTYManager[\"registerAdapter\"]>[0],\n );\n this.log(`Registered adapter`);\n }\n\n private toSessionInfo(\n session: SessionHandle | WorkerSessionHandle,\n workdir?: string,\n ): SessionInfo {\n const metadata = this.sessionMetadata.get(session.id);\n const requestedType =\n typeof metadata?.requestedType === \"string\"\n ? metadata.requestedType\n : undefined;\n const displayAgentType =\n session.type === \"shell\" && isPiAgentType(requestedType)\n ? \"pi\"\n : session.type;\n return {\n id: session.id,\n name: session.name,\n agentType: displayAgentType,\n workdir: workdir ?? process.cwd(),\n status: session.status,\n createdAt: session.startedAt ? new Date(session.startedAt) : new Date(),\n lastActivityAt: session.lastActivityAt\n ? new Date(session.lastActivityAt)\n : new Date(),\n metadata,\n };\n }\n\n private emitEvent(sessionId: string, event: string, data: unknown): void {\n for (const callback of this.eventCallbacks) {\n try {\n callback(sessionId, event, data);\n } catch (err) {\n this.log(`Event callback error: ${err}`);\n }\n }\n }\n\n // ─── Metrics ───\n\n getAgentMetrics() {\n return this.metricsTracker.getAll();\n }\n\n private log(message: string): void {\n logger.debug(`[PTYService] ${message}`);\n }\n}\n",
|
|
17
17
|
"/**\n * Lightweight per-agent-type metrics for observability.\n *\n * Self-contained tracker — no dependencies on PTYService state.\n *\n * @module services/agent-metrics\n */\n\nexport interface AgentMetrics {\n spawned: number;\n completed: number;\n completedViaFastPath: number;\n completedViaClassifier: number;\n stallCount: number;\n avgCompletionMs: number;\n totalCompletionMs: number;\n}\n\nexport class AgentMetricsTracker {\n private metrics: Map<string, AgentMetrics> = new Map();\n\n /** Get (or lazily initialize) metrics for a given agent type. */\n get(agentType: string): AgentMetrics {\n let m = this.metrics.get(agentType);\n if (!m) {\n m = {\n spawned: 0,\n completed: 0,\n completedViaFastPath: 0,\n completedViaClassifier: 0,\n stallCount: 0,\n avgCompletionMs: 0,\n totalCompletionMs: 0,\n };\n this.metrics.set(agentType, m);\n }\n return m;\n }\n\n /** Record a task completion and update rolling average duration. */\n recordCompletion(\n agentType: string,\n method: \"fast-path\" | \"classifier\",\n durationMs: number,\n ): void {\n const m = this.get(agentType);\n m.completed++;\n if (method === \"fast-path\") m.completedViaFastPath++;\n else m.completedViaClassifier++;\n m.totalCompletionMs += durationMs;\n m.avgCompletionMs = Math.round(m.totalCompletionMs / m.completed);\n }\n\n /** Increment the stall counter for an agent type. */\n incrementStalls(agentType: string): void {\n this.get(agentType).stallCount++;\n }\n\n /** Return a serializable copy of all metrics (for API endpoints). */\n getAll(): Record<string, Omit<AgentMetrics, \"totalCompletionMs\">> {\n const result: Record<string, Omit<AgentMetrics, \"totalCompletionMs\">> = {};\n for (const [type, m] of this.metrics) {\n const { totalCompletionMs: _, ...rest } = m;\n result[type] = { ...rest };\n }\n return result;\n }\n}\n",
|
|
18
18
|
"/**\n * Dynamic agent selection strategy.\n *\n * Chooses which coding-agent CLI to spawn when the caller does not\n * specify an explicit `agentType`.\n *\n * - **fixed** — always returns `config.fixedAgentType`\n * - **ranked** — scores each installed agent on success rate,\n * stall frequency, and completion speed, then\n * returns the highest-scoring one\n *\n * @module services/agent-selection\n */\n\nimport type { AdapterType, PreflightResult } from \"coding-agent-adapters\";\n// ── Types ────────────────────────────────────────────────────────────\n\nexport type AgentSelectionStrategy = \"fixed\" | \"ranked\";\n\n/** Subset of AgentMetrics fields used for scoring. */\nexport interface AgentScoreInput {\n spawned: number;\n completed: number;\n stallCount: number;\n avgCompletionMs: number;\n}\n\nexport interface AgentSelectionConfig {\n strategy: AgentSelectionStrategy;\n fixedAgentType: AdapterType;\n}\n\nexport interface AgentSelectionContext {\n config: AgentSelectionConfig;\n /** Per-agent-type metrics snapshot (may be empty). */\n metrics: Record<string, AgentScoreInput>;\n /** Preflight results — only the `installed` ones are candidates. */\n installedAgents: PreflightResult[];\n}\n\n// ── Scoring ──────────────────────────────────────────────────────────\n\n/**\n * Compute a 0–1 score for a single agent based on its metrics.\n *\n * - `successRate` = completed / spawned (0.5 neutral prior when no data)\n * - `volumeWeight` = min(1, spawned / 5) — blends toward neutral at low N\n * - `stallPenalty` = (stallCount / spawned) * 0.3\n * - `speedPenalty` = min(avgCompletionMs / 300_000, 1) * 0.1 — weak tiebreaker\n *\n * Cold-start (no spawns): returns 0.5 so all agents are equal.\n */\nexport function computeAgentScore(\n metrics: AgentScoreInput | undefined,\n): number {\n if (!metrics || metrics.spawned === 0) return 0.5;\n\n const { spawned, completed, stallCount, avgCompletionMs } = metrics;\n\n const rawSuccess = completed / spawned;\n const volumeWeight = Math.min(1, spawned / 5);\n const successRate = rawSuccess * volumeWeight + 0.5 * (1 - volumeWeight);\n\n const stallPenalty = (stallCount / spawned) * 0.3;\n const speedPenalty = Math.min(avgCompletionMs / 300_000, 1) * 0.1;\n\n return Math.max(0, successRate - stallPenalty - speedPenalty);\n}\n\n// ── Selection ────────────────────────────────────────────────────────\n\n/** Default ordering when scores are tied — first entry wins. */\nconst DEFAULT_ORDER: AdapterType[] = [\"claude\", \"gemini\", \"codex\", \"aider\"];\n\n/**\n * Select the best agent type given the current strategy, metrics, and\n * installed agents.\n *\n * Explicit user choice (`params.agentType`) should be resolved by the\n * caller *before* reaching this function.\n */\nexport function selectAgentType(ctx: AgentSelectionContext): AdapterType {\n if (ctx.config.strategy === \"fixed\") {\n return ctx.config.fixedAgentType;\n }\n\n // ── ranked mode ──\n const installed = new Set(\n ctx.installedAgents\n .filter((r) => r.installed)\n .map((r) => r.adapter as AdapterType),\n );\n\n // If nothing is installed, fall back to config default\n if (installed.size === 0) {\n return ctx.config.fixedAgentType;\n }\n\n let bestAgent: AdapterType = ctx.config.fixedAgentType;\n let bestScore = -1;\n\n for (const agent of DEFAULT_ORDER) {\n if (!installed.has(agent)) continue;\n const score = computeAgentScore(ctx.metrics[agent]);\n if (score > bestScore) {\n bestScore = score;\n bestAgent = agent;\n }\n }\n\n return bestAgent;\n}\n",
|
|
@@ -25,10 +25,10 @@
|
|
|
25
25
|
"/**\n * Swarm Coordinator — Event Bridge & Autonomous Coordination Loop\n *\n * Bridges PTY session events to:\n * 1. SSE clients (frontend dashboard) for real-time status\n * 2. LLM coordination decisions for unhandled blocking prompts\n *\n * The coordinator subscribes to PTYService session events and:\n * - Skips events already handled by auto-response rules (autoResponded=true)\n * - Routes unhandled blocking prompts through supervision levels:\n * - autonomous: LLM decides immediately\n * - confirm: queued for human approval\n * - notify: broadcast only (no action)\n *\n * Heavy logic is extracted into:\n * - swarm-decision-loop.ts (blocked, turn-complete, LLM decisions)\n * - swarm-idle-watchdog.ts (idle session scanning)\n *\n * @module services/swarm-coordinator\n */\n\nimport type { ServerResponse } from \"node:http\";\nimport type { IAgentRuntime } from \"@elizaos/core\";\nimport { logger } from \"@elizaos/core\";\nimport { extractDevServerUrl } from \"./ansi-utils.js\";\nimport type { PTYService } from \"./pty-service.js\";\nimport type { CodingAgentType } from \"./pty-types.js\";\nimport type {\n\tCoordinationLLMResponse,\n\tSharedDecision,\n} from \"./swarm-coordinator-prompts.js\";\nimport {\n\tcheckAllTasksComplete,\n\tclearDeferredTurnCompleteTimers,\n\texecuteDecision as execDecision,\n\thandleBlocked,\n\thandleTurnComplete,\n} from \"./swarm-decision-loop.js\";\nimport { scanIdleSessions } from \"./swarm-idle-watchdog.js\";\n\n// ─── Types ───\n\n/** Callback injected by server.ts to route chat messages to the user's conversation. */\nexport type ChatMessageCallback = (\n\ttext: string,\n\tsource?: string,\n) => Promise<void>;\n\n/** Callback injected by server.ts to relay coordinator events to WebSocket clients. */\nexport type WsBroadcastCallback = (event: SwarmEvent) => void;\n\n/**\n * Callback injected by server.ts to route coordinator events through\n * Milaidy's full ElizaOS pipeline (conversation memory, personality, actions).\n * Returns a CoordinationLLMResponse parsed from Milaidy's natural language\n * response, or null if no actionable JSON block was found.\n */\nexport type AgentDecisionCallback = (\n\teventDescription: string,\n\tsessionId: string,\n\ttaskContext: TaskContext,\n) => Promise<CoordinationLLMResponse | null>;\n\n/** Per-task summary included in the swarm complete payload. */\nexport interface TaskCompletionSummary {\n\tsessionId: string;\n\tlabel: string;\n\tagentType: string;\n\toriginalTask: string;\n\tstatus: string;\n\tcompletionSummary: string;\n}\n\n/** Callback fired when all tasks in a swarm reach terminal state. */\nexport type SwarmCompleteCallback = (payload: {\n\ttasks: TaskCompletionSummary[];\n\ttotal: number;\n\tcompleted: number;\n\tstopped: number;\n\terrored: number;\n}) => Promise<void>;\n\nexport type SupervisionLevel = \"autonomous\" | \"confirm\" | \"notify\";\n\nexport interface TaskContext {\n\tsessionId: string;\n\tagentType: CodingAgentType;\n\tlabel: string;\n\toriginalTask: string;\n\tworkdir: string;\n\t/** Repository URL if provided, undefined for scratch directory tasks. */\n\trepo?: string;\n\tstatus: \"active\" | \"completed\" | \"error\" | \"stopped\";\n\tdecisions: CoordinationDecision[];\n\tautoResolvedCount: number;\n\tregisteredAt: number;\n\t/** Timestamp of the last session event (any type). Used by idle watchdog. */\n\tlastActivityAt: number;\n\t/** How many idle checks have been performed on this session. */\n\tidleCheckCount: number;\n\t/** True once the initial task has been delivered to the agent. */\n\ttaskDelivered: boolean;\n\t/** Summary of what the agent accomplished, populated on completion. */\n\tcompletionSummary?: string;\n\t/** Index into sharedDecisions[] — tracks which decisions this agent has already seen. */\n\tlastSeenDecisionIndex: number;\n\t/** Timestamp of last coordinator-sent input. Used to suppress stall/turn-complete\n\t * events for a grace period so the agent has time to process the input. */\n\tlastInputSentAt?: number;\n\t/** Timestamp when the task was last transitioned to `stopped`. */\n\tstoppedAt?: number;\n}\n\nexport interface CoordinationDecision {\n\ttimestamp: number;\n\tevent: string;\n\tpromptText: string;\n\tdecision:\n\t\t| \"respond\"\n\t\t| \"escalate\"\n\t\t| \"ignore\"\n\t\t| \"complete\"\n\t\t| \"auto_resolved\"\n\t\t| \"stopped\";\n\tresponse?: string;\n\treasoning: string;\n}\n\nexport interface SwarmEvent {\n\ttype: string;\n\tsessionId: string;\n\ttimestamp: number;\n\tdata: unknown;\n}\n\nexport interface PendingDecision {\n\tsessionId: string;\n\tpromptText: string;\n\trecentOutput: string;\n\tllmDecision: CoordinationLLMResponse;\n\ttaskContext: TaskContext;\n\tcreatedAt: number;\n}\n\n/**\n * Context interface exposing internal state and helpers to extracted modules.\n * Implemented by SwarmCoordinator — passed as `this` to module-level functions.\n */\nexport interface SwarmCoordinatorContext {\n\treadonly runtime: IAgentRuntime;\n\treadonly ptyService: PTYService | null;\n\treadonly tasks: Map<string, TaskContext>;\n\treadonly inFlightDecisions: Set<string>;\n\treadonly pendingDecisions: Map<string, PendingDecision>;\n\t/** Buffered task_complete events that arrived while an in-flight decision was running. */\n\treadonly pendingTurnComplete: Map<string, unknown>;\n\t/** Fingerprint of the last blocked prompt per session — for re-render dedup. */\n\treadonly lastBlockedPromptFingerprint: Map<string, string>;\n\t/** Buffered blocked events that arrived while an in-flight decision was running. */\n\treadonly pendingBlocked: Map<string, unknown>;\n\t/** Last-seen output snapshot per session — used by idle watchdog. */\n\treadonly lastSeenOutput: Map<string, string>;\n\t/** Timestamp of last tool_running chat notification per session — for throttling. */\n\treadonly lastToolNotification: Map<string, number>;\n\n\t/** Whether LLM decisions are paused (user sent a chat message). */\n\treadonly isPaused: boolean;\n\n\t/** Significant decisions shared across the swarm. */\n\treadonly sharedDecisions: SharedDecision[];\n\n\t/** Get the shared context brief from the planning phase. */\n\tgetSwarmContext(): string;\n\n\t/**\n\t * Guard flag: whether the swarm_complete event has already been fired\n\t * for the current swarm lifecycle. Set to `true` by `checkAllTasksComplete()`\n\t * when all tasks reach terminal state. Reset to `false` by:\n\t * - `stop()` — full coordinator teardown\n\t * - `registerTask()` — when detecting a new swarm (all previous tasks terminal)\n\t */\n\tswarmCompleteNotified: boolean;\n\n\tbroadcast(event: SwarmEvent): void;\n\tsendChatMessage(text: string, source?: string): void;\n\tlog(message: string): void;\n\tgetSupervisionLevel(): SupervisionLevel;\n\tgetAgentDecisionCallback(): AgentDecisionCallback | null;\n\tgetSwarmCompleteCallback(): SwarmCompleteCallback | null;\n}\n\n// ─── Constants ───\n\n/** Time to buffer events for unregistered sessions (ms). */\nconst UNREGISTERED_BUFFER_MS = 2000;\n\n/** How often the idle watchdog scans for idle sessions (ms). */\nconst IDLE_SCAN_INTERVAL_MS = 60 * 1000; // 1 minute\n\n/** How long to wait before auto-resuming a paused coordinator (ms). */\nconst PAUSE_TIMEOUT_MS = 30_000;\n/** Max events to buffer before WS bridge is wired. */\nconst MAX_PRE_BRIDGE_BUFFER = 100;\n/** Grace window where a late task_complete can recover a recently-stopped task. */\nconst STOPPED_RECOVERY_WINDOW_MS = 90_000;\n\n// ─── Service ───\n\nexport class SwarmCoordinator implements SwarmCoordinatorContext {\n\tstatic serviceType = \"SWARM_COORDINATOR\";\n\n\treadonly runtime: IAgentRuntime;\n\tptyService: PTYService | null = null;\n\tprivate unsubscribeEvents: (() => void) | null = null;\n\n\t/** Per-session task context. */\n\treadonly tasks: Map<string, TaskContext> = new Map();\n\n\t/** SSE clients receiving live events. */\n\tprivate sseClients: Set<ServerResponse> = new Set();\n\n\t/** Supervision level (default: autonomous). */\n\tprivate supervisionLevel: SupervisionLevel = \"autonomous\";\n\n\t/** Pending confirmations for \"confirm\" mode. */\n\treadonly pendingDecisions: Map<string, PendingDecision> = new Map();\n\n\t/** In-flight decision lock — prevents parallel LLM calls for same session. */\n\treadonly inFlightDecisions: Set<string> = new Set();\n\n\t/** Buffered task_complete events that arrived while an in-flight decision was running. */\n\treadonly pendingTurnComplete: Map<string, unknown> = new Map();\n\n\t/** Fingerprint of the last blocked prompt per session — for re-render dedup. */\n\treadonly lastBlockedPromptFingerprint: Map<string, string> = new Map();\n\n\t/** Buffered blocked events that arrived while an in-flight decision was running. */\n\treadonly pendingBlocked: Map<string, unknown> = new Map();\n\n\t/** Callback to send chat messages to the user's conversation UI. */\n\tprivate chatCallback: ChatMessageCallback | null = null;\n\n\t/** Callback to relay coordinator events to WebSocket clients. */\n\tprivate wsBroadcast: WsBroadcastCallback | null = null;\n\n\t/** Callback to route coordinator events through Milaidy's full pipeline. */\n\tprivate agentDecisionCb: AgentDecisionCallback | null = null;\n\n\t/** Callback fired when all swarm tasks complete — for synthesis. */\n\tprivate swarmCompleteCb: SwarmCompleteCallback | null = null;\n\n\t/** Buffer for events arriving before task registration. */\n\tprivate unregisteredBuffer: Map<\n\t\tstring,\n\t\tArray<{ event: string; data: unknown; receivedAt: number }>\n\t> = new Map();\n\n\t/** Idle watchdog timer handle. */\n\tprivate idleWatchdogTimer: ReturnType<typeof setInterval> | null = null;\n\n\t/** Last-seen output snapshot per session — used by idle watchdog to detect data flow. */\n\treadonly lastSeenOutput: Map<string, string> = new Map();\n\n\t/** Timestamp of last tool_running chat notification per session — for throttling. */\n\treadonly lastToolNotification: Map<string, number> = new Map();\n\n\t/** Whether LLM decisions are paused (user sent a chat message). */\n\tprivate _paused = false;\n\n\t/** Significant decisions shared across the swarm (Layer 2). */\n\treadonly sharedDecisions: SharedDecision[] = [];\n\n\t/** Shared context brief generated during swarm planning phase. */\n\tprivate _swarmContext = \"\";\n\n\t/** @see SwarmCoordinatorContext.swarmCompleteNotified */\n\tswarmCompleteNotified = false;\n\n\t/** Buffered events during pause — replayed on resume. */\n\tprivate pauseBuffer: Array<{\n\t\tsessionId: string;\n\t\tevent: string;\n\t\tdata: unknown;\n\t}> = [];\n\n\t/** Buffered broadcasts waiting for wsBroadcast to be wired. */\n\tprivate preBridgeBroadcastBuffer: SwarmEvent[] = [];\n\n\t/** Auto-resume timeout handle. */\n\tprivate pauseTimeout: ReturnType<typeof setTimeout> | null = null;\n\n\tconstructor(runtime: IAgentRuntime) {\n\t\tthis.runtime = runtime;\n\t}\n\n\t// ─── Chat Callback ───\n\n\t/** Inject a callback (from server.ts) to route messages to the user's chat UI. */\n\tsetChatCallback(cb: ChatMessageCallback): void {\n\t\tthis.chatCallback = cb;\n\t\tthis.log(\"Chat callback wired\");\n\t}\n\n\t/** Inject a callback (from server.ts) to relay events to WebSocket clients. */\n\tsetWsBroadcast(cb: WsBroadcastCallback): void {\n\t\tthis.wsBroadcast = cb;\n\t\t// Replay any events that were broadcast before the bridge was wired\n\t\tif (this.preBridgeBroadcastBuffer.length > 0) {\n\t\t\tthis.log(\n\t\t\t\t`WS broadcast callback wired — replaying ${this.preBridgeBroadcastBuffer.length} buffered event(s)`,\n\t\t\t);\n\t\t\tfor (const event of this.preBridgeBroadcastBuffer) {\n\t\t\t\tcb(event);\n\t\t\t}\n\t\t\tthis.preBridgeBroadcastBuffer.length = 0;\n\t\t} else {\n\t\t\tthis.log(\"WS broadcast callback wired\");\n\t\t}\n\t}\n\n\t/** Inject a callback fired when all swarm tasks reach terminal state. */\n\tsetSwarmCompleteCallback(cb: SwarmCompleteCallback): void {\n\t\tthis.swarmCompleteCb = cb;\n\t\tthis.log(\"Swarm complete callback wired\");\n\t}\n\n\t/** Return the swarm complete callback (if wired). */\n\tgetSwarmCompleteCallback(): SwarmCompleteCallback | null {\n\t\treturn this.swarmCompleteCb;\n\t}\n\n\t/** Set the shared context brief for this swarm. */\n\tsetSwarmContext(context: string): void {\n\t\tthis._swarmContext = context;\n\t\tthis.log(`Swarm context set (${context.length} chars)`);\n\t}\n\n\t/** Return the swarm planning context (if set). */\n\tgetSwarmContext(): string {\n\t\treturn this._swarmContext;\n\t}\n\n\t/** Inject a callback (from server.ts) to route events through Milaidy's pipeline. */\n\tsetAgentDecisionCallback(cb: AgentDecisionCallback): void {\n\t\tthis.agentDecisionCb = cb;\n\t\tthis.log(\n\t\t\t\"Agent decision callback wired — events will route through Milaidy\",\n\t\t);\n\t}\n\n\t/** Return the agent decision callback (if wired). */\n\tgetAgentDecisionCallback(): AgentDecisionCallback | null {\n\t\treturn this.agentDecisionCb;\n\t}\n\n\t/** Null-safe wrapper — sends a message to the user's conversation if callback is set. */\n\tsendChatMessage(text: string, source?: string): void {\n\t\tif (!this.chatCallback) return;\n\t\tthis.chatCallback(text, source).catch((err) => {\n\t\t\tthis.log(`Failed to send chat message: ${err}`);\n\t\t});\n\t}\n\n\t// ─── Lifecycle ───\n\n\t/**\n\t * Initialize the coordinator by subscribing to PTY session events.\n\t * Called from plugin init after services are ready.\n\t */\n\tstart(ptyService: PTYService): void {\n\t\tthis.ptyService = ptyService;\n\t\tthis.unsubscribeEvents = ptyService.onSessionEvent(\n\t\t\t(sessionId, event, data) => {\n\t\t\t\tthis.handleSessionEvent(sessionId, event, data).catch((err) => {\n\t\t\t\t\tthis.log(`Error handling event: ${err}`);\n\t\t\t\t});\n\t\t\t},\n\t\t);\n\n\t\t// Start idle watchdog\n\t\tthis.idleWatchdogTimer = setInterval(() => {\n\t\t\tscanIdleSessions(this).catch((err) => {\n\t\t\t\tthis.log(`Idle watchdog error: ${err}`);\n\t\t\t});\n\t\t}, IDLE_SCAN_INTERVAL_MS);\n\n\t\tthis.log(\"SwarmCoordinator started\");\n\t}\n\n\tstop(): void {\n\t\tif (this.idleWatchdogTimer) {\n\t\t\tclearInterval(this.idleWatchdogTimer);\n\t\t\tthis.idleWatchdogTimer = null;\n\t\t}\n\t\tif (this.unsubscribeEvents) {\n\t\t\tthis.unsubscribeEvents();\n\t\t\tthis.unsubscribeEvents = null;\n\t\t}\n\t\t// Close all SSE connections\n\t\tfor (const client of this.sseClients) {\n\t\t\tif (!client.writableEnded) {\n\t\t\t\tclient.end();\n\t\t\t}\n\t\t}\n\t\tthis.sseClients.clear();\n\t\tthis.tasks.clear();\n\t\tthis.pendingDecisions.clear();\n\t\tthis.inFlightDecisions.clear();\n\t\tthis.pendingTurnComplete.clear();\n\t\tclearDeferredTurnCompleteTimers();\n\t\tthis.lastBlockedPromptFingerprint.clear();\n\t\tthis.pendingBlocked.clear();\n\t\tthis.unregisteredBuffer.clear();\n\t\tthis.lastSeenOutput.clear();\n\t\tthis.lastToolNotification.clear();\n\t\tthis.agentDecisionCb = null;\n\t\tthis.sharedDecisions.length = 0;\n\t\tthis._swarmContext = \"\";\n\t\tthis.swarmCompleteNotified = false;\n\t\t// Clear pause state\n\t\tthis._paused = false;\n\t\tif (this.pauseTimeout) {\n\t\t\tclearTimeout(this.pauseTimeout);\n\t\t\tthis.pauseTimeout = null;\n\t\t}\n\t\tthis.pauseBuffer = [];\n\t\tthis.preBridgeBroadcastBuffer.length = 0;\n\t\tthis.log(\"SwarmCoordinator stopped\");\n\t}\n\n\t// ─── Pause / Resume ───\n\n\t/** Whether the coordinator is currently paused. */\n\tget isPaused(): boolean {\n\t\treturn this._paused;\n\t}\n\n\t/** Pause LLM-based decisions. Auto-responses and broadcasts continue. */\n\tpause(): void {\n\t\tif (this._paused) return;\n\t\tthis._paused = true;\n\t\tthis.log(\n\t\t\t\"Coordinator paused — buffering LLM decisions until user message is processed\",\n\t\t);\n\t\tthis.broadcast({\n\t\t\ttype: \"coordinator_paused\",\n\t\t\tsessionId: \"\",\n\t\t\ttimestamp: Date.now(),\n\t\t\tdata: {},\n\t\t});\n\n\t\t// Safety: auto-resume after timeout\n\t\tthis.pauseTimeout = setTimeout(() => {\n\t\t\tif (this._paused) {\n\t\t\t\tthis.log(\"Coordinator auto-resuming after timeout\");\n\t\t\t\tthis.resume();\n\t\t\t}\n\t\t}, PAUSE_TIMEOUT_MS);\n\t}\n\n\t/** Resume LLM-based decisions and replay buffered events. */\n\tresume(): void {\n\t\tif (!this._paused) return;\n\t\tthis._paused = false;\n\t\tif (this.pauseTimeout) {\n\t\t\tclearTimeout(this.pauseTimeout);\n\t\t\tthis.pauseTimeout = null;\n\t\t}\n\n\t\tthis.log(\n\t\t\t`Coordinator resumed — replaying ${this.pauseBuffer.length} buffered events`,\n\t\t);\n\t\tthis.broadcast({\n\t\t\ttype: \"coordinator_resumed\",\n\t\t\tsessionId: \"\",\n\t\t\ttimestamp: Date.now(),\n\t\t\tdata: {},\n\t\t});\n\n\t\t// Replay buffered events\n\t\tconst buffered = [...this.pauseBuffer];\n\t\tthis.pauseBuffer = [];\n\t\tfor (const entry of buffered) {\n\t\t\tthis.handleSessionEvent(entry.sessionId, entry.event, entry.data).catch(\n\t\t\t\t(err) => {\n\t\t\t\t\tthis.log(`Error replaying buffered event: ${err}`);\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\t}\n\n\t// ─── Task Registration ───\n\n\tregisterTask(\n\t\tsessionId: string,\n\t\tcontext: {\n\t\t\tagentType: CodingAgentType;\n\t\t\tlabel: string;\n\t\t\toriginalTask: string;\n\t\t\tworkdir: string;\n\t\t\trepo?: string;\n\t\t},\n\t): void {\n\t\t// Reset swarm state when the first task of a new swarm is registered.\n\t\t// Check for terminal-only tasks (all previous tasks in completed/stopped/error)\n\t\t// rather than empty map, so reuse without stop() works.\n\t\tconst allPreviousTerminal =\n\t\t\tthis.tasks.size === 0 ||\n\t\t\tArray.from(this.tasks.values()).every(\n\t\t\t\t(t) =>\n\t\t\t\t\tt.status === \"completed\" ||\n\t\t\t\t\tt.status === \"stopped\" ||\n\t\t\t\t\tt.status === \"error\",\n\t\t\t);\n\t\tif (allPreviousTerminal) {\n\t\t\tthis.swarmCompleteNotified = false;\n\t\t\t// Clear stale tasks and shared context from previous swarm\n\t\t\tif (this.tasks.size > 0) {\n\t\t\t\tthis.tasks.clear();\n\t\t\t\tthis.sharedDecisions.length = 0;\n\t\t\t\tthis._swarmContext = \"\";\n\t\t\t\tthis.log(\"Cleared stale swarm state for new swarm\");\n\t\t\t}\n\t\t}\n\n\t\tthis.tasks.set(sessionId, {\n\t\t\tsessionId,\n\t\t\tagentType: context.agentType,\n\t\t\tlabel: context.label,\n\t\t\toriginalTask: context.originalTask,\n\t\t\tworkdir: context.workdir,\n\t\t\trepo: context.repo,\n\t\t\tstatus: \"active\",\n\t\t\tdecisions: [],\n\t\t\tautoResolvedCount: 0,\n\t\t\tregisteredAt: Date.now(),\n\t\t\tlastActivityAt: Date.now(),\n\t\t\tidleCheckCount: 0,\n\t\t\ttaskDelivered: false,\n\t\t\tlastSeenDecisionIndex: 0,\n\t\t});\n\n\t\tthis.broadcast({\n\t\t\ttype: \"task_registered\",\n\t\t\tsessionId,\n\t\t\ttimestamp: Date.now(),\n\t\t\tdata: {\n\t\t\t\tagentType: context.agentType,\n\t\t\t\tlabel: context.label,\n\t\t\t\toriginalTask: context.originalTask,\n\t\t\t},\n\t\t});\n\n\t\t// Flush any buffered events for this session\n\t\tconst buffered = this.unregisteredBuffer.get(sessionId);\n\t\tif (buffered) {\n\t\t\tthis.unregisteredBuffer.delete(sessionId);\n\t\t\tfor (const entry of buffered) {\n\t\t\t\tthis.handleSessionEvent(sessionId, entry.event, entry.data).catch(\n\t\t\t\t\t(err) => {\n\t\t\t\t\t\tthis.log(`Error replaying buffered event: ${err}`);\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Return the repo URL from the most recently registered task that had one.\n\t * Useful as a fallback when the user says \"in the same repo\" without a URL.\n\t */\n\tgetLastUsedRepo(): string | undefined {\n\t\tlet latest: TaskContext | undefined;\n\t\tfor (const task of this.tasks.values()) {\n\t\t\tif (task.repo && (!latest || task.registeredAt > latest.registeredAt)) {\n\t\t\t\tlatest = task;\n\t\t\t}\n\t\t}\n\t\treturn latest?.repo;\n\t}\n\n\tgetTaskContext(sessionId: string): TaskContext | undefined {\n\t\treturn this.tasks.get(sessionId);\n\t}\n\n\tgetAllTaskContexts(): TaskContext[] {\n\t\treturn Array.from(this.tasks.values());\n\t}\n\n\t// ─── SSE Client Management ───\n\n\t/**\n\t * Register an SSE client. Returns an unsubscribe function.\n\t * Sends a snapshot of current state on connect.\n\t */\n\taddSseClient(res: ServerResponse): () => void {\n\t\tthis.sseClients.add(res);\n\n\t\t// Send snapshot on connect\n\t\tconst snapshot: SwarmEvent = {\n\t\t\ttype: \"snapshot\",\n\t\t\tsessionId: \"*\",\n\t\t\ttimestamp: Date.now(),\n\t\t\tdata: {\n\t\t\t\ttasks: this.getAllTaskContexts(),\n\t\t\t\tsupervisionLevel: this.supervisionLevel,\n\t\t\t\tpendingCount: this.pendingDecisions.size,\n\t\t\t},\n\t\t};\n\t\tthis.writeSseEvent(res, snapshot);\n\n\t\t// Remove on close\n\t\tconst cleanup = () => {\n\t\t\tthis.sseClients.delete(res);\n\t\t};\n\t\tres.on(\"close\", cleanup);\n\n\t\treturn cleanup;\n\t}\n\n\tbroadcast(event: SwarmEvent): void {\n\t\tconst dead: ServerResponse[] = [];\n\t\tfor (const client of this.sseClients) {\n\t\t\tif (client.writableEnded) {\n\t\t\t\tdead.push(client);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tthis.writeSseEvent(client, event);\n\t\t}\n\t\t// Cleanup dead connections\n\t\tfor (const d of dead) {\n\t\t\tthis.sseClients.delete(d);\n\t\t}\n\t\t// Relay to WebSocket clients — buffer if bridge isn't wired yet\n\t\tif (this.wsBroadcast) {\n\t\t\tthis.wsBroadcast(event);\n\t\t} else if (this.preBridgeBroadcastBuffer.length < MAX_PRE_BRIDGE_BUFFER) {\n\t\t\tthis.preBridgeBroadcastBuffer.push(event);\n\t\t}\n\t}\n\n\tprivate writeSseEvent(res: ServerResponse, event: SwarmEvent): void {\n\t\ttry {\n\t\t\tres.write(`data: ${JSON.stringify(event)}\\n\\n`);\n\t\t} catch {\n\t\t\t// Connection may have closed\n\t\t}\n\t}\n\n\t// ─── Event Handling ───\n\n\tasync handleSessionEvent(\n\t\tsessionId: string,\n\t\tevent: string,\n\t\tdata: unknown,\n\t): Promise<void> {\n\t\tconst taskCtx = this.tasks.get(sessionId);\n\n\t\t// Buffer events for unregistered sessions (race condition guard)\n\t\tif (!taskCtx) {\n\t\t\tif (\n\t\t\t\tevent === \"blocked\" ||\n\t\t\t\tevent === \"task_complete\" ||\n\t\t\t\tevent === \"error\"\n\t\t\t) {\n\t\t\t\tlet buffer = this.unregisteredBuffer.get(sessionId);\n\t\t\t\tif (!buffer) {\n\t\t\t\t\tbuffer = [];\n\t\t\t\t\tthis.unregisteredBuffer.set(sessionId, buffer);\n\t\t\t\t}\n\t\t\t\tbuffer.push({ event, data, receivedAt: Date.now() });\n\n\t\t\t\t// Re-check after delay\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tconst stillBuffered = this.unregisteredBuffer.get(sessionId);\n\t\t\t\t\tif (stillBuffered && stillBuffered.length > 0) {\n\t\t\t\t\t\tconst ctx = this.tasks.get(sessionId);\n\t\t\t\t\t\tif (ctx) {\n\t\t\t\t\t\t\t// Task was registered — flush\n\t\t\t\t\t\t\tthis.unregisteredBuffer.delete(sessionId);\n\t\t\t\t\t\t\tfor (const entry of stillBuffered) {\n\t\t\t\t\t\t\t\tthis.handleSessionEvent(\n\t\t\t\t\t\t\t\t\tsessionId,\n\t\t\t\t\t\t\t\t\tentry.event,\n\t\t\t\t\t\t\t\t\tentry.data,\n\t\t\t\t\t\t\t\t).catch(() => {});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Still no task context — discard\n\t\t\t\t\t\t\tthis.unregisteredBuffer.delete(sessionId);\n\t\t\t\t\t\t\tthis.log(\n\t\t\t\t\t\t\t\t`Discarding ${stillBuffered.length} buffered events for unregistered session ${sessionId}`,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}, UNREGISTERED_BUFFER_MS);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\t// Skip decision-making events for terminal states, but always allow\n\t\t// \"stopped\" and \"error\" through — they're definitive lifecycle signals\n\t\t// that the frontend needs to close consoles and clean up.\n\t\t// Exception: allow a late \"task_complete\" to recover a recently-stopped task.\n\t\tlet recoveredFromStopped = false;\n\t\tif (\n\t\t\ttaskCtx.status === \"stopped\" ||\n\t\t\ttaskCtx.status === \"error\" ||\n\t\t\ttaskCtx.status === \"completed\"\n\t\t) {\n\t\t\tif (taskCtx.status === \"stopped\" && event === \"task_complete\") {\n\t\t\t\tconst stoppedAt = taskCtx.stoppedAt ?? 0;\n\t\t\t\tconst ageMs = Date.now() - stoppedAt;\n\t\t\t\tif (stoppedAt > 0 && ageMs <= STOPPED_RECOVERY_WINDOW_MS) {\n\t\t\t\t\tthis.log(\n\t\t\t\t\t\t`Recovering \"${taskCtx.label}\" from stopped on late task_complete (${Math.round(ageMs / 1000)}s old)`,\n\t\t\t\t\t);\n\t\t\t\t\ttaskCtx.status = \"active\";\n\t\t\t\t\trecoveredFromStopped = true;\n\t\t\t\t} else {\n\t\t\t\t\tthis.log(\n\t\t\t\t\t\t`Ignoring \"${event}\" for ${taskCtx.label} (status: stopped, age=${Math.round(ageMs / 1000)}s)`,\n\t\t\t\t\t);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!recoveredFromStopped && event !== \"stopped\" && event !== \"error\") {\n\t\t\t\tthis.log(\n\t\t\t\t\t`Ignoring \"${event}\" for ${taskCtx.label} (status: ${taskCtx.status})`,\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\t// Update activity timestamp — resets idle watchdog for this session.\n\t\t// This runs before buffering so buffered events still reset the idle timer.\n\t\ttaskCtx.lastActivityAt = Date.now();\n\t\ttaskCtx.idleCheckCount = 0;\n\n\t\t// Buffer decision-making events when paused (user sent a chat message).\n\t\t// Auto-responses still flow through handleBlocked — only LLM decisions are deferred.\n\t\tif (this._paused && (event === \"blocked\" || event === \"task_complete\")) {\n\t\t\t// Auto-responded blocked events don't need LLM — let them through\n\t\t\tconst eventData = data as { autoResponded?: boolean };\n\t\t\tif (!(event === \"blocked\" && eventData.autoResponded)) {\n\t\t\t\t// Broadcast buffered state for dashboard visibility\n\t\t\t\tthis.broadcast({\n\t\t\t\t\ttype:\n\t\t\t\t\t\tevent === \"blocked\" ? \"blocked_buffered\" : \"turn_complete_buffered\",\n\t\t\t\t\tsessionId,\n\t\t\t\t\ttimestamp: Date.now(),\n\t\t\t\t\tdata,\n\t\t\t\t});\n\t\t\t\tthis.pauseBuffer.push({ sessionId, event, data });\n\t\t\t\tthis.log(\n\t\t\t\t\t`Buffered \"${event}\" for ${taskCtx.label} (coordinator paused)`,\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Auto-responded: fall through to normal handling below\n\t\t}\n\n\t\t// Route by event type\n\t\tswitch (event) {\n\t\t\tcase \"blocked\":\n\t\t\t\tawait handleBlocked(this, sessionId, taskCtx, data);\n\t\t\t\tbreak;\n\n\t\t\tcase \"task_complete\": {\n\t\t\t\t// The adapter detected a turn completion (agent back at idle prompt).\n\t\t\t\t// Don't immediately stop — ask the LLM if the overall task is done\n\t\t\t\t// or if the agent needs more turns.\n\t\t\t\tthis.broadcast({\n\t\t\t\t\ttype: \"turn_complete\",\n\t\t\t\t\tsessionId,\n\t\t\t\t\ttimestamp: Date.now(),\n\t\t\t\t\tdata,\n\t\t\t\t});\n\n\t\t\t\tawait handleTurnComplete(this, sessionId, taskCtx, data);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase \"error\": {\n\t\t\t\ttaskCtx.status = \"error\";\n\t\t\t\tthis.broadcast({\n\t\t\t\t\ttype: \"error\",\n\t\t\t\t\tsessionId,\n\t\t\t\t\ttimestamp: Date.now(),\n\t\t\t\t\tdata,\n\t\t\t\t});\n\n\t\t\t\t// Send error message to chat UI\n\t\t\t\tconst errorMsg =\n\t\t\t\t\t(data as { message?: string }).message ?? \"unknown error\";\n\t\t\t\tthis.sendChatMessage(\n\t\t\t\t\t`\"${taskCtx.label}\" hit an error: ${errorMsg}`,\n\t\t\t\t\t\"coding-agent\",\n\t\t\t\t);\n\t\t\t\tcheckAllTasksComplete(this);\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tcase \"stopped\":\n\t\t\t\t// Don't downgrade \"completed\" or \"error\" to \"stopped\" — the async\n\t\t\t\t// stopSession fires after executeDecision already marked the task.\n\t\t\t\tif (taskCtx.status !== \"completed\" && taskCtx.status !== \"error\") {\n\t\t\t\t\ttaskCtx.status = \"stopped\";\n\t\t\t\t\ttaskCtx.stoppedAt = Date.now();\n\t\t\t\t}\n\t\t\t\tthis.inFlightDecisions.delete(sessionId);\n\t\t\t\tthis.broadcast({\n\t\t\t\t\ttype: \"stopped\",\n\t\t\t\t\tsessionId,\n\t\t\t\t\ttimestamp: Date.now(),\n\t\t\t\t\tdata,\n\t\t\t\t});\n\t\t\t\tcheckAllTasksComplete(this);\n\t\t\t\tbreak;\n\n\t\t\tcase \"ready\":\n\t\t\t\tthis.broadcast({\n\t\t\t\t\ttype: \"ready\",\n\t\t\t\t\tsessionId,\n\t\t\t\t\ttimestamp: Date.now(),\n\t\t\t\t\tdata,\n\t\t\t\t});\n\t\t\t\tbreak;\n\n\t\t\tcase \"tool_running\": {\n\t\t\t\t// Agent is actively working via an external tool — keep watchdog happy\n\t\t\t\ttaskCtx.lastActivityAt = Date.now();\n\t\t\t\ttaskCtx.idleCheckCount = 0;\n\n\t\t\t\tthis.broadcast({\n\t\t\t\t\ttype: \"tool_running\",\n\t\t\t\t\tsessionId,\n\t\t\t\t\ttimestamp: Date.now(),\n\t\t\t\t\tdata,\n\t\t\t\t});\n\n\t\t\t\t// Hook-sourced tool_running events fire for every tool call.\n\t\t\t\t// Only broadcast to SSE (for activity box) — skip chat messages.\n\t\t\t\tconst toolData = data as {\n\t\t\t\t\ttoolName?: string;\n\t\t\t\t\tdescription?: string;\n\t\t\t\t\tsource?: string;\n\t\t\t\t};\n\t\t\t\tif (toolData.source === \"hook\") {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\t// Throttle chat notifications: at most one per 30s per session.\n\t\t\t\t// Suppress during the first 10s after registration — startup status\n\t\t\t\t// lines (e.g. \"Claude in Chrome enabled\") can trigger tool_running\n\t\t\t\t// before the agent has actually begun working.\n\t\t\t\tconst now = Date.now();\n\t\t\t\tconst STARTUP_GRACE_MS = 10_000;\n\t\t\t\tif (now - taskCtx.registeredAt < STARTUP_GRACE_MS) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tconst lastNotif = this.lastToolNotification.get(sessionId) ?? 0;\n\t\t\t\tif (now - lastNotif > 30_000) {\n\t\t\t\t\tthis.lastToolNotification.set(sessionId, now);\n\t\t\t\t\tconst toolDesc =\n\t\t\t\t\t\ttoolData.description ?? toolData.toolName ?? \"an external tool\";\n\n\t\t\t\t\t// Try to extract a dev server URL from recent output\n\t\t\t\t\tlet urlSuffix = \"\";\n\t\t\t\t\tif (this.ptyService) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst recentOutput = await this.ptyService.getSessionOutput(\n\t\t\t\t\t\t\t\tsessionId,\n\t\t\t\t\t\t\t\t50,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tconst devUrl = extractDevServerUrl(recentOutput);\n\t\t\t\t\t\t\tif (devUrl) {\n\t\t\t\t\t\t\t\turlSuffix = ` Dev server running at ${devUrl}`;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} catch {\n\t\t\t\t\t\t\t// Best-effort — don't block on failure\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.log(\n\t\t\t\t\t\t`[${taskCtx.label}] Running ${toolDesc}.${urlSuffix} The agent is working outside the terminal.`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tdefault:\n\t\t\t\t// Broadcast unknown events for observability\n\t\t\t\tthis.broadcast({\n\t\t\t\t\ttype: event,\n\t\t\t\t\tsessionId,\n\t\t\t\t\ttimestamp: Date.now(),\n\t\t\t\t\tdata,\n\t\t\t\t});\n\t\t}\n\t}\n\n\t// ─── LLM Decision (delegated) ───\n\n\tasync makeCoordinationDecision(\n\t\ttaskCtx: TaskContext,\n\t\tpromptText: string,\n\t\trecentOutput: string,\n\t): Promise<CoordinationLLMResponse | null> {\n\t\t// Re-export for backward compatibility — delegates to module function\n\t\tconst { makeCoordinationDecision: mkDecision } = await import(\n\t\t\t\"./swarm-decision-loop.js\"\n\t\t);\n\t\treturn mkDecision(this, taskCtx, promptText, recentOutput);\n\t}\n\n\tasync executeDecision(\n\t\tsessionId: string,\n\t\tdecision: CoordinationLLMResponse,\n\t): Promise<void> {\n\t\treturn execDecision(this, sessionId, decision);\n\t}\n\n\t/**\n\t * Public entry point for external callers (e.g. server.ts) to execute\n\t * a coordination decision on a session. Wraps the internal executeDecision.\n\t */\n\tasync executeEventDecision(\n\t\tsessionId: string,\n\t\tdecision: CoordinationLLMResponse,\n\t): Promise<void> {\n\t\treturn execDecision(this, sessionId, decision);\n\t}\n\n\t// ─── Supervision ───\n\n\tsetSupervisionLevel(level: SupervisionLevel): void {\n\t\tthis.supervisionLevel = level;\n\t\tthis.broadcast({\n\t\t\ttype: \"supervision_changed\",\n\t\t\tsessionId: \"*\",\n\t\t\ttimestamp: Date.now(),\n\t\t\tdata: { level },\n\t\t});\n\t\tthis.log(`Supervision level set to: ${level}`);\n\t}\n\n\tgetSupervisionLevel(): SupervisionLevel {\n\t\treturn this.supervisionLevel;\n\t}\n\n\t// ─── Confirmation Queue ───\n\n\tgetPendingConfirmations(): PendingDecision[] {\n\t\treturn Array.from(this.pendingDecisions.values());\n\t}\n\n\tasync confirmDecision(\n\t\tsessionId: string,\n\t\tapproved: boolean,\n\t\toverride?: { response?: string; useKeys?: boolean; keys?: string[] },\n\t): Promise<void> {\n\t\tconst pending = this.pendingDecisions.get(sessionId);\n\t\tif (!pending) {\n\t\t\tthrow new Error(`No pending decision for session ${sessionId}`);\n\t\t}\n\n\t\tthis.pendingDecisions.delete(sessionId);\n\t\tconst taskCtx = this.tasks.get(sessionId);\n\n\t\tif (approved) {\n\t\t\t// Use override if provided, otherwise use LLM suggestion\n\t\t\tconst decision: CoordinationLLMResponse = override\n\t\t\t\t? {\n\t\t\t\t\t\taction: \"respond\",\n\t\t\t\t\t\tresponse: override.response,\n\t\t\t\t\t\tuseKeys: override.useKeys,\n\t\t\t\t\t\tkeys: override.keys,\n\t\t\t\t\t\treasoning: \"Human-approved (with override)\",\n\t\t\t\t\t}\n\t\t\t\t: pending.llmDecision;\n\n\t\t\tif (taskCtx) {\n\t\t\t\ttaskCtx.decisions.push({\n\t\t\t\t\ttimestamp: Date.now(),\n\t\t\t\t\tevent: \"blocked\",\n\t\t\t\t\tpromptText: pending.promptText,\n\t\t\t\t\tdecision: decision.action,\n\t\t\t\t\tresponse:\n\t\t\t\t\t\tdecision.action === \"respond\"\n\t\t\t\t\t\t\t? decision.useKeys\n\t\t\t\t\t\t\t\t? `keys:${decision.keys?.join(\",\")}`\n\t\t\t\t\t\t\t\t: decision.response\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\treasoning: `Human-approved: ${decision.reasoning}`,\n\t\t\t\t});\n\t\t\t\ttaskCtx.autoResolvedCount = 0;\n\t\t\t}\n\n\t\t\tawait this.executeDecision(sessionId, decision);\n\n\t\t\tthis.broadcast({\n\t\t\t\ttype: \"confirmation_approved\",\n\t\t\t\tsessionId,\n\t\t\t\ttimestamp: Date.now(),\n\t\t\t\tdata: {\n\t\t\t\t\taction: decision.action,\n\t\t\t\t\tresponse: decision.response,\n\t\t\t\t\tuseKeys: decision.useKeys,\n\t\t\t\t\tkeys: decision.keys,\n\t\t\t\t},\n\t\t\t});\n\t\t} else {\n\t\t\t// Rejected — record and broadcast\n\t\t\tif (taskCtx) {\n\t\t\t\ttaskCtx.decisions.push({\n\t\t\t\t\ttimestamp: Date.now(),\n\t\t\t\t\tevent: \"blocked\",\n\t\t\t\t\tpromptText: pending.promptText,\n\t\t\t\t\tdecision: \"escalate\",\n\t\t\t\t\treasoning: \"Human rejected the suggested action\",\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis.broadcast({\n\t\t\t\ttype: \"confirmation_rejected\",\n\t\t\t\tsessionId,\n\t\t\t\ttimestamp: Date.now(),\n\t\t\t\tdata: { prompt: pending.promptText },\n\t\t\t});\n\t\t}\n\t}\n\n\t// ─── Internal ───\n\n\tlog(message: string): void {\n\t\tlogger.info(`[SwarmCoordinator] ${message}`);\n\t}\n}\n",
|
|
26
26
|
"/**\n * Swarm Coordinator — Idle Watchdog\n *\n * Extracted from swarm-coordinator.ts for modularity.\n * Scans active sessions for idle ones and asks the LLM to assess their state.\n *\n * @module services/swarm-idle-watchdog\n */\n\nimport { ModelType } from \"@elizaos/core\";\nimport { cleanForChat, stripAnsi } from \"./ansi-utils.js\";\nimport type {\n SwarmCoordinatorContext,\n TaskContext,\n} from \"./swarm-coordinator.js\";\nimport {\n buildIdleCheckPrompt,\n type CoordinationLLMResponse,\n type DecisionHistoryEntry,\n parseCoordinationResponse,\n type SharedDecision,\n type SiblingTaskSummary,\n type TaskContextSummary,\n} from \"./swarm-coordinator-prompts.js\";\nimport { checkAllTasksComplete, executeDecision } from \"./swarm-decision-loop.js\";\nimport { withTrajectoryContext } from \"./trajectory-context.js\";\n\n// ─── Constants ───\n\n/** How long a session can be idle before the watchdog checks on it (ms). */\nexport const IDLE_THRESHOLD_MS = 5 * 60 * 1000; // 5 minutes\n\n/** Max idle checks before force-escalating a session. */\nexport const MAX_IDLE_CHECKS = 4;\n\n// ─── Idle Watchdog ───\n\n/**\n * Scan all active sessions for idle ones. Called periodically by the watchdog timer.\n */\nexport async function scanIdleSessions(\n ctx: SwarmCoordinatorContext,\n): Promise<void> {\n const now = Date.now();\n for (const taskCtx of ctx.tasks.values()) {\n if (taskCtx.status !== \"active\") continue;\n\n // Liveness check: if the PTY session no longer exists in the worker\n // (e.g. parent process was SIGKILL'd and restarted), mark it dead.\n if (ctx.ptyService) {\n const session = ctx.ptyService.getSession(taskCtx.sessionId);\n if (!session) {\n ctx.log(\n `Idle watchdog: \"${taskCtx.label}\" — PTY session no longer exists, marking as stopped`,\n );\n taskCtx.status = \"stopped\";\n taskCtx.stoppedAt = now;\n taskCtx.decisions.push({\n timestamp: now,\n event: \"idle_watchdog\",\n promptText: \"PTY session no longer exists\",\n decision: \"stopped\",\n reasoning: \"Underlying PTY process is gone (likely killed during restart)\",\n });\n ctx.broadcast({\n type: \"stopped\",\n sessionId: taskCtx.sessionId,\n timestamp: now,\n data: { reason: \"pty_session_gone\" },\n });\n ctx.sendChatMessage(\n `[${taskCtx.label}] Session lost — the agent process is no longer running (likely killed during a restart).`,\n \"coding-agent\",\n );\n checkAllTasksComplete(ctx);\n continue;\n }\n }\n\n const idleMs = now - taskCtx.lastActivityAt;\n if (idleMs < IDLE_THRESHOLD_MS) continue;\n\n // Skip if already checking this session\n if (ctx.inFlightDecisions.has(taskCtx.sessionId)) continue;\n\n // Check if PTY output has changed since last scan — if data is flowing,\n // the session is active even without named events (e.g. loading spinners).\n // Compare stripped output to ignore TUI cursor movements and redraws\n // that would otherwise fool the watchdog into thinking the session is active.\n if (ctx.ptyService) {\n try {\n const rawOutput = await ctx.ptyService.getSessionOutput(\n taskCtx.sessionId,\n 20,\n );\n const currentOutput = stripAnsi(rawOutput).trim();\n const lastSeen = ctx.lastSeenOutput.get(taskCtx.sessionId) ?? \"\";\n ctx.lastSeenOutput.set(taskCtx.sessionId, currentOutput);\n if (currentOutput !== lastSeen) {\n // Output changed — session is producing data, reset idle state\n taskCtx.lastActivityAt = now;\n taskCtx.idleCheckCount = 0;\n ctx.log(\n `Idle watchdog: \"${taskCtx.label}\" has fresh PTY output — not idle`,\n );\n continue;\n }\n } catch {\n // Can't read output — proceed with idle check\n }\n }\n\n taskCtx.idleCheckCount++;\n const idleMinutes = Math.round(idleMs / 60_000);\n ctx.log(\n `Idle watchdog: \"${taskCtx.label}\" idle for ${idleMinutes}m (check ${taskCtx.idleCheckCount}/${MAX_IDLE_CHECKS})`,\n );\n\n if (taskCtx.idleCheckCount >= MAX_IDLE_CHECKS) {\n // Force-stop — too many idle checks with no resolution\n ctx.log(\n `Idle watchdog: force-stopping \"${taskCtx.label}\" after ${MAX_IDLE_CHECKS} checks`,\n );\n taskCtx.status = \"stopped\";\n taskCtx.stoppedAt = now;\n taskCtx.decisions.push({\n timestamp: now,\n event: \"idle_watchdog\",\n promptText: `Session idle for ${idleMinutes} minutes`,\n decision: \"stopped\",\n reasoning: `Force-stopped after ${MAX_IDLE_CHECKS} idle checks with no activity`,\n });\n ctx.broadcast({\n type: \"stopped\",\n sessionId: taskCtx.sessionId,\n timestamp: now,\n data: {\n reason: \"idle_watchdog_max_checks\",\n idleMinutes,\n idleCheckCount: taskCtx.idleCheckCount,\n },\n });\n ctx.sendChatMessage(\n `[${taskCtx.label}] Session stopped — idle for ${idleMinutes} minutes with no progress.`,\n \"coding-agent\",\n );\n // Force-kill the PTY session — idle timeout means nothing to save.\n if (ctx.ptyService) {\n try {\n await ctx.ptyService.stopSession(taskCtx.sessionId, /* force */ true);\n } catch (err) {\n ctx.log(`Idle watchdog: failed to stop session ${taskCtx.sessionId}: ${err}`);\n taskCtx.status = \"error\";\n ctx.broadcast({\n type: \"error\",\n sessionId: taskCtx.sessionId,\n timestamp: now,\n data: { message: `Failed to stop idle session: ${err}` },\n });\n }\n }\n // Check if all tasks are now done\n checkAllTasksComplete(ctx);\n continue;\n }\n\n // Ask the LLM what's going on\n await handleIdleCheck(ctx, taskCtx, idleMinutes);\n }\n}\n\n/**\n * Handle an idle session by asking the LLM to assess its state.\n */\nexport async function handleIdleCheck(\n ctx: SwarmCoordinatorContext,\n taskCtx: TaskContext,\n idleMinutes: number,\n): Promise<void> {\n const sessionId = taskCtx.sessionId;\n ctx.inFlightDecisions.add(sessionId);\n try {\n let recentOutput = \"\";\n if (ctx.ptyService) {\n try {\n const raw = await ctx.ptyService.getSessionOutput(sessionId, 50);\n recentOutput = cleanForChat(raw);\n } catch {\n recentOutput = \"\";\n }\n }\n\n const contextSummary: TaskContextSummary = {\n sessionId,\n agentType: taskCtx.agentType,\n label: taskCtx.label,\n originalTask: taskCtx.originalTask,\n workdir: taskCtx.workdir,\n };\n\n const decisionHistory: DecisionHistoryEntry[] = taskCtx.decisions\n .filter((d) => d.decision !== \"auto_resolved\")\n .slice(-5)\n .map((d) => ({\n event: d.event,\n promptText: d.promptText,\n action: d.decision,\n response: d.response,\n reasoning: d.reasoning,\n }));\n\n const siblings: SiblingTaskSummary[] = [];\n for (const [sid, task] of ctx.tasks) {\n if (sid === sessionId) continue;\n siblings.push({\n label: task.label,\n agentType: task.agentType,\n originalTask: task.originalTask,\n status: task.status,\n });\n }\n\n const prompt = buildIdleCheckPrompt(\n contextSummary,\n recentOutput,\n idleMinutes,\n taskCtx.idleCheckCount,\n MAX_IDLE_CHECKS,\n decisionHistory,\n siblings,\n ctx.sharedDecisions,\n ctx.getSwarmContext(),\n );\n\n let decision: CoordinationLLMResponse | null = null;\n try {\n const result = await withTrajectoryContext(\n ctx.runtime,\n {\n source: \"orchestrator\",\n decisionType: \"idle-check\",\n sessionId,\n taskLabel: taskCtx.label,\n repo: taskCtx.repo,\n workdir: taskCtx.workdir,\n originalTask: taskCtx.originalTask,\n },\n () => ctx.runtime.useModel(ModelType.TEXT_SMALL, { prompt }),\n );\n decision = parseCoordinationResponse(result);\n } catch (err) {\n ctx.log(`Idle check LLM call failed: ${err}`);\n }\n\n if (!decision) {\n ctx.log(\n `Idle check for \"${taskCtx.label}\": LLM returned invalid response — escalating`,\n );\n ctx.sendChatMessage(\n `[${taskCtx.label}] Session idle for ${idleMinutes}m — couldn't determine status. Needs your attention.`,\n \"coding-agent\",\n );\n return;\n }\n\n // Record the decision\n taskCtx.decisions.push({\n timestamp: Date.now(),\n event: \"idle_watchdog\",\n promptText: `Session idle for ${idleMinutes} minutes`,\n decision: decision.action,\n response:\n decision.action === \"respond\"\n ? decision.useKeys\n ? `keys:${decision.keys?.join(\",\")}`\n : decision.response\n : undefined,\n reasoning: decision.reasoning,\n });\n\n ctx.broadcast({\n type: \"idle_check_decision\",\n sessionId,\n timestamp: Date.now(),\n data: {\n action: decision.action,\n idleMinutes,\n idleCheckNumber: taskCtx.idleCheckCount,\n reasoning: decision.reasoning,\n },\n });\n\n // Send chat message\n if (decision.action === \"complete\") {\n // executeDecision handles chat + stop for \"complete\"\n } else if (decision.action === \"respond\") {\n const actionDesc = decision.useKeys\n ? `Sent keys: ${decision.keys?.join(\", \")}`\n : `Nudged: ${decision.response ?? \"\"}`;\n ctx.log(`[${taskCtx.label}] Idle for ${idleMinutes}m — ${actionDesc}`);\n } else if (decision.action === \"escalate\") {\n ctx.sendChatMessage(\n `[${taskCtx.label}] Idle for ${idleMinutes}m — needs your attention: ${decision.reasoning}`,\n \"coding-agent\",\n );\n } else if (decision.action === \"ignore\") {\n ctx.log(\n `Idle check for \"${taskCtx.label}\": LLM says still working — ${decision.reasoning}`,\n );\n }\n\n await executeDecision(ctx, sessionId, decision);\n } finally {\n ctx.inFlightDecisions.delete(sessionId);\n }\n}\n",
|
|
27
27
|
"/**\n * Debug PTY Capture — optional session recording for offline analysis.\n *\n * Activated by setting `PARALLAX_DEBUG_CAPTURE=1`. When enabled, all PTY\n * output and stdin are recorded per-session using `pty-state-capture`.\n * Capture files persist in `.parallax/pty-captures/<sessionId>/` after\n * the agent session is killed, enabling post-mortem analysis of state\n * transitions, stall classifications, and coordinator timing.\n *\n * The `pty-state-capture` package is dynamically imported — if not\n * installed, capture is silently disabled. This means it can stay out\n * of production dependencies entirely.\n *\n * @module services/debug-capture\n */\n\nimport { logger } from \"@elizaos/core\";\n\n/** Re-export the types we use so callers don't need to import pty-state-capture directly. */\ninterface CaptureManagerLike {\n openSession(\n sessionId: string,\n overrides?: { source?: string },\n ): Promise<unknown>;\n feed(\n sessionId: string,\n chunk: string,\n direction?: \"stdout\" | \"stderr\" | \"stdin\",\n ): Promise<unknown>;\n lifecycle(\n sessionId: string,\n event: string,\n detail?: string,\n ): Promise<void>;\n snapshot(sessionId: string): unknown | null;\n}\n\nlet captureManager: CaptureManagerLike | null = null;\nlet initAttempted = false;\n\n/**\n * Returns true if debug capture is enabled via environment variable.\n */\nexport function isDebugCaptureEnabled(): boolean {\n return process.env.PARALLAX_DEBUG_CAPTURE === \"1\";\n}\n\n/**\n * Lazily initialize the capture manager. Returns null if:\n * - PARALLAX_DEBUG_CAPTURE is not set to \"1\"\n * - pty-state-capture is not installed\n * - Initialization fails for any reason\n */\nasync function ensureCaptureManager(): Promise<CaptureManagerLike | null> {\n if (captureManager) return captureManager;\n if (initAttempted) return null;\n initAttempted = true;\n\n if (!isDebugCaptureEnabled()) return null;\n\n try {\n const mod = await import(\"pty-state-capture\");\n const { PTYStateCaptureManager } = mod;\n captureManager = new PTYStateCaptureManager({\n outputRootDir: \".parallax/pty-captures\",\n defaultRows: 80,\n defaultCols: 220,\n });\n logger.info(\"[debug-capture] PTY state capture enabled — writing to .parallax/pty-captures/\");\n return captureManager;\n } catch {\n logger.debug(\"[debug-capture] pty-state-capture not available — capture disabled\");\n return null;\n }\n}\n\n/**\n * Open a capture session for a PTY session. Call this when spawning.\n */\nexport async function captureSessionOpen(\n sessionId: string,\n agentType: string,\n): Promise<void> {\n const mgr = await ensureCaptureManager();\n if (!mgr) return;\n try {\n await mgr.openSession(sessionId, { source: agentType });\n } catch (err) {\n logger.debug(`[debug-capture] Failed to open session ${sessionId}: ${err}`);\n }\n}\n\n/**\n * Feed PTY output data to the capture. Call this on every data chunk.\n */\nexport async function captureFeed(\n sessionId: string,\n chunk: string,\n direction: \"stdout\" | \"stderr\" | \"stdin\" = \"stdout\",\n): Promise<void> {\n if (!captureManager) return;\n try {\n await captureManager.feed(sessionId, chunk, direction);\n } catch (err) {\n logger.debug(`[debug-capture] Feed error for ${sessionId}: ${err}`);\n }\n}\n\n/**\n * Record a lifecycle event (session_ready, session_stopped, etc.).\n */\nexport async function captureLifecycle(\n sessionId: string,\n event: \"session_started\" | \"session_ready\" | \"session_stopped\" | \"session_error\",\n detail?: string,\n): Promise<void> {\n if (!captureManager) return;\n try {\n await captureManager.lifecycle(sessionId, event, detail);\n } catch (err) {\n logger.debug(`[debug-capture] Lifecycle error for ${sessionId}: ${err}`);\n }\n}\n\n/**\n * Get a snapshot of a capture session's current state.\n */\nexport function captureSnapshot(sessionId: string): unknown | null {\n if (!captureManager) return null;\n try {\n return captureManager.snapshot(sessionId);\n } catch (err) {\n logger.debug(`[debug-capture] Snapshot error for ${sessionId}: ${err}`);\n return null;\n }\n}\n\n/** @internal Reset module state for testing only. */\nexport function _resetForTesting(): void {\n captureManager = null;\n initAttempted = false;\n}\n",
|
|
28
|
-
"/**\n * Handler logic for the START_CODING_TASK action.\n *\n * - handleMultiAgent() -- Multi-agent mode (pipe-delimited `agents` param)\n * - handleSingleAgent() -- Single-agent mode (standard handler path)\n *\n * @module actions/coding-task-handlers\n */\n\nimport {\n type ActionResult,\n type HandlerCallback,\n type IAgentRuntime,\n logger,\n type Memory,\n ModelType,\n type State,\n} from \"@elizaos/core\";\nimport type { AgentCredentials, ApprovalPreset } from \"coding-agent-adapters\";\nimport type { PTYService } from \"../services/pty-service.js\";\nimport { getCoordinator } from \"../services/pty-service.js\";\nimport {\n type CodingAgentType,\n isPiAgentType,\n normalizeAgentType,\n type SessionInfo,\n toPiCommand,\n} from \"../services/pty-types.js\";\nimport type { CodingWorkspaceService } from \"../services/workspace-service.js\";\nimport type { AgentSelectionStrategy } from \"../services/agent-selection.js\";\nimport { withTrajectoryContext } from \"../services/trajectory-context.js\";\nimport {\n formatPastExperience,\n queryPastExperience,\n} from \"../services/trajectory-feedback.js\";\nimport {\n createScratchDir,\n generateLabel,\n registerSessionEvents,\n} from \"./coding-task-helpers.js\";\n\n/** Maximum number of agents that can be spawned in a single multi-agent call */\nconst MAX_CONCURRENT_AGENTS = 8;\n\n/** Known agent type prefixes used in \"agentType:task\" spec format. */\nconst KNOWN_AGENT_PREFIXES = [\n \"claude\", \"claude-code\", \"claudecode\", \"codex\", \"openai\",\n \"gemini\", \"google\", \"aider\", \"pi\", \"pi-ai\", \"piai\",\n \"pi-coding-agent\", \"picodingagent\", \"shell\", \"bash\",\n] as const;\n\n/**\n * Strip an agent-type prefix from a spec string (e.g. \"claude:Fix the bug\" → \"Fix the bug\").\n * Returns the original string if no known prefix is found.\n */\nfunction stripAgentPrefix(spec: string): string {\n const colonIdx = spec.indexOf(\":\");\n if (colonIdx <= 0 || colonIdx >= 20) return spec;\n const prefix = spec.slice(0, colonIdx).trim().toLowerCase();\n if ((KNOWN_AGENT_PREFIXES as readonly string[]).includes(prefix)) {\n return spec.slice(colonIdx + 1).trim();\n }\n return spec;\n}\n\n/**\n * Build CLAUDE.md instructions that tell a swarm agent how to coordinate.\n * Each agent gets awareness of its role within the swarm and instructions\n * to surface design decisions explicitly so the orchestrator can share them.\n */\nfunction buildSwarmMemoryInstructions(\n agentLabel: string,\n agentTask: string,\n allSubtasks: string[],\n agentIndex: number,\n): string {\n const siblingTasks = allSubtasks\n .filter((_, i) => i !== agentIndex)\n .map((t, i) => ` ${i + 1}. ${t}`)\n .join(\"\\n\");\n\n return (\n `# Swarm Coordination\\n\\n` +\n `You are agent \"${agentLabel}\" in a multi-agent swarm of ${allSubtasks.length} agents.\\n` +\n `Your task: ${agentTask}\\n\\n` +\n `Other agents are working on:\\n${siblingTasks}\\n\\n` +\n `## Coordination Rules\\n\\n` +\n `- **Follow the Shared Context exactly.** The planning brief above contains ` +\n `concrete decisions (names, file paths, APIs, conventions). Use them as-is.\\n` +\n `- **Surface design decisions.** If you need to make a creative or architectural ` +\n `choice not covered by the Shared Context (naming something, choosing a library, ` +\n `designing an interface, picking an approach), state your decision clearly in your ` +\n `output so the orchestrator can share it with sibling agents. Write it as:\\n` +\n ` \"DECISION: [brief description of what you decided and why]\"\\n` +\n `- **Don't contradict sibling work.** If the orchestrator tells you about decisions ` +\n `other agents have made, align with them.\\n` +\n `- **Ask when uncertain.** If your task depends on another agent's output and you ` +\n `don't have enough context, ask rather than guessing.\\n`\n );\n}\n\n/**\n * Generate a shared context brief for a swarm of agents.\n * The LLM produces shared guidance (style, conventions, constraints) from\n * the user's request and subtask list. Task-type agnostic — works for coding,\n * research, writing, or any multi-agent workflow.\n */\nasync function generateSwarmContext(\n runtime: IAgentRuntime,\n subtasks: string[],\n userRequest: string,\n): Promise<string> {\n const taskList = subtasks\n .map((t, i) => ` ${i + 1}. ${t}`)\n .join(\"\\n\");\n\n const prompt =\n `You are an AI orchestrator about to launch ${subtasks.length} parallel agents. ` +\n `Before they start, produce a brief shared context document so all agents stay aligned.\\n\\n` +\n `User's request: \"${userRequest}\"\\n\\n` +\n `Subtasks being assigned:\\n${taskList}\\n\\n` +\n `Generate a concise shared context brief (3-10 bullet points) covering:\\n` +\n `- Project intent and overall goal\\n` +\n `- Key constraints or preferences from the user's request\\n` +\n `- Conventions all agents should follow (naming, style, patterns, tone)\\n` +\n `- How subtasks relate to each other (dependencies, shared interfaces, etc.)\\n` +\n `- Any decisions that should be consistent across all agents\\n\\n` +\n `CRITICAL — Concrete Decisions:\\n` +\n `If any subtask involves creative choices (naming a feature, choosing an approach, ` +\n `designing an API, picking a concept), YOU must make those decisions NOW in this brief. ` +\n `Do NOT leave creative choices to individual agents — they run in parallel and will ` +\n `each make different choices, causing inconsistency.\\n` +\n `For example: if one agent builds a feature and another writes tests for it, ` +\n `decide the feature name, file paths, function signatures, and key design choices here ` +\n `so both agents use the same names and structure.\\n\\n` +\n `Only include what's relevant — skip categories that don't apply. ` +\n `Be specific and actionable, not generic. Be as detailed as the task requires — ` +\n `a trivial task needs a few bullets, a complex task deserves a thorough roadmap.\\n\\n` +\n `Output ONLY the bullet points, no preamble.`;\n\n try {\n const result = await withTrajectoryContext(\n runtime,\n { source: \"orchestrator\", decisionType: \"swarm-context-generation\" },\n () =>\n runtime.useModel(ModelType.TEXT_SMALL, {\n prompt,\n temperature: 0.3,\n }),\n );\n return result?.trim() || \"\";\n } catch (err) {\n logger.warn(`Swarm context generation failed: ${err}`);\n return \"\";\n }\n}\n\n/** Shared context passed to both multi-agent and single-agent handlers */\nexport interface CodingTaskContext {\n runtime: IAgentRuntime;\n ptyService: PTYService;\n wsService: CodingWorkspaceService | undefined;\n credentials: AgentCredentials;\n customCredentials: Record<string, string> | undefined;\n callback: HandlerCallback | undefined;\n message: Memory;\n state: State | undefined;\n repo: string | undefined;\n defaultAgentType: CodingAgentType;\n rawAgentType: string;\n agentSelectionStrategy: AgentSelectionStrategy;\n memoryContent: string | undefined;\n approvalPreset: string | undefined;\n explicitLabel: string | undefined;\n}\n\n/**\n * Multi-agent mode handler.\n *\n * Parses pipe-delimited agent specs and spawns each agent in its own\n * workspace clone (or scratch directory).\n */\nexport async function handleMultiAgent(\n ctx: CodingTaskContext,\n agentsParam: string,\n): Promise<ActionResult | undefined> {\n const {\n runtime,\n ptyService,\n wsService,\n credentials,\n customCredentials,\n callback,\n message,\n state,\n repo,\n defaultAgentType,\n rawAgentType,\n memoryContent,\n approvalPreset,\n explicitLabel,\n } = ctx;\n\n // Parse pipe-delimited agent specs: \"task1 | task2 | agentType:task3\"\n const agentSpecs = agentsParam\n .split(\"|\")\n .map((s) => s.trim())\n .filter(Boolean);\n\n if (agentSpecs.length === 0) {\n if (callback) {\n await callback({\n text: \"No agent tasks provided in agents parameter.\",\n });\n }\n return { success: false, error: \"EMPTY_AGENTS_PARAM\" };\n }\n\n // Cap multi-agent count to the concurrency limit\n if (agentSpecs.length > MAX_CONCURRENT_AGENTS) {\n if (callback) {\n await callback({\n text: `Too many agents requested (${agentSpecs.length}). Maximum is ${MAX_CONCURRENT_AGENTS}.`,\n });\n }\n return { success: false, error: \"TOO_MANY_AGENTS\" };\n }\n\n if (repo && !wsService) {\n if (callback) {\n await callback({\n text: \"Workspace Service is not available. Cannot clone repository.\",\n });\n }\n return { success: false, error: \"WORKSPACE_SERVICE_UNAVAILABLE\" };\n }\n\n if (callback) {\n await callback({\n text: `Launching ${agentSpecs.length} agents${repo ? ` on ${repo}` : \"\"}...`,\n });\n }\n\n // Planning phase: generate shared context brief for multi-agent coordination.\n // Strip agent-type prefixes from specs to get clean subtask descriptions.\n const cleanSubtasks = agentSpecs.map(stripAgentPrefix);\n const userRequest = (message.content as { text?: string })?.text ?? agentsParam;\n const swarmContext = agentSpecs.length > 1\n ? await generateSwarmContext(runtime, cleanSubtasks, userRequest)\n : \"\";\n\n // Store swarm context on coordinator for use in decision prompts\n if (swarmContext) {\n const coordinator = getCoordinator(runtime);\n coordinator?.setSwarmContext(swarmContext);\n }\n\n // Query past orchestrator experience for trajectory feedback injection.\n // This feeds lessons from previous agent sessions back into new agents,\n // preventing repeated mistakes and maintaining consistency with past decisions.\n const pastExperience = await queryPastExperience(runtime, {\n taskDescription: userRequest,\n lookbackHours: 48,\n maxEntries: 8,\n repo,\n });\n const pastExperienceBlock = formatPastExperience(pastExperience);\n\n const results: Array<{\n sessionId: string;\n agentType: string;\n workdir: string;\n workspaceId?: string;\n branch?: string;\n label: string;\n status: string;\n error?: string;\n }> = [];\n\n for (const [i, spec] of agentSpecs.entries()) {\n // Parse optional \"agentType:task\" prefix.\n // In fixed mode, ignore LLM-chosen prefixes — all agents use the\n // configured default. Only ranked mode allows per-subtask overrides.\n let specAgentType = defaultAgentType;\n let specPiRequested = isPiAgentType(rawAgentType);\n let specRequestedType = rawAgentType;\n let specTask = spec;\n const colonIdx = spec.indexOf(\":\");\n if (\n ctx.agentSelectionStrategy !== \"fixed\" &&\n colonIdx > 0 &&\n colonIdx < 20\n ) {\n const prefix = spec.slice(0, colonIdx).trim().toLowerCase();\n if ((KNOWN_AGENT_PREFIXES as readonly string[]).includes(prefix)) {\n specRequestedType = prefix;\n specPiRequested = isPiAgentType(prefix);\n specAgentType = normalizeAgentType(prefix);\n specTask = spec.slice(colonIdx + 1).trim();\n }\n } else if (ctx.agentSelectionStrategy === \"fixed\" && colonIdx > 0 && colonIdx < 20) {\n // Strip the prefix from the task text but keep the default agent type\n specTask = stripAgentPrefix(spec);\n }\n\n // Generate label for this specific agent\n const specLabel = explicitLabel\n ? `${explicitLabel}-${i + 1}`\n : generateLabel(repo, specTask);\n\n try {\n // Provision workspace (each agent gets its own clone or scratch dir)\n let workdir: string;\n let workspaceId: string | undefined;\n let branch: string | undefined;\n\n if (repo && wsService) {\n const workspace = await wsService.provisionWorkspace({ repo });\n workdir = workspace.path;\n workspaceId = workspace.id;\n branch = workspace.branch;\n wsService.setLabel(workspace.id, specLabel);\n } else {\n workdir = createScratchDir();\n }\n\n // Preflight check\n if (specAgentType !== \"shell\" && specAgentType !== \"pi\") {\n const [preflight] = await ptyService.checkAvailableAgents([\n specAgentType as Exclude<CodingAgentType, \"shell\" | \"pi\">,\n ]);\n if (preflight && !preflight.installed) {\n results.push({\n sessionId: \"\",\n agentType: specAgentType,\n workdir,\n label: specLabel,\n status: \"failed\",\n error: `${preflight.adapter} CLI is not installed`,\n });\n continue;\n }\n }\n\n // Check if coordinator is active — route blocking prompts through it\n const coordinator = getCoordinator(runtime);\n\n // Spawn the agent — prepend shared context brief if available\n const taskWithContext = swarmContext\n ? `${specTask}\\n\\n--- Shared Context (from project planning) ---\\n${swarmContext}\\n--- End Shared Context ---`\n : specTask;\n const initialTask = specPiRequested ? toPiCommand(taskWithContext) : taskWithContext;\n const displayType = specPiRequested ? \"pi\" : specAgentType;\n\n // Append swarm coordination instructions to agent memory so the agent\n // knows to surface design decisions explicitly for the orchestrator.\n const swarmMemory = agentSpecs.length > 1 && swarmContext\n ? buildSwarmMemoryInstructions(specLabel, specTask, cleanSubtasks, i)\n : undefined;\n const agentMemory = [memoryContent, swarmMemory, pastExperienceBlock]\n .filter(Boolean)\n .join(\"\\n\\n\") || undefined;\n\n const session: SessionInfo = await ptyService.spawnSession({\n name: `coding-${Date.now()}-${i}`,\n agentType: specAgentType,\n workdir,\n initialTask,\n memoryContent: agentMemory,\n credentials,\n approvalPreset:\n (approvalPreset as ApprovalPreset | undefined) ??\n ptyService.defaultApprovalPreset,\n customCredentials,\n ...(coordinator ? { skipAdapterAutoResponse: true } : {}),\n metadata: {\n requestedType: specRequestedType,\n messageId: message.id,\n userId: (message as unknown as Record<string, unknown>).userId,\n workspaceId,\n label: specLabel,\n multiAgentIndex: i,\n },\n });\n\n // Register event handler\n const isScratch = !repo;\n const scratchDir = isScratch ? workdir : null;\n registerSessionEvents(\n ptyService,\n runtime,\n session.id,\n specLabel,\n scratchDir,\n callback,\n !!coordinator,\n );\n if (coordinator && specTask) {\n coordinator.registerTask(session.id, {\n agentType: specAgentType,\n label: specLabel,\n originalTask: specTask,\n workdir,\n repo,\n });\n }\n\n results.push({\n sessionId: session.id,\n agentType: displayType,\n workdir,\n workspaceId,\n branch,\n label: specLabel,\n status: session.status,\n });\n\n if (callback) {\n await callback({\n text: `[${i + 1}/${agentSpecs.length}] Spawned ${displayType} agent as \"${specLabel}\"`,\n });\n }\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : String(error);\n logger.error(\n `[START_CODING_TASK] Failed to spawn agent ${i + 1}:`,\n errorMessage,\n );\n results.push({\n sessionId: \"\",\n agentType: specAgentType,\n workdir: \"\",\n label: specLabel,\n status: \"failed\",\n error: errorMessage,\n });\n }\n }\n\n // Store all sessions in state\n if (state) {\n state.codingSessions = results.filter((r) => r.sessionId);\n }\n\n const succeeded = results.filter((r) => r.sessionId);\n const failed = results.filter((r) => !r.sessionId);\n const summary = [\n `Launched ${succeeded.length}/${agentSpecs.length} agents${repo ? ` on ${repo}` : \"\"}:`,\n ...succeeded.map(\n (r) => ` - \"${r.label}\" (${r.agentType}) [session: ${r.sessionId}]`,\n ),\n ...(failed.length > 0\n ? [`Failed: ${failed.map((r) => `\"${r.label}\": ${r.error}`).join(\", \")}`]\n : []),\n ].join(\"\\n\");\n\n if (callback) {\n await callback({ text: summary });\n }\n\n return {\n success: failed.length === 0,\n text: summary,\n data: { agents: results },\n };\n}\n\n/**\n * Single-agent mode handler.\n *\n * Provisions a workspace (clone or scratch) and spawns a single coding agent.\n */\nexport async function handleSingleAgent(\n ctx: CodingTaskContext,\n task: string | undefined,\n): Promise<ActionResult | undefined> {\n logger.debug(\n `[START_CODING_TASK] handleSingleAgent called, agentType=${ctx.defaultAgentType}, task=${task ? \"yes\" : \"none\"}, repo=${ctx.repo ?? \"none\"}`,\n );\n const {\n runtime,\n ptyService,\n wsService,\n credentials,\n customCredentials,\n callback,\n message,\n state,\n repo,\n defaultAgentType: agentType,\n rawAgentType,\n memoryContent,\n approvalPreset,\n explicitLabel,\n } = ctx;\n\n // Generate or use explicit label\n const label = explicitLabel || generateLabel(repo, task);\n\n // --- Step 1: Resolve workspace directory ---\n let workdir: string;\n let workspaceId: string | undefined;\n let branch: string | undefined;\n\n if (repo) {\n if (!wsService) {\n if (callback) {\n await callback({\n text: \"Workspace Service is not available. Cannot clone repository.\",\n });\n }\n return { success: false, error: \"WORKSPACE_SERVICE_UNAVAILABLE\" };\n }\n\n try {\n if (callback) {\n await callback({ text: `Cloning ${repo}...` });\n }\n\n const workspace = await wsService.provisionWorkspace({ repo });\n workdir = workspace.path;\n workspaceId = workspace.id;\n branch = workspace.branch;\n\n wsService.setLabel(workspace.id, label);\n\n if (state) {\n state.codingWorkspace = {\n id: workspace.id,\n path: workspace.path,\n branch: workspace.branch,\n isWorktree: workspace.isWorktree,\n label,\n };\n }\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : String(error);\n if (callback) {\n await callback({\n text: `Failed to clone repository: ${errorMessage}`,\n });\n }\n return { success: false, error: errorMessage };\n }\n } else {\n workdir = createScratchDir();\n }\n\n // --- Step 2: Spawn the agent ---\n logger.debug(\n `[START_CODING_TASK] Spawning ${agentType} agent, task: ${task ? `\"${task.slice(0, 80)}...\"` : \"(none)\"}, workdir: ${workdir}`,\n );\n try {\n if (agentType !== \"shell\" && agentType !== \"pi\") {\n const [preflight] = await ptyService.checkAvailableAgents([\n agentType as Exclude<CodingAgentType, \"shell\" | \"pi\">,\n ]);\n if (preflight && !preflight.installed) {\n logger.warn(\n `[START_CODING_TASK] ${preflight.adapter} CLI not installed`,\n );\n if (callback) {\n await callback({\n text: `${preflight.adapter} CLI is not installed.\\nInstall with: ${preflight.installCommand}\\nDocs: ${preflight.docsUrl}`,\n });\n }\n return { success: false, error: \"AGENT_NOT_INSTALLED\" };\n }\n logger.debug(\n `[START_CODING_TASK] Preflight OK: ${preflight?.adapter} installed`,\n );\n }\n\n const piRequested = isPiAgentType(rawAgentType);\n const initialTask = piRequested ? toPiCommand(task) : task;\n const displayType = piRequested ? \"pi\" : agentType;\n\n // Query past experience for trajectory feedback injection\n const pastExperience = await queryPastExperience(runtime, {\n taskDescription: task,\n lookbackHours: 48,\n maxEntries: 6,\n repo,\n });\n const pastExperienceBlock = formatPastExperience(pastExperience);\n const agentMemory = [memoryContent, pastExperienceBlock]\n .filter(Boolean)\n .join(\"\\n\\n\") || undefined;\n\n // Check if coordinator is active — route blocking prompts through it\n const coordinator = getCoordinator(runtime);\n\n logger.debug(\n `[START_CODING_TASK] Calling spawnSession (${agentType}, coordinator=${!!coordinator})`,\n );\n const session: SessionInfo = await ptyService.spawnSession({\n name: `coding-${Date.now()}`,\n agentType,\n workdir,\n initialTask,\n memoryContent: agentMemory,\n credentials,\n approvalPreset:\n (approvalPreset as ApprovalPreset | undefined) ??\n ptyService.defaultApprovalPreset,\n customCredentials,\n ...(coordinator ? { skipAdapterAutoResponse: true } : {}),\n metadata: {\n requestedType: rawAgentType,\n messageId: message.id,\n userId: (message as unknown as Record<string, unknown>).userId,\n workspaceId,\n label,\n },\n });\n logger.debug(\n `[START_CODING_TASK] Session spawned: ${session.id} (${session.status})`,\n );\n\n // Register event handler\n const isScratchWorkspace = !repo;\n const scratchDir = isScratchWorkspace ? workdir : null;\n registerSessionEvents(\n ptyService,\n runtime,\n session.id,\n label,\n scratchDir,\n callback,\n !!coordinator,\n );\n if (coordinator && task) {\n coordinator.registerTask(session.id, {\n agentType,\n label,\n originalTask: task,\n workdir,\n repo,\n });\n }\n\n if (state) {\n state.codingSession = {\n id: session.id,\n agentType: session.agentType,\n workdir: session.workdir,\n status: session.status,\n };\n }\n\n const summary = repo\n ? `Cloned ${repo} and started ${displayType} agent as \"${label}\"${task ? ` with task: \"${task}\"` : \"\"}`\n : `Started ${displayType} agent as \"${label}\" in scratch workspace${task ? ` with task: \"${task}\"` : \"\"}`;\n\n if (callback) {\n await callback({ text: `${summary}\\nSession ID: ${session.id}` });\n }\n\n return {\n success: true,\n text: summary,\n data: {\n sessionId: session.id,\n agentType: displayType,\n workdir: session.workdir,\n workspaceId,\n branch,\n label,\n status: session.status,\n },\n };\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : String(error);\n logger.error(\"[START_CODING_TASK] Failed to spawn agent:\", errorMessage);\n\n if (callback) {\n await callback({\n text: `Failed to start coding agent: ${errorMessage}`,\n });\n }\n return { success: false, error: errorMessage };\n }\n}\n",
|
|
28
|
+
"/**\n * Handler logic for the START_CODING_TASK action.\n *\n * handleMultiAgent() handles both multi-agent and single-agent modes.\n * A single-agent call is just a length-1 agent spec.\n *\n * @module actions/coding-task-handlers\n */\n\nimport {\n type ActionResult,\n type HandlerCallback,\n type IAgentRuntime,\n logger,\n type Memory,\n ModelType,\n type State,\n} from \"@elizaos/core\";\nimport type { AgentCredentials, ApprovalPreset } from \"coding-agent-adapters\";\nimport type { PTYService } from \"../services/pty-service.js\";\nimport { getCoordinator } from \"../services/pty-service.js\";\nimport {\n type CodingAgentType,\n isPiAgentType,\n normalizeAgentType,\n type SessionInfo,\n toPiCommand,\n} from \"../services/pty-types.js\";\nimport type { CodingWorkspaceService } from \"../services/workspace-service.js\";\nimport type { AgentSelectionStrategy } from \"../services/agent-selection.js\";\nimport { withTrajectoryContext } from \"../services/trajectory-context.js\";\nimport {\n formatPastExperience,\n queryPastExperience,\n} from \"../services/trajectory-feedback.js\";\nimport {\n createScratchDir,\n generateLabel,\n registerSessionEvents,\n} from \"./coding-task-helpers.js\";\n\n/** Maximum number of agents that can be spawned in a single multi-agent call */\nconst MAX_CONCURRENT_AGENTS = 8;\n\n/** Known agent type prefixes used in \"agentType:task\" spec format. */\nconst KNOWN_AGENT_PREFIXES = [\n \"claude\", \"claude-code\", \"claudecode\", \"codex\", \"openai\",\n \"gemini\", \"google\", \"aider\", \"pi\", \"pi-ai\", \"piai\",\n \"pi-coding-agent\", \"picodingagent\", \"shell\", \"bash\",\n] as const;\n\n/**\n * Strip an agent-type prefix from a spec string (e.g. \"claude:Fix the bug\" → \"Fix the bug\").\n * Returns the original string if no known prefix is found.\n */\nfunction stripAgentPrefix(spec: string): string {\n const colonIdx = spec.indexOf(\":\");\n if (colonIdx <= 0 || colonIdx >= 20) return spec;\n const prefix = spec.slice(0, colonIdx).trim().toLowerCase();\n if ((KNOWN_AGENT_PREFIXES as readonly string[]).includes(prefix)) {\n return spec.slice(colonIdx + 1).trim();\n }\n return spec;\n}\n\n/**\n * Build CLAUDE.md instructions that tell a swarm agent how to coordinate.\n * Each agent gets awareness of its role within the swarm and instructions\n * to surface design decisions explicitly so the orchestrator can share them.\n */\nfunction buildSwarmMemoryInstructions(\n agentLabel: string,\n agentTask: string,\n allSubtasks: string[],\n agentIndex: number,\n): string {\n const siblingTasks = allSubtasks\n .filter((_, i) => i !== agentIndex)\n .map((t, i) => ` ${i + 1}. ${t}`)\n .join(\"\\n\");\n\n return (\n `# Swarm Coordination\\n\\n` +\n `You are agent \"${agentLabel}\" in a multi-agent swarm of ${allSubtasks.length} agents.\\n` +\n `Your task: ${agentTask}\\n\\n` +\n `Other agents are working on:\\n${siblingTasks}\\n\\n` +\n `## Coordination Rules\\n\\n` +\n `- **Follow the Shared Context exactly.** The planning brief above contains ` +\n `concrete decisions (names, file paths, APIs, conventions). Use them as-is.\\n` +\n `- **Surface design decisions.** If you need to make a creative or architectural ` +\n `choice not covered by the Shared Context (naming something, choosing a library, ` +\n `designing an interface, picking an approach), state your decision clearly in your ` +\n `output so the orchestrator can share it with sibling agents. Write it as:\\n` +\n ` \"DECISION: [brief description of what you decided and why]\"\\n` +\n `- **Don't contradict sibling work.** If the orchestrator tells you about decisions ` +\n `other agents have made, align with them.\\n` +\n `- **Ask when uncertain.** If your task depends on another agent's output and you ` +\n `don't have enough context, ask rather than guessing.\\n`\n );\n}\n\n/**\n * Generate a shared context brief for a swarm of agents.\n * The LLM produces shared guidance (style, conventions, constraints) from\n * the user's request and subtask list. Task-type agnostic — works for coding,\n * research, writing, or any multi-agent workflow.\n */\nasync function generateSwarmContext(\n runtime: IAgentRuntime,\n subtasks: string[],\n userRequest: string,\n): Promise<string> {\n const taskList = subtasks\n .map((t, i) => ` ${i + 1}. ${t}`)\n .join(\"\\n\");\n\n const prompt =\n `You are an AI orchestrator about to launch ${subtasks.length} parallel agents. ` +\n `Before they start, produce a brief shared context document so all agents stay aligned.\\n\\n` +\n `User's request: \"${userRequest}\"\\n\\n` +\n `Subtasks being assigned:\\n${taskList}\\n\\n` +\n `Generate a concise shared context brief (3-10 bullet points) covering:\\n` +\n `- Project intent and overall goal\\n` +\n `- Key constraints or preferences from the user's request\\n` +\n `- Conventions all agents should follow (naming, style, patterns, tone)\\n` +\n `- How subtasks relate to each other (dependencies, shared interfaces, etc.)\\n` +\n `- Any decisions that should be consistent across all agents\\n\\n` +\n `CRITICAL — Concrete Decisions:\\n` +\n `If any subtask involves creative choices (naming a feature, choosing an approach, ` +\n `designing an API, picking a concept), YOU must make those decisions NOW in this brief. ` +\n `Do NOT leave creative choices to individual agents — they run in parallel and will ` +\n `each make different choices, causing inconsistency.\\n` +\n `For example: if one agent builds a feature and another writes tests for it, ` +\n `decide the feature name, file paths, function signatures, and key design choices here ` +\n `so both agents use the same names and structure.\\n\\n` +\n `Only include what's relevant — skip categories that don't apply. ` +\n `Be specific and actionable, not generic. Be as detailed as the task requires — ` +\n `a trivial task needs a few bullets, a complex task deserves a thorough roadmap.\\n\\n` +\n `Output ONLY the bullet points, no preamble.`;\n\n try {\n // Disable streaming so planning output doesn't pipe to the user's chat.\n // The action handler runs inside a streaming context; without stream:false,\n // the planning LLM response would be forwarded as chat text.\n const result = await withTrajectoryContext(\n runtime,\n { source: \"orchestrator\", decisionType: \"swarm-context-generation\" },\n () =>\n runtime.useModel(ModelType.TEXT_SMALL, {\n prompt,\n temperature: 0.3,\n stream: false,\n }),\n );\n return result?.trim() || \"\";\n } catch (err) {\n logger.warn(`Swarm context generation failed: ${err}`);\n return \"\";\n }\n}\n\n/** Shared context passed to both multi-agent and single-agent handlers */\nexport interface CodingTaskContext {\n runtime: IAgentRuntime;\n ptyService: PTYService;\n wsService: CodingWorkspaceService | undefined;\n credentials: AgentCredentials;\n customCredentials: Record<string, string> | undefined;\n callback: HandlerCallback | undefined;\n message: Memory;\n state: State | undefined;\n repo: string | undefined;\n defaultAgentType: CodingAgentType;\n rawAgentType: string;\n agentSelectionStrategy: AgentSelectionStrategy;\n memoryContent: string | undefined;\n approvalPreset: string | undefined;\n explicitLabel: string | undefined;\n}\n\n/**\n * Multi-agent mode handler.\n *\n * Parses pipe-delimited agent specs and spawns each agent in its own\n * workspace clone (or scratch directory).\n */\nexport async function handleMultiAgent(\n ctx: CodingTaskContext,\n agentsParam: string,\n): Promise<ActionResult | undefined> {\n const {\n runtime,\n ptyService,\n wsService,\n credentials,\n customCredentials,\n callback,\n message,\n state,\n repo,\n defaultAgentType,\n rawAgentType,\n memoryContent,\n approvalPreset,\n explicitLabel,\n } = ctx;\n\n // Parse pipe-delimited agent specs: \"task1 | task2 | agentType:task3\"\n // A single empty string means \"spawn one agent with no initial task\".\n const agentSpecs = agentsParam\n .split(\"|\")\n .map((s) => s.trim())\n .filter(Boolean);\n\n // If nothing parsed (e.g. empty string), treat as one agent with no task\n if (agentSpecs.length === 0) {\n agentSpecs.push(\"\");\n }\n\n // Cap multi-agent count to the concurrency limit\n if (agentSpecs.length > MAX_CONCURRENT_AGENTS) {\n if (callback) {\n await callback({\n text: `Too many agents requested (${agentSpecs.length}). Maximum is ${MAX_CONCURRENT_AGENTS}.`,\n });\n }\n return { success: false, error: \"TOO_MANY_AGENTS\" };\n }\n\n if (repo && !wsService) {\n if (callback) {\n await callback({\n text: \"Workspace Service is not available. Cannot clone repository.\",\n });\n }\n return { success: false, error: \"WORKSPACE_SERVICE_UNAVAILABLE\" };\n }\n\n if (callback) {\n await callback({\n text: `Launching ${agentSpecs.length} agents${repo ? ` on ${repo}` : \"\"}...`,\n });\n }\n\n // Planning phase: generate shared context brief for multi-agent coordination.\n // Strip agent-type prefixes from specs to get clean subtask descriptions.\n const cleanSubtasks = agentSpecs.map(stripAgentPrefix);\n const userRequest = (message.content as { text?: string })?.text ?? agentsParam;\n const swarmContext = agentSpecs.length > 1\n ? await generateSwarmContext(runtime, cleanSubtasks, userRequest)\n : \"\";\n\n // Store swarm context on coordinator for use in decision prompts\n if (swarmContext) {\n const coordinator = getCoordinator(runtime);\n coordinator?.setSwarmContext(swarmContext);\n }\n\n // Query past orchestrator experience for trajectory feedback injection.\n // This feeds lessons from previous agent sessions back into new agents,\n // preventing repeated mistakes and maintaining consistency with past decisions.\n const pastExperience = await queryPastExperience(runtime, {\n taskDescription: userRequest,\n lookbackHours: 48,\n maxEntries: 8,\n repo,\n });\n const pastExperienceBlock = formatPastExperience(pastExperience);\n\n const results: Array<{\n sessionId: string;\n agentType: string;\n workdir: string;\n workspaceId?: string;\n branch?: string;\n label: string;\n status: string;\n error?: string;\n }> = [];\n\n for (const [i, spec] of agentSpecs.entries()) {\n // Parse optional \"agentType:task\" prefix.\n // In fixed mode, ignore LLM-chosen prefixes — all agents use the\n // configured default. Only ranked mode allows per-subtask overrides.\n let specAgentType = defaultAgentType;\n let specPiRequested = isPiAgentType(rawAgentType);\n let specRequestedType = rawAgentType;\n let specTask = spec;\n const colonIdx = spec.indexOf(\":\");\n if (\n ctx.agentSelectionStrategy !== \"fixed\" &&\n colonIdx > 0 &&\n colonIdx < 20\n ) {\n const prefix = spec.slice(0, colonIdx).trim().toLowerCase();\n if ((KNOWN_AGENT_PREFIXES as readonly string[]).includes(prefix)) {\n specRequestedType = prefix;\n specPiRequested = isPiAgentType(prefix);\n specAgentType = normalizeAgentType(prefix);\n specTask = spec.slice(colonIdx + 1).trim();\n }\n } else if (ctx.agentSelectionStrategy === \"fixed\" && colonIdx > 0 && colonIdx < 20) {\n // Strip the prefix from the task text but keep the default agent type\n specTask = stripAgentPrefix(spec);\n }\n\n // Generate label for this specific agent\n const specLabel = explicitLabel\n ? `${explicitLabel}-${i + 1}`\n : generateLabel(repo, specTask);\n\n try {\n // Provision workspace (each agent gets its own clone or scratch dir)\n let workdir: string;\n let workspaceId: string | undefined;\n let branch: string | undefined;\n\n if (repo && wsService) {\n const workspace = await wsService.provisionWorkspace({ repo });\n workdir = workspace.path;\n workspaceId = workspace.id;\n branch = workspace.branch;\n wsService.setLabel(workspace.id, specLabel);\n } else {\n workdir = createScratchDir();\n }\n\n // Preflight check\n if (specAgentType !== \"shell\" && specAgentType !== \"pi\") {\n const [preflight] = await ptyService.checkAvailableAgents([\n specAgentType as Exclude<CodingAgentType, \"shell\" | \"pi\">,\n ]);\n if (preflight && !preflight.installed) {\n results.push({\n sessionId: \"\",\n agentType: specAgentType,\n workdir,\n label: specLabel,\n status: \"failed\",\n error: `${preflight.adapter} CLI is not installed`,\n });\n continue;\n }\n }\n\n // Check if coordinator is active — route blocking prompts through it\n const coordinator = getCoordinator(runtime);\n\n // Spawn the agent — prepend shared context brief if available\n const taskWithContext = swarmContext\n ? `${specTask}\\n\\n--- Shared Context (from project planning) ---\\n${swarmContext}\\n--- End Shared Context ---`\n : specTask;\n const initialTask = specPiRequested ? toPiCommand(taskWithContext) : taskWithContext;\n const displayType = specPiRequested ? \"pi\" : specAgentType;\n\n // Append swarm coordination instructions to agent memory so the agent\n // knows to surface design decisions explicitly for the orchestrator.\n const swarmMemory = agentSpecs.length > 1 && swarmContext\n ? buildSwarmMemoryInstructions(specLabel, specTask, cleanSubtasks, i)\n : undefined;\n const agentMemory = [memoryContent, swarmMemory, pastExperienceBlock]\n .filter(Boolean)\n .join(\"\\n\\n\") || undefined;\n\n const session: SessionInfo = await ptyService.spawnSession({\n name: `coding-${Date.now()}-${i}`,\n agentType: specAgentType,\n workdir,\n initialTask,\n memoryContent: agentMemory,\n credentials,\n approvalPreset:\n (approvalPreset as ApprovalPreset | undefined) ??\n ptyService.defaultApprovalPreset,\n customCredentials,\n ...(coordinator ? { skipAdapterAutoResponse: true } : {}),\n metadata: {\n requestedType: specRequestedType,\n messageId: message.id,\n userId: (message as unknown as Record<string, unknown>).userId,\n workspaceId,\n label: specLabel,\n multiAgentIndex: i,\n },\n });\n\n // Register event handler\n const isScratch = !repo;\n const scratchDir = isScratch ? workdir : null;\n registerSessionEvents(\n ptyService,\n runtime,\n session.id,\n specLabel,\n scratchDir,\n callback,\n !!coordinator,\n );\n if (coordinator && specTask) {\n coordinator.registerTask(session.id, {\n agentType: specAgentType,\n label: specLabel,\n originalTask: specTask,\n workdir,\n repo,\n });\n }\n\n results.push({\n sessionId: session.id,\n agentType: displayType,\n workdir,\n workspaceId,\n branch,\n label: specLabel,\n status: session.status,\n });\n\n if (callback) {\n await callback({\n text: `[${i + 1}/${agentSpecs.length}] Spawned ${displayType} agent as \"${specLabel}\"`,\n });\n }\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : String(error);\n logger.error(\n `[START_CODING_TASK] Failed to spawn agent ${i + 1}:`,\n errorMessage,\n );\n results.push({\n sessionId: \"\",\n agentType: specAgentType,\n workdir: \"\",\n label: specLabel,\n status: \"failed\",\n error: errorMessage,\n });\n }\n }\n\n // Store all sessions in state\n if (state) {\n state.codingSessions = results.filter((r) => r.sessionId);\n }\n\n const succeeded = results.filter((r) => r.sessionId);\n const failed = results.filter((r) => !r.sessionId);\n const summary = [\n `Launched ${succeeded.length}/${agentSpecs.length} agents${repo ? ` on ${repo}` : \"\"}:`,\n ...succeeded.map(\n (r) => ` - \"${r.label}\" (${r.agentType}) [session: ${r.sessionId}]`,\n ),\n ...(failed.length > 0\n ? [`Failed: ${failed.map((r) => `\"${r.label}\": ${r.error}`).join(\", \")}`]\n : []),\n ].join(\"\\n\");\n\n if (callback) {\n await callback({ text: summary });\n }\n\n return {\n success: failed.length === 0,\n text: summary,\n data: { agents: results },\n };\n}\n\n",
|
|
29
29
|
"/**\n * Trajectory Feedback — Past Experience Injection\n *\n * Queries the trajectory database for past orchestrator decisions and\n * formats relevant experience as agent memory context. This closes the\n * loop between trajectory *output* (logging decisions) and trajectory\n * *input* (feeding experience back to agents at spawn time).\n *\n * Inspired by \"Codified Context\" (arXiv:2602.20478) — known failure\n * modes and past decisions are pre-loaded into agent context so they\n * don't repeat mistakes or re-derive solutions.\n *\n * @module services/trajectory-feedback\n */\n\nimport { type IAgentRuntime, logger as elizaLogger } from \"@elizaos/core\";\n\n/** Timeout for trajectory DB calls to prevent blocking agent spawn. */\nconst QUERY_TIMEOUT_MS = 5000;\nconst SLOW_PATH_BUDGET_MS = 15_000;\n\nfunction withTimeout<T>(promise: Promise<T>, ms: number): Promise<T> {\n return Promise.race([\n promise,\n new Promise<T>((_, reject) =>\n setTimeout(() => reject(new Error(`Trajectory query timed out after ${ms}ms`)), ms),\n ),\n ]);\n}\n\n// ─── Types ───\n\n/** A distilled experience entry from a past trajectory. */\ninterface PastExperience {\n /** When this experience was recorded */\n timestamp: number;\n /** The orchestrator decision type (coordination, turn-complete, etc.) */\n decisionType: string;\n /** Agent label that produced this experience */\n taskLabel: string;\n /** The key insight or decision (extracted from LLM response) */\n insight: string;\n}\n\n/** Options for querying past experience. */\nexport interface TrajectoryFeedbackOptions {\n /** Maximum number of recent trajectories to scan (default: 30) */\n maxTrajectories?: number;\n /** Maximum number of experience entries to return (default: 8) */\n maxEntries?: number;\n /** Only include trajectories from the last N hours (default: 48) */\n lookbackHours?: number;\n /** Task description for relevance filtering */\n taskDescription?: string;\n /** Repository URL — only return experience from the same repo */\n repo?: string;\n}\n\n// ─── Trajectory Logger Access ───\n\n/**\n * Resolve the trajectory logger from the runtime. Returns null if\n * trajectory logging isn't available (e.g. no database).\n */\nfunction getTrajectoryLogger(runtime: IAgentRuntime): TrajectoryLoggerRef | null {\n const runtimeAny = runtime as unknown as {\n getService?: (serviceType: string) => unknown;\n getServicesByType?: (serviceType: string) => unknown[];\n };\n\n // Try getService first (direct lookup)\n if (typeof runtimeAny.getService === \"function\") {\n const svc = runtimeAny.getService(\"trajectory_logger\");\n if (svc && typeof svc === \"object\" && hasListMethod(svc)) {\n return svc as TrajectoryLoggerRef;\n }\n }\n\n // Fallback: getServicesByType\n if (typeof runtimeAny.getServicesByType === \"function\") {\n const services = runtimeAny.getServicesByType(\"trajectory_logger\");\n if (Array.isArray(services)) {\n for (const svc of services) {\n if (svc && typeof svc === \"object\" && hasListMethod(svc)) {\n return svc as TrajectoryLoggerRef;\n }\n }\n }\n }\n\n return null;\n}\n\ntype TrajectoryLoggerRef = {\n listTrajectories: (options: {\n source?: string;\n limit?: number;\n startDate?: string;\n }) => Promise<{\n trajectories: Array<{\n id: string;\n source: string;\n startTime: number;\n llmCallCount: number;\n createdAt: string;\n metadata?: Record<string, unknown>;\n }>;\n total: number;\n }>;\n getTrajectoryDetail: (id: string) => Promise<{\n trajectoryId: string;\n metadata?: Record<string, unknown>;\n steps?: Array<{\n llmCalls?: Array<{\n purpose?: string;\n userPrompt?: string;\n response?: string;\n timestamp?: number;\n }>;\n }>;\n } | null>;\n};\n\nfunction hasListMethod(obj: object): boolean {\n const candidate = obj as Record<string, unknown>;\n return (\n typeof candidate.listTrajectories === \"function\" &&\n typeof candidate.getTrajectoryDetail === \"function\"\n );\n}\n\n// ─── Experience Extraction ───\n\n/**\n * Extract key decisions and insights from an LLM response.\n * Looks for structured decision markers and significant reasoning.\n */\nfunction extractInsights(response: string, purpose: string): string[] {\n const insights: string[] = [];\n\n // Extract explicit DECISION markers\n const decisionPattern = /DECISION:\\s*(.+?)(?:\\n|$)/gi;\n let match: RegExpExecArray | null;\n while ((match = decisionPattern.exec(response)) !== null) {\n insights.push(match[1].trim());\n }\n\n // Extract keyDecision from coordination responses\n const keyDecisionPattern = /\"keyDecision\"\\s*:\\s*\"([^\"]+)\"/g;\n while ((match = keyDecisionPattern.exec(response)) !== null) {\n insights.push(match[1].trim());\n }\n\n // For turn-complete and coordination decisions, extract the reasoning\n if (\n (purpose === \"turn-complete\" || purpose === \"coordination\") &&\n insights.length === 0\n ) {\n const reasoningPattern = /\"reasoning\"\\s*:\\s*\"([^\"]{20,200})\"/;\n const reasoningMatch = response.match(reasoningPattern);\n if (reasoningMatch) {\n insights.push(reasoningMatch[1].trim());\n }\n }\n\n return insights;\n}\n\n/**\n * Check if a past experience is potentially relevant to a new task.\n * Uses simple keyword overlap — not semantic search, but fast and\n * good enough for catching repeated patterns.\n */\nfunction isRelevant(experience: PastExperience, taskDescription: string): boolean {\n if (!taskDescription) return true; // No filter = include all\n\n const taskWords = new Set(\n taskDescription\n .toLowerCase()\n .replace(/[^a-z0-9\\s]/g, \" \")\n .split(/\\s+/)\n .filter((w) => w.length > 3),\n );\n\n const insightWords = experience.insight\n .toLowerCase()\n .replace(/[^a-z0-9\\s]/g, \" \")\n .split(/\\s+/)\n .filter((w) => w.length > 3);\n\n // At least 2 meaningful word overlaps\n let overlap = 0;\n for (const word of insightWords) {\n if (taskWords.has(word)) overlap++;\n if (overlap >= 2) return true;\n }\n\n return false;\n}\n\n// ─── Main Query ───\n\n/**\n * Query the trajectory database for past orchestrator decisions and\n * return distilled experience entries relevant to the current task.\n */\nexport async function queryPastExperience(\n runtime: IAgentRuntime,\n options: TrajectoryFeedbackOptions = {},\n): Promise<PastExperience[]> {\n const {\n maxTrajectories = 30,\n maxEntries = 8,\n lookbackHours = 48,\n taskDescription,\n repo,\n } = options;\n\n const logger = getTrajectoryLogger(runtime);\n if (!logger) return [];\n\n const startDate = new Date(\n Date.now() - lookbackHours * 60 * 60 * 1000,\n ).toISOString();\n\n try {\n // Fetch recent orchestrator trajectories\n const result = await withTimeout(logger.listTrajectories({\n source: \"orchestrator\",\n limit: maxTrajectories,\n startDate,\n }), QUERY_TIMEOUT_MS);\n\n if (!result.trajectories || result.trajectories.length === 0) return [];\n\n const experiences: PastExperience[] = [];\n const slowPathDeadline = Date.now() + SLOW_PATH_BUDGET_MS;\n\n // Scan each trajectory for insights. Prefer pre-extracted insights from\n // metadata (populated at write time by milaidy's trajectory-persistence)\n // to avoid loading full trajectory details with their large prompt/response\n // payloads. Fall back to getTrajectoryDetail for older trajectories that\n // predate the metadata insight extraction.\n const maxScans = Math.min(result.trajectories.length, maxTrajectories);\n for (let scanIdx = 0; scanIdx < maxScans; scanIdx++) {\n const summary = result.trajectories[scanIdx];\n\n const metadata = summary.metadata as\n | {\n orchestrator?: {\n decisionType?: string;\n taskLabel?: string;\n repo?: string;\n };\n insights?: unknown;\n }\n | undefined;\n const metadataInsights = Array.isArray(metadata?.insights)\n ? metadata.insights\n .filter(\n (value): value is string =>\n typeof value === \"string\" && value.trim().length > 0,\n )\n .slice(0, 50)\n : [];\n const decisionType =\n metadata?.orchestrator?.decisionType ?? \"unknown\";\n const taskLabel = metadata?.orchestrator?.taskLabel ?? \"\";\n const trajectoryRepo = metadata?.orchestrator?.repo;\n\n // Filter by repo: if a repo is specified, only include trajectories\n // from the same repo. This ensures agents working on repo A don't get\n // decisions made for repo B.\n if (repo && (!trajectoryRepo || trajectoryRepo !== repo)) continue;\n\n // Fast path: use pre-extracted insights from metadata (no full detail load)\n if (metadataInsights.length > 0) {\n elizaLogger.debug(\n `[trajectory-feedback] Fast path: ${metadataInsights.length} insight(s) from metadata for ${summary.id}`,\n );\n for (const insight of metadataInsights) {\n experiences.push({\n timestamp: summary.startTime,\n decisionType,\n taskLabel,\n insight,\n });\n }\n continue;\n }\n\n // Slow path (fallback): load full detail for pre-extraction trajectories\n if (Date.now() > slowPathDeadline) {\n elizaLogger.debug(\n `[trajectory-feedback] Slow path budget exhausted; stopping detail loads`,\n );\n break;\n }\n elizaLogger.debug(\n `[trajectory-feedback] Slow path: loading full detail for ${summary.id} (no metadata insights)`,\n );\n const detail = await withTimeout(\n logger.getTrajectoryDetail(summary.id),\n QUERY_TIMEOUT_MS,\n ).catch(() => null);\n if (!detail?.steps) continue;\n\n for (const step of detail.steps) {\n if (!step.llmCalls) continue;\n\n for (const call of step.llmCalls) {\n if (!call.response) continue;\n\n const insights = extractInsights(\n call.response,\n call.purpose ?? decisionType,\n );\n\n for (const insight of insights) {\n experiences.push({\n timestamp: call.timestamp ?? summary.startTime,\n decisionType: call.purpose ?? decisionType,\n taskLabel,\n insight,\n });\n }\n }\n }\n }\n\n // Filter by relevance if task description provided\n let filtered = taskDescription\n ? experiences.filter((e) => isRelevant(e, taskDescription))\n : experiences;\n\n // If relevance filtering removed everything, fall back to all experiences\n if (filtered.length === 0 && experiences.length > 0) {\n filtered = experiences;\n }\n\n // Deduplicate by insight text (keep most recent)\n const seen = new Map<string, PastExperience>();\n for (const exp of filtered) {\n const key = exp.insight.toLowerCase();\n const existing = seen.get(key);\n if (!existing || exp.timestamp > existing.timestamp) {\n seen.set(key, exp);\n }\n }\n\n // Return most recent entries, capped\n return Array.from(seen.values())\n .sort((a, b) => b.timestamp - a.timestamp)\n .slice(0, maxEntries);\n } catch (err) {\n // Non-critical — log and return empty\n elizaLogger.error(`[trajectory-feedback] Failed to query past experience: ${err}`);\n return [];\n }\n}\n\n// ─── Formatting ───\n\n/**\n * Format past experience entries as a markdown section suitable for\n * injection into agent memory (CLAUDE.md / GEMINI.md).\n *\n * Returns empty string if no relevant experience is found.\n */\nexport function formatPastExperience(experiences: PastExperience[]): string {\n if (experiences.length === 0) return \"\";\n\n const lines = experiences.map((e) => {\n const age = formatAge(e.timestamp);\n const label = e.taskLabel ? ` [${e.taskLabel}]` : \"\";\n return `- ${e.insight}${label} (${age})`;\n });\n\n return (\n `# Past Experience\\n\\n` +\n `The following decisions and insights were captured from recent agent sessions. ` +\n `Use them to avoid repeating mistakes and to stay consistent with established patterns.\\n\\n` +\n `${lines.join(\"\\n\")}\\n`\n );\n}\n\n/** Format a timestamp as a human-readable relative age (e.g. \"2h ago\", \"1d ago\"). */\nfunction formatAge(timestamp: number): string {\n const diffMs = Date.now() - timestamp;\n const hours = Math.floor(diffMs / (1000 * 60 * 60));\n if (hours < 1) return \"just now\";\n if (hours < 24) return `${hours}h ago`;\n const days = Math.floor(hours / 24);\n return `${days}d ago`;\n}\n",
|
|
30
30
|
"/**\n * Helper functions for the START_CODING_TASK action.\n *\n * - createScratchDir() -- Creates a scratch sandbox directory for non-repo tasks\n * - generateLabel() -- Generate a short semantic label from repo URL and/or task description\n * - registerSessionEvents() -- Register lifecycle event handlers for a spawned session\n *\n * @module actions/coding-task-helpers\n */\n\nimport { randomUUID } from \"node:crypto\";\nimport * as fs from \"node:fs\";\nimport * as os from \"node:os\";\nimport * as path from \"node:path\";\nimport {\n type HandlerCallback,\n type IAgentRuntime,\n logger,\n} from \"@elizaos/core\";\nimport type { PTYService } from \"../services/pty-service.js\";\nimport type { CodingWorkspaceService } from \"../services/workspace-service.js\";\n\n/** Create a scratch sandbox directory for non-repo tasks */\nexport function createScratchDir(): string {\n const baseDir = path.join(os.homedir(), \".milady\", \"workspaces\");\n const scratchId = randomUUID();\n const scratchDir = path.join(baseDir, scratchId);\n fs.mkdirSync(scratchDir, { recursive: true });\n return scratchDir;\n}\n\n/**\n * Generate a short semantic label from repo URL and/or task description.\n * e.g. \"git-workspace-service-testbed/hello-mima\" or \"scratch/react-research\"\n */\nexport function generateLabel(\n repo: string | undefined,\n task: string | undefined,\n): string {\n const parts: string[] = [];\n\n if (repo) {\n // Extract repo name from URL: \"https://github.com/owner/my-repo.git\" -> \"my-repo\"\n const match = repo.match(/\\/([^/]+?)(?:\\.git)?$/);\n parts.push(match ? match[1] : \"repo\");\n } else {\n parts.push(\"scratch\");\n }\n\n if (task) {\n // Extract a slug from the first few meaningful words of the task\n const slug = task\n .toLowerCase()\n .replace(/[^a-z0-9\\s-]/g, \"\")\n .split(/\\s+/)\n .filter(\n (w) =>\n w.length > 2 &&\n ![\"the\", \"and\", \"for\", \"with\", \"that\", \"this\", \"from\"].includes(w),\n )\n .slice(0, 3)\n .join(\"-\");\n if (slug) parts.push(slug);\n }\n\n return parts.join(\"/\");\n}\n\n/**\n * Register lifecycle event handlers for a spawned session.\n *\n * When `coordinatorActive` is true the SwarmCoordinator owns chat messaging\n * and session lifecycle for blocked / task_complete / error events.\n * This listener still handles scratch-dir cleanup regardless.\n */\nexport function registerSessionEvents(\n ptyService: PTYService,\n runtime: IAgentRuntime,\n sessionId: string,\n label: string,\n scratchDir: string | null,\n callback?: HandlerCallback,\n coordinatorActive = false,\n): void {\n ptyService.onSessionEvent((sid, event, data) => {\n if (sid !== sessionId) return;\n\n // When coordinator is active it handles chat + lifecycle for these events\n if (!coordinatorActive) {\n if (event === \"blocked\" && callback) {\n callback({\n text: `Agent \"${label}\" is waiting for input: ${(data as { prompt?: string }).prompt ?? \"unknown prompt\"}`,\n });\n }\n if (event === \"task_complete\") {\n if (callback) {\n const response = (data as { response?: string }).response ?? \"\";\n const preview =\n response.length > 500 ? `${response.slice(0, 500)}...` : response;\n callback({\n text: preview\n ? `Agent \"${label}\" completed the task.\\n\\n${preview}`\n : `Agent \"${label}\" completed the task.`,\n });\n }\n // Force-kill the session after task completion — nothing to save.\n ptyService.stopSession(sessionId, /* force */ true).catch((err) => {\n logger.warn(\n `[START_CODING_TASK] Failed to stop session for \"${label}\" after task complete: ${err}`,\n );\n });\n }\n if (event === \"error\" && callback) {\n callback({\n text: `Agent \"${label}\" encountered an error: ${(data as { message?: string }).message ?? \"unknown error\"}`,\n });\n }\n }\n\n // Scratch lifecycle: register terminal scratch workspaces for retention\n // policy handling (ephemeral / pending_decision / persistent).\n if (\n (event === \"stopped\" || event === \"task_complete\" || event === \"error\") &&\n scratchDir\n ) {\n const wsService = runtime.getService(\n \"CODING_WORKSPACE_SERVICE\",\n ) as unknown as CodingWorkspaceService | undefined;\n if (wsService) {\n wsService\n .registerScratchWorkspace(\n sessionId,\n scratchDir,\n label,\n event,\n )\n .catch((err) => {\n logger.warn(\n `[START_CODING_TASK] Failed to register scratch workspace for \"${label}\": ${err}`,\n );\n });\n }\n }\n });\n}\n",
|
|
31
|
-
"/**\n * START_CODING_TASK action - Unified action to set up and launch coding agents\n *\n * Combines workspace provisioning and agent spawning into a single atomic action.\n * - If a repo URL is provided, clones it into a fresh workspace\n * - If no repo, creates a scratch sandbox directory\n * - Spawns the specified coding agent(s) in that workspace with the given task\n * - Supports multi-agent mode via pipe-delimited `agents` param\n *\n * This eliminates the need for multi-action chaining (PROVISION_WORKSPACE -> SPAWN_CODING_AGENT)\n * and ensures agents always run in an isolated directory.\n *\n * @module actions/start-coding-task\n */\n\nimport type {\n Action,\n ActionResult,\n HandlerCallback,\n HandlerOptions,\n IAgentRuntime,\n Memory,\n State,\n} from \"@elizaos/core\";\nimport type { AgentCredentials } from \"coding-agent-adapters\";\nimport type { PTYService } from \"../services/pty-service.js\";\nimport { getCoordinator } from \"../services/pty-service.js\";\nimport { normalizeAgentType } from \"../services/pty-types.js\";\nimport type { CodingWorkspaceService } from \"../services/workspace-service.js\";\nimport {\n type CodingTaskContext,\n handleMultiAgent,\n
|
|
31
|
+
"/**\n * START_CODING_TASK action - Unified action to set up and launch coding agents\n *\n * Combines workspace provisioning and agent spawning into a single atomic action.\n * - If a repo URL is provided, clones it into a fresh workspace\n * - If no repo, creates a scratch sandbox directory\n * - Spawns the specified coding agent(s) in that workspace with the given task\n * - Supports multi-agent mode via pipe-delimited `agents` param\n *\n * This eliminates the need for multi-action chaining (PROVISION_WORKSPACE -> SPAWN_CODING_AGENT)\n * and ensures agents always run in an isolated directory.\n *\n * @module actions/start-coding-task\n */\n\nimport type {\n Action,\n ActionResult,\n HandlerCallback,\n HandlerOptions,\n IAgentRuntime,\n Memory,\n State,\n} from \"@elizaos/core\";\nimport type { AgentCredentials } from \"coding-agent-adapters\";\nimport type { PTYService } from \"../services/pty-service.js\";\nimport { getCoordinator } from \"../services/pty-service.js\";\nimport { normalizeAgentType } from \"../services/pty-types.js\";\nimport type { CodingWorkspaceService } from \"../services/workspace-service.js\";\nimport {\n type CodingTaskContext,\n handleMultiAgent,\n} from \"./coding-task-handlers.js\";\n\nexport const startCodingTaskAction: Action = {\n name: \"START_CODING_TASK\",\n\n similes: [\n \"LAUNCH_CODING_TASK\",\n \"RUN_CODING_TASK\",\n \"START_AGENT_TASK\",\n \"SPAWN_AND_PROVISION\",\n \"CODE_THIS\",\n ],\n\n description:\n \"Start a coding task: optionally clone a repo, then spawn a coding agent (Claude Code, Codex, Gemini, Aider, Pi) \" +\n \"to work on it. If no repo is provided, the agent runs in a safe scratch directory. \" +\n \"Use this whenever the user asks to work on code, research something with an agent, or run any agent task. \" +\n \"IMPORTANT: If the user references a repository from conversation history (e.g. 'in the same repo', \" +\n \"'on that project', 'add a feature to it'), you MUST include the repo URL in the `repo` parameter. \" +\n \"If the task involves code changes to a real project but you don't know the repo URL, ASK the user for it \" +\n \"before calling this action — do not default to a scratch directory for real project work.\",\n\n examples: [\n [\n {\n name: \"{{user1}}\",\n content: {\n text: \"Set up a workspace for https://github.com/acme/my-app and have Claude fix the auth bug\",\n },\n },\n {\n name: \"{{agentName}}\",\n content: {\n text: \"I'll clone the repo and spawn Claude to fix the auth bug.\",\n action: \"START_CODING_TASK\",\n },\n },\n ],\n [\n {\n name: \"{{user1}}\",\n content: {\n text: \"Use a coding agent to research the latest React patterns\",\n },\n },\n {\n name: \"{{agentName}}\",\n content: {\n text: \"I'll spin up an agent to research that for you.\",\n action: \"START_CODING_TASK\",\n },\n },\n ],\n ],\n\n validate: async (\n runtime: IAgentRuntime,\n _message: Memory,\n ): Promise<boolean> => {\n const ptyService = runtime.getService(\"PTY_SERVICE\") as unknown as\n | PTYService\n | undefined;\n return ptyService != null;\n },\n\n handler: async (\n runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n options?: HandlerOptions,\n callback?: HandlerCallback,\n ): Promise<ActionResult | undefined> => {\n const ptyService = runtime.getService(\"PTY_SERVICE\") as unknown as\n | PTYService\n | undefined;\n if (!ptyService) {\n if (callback) {\n await callback({\n text: \"PTY Service is not available. Cannot start coding task.\",\n });\n }\n return { success: false, error: \"SERVICE_UNAVAILABLE\" };\n }\n\n const wsService = runtime.getService(\n \"CODING_WORKSPACE_SERVICE\",\n ) as unknown as CodingWorkspaceService | undefined;\n\n // Extract parameters\n const params = options?.parameters;\n const content = message.content as Record<string, unknown>;\n\n const explicitRawType =\n (params?.agentType as string) ?? (content.agentType as string);\n const rawAgentType =\n explicitRawType ?? (await ptyService.resolveAgentType());\n const defaultAgentType = normalizeAgentType(rawAgentType);\n const memoryContent =\n (params?.memoryContent as string) ?? (content.memoryContent as string);\n const approvalPreset =\n (params?.approvalPreset as string) ?? (content.approvalPreset as string);\n\n // Repo is optional -- extract from params, content, or text\n let repo = (params?.repo as string) ?? (content.repo as string);\n if (!repo && content.text) {\n const urlMatch = (content.text as string).match(\n /https?:\\/\\/(?:github\\.com|gitlab\\.com|bitbucket\\.org)\\/[\\w.-]+\\/[\\w.-]+(?:\\.git)?/i,\n );\n if (urlMatch) {\n repo = urlMatch[0];\n }\n }\n\n // Fallback: if no repo was explicitly provided, check the coordinator for\n // the most recently used repo. Handles \"in the same repo\" style requests.\n if (!repo) {\n const coordinator = getCoordinator(runtime);\n const lastRepo = coordinator?.getLastUsedRepo();\n if (lastRepo) {\n repo = lastRepo;\n }\n }\n\n // Build credentials (shared across all agents)\n const customCredentialKeys = runtime.getSetting(\"CUSTOM_CREDENTIAL_KEYS\") as\n | string\n | undefined;\n let customCredentials: Record<string, string> | undefined;\n if (customCredentialKeys) {\n customCredentials = {};\n for (const key of customCredentialKeys.split(\",\").map((k) => k.trim())) {\n const val = runtime.getSetting(key) as string | undefined;\n if (val) customCredentials[key] = val;\n }\n }\n\n const credentials: AgentCredentials = {\n anthropicKey: runtime.getSetting(\"ANTHROPIC_API_KEY\") as\n | string\n | undefined,\n openaiKey: runtime.getSetting(\"OPENAI_API_KEY\") as string | undefined,\n googleKey: runtime.getSetting(\"GOOGLE_GENERATIVE_AI_API_KEY\") as\n | string\n | undefined,\n githubToken: runtime.getSetting(\"GITHUB_TOKEN\") as string | undefined,\n };\n\n const explicitLabel =\n (params?.label as string) ?? (content.label as string);\n\n // Build shared context for handlers\n const ctx: CodingTaskContext = {\n runtime,\n ptyService,\n wsService,\n credentials,\n customCredentials,\n callback,\n message,\n state,\n repo,\n defaultAgentType,\n rawAgentType,\n agentSelectionStrategy: ptyService.agentSelectionStrategy,\n memoryContent,\n approvalPreset,\n explicitLabel,\n };\n\n // --- Dispatch: build a pipe-delimited agents string for handleMultiAgent ---\n const agentsParam =\n (params?.agents as string) ?? (content.agents as string);\n\n if (agentsParam) {\n return handleMultiAgent(ctx, agentsParam);\n }\n\n // Single-agent mode: build a single-element agents string so we can\n // reuse handleMultiAgent (which handles length-1 specs fine).\n const task = (params?.task as string) ?? (content.task as string);\n const singleAgentSpec = task || \"\";\n return handleMultiAgent(ctx, singleAgentSpec);\n },\n\n parameters: [\n {\n name: \"repo\",\n description:\n \"Git repository URL to clone (e.g. https://github.com/owner/repo). \" +\n \"ALWAYS provide this when the user is working on a real project or references a repo from context. \" +\n \"Only omit for pure research/scratch tasks with no target repository. \" +\n \"If unsure which repo, ask the user before spawning.\",\n required: false,\n schema: { type: \"string\" as const },\n },\n {\n name: \"agentType\",\n description:\n \"Type of coding agent to spawn (default for all agents). Options: claude, codex, gemini, aider, pi, shell.\",\n required: false,\n schema: { type: \"string\" as const, default: \"claude\" },\n },\n {\n name: \"task\",\n description:\n \"The task or prompt to send to the agent once it's ready. Used for single-agent mode.\",\n required: false,\n schema: { type: \"string\" as const },\n },\n {\n name: \"agents\",\n description:\n \"Pipe-delimited list of agent tasks for multi-agent mode. Each segment is a task description. \" +\n \"Optionally prefix with agent type: 'claude:Fix auth | gemini:Write tests | codex:Update docs'. \" +\n \"Each agent gets its own workspace clone. If provided, the 'task' parameter is ignored.\",\n required: false,\n schema: { type: \"string\" as const },\n },\n {\n name: \"memoryContent\",\n description:\n \"Instructions/context to write to each agent's memory file (e.g. CLAUDE.md) before spawning.\",\n required: false,\n schema: { type: \"string\" as const },\n },\n {\n name: \"label\",\n description:\n \"Short semantic label for this workspace. In multi-agent mode, each agent gets '{label}-1', '{label}-2', etc. \" +\n \"Auto-generated from repo/task if not provided.\",\n required: false,\n schema: { type: \"string\" as const },\n },\n {\n name: \"approvalPreset\",\n description:\n \"Permission level for all agents: readonly, standard, permissive, autonomous.\",\n required: false,\n schema: {\n type: \"string\" as const,\n enum: [\"readonly\", \"standard\", \"permissive\", \"autonomous\"],\n },\n },\n ],\n};\n",
|
|
32
32
|
"/**\n * STOP_CODING_AGENT action - Stop a running coding agent session\n *\n * Terminates an active PTY session. Use when the agent is done,\n * stuck, or needs to be cancelled.\n *\n * @module actions/stop-agent\n */\n\nimport {\n type Action,\n type ActionResult,\n type HandlerCallback,\n type HandlerOptions,\n type IAgentRuntime,\n logger,\n type Memory,\n type State,\n} from \"@elizaos/core\";\nimport type { PTYService } from \"../services/pty-service.js\";\n\nexport const stopAgentAction: Action = {\n name: \"STOP_CODING_AGENT\",\n\n similes: [\n \"KILL_CODING_AGENT\",\n \"TERMINATE_AGENT\",\n \"END_CODING_SESSION\",\n \"CANCEL_AGENT\",\n ],\n\n description:\n \"Stop a running coding agent session. \" +\n \"Terminates the PTY session and cleans up resources.\",\n\n examples: [\n [\n {\n name: \"{{user1}}\",\n content: { text: \"Stop the coding agent\" },\n },\n {\n name: \"{{agentName}}\",\n content: {\n text: \"I'll stop the coding session.\",\n action: \"STOP_CODING_AGENT\",\n },\n },\n ],\n [\n {\n name: \"{{user1}}\",\n content: { text: \"Kill the stuck agent\" },\n },\n {\n name: \"{{agentName}}\",\n content: {\n text: \"Terminating the coding agent.\",\n action: \"STOP_CODING_AGENT\",\n },\n },\n ],\n ],\n\n validate: async (\n runtime: IAgentRuntime,\n _message: Memory,\n ): Promise<boolean> => {\n const ptyService = runtime.getService(\"PTY_SERVICE\") as unknown as\n | PTYService\n | undefined;\n if (!ptyService) {\n return false;\n }\n try {\n const sessions = await Promise.race([\n ptyService.listSessions(),\n new Promise<never>((_, reject) =>\n setTimeout(() => reject(new Error(\"validate timeout\")), 2000),\n ),\n ]);\n return sessions.length > 0;\n } catch {\n return false;\n }\n },\n\n handler: async (\n runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: HandlerOptions,\n callback?: HandlerCallback,\n ): Promise<ActionResult | undefined> => {\n const ptyService = runtime.getService(\"PTY_SERVICE\") as unknown as\n | PTYService\n | undefined;\n if (!ptyService) {\n if (callback) {\n await callback({\n text: \"PTY Service is not available.\",\n });\n }\n return { success: false, error: \"SERVICE_UNAVAILABLE\" };\n }\n\n const content = message.content as {\n sessionId?: string;\n all?: boolean;\n };\n\n // Stop all sessions if requested\n if (content.all) {\n const sessions = await ptyService.listSessions();\n if (sessions.length === 0) {\n if (callback) {\n await callback({\n text: \"No active coding sessions to stop.\",\n });\n }\n return { success: true, text: \"No sessions to stop\" };\n }\n\n for (const session of sessions) {\n try {\n await ptyService.stopSession(session.id);\n } catch (err) {\n logger.error(`Failed to stop session ${session.id}: ${err}`);\n }\n }\n\n // Clear state\n if (state?.codingSession) {\n delete state.codingSession;\n }\n\n if (callback) {\n await callback({\n text: `Stopped ${sessions.length} coding session(s).`,\n });\n }\n return {\n success: true,\n text: `Stopped ${sessions.length} sessions`,\n data: { stoppedCount: sessions.length },\n };\n }\n\n // Stop specific session\n let sessionId = content.sessionId;\n if (!sessionId && state?.codingSession) {\n sessionId = (state.codingSession as { id: string }).id;\n }\n\n if (!sessionId) {\n const sessions = await ptyService.listSessions();\n if (sessions.length === 0) {\n if (callback) {\n await callback({\n text: \"No active coding sessions to stop.\",\n });\n }\n return { success: true, text: \"No sessions to stop\" };\n }\n sessionId = sessions[sessions.length - 1].id;\n }\n\n const session = ptyService.getSession(sessionId);\n if (!session) {\n if (callback) {\n await callback({\n text: `Session ${sessionId} not found.`,\n });\n }\n return { success: false, error: \"SESSION_NOT_FOUND\" };\n }\n\n try {\n await ptyService.stopSession(sessionId);\n\n // Clear state if this was the current session\n if (\n state?.codingSession &&\n (state.codingSession as { id: string }).id === sessionId\n ) {\n delete state.codingSession;\n }\n\n if (callback) {\n await callback({\n text: `Stopped coding agent session ${sessionId}.`,\n });\n }\n return {\n success: true,\n text: `Stopped session ${sessionId}`,\n data: { sessionId, agentType: session.agentType },\n };\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : String(error);\n if (callback) {\n await callback({\n text: `Failed to stop agent: ${errorMessage}`,\n });\n }\n return { success: false, error: errorMessage };\n }\n },\n\n parameters: [\n {\n name: \"sessionId\",\n description:\n \"ID of the session to stop. If not specified, stops the current session.\",\n required: false,\n schema: { type: \"string\" as const },\n },\n {\n name: \"all\",\n description: \"If true, stop all active coding sessions.\",\n required: false,\n schema: { type: \"boolean\" as const },\n },\n ],\n};\n",
|
|
33
33
|
"/**\n * Provider that injects structured action call examples into the prompt context.\n *\n * ElizaOS core only shows exampleCalls from its static action-docs registry,\n * which doesn't include custom plugin actions. This provider bridges the gap\n * by formatting our coding agent action examples in the same structured format\n * the model sees for core actions.\n *\n * @module providers/action-examples\n */\n\nimport type { IAgentRuntime, Memory, Provider, State } from \"@elizaos/core\";\n\ninterface ActionCallExample {\n user: string;\n actions: string[];\n params?: Record<string, Record<string, string>>;\n}\n\nconst CODING_AGENT_EXAMPLES: ActionCallExample[] = [\n {\n user: \"Can you set up a workspace for https://github.com/acme/my-app and have Claude fix the login bug?\",\n actions: [\"REPLY\", \"START_CODING_TASK\"],\n params: {\n START_CODING_TASK: {\n repo: \"https://github.com/acme/my-app\",\n agentType: \"claude\",\n task: \"Fix the login bug in src/auth.ts — users are getting 401 errors after token refresh\",\n },\n },\n },\n {\n user: \"Use a coding agent to research the latest Next.js patterns and summarize them\",\n actions: [\"REPLY\", \"START_CODING_TASK\"],\n params: {\n START_CODING_TASK: {\n agentType: \"claude\",\n task: \"Research the latest Next.js patterns (app router, server components, etc.) and write a summary in RESEARCH.md\",\n },\n },\n },\n {\n user: \"Use pi to investigate flaky tests and write findings to FLAKY_TESTS.md\",\n actions: [\"REPLY\", \"START_CODING_TASK\"],\n params: {\n START_CODING_TASK: {\n agentType: \"pi\",\n task: \"Investigate flaky tests, identify likely root causes, and write your findings to FLAKY_TESTS.md\",\n },\n },\n },\n {\n user: \"Tell the coding agent to accept those changes\",\n actions: [\"REPLY\", \"SEND_TO_CODING_AGENT\"],\n params: {\n SEND_TO_CODING_AGENT: {\n input: \"Yes, accept the changes\",\n },\n },\n },\n {\n user: \"The agent is asking me to press enter, can you handle that?\",\n actions: [\"REPLY\", \"SEND_TO_CODING_AGENT\"],\n params: {\n SEND_TO_CODING_AGENT: {\n keys: \"Enter\",\n },\n },\n },\n {\n user: \"Create a PR for what the agent did\",\n actions: [\"REPLY\", \"FINALIZE_WORKSPACE\"],\n params: {\n FINALIZE_WORKSPACE: {\n prTitle: \"Fix login bug in auth module\",\n prBody:\n \"Resolved 401 errors after token refresh by fixing the token expiry check\",\n },\n },\n },\n];\n\nfunction formatExample(ex: ActionCallExample): string {\n const actionTags = ex.actions\n .map((a) => ` <action>${a}</action>`)\n .join(\"\\n\");\n const paramBlocks = Object.entries(ex.params ?? {})\n .map(([actionName, params]) => {\n const inner = Object.entries(params)\n .map(([k, v]) => ` <${k}>${v}</${k}>`)\n .join(\"\\n\");\n return ` <${actionName}>\\n${inner}\\n </${actionName}>`;\n })\n .join(\"\\n\");\n const paramsSection = paramBlocks\n ? `\\n<params>\\n${paramBlocks}\\n</params>`\n : \"\";\n return `User: ${ex.user}\\nAssistant:\\n<actions>\\n${actionTags}\\n</actions>${paramsSection}`;\n}\n\n// Multi-agent example uses the pipe-delimited `agents` param to spawn multiple agents in one action call.\n// Each segment is a separate task. Optionally prefix with agent type: \"claude:task | gemini:task\".\n// Each agent gets its own workspace clone — they cannot see each other's work.\nconst MULTI_AGENT_EXAMPLE = `User: Spin up 3 agents on https://github.com/acme/app — one to fix auth, one to write tests, one to update docs\nAssistant:\n<actions>\n <action>REPLY</action>\n <action>START_CODING_TASK</action>\n</actions>\n<params>\n <START_CODING_TASK>\n <repo>https://github.com/acme/app</repo>\n <agents>Fix the authentication bug in src/auth.ts — users get 401 after token refresh. Your unique identifier is \"alpha\". | Write comprehensive unit tests for the auth module in src/auth.ts. Your unique identifier is \"beta\". | Update the API documentation in docs/ to reflect the new auth flow. Your unique identifier is \"gamma\".</agents>\n </START_CODING_TASK>\n</params>`;\n\n/** Lightweight keyword check — does the user's message look coding-related? */\n\n// Multi-word phrases and unambiguous terms — word-boundary matched\nconst CODING_PHRASES = [\n /\\bcoding\\b/,\n /\\bgithub\\b/,\n /\\bclone\\b/,\n /\\bspawn\\b/,\n /\\bworkspace\\b/,\n /\\bpull request\\b/,\n /\\bfix bug\\b/,\n /\\bwrite test\\b/,\n /\\bcoding task\\b/,\n /\\bstart task\\b/,\n /\\bfinalize\\b/,\n];\n\n// Strong single-word triggers unlikely to appear in casual conversation\nconst STRONG_TRIGGERS = [/\\bcode\\b/, /\\bagent\\b/, /\\brepo\\b/, /\\bdeploy\\b/, /\\bpr\\b/];\n\n// Ambiguous words only count when used in coding-specific collocations\nconst CODING_COLLOCATIONS = [\n /\\bgit\\s+commit\\b/,\n /\\bgit\\s+branch\\b/,\n /\\bgit\\s+merge\\b/,\n /\\bbuild\\s+(app|project|repo|code|pipeline)\\b/,\n /\\bmerge\\s+(conflict|request|branch)\\b/,\n /\\bcommit\\s+(message|hash|history|change)\\b/,\n /\\bbranch\\s+(off|from|name|out)\\b/,\n];\n\nfunction looksLikeCodingRequest(text: string): boolean {\n const lower = text.toLowerCase();\n\n if (CODING_PHRASES.some((re) => re.test(lower))) return true;\n if (STRONG_TRIGGERS.some((re) => re.test(lower))) return true;\n return CODING_COLLOCATIONS.some((re) => re.test(lower));\n}\n\nexport const codingAgentExamplesProvider: Provider = {\n name: \"CODING_AGENT_EXAMPLES\",\n description:\n \"Structured examples showing how to use coding agent actions with parameters\",\n position: -1, // Low priority — supplementary context\n\n get: async (_runtime: IAgentRuntime, _message: Memory, _state: State) => {\n // Skip full examples for non-coding conversations to save ~3.5k chars.\n const userText =\n (typeof _message.content === \"string\"\n ? _message.content\n : _message.content?.text) ?? \"\";\n if (!looksLikeCodingRequest(userText)) {\n const brief =\n \"Use START_CODING_TASK to launch coding agents (handles workspace setup automatically). \" +\n \"Use SEND_TO_CODING_AGENT to interact with running agents. \" +\n \"Use FINALIZE_WORKSPACE to create PRs from agent work.\";\n return {\n data: { codingAgentExamples: [] },\n values: { codingAgentExamples: brief },\n text: brief,\n };\n }\n\n const examples = CODING_AGENT_EXAMPLES.map(formatExample).join(\"\\n\\n\");\n const text = [\n \"# Coding Agent Action Call Examples\",\n \"When the user asks you to work on code, clone repos, spawn agents, or run agent tasks,\",\n \"you MUST select the appropriate actions and include parameters. Do NOT just describe\",\n \"what you would do — actually select the actions.\",\n \"\",\n \"IMPORTANT: Use START_CODING_TASK to launch coding agents. It handles workspace setup\",\n \"automatically. If a repo URL is provided, it clones it first. If no repo, the agent\",\n \"runs in a safe scratch directory. You do NOT need to call PROVISION_WORKSPACE separately.\",\n \"\",\n \"## Single Agent Examples\",\n \"\",\n examples,\n \"\",\n \"## Multi-Agent Example\",\n \"To spawn multiple agents, use the `agents` parameter with pipe-delimited (|) tasks.\",\n \"Each segment becomes a separate agent with its own workspace clone.\",\n \"You can optionally prefix each segment with an agent type: 'claude:task | gemini:task'.\",\n \"CRITICAL: Give each agent a DIFFERENT task with unique instructions, topics, file names,\",\n \"and unique identifiers so their work is clearly differentiated.\",\n \"\",\n MULTI_AGENT_EXAMPLE,\n ].join(\"\\n\");\n\n return {\n data: { codingAgentExamples: CODING_AGENT_EXAMPLES },\n values: { codingAgentExamples: text },\n text,\n };\n },\n};\n",
|
|
34
34
|
"/**\n * Provider that injects active workspace and session context into every prompt.\n *\n * Mima needs to know what workspaces exist, which agents are running, and their\n * current status — without having to call LIST_AGENTS every message. This provider\n * reads from both the workspace service and PTY service to build a live context\n * summary that's always available in the prompt.\n *\n * @module providers/active-workspace-context\n */\n\nimport type { IAgentRuntime, Memory, Provider, State } from \"@elizaos/core\";\nimport type { PTYService } from \"../services/pty-service.js\";\nimport { getCoordinator } from \"../services/pty-service.js\";\nimport type { SessionInfo } from \"../services/pty-types.js\";\nimport type {\n CodingWorkspaceService,\n WorkspaceResult,\n} from \"../services/workspace-service.js\";\n\nfunction formatStatus(status: string): string {\n switch (status) {\n case \"ready\":\n return \"idle\";\n case \"busy\":\n return \"working\";\n case \"starting\":\n return \"starting up\";\n case \"authenticating\":\n return \"authenticating\";\n default:\n return status;\n }\n}\n\nfunction formatSessionLine(session: SessionInfo): string {\n const label = (session.metadata?.label as string) || session.name;\n const status = formatStatus(session.status);\n return ` - \"${label}\" (${session.agentType}, ${status}) [session: ${session.id}]`;\n}\n\nfunction formatWorkspaceLine(\n ws: WorkspaceResult,\n sessions: SessionInfo[],\n): string {\n const label = ws.label || ws.id.slice(0, 8);\n const agents = sessions.filter((s) => s.workdir === ws.path);\n const agentSummary =\n agents.length > 0\n ? agents.map((a) => `${a.agentType}:${formatStatus(a.status)}`).join(\", \")\n : \"no agents\";\n return ` - \"${label}\" → ${ws.repo} (branch: ${ws.branch}, ${agentSummary})`;\n}\n\nexport const activeWorkspaceContextProvider: Provider = {\n name: \"ACTIVE_WORKSPACE_CONTEXT\",\n description: \"Live status of active workspaces and coding agent sessions\",\n position: 1, // Higher priority than action examples — this is live state\n\n get: async (runtime: IAgentRuntime, _message: Memory, _state: State) => {\n const ptyService = runtime.getService(\"PTY_SERVICE\") as unknown as\n | PTYService\n | undefined;\n const wsService = runtime.getService(\n \"CODING_WORKSPACE_SERVICE\",\n ) as unknown as CodingWorkspaceService | undefined;\n\n // Gather data (with fast-fail timeouts)\n let sessions: SessionInfo[] = [];\n let workspaces: WorkspaceResult[] = [];\n\n if (ptyService) {\n try {\n sessions = await Promise.race([\n ptyService.listSessions(),\n new Promise<SessionInfo[]>((resolve) =>\n setTimeout(() => resolve([]), 2000),\n ),\n ]);\n } catch {\n sessions = [];\n }\n }\n\n if (wsService) {\n workspaces = wsService.listWorkspaces();\n }\n\n // If nothing is active, return minimal context\n if (sessions.length === 0 && workspaces.length === 0) {\n const text = [\n \"# Active Workspaces & Agents\",\n \"No active workspaces or coding agent sessions.\",\n \"Use START_CODING_TASK to launch a new coding agent.\",\n ].join(\"\\n\");\n\n return {\n data: { activeWorkspaces: [], activeSessions: [] },\n values: { activeWorkspaceContext: text },\n text,\n };\n }\n\n // Build context\n const lines: string[] = [\"# Active Workspaces & Agents\"];\n\n if (workspaces.length > 0) {\n lines.push(\"\");\n lines.push(`## Workspaces (${workspaces.length})`);\n for (const ws of workspaces) {\n lines.push(formatWorkspaceLine(ws, sessions));\n }\n }\n\n // Sessions not tied to a tracked workspace (scratch dirs, orphans)\n const trackedPaths = new Set(workspaces.map((ws) => ws.path));\n const untrackedSessions = sessions.filter(\n (s) => !trackedPaths.has(s.workdir),\n );\n\n if (untrackedSessions.length > 0) {\n lines.push(\"\");\n lines.push(`## Standalone Sessions (${untrackedSessions.length})`);\n for (const session of untrackedSessions) {\n lines.push(formatSessionLine(session));\n }\n }\n\n // Add coordinator status if available\n const coordinator = getCoordinator(runtime);\n if (coordinator) {\n const pending = coordinator.getPendingConfirmations();\n const supervisionLevel = coordinator.getSupervisionLevel();\n\n if (pending.length > 0) {\n lines.push(\"\");\n lines.push(\n `## Pending Confirmations (${pending.length}) — supervision: ${supervisionLevel}`,\n );\n for (const p of pending) {\n lines.push(\n ` - \"${p.taskContext.label}\" blocked: \"${p.promptText}\" → suggested: ${p.llmDecision.action}`,\n );\n }\n } else if (supervisionLevel !== \"autonomous\") {\n lines.push(\"\");\n lines.push(`Swarm supervision: ${supervisionLevel} (no pending items)`);\n }\n }\n\n if (sessions.length > 0) {\n lines.push(\"\");\n lines.push(\n \"You can interact with agents using SEND_TO_CODING_AGENT (pass sessionId), \" +\n \"stop them with STOP_CODING_AGENT, or finalize their work with FINALIZE_WORKSPACE.\",\n );\n }\n\n const text = lines.join(\"\\n\");\n\n return {\n data: {\n activeWorkspaces: workspaces.map((ws) => ({\n id: ws.id,\n label: ws.label,\n repo: ws.repo,\n branch: ws.branch,\n path: ws.path,\n })),\n activeSessions: sessions.map((s) => ({\n id: s.id,\n label: s.metadata?.label,\n agentType: s.agentType,\n status: s.status,\n workdir: s.workdir,\n })),\n },\n values: { activeWorkspaceContext: text },\n text,\n };\n },\n};\n",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"/**\n * Coding Agent API Routes — Dispatcher\n *\n * Provides shared helpers (parseBody, sendJson, sendError), types, and the\n * top-level route dispatcher that delegates to domain-specific route modules.\n *\n * @module api/routes\n */\n\nimport type { IncomingMessage, ServerResponse } from \"node:http\";\nimport type { IAgentRuntime } from \"@elizaos/core\";\nimport type { PTYService } from \"../services/pty-service.js\";\nimport type { SwarmCoordinator } from \"../services/swarm-coordinator.js\";\nimport type { CodingWorkspaceService } from \"../services/workspace-service.js\";\nimport { handleAgentRoutes } from \"./agent-routes.js\";\nimport { handleCoordinatorRoutes } from \"./coordinator-routes.js\";\nimport { handleHookRoutes } from \"./hook-routes.js\";\nimport { handleIssueRoutes } from \"./issue-routes.js\";\nimport { handleWorkspaceRoutes } from \"./workspace-routes.js\";\n\nexport type JsonValue =\n | string\n | number\n | boolean\n | null\n | JsonValue[]\n | { [key: string]: JsonValue };\n\nexport interface RouteContext {\n runtime: IAgentRuntime;\n ptyService: PTYService | null;\n workspaceService: CodingWorkspaceService | null;\n coordinator?: SwarmCoordinator;\n}\n\n// Max request body size (1 MB)\nexport const MAX_BODY_SIZE = 1024 * 1024;\n\n// Helper to parse JSON body with size limit\nexport async function parseBody(\n req: IncomingMessage,\n): Promise<Record<string, unknown>> {\n return new Promise((resolve, reject) => {\n let body = \"\";\n let size = 0;\n req.on(\"data\", (chunk: Buffer | string) => {\n size += typeof chunk === \"string\" ? chunk.length : chunk.byteLength;\n if (size > MAX_BODY_SIZE) {\n req.destroy();\n reject(new Error(\"Request body too large\"));\n return;\n }\n body += chunk;\n });\n req.on(\"end\", () => {\n try {\n resolve(body ? JSON.parse(body) : {});\n } catch {\n reject(new Error(\"Invalid JSON body\"));\n }\n });\n req.on(\"error\", reject);\n });\n}\n\n// Helper to send JSON response\nexport function sendJson(\n res: ServerResponse,\n data: JsonValue,\n status = 200,\n): void {\n res.writeHead(status, { \"Content-Type\": \"application/json\" });\n res.end(JSON.stringify(data));\n}\n\n// Helper to send error\nexport function sendError(\n res: ServerResponse,\n message: string,\n status = 400,\n): void {\n sendJson(res, { error: message }, status);\n}\n\n/**\n * Handle coding agent routes\n * Returns true if the route was handled, false otherwise\n */\nexport async function handleCodingAgentRoutes(\n req: IncomingMessage,\n res: ServerResponse,\n pathname: string,\n ctx: RouteContext,\n): Promise<boolean> {\n // Delegate to hook routes first — hooks need fast responses\n if (await handleHookRoutes(req, res, pathname, ctx)) {\n return true;\n }\n\n // Delegate to coordinator routes (before agent routes — more specific prefix)\n if (await handleCoordinatorRoutes(req, res, pathname, ctx)) {\n return true;\n }\n\n // Delegate to agent routes\n if (await handleAgentRoutes(req, res, pathname, ctx)) {\n return true;\n }\n\n // Delegate to workspace routes\n if (await handleWorkspaceRoutes(req, res, pathname, ctx)) {\n return true;\n }\n\n // Delegate to issue routes\n if (await handleIssueRoutes(req, res, pathname, ctx)) {\n return true;\n }\n\n // Route not handled\n return false;\n}\n\n/**\n * Create route handler with services from runtime\n */\nexport function createCodingAgentRouteHandler(\n runtime: IAgentRuntime,\n coordinator?: SwarmCoordinator,\n) {\n const ptyService = runtime.getService(\n \"PTY_SERVICE\",\n ) as unknown as PTYService | null;\n const workspaceService = runtime.getService(\n \"CODING_WORKSPACE_SERVICE\",\n ) as unknown as CodingWorkspaceService | null;\n\n const ctx: RouteContext = {\n runtime,\n ptyService,\n workspaceService,\n coordinator,\n };\n\n return (req: IncomingMessage, res: ServerResponse, pathname: string) =>\n handleCodingAgentRoutes(req, res, pathname, ctx);\n}\n",
|
|
45
45
|
"/**\n * Coding Agent Plugin for Milady\n *\n * Provides orchestration capabilities for CLI-based coding agents:\n * - PTY session management (spawn, control, monitor coding agents)\n * - Git workspace provisioning (clone, branch, PR creation)\n * - GitHub issue management (create, list, update, close)\n * - Integration with Claude Code, Codex, Gemini CLI, Aider, Pi, etc.\n *\n * @module @elizaos/plugin-agent-orchestrator\n */\n\nimport type { Plugin } from \"@elizaos/core\";\nimport { finalizeWorkspaceAction } from \"./actions/finalize-workspace.js\";\nimport { listAgentsAction } from \"./actions/list-agents.js\";\n// Actions - Issue management\nimport { manageIssuesAction } from \"./actions/manage-issues.js\";\n// Actions - Workspace management\nimport { provisionWorkspaceAction } from \"./actions/provision-workspace.js\";\nimport { sendToAgentAction } from \"./actions/send-to-agent.js\";\n// Actions - PTY management\nimport { spawnAgentAction } from \"./actions/spawn-agent.js\";\n// Actions - Unified task launcher\nimport { startCodingTaskAction } from \"./actions/start-coding-task.js\";\nimport { stopAgentAction } from \"./actions/stop-agent.js\";\n// Providers\nimport { codingAgentExamplesProvider } from \"./providers/action-examples.js\";\nimport { activeWorkspaceContextProvider } from \"./providers/active-workspace-context.js\";\n// Services\nimport { PTYService } from \"./services/pty-service.js\";\nimport { CodingWorkspaceService } from \"./services/workspace-service.js\";\n\nexport const codingAgentPlugin: Plugin = {\n name: \"@elizaos/plugin-agent-orchestrator\",\n description:\n \"Orchestrate CLI coding agents (Claude Code, Codex, Gemini, Aider, Pi, etc.) via PTY sessions, \" +\n \"manage git workspaces, and handle GitHub issues for autonomous coding tasks\",\n\n // NOTE: init() is NOT reliably called by ElizaOS for workspace plugins.\n // SwarmCoordinator and auth callback wiring is done in PTYService.start()\n // which ElizaOS calls reliably via the services lifecycle.\n\n // Services manage PTY sessions and git workspaces\n // biome-ignore lint/suspicious/noExplicitAny: ElizaOS Plugin type expects Service[] but our classes don't extend their base Service\n services: [PTYService as any, CodingWorkspaceService as any],\n\n // Actions expose capabilities to the agent\n actions: [\n // Unified task launcher (provision + spawn in one step)\n startCodingTaskAction,\n // PTY session management (for direct control)\n spawnAgentAction,\n sendToAgentAction,\n stopAgentAction,\n listAgentsAction,\n // Workspace management\n provisionWorkspaceAction,\n finalizeWorkspaceAction,\n // Issue management\n manageIssuesAction,\n ],\n\n // No evaluators needed for now\n evaluators: [],\n\n // Providers inject context into the prompt\n providers: [\n activeWorkspaceContextProvider, // Live workspace/session state\n codingAgentExamplesProvider, // Structured action call examples\n ],\n};\n\nexport default codingAgentPlugin;\n\n// Re-export coding agent adapter types\nexport type {\n AdapterType,\n AgentCredentials,\n AgentFileDescriptor,\n ApprovalConfig,\n ApprovalPreset,\n PreflightResult,\n PresetDefinition,\n RiskLevel,\n ToolCategory,\n WriteMemoryOptions,\n} from \"coding-agent-adapters\";\nexport { finalizeWorkspaceAction } from \"./actions/finalize-workspace.js\";\nexport { listAgentsAction } from \"./actions/list-agents.js\";\nexport { manageIssuesAction } from \"./actions/manage-issues.js\";\nexport { provisionWorkspaceAction } from \"./actions/provision-workspace.js\";\nexport { sendToAgentAction } from \"./actions/send-to-agent.js\";\nexport { spawnAgentAction } from \"./actions/spawn-agent.js\";\n// Re-export actions\nexport { startCodingTaskAction } from \"./actions/start-coding-task.js\";\nexport { stopAgentAction } from \"./actions/stop-agent.js\";\n// Re-export API routes for server integration\nexport {\n createCodingAgentRouteHandler,\n handleCodingAgentRoutes,\n} from \"./api/routes.js\";\n// Re-export service types\nexport type {\n CodingAgentType,\n PTYServiceConfig,\n SessionEventName,\n SessionInfo,\n SpawnSessionOptions,\n} from \"./services/pty-service.js\";\n// Re-export services for direct access\nexport { getCoordinator, PTYService } from \"./services/pty-service.js\";\nexport type {\n AgentDecisionCallback,\n ChatMessageCallback,\n CoordinationDecision,\n PendingDecision,\n SupervisionLevel,\n SwarmCompleteCallback,\n SwarmEvent,\n TaskCompletionSummary,\n TaskContext,\n WsBroadcastCallback,\n} from \"./services/swarm-coordinator.js\";\nexport { SwarmCoordinator } from \"./services/swarm-coordinator.js\";\nexport type { CoordinationLLMResponse, SharedDecision } from \"./services/swarm-coordinator-prompts.js\";\nexport {\n buildBlockedEventMessage,\n buildTurnCompleteEventMessage,\n} from \"./services/swarm-coordinator-prompts.js\";\nexport type {\n AuthPromptCallback,\n CodingWorkspaceConfig,\n CommitOptions,\n ProvisionWorkspaceOptions,\n PushOptions,\n WorkspaceResult,\n} from \"./services/workspace-service.js\";\nexport { CodingWorkspaceService } from \"./services/workspace-service.js\";\n"
|
|
46
46
|
],
|
|
47
|
-
"mappings": "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",
|
|
48
|
-
"debugId": "
|
|
47
|
+
"mappings": "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",
|
|
48
|
+
"debugId": "62DE82DAFB3D448A64756E2164756E21",
|
|
49
49
|
"names": []
|
|
50
50
|
}
|