@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,378 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Test Utilities for Orchestration E2E Tests
|
|
3
|
+
*
|
|
4
|
+
* Provides helper functions for waiting, polling, and assertions
|
|
5
|
+
* used across the orchestration test suite.
|
|
6
|
+
*
|
|
7
|
+
* @module
|
|
8
|
+
*/
|
|
9
|
+
// ============================================================================
|
|
10
|
+
// Polling Utilities
|
|
11
|
+
// ============================================================================
|
|
12
|
+
/**
|
|
13
|
+
* Waits for a condition to become true, polling at regular intervals.
|
|
14
|
+
*
|
|
15
|
+
* @param condition - Async function that returns truthy when condition is met
|
|
16
|
+
* @param options - Wait options
|
|
17
|
+
* @returns The truthy value returned by the condition
|
|
18
|
+
* @throws Error if timeout is reached before condition is met
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```typescript
|
|
22
|
+
* const task = await waitFor(async () => {
|
|
23
|
+
* const tasks = await api.listTasks({ status: 'open' });
|
|
24
|
+
* return tasks.find(t => t.title.includes('health'));
|
|
25
|
+
* }, { timeout: 90000, interval: 2000 });
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export async function waitFor(condition, options = {}) {
|
|
29
|
+
const timeout = options.timeout ?? 30000;
|
|
30
|
+
const interval = options.interval ?? 1000;
|
|
31
|
+
const description = options.description ?? 'condition';
|
|
32
|
+
const startTime = Date.now();
|
|
33
|
+
while (Date.now() - startTime < timeout) {
|
|
34
|
+
const result = await condition();
|
|
35
|
+
if (result) {
|
|
36
|
+
return result;
|
|
37
|
+
}
|
|
38
|
+
await sleep(interval);
|
|
39
|
+
}
|
|
40
|
+
throw new Error(`Timeout waiting for ${description} after ${timeout}ms`);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Waits for a value to change from its initial state.
|
|
44
|
+
*
|
|
45
|
+
* @param getValue - Function that returns the current value
|
|
46
|
+
* @param initialValue - The initial value to compare against
|
|
47
|
+
* @param options - Wait options
|
|
48
|
+
* @returns The new value after it changes
|
|
49
|
+
*/
|
|
50
|
+
export async function waitForChange(getValue, initialValue, options = {}) {
|
|
51
|
+
return waitFor(async () => {
|
|
52
|
+
const current = await getValue();
|
|
53
|
+
return current !== initialValue ? current : null;
|
|
54
|
+
}, options);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Waits for multiple conditions to all become true.
|
|
58
|
+
*
|
|
59
|
+
* @param conditions - Array of condition functions
|
|
60
|
+
* @param options - Wait options
|
|
61
|
+
* @returns Array of results from all conditions
|
|
62
|
+
*/
|
|
63
|
+
export async function waitForAll(conditions, options = {}) {
|
|
64
|
+
const timeout = options.timeout ?? 30000;
|
|
65
|
+
const interval = options.interval ?? 1000;
|
|
66
|
+
const startTime = Date.now();
|
|
67
|
+
const results = new Array(conditions.length).fill(null);
|
|
68
|
+
const resolved = new Set();
|
|
69
|
+
while (Date.now() - startTime < timeout) {
|
|
70
|
+
for (let i = 0; i < conditions.length; i++) {
|
|
71
|
+
if (resolved.has(i))
|
|
72
|
+
continue;
|
|
73
|
+
const result = await conditions[i]();
|
|
74
|
+
if (result) {
|
|
75
|
+
results[i] = result;
|
|
76
|
+
resolved.add(i);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
if (resolved.size === conditions.length) {
|
|
80
|
+
return results;
|
|
81
|
+
}
|
|
82
|
+
await sleep(interval);
|
|
83
|
+
}
|
|
84
|
+
const missing = conditions.length - resolved.size;
|
|
85
|
+
throw new Error(`Timeout: ${missing} of ${conditions.length} conditions not met after ${timeout}ms`);
|
|
86
|
+
}
|
|
87
|
+
// ============================================================================
|
|
88
|
+
// Timing Utilities
|
|
89
|
+
// ============================================================================
|
|
90
|
+
/**
|
|
91
|
+
* Sleeps for a specified number of milliseconds.
|
|
92
|
+
*/
|
|
93
|
+
export function sleep(ms) {
|
|
94
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Measures the execution time of an async function.
|
|
98
|
+
*
|
|
99
|
+
* @param fn - Function to measure
|
|
100
|
+
* @returns Object with result and duration in milliseconds
|
|
101
|
+
*/
|
|
102
|
+
export async function measure(fn) {
|
|
103
|
+
const start = Date.now();
|
|
104
|
+
const result = await fn();
|
|
105
|
+
return { result, durationMs: Date.now() - start };
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Creates a timeout promise that rejects after specified milliseconds.
|
|
109
|
+
*/
|
|
110
|
+
export function timeout(ms, message) {
|
|
111
|
+
return new Promise((_, reject) => setTimeout(() => reject(new Error(message ?? `Timeout after ${ms}ms`)), ms));
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Races a promise against a timeout.
|
|
115
|
+
*
|
|
116
|
+
* @param promise - The promise to race
|
|
117
|
+
* @param ms - Timeout in milliseconds
|
|
118
|
+
* @param message - Optional timeout error message
|
|
119
|
+
*/
|
|
120
|
+
export function withTimeout(promise, ms, message) {
|
|
121
|
+
return Promise.race([promise, timeout(ms, message)]);
|
|
122
|
+
}
|
|
123
|
+
// ============================================================================
|
|
124
|
+
// Assertion Utilities
|
|
125
|
+
// ============================================================================
|
|
126
|
+
/**
|
|
127
|
+
* Creates an assertion result
|
|
128
|
+
*/
|
|
129
|
+
function createAssertionResult(passed, message, actual, expected) {
|
|
130
|
+
return { passed, message, actual, expected };
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Asserts that a value is defined (not null or undefined).
|
|
134
|
+
*/
|
|
135
|
+
export function assertDefined(value, name) {
|
|
136
|
+
if (value === null || value === undefined) {
|
|
137
|
+
return createAssertionResult(false, `Expected ${name} to be defined, got ${value}`, value, 'defined');
|
|
138
|
+
}
|
|
139
|
+
return createAssertionResult(true, `${name} is defined`);
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Asserts that two values are equal.
|
|
143
|
+
*/
|
|
144
|
+
export function assertEqual(actual, expected, name) {
|
|
145
|
+
if (actual !== expected) {
|
|
146
|
+
return createAssertionResult(false, `Expected ${name} to be ${JSON.stringify(expected)}, got ${JSON.stringify(actual)}`, actual, expected);
|
|
147
|
+
}
|
|
148
|
+
return createAssertionResult(true, `${name} equals ${JSON.stringify(expected)}`);
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Asserts that a string contains a substring.
|
|
152
|
+
*/
|
|
153
|
+
export function assertContains(str, substring, name) {
|
|
154
|
+
if (!str.includes(substring)) {
|
|
155
|
+
return createAssertionResult(false, `Expected ${name} to contain "${substring}"`, str, `contains "${substring}"`);
|
|
156
|
+
}
|
|
157
|
+
return createAssertionResult(true, `${name} contains "${substring}"`);
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Asserts that a value matches a regular expression.
|
|
161
|
+
*/
|
|
162
|
+
export function assertMatches(str, pattern, name) {
|
|
163
|
+
if (!pattern.test(str)) {
|
|
164
|
+
return createAssertionResult(false, `Expected ${name} to match ${pattern}`, str, pattern.toString());
|
|
165
|
+
}
|
|
166
|
+
return createAssertionResult(true, `${name} matches ${pattern}`);
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Asserts that an array has a specific length.
|
|
170
|
+
*/
|
|
171
|
+
export function assertLength(arr, length, name) {
|
|
172
|
+
if (arr.length !== length) {
|
|
173
|
+
return createAssertionResult(false, `Expected ${name} to have length ${length}, got ${arr.length}`, arr.length, length);
|
|
174
|
+
}
|
|
175
|
+
return createAssertionResult(true, `${name} has length ${length}`);
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Asserts that an array contains at least one item.
|
|
179
|
+
*/
|
|
180
|
+
export function assertNotEmpty(arr, name) {
|
|
181
|
+
if (arr.length === 0) {
|
|
182
|
+
return createAssertionResult(false, `Expected ${name} to not be empty`, arr.length, '>0');
|
|
183
|
+
}
|
|
184
|
+
return createAssertionResult(true, `${name} is not empty (${arr.length} items)`);
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Asserts that a condition is true.
|
|
188
|
+
*/
|
|
189
|
+
export function assertTrue(condition, message) {
|
|
190
|
+
if (!condition) {
|
|
191
|
+
return createAssertionResult(false, message, false, true);
|
|
192
|
+
}
|
|
193
|
+
return createAssertionResult(true, message);
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Creates a passing test result
|
|
197
|
+
*/
|
|
198
|
+
export function pass(message, details) {
|
|
199
|
+
return {
|
|
200
|
+
passed: true,
|
|
201
|
+
message,
|
|
202
|
+
duration: 0, // Will be set by runner
|
|
203
|
+
details,
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Creates a failing test result
|
|
208
|
+
*/
|
|
209
|
+
export function fail(message, details) {
|
|
210
|
+
return {
|
|
211
|
+
passed: false,
|
|
212
|
+
message,
|
|
213
|
+
duration: 0, // Will be set by runner
|
|
214
|
+
details,
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
// ============================================================================
|
|
218
|
+
// String Utilities
|
|
219
|
+
// ============================================================================
|
|
220
|
+
/**
|
|
221
|
+
* Generates a random string for unique identifiers.
|
|
222
|
+
*/
|
|
223
|
+
export function randomString(length = 8) {
|
|
224
|
+
const chars = 'abcdefghijklmnopqrstuvwxyz0123456789';
|
|
225
|
+
let result = '';
|
|
226
|
+
for (let i = 0; i < length; i++) {
|
|
227
|
+
result += chars.charAt(Math.floor(Math.random() * chars.length));
|
|
228
|
+
}
|
|
229
|
+
return result;
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Generates a unique test identifier.
|
|
233
|
+
*/
|
|
234
|
+
export function uniqueId(prefix = 'test') {
|
|
235
|
+
return `${prefix}-${Date.now()}-${randomString(4)}`;
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Retries an operation on failure.
|
|
239
|
+
*
|
|
240
|
+
* @param fn - Function to retry
|
|
241
|
+
* @param options - Retry options
|
|
242
|
+
* @returns Result of the function
|
|
243
|
+
*/
|
|
244
|
+
export async function retry(fn, options = {}) {
|
|
245
|
+
const maxAttempts = options.maxAttempts ?? 3;
|
|
246
|
+
const delay = options.delay ?? 1000;
|
|
247
|
+
const exponentialBackoff = options.exponentialBackoff ?? false;
|
|
248
|
+
const isRetryable = options.isRetryable ?? (() => true);
|
|
249
|
+
let lastError;
|
|
250
|
+
for (let attempt = 1; attempt <= maxAttempts; attempt++) {
|
|
251
|
+
try {
|
|
252
|
+
return await fn();
|
|
253
|
+
}
|
|
254
|
+
catch (error) {
|
|
255
|
+
lastError = error instanceof Error ? error : new Error(String(error));
|
|
256
|
+
if (attempt === maxAttempts || !isRetryable(lastError)) {
|
|
257
|
+
throw lastError;
|
|
258
|
+
}
|
|
259
|
+
const waitTime = exponentialBackoff
|
|
260
|
+
? delay * Math.pow(2, attempt - 1)
|
|
261
|
+
: delay;
|
|
262
|
+
await sleep(waitTime);
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
throw lastError ?? new Error('Retry failed');
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Waits for a task to reach a specific status.
|
|
269
|
+
*/
|
|
270
|
+
export async function waitForTaskStatus(api, taskId, targetStatus, opts = {}) {
|
|
271
|
+
return waitFor(async () => {
|
|
272
|
+
const task = await api.get(taskId);
|
|
273
|
+
if (!task)
|
|
274
|
+
return null;
|
|
275
|
+
return task.status === targetStatus ? task : null;
|
|
276
|
+
}, {
|
|
277
|
+
timeout: opts.timeout ?? 60000,
|
|
278
|
+
interval: opts.interval ?? 2000,
|
|
279
|
+
description: `task ${taskId} to reach status '${targetStatus}'`,
|
|
280
|
+
});
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* Waits for a task to be assigned to any agent.
|
|
284
|
+
*/
|
|
285
|
+
export async function waitForTaskAssignment(api, taskId, opts = {}) {
|
|
286
|
+
return waitFor(async () => {
|
|
287
|
+
const task = await api.get(taskId);
|
|
288
|
+
if (!task)
|
|
289
|
+
return null;
|
|
290
|
+
return task.assignee ? task : null;
|
|
291
|
+
}, {
|
|
292
|
+
timeout: opts.timeout ?? 60000,
|
|
293
|
+
interval: opts.interval ?? 2000,
|
|
294
|
+
description: `task ${taskId} to be assigned`,
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* Waits for a session to start for a given agent.
|
|
299
|
+
*/
|
|
300
|
+
export async function waitForSessionStart(sessionManager, agentId, opts = {}) {
|
|
301
|
+
return waitFor(async () => {
|
|
302
|
+
const session = sessionManager.getActiveSession(agentId);
|
|
303
|
+
return session ?? null;
|
|
304
|
+
}, {
|
|
305
|
+
timeout: opts.timeout ?? 60000,
|
|
306
|
+
interval: opts.interval ?? 2000,
|
|
307
|
+
description: `session start for agent ${agentId}`,
|
|
308
|
+
});
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* Waits for a session to end (terminate or suspend).
|
|
312
|
+
*/
|
|
313
|
+
export async function waitForSessionEnd(sessionManager, sessionId, opts = {}) {
|
|
314
|
+
return waitFor(async () => {
|
|
315
|
+
const session = sessionManager.getSession(sessionId);
|
|
316
|
+
if (!session)
|
|
317
|
+
return null;
|
|
318
|
+
return session.status === 'terminated' || session.status === 'suspended'
|
|
319
|
+
? session
|
|
320
|
+
: null;
|
|
321
|
+
}, {
|
|
322
|
+
timeout: opts.timeout ?? 120000,
|
|
323
|
+
interval: opts.interval ?? 3000,
|
|
324
|
+
description: `session ${sessionId} to end`,
|
|
325
|
+
});
|
|
326
|
+
}
|
|
327
|
+
/**
|
|
328
|
+
* Waits for task orchestrator metadata to satisfy a predicate.
|
|
329
|
+
*/
|
|
330
|
+
export async function waitForTaskMeta(api, taskId, predicate, opts = {}) {
|
|
331
|
+
return waitFor(async () => {
|
|
332
|
+
const meta = await api.getTaskOrchestratorMeta(taskId);
|
|
333
|
+
if (!meta)
|
|
334
|
+
return null;
|
|
335
|
+
return predicate(meta)
|
|
336
|
+
? meta
|
|
337
|
+
: null;
|
|
338
|
+
}, {
|
|
339
|
+
timeout: opts.timeout ?? 60000,
|
|
340
|
+
interval: opts.interval ?? 2000,
|
|
341
|
+
description: `task ${taskId} metadata to match predicate`,
|
|
342
|
+
});
|
|
343
|
+
}
|
|
344
|
+
/**
|
|
345
|
+
* Waits for a git commit to appear in a worktree directory.
|
|
346
|
+
* Returns the commit hash of the most recent commit.
|
|
347
|
+
*/
|
|
348
|
+
export async function waitForGitCommit(worktreePath, opts = {}) {
|
|
349
|
+
const { execSync } = await import('node:child_process');
|
|
350
|
+
return waitFor(async () => {
|
|
351
|
+
try {
|
|
352
|
+
// Check if there's at least one commit beyond the initial
|
|
353
|
+
const log = execSync('git log --oneline -2', {
|
|
354
|
+
cwd: worktreePath,
|
|
355
|
+
encoding: 'utf8',
|
|
356
|
+
stdio: 'pipe',
|
|
357
|
+
}).trim();
|
|
358
|
+
const lines = log.split('\n');
|
|
359
|
+
if (lines.length >= 2) {
|
|
360
|
+
// There's at least 2 commits, return the latest hash
|
|
361
|
+
return execSync('git rev-parse HEAD', {
|
|
362
|
+
cwd: worktreePath,
|
|
363
|
+
encoding: 'utf8',
|
|
364
|
+
stdio: 'pipe',
|
|
365
|
+
}).trim();
|
|
366
|
+
}
|
|
367
|
+
return null;
|
|
368
|
+
}
|
|
369
|
+
catch {
|
|
370
|
+
return null;
|
|
371
|
+
}
|
|
372
|
+
}, {
|
|
373
|
+
timeout: opts.timeout ?? 120000,
|
|
374
|
+
interval: opts.interval ?? 3000,
|
|
375
|
+
description: `git commit in ${worktreePath}`,
|
|
376
|
+
});
|
|
377
|
+
}
|
|
378
|
+
//# sourceMappingURL=test-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-utils.js","sourceRoot":"","sources":["../../src/testing/test-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Pool Types - Pool configuration for controlling agent concurrency
|
|
3
|
+
*
|
|
4
|
+
* Agent pools provide a way to limit the maximum number of agents running
|
|
5
|
+
* concurrently across one or more agent types. The dispatch daemon respects
|
|
6
|
+
* pool limits when spawning agents, and pools can have configurable priority
|
|
7
|
+
* for each agent type to determine spawn order when there are multiple pending
|
|
8
|
+
* tasks/resources.
|
|
9
|
+
*
|
|
10
|
+
* Key concepts:
|
|
11
|
+
* - Pool size: Maximum number of concurrent agents across all types in the pool
|
|
12
|
+
* - Agent type slots: Which agent types (worker, steward) can occupy pool slots
|
|
13
|
+
* - Priority scores: Per-type priority for tie-breaking when multiple tasks are ready
|
|
14
|
+
*
|
|
15
|
+
* @module
|
|
16
|
+
*/
|
|
17
|
+
import type { EntityId, ElementId, Timestamp } from '@stoneforge/core';
|
|
18
|
+
import type { AgentRole, WorkerMode, StewardFocus } from './agent.js';
|
|
19
|
+
/**
|
|
20
|
+
* Configuration for a specific agent type within a pool.
|
|
21
|
+
* Defines which agents can occupy pool slots and their priority.
|
|
22
|
+
*/
|
|
23
|
+
export interface PoolAgentTypeConfig {
|
|
24
|
+
/** The agent role (worker, steward) */
|
|
25
|
+
readonly role: Exclude<AgentRole, 'director'>;
|
|
26
|
+
/** Worker mode filter (only for role='worker') */
|
|
27
|
+
readonly workerMode?: WorkerMode;
|
|
28
|
+
/** Steward focus filter (only for role='steward') */
|
|
29
|
+
readonly stewardFocus?: StewardFocus;
|
|
30
|
+
/**
|
|
31
|
+
* Priority score for this agent type (higher = higher priority).
|
|
32
|
+
* Used to determine which type of agent to spawn when there are
|
|
33
|
+
* multiple pending tasks/resources and only one pool slot available.
|
|
34
|
+
* Default: 0
|
|
35
|
+
*/
|
|
36
|
+
readonly priority?: number;
|
|
37
|
+
/**
|
|
38
|
+
* Maximum slots this agent type can occupy within the pool.
|
|
39
|
+
* If not set, this type can occupy all available pool slots.
|
|
40
|
+
* Must be <= pool maxSize.
|
|
41
|
+
*/
|
|
42
|
+
readonly maxSlots?: number;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Agent Pool configuration stored as element metadata.
|
|
46
|
+
* Pools are not a separate element type - they are stored as a configuration
|
|
47
|
+
* in workspace settings or as a specialized Entity.
|
|
48
|
+
*/
|
|
49
|
+
export interface AgentPoolConfig {
|
|
50
|
+
/** Unique pool name */
|
|
51
|
+
readonly name: string;
|
|
52
|
+
/** Human-readable description */
|
|
53
|
+
readonly description?: string;
|
|
54
|
+
/**
|
|
55
|
+
* Maximum number of concurrent agents in this pool.
|
|
56
|
+
* The dispatch daemon will not spawn new agents if the pool is full.
|
|
57
|
+
*/
|
|
58
|
+
readonly maxSize: number;
|
|
59
|
+
/**
|
|
60
|
+
* Agent types that can occupy slots in this pool.
|
|
61
|
+
* If empty, all ephemeral workers and stewards are included.
|
|
62
|
+
*/
|
|
63
|
+
readonly agentTypes: PoolAgentTypeConfig[];
|
|
64
|
+
/** Whether the pool is enabled (default: true) */
|
|
65
|
+
readonly enabled?: boolean;
|
|
66
|
+
/** Tags for categorization */
|
|
67
|
+
readonly tags?: string[];
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Runtime status of an agent pool
|
|
71
|
+
*/
|
|
72
|
+
export interface AgentPoolStatus {
|
|
73
|
+
/** Current number of active agents in the pool */
|
|
74
|
+
readonly activeCount: number;
|
|
75
|
+
/** Number of available slots (maxSize - activeCount) */
|
|
76
|
+
readonly availableSlots: number;
|
|
77
|
+
/** Breakdown of active agents by type */
|
|
78
|
+
readonly activeByType: Record<string, number>;
|
|
79
|
+
/** Agents currently occupying pool slots */
|
|
80
|
+
readonly activeAgentIds: EntityId[];
|
|
81
|
+
/** Timestamp when status was last updated */
|
|
82
|
+
readonly lastUpdatedAt: Timestamp;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Full agent pool with configuration and runtime status
|
|
86
|
+
*/
|
|
87
|
+
export interface AgentPool {
|
|
88
|
+
/** Pool ID (element ID if stored as entity, or generated) */
|
|
89
|
+
readonly id: ElementId;
|
|
90
|
+
/** Pool configuration */
|
|
91
|
+
readonly config: AgentPoolConfig;
|
|
92
|
+
/** Current runtime status */
|
|
93
|
+
readonly status: AgentPoolStatus;
|
|
94
|
+
/** Pool creation timestamp */
|
|
95
|
+
readonly createdAt: Timestamp;
|
|
96
|
+
/** Entity that created this pool */
|
|
97
|
+
readonly createdBy: EntityId;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Filter options for querying pools
|
|
101
|
+
*/
|
|
102
|
+
export interface AgentPoolFilter {
|
|
103
|
+
/** Filter by enabled status */
|
|
104
|
+
readonly enabled?: boolean;
|
|
105
|
+
/** Filter by name pattern (substring match) */
|
|
106
|
+
readonly nameContains?: string;
|
|
107
|
+
/** Filter by tags (any match) */
|
|
108
|
+
readonly tags?: string[];
|
|
109
|
+
/** Filter to pools with available slots */
|
|
110
|
+
readonly hasAvailableSlots?: boolean;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Input for creating a new pool
|
|
114
|
+
*/
|
|
115
|
+
export interface CreatePoolInput {
|
|
116
|
+
/** Unique pool name */
|
|
117
|
+
readonly name: string;
|
|
118
|
+
/** Human-readable description */
|
|
119
|
+
readonly description?: string;
|
|
120
|
+
/** Maximum concurrent agents */
|
|
121
|
+
readonly maxSize: number;
|
|
122
|
+
/** Agent type configurations */
|
|
123
|
+
readonly agentTypes?: PoolAgentTypeConfig[];
|
|
124
|
+
/** Whether pool is enabled (default: true) */
|
|
125
|
+
readonly enabled?: boolean;
|
|
126
|
+
/** Tags for categorization */
|
|
127
|
+
readonly tags?: string[];
|
|
128
|
+
/** Entity creating the pool */
|
|
129
|
+
readonly createdBy: EntityId;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Input for updating a pool
|
|
133
|
+
*/
|
|
134
|
+
export interface UpdatePoolInput {
|
|
135
|
+
/** Updated description */
|
|
136
|
+
readonly description?: string;
|
|
137
|
+
/** Updated max size (must be >= current activeCount) */
|
|
138
|
+
readonly maxSize?: number;
|
|
139
|
+
/** Updated agent type configurations */
|
|
140
|
+
readonly agentTypes?: PoolAgentTypeConfig[];
|
|
141
|
+
/** Updated enabled status */
|
|
142
|
+
readonly enabled?: boolean;
|
|
143
|
+
/** Updated tags */
|
|
144
|
+
readonly tags?: string[];
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Result of checking if an agent can be spawned within pool constraints
|
|
148
|
+
*/
|
|
149
|
+
export interface PoolSpawnCheck {
|
|
150
|
+
/** Whether the agent can be spawned */
|
|
151
|
+
readonly canSpawn: boolean;
|
|
152
|
+
/** The pool that governs this decision (if any) */
|
|
153
|
+
readonly poolId?: ElementId;
|
|
154
|
+
/** The pool name for display */
|
|
155
|
+
readonly poolName?: string;
|
|
156
|
+
/** Reason if canSpawn is false */
|
|
157
|
+
readonly reason?: string;
|
|
158
|
+
/** Number of slots that would be used after spawn */
|
|
159
|
+
readonly slotsAfterSpawn?: number;
|
|
160
|
+
/** Maximum slots in the pool */
|
|
161
|
+
readonly maxSlots?: number;
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Agent spawn request for pool consideration
|
|
165
|
+
*/
|
|
166
|
+
export interface PoolSpawnRequest {
|
|
167
|
+
/** The agent role */
|
|
168
|
+
readonly role: Exclude<AgentRole, 'director'>;
|
|
169
|
+
/** Worker mode (for workers) */
|
|
170
|
+
readonly workerMode?: WorkerMode;
|
|
171
|
+
/** Steward focus (for stewards) */
|
|
172
|
+
readonly stewardFocus?: StewardFocus;
|
|
173
|
+
/** The agent ID to spawn */
|
|
174
|
+
readonly agentId: EntityId;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Validates a pool name
|
|
178
|
+
*/
|
|
179
|
+
export declare function isValidPoolName(value: unknown): value is string;
|
|
180
|
+
/**
|
|
181
|
+
* Validates a pool max size
|
|
182
|
+
*/
|
|
183
|
+
export declare function isValidPoolSize(value: unknown): value is number;
|
|
184
|
+
/**
|
|
185
|
+
* Validates a priority score
|
|
186
|
+
*/
|
|
187
|
+
export declare function isValidPriorityScore(value: unknown): value is number;
|
|
188
|
+
/**
|
|
189
|
+
* Validates a pool agent type configuration
|
|
190
|
+
*/
|
|
191
|
+
export declare function isValidPoolAgentTypeConfig(value: unknown): value is PoolAgentTypeConfig;
|
|
192
|
+
/**
|
|
193
|
+
* Validates a pool configuration
|
|
194
|
+
*/
|
|
195
|
+
export declare function isValidPoolConfig(value: unknown): value is AgentPoolConfig;
|
|
196
|
+
/**
|
|
197
|
+
* Type guard to check if a value is an AgentPool
|
|
198
|
+
*/
|
|
199
|
+
export declare function isAgentPool(value: unknown): value is AgentPool;
|
|
200
|
+
/**
|
|
201
|
+
* Default pool configuration values
|
|
202
|
+
*/
|
|
203
|
+
export declare const POOL_DEFAULTS: {
|
|
204
|
+
/** Default pool max size */
|
|
205
|
+
readonly maxSize: 5;
|
|
206
|
+
/** Default enabled status */
|
|
207
|
+
readonly enabled: true;
|
|
208
|
+
/** Default priority for agent types */
|
|
209
|
+
readonly defaultPriority: 0;
|
|
210
|
+
};
|
|
211
|
+
/**
|
|
212
|
+
* Pool metadata key for storing pool config in Entity metadata
|
|
213
|
+
*/
|
|
214
|
+
export declare const POOL_METADATA_KEY: "agentPool";
|
|
215
|
+
//# sourceMappingURL=agent-pool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-pool.d.ts","sourceRoot":"","sources":["../../src/types/agent-pool.ts"],"names":[],"mappings":"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"}
|