@stoneforge/smithy 0.1.0
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/LICENSE +13 -0
- package/README.md +114 -0
- package/dist/api/index.d.ts +7 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +7 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/orchestrator-api.d.ts +153 -0
- package/dist/api/orchestrator-api.d.ts.map +1 -0
- package/dist/api/orchestrator-api.js +374 -0
- package/dist/api/orchestrator-api.js.map +1 -0
- package/dist/bin/sf.d.ts +3 -0
- package/dist/bin/sf.d.ts.map +1 -0
- package/dist/bin/sf.js +10 -0
- package/dist/bin/sf.js.map +1 -0
- package/dist/cli/commands/agent.d.ts +20 -0
- package/dist/cli/commands/agent.d.ts.map +1 -0
- package/dist/cli/commands/agent.js +861 -0
- package/dist/cli/commands/agent.js.map +1 -0
- package/dist/cli/commands/daemon.d.ts +14 -0
- package/dist/cli/commands/daemon.d.ts.map +1 -0
- package/dist/cli/commands/daemon.js +272 -0
- package/dist/cli/commands/daemon.js.map +1 -0
- package/dist/cli/commands/dispatch.d.ts +9 -0
- package/dist/cli/commands/dispatch.d.ts.map +1 -0
- package/dist/cli/commands/dispatch.js +128 -0
- package/dist/cli/commands/dispatch.js.map +1 -0
- package/dist/cli/commands/merge.d.ts +11 -0
- package/dist/cli/commands/merge.d.ts.map +1 -0
- package/dist/cli/commands/merge.js +246 -0
- package/dist/cli/commands/merge.js.map +1 -0
- package/dist/cli/commands/pool.d.ts +21 -0
- package/dist/cli/commands/pool.d.ts.map +1 -0
- package/dist/cli/commands/pool.js +762 -0
- package/dist/cli/commands/pool.js.map +1 -0
- package/dist/cli/commands/serve.d.ts +54 -0
- package/dist/cli/commands/serve.d.ts.map +1 -0
- package/dist/cli/commands/serve.js +57 -0
- package/dist/cli/commands/serve.js.map +1 -0
- package/dist/cli/commands/task.d.ts +36 -0
- package/dist/cli/commands/task.d.ts.map +1 -0
- package/dist/cli/commands/task.js +889 -0
- package/dist/cli/commands/task.js.map +1 -0
- package/dist/cli/commands/test-orchestration.d.ts +32 -0
- package/dist/cli/commands/test-orchestration.d.ts.map +1 -0
- package/dist/cli/commands/test-orchestration.js +392 -0
- package/dist/cli/commands/test-orchestration.js.map +1 -0
- package/dist/cli/index.d.ts +13 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +15 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/plugin.d.ts +23 -0
- package/dist/cli/plugin.d.ts.map +1 -0
- package/dist/cli/plugin.js +36 -0
- package/dist/cli/plugin.js.map +1 -0
- package/dist/git/index.d.ts +10 -0
- package/dist/git/index.d.ts.map +1 -0
- package/dist/git/index.js +12 -0
- package/dist/git/index.js.map +1 -0
- package/dist/git/merge.d.ts +79 -0
- package/dist/git/merge.d.ts.map +1 -0
- package/dist/git/merge.js +254 -0
- package/dist/git/merge.js.map +1 -0
- package/dist/git/worktree-manager.d.ts +299 -0
- package/dist/git/worktree-manager.d.ts.map +1 -0
- package/dist/git/worktree-manager.js +744 -0
- package/dist/git/worktree-manager.js.map +1 -0
- package/dist/index.d.ts +24 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +31 -0
- package/dist/index.js.map +1 -0
- package/dist/prompts/director.md +272 -0
- package/dist/prompts/index.d.ts +100 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +294 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/prompts/message-triage.md +50 -0
- package/dist/prompts/persistent-worker.md +240 -0
- package/dist/prompts/steward-base.md +64 -0
- package/dist/prompts/steward-docs.md +118 -0
- package/dist/prompts/steward-health.md +39 -0
- package/dist/prompts/steward-merge.md +168 -0
- package/dist/prompts/steward-ops.md +28 -0
- package/dist/prompts/steward-reminder.md +26 -0
- package/dist/prompts/worker.md +282 -0
- package/dist/providers/claude/headless.d.ts +18 -0
- package/dist/providers/claude/headless.d.ts.map +1 -0
- package/dist/providers/claude/headless.js +307 -0
- package/dist/providers/claude/headless.js.map +1 -0
- package/dist/providers/claude/index.d.ts +24 -0
- package/dist/providers/claude/index.d.ts.map +1 -0
- package/dist/providers/claude/index.js +80 -0
- package/dist/providers/claude/index.js.map +1 -0
- package/dist/providers/claude/interactive.d.ts +21 -0
- package/dist/providers/claude/interactive.d.ts.map +1 -0
- package/dist/providers/claude/interactive.js +142 -0
- package/dist/providers/claude/interactive.js.map +1 -0
- package/dist/providers/codex/event-mapper.d.ts +91 -0
- package/dist/providers/codex/event-mapper.d.ts.map +1 -0
- package/dist/providers/codex/event-mapper.js +299 -0
- package/dist/providers/codex/event-mapper.js.map +1 -0
- package/dist/providers/codex/headless.d.ts +20 -0
- package/dist/providers/codex/headless.d.ts.map +1 -0
- package/dist/providers/codex/headless.js +174 -0
- package/dist/providers/codex/headless.js.map +1 -0
- package/dist/providers/codex/index.d.ts +30 -0
- package/dist/providers/codex/index.d.ts.map +1 -0
- package/dist/providers/codex/index.js +55 -0
- package/dist/providers/codex/index.js.map +1 -0
- package/dist/providers/codex/interactive.d.ts +21 -0
- package/dist/providers/codex/interactive.d.ts.map +1 -0
- package/dist/providers/codex/interactive.js +141 -0
- package/dist/providers/codex/interactive.js.map +1 -0
- package/dist/providers/codex/jsonrpc-client.d.ts +52 -0
- package/dist/providers/codex/jsonrpc-client.d.ts.map +1 -0
- package/dist/providers/codex/jsonrpc-client.js +141 -0
- package/dist/providers/codex/jsonrpc-client.js.map +1 -0
- package/dist/providers/codex/server-manager.d.ts +100 -0
- package/dist/providers/codex/server-manager.d.ts.map +1 -0
- package/dist/providers/codex/server-manager.js +153 -0
- package/dist/providers/codex/server-manager.js.map +1 -0
- package/dist/providers/index.d.ts +15 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +19 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/opencode/async-queue.d.ts +21 -0
- package/dist/providers/opencode/async-queue.d.ts.map +1 -0
- package/dist/providers/opencode/async-queue.js +51 -0
- package/dist/providers/opencode/async-queue.js.map +1 -0
- package/dist/providers/opencode/event-mapper.d.ts +132 -0
- package/dist/providers/opencode/event-mapper.d.ts.map +1 -0
- package/dist/providers/opencode/event-mapper.js +204 -0
- package/dist/providers/opencode/event-mapper.js.map +1 -0
- package/dist/providers/opencode/headless.d.ts +25 -0
- package/dist/providers/opencode/headless.d.ts.map +1 -0
- package/dist/providers/opencode/headless.js +190 -0
- package/dist/providers/opencode/headless.js.map +1 -0
- package/dist/providers/opencode/index.d.ts +33 -0
- package/dist/providers/opencode/index.d.ts.map +1 -0
- package/dist/providers/opencode/index.js +42 -0
- package/dist/providers/opencode/index.js.map +1 -0
- package/dist/providers/opencode/interactive.d.ts +21 -0
- package/dist/providers/opencode/interactive.d.ts.map +1 -0
- package/dist/providers/opencode/interactive.js +135 -0
- package/dist/providers/opencode/interactive.js.map +1 -0
- package/dist/providers/opencode/server-manager.d.ts +145 -0
- package/dist/providers/opencode/server-manager.d.ts.map +1 -0
- package/dist/providers/opencode/server-manager.js +163 -0
- package/dist/providers/opencode/server-manager.js.map +1 -0
- package/dist/providers/registry.d.ts +38 -0
- package/dist/providers/registry.d.ts.map +1 -0
- package/dist/providers/registry.js +82 -0
- package/dist/providers/registry.js.map +1 -0
- package/dist/providers/types.d.ts +144 -0
- package/dist/providers/types.d.ts.map +1 -0
- package/dist/providers/types.js +25 -0
- package/dist/providers/types.js.map +1 -0
- package/dist/runtime/event-utils.d.ts +8 -0
- package/dist/runtime/event-utils.d.ts.map +1 -0
- package/dist/runtime/event-utils.js +23 -0
- package/dist/runtime/event-utils.js.map +1 -0
- package/dist/runtime/handoff.d.ts +195 -0
- package/dist/runtime/handoff.d.ts.map +1 -0
- package/dist/runtime/handoff.js +332 -0
- package/dist/runtime/handoff.js.map +1 -0
- package/dist/runtime/index.d.ts +17 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +60 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/message-mapper.d.ts +99 -0
- package/dist/runtime/message-mapper.d.ts.map +1 -0
- package/dist/runtime/message-mapper.js +202 -0
- package/dist/runtime/message-mapper.js.map +1 -0
- package/dist/runtime/predecessor-query.d.ts +212 -0
- package/dist/runtime/predecessor-query.d.ts.map +1 -0
- package/dist/runtime/predecessor-query.js +283 -0
- package/dist/runtime/predecessor-query.js.map +1 -0
- package/dist/runtime/session-manager.d.ts +466 -0
- package/dist/runtime/session-manager.d.ts.map +1 -0
- package/dist/runtime/session-manager.js +986 -0
- package/dist/runtime/session-manager.js.map +1 -0
- package/dist/runtime/spawner.d.ts +407 -0
- package/dist/runtime/spawner.d.ts.map +1 -0
- package/dist/runtime/spawner.js +781 -0
- package/dist/runtime/spawner.js.map +1 -0
- package/dist/server/config.d.ts +22 -0
- package/dist/server/config.d.ts.map +1 -0
- package/dist/server/config.js +59 -0
- package/dist/server/config.js.map +1 -0
- package/dist/server/daemon-state.d.ts +50 -0
- package/dist/server/daemon-state.d.ts.map +1 -0
- package/dist/server/daemon-state.js +100 -0
- package/dist/server/daemon-state.js.map +1 -0
- package/dist/server/events-websocket.d.ts +32 -0
- package/dist/server/events-websocket.d.ts.map +1 -0
- package/dist/server/events-websocket.js +96 -0
- package/dist/server/events-websocket.js.map +1 -0
- package/dist/server/formatters.d.ts +94 -0
- package/dist/server/formatters.d.ts.map +1 -0
- package/dist/server/formatters.js +142 -0
- package/dist/server/formatters.js.map +1 -0
- package/dist/server/index.d.ts +17 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +153 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/lsp-websocket.d.ts +33 -0
- package/dist/server/lsp-websocket.d.ts.map +1 -0
- package/dist/server/lsp-websocket.js +161 -0
- package/dist/server/lsp-websocket.js.map +1 -0
- package/dist/server/routes/agents.d.ts +9 -0
- package/dist/server/routes/agents.d.ts.map +1 -0
- package/dist/server/routes/agents.js +369 -0
- package/dist/server/routes/agents.js.map +1 -0
- package/dist/server/routes/daemon.d.ts +13 -0
- package/dist/server/routes/daemon.d.ts.map +1 -0
- package/dist/server/routes/daemon.js +187 -0
- package/dist/server/routes/daemon.js.map +1 -0
- package/dist/server/routes/events.d.ts +23 -0
- package/dist/server/routes/events.d.ts.map +1 -0
- package/dist/server/routes/events.js +282 -0
- package/dist/server/routes/events.js.map +1 -0
- package/dist/server/routes/extensions.d.ts +9 -0
- package/dist/server/routes/extensions.d.ts.map +1 -0
- package/dist/server/routes/extensions.js +202 -0
- package/dist/server/routes/extensions.js.map +1 -0
- package/dist/server/routes/health.d.ts +7 -0
- package/dist/server/routes/health.d.ts.map +1 -0
- package/dist/server/routes/health.js +33 -0
- package/dist/server/routes/health.js.map +1 -0
- package/dist/server/routes/index.d.ts +21 -0
- package/dist/server/routes/index.d.ts.map +1 -0
- package/dist/server/routes/index.js +21 -0
- package/dist/server/routes/index.js.map +1 -0
- package/dist/server/routes/lsp.d.ts +9 -0
- package/dist/server/routes/lsp.d.ts.map +1 -0
- package/dist/server/routes/lsp.js +50 -0
- package/dist/server/routes/lsp.js.map +1 -0
- package/dist/server/routes/plugins.d.ts +9 -0
- package/dist/server/routes/plugins.d.ts.map +1 -0
- package/dist/server/routes/plugins.js +109 -0
- package/dist/server/routes/plugins.js.map +1 -0
- package/dist/server/routes/pools.d.ts +9 -0
- package/dist/server/routes/pools.d.ts.map +1 -0
- package/dist/server/routes/pools.js +189 -0
- package/dist/server/routes/pools.js.map +1 -0
- package/dist/server/routes/scheduler.d.ts +9 -0
- package/dist/server/routes/scheduler.d.ts.map +1 -0
- package/dist/server/routes/scheduler.js +162 -0
- package/dist/server/routes/scheduler.js.map +1 -0
- package/dist/server/routes/sessions.d.ts +27 -0
- package/dist/server/routes/sessions.d.ts.map +1 -0
- package/dist/server/routes/sessions.js +773 -0
- package/dist/server/routes/sessions.js.map +1 -0
- package/dist/server/routes/tasks.d.ts +9 -0
- package/dist/server/routes/tasks.d.ts.map +1 -0
- package/dist/server/routes/tasks.js +954 -0
- package/dist/server/routes/tasks.js.map +1 -0
- package/dist/server/routes/upload.d.ts +8 -0
- package/dist/server/routes/upload.d.ts.map +1 -0
- package/dist/server/routes/upload.js +40 -0
- package/dist/server/routes/upload.js.map +1 -0
- package/dist/server/routes/workflows.d.ts +9 -0
- package/dist/server/routes/workflows.d.ts.map +1 -0
- package/dist/server/routes/workflows.js +532 -0
- package/dist/server/routes/workflows.js.map +1 -0
- package/dist/server/routes/workspace-files.d.ts +12 -0
- package/dist/server/routes/workspace-files.d.ts.map +1 -0
- package/dist/server/routes/workspace-files.js +520 -0
- package/dist/server/routes/workspace-files.js.map +1 -0
- package/dist/server/routes/worktrees.d.ts +9 -0
- package/dist/server/routes/worktrees.d.ts.map +1 -0
- package/dist/server/routes/worktrees.js +94 -0
- package/dist/server/routes/worktrees.js.map +1 -0
- package/dist/server/server.d.ts +14 -0
- package/dist/server/server.d.ts.map +1 -0
- package/dist/server/server.js +258 -0
- package/dist/server/server.js.map +1 -0
- package/dist/server/services/lsp-manager.d.ts +93 -0
- package/dist/server/services/lsp-manager.d.ts.map +1 -0
- package/dist/server/services/lsp-manager.js +291 -0
- package/dist/server/services/lsp-manager.js.map +1 -0
- package/dist/server/services/session-messages.d.ts +61 -0
- package/dist/server/services/session-messages.d.ts.map +1 -0
- package/dist/server/services/session-messages.js +101 -0
- package/dist/server/services/session-messages.js.map +1 -0
- package/dist/server/services.d.ts +35 -0
- package/dist/server/services.d.ts.map +1 -0
- package/dist/server/services.js +159 -0
- package/dist/server/services.js.map +1 -0
- package/dist/server/static.d.ts +18 -0
- package/dist/server/static.d.ts.map +1 -0
- package/dist/server/static.js +71 -0
- package/dist/server/static.js.map +1 -0
- package/dist/server/types.d.ts +20 -0
- package/dist/server/types.d.ts.map +1 -0
- package/dist/server/types.js +7 -0
- package/dist/server/types.js.map +1 -0
- package/dist/server/websocket.d.ts +16 -0
- package/dist/server/websocket.d.ts.map +1 -0
- package/dist/server/websocket.js +143 -0
- package/dist/server/websocket.js.map +1 -0
- package/dist/services/agent-pool-service.d.ts +181 -0
- package/dist/services/agent-pool-service.d.ts.map +1 -0
- package/dist/services/agent-pool-service.js +590 -0
- package/dist/services/agent-pool-service.js.map +1 -0
- package/dist/services/agent-registry.d.ts +185 -0
- package/dist/services/agent-registry.d.ts.map +1 -0
- package/dist/services/agent-registry.js +432 -0
- package/dist/services/agent-registry.js.map +1 -0
- package/dist/services/dispatch-daemon.d.ts +429 -0
- package/dist/services/dispatch-daemon.d.ts.map +1 -0
- package/dist/services/dispatch-daemon.js +1833 -0
- package/dist/services/dispatch-daemon.js.map +1 -0
- package/dist/services/dispatch-service.d.ts +148 -0
- package/dist/services/dispatch-service.d.ts.map +1 -0
- package/dist/services/dispatch-service.js +170 -0
- package/dist/services/dispatch-service.js.map +1 -0
- package/dist/services/docs-steward-service.d.ts +199 -0
- package/dist/services/docs-steward-service.d.ts.map +1 -0
- package/dist/services/docs-steward-service.js +599 -0
- package/dist/services/docs-steward-service.js.map +1 -0
- package/dist/services/health-steward-service.d.ts +446 -0
- package/dist/services/health-steward-service.d.ts.map +1 -0
- package/dist/services/health-steward-service.js +866 -0
- package/dist/services/health-steward-service.js.map +1 -0
- package/dist/services/index.d.ts +26 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +111 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/merge-request-provider.d.ts +59 -0
- package/dist/services/merge-request-provider.d.ts.map +1 -0
- package/dist/services/merge-request-provider.js +89 -0
- package/dist/services/merge-request-provider.js.map +1 -0
- package/dist/services/merge-steward-service.d.ts +268 -0
- package/dist/services/merge-steward-service.d.ts.map +1 -0
- package/dist/services/merge-steward-service.js +568 -0
- package/dist/services/merge-steward-service.js.map +1 -0
- package/dist/services/plugin-executor.d.ts +247 -0
- package/dist/services/plugin-executor.d.ts.map +1 -0
- package/dist/services/plugin-executor.js +451 -0
- package/dist/services/plugin-executor.js.map +1 -0
- package/dist/services/role-definition-service.d.ts +117 -0
- package/dist/services/role-definition-service.d.ts.map +1 -0
- package/dist/services/role-definition-service.js +289 -0
- package/dist/services/role-definition-service.js.map +1 -0
- package/dist/services/steward-scheduler.d.ts +336 -0
- package/dist/services/steward-scheduler.d.ts.map +1 -0
- package/dist/services/steward-scheduler.js +732 -0
- package/dist/services/steward-scheduler.js.map +1 -0
- package/dist/services/task-assignment-service.d.ts +291 -0
- package/dist/services/task-assignment-service.d.ts.map +1 -0
- package/dist/services/task-assignment-service.js +454 -0
- package/dist/services/task-assignment-service.js.map +1 -0
- package/dist/services/worker-task-service.d.ts +202 -0
- package/dist/services/worker-task-service.d.ts.map +1 -0
- package/dist/services/worker-task-service.js +228 -0
- package/dist/services/worker-task-service.js.map +1 -0
- package/dist/testing/index.d.ts +13 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +17 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/orchestration-tests.d.ts +62 -0
- package/dist/testing/orchestration-tests.d.ts.map +1 -0
- package/dist/testing/orchestration-tests.js +1115 -0
- package/dist/testing/orchestration-tests.js.map +1 -0
- package/dist/testing/test-context.d.ts +171 -0
- package/dist/testing/test-context.d.ts.map +1 -0
- package/dist/testing/test-context.js +665 -0
- package/dist/testing/test-context.js.map +1 -0
- package/dist/testing/test-prompts.d.ts +46 -0
- package/dist/testing/test-prompts.d.ts.map +1 -0
- package/dist/testing/test-prompts.js +140 -0
- package/dist/testing/test-prompts.js.map +1 -0
- package/dist/testing/test-utils.d.ts +200 -0
- package/dist/testing/test-utils.d.ts.map +1 -0
- package/dist/testing/test-utils.js +378 -0
- package/dist/testing/test-utils.js.map +1 -0
- package/dist/types/agent-pool.d.ts +215 -0
- package/dist/types/agent-pool.d.ts.map +1 -0
- package/dist/types/agent-pool.js +143 -0
- package/dist/types/agent-pool.js.map +1 -0
- package/dist/types/agent.d.ts +265 -0
- package/dist/types/agent.d.ts.map +1 -0
- package/dist/types/agent.js +127 -0
- package/dist/types/agent.js.map +1 -0
- package/dist/types/index.d.ts +11 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +40 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/message-types.d.ts +294 -0
- package/dist/types/message-types.d.ts.map +1 -0
- package/dist/types/message-types.js +354 -0
- package/dist/types/message-types.js.map +1 -0
- package/dist/types/role-definition.d.ts +272 -0
- package/dist/types/role-definition.d.ts.map +1 -0
- package/dist/types/role-definition.js +144 -0
- package/dist/types/role-definition.js.map +1 -0
- package/dist/types/task-meta.d.ts +248 -0
- package/dist/types/task-meta.d.ts.map +1 -0
- package/dist/types/task-meta.js +213 -0
- package/dist/types/task-meta.js.map +1 -0
- package/package.json +120 -0
- package/web/assets/abap-BrgZPUOV.js +6 -0
- package/web/assets/apex-DyP6w7ZV.js +6 -0
- package/web/assets/azcli-BaLxmfj-.js +6 -0
- package/web/assets/bat-CFOPXBzS.js +6 -0
- package/web/assets/bicep-BfEKNvv3.js +7 -0
- package/web/assets/cameligo-BFG1Mk7z.js +6 -0
- package/web/assets/clojure-DTECt2xU.js +6 -0
- package/web/assets/codicon-DCmgc-ay.ttf +0 -0
- package/web/assets/coffee-CDGzqUPQ.js +6 -0
- package/web/assets/cpp-CLLBncYj.js +6 -0
- package/web/assets/csharp-dUCx_-0o.js +6 -0
- package/web/assets/csp-5Rap-vPy.js +6 -0
- package/web/assets/css-D3h14YRZ.js +8 -0
- package/web/assets/cssMode-DMo-5YLA.js +9 -0
- package/web/assets/cypher-DrQuvNYM.js +6 -0
- package/web/assets/dart-CFKIUWau.js +6 -0
- package/web/assets/dockerfile-Zznr-cwX.js +6 -0
- package/web/assets/ecl-Ce3n6wWz.js +6 -0
- package/web/assets/elixir-deUWdS0T.js +6 -0
- package/web/assets/flow9-i9-g7ZhI.js +6 -0
- package/web/assets/freemarker2-D4qgkQzN.js +8 -0
- package/web/assets/fsharp-CzKuDChf.js +6 -0
- package/web/assets/go-Cphgjts3.js +6 -0
- package/web/assets/graphql-Cg7bfA9N.js +6 -0
- package/web/assets/handlebars-CXFvNjQC.js +6 -0
- package/web/assets/hcl-0cvrggvQ.js +6 -0
- package/web/assets/html-oyuB_D-B.js +6 -0
- package/web/assets/htmlMode-iWuZ24-r.js +9 -0
- package/web/assets/index-DqP-_E4F.css +32 -0
- package/web/assets/index-R1cylSgw.js +1665 -0
- package/web/assets/ini-Drc7WvVn.js +6 -0
- package/web/assets/java-B_fMsGYe.js +6 -0
- package/web/assets/javascript-CRIkN2Pg.js +6 -0
- package/web/assets/jsonMode-DVDkDgex.js +15 -0
- package/web/assets/julia-Bqgm2twL.js +6 -0
- package/web/assets/kotlin-BSkB5QuD.js +6 -0
- package/web/assets/less-BsTHnhdd.js +7 -0
- package/web/assets/lexon-YWi4-JPR.js +6 -0
- package/web/assets/liquid-CSfldbB5.js +6 -0
- package/web/assets/lua-nf6ki56Z.js +6 -0
- package/web/assets/m3-Cpb6xl2v.js +6 -0
- package/web/assets/markdown-DSZPf7rp.js +6 -0
- package/web/assets/mdx-Dd58iymR.js +6 -0
- package/web/assets/mips-B_c3zf-v.js +6 -0
- package/web/assets/monaco-editor-B4lwqA13.js +751 -0
- package/web/assets/monaco-editor-CQpyCxOA.css +1 -0
- package/web/assets/msdax-rUNN04Wq.js +6 -0
- package/web/assets/mysql-DDwshQtU.js +6 -0
- package/web/assets/objective-c-B5zXfXm9.js +6 -0
- package/web/assets/pascal-CXOwvkN_.js +6 -0
- package/web/assets/pascaligo-Bc-ZgV77.js +6 -0
- package/web/assets/perl-CwNk8-XU.js +6 -0
- package/web/assets/pgsql-tGk8EFnU.js +6 -0
- package/web/assets/php-CpIb_Oan.js +6 -0
- package/web/assets/pla-B03wrqEc.js +6 -0
- package/web/assets/postiats-BKlk5iyT.js +6 -0
- package/web/assets/powerquery-Bhzvs7bI.js +6 -0
- package/web/assets/powershell-Dd3NCNK9.js +6 -0
- package/web/assets/protobuf-COyEY5Pt.js +7 -0
- package/web/assets/pug-BaJupSGV.js +6 -0
- package/web/assets/python-XWrMqdhO.js +6 -0
- package/web/assets/qsharp-DXyYeYxl.js +6 -0
- package/web/assets/r-CdQndTaG.js +6 -0
- package/web/assets/razor-DPlhCpIs.js +6 -0
- package/web/assets/redis-CVwtpugi.js +6 -0
- package/web/assets/redshift-25W9uPmb.js +6 -0
- package/web/assets/restructuredtext-DfzH4Xui.js +6 -0
- package/web/assets/router-vendor-DHlGizSU.js +41 -0
- package/web/assets/ruby-Cp1zYvxS.js +6 -0
- package/web/assets/rust-D5C2fndG.js +6 -0
- package/web/assets/sb-CDntyWJ8.js +6 -0
- package/web/assets/scala-BoFRg7Ot.js +6 -0
- package/web/assets/scheme-Bio4gycK.js +6 -0
- package/web/assets/scss-4Ik7cdeQ.js +8 -0
- package/web/assets/shell-CX-rkNHf.js +6 -0
- package/web/assets/solidity-Tw7wswEv.js +6 -0
- package/web/assets/sophia-C5WLch3f.js +6 -0
- package/web/assets/sparql-DHaeiCBh.js +6 -0
- package/web/assets/sql-CCSDG5nI.js +6 -0
- package/web/assets/st-pnP8ivHi.js +6 -0
- package/web/assets/swift-DwJ7jVG9.js +8 -0
- package/web/assets/systemverilog-B9Xyijhd.js +6 -0
- package/web/assets/tcl-DnHyzjbg.js +6 -0
- package/web/assets/tsMode-BbA1Jbf3.js +16 -0
- package/web/assets/twig-CPajHgWi.js +6 -0
- package/web/assets/typescript-DcLHYzvH.js +6 -0
- package/web/assets/typespec-D-MeaMDU.js +6 -0
- package/web/assets/ui-vendor-BSco96uv.js +51 -0
- package/web/assets/utils-vendor-DaJ2Dubl.js +911 -0
- package/web/assets/vb-DgyLZaXg.js +6 -0
- package/web/assets/wgsl-DYQUnd45.js +303 -0
- package/web/assets/xml-xKYS3dO6.js +6 -0
- package/web/assets/yaml-CNmlXqzH.js +6 -0
- package/web/favicon.ico +0 -0
- package/web/index.html +22 -0
- package/web/logo.png +0 -0
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Message Mapper
|
|
3
|
+
*
|
|
4
|
+
* Maps SDK message types to the existing SpawnedSessionEvent format
|
|
5
|
+
* for backward compatibility with the orchestrator's event handling.
|
|
6
|
+
*
|
|
7
|
+
* SDK Message Type Mappings:
|
|
8
|
+
* | SDK Message Type | Current Event Type |
|
|
9
|
+
* |-----------------------|-------------------|
|
|
10
|
+
* | SDKAssistantMessage | assistant |
|
|
11
|
+
* | SDKUserMessage | user |
|
|
12
|
+
* | tool_use content | tool_use |
|
|
13
|
+
* | tool_result content | tool_result |
|
|
14
|
+
* | SDKSystemMessage | system |
|
|
15
|
+
* | SDKResultMessage | result |
|
|
16
|
+
*
|
|
17
|
+
* @module
|
|
18
|
+
*/
|
|
19
|
+
import type { Timestamp } from '@stoneforge/core';
|
|
20
|
+
import type { SpawnedSessionEvent } from './spawner.js';
|
|
21
|
+
/**
|
|
22
|
+
* Base SDK message interface
|
|
23
|
+
*/
|
|
24
|
+
export interface SDKMessage {
|
|
25
|
+
type: string;
|
|
26
|
+
[key: string]: unknown;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* SDK assistant message
|
|
30
|
+
*/
|
|
31
|
+
export interface SDKAssistantMessage extends SDKMessage {
|
|
32
|
+
type: 'assistant';
|
|
33
|
+
content: string | SDKContentBlock[];
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* SDK user message
|
|
37
|
+
*/
|
|
38
|
+
export interface SDKUserMessage extends SDKMessage {
|
|
39
|
+
type: 'user';
|
|
40
|
+
content: string;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* SDK system message
|
|
44
|
+
*/
|
|
45
|
+
export interface SDKSystemMessage extends SDKMessage {
|
|
46
|
+
type: 'system';
|
|
47
|
+
subtype?: string;
|
|
48
|
+
session_id?: string;
|
|
49
|
+
message?: string;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* SDK result message (completion)
|
|
53
|
+
*/
|
|
54
|
+
export interface SDKResultMessage extends SDKMessage {
|
|
55
|
+
type: 'result';
|
|
56
|
+
result?: string;
|
|
57
|
+
status?: string;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* SDK error message
|
|
61
|
+
*/
|
|
62
|
+
export interface SDKErrorMessage extends SDKMessage {
|
|
63
|
+
type: 'error';
|
|
64
|
+
error: string;
|
|
65
|
+
message?: string;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* SDK content block (for structured content like tool use)
|
|
69
|
+
*/
|
|
70
|
+
export interface SDKContentBlock {
|
|
71
|
+
type: 'text' | 'tool_use' | 'tool_result';
|
|
72
|
+
text?: string;
|
|
73
|
+
id?: string;
|
|
74
|
+
name?: string;
|
|
75
|
+
input?: unknown;
|
|
76
|
+
tool_use_id?: string;
|
|
77
|
+
content?: string;
|
|
78
|
+
is_error?: boolean;
|
|
79
|
+
}
|
|
80
|
+
export type AnySDKMessage = SDKAssistantMessage | SDKUserMessage | SDKSystemMessage | SDKResultMessage | SDKErrorMessage;
|
|
81
|
+
/**
|
|
82
|
+
* Maps an SDK message to a SpawnedSessionEvent.
|
|
83
|
+
*
|
|
84
|
+
* @param sdkMessage - The SDK message to map
|
|
85
|
+
* @returns The mapped SpawnedSessionEvent
|
|
86
|
+
*/
|
|
87
|
+
export declare function mapSDKMessageToEvent(sdkMessage: AnySDKMessage): SpawnedSessionEvent;
|
|
88
|
+
/**
|
|
89
|
+
* Maps a tool_result content block to SpawnedSessionEvent.
|
|
90
|
+
*/
|
|
91
|
+
export declare function mapToolResultToEvent(toolUseId: string, content: string, isError?: boolean, receivedAt?: Timestamp): SpawnedSessionEvent;
|
|
92
|
+
/**
|
|
93
|
+
* Maps an array of SDK messages to SpawnedSessionEvents.
|
|
94
|
+
*
|
|
95
|
+
* @param messages - Array of SDK messages
|
|
96
|
+
* @returns Array of mapped events
|
|
97
|
+
*/
|
|
98
|
+
export declare function mapSDKMessagesToEvents(messages: AnySDKMessage[]): SpawnedSessionEvent[];
|
|
99
|
+
//# sourceMappingURL=message-mapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-mapper.d.ts","sourceRoot":"","sources":["../../src/runtime/message-mapper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,mBAAmB,EAAuB,MAAM,cAAc,CAAC;AAM7E;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,UAAU;IACrD,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,eAAe,EAAE,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,UAAU;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,UAAU;IAClD,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,UAAU;IAClD,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,UAAU;IACjD,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,aAAa,CAAC;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAGD,MAAM,MAAM,aAAa,GACrB,mBAAmB,GACnB,cAAc,GACd,gBAAgB,GAChB,gBAAgB,GAChB,eAAe,CAAC;AAMpB;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,aAAa,GAAG,mBAAmB,CA2BnF;AAoJD;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,OAAe,EACxB,UAAU,GAAE,SAA6B,GACxC,mBAAmB,CAerB;AAMD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,mBAAmB,EAAE,CAEvF"}
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Message Mapper
|
|
3
|
+
*
|
|
4
|
+
* Maps SDK message types to the existing SpawnedSessionEvent format
|
|
5
|
+
* for backward compatibility with the orchestrator's event handling.
|
|
6
|
+
*
|
|
7
|
+
* SDK Message Type Mappings:
|
|
8
|
+
* | SDK Message Type | Current Event Type |
|
|
9
|
+
* |-----------------------|-------------------|
|
|
10
|
+
* | SDKAssistantMessage | assistant |
|
|
11
|
+
* | SDKUserMessage | user |
|
|
12
|
+
* | tool_use content | tool_use |
|
|
13
|
+
* | tool_result content | tool_result |
|
|
14
|
+
* | SDKSystemMessage | system |
|
|
15
|
+
* | SDKResultMessage | result |
|
|
16
|
+
*
|
|
17
|
+
* @module
|
|
18
|
+
*/
|
|
19
|
+
import { createTimestamp } from '@stoneforge/core';
|
|
20
|
+
// ============================================================================
|
|
21
|
+
// Mapper Functions
|
|
22
|
+
// ============================================================================
|
|
23
|
+
/**
|
|
24
|
+
* Maps an SDK message to a SpawnedSessionEvent.
|
|
25
|
+
*
|
|
26
|
+
* @param sdkMessage - The SDK message to map
|
|
27
|
+
* @returns The mapped SpawnedSessionEvent
|
|
28
|
+
*/
|
|
29
|
+
export function mapSDKMessageToEvent(sdkMessage) {
|
|
30
|
+
const receivedAt = createTimestamp();
|
|
31
|
+
switch (sdkMessage.type) {
|
|
32
|
+
case 'assistant':
|
|
33
|
+
return mapAssistantMessage(sdkMessage, receivedAt);
|
|
34
|
+
case 'user':
|
|
35
|
+
return mapUserMessage(sdkMessage, receivedAt);
|
|
36
|
+
case 'system':
|
|
37
|
+
return mapSystemMessage(sdkMessage, receivedAt);
|
|
38
|
+
case 'result':
|
|
39
|
+
return mapResultMessage(sdkMessage, receivedAt);
|
|
40
|
+
case 'error':
|
|
41
|
+
return mapErrorMessage(sdkMessage, receivedAt);
|
|
42
|
+
default:
|
|
43
|
+
// Unknown message type - pass through as raw
|
|
44
|
+
return {
|
|
45
|
+
type: (sdkMessage.type || 'system'),
|
|
46
|
+
receivedAt,
|
|
47
|
+
raw: sdkMessage,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Maps an SDK assistant message to SpawnedSessionEvent.
|
|
53
|
+
* Assistant messages may contain text or tool_use blocks.
|
|
54
|
+
*/
|
|
55
|
+
function mapAssistantMessage(message, receivedAt) {
|
|
56
|
+
// If content is a string, it's simple text
|
|
57
|
+
if (typeof message.content === 'string') {
|
|
58
|
+
return {
|
|
59
|
+
type: 'assistant',
|
|
60
|
+
receivedAt,
|
|
61
|
+
raw: {
|
|
62
|
+
type: 'assistant',
|
|
63
|
+
message: message.content,
|
|
64
|
+
},
|
|
65
|
+
message: message.content,
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
// Content is an array of content blocks
|
|
69
|
+
const blocks = message.content;
|
|
70
|
+
// Find text content
|
|
71
|
+
const textBlocks = blocks.filter((b) => b.type === 'text');
|
|
72
|
+
const textContent = textBlocks.map((b) => b.text || '').join('\n');
|
|
73
|
+
// Find tool_use blocks
|
|
74
|
+
const toolUseBlocks = blocks.filter((b) => b.type === 'tool_use');
|
|
75
|
+
if (toolUseBlocks.length > 0) {
|
|
76
|
+
// Return tool_use event for the first tool use block
|
|
77
|
+
// (In practice, Claude typically uses one tool at a time)
|
|
78
|
+
const toolBlock = toolUseBlocks[0];
|
|
79
|
+
return {
|
|
80
|
+
type: 'tool_use',
|
|
81
|
+
receivedAt,
|
|
82
|
+
raw: {
|
|
83
|
+
type: 'tool_use',
|
|
84
|
+
tool: toolBlock.name,
|
|
85
|
+
tool_use_id: toolBlock.id,
|
|
86
|
+
tool_input: toolBlock.input,
|
|
87
|
+
message: textContent || undefined,
|
|
88
|
+
},
|
|
89
|
+
message: textContent || undefined,
|
|
90
|
+
tool: {
|
|
91
|
+
name: toolBlock.name,
|
|
92
|
+
id: toolBlock.id,
|
|
93
|
+
input: toolBlock.input,
|
|
94
|
+
},
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
// No tool use, return as assistant message
|
|
98
|
+
return {
|
|
99
|
+
type: 'assistant',
|
|
100
|
+
receivedAt,
|
|
101
|
+
raw: {
|
|
102
|
+
type: 'assistant',
|
|
103
|
+
message: textContent,
|
|
104
|
+
},
|
|
105
|
+
message: textContent,
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Maps an SDK user message to SpawnedSessionEvent.
|
|
110
|
+
*/
|
|
111
|
+
function mapUserMessage(message, receivedAt) {
|
|
112
|
+
return {
|
|
113
|
+
type: 'user',
|
|
114
|
+
receivedAt,
|
|
115
|
+
raw: {
|
|
116
|
+
type: 'user',
|
|
117
|
+
message: message.content,
|
|
118
|
+
},
|
|
119
|
+
message: message.content,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Maps an SDK system message to SpawnedSessionEvent.
|
|
124
|
+
*/
|
|
125
|
+
function mapSystemMessage(message, receivedAt) {
|
|
126
|
+
return {
|
|
127
|
+
type: 'system',
|
|
128
|
+
subtype: message.subtype,
|
|
129
|
+
receivedAt,
|
|
130
|
+
raw: {
|
|
131
|
+
type: 'system',
|
|
132
|
+
subtype: message.subtype,
|
|
133
|
+
session_id: message.session_id,
|
|
134
|
+
message: message.message,
|
|
135
|
+
},
|
|
136
|
+
message: message.message,
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Maps an SDK result message to SpawnedSessionEvent.
|
|
141
|
+
*/
|
|
142
|
+
function mapResultMessage(message, receivedAt) {
|
|
143
|
+
return {
|
|
144
|
+
type: 'result',
|
|
145
|
+
receivedAt,
|
|
146
|
+
raw: {
|
|
147
|
+
type: 'result',
|
|
148
|
+
result: message.result,
|
|
149
|
+
},
|
|
150
|
+
message: message.result,
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Maps an SDK error message to SpawnedSessionEvent.
|
|
155
|
+
*/
|
|
156
|
+
function mapErrorMessage(message, receivedAt) {
|
|
157
|
+
return {
|
|
158
|
+
type: 'error',
|
|
159
|
+
receivedAt,
|
|
160
|
+
raw: {
|
|
161
|
+
type: 'error',
|
|
162
|
+
error: message.error,
|
|
163
|
+
message: message.message,
|
|
164
|
+
},
|
|
165
|
+
message: message.message || message.error,
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
// ============================================================================
|
|
169
|
+
// Content Block Mappers
|
|
170
|
+
// ============================================================================
|
|
171
|
+
/**
|
|
172
|
+
* Maps a tool_result content block to SpawnedSessionEvent.
|
|
173
|
+
*/
|
|
174
|
+
export function mapToolResultToEvent(toolUseId, content, isError = false, receivedAt = createTimestamp()) {
|
|
175
|
+
return {
|
|
176
|
+
type: 'tool_result',
|
|
177
|
+
receivedAt,
|
|
178
|
+
raw: {
|
|
179
|
+
type: 'tool_result',
|
|
180
|
+
tool_use_id: toolUseId,
|
|
181
|
+
content,
|
|
182
|
+
is_error: isError,
|
|
183
|
+
},
|
|
184
|
+
message: content,
|
|
185
|
+
tool: {
|
|
186
|
+
id: toolUseId,
|
|
187
|
+
},
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
// ============================================================================
|
|
191
|
+
// Batch Processing
|
|
192
|
+
// ============================================================================
|
|
193
|
+
/**
|
|
194
|
+
* Maps an array of SDK messages to SpawnedSessionEvents.
|
|
195
|
+
*
|
|
196
|
+
* @param messages - Array of SDK messages
|
|
197
|
+
* @returns Array of mapped events
|
|
198
|
+
*/
|
|
199
|
+
export function mapSDKMessagesToEvents(messages) {
|
|
200
|
+
return messages.map(mapSDKMessageToEvent);
|
|
201
|
+
}
|
|
202
|
+
//# sourceMappingURL=message-mapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-mapper.js","sourceRoot":"","sources":["../../src/runtime/message-mapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Predecessor Query Service
|
|
3
|
+
*
|
|
4
|
+
* This service enables agents to consult previous sessions for context and guidance.
|
|
5
|
+
* It implements the predecessor query pattern from the orchestration spec:
|
|
6
|
+
*
|
|
7
|
+
* 1. Find most recent session for a given role
|
|
8
|
+
* 2. Resume that previous session using Claude Code's --resume flag
|
|
9
|
+
* 3. Send a message to the predecessor
|
|
10
|
+
* 4. Capture the response
|
|
11
|
+
* 5. Suspend the predecessor session again
|
|
12
|
+
* 6. Return the response to the current agent
|
|
13
|
+
*
|
|
14
|
+
* This allows collaborative problem-solving between agents by enabling new sessions
|
|
15
|
+
* to query previous session holders for historical context.
|
|
16
|
+
*
|
|
17
|
+
* @module
|
|
18
|
+
*/
|
|
19
|
+
import { EventEmitter } from 'node:events';
|
|
20
|
+
import type { EntityId, Timestamp } from '@stoneforge/core';
|
|
21
|
+
import type { AgentRole } from '../types/agent.js';
|
|
22
|
+
import type { SessionManager } from './session-manager.js';
|
|
23
|
+
/**
|
|
24
|
+
* Options for querying a predecessor
|
|
25
|
+
*/
|
|
26
|
+
export interface PredecessorQueryOptions {
|
|
27
|
+
/** Maximum time to wait for a response in milliseconds (default: 60000) */
|
|
28
|
+
readonly timeout?: number;
|
|
29
|
+
/** Whether to suspend the predecessor after getting a response (default: true) */
|
|
30
|
+
readonly suspendAfterResponse?: boolean;
|
|
31
|
+
/** Additional context to provide to the predecessor */
|
|
32
|
+
readonly context?: string;
|
|
33
|
+
/** Working directory for the resumed session */
|
|
34
|
+
readonly workingDirectory?: string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Result of a predecessor query
|
|
38
|
+
*/
|
|
39
|
+
export interface PredecessorQueryResult {
|
|
40
|
+
/** Whether the query was successful */
|
|
41
|
+
readonly success: boolean;
|
|
42
|
+
/** The response message from the predecessor */
|
|
43
|
+
readonly response?: string;
|
|
44
|
+
/** The predecessor session information */
|
|
45
|
+
readonly predecessor?: PredecessorInfo;
|
|
46
|
+
/** Error message if the query failed */
|
|
47
|
+
readonly error?: string;
|
|
48
|
+
/** Timestamp when the query completed */
|
|
49
|
+
readonly completedAt: Timestamp;
|
|
50
|
+
/** Duration of the query in milliseconds */
|
|
51
|
+
readonly durationMs: number;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Information about the predecessor session
|
|
55
|
+
*/
|
|
56
|
+
export interface PredecessorInfo {
|
|
57
|
+
/** The agent ID of the predecessor */
|
|
58
|
+
readonly agentId: EntityId;
|
|
59
|
+
/** The agent name */
|
|
60
|
+
readonly agentName?: string;
|
|
61
|
+
/** The role of the predecessor */
|
|
62
|
+
readonly role: AgentRole;
|
|
63
|
+
/** The provider session ID used for resume */
|
|
64
|
+
readonly providerSessionId: string;
|
|
65
|
+
/** The internal session ID */
|
|
66
|
+
readonly sessionId: string;
|
|
67
|
+
/** The working directory of the predecessor session */
|
|
68
|
+
readonly workingDirectory: string;
|
|
69
|
+
/** When the predecessor session was originally started */
|
|
70
|
+
readonly originalStartedAt?: Timestamp;
|
|
71
|
+
/** When the predecessor session was suspended */
|
|
72
|
+
readonly suspendedAt?: Timestamp;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Status of a predecessor query
|
|
76
|
+
*/
|
|
77
|
+
export type PredecessorQueryStatus = 'pending' | 'resuming' | 'waiting_response' | 'completed' | 'failed' | 'timed_out';
|
|
78
|
+
/**
|
|
79
|
+
* Active predecessor query tracking
|
|
80
|
+
*/
|
|
81
|
+
export interface ActivePredecessorQuery {
|
|
82
|
+
/** Unique query ID */
|
|
83
|
+
readonly id: string;
|
|
84
|
+
/** The requesting agent ID */
|
|
85
|
+
readonly requestingAgentId: EntityId;
|
|
86
|
+
/** The role being queried */
|
|
87
|
+
readonly targetRole: AgentRole;
|
|
88
|
+
/** The message sent to the predecessor */
|
|
89
|
+
readonly message: string;
|
|
90
|
+
/** Current status of the query */
|
|
91
|
+
status: PredecessorQueryStatus;
|
|
92
|
+
/** The predecessor session ID (once resumed) */
|
|
93
|
+
predecessorSessionId?: string;
|
|
94
|
+
/** Query started timestamp */
|
|
95
|
+
readonly startedAt: Timestamp;
|
|
96
|
+
/** Query completed timestamp */
|
|
97
|
+
completedAt?: Timestamp;
|
|
98
|
+
/** Accumulated response text */
|
|
99
|
+
responseAccumulator: string;
|
|
100
|
+
/** Event emitter for query events */
|
|
101
|
+
readonly events: EventEmitter;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Predecessor Query Service interface.
|
|
105
|
+
*
|
|
106
|
+
* This service enables agents to consult previous sessions of a given role
|
|
107
|
+
* for context, guidance, or to understand historical decisions.
|
|
108
|
+
*/
|
|
109
|
+
export interface PredecessorQueryService {
|
|
110
|
+
/**
|
|
111
|
+
* Queries a predecessor session of a given role.
|
|
112
|
+
*
|
|
113
|
+
* This method:
|
|
114
|
+
* 1. Finds the most recent suspended/terminated session for the role
|
|
115
|
+
* 2. Resumes that session using Claude Code's --resume flag
|
|
116
|
+
* 3. Sends the provided message to the predecessor
|
|
117
|
+
* 4. Waits for and captures the response
|
|
118
|
+
* 5. Suspends the predecessor session again
|
|
119
|
+
* 6. Returns the response
|
|
120
|
+
*
|
|
121
|
+
* @param requestingAgentId - The agent making the query
|
|
122
|
+
* @param role - The role to query (e.g., 'director', 'worker')
|
|
123
|
+
* @param message - The message/question to send to the predecessor
|
|
124
|
+
* @param options - Query options
|
|
125
|
+
* @returns The query result with the predecessor's response
|
|
126
|
+
*/
|
|
127
|
+
consultPredecessor(requestingAgentId: EntityId, role: AgentRole, message: string, options?: PredecessorQueryOptions): Promise<PredecessorQueryResult>;
|
|
128
|
+
/**
|
|
129
|
+
* Gets information about the most recent predecessor for a role.
|
|
130
|
+
*
|
|
131
|
+
* This is useful for checking if a predecessor exists before querying,
|
|
132
|
+
* or for getting context about who held the role previously.
|
|
133
|
+
*
|
|
134
|
+
* @param role - The role to find the predecessor for
|
|
135
|
+
* @returns The predecessor info or undefined if none exists
|
|
136
|
+
*/
|
|
137
|
+
getPredecessorInfo(role: AgentRole): Promise<PredecessorInfo | undefined>;
|
|
138
|
+
/**
|
|
139
|
+
* Checks if a predecessor exists and can be queried for a given role.
|
|
140
|
+
*
|
|
141
|
+
* A predecessor is queryable if:
|
|
142
|
+
* - A previous session exists for the role
|
|
143
|
+
* - The session was suspended (not terminated) OR has a Claude session ID
|
|
144
|
+
*
|
|
145
|
+
* @param role - The role to check
|
|
146
|
+
* @returns True if a queryable predecessor exists
|
|
147
|
+
*/
|
|
148
|
+
hasPredecessor(role: AgentRole): Promise<boolean>;
|
|
149
|
+
/**
|
|
150
|
+
* Gets the status of an active predecessor query.
|
|
151
|
+
*
|
|
152
|
+
* @param queryId - The query ID
|
|
153
|
+
* @returns The active query or undefined if not found
|
|
154
|
+
*/
|
|
155
|
+
getActiveQuery(queryId: string): ActivePredecessorQuery | undefined;
|
|
156
|
+
/**
|
|
157
|
+
* Lists all active predecessor queries.
|
|
158
|
+
*
|
|
159
|
+
* @returns Array of active queries
|
|
160
|
+
*/
|
|
161
|
+
listActiveQueries(): ActivePredecessorQuery[];
|
|
162
|
+
/**
|
|
163
|
+
* Cancels an active predecessor query.
|
|
164
|
+
*
|
|
165
|
+
* This will attempt to gracefully stop the resumed predecessor session
|
|
166
|
+
* and clean up resources.
|
|
167
|
+
*
|
|
168
|
+
* @param queryId - The query ID to cancel
|
|
169
|
+
*/
|
|
170
|
+
cancelQuery(queryId: string): Promise<void>;
|
|
171
|
+
}
|
|
172
|
+
/** Default timeout for predecessor queries (60 seconds) */
|
|
173
|
+
export declare const DEFAULT_QUERY_TIMEOUT_MS = 60000;
|
|
174
|
+
/** Minimum timeout for predecessor queries (10 seconds) */
|
|
175
|
+
export declare const MIN_QUERY_TIMEOUT_MS = 10000;
|
|
176
|
+
/** Maximum timeout for predecessor queries (5 minutes) */
|
|
177
|
+
export declare const MAX_QUERY_TIMEOUT_MS = 300000;
|
|
178
|
+
/**
|
|
179
|
+
* Implementation of the Predecessor Query Service.
|
|
180
|
+
*/
|
|
181
|
+
export declare class PredecessorQueryServiceImpl implements PredecessorQueryService {
|
|
182
|
+
private readonly sessionManager;
|
|
183
|
+
private readonly activeQueries;
|
|
184
|
+
private queryCounter;
|
|
185
|
+
constructor(sessionManager: SessionManager);
|
|
186
|
+
consultPredecessor(requestingAgentId: EntityId, role: AgentRole, message: string, options?: PredecessorQueryOptions): Promise<PredecessorQueryResult>;
|
|
187
|
+
getPredecessorInfo(role: AgentRole): Promise<PredecessorInfo | undefined>;
|
|
188
|
+
hasPredecessor(role: AgentRole): Promise<boolean>;
|
|
189
|
+
getActiveQuery(queryId: string): ActivePredecessorQuery | undefined;
|
|
190
|
+
listActiveQueries(): ActivePredecessorQuery[];
|
|
191
|
+
cancelQuery(queryId: string): Promise<void>;
|
|
192
|
+
private generateQueryId;
|
|
193
|
+
private normalizeTimeout;
|
|
194
|
+
private captureResponse;
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Error thrown when a predecessor query times out
|
|
198
|
+
*/
|
|
199
|
+
export declare class TimeoutError extends Error {
|
|
200
|
+
constructor(message: string);
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Error thrown when no predecessor is found for a role
|
|
204
|
+
*/
|
|
205
|
+
export declare class NoPredecessorError extends Error {
|
|
206
|
+
constructor(role: AgentRole);
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Creates a PredecessorQueryService instance
|
|
210
|
+
*/
|
|
211
|
+
export declare function createPredecessorQueryService(sessionManager: SessionManager): PredecessorQueryService;
|
|
212
|
+
//# sourceMappingURL=predecessor-query.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"predecessor-query.d.ts","sourceRoot":"","sources":["../../src/runtime/predecessor-query.ts"],"names":[],"mappings":"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"}
|