@slopus/rig 0.0.4 → 0.0.6
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/README.md +144 -1
- package/dist/agent/Agent.d.ts +16 -0
- package/dist/agent/Agent.d.ts.map +1 -1
- package/dist/agent/Agent.js +106 -0
- package/dist/agent/compaction/compactConversation.d.ts +22 -0
- package/dist/agent/compaction/compactConversation.d.ts.map +1 -0
- package/dist/agent/compaction/compactConversation.js +77 -0
- package/dist/agent/compaction/estimateMessagesTokens.d.ts +3 -0
- package/dist/agent/compaction/estimateMessagesTokens.d.ts.map +1 -0
- package/dist/agent/compaction/estimateMessagesTokens.js +39 -0
- package/dist/agent/compaction/formatMessagesForCompaction.d.ts +3 -0
- package/dist/agent/compaction/formatMessagesForCompaction.d.ts.map +1 -0
- package/dist/agent/compaction/formatMessagesForCompaction.js +30 -0
- package/dist/agent/compaction/requestCompactionSummary.d.ts +11 -0
- package/dist/agent/compaction/requestCompactionSummary.d.ts.map +1 -0
- package/dist/agent/compaction/requestCompactionSummary.js +43 -0
- package/dist/agent/context/AgentContext.d.ts +8 -0
- package/dist/agent/context/AgentContext.d.ts.map +1 -1
- package/dist/agent/context/BashContext.d.ts +23 -0
- package/dist/agent/context/BashContext.d.ts.map +1 -1
- package/dist/agent/context/GoalContext.d.ts +7 -0
- package/dist/agent/context/GoalContext.d.ts.map +1 -0
- package/dist/agent/context/GoalContext.js +1 -0
- package/dist/agent/context/SubagentContext.d.ts +20 -1
- package/dist/agent/context/SubagentContext.d.ts.map +1 -1
- package/dist/agent/context/TaskContext.d.ts +8 -0
- package/dist/agent/context/TaskContext.d.ts.map +1 -0
- package/dist/agent/context/TaskContext.js +1 -0
- package/dist/agent/context/UserInputContext.d.ts +7 -0
- package/dist/agent/context/UserInputContext.d.ts.map +1 -0
- package/dist/agent/context/UserInputContext.js +1 -0
- package/dist/agent/context/assertCanWritePath.d.ts +3 -0
- package/dist/agent/context/assertCanWritePath.d.ts.map +1 -0
- package/dist/agent/context/assertCanWritePath.js +11 -0
- package/dist/agent/context/createJustBashBashContext.d.ts.map +1 -1
- package/dist/agent/context/createJustBashBashContext.js +127 -0
- package/dist/agent/context/createNodeAgentContext.d.ts +8 -0
- package/dist/agent/context/createNodeAgentContext.d.ts.map +1 -1
- package/dist/agent/context/createNodeAgentContext.js +15 -2
- package/dist/agent/context/createNodeBashContext.d.ts +2 -0
- package/dist/agent/context/createNodeBashContext.d.ts.map +1 -1
- package/dist/agent/context/createNodeBashContext.js +123 -4
- package/dist/agent/context/createNodeFileSystemContext.d.ts +2 -0
- package/dist/agent/context/createNodeFileSystemContext.d.ts.map +1 -1
- package/dist/agent/context/createNodeFileSystemContext.js +18 -8
- package/dist/agent/context/createSandboxedCommand.d.ts +7 -0
- package/dist/agent/context/createSandboxedCommand.d.ts.map +1 -0
- package/dist/agent/context/createSandboxedCommand.js +47 -0
- package/dist/agent/context/findGitWritablePaths.d.ts +2 -0
- package/dist/agent/context/findGitWritablePaths.d.ts.map +1 -0
- package/dist/agent/context/findGitWritablePaths.js +54 -0
- package/dist/agent/context/isPathInsideWorkspace.d.ts +2 -0
- package/dist/agent/context/isPathInsideWorkspace.d.ts.map +1 -0
- package/dist/agent/context/isPathInsideWorkspace.js +14 -0
- package/dist/agent/context/resolvePotentialPath.d.ts +2 -0
- package/dist/agent/context/resolvePotentialPath.d.ts.map +1 -0
- package/dist/agent/context/resolvePotentialPath.js +32 -0
- package/dist/agent/createPermissionInstructions.d.ts +3 -0
- package/dist/agent/createPermissionInstructions.d.ts.map +1 -0
- package/dist/agent/createPermissionInstructions.js +12 -0
- package/dist/agent/createSubagentInstructions.js +1 -1
- package/dist/agent/createSystemPrompt.d.ts.map +1 -1
- package/dist/agent/createSystemPrompt.js +4 -0
- package/dist/agent/index.d.ts +7 -3
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/loop.d.ts +16 -2
- package/dist/agent/loop.d.ts.map +1 -1
- package/dist/agent/loop.js +115 -15
- package/dist/agent/printAgentMessageToConsole.d.ts +1 -0
- package/dist/agent/printAgentMessageToConsole.d.ts.map +1 -1
- package/dist/agent/types.d.ts +1 -0
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/app/CodingAssistantAgentBackend.d.ts +11 -1
- package/dist/app/CodingAssistantAgentBackend.d.ts.map +1 -1
- package/dist/app/CodingAssistantApp.d.ts +7 -1
- package/dist/app/CodingAssistantApp.d.ts.map +1 -1
- package/dist/app/CodingAssistantApp.js +678 -45
- package/dist/app/ScrollbackPreservingTerminal.d.ts +5 -0
- package/dist/app/ScrollbackPreservingTerminal.d.ts.map +1 -0
- package/dist/app/ScrollbackPreservingTerminal.js +7 -0
- package/dist/app/StartupStatusApp.js +1 -1
- package/dist/app/createCodingAssistantAgent.d.ts +6 -1
- package/dist/app/createCodingAssistantAgent.d.ts.map +1 -1
- package/dist/app/createCodingAssistantAgent.js +22 -5
- package/dist/app/createSlashCommands.d.ts.map +1 -1
- package/dist/app/createSlashCommands.js +42 -0
- package/dist/app/highlightAgentCode.d.ts.map +1 -1
- package/dist/app/highlightAgentCode.js +10 -7
- package/dist/app/humanizeGoalStatus.d.ts +3 -0
- package/dist/app/humanizeGoalStatus.d.ts.map +1 -0
- package/dist/app/humanizeGoalStatus.js +9 -0
- package/dist/app/humanizePermissionMode.d.ts +3 -0
- package/dist/app/humanizePermissionMode.d.ts.map +1 -0
- package/dist/app/humanizePermissionMode.js +9 -0
- package/dist/app/humanizeToolName.d.ts +2 -0
- package/dist/app/humanizeToolName.d.ts.map +1 -0
- package/dist/app/humanizeToolName.js +40 -0
- package/dist/app/main.d.ts.map +1 -1
- package/dist/app/main.js +4 -0
- package/dist/app/renderAgentMarkdown.d.ts.map +1 -1
- package/dist/app/renderAgentMarkdown.js +2 -1
- package/dist/app/runApp.d.ts +2 -0
- package/dist/app/runApp.d.ts.map +1 -1
- package/dist/app/runApp.js +48 -3
- package/dist/app/sanitizeTerminalText.d.ts +2 -0
- package/dist/app/sanitizeTerminalText.d.ts.map +1 -0
- package/dist/app/sanitizeTerminalText.js +55 -0
- package/dist/app/upsertSubagentSummary.d.ts +3 -0
- package/dist/app/upsertSubagentSummary.d.ts.map +1 -0
- package/dist/app/upsertSubagentSummary.js +6 -0
- package/dist/client/ProtocolHttpClient.d.ts +12 -1
- package/dist/client/ProtocolHttpClient.d.ts.map +1 -1
- package/dist/client/ProtocolHttpClient.js +21 -0
- package/dist/client/RemoteAgent.d.ts +11 -1
- package/dist/client/RemoteAgent.d.ts.map +1 -1
- package/dist/client/RemoteAgent.js +91 -1
- package/dist/config/createConfigFile.d.ts.map +1 -1
- package/dist/config/createConfigFile.js +5 -0
- package/dist/config/defaultConfig.d.ts.map +1 -1
- package/dist/config/defaultConfig.js +2 -0
- package/dist/config/mergeConfigValues.d.ts.map +1 -1
- package/dist/config/mergeConfigValues.js +8 -1
- package/dist/config/parseConfigToml.d.ts.map +1 -1
- package/dist/config/parseConfigToml.js +88 -0
- package/dist/config/serializeMcpServers.d.ts +3 -0
- package/dist/config/serializeMcpServers.d.ts.map +1 -0
- package/dist/config/serializeMcpServers.js +34 -0
- package/dist/config/types.d.ts +6 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/writeRuntimeConfig.d.ts.map +1 -1
- package/dist/config/writeRuntimeConfig.js +3 -0
- package/dist/goals/SessionGoal.d.ts +14 -0
- package/dist/goals/SessionGoal.d.ts.map +1 -0
- package/dist/goals/SessionGoal.js +1 -0
- package/dist/goals/createGoalContinuationPrompt.d.ts +3 -0
- package/dist/goals/createGoalContinuationPrompt.d.ts.map +1 -0
- package/dist/goals/createGoalContinuationPrompt.js +17 -0
- package/dist/goals/index.d.ts +5 -0
- package/dist/goals/index.d.ts.map +1 -0
- package/dist/goals/index.js +3 -0
- package/dist/goals/isGoalStatus.d.ts +3 -0
- package/dist/goals/isGoalStatus.d.ts.map +1 -0
- package/dist/goals/isGoalStatus.js +3 -0
- package/dist/goals/normalizeGoalObjective.d.ts +3 -0
- package/dist/goals/normalizeGoalObjective.d.ts.map +1 -0
- package/dist/goals/normalizeGoalObjective.js +11 -0
- package/dist/mcp/McpClientManager.d.ts +12 -0
- package/dist/mcp/McpClientManager.d.ts.map +1 -0
- package/dist/mcp/McpClientManager.js +123 -0
- package/dist/mcp/connectMcpServer.d.ts +8 -0
- package/dist/mcp/connectMcpServer.d.ts.map +1 -0
- package/dist/mcp/connectMcpServer.js +47 -0
- package/dist/mcp/createMcpTool.d.ts +11 -0
- package/dist/mcp/createMcpTool.d.ts.map +1 -0
- package/dist/mcp/createMcpTool.js +43 -0
- package/dist/mcp/index.d.ts +5 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +3 -0
- package/dist/mcp/loadMcpServerConfigs.d.ts +4 -0
- package/dist/mcp/loadMcpServerConfigs.d.ts.map +1 -0
- package/dist/mcp/loadMcpServerConfigs.js +122 -0
- package/dist/mcp/mcpResultToContentBlocks.d.ts +3 -0
- package/dist/mcp/mcpResultToContentBlocks.d.ts.map +1 -0
- package/dist/mcp/mcpResultToContentBlocks.js +51 -0
- package/dist/mcp/mergeMcpTools.d.ts +7 -0
- package/dist/mcp/mergeMcpTools.d.ts.map +1 -0
- package/dist/mcp/mergeMcpTools.js +34 -0
- package/dist/mcp/normalizeMcpName.d.ts +2 -0
- package/dist/mcp/normalizeMcpName.d.ts.map +1 -0
- package/dist/mcp/normalizeMcpName.js +3 -0
- package/dist/mcp/types.d.ts +37 -0
- package/dist/mcp/types.d.ts.map +1 -0
- package/dist/mcp/types.js +1 -0
- package/dist/permissions/PermissionContext.d.ts +7 -0
- package/dist/permissions/PermissionContext.d.ts.map +1 -0
- package/dist/permissions/PermissionContext.js +1 -0
- package/dist/permissions/PermissionMode.d.ts +3 -0
- package/dist/permissions/PermissionMode.d.ts.map +1 -0
- package/dist/permissions/PermissionMode.js +1 -0
- package/dist/permissions/createPermissionContext.d.ts +4 -0
- package/dist/permissions/createPermissionContext.d.ts.map +1 -0
- package/dist/permissions/createPermissionContext.js +16 -0
- package/dist/permissions/index.d.ts +13 -0
- package/dist/permissions/index.d.ts.map +1 -0
- package/dist/permissions/index.js +9 -0
- package/dist/permissions/isPermissionMode.d.ts +3 -0
- package/dist/permissions/isPermissionMode.d.ts.map +1 -0
- package/dist/permissions/isPermissionMode.js +6 -0
- package/dist/permissions/parseAutoPermissionReview.d.ts +7 -0
- package/dist/permissions/parseAutoPermissionReview.d.ts.map +1 -0
- package/dist/permissions/parseAutoPermissionReview.js +33 -0
- package/dist/permissions/parsePermissionMode.d.ts +3 -0
- package/dist/permissions/parsePermissionMode.d.ts.map +1 -0
- package/dist/permissions/parsePermissionMode.js +6 -0
- package/dist/permissions/requestAutoPermissionApproval.d.ts +9 -0
- package/dist/permissions/requestAutoPermissionApproval.d.ts.map +1 -0
- package/dist/permissions/requestAutoPermissionApproval.js +26 -0
- package/dist/permissions/reviewAutoPermission.d.ts +13 -0
- package/dist/permissions/reviewAutoPermission.d.ts.map +1 -0
- package/dist/permissions/reviewAutoPermission.js +70 -0
- package/dist/permissions/shouldElevateToolInAutoMode.d.ts +2 -0
- package/dist/permissions/shouldElevateToolInAutoMode.d.ts.map +1 -0
- package/dist/permissions/shouldElevateToolInAutoMode.js +37 -0
- package/dist/permissions/shouldReviewToolInAutoMode.d.ts +2 -0
- package/dist/permissions/shouldReviewToolInAutoMode.d.ts.map +1 -0
- package/dist/permissions/shouldReviewToolInAutoMode.js +85 -0
- package/dist/permissions/summarizePermissionAction.d.ts +2 -0
- package/dist/permissions/summarizePermissionAction.d.ts.map +1 -0
- package/dist/permissions/summarizePermissionAction.js +29 -0
- package/dist/protocol/SessionProtocol.d.ts +49 -2
- package/dist/protocol/SessionProtocol.d.ts.map +1 -1
- package/dist/protocol/index.d.ts +4 -1
- package/dist/protocol/index.d.ts.map +1 -1
- package/dist/providers/claude-sdk.d.ts.map +1 -1
- package/dist/providers/claude-sdk.js +7 -6
- package/dist/providers/models.d.ts +12 -12
- package/dist/providers/models.d.ts.map +1 -1
- package/dist/providers/models.js +18 -0
- package/dist/providers/types.d.ts +3 -0
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/review/createCodeReviewPrompt.d.ts +2 -0
- package/dist/review/createCodeReviewPrompt.d.ts.map +1 -0
- package/dist/review/createCodeReviewPrompt.js +11 -0
- package/dist/review/index.d.ts +2 -0
- package/dist/review/index.d.ts.map +1 -0
- package/dist/review/index.js +1 -0
- package/dist/server/AgentSessionManager.d.ts +10 -1
- package/dist/server/AgentSessionManager.d.ts.map +1 -1
- package/dist/server/AgentSessionManager.js +203 -12
- package/dist/server/InMemorySession.d.ts +34 -1
- package/dist/server/InMemorySession.d.ts.map +1 -1
- package/dist/server/InMemorySession.js +558 -10
- package/dist/server/InMemorySessionStore.d.ts +2 -0
- package/dist/server/InMemorySessionStore.d.ts.map +1 -1
- package/dist/server/InMemorySessionStore.js +7 -0
- package/dist/server/PersistentSessionStore.d.ts +2 -0
- package/dist/server/PersistentSessionStore.d.ts.map +1 -1
- package/dist/server/PersistentSessionStore.js +80 -5
- package/dist/server/createGoalTitle.d.ts +2 -0
- package/dist/server/createGoalTitle.d.ts.map +1 -0
- package/dist/server/createGoalTitle.js +4 -0
- package/dist/server/createProtocolHttpServer.d.ts.map +1 -1
- package/dist/server/createProtocolHttpServer.js +119 -2
- package/dist/server/runLocalProtocolServer.d.ts.map +1 -1
- package/dist/server/runLocalProtocolServer.js +18 -2
- package/dist/tasks/index.d.ts +2 -0
- package/dist/tasks/index.d.ts.map +1 -0
- package/dist/tasks/index.js +1 -0
- package/dist/tasks/types.d.ts +39 -0
- package/dist/tasks/types.d.ts.map +1 -0
- package/dist/tasks/types.js +1 -0
- package/dist/tools/Agent.d.ts +13 -3
- package/dist/tools/Agent.d.ts.map +1 -1
- package/dist/tools/Agent.js +40 -12
- package/dist/tools/claude/AskUserQuestion.d.ts +23 -0
- package/dist/tools/claude/AskUserQuestion.d.ts.map +1 -0
- package/dist/tools/claude/AskUserQuestion.js +52 -0
- package/dist/tools/claude/Bash.d.ts +2 -0
- package/dist/tools/claude/Bash.d.ts.map +1 -1
- package/dist/tools/claude/Bash.js +20 -2
- package/dist/tools/claude/SendMessage.d.ts +10 -0
- package/dist/tools/claude/SendMessage.d.ts.map +1 -0
- package/dist/tools/claude/SendMessage.js +33 -0
- package/dist/tools/claude/TaskCreate.d.ts +12 -0
- package/dist/tools/claude/TaskCreate.d.ts.map +1 -0
- package/dist/tools/claude/TaskCreate.js +34 -0
- package/dist/tools/claude/TaskGet.d.ts +16 -0
- package/dist/tools/claude/TaskGet.d.ts.map +1 -0
- package/dist/tools/claude/TaskGet.js +44 -0
- package/dist/tools/claude/TaskList.d.ts +10 -0
- package/dist/tools/claude/TaskList.d.ts.map +1 -0
- package/dist/tools/claude/TaskList.js +51 -0
- package/dist/tools/claude/TaskOutput.d.ts +17 -0
- package/dist/tools/claude/TaskOutput.d.ts.map +1 -0
- package/dist/tools/claude/TaskOutput.js +74 -0
- package/dist/tools/claude/TaskStop.d.ts +10 -0
- package/dist/tools/claude/TaskStop.d.ts.map +1 -0
- package/dist/tools/claude/TaskStop.js +42 -0
- package/dist/tools/claude/TaskUpdate.d.ts +21 -0
- package/dist/tools/claude/TaskUpdate.d.ts.map +1 -0
- package/dist/tools/claude/TaskUpdate.js +55 -0
- package/dist/tools/claude/index.d.ts +111 -5
- package/dist/tools/claude/index.d.ts.map +1 -1
- package/dist/tools/claude/index.js +24 -2
- package/dist/tools/claude/parseBackgroundTaskId.d.ts +2 -0
- package/dist/tools/claude/parseBackgroundTaskId.d.ts.map +1 -0
- package/dist/tools/claude/parseBackgroundTaskId.js +7 -0
- package/dist/tools/claude/taskSchemas.d.ts +14 -0
- package/dist/tools/claude/taskSchemas.d.ts.map +1 -0
- package/dist/tools/claude/taskSchemas.js +18 -0
- package/dist/tools/codex/exec_command.d.ts +8 -6
- package/dist/tools/codex/exec_command.d.ts.map +1 -1
- package/dist/tools/codex/exec_command.js +37 -18
- package/dist/tools/codex/followup_task.d.ts +11 -0
- package/dist/tools/codex/followup_task.d.ts.map +1 -0
- package/dist/tools/codex/followup_task.js +18 -0
- package/dist/tools/codex/humanizeTaskName.d.ts +2 -0
- package/dist/tools/codex/humanizeTaskName.d.ts.map +1 -0
- package/dist/tools/codex/humanizeTaskName.js +4 -0
- package/dist/tools/codex/index.d.ts +90 -7
- package/dist/tools/codex/index.d.ts.map +1 -1
- package/dist/tools/codex/index.js +24 -0
- package/dist/tools/codex/interrupt_agent.d.ts +10 -0
- package/dist/tools/codex/interrupt_agent.d.ts.map +1 -0
- package/dist/tools/codex/interrupt_agent.js +17 -0
- package/dist/tools/codex/list_agents.d.ts +12 -0
- package/dist/tools/codex/list_agents.d.ts.map +1 -0
- package/dist/tools/codex/list_agents.js +23 -0
- package/dist/tools/codex/request_user_input.d.ts +16 -0
- package/dist/tools/codex/request_user_input.d.ts.map +1 -0
- package/dist/tools/codex/request_user_input.js +58 -0
- package/dist/tools/codex/requireSubagentContext.d.ts +3 -0
- package/dist/tools/codex/requireSubagentContext.d.ts.map +1 -0
- package/dist/tools/codex/requireSubagentContext.js +6 -0
- package/dist/tools/codex/spawn_agent.d.ts +9 -0
- package/dist/tools/codex/spawn_agent.d.ts.map +1 -0
- package/dist/tools/codex/spawn_agent.js +35 -0
- package/dist/tools/codex/subagentSchemas.d.ts +8 -0
- package/dist/tools/codex/subagentSchemas.d.ts.map +1 -0
- package/dist/tools/codex/subagentSchemas.js +13 -0
- package/dist/tools/codex/unifiedExecOutput.d.ts +14 -0
- package/dist/tools/codex/unifiedExecOutput.d.ts.map +1 -0
- package/dist/tools/codex/unifiedExecOutput.js +44 -0
- package/dist/tools/codex/update_plan.d.ts +10 -0
- package/dist/tools/codex/update_plan.d.ts.map +1 -0
- package/dist/tools/codex/update_plan.js +34 -0
- package/dist/tools/codex/wait_agent.d.ts +13 -0
- package/dist/tools/codex/wait_agent.d.ts.map +1 -0
- package/dist/tools/codex/wait_agent.js +32 -0
- package/dist/tools/codex/write_stdin.d.ts +6 -1
- package/dist/tools/codex/write_stdin.d.ts.map +1 -1
- package/dist/tools/codex/write_stdin.js +44 -12
- package/dist/tools/goals/create_goal.d.ts +11 -0
- package/dist/tools/goals/create_goal.d.ts.map +1 -0
- package/dist/tools/goals/create_goal.js +29 -0
- package/dist/tools/goals/get_goal.d.ts +9 -0
- package/dist/tools/goals/get_goal.d.ts.map +1 -0
- package/dist/tools/goals/get_goal.js +26 -0
- package/dist/tools/goals/goalSchemas.d.ts +8 -0
- package/dist/tools/goals/goalSchemas.d.ts.map +1 -0
- package/dist/tools/goals/goalSchemas.js +13 -0
- package/dist/tools/goals/index.d.ts +30 -0
- package/dist/tools/goals/index.d.ts.map +1 -0
- package/dist/tools/goals/index.js +7 -0
- package/dist/tools/goals/update_goal.d.ts +11 -0
- package/dist/tools/goals/update_goal.d.ts.map +1 -0
- package/dist/tools/goals/update_goal.js +33 -0
- package/dist/tools/index.d.ts +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +1 -0
- package/dist/tools/pi/bash.d.ts.map +1 -1
- package/dist/tools/pi/bash.js +2 -0
- package/dist/tools/utils/readSessionWithProgress.d.ts +9 -0
- package/dist/tools/utils/readSessionWithProgress.d.ts.map +1 -0
- package/dist/tools/utils/readSessionWithProgress.js +27 -0
- package/dist/tools/utils/shell.d.ts +2 -0
- package/dist/tools/utils/shell.d.ts.map +1 -1
- package/dist/tools/utils/shell.js +37 -0
- package/dist/tools/utils/summarizeShellOutput.d.ts.map +1 -1
- package/dist/tools/utils/summarizeShellOutput.js +2 -0
- package/dist/user-input/index.d.ts +2 -0
- package/dist/user-input/index.d.ts.map +1 -0
- package/dist/user-input/index.js +1 -0
- package/dist/user-input/types.d.ts +19 -0
- package/dist/user-input/types.d.ts.map +1 -0
- package/dist/user-input/types.js +1 -0
- package/dist/web/assets/highlighted-body-OFNGDK62-BuJOCQJD.js +1 -0
- package/dist/web/assets/highlighted-body-OFNGDK62-TwhCqUaJ.js +1 -0
- package/dist/web/assets/index-B6Bc6sUJ.css +1 -0
- package/dist/web/assets/index-BC99-iZC.js +341 -0
- package/dist/web/assets/index-BZN9jSiw.js +341 -0
- package/dist/web/assets/index-CcF0unjO.css +1 -0
- package/dist/web/index.html +2 -2
- package/package.json +2 -1
|
@@ -1,29 +1,61 @@
|
|
|
1
1
|
import { Type } from "@sinclair/typebox";
|
|
2
2
|
import { defineTool } from "../../agent/types.js";
|
|
3
|
-
import {
|
|
3
|
+
import { createUnifiedExecOutput, formatUnifiedExecOutput, unifiedExecOutputSchema, } from "./unifiedExecOutput.js";
|
|
4
|
+
import { readSessionWithProgress } from "../utils/readSessionWithProgress.js";
|
|
4
5
|
export const codexWriteStdinTool = defineTool({
|
|
5
6
|
name: "write_stdin",
|
|
6
7
|
label: "write_stdin",
|
|
7
|
-
description: "Writes characters to an existing
|
|
8
|
+
description: "Writes characters to an existing shell session and returns recent output.",
|
|
8
9
|
arguments: Type.Object({
|
|
9
|
-
session_id: Type.Number({ description: "Identifier of the running
|
|
10
|
+
session_id: Type.Number({ description: "Identifier of the running shell session." }),
|
|
10
11
|
chars: Type.Optional(Type.String({
|
|
11
12
|
description: "Bytes to write to stdin. Defaults to empty, which polls without writing.",
|
|
12
13
|
})),
|
|
13
14
|
yield_time_ms: Type.Optional(Type.Number({
|
|
14
|
-
description: "Wait before yielding output. Non-empty writes default to 250 ms
|
|
15
|
+
description: "Wait before yielding output. Non-empty writes default to 250 ms; empty polls default to 5000 ms.",
|
|
15
16
|
})),
|
|
16
17
|
max_output_tokens: Type.Optional(Type.Number({
|
|
17
18
|
description: "Output token budget. Defaults to 10000 tokens; larger requests may be capped by policy.",
|
|
18
19
|
})),
|
|
19
20
|
}),
|
|
20
|
-
returnType:
|
|
21
|
-
execute: ({ session_id }) =>
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
21
|
+
returnType: unifiedExecOutputSchema,
|
|
22
|
+
execute: async ({ session_id, chars = "", yield_time_ms, max_output_tokens }, context, execution) => {
|
|
23
|
+
const startedAt = Date.now();
|
|
24
|
+
let interrupted = undefined;
|
|
25
|
+
if (chars.includes("\u0003")) {
|
|
26
|
+
interrupted = await context.bash.killSession(session_id);
|
|
27
|
+
if (interrupted === undefined)
|
|
28
|
+
throw new Error("The shell session was not found.");
|
|
29
|
+
}
|
|
30
|
+
else if (chars.length > 0) {
|
|
31
|
+
if (!context.bash.supportsSessionInput) {
|
|
32
|
+
throw new Error("This shell session does not support interactive input.");
|
|
33
|
+
}
|
|
34
|
+
const written = await context.bash.writeSession(session_id, chars);
|
|
35
|
+
if (!written)
|
|
36
|
+
throw new Error("The shell session is no longer accepting input.");
|
|
37
|
+
}
|
|
38
|
+
const defaultWaitMs = chars.length > 0 ? 250 : 5_000;
|
|
39
|
+
const maximumWaitMs = chars.length > 0 ? 30_000 : 300_000;
|
|
40
|
+
const snapshot = interrupted ??
|
|
41
|
+
(await readSessionWithProgress({
|
|
42
|
+
bash: context.bash,
|
|
43
|
+
...(execution.onProgress === undefined ? {} : { onProgress: execution.onProgress }),
|
|
44
|
+
sessionId: session_id,
|
|
45
|
+
...(execution.signal === undefined ? {} : { signal: execution.signal }),
|
|
46
|
+
waitMs: Math.max(0, Math.min(maximumWaitMs, yield_time_ms ?? defaultWaitMs)),
|
|
47
|
+
}));
|
|
48
|
+
if (snapshot === undefined)
|
|
49
|
+
throw new Error("The shell session was not found.");
|
|
50
|
+
return createUnifiedExecOutput(snapshot, (Date.now() - startedAt) / 1_000, max_output_tokens);
|
|
51
|
+
},
|
|
52
|
+
toLLM: (result) => [{ type: "text", text: formatUnifiedExecOutput(result) }],
|
|
53
|
+
toUI: (result, args) => args.chars === undefined || args.chars.length === 0
|
|
54
|
+
? result.session_id === undefined
|
|
55
|
+
? "The shell command has finished."
|
|
56
|
+
: "Checked the running shell command."
|
|
57
|
+
: result.session_id === undefined
|
|
58
|
+
? "Sent input; the shell command has finished."
|
|
59
|
+
: "Sent input to the running shell command.",
|
|
28
60
|
locks: [],
|
|
29
61
|
});
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare const createGoalTool: import("../../agent/types.js").DefinedTool<import("@sinclair/typebox").TObject<{
|
|
2
|
+
objective: import("@sinclair/typebox").TString;
|
|
3
|
+
}>, import("@sinclair/typebox").TObject<{
|
|
4
|
+
goal: import("@sinclair/typebox").TObject<{
|
|
5
|
+
createdAt: import("@sinclair/typebox").TNumber;
|
|
6
|
+
objective: import("@sinclair/typebox").TString;
|
|
7
|
+
status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"active">, import("@sinclair/typebox").TLiteral<"paused">, import("@sinclair/typebox").TLiteral<"blocked">, import("@sinclair/typebox").TLiteral<"complete">]>;
|
|
8
|
+
updatedAt: import("@sinclair/typebox").TNumber;
|
|
9
|
+
}>;
|
|
10
|
+
}>>;
|
|
11
|
+
//# sourceMappingURL=create_goal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create_goal.d.ts","sourceRoot":"","sources":["../../../sources/tools/goals/create_goal.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,cAAc;;;;;;;;;GA4BzB,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Type } from "@sinclair/typebox";
|
|
2
|
+
import { defineTool } from "../../agent/types.js";
|
|
3
|
+
import { sessionGoalSchema } from "./goalSchemas.js";
|
|
4
|
+
export const createGoalTool = defineTool({
|
|
5
|
+
name: "create_goal",
|
|
6
|
+
label: "create_goal",
|
|
7
|
+
description: `Create a persistent goal only when the user explicitly asks for long-running goal execution.
|
|
8
|
+
Do not infer a goal from an ordinary task. A new goal cannot replace an unfinished goal.`,
|
|
9
|
+
arguments: Type.Object({
|
|
10
|
+
objective: Type.String({
|
|
11
|
+
description: "The concrete objective to pursue until it is complete or blocked.",
|
|
12
|
+
}),
|
|
13
|
+
}, { additionalProperties: false }),
|
|
14
|
+
returnType: Type.Object({ goal: sessionGoalSchema }),
|
|
15
|
+
execute({ objective }, context) {
|
|
16
|
+
if (context.goals === undefined) {
|
|
17
|
+
throw new Error("Goal tracking is unavailable in this session.");
|
|
18
|
+
}
|
|
19
|
+
return { goal: context.goals.create({ objective }) };
|
|
20
|
+
},
|
|
21
|
+
toLLM: ({ goal }) => [
|
|
22
|
+
{
|
|
23
|
+
type: "text",
|
|
24
|
+
text: `Goal created and active.\nObjective: ${goal.objective}`,
|
|
25
|
+
},
|
|
26
|
+
],
|
|
27
|
+
toUI: ({ goal }) => `Started goal: ${goal.objective}`,
|
|
28
|
+
locks: ["goal"],
|
|
29
|
+
});
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare const getGoalTool: import("../../agent/types.js").DefinedTool<import("@sinclair/typebox").TObject<{}>, import("@sinclair/typebox").TObject<{
|
|
2
|
+
goal: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
|
|
3
|
+
createdAt: import("@sinclair/typebox").TNumber;
|
|
4
|
+
objective: import("@sinclair/typebox").TString;
|
|
5
|
+
status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"active">, import("@sinclair/typebox").TLiteral<"paused">, import("@sinclair/typebox").TLiteral<"blocked">, import("@sinclair/typebox").TLiteral<"complete">]>;
|
|
6
|
+
updatedAt: import("@sinclair/typebox").TNumber;
|
|
7
|
+
}>, import("@sinclair/typebox").TNull]>;
|
|
8
|
+
}>>;
|
|
9
|
+
//# sourceMappingURL=get_goal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get_goal.d.ts","sourceRoot":"","sources":["../../../sources/tools/goals/get_goal.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,WAAW;;;;;;;GAuBtB,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Type } from "@sinclair/typebox";
|
|
2
|
+
import { defineTool } from "../../agent/types.js";
|
|
3
|
+
import { sessionGoalSchema } from "./goalSchemas.js";
|
|
4
|
+
export const getGoalTool = defineTool({
|
|
5
|
+
name: "get_goal",
|
|
6
|
+
label: "get_goal",
|
|
7
|
+
description: "Get the persistent goal for this session, including its objective and status.",
|
|
8
|
+
arguments: Type.Object({}, { additionalProperties: false }),
|
|
9
|
+
returnType: Type.Object({ goal: Type.Union([sessionGoalSchema, Type.Null()]) }),
|
|
10
|
+
execute(_args, context) {
|
|
11
|
+
if (context.goals === undefined) {
|
|
12
|
+
throw new Error("Goal tracking is unavailable in this session.");
|
|
13
|
+
}
|
|
14
|
+
return { goal: context.goals.get() ?? null };
|
|
15
|
+
},
|
|
16
|
+
toLLM: ({ goal }) => [
|
|
17
|
+
{
|
|
18
|
+
type: "text",
|
|
19
|
+
text: goal === null
|
|
20
|
+
? "This session has no goal."
|
|
21
|
+
: `Goal status: ${goal.status}\nObjective: ${goal.objective}`,
|
|
22
|
+
},
|
|
23
|
+
],
|
|
24
|
+
toUI: ({ goal }) => (goal === null ? "No active goal" : `Read ${goal.status} goal`),
|
|
25
|
+
locks: [],
|
|
26
|
+
});
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare const goalStatusSchema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"active">, import("@sinclair/typebox").TLiteral<"paused">, import("@sinclair/typebox").TLiteral<"blocked">, import("@sinclair/typebox").TLiteral<"complete">]>;
|
|
2
|
+
export declare const sessionGoalSchema: import("@sinclair/typebox").TObject<{
|
|
3
|
+
createdAt: import("@sinclair/typebox").TNumber;
|
|
4
|
+
objective: import("@sinclair/typebox").TString;
|
|
5
|
+
status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"active">, import("@sinclair/typebox").TLiteral<"paused">, import("@sinclair/typebox").TLiteral<"blocked">, import("@sinclair/typebox").TLiteral<"complete">]>;
|
|
6
|
+
updatedAt: import("@sinclair/typebox").TNumber;
|
|
7
|
+
}>;
|
|
8
|
+
//# sourceMappingURL=goalSchemas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"goalSchemas.d.ts","sourceRoot":"","sources":["../../../sources/tools/goals/goalSchemas.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gBAAgB,yOAK3B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;EAQ7B,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Type } from "@sinclair/typebox";
|
|
2
|
+
export const goalStatusSchema = Type.Union([
|
|
3
|
+
Type.Literal("active"),
|
|
4
|
+
Type.Literal("paused"),
|
|
5
|
+
Type.Literal("blocked"),
|
|
6
|
+
Type.Literal("complete"),
|
|
7
|
+
]);
|
|
8
|
+
export const sessionGoalSchema = Type.Object({
|
|
9
|
+
createdAt: Type.Number(),
|
|
10
|
+
objective: Type.String(),
|
|
11
|
+
status: goalStatusSchema,
|
|
12
|
+
updatedAt: Type.Number(),
|
|
13
|
+
}, { additionalProperties: false });
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export { createGoalTool } from "./create_goal.js";
|
|
2
|
+
export { getGoalTool } from "./get_goal.js";
|
|
3
|
+
export { updateGoalTool } from "./update_goal.js";
|
|
4
|
+
export declare const goalTools: readonly [import("../../agent/types.js").DefinedTool<import("@sinclair/typebox").TObject<{
|
|
5
|
+
objective: import("@sinclair/typebox").TString;
|
|
6
|
+
}>, import("@sinclair/typebox").TObject<{
|
|
7
|
+
goal: import("@sinclair/typebox").TObject<{
|
|
8
|
+
createdAt: import("@sinclair/typebox").TNumber;
|
|
9
|
+
objective: import("@sinclair/typebox").TString;
|
|
10
|
+
status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"active">, import("@sinclair/typebox").TLiteral<"paused">, import("@sinclair/typebox").TLiteral<"blocked">, import("@sinclair/typebox").TLiteral<"complete">]>;
|
|
11
|
+
updatedAt: import("@sinclair/typebox").TNumber;
|
|
12
|
+
}>;
|
|
13
|
+
}>>, import("../../agent/types.js").DefinedTool<import("@sinclair/typebox").TObject<{}>, import("@sinclair/typebox").TObject<{
|
|
14
|
+
goal: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
|
|
15
|
+
createdAt: import("@sinclair/typebox").TNumber;
|
|
16
|
+
objective: import("@sinclair/typebox").TString;
|
|
17
|
+
status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"active">, import("@sinclair/typebox").TLiteral<"paused">, import("@sinclair/typebox").TLiteral<"blocked">, import("@sinclair/typebox").TLiteral<"complete">]>;
|
|
18
|
+
updatedAt: import("@sinclair/typebox").TNumber;
|
|
19
|
+
}>, import("@sinclair/typebox").TNull]>;
|
|
20
|
+
}>>, import("../../agent/types.js").DefinedTool<import("@sinclair/typebox").TObject<{
|
|
21
|
+
status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"complete">, import("@sinclair/typebox").TLiteral<"blocked">]>;
|
|
22
|
+
}>, import("@sinclair/typebox").TObject<{
|
|
23
|
+
goal: import("@sinclair/typebox").TObject<{
|
|
24
|
+
createdAt: import("@sinclair/typebox").TNumber;
|
|
25
|
+
objective: import("@sinclair/typebox").TString;
|
|
26
|
+
status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"active">, import("@sinclair/typebox").TLiteral<"paused">, import("@sinclair/typebox").TLiteral<"blocked">, import("@sinclair/typebox").TLiteral<"complete">]>;
|
|
27
|
+
updatedAt: import("@sinclair/typebox").TNumber;
|
|
28
|
+
}>;
|
|
29
|
+
}>>];
|
|
30
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../sources/tools/goals/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAMlD,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;IAAyD,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { createGoalTool } from "./create_goal.js";
|
|
2
|
+
export { getGoalTool } from "./get_goal.js";
|
|
3
|
+
export { updateGoalTool } from "./update_goal.js";
|
|
4
|
+
import { createGoalTool } from "./create_goal.js";
|
|
5
|
+
import { getGoalTool } from "./get_goal.js";
|
|
6
|
+
import { updateGoalTool } from "./update_goal.js";
|
|
7
|
+
export const goalTools = [createGoalTool, getGoalTool, updateGoalTool];
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare const updateGoalTool: import("../../agent/types.js").DefinedTool<import("@sinclair/typebox").TObject<{
|
|
2
|
+
status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"complete">, import("@sinclair/typebox").TLiteral<"blocked">]>;
|
|
3
|
+
}>, import("@sinclair/typebox").TObject<{
|
|
4
|
+
goal: import("@sinclair/typebox").TObject<{
|
|
5
|
+
createdAt: import("@sinclair/typebox").TNumber;
|
|
6
|
+
objective: import("@sinclair/typebox").TString;
|
|
7
|
+
status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"active">, import("@sinclair/typebox").TLiteral<"paused">, import("@sinclair/typebox").TLiteral<"blocked">, import("@sinclair/typebox").TLiteral<"complete">]>;
|
|
8
|
+
updatedAt: import("@sinclair/typebox").TNumber;
|
|
9
|
+
}>;
|
|
10
|
+
}>>;
|
|
11
|
+
//# sourceMappingURL=update_goal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update_goal.d.ts","sourceRoot":"","sources":["../../../sources/tools/goals/update_goal.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,cAAc;;;;;;;;;GAiCzB,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Type } from "@sinclair/typebox";
|
|
2
|
+
import { defineTool } from "../../agent/types.js";
|
|
3
|
+
import { sessionGoalSchema } from "./goalSchemas.js";
|
|
4
|
+
export const updateGoalTool = defineTool({
|
|
5
|
+
name: "update_goal",
|
|
6
|
+
label: "update_goal",
|
|
7
|
+
description: `Mark the persistent goal complete or blocked.
|
|
8
|
+
Use complete only when the full objective is achieved and verified with no required work remaining.
|
|
9
|
+
Use blocked only when meaningful progress cannot continue without user input or an external state change.
|
|
10
|
+
Pausing, resuming, and clearing a goal are controlled by the user.`,
|
|
11
|
+
arguments: Type.Object({
|
|
12
|
+
status: Type.Union([Type.Literal("complete"), Type.Literal("blocked")], {
|
|
13
|
+
description: "The terminal status for the current goal.",
|
|
14
|
+
}),
|
|
15
|
+
}, { additionalProperties: false }),
|
|
16
|
+
returnType: Type.Object({ goal: sessionGoalSchema }),
|
|
17
|
+
execute({ status }, context) {
|
|
18
|
+
if (context.goals === undefined) {
|
|
19
|
+
throw new Error("Goal tracking is unavailable in this session.");
|
|
20
|
+
}
|
|
21
|
+
return { goal: context.goals.update(status) };
|
|
22
|
+
},
|
|
23
|
+
toLLM: ({ goal }) => [
|
|
24
|
+
{
|
|
25
|
+
type: "text",
|
|
26
|
+
text: goal.status === "complete"
|
|
27
|
+
? "Goal marked complete."
|
|
28
|
+
: "Goal marked blocked. Explain the blocker and what the user needs to provide or change.",
|
|
29
|
+
},
|
|
30
|
+
],
|
|
31
|
+
toUI: ({ goal }) => (goal.status === "complete" ? "Completed goal" : "Blocked goal"),
|
|
32
|
+
locks: ["goal"],
|
|
33
|
+
});
|
package/dist/tools/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../sources/tools/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,wCAAwC,CAAC;AACvD,cAAc,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../sources/tools/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,wCAAwC,CAAC;AACvD,cAAc,kBAAkB,CAAC"}
|
package/dist/tools/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bash.d.ts","sourceRoot":"","sources":["../../../sources/tools/pi/bash.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,UAAU;;;;;
|
|
1
|
+
{"version":3,"file":"bash.d.ts","sourceRoot":"","sources":["../../../sources/tools/pi/bash.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,UAAU;;;;;GA0BrB,CAAC"}
|
package/dist/tools/pi/bash.js
CHANGED
|
@@ -16,6 +16,8 @@ export const piBashTool = defineTool({
|
|
|
16
16
|
const options = { maxOutputBytes: 512_000 };
|
|
17
17
|
if (timeout !== undefined)
|
|
18
18
|
options.timeoutMs = timeout * 1000;
|
|
19
|
+
if (execution.onProgress !== undefined)
|
|
20
|
+
options.onProgress = execution.onProgress;
|
|
19
21
|
if (execution.signal !== undefined)
|
|
20
22
|
options.signal = execution.signal;
|
|
21
23
|
const result = await runShellCommand(command, options, context);
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { BashContext, BashSessionSnapshot } from "../../agent/index.js";
|
|
2
|
+
export declare function readSessionWithProgress(options: {
|
|
3
|
+
bash: BashContext;
|
|
4
|
+
onProgress?: (display: string) => void;
|
|
5
|
+
sessionId: number;
|
|
6
|
+
signal?: AbortSignal;
|
|
7
|
+
waitMs?: number;
|
|
8
|
+
}): Promise<BashSessionSnapshot | undefined>;
|
|
9
|
+
//# sourceMappingURL=readSessionWithProgress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"readSessionWithProgress.d.ts","sourceRoot":"","sources":["../../../sources/tools/utils/readSessionWithProgress.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAI7E,wBAAsB,uBAAuB,CAAC,OAAO,EAAE;IACnD,IAAI,EAAE,WAAW,CAAC;IAClB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,CA4B3C"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
const PROGRESS_POLL_MS = 100;
|
|
2
|
+
export async function readSessionWithProgress(options) {
|
|
3
|
+
const deadline = options.waitMs === undefined ? undefined : Date.now() + options.waitMs;
|
|
4
|
+
let stderrDelta = "";
|
|
5
|
+
let stdoutDelta = "";
|
|
6
|
+
let snapshot;
|
|
7
|
+
do {
|
|
8
|
+
const remaining = deadline === undefined ? PROGRESS_POLL_MS : Math.max(0, deadline - Date.now());
|
|
9
|
+
snapshot = await options.bash.readSession(options.sessionId, {
|
|
10
|
+
...(options.signal === undefined ? {} : { signal: options.signal }),
|
|
11
|
+
waitMs: Math.min(PROGRESS_POLL_MS, remaining),
|
|
12
|
+
});
|
|
13
|
+
if (snapshot === undefined)
|
|
14
|
+
return undefined;
|
|
15
|
+
stdoutDelta += snapshot.stdoutDelta;
|
|
16
|
+
stderrDelta += snapshot.stderrDelta;
|
|
17
|
+
const progress = [stdoutDelta, stderrDelta].filter(Boolean).join("\n");
|
|
18
|
+
if (progress.length > 0)
|
|
19
|
+
options.onProgress?.(progress.slice(-2_000));
|
|
20
|
+
if (snapshot.status !== "running" ||
|
|
21
|
+
options.signal?.aborted ||
|
|
22
|
+
(deadline !== undefined && remaining === 0)) {
|
|
23
|
+
break;
|
|
24
|
+
}
|
|
25
|
+
} while (deadline === undefined || Date.now() < deadline);
|
|
26
|
+
return snapshot === undefined ? undefined : { ...snapshot, stderrDelta, stdoutDelta };
|
|
27
|
+
}
|
|
@@ -2,6 +2,7 @@ import { type Static } from "@sinclair/typebox";
|
|
|
2
2
|
import type { AgentContext } from "../../agent/context/AgentContext.js";
|
|
3
3
|
import type { ContentBlock } from "../../agent/types.js";
|
|
4
4
|
export declare const shellToolOutputSchema: import("@sinclair/typebox").TObject<{
|
|
5
|
+
backgroundTaskId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
5
6
|
stdout: import("@sinclair/typebox").TString;
|
|
6
7
|
stderr: import("@sinclair/typebox").TString;
|
|
7
8
|
exitCode: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TNull]>;
|
|
@@ -13,6 +14,7 @@ export interface RunCommandOptions {
|
|
|
13
14
|
cwd?: string;
|
|
14
15
|
timeoutMs?: number;
|
|
15
16
|
maxOutputBytes?: number;
|
|
17
|
+
onProgress?: (display: string) => void;
|
|
16
18
|
signal?: AbortSignal;
|
|
17
19
|
}
|
|
18
20
|
export interface RunCommandResult {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../../sources/tools/utils/shell.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../../sources/tools/utils/shell.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGzD,eAAO,MAAM,qBAAqB;;;;;;EAMhC,CAAC;AAEH,MAAM,WAAW,iBAAiB;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,MAAM,CAAC,EAAE,WAAW,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;CACrB;AAED,wBAAsB,eAAe,CACjC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,SAAS,GAAG,MAAM,CAAC,YAAK,EACzD,OAAO,EAAE,YAAY,GACtB,OAAO,CAAC,gBAAgB,CAAC,CAiC3B;AAED,wBAAsB,UAAU,CAC5B,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,YAAY,GACtB,OAAO,CAAC,gBAAgB,CAAC,CAS3B;AAUD,wBAAgB,iBAAiB,CAC7B,MAAM,EAAE,MAAM,CAAC,OAAO,qBAAqB,CAAC,GAC7C,SAAS,YAAY,EAAE,CAgBzB"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { Type } from "@sinclair/typebox";
|
|
2
|
+
import { readSessionWithProgress } from "./readSessionWithProgress.js";
|
|
2
3
|
export const shellToolOutputSchema = Type.Object({
|
|
4
|
+
backgroundTaskId: Type.Optional(Type.String()),
|
|
3
5
|
stdout: Type.String(),
|
|
4
6
|
stderr: Type.String(),
|
|
5
7
|
exitCode: Type.Union([Type.Number(), Type.Null()]),
|
|
@@ -16,6 +18,33 @@ export async function runShellCommand(command, options = {}, context) {
|
|
|
16
18
|
runOptions.maxOutputBytes = options.maxOutputBytes;
|
|
17
19
|
if (options.signal !== undefined)
|
|
18
20
|
runOptions.signal = options.signal;
|
|
21
|
+
if (options.onProgress !== undefined) {
|
|
22
|
+
const { signal: _signal, ...sessionOptions } = runOptions;
|
|
23
|
+
const sessionId = await context.bash.startSession(sessionOptions);
|
|
24
|
+
const abort = () => void context.bash.killSession(sessionId);
|
|
25
|
+
options.signal?.addEventListener("abort", abort, { once: true });
|
|
26
|
+
if (options.signal?.aborted)
|
|
27
|
+
abort();
|
|
28
|
+
try {
|
|
29
|
+
const snapshot = await readSessionWithProgress({
|
|
30
|
+
bash: context.bash,
|
|
31
|
+
onProgress: options.onProgress,
|
|
32
|
+
sessionId,
|
|
33
|
+
...(options.signal === undefined ? {} : { signal: options.signal }),
|
|
34
|
+
});
|
|
35
|
+
if (snapshot === undefined)
|
|
36
|
+
throw new Error("The shell session was not found.");
|
|
37
|
+
return {
|
|
38
|
+
stdout: snapshot.stdout,
|
|
39
|
+
stderr: snapshot.stderr,
|
|
40
|
+
exitCode: snapshot.exitCode,
|
|
41
|
+
timedOut: snapshot.timedOut,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
finally {
|
|
45
|
+
options.signal?.removeEventListener("abort", abort);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
19
48
|
return context.bash.run(runOptions);
|
|
20
49
|
}
|
|
21
50
|
export async function runCommand(options, context) {
|
|
@@ -38,6 +67,14 @@ function shellQuote(value) {
|
|
|
38
67
|
return `'${value.replaceAll("'", "'\\''")}'`;
|
|
39
68
|
}
|
|
40
69
|
export function shellOutputToText(result) {
|
|
70
|
+
if (result.backgroundTaskId !== undefined) {
|
|
71
|
+
return [
|
|
72
|
+
{
|
|
73
|
+
type: "text",
|
|
74
|
+
text: `Command running in background with task ID ${result.backgroundTaskId}. Use TaskOutput to read its output or TaskStop to stop it.`,
|
|
75
|
+
},
|
|
76
|
+
];
|
|
77
|
+
}
|
|
41
78
|
const chunks = [
|
|
42
79
|
result.stdout ? `stdout:\n${result.stdout}` : "",
|
|
43
80
|
result.stderr ? `stderr:\n${result.stderr}` : "",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summarizeShellOutput.d.ts","sourceRoot":"","sources":["../../../sources/tools/utils/summarizeShellOutput.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAIxD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,qBAAqB,CAAC,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"summarizeShellOutput.d.ts","sourceRoot":"","sources":["../../../sources/tools/utils/summarizeShellOutput.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAIxD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,qBAAqB,CAAC,GAAG,MAAM,CASzF"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { singleLineText } from "./singleLineText.js";
|
|
2
2
|
import { summarizeTextOutput } from "./summarizeTextOutput.js";
|
|
3
3
|
export function summarizeShellOutput(result) {
|
|
4
|
+
if (result.backgroundTaskId !== undefined)
|
|
5
|
+
return "Command started in the background.";
|
|
4
6
|
const suffix = result.timedOut
|
|
5
7
|
? " (timed out)"
|
|
6
8
|
: result.exitCode !== null && result.exitCode !== 0
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../sources/user-input/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACR,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,GACpB,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export interface UserInputOption {
|
|
2
|
+
description: string;
|
|
3
|
+
label: string;
|
|
4
|
+
}
|
|
5
|
+
export interface UserInputQuestion {
|
|
6
|
+
header: string;
|
|
7
|
+
id: string;
|
|
8
|
+
multiSelect: boolean;
|
|
9
|
+
options: readonly UserInputOption[];
|
|
10
|
+
question: string;
|
|
11
|
+
}
|
|
12
|
+
export interface UserInputRequest {
|
|
13
|
+
questions: readonly UserInputQuestion[];
|
|
14
|
+
requestId: string;
|
|
15
|
+
}
|
|
16
|
+
export interface UserInputResponse {
|
|
17
|
+
answers: Readonly<Record<string, readonly string[]>>;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../sources/user-input/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,SAAS,eAAe,EAAE,CAAC;IACpC,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC7B,SAAS,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACxC,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAC9B,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC;CACxD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r,R as x,L as d,j as f,A as p}from"./index-BC99-iZC.js";var N=({code:i,language:e,raw:a,className:u,startLine:n,lineNumbers:g,...m})=>{let{shikiTheme:l}=r.useContext(x),s=d(),[h,t]=r.useState(a);return r.useEffect(()=>{if(!s){t(a);return}let o=s.highlight({code:i,language:e,themes:l},c=>{t(c)});o&&t(o)},[i,e,l,s,a]),f.jsx(p,{className:u,language:e,lineNumbers:g,result:h,startLine:n,...m})};export{N as HighlightedCodeBlockBody};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r,R as x,L as d,j as f,A as p}from"./index-BZN9jSiw.js";var N=({code:i,language:e,raw:a,className:u,startLine:n,lineNumbers:g,...m})=>{let{shikiTheme:l}=r.useContext(x),s=d(),[h,t]=r.useState(a);return r.useEffect(()=>{if(!s){t(a);return}let o=s.highlight({code:i,language:e,themes:l},c=>{t(c)});o&&t(o)},[i,e,l,s,a]),f.jsx(p,{className:u,language:e,lineNumbers:g,result:h,startLine:n,...m})};export{N as HighlightedCodeBlockBody};
|