@loompad/cli 0.1.0 → 1.1.2
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/ARCHITECTURE.md +96 -11
- package/CHANGELOG.md +1054 -0
- package/README.md +1473 -44
- package/THIRD_PARTY_NOTICES.md +275 -0
- package/dist/adapters/antigravity-cli.d.ts +62 -0
- package/dist/adapters/antigravity-cli.js +258 -0
- package/dist/adapters/antigravity-cli.js.map +1 -0
- package/dist/adapters/base.d.ts +61 -9
- package/dist/adapters/base.js +266 -15
- package/dist/adapters/base.js.map +1 -1
- package/dist/adapters/bridges/antigravity.d.ts +9 -12
- package/dist/adapters/bridges/antigravity.js +9 -12
- package/dist/adapters/bridges/antigravity.js.map +1 -1
- package/dist/adapters/echo.d.ts +1 -0
- package/dist/adapters/echo.js +59 -3
- package/dist/adapters/echo.js.map +1 -1
- package/dist/adapters/grok.d.ts +7 -0
- package/dist/adapters/grok.js +20 -10
- package/dist/adapters/grok.js.map +1 -1
- package/dist/adapters/index.d.ts +5 -1
- package/dist/adapters/index.js +53 -7
- package/dist/adapters/index.js.map +1 -1
- package/dist/adapters/model.d.ts +137 -0
- package/dist/adapters/model.js +527 -0
- package/dist/adapters/model.js.map +1 -0
- package/dist/adapters/opencode.d.ts +101 -1
- package/dist/adapters/opencode.js +874 -98
- package/dist/adapters/opencode.js.map +1 -1
- package/dist/cli/doctor.d.ts +32 -0
- package/dist/cli/doctor.js +89 -4
- package/dist/cli/doctor.js.map +1 -1
- package/dist/cli/index.js +2651 -87
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/tui-model.js +3 -1
- package/dist/cli/tui-model.js.map +1 -1
- package/dist/cli/tui.js +44 -1
- package/dist/cli/tui.js.map +1 -1
- package/dist/cli/ui.d.ts +2 -0
- package/dist/cli/ui.js +13 -0
- package/dist/cli/ui.js.map +1 -1
- package/dist/core/ades.d.ts +32 -16
- package/dist/core/ades.js +57 -20
- package/dist/core/ades.js.map +1 -1
- package/dist/core/agent-state.d.ts +14 -0
- package/dist/core/agent-state.js +32 -0
- package/dist/core/agent-state.js.map +1 -0
- package/dist/core/approvals.d.ts +33 -0
- package/dist/core/approvals.js +29 -0
- package/dist/core/approvals.js.map +1 -0
- package/dist/core/backup.d.ts +19 -0
- package/dist/core/backup.js +86 -0
- package/dist/core/backup.js.map +1 -0
- package/dist/core/baton.d.ts +2 -2
- package/dist/core/baton.js.map +1 -1
- package/dist/core/brain-extract.d.ts +17 -0
- package/dist/core/brain-extract.js +28 -2
- package/dist/core/brain-extract.js.map +1 -1
- package/dist/core/brain-index.d.ts +71 -0
- package/dist/core/brain-index.js +204 -5
- package/dist/core/brain-index.js.map +1 -1
- package/dist/core/brain.d.ts +58 -2
- package/dist/core/brain.js +79 -1
- package/dist/core/brain.js.map +1 -1
- package/dist/core/chat-import.d.ts +71 -0
- package/dist/core/chat-import.js +419 -0
- package/dist/core/chat-import.js.map +1 -0
- package/dist/core/checkpoint.d.ts +107 -0
- package/dist/core/checkpoint.js +259 -0
- package/dist/core/checkpoint.js.map +1 -0
- package/dist/core/claude-cli.js +1 -1
- package/dist/core/claude-cli.js.map +1 -1
- package/dist/core/continuity/artifacts.d.ts +14 -0
- package/dist/core/continuity/artifacts.js +118 -0
- package/dist/core/continuity/artifacts.js.map +1 -0
- package/dist/core/continuity/capabilities.d.ts +65 -0
- package/dist/core/continuity/capabilities.js +129 -0
- package/dist/core/continuity/capabilities.js.map +1 -0
- package/dist/core/continuity/contracts.d.ts +352 -0
- package/dist/core/continuity/contracts.js +117 -0
- package/dist/core/continuity/contracts.js.map +1 -0
- package/dist/core/continuity/engine.d.ts +55 -0
- package/dist/core/continuity/engine.js +504 -0
- package/dist/core/continuity/engine.js.map +1 -0
- package/dist/core/continuity/store.d.ts +73 -0
- package/dist/core/continuity/store.js +438 -0
- package/dist/core/continuity/store.js.map +1 -0
- package/dist/core/conversations.d.ts +19 -0
- package/dist/core/conversations.js +87 -0
- package/dist/core/conversations.js.map +1 -0
- package/dist/core/crew-coordination.d.ts +6 -0
- package/dist/core/crew-coordination.js +24 -0
- package/dist/core/crew-coordination.js.map +1 -0
- package/dist/core/crew-policy.d.ts +18 -0
- package/dist/core/crew-policy.js +40 -0
- package/dist/core/crew-policy.js.map +1 -0
- package/dist/core/crew-protocol.d.ts +64 -0
- package/dist/core/crew-protocol.js +146 -0
- package/dist/core/crew-protocol.js.map +1 -0
- package/dist/core/crew-requests.d.ts +14 -0
- package/dist/core/crew-requests.js +22 -0
- package/dist/core/crew-requests.js.map +1 -0
- package/dist/core/crew.d.ts +395 -0
- package/dist/core/crew.js +1857 -0
- package/dist/core/crew.js.map +1 -0
- package/dist/core/digest.d.ts +40 -0
- package/dist/core/digest.js +94 -0
- package/dist/core/digest.js.map +1 -0
- package/dist/core/distill.js +3 -5
- package/dist/core/distill.js.map +1 -1
- package/dist/core/eventlog.d.ts +27 -25
- package/dist/core/eventlog.js +97 -150
- package/dist/core/eventlog.js.map +1 -1
- package/dist/core/events/contracts.d.ts +51 -0
- package/dist/core/events/contracts.js +2 -0
- package/dist/core/events/contracts.js.map +1 -0
- package/dist/core/events/jsonl-store.d.ts +23 -0
- package/dist/core/events/jsonl-store.js +90 -0
- package/dist/core/events/jsonl-store.js.map +1 -0
- package/dist/core/events/sqlite-store.d.ts +37 -0
- package/dist/core/events/sqlite-store.js +215 -0
- package/dist/core/events/sqlite-store.js.map +1 -0
- package/dist/core/forecast.d.ts +44 -0
- package/dist/core/forecast.js +46 -0
- package/dist/core/forecast.js.map +1 -0
- package/dist/core/free-pool.d.ts +65 -0
- package/dist/core/free-pool.js +171 -0
- package/dist/core/free-pool.js.map +1 -0
- package/dist/core/git.d.ts +30 -0
- package/dist/core/git.js +50 -2
- package/dist/core/git.js.map +1 -1
- package/dist/core/github-events.d.ts +53 -0
- package/dist/core/github-events.js +227 -0
- package/dist/core/github-events.js.map +1 -0
- package/dist/core/goal-lanes.d.ts +53 -0
- package/dist/core/goal-lanes.js +99 -0
- package/dist/core/goal-lanes.js.map +1 -0
- package/dist/core/hosted.d.ts +27 -0
- package/dist/core/hosted.js +50 -0
- package/dist/core/hosted.js.map +1 -0
- package/dist/core/http-server.d.ts +5 -0
- package/dist/core/http-server.js +8 -0
- package/dist/core/http-server.js.map +1 -0
- package/dist/core/invite-link.d.ts +31 -0
- package/dist/core/invite-link.js +45 -0
- package/dist/core/invite-link.js.map +1 -0
- package/dist/core/loops.d.ts +37 -0
- package/dist/core/loops.js +81 -0
- package/dist/core/loops.js.map +1 -0
- package/dist/core/mcp-catalog.d.ts +182 -0
- package/dist/core/mcp-catalog.js +431 -0
- package/dist/core/mcp-catalog.js.map +1 -0
- package/dist/core/mcp.d.ts +87 -0
- package/dist/core/mcp.js +181 -0
- package/dist/core/mcp.js.map +1 -0
- package/dist/core/memory.d.ts +1 -0
- package/dist/core/memory.js +5 -2
- package/dist/core/memory.js.map +1 -1
- package/dist/core/model-tools.d.ts +97 -0
- package/dist/core/model-tools.js +388 -0
- package/dist/core/model-tools.js.map +1 -0
- package/dist/core/notify.js +19 -1
- package/dist/core/notify.js.map +1 -1
- package/dist/core/orchestra.d.ts +635 -0
- package/dist/core/orchestra.js +2120 -0
- package/dist/core/orchestra.js.map +1 -0
- package/dist/core/permissions.d.ts +56 -0
- package/dist/core/permissions.js +122 -0
- package/dist/core/permissions.js.map +1 -0
- package/dist/core/preview-proxy.d.ts +70 -0
- package/dist/core/preview-proxy.js +563 -0
- package/dist/core/preview-proxy.js.map +1 -0
- package/dist/core/preview-shot.d.ts +46 -0
- package/dist/core/preview-shot.js +109 -0
- package/dist/core/preview-shot.js.map +1 -0
- package/dist/core/process.d.ts +36 -0
- package/dist/core/process.js +168 -0
- package/dist/core/process.js.map +1 -0
- package/dist/core/prompt-queue.d.ts +136 -0
- package/dist/core/prompt-queue.js +269 -0
- package/dist/core/prompt-queue.js.map +1 -0
- package/dist/core/prompts.d.ts +53 -0
- package/dist/core/prompts.js +127 -0
- package/dist/core/prompts.js.map +1 -0
- package/dist/core/proof.d.ts +82 -0
- package/dist/core/proof.js +216 -0
- package/dist/core/proof.js.map +1 -0
- package/dist/core/provider-text.d.ts +23 -0
- package/dist/core/provider-text.js +66 -0
- package/dist/core/provider-text.js.map +1 -0
- package/dist/core/providers.d.ts +152 -0
- package/dist/core/providers.js +343 -0
- package/dist/core/providers.js.map +1 -0
- package/dist/core/quota.d.ts +33 -0
- package/dist/core/quota.js +74 -0
- package/dist/core/quota.js.map +1 -0
- package/dist/core/recipes.d.ts +50 -0
- package/dist/core/recipes.js +99 -0
- package/dist/core/recipes.js.map +1 -0
- package/dist/core/registry.d.ts +54 -0
- package/dist/core/registry.js +62 -5
- package/dist/core/registry.js.map +1 -1
- package/dist/core/relay-client.d.ts +67 -0
- package/dist/core/relay-client.js +184 -0
- package/dist/core/relay-client.js.map +1 -0
- package/dist/core/relay-protocol.d.ts +140 -0
- package/dist/core/relay-protocol.js +189 -0
- package/dist/core/relay-protocol.js.map +1 -0
- package/dist/core/replay.d.ts +18 -0
- package/dist/core/replay.js +191 -0
- package/dist/core/replay.js.map +1 -0
- package/dist/core/review-triage.d.ts +41 -0
- package/dist/core/review-triage.js +124 -0
- package/dist/core/review-triage.js.map +1 -0
- package/dist/core/router.js +2 -2
- package/dist/core/router.js.map +1 -1
- package/dist/core/routes.d.ts +39 -3
- package/dist/core/routes.js +137 -4
- package/dist/core/routes.js.map +1 -1
- package/dist/core/run-command.d.ts +14 -0
- package/dist/core/run-command.js +45 -0
- package/dist/core/run-command.js.map +1 -0
- package/dist/core/runner-setup.d.ts +36 -0
- package/dist/core/runner-setup.js +114 -0
- package/dist/core/runner-setup.js.map +1 -0
- package/dist/core/search.js +0 -0
- package/dist/core/search.js.map +1 -1
- package/dist/core/semantic.d.ts +92 -0
- package/dist/core/semantic.js +227 -0
- package/dist/core/semantic.js.map +1 -0
- package/dist/core/servers.d.ts +115 -0
- package/dist/core/servers.js +305 -0
- package/dist/core/servers.js.map +1 -0
- package/dist/core/setup.js +64 -6
- package/dist/core/setup.js.map +1 -1
- package/dist/core/shield.d.ts +17 -0
- package/dist/core/shield.js +81 -0
- package/dist/core/shield.js.map +1 -0
- package/dist/core/shift.d.ts +69 -0
- package/dist/core/shift.js +120 -0
- package/dist/core/shift.js.map +1 -0
- package/dist/core/skill-install.d.ts +125 -0
- package/dist/core/skill-install.js +328 -0
- package/dist/core/skill-install.js.map +1 -0
- package/dist/core/skills.d.ts +116 -0
- package/dist/core/skills.js +223 -0
- package/dist/core/skills.js.map +1 -0
- package/dist/core/step-conditions.d.ts +65 -0
- package/dist/core/step-conditions.js +102 -0
- package/dist/core/step-conditions.js.map +1 -0
- package/dist/core/subagents.d.ts +45 -0
- package/dist/core/subagents.js +90 -0
- package/dist/core/subagents.js.map +1 -0
- package/dist/core/team-canon.d.ts +42 -0
- package/dist/core/team-canon.js +121 -0
- package/dist/core/team-canon.js.map +1 -0
- package/dist/core/team-crypto.d.ts +97 -0
- package/dist/core/team-crypto.js +175 -0
- package/dist/core/team-crypto.js.map +1 -0
- package/dist/core/team-hub.d.ts +514 -0
- package/dist/core/team-hub.js +964 -0
- package/dist/core/team-hub.js.map +1 -0
- package/dist/core/team-landing.d.ts +239 -0
- package/dist/core/team-landing.js +504 -0
- package/dist/core/team-landing.js.map +1 -0
- package/dist/core/team-leases.d.ts +44 -0
- package/dist/core/team-leases.js +145 -0
- package/dist/core/team-leases.js.map +1 -0
- package/dist/core/team-memory.d.ts +42 -0
- package/dist/core/team-memory.js +84 -0
- package/dist/core/team-memory.js.map +1 -0
- package/dist/core/team-policy.d.ts +85 -0
- package/dist/core/team-policy.js +191 -0
- package/dist/core/team-policy.js.map +1 -0
- package/dist/core/thread-md.d.ts +6 -0
- package/dist/core/thread-md.js +42 -0
- package/dist/core/thread-md.js.map +1 -0
- package/dist/core/turn-stats.d.ts +61 -0
- package/dist/core/turn-stats.js +124 -0
- package/dist/core/turn-stats.js.map +1 -0
- package/dist/core/updater.d.ts +73 -0
- package/dist/core/updater.js +153 -0
- package/dist/core/updater.js.map +1 -0
- package/dist/core/usage.d.ts +75 -0
- package/dist/core/usage.js +163 -0
- package/dist/core/usage.js.map +1 -0
- package/dist/core/windows-jobs.d.ts +15 -0
- package/dist/core/windows-jobs.js +170 -0
- package/dist/core/windows-jobs.js.map +1 -0
- package/dist/core/worktree-merge.d.ts +57 -0
- package/dist/core/worktree-merge.js +123 -0
- package/dist/core/worktree-merge.js.map +1 -0
- package/dist/core/worktree.d.ts +5 -0
- package/dist/core/worktree.js +45 -5
- package/dist/core/worktree.js.map +1 -1
- package/dist/core/worktrees.d.ts +6 -0
- package/dist/core/worktrees.js +21 -0
- package/dist/core/worktrees.js.map +1 -0
- package/dist/daemon/app-page.d.ts +0 -17
- package/dist/daemon/app-page.js +10 -6346
- package/dist/daemon/app-page.js.map +1 -1
- package/dist/daemon/auth.d.ts +24 -3
- package/dist/daemon/auth.js +66 -7
- package/dist/daemon/auth.js.map +1 -1
- package/dist/daemon/board.d.ts +7 -0
- package/dist/daemon/board.js +12 -1
- package/dist/daemon/board.js.map +1 -1
- package/dist/daemon/brand-icons.d.ts +6 -1
- package/dist/daemon/brand-icons.js +11 -3
- package/dist/daemon/brand-icons.js.map +1 -1
- package/dist/daemon/client.d.ts +665 -1
- package/dist/daemon/client.js +381 -3
- package/dist/daemon/client.js.map +1 -1
- package/dist/daemon/delivery.d.ts +34 -0
- package/dist/daemon/delivery.js +63 -0
- package/dist/daemon/delivery.js.map +1 -0
- package/dist/daemon/deploys.d.ts +62 -0
- package/dist/daemon/deploys.js +159 -0
- package/dist/daemon/deploys.js.map +1 -0
- package/dist/daemon/landing.d.ts +192 -0
- package/dist/daemon/landing.js +992 -0
- package/dist/daemon/landing.js.map +1 -0
- package/dist/daemon/onboard.d.ts +150 -0
- package/dist/daemon/onboard.js +390 -0
- package/dist/daemon/onboard.js.map +1 -0
- package/dist/daemon/proof.d.ts +70 -0
- package/dist/daemon/proof.js +172 -0
- package/dist/daemon/proof.js.map +1 -0
- package/dist/daemon/push.d.ts +19 -1
- package/dist/daemon/push.js +90 -3
- package/dist/daemon/push.js.map +1 -1
- package/dist/daemon/relay.d.ts +82 -0
- package/dist/daemon/relay.js +351 -0
- package/dist/daemon/relay.js.map +1 -0
- package/dist/daemon/routes/agent-discovery.d.ts +4 -0
- package/dist/daemon/routes/agent-discovery.js +29 -0
- package/dist/daemon/routes/agent-discovery.js.map +1 -0
- package/dist/daemon/routes/agent-settings.d.ts +4 -0
- package/dist/daemon/routes/agent-settings.js +94 -0
- package/dist/daemon/routes/agent-settings.js.map +1 -0
- package/dist/daemon/routes/agents.d.ts +4 -0
- package/dist/daemon/routes/agents.js +105 -0
- package/dist/daemon/routes/agents.js.map +1 -0
- package/dist/daemon/routes/alerts.d.ts +4 -0
- package/dist/daemon/routes/alerts.js +137 -0
- package/dist/daemon/routes/alerts.js.map +1 -0
- package/dist/daemon/routes/approvals.d.ts +4 -0
- package/dist/daemon/routes/approvals.js +40 -0
- package/dist/daemon/routes/approvals.js.map +1 -0
- package/dist/daemon/routes/assets.d.ts +3 -0
- package/dist/daemon/routes/assets.js +64 -0
- package/dist/daemon/routes/assets.js.map +1 -0
- package/dist/daemon/routes/board.d.ts +4 -0
- package/dist/daemon/routes/board.js +147 -0
- package/dist/daemon/routes/board.js.map +1 -0
- package/dist/daemon/routes/brain.d.ts +4 -0
- package/dist/daemon/routes/brain.js +270 -0
- package/dist/daemon/routes/brain.js.map +1 -0
- package/dist/daemon/routes/chats.d.ts +4 -0
- package/dist/daemon/routes/chats.js +249 -0
- package/dist/daemon/routes/chats.js.map +1 -0
- package/dist/daemon/routes/clients.d.ts +4 -0
- package/dist/daemon/routes/clients.js +49 -0
- package/dist/daemon/routes/clients.js.map +1 -0
- package/dist/daemon/routes/cloud.d.ts +4 -0
- package/dist/daemon/routes/cloud.js +46 -0
- package/dist/daemon/routes/cloud.js.map +1 -0
- package/dist/daemon/routes/config.d.ts +4 -0
- package/dist/daemon/routes/config.js +35 -0
- package/dist/daemon/routes/config.js.map +1 -0
- package/dist/daemon/routes/context.d.ts +51 -0
- package/dist/daemon/routes/context.js +2 -0
- package/dist/daemon/routes/context.js.map +1 -0
- package/dist/daemon/routes/crews.d.ts +4 -0
- package/dist/daemon/routes/crews.js +149 -0
- package/dist/daemon/routes/crews.js.map +1 -0
- package/dist/daemon/routes/files.d.ts +3 -0
- package/dist/daemon/routes/files.js +253 -0
- package/dist/daemon/routes/files.js.map +1 -0
- package/dist/daemon/routes/git.d.ts +4 -0
- package/dist/daemon/routes/git.js +96 -0
- package/dist/daemon/routes/git.js.map +1 -0
- package/dist/daemon/routes/history.d.ts +4 -0
- package/dist/daemon/routes/history.js +101 -0
- package/dist/daemon/routes/history.js.map +1 -0
- package/dist/daemon/routes/integrations-project.d.ts +3 -0
- package/dist/daemon/routes/integrations-project.js +103 -0
- package/dist/daemon/routes/integrations-project.js.map +1 -0
- package/dist/daemon/routes/integrations.d.ts +3 -0
- package/dist/daemon/routes/integrations.js +111 -0
- package/dist/daemon/routes/integrations.js.map +1 -0
- package/dist/daemon/routes/logs.d.ts +3 -0
- package/dist/daemon/routes/logs.js +40 -0
- package/dist/daemon/routes/logs.js.map +1 -0
- package/dist/daemon/routes/messages.d.ts +4 -0
- package/dist/daemon/routes/messages.js +60 -0
- package/dist/daemon/routes/messages.js.map +1 -0
- package/dist/daemon/routes/observability.d.ts +4 -0
- package/dist/daemon/routes/observability.js +247 -0
- package/dist/daemon/routes/observability.js.map +1 -0
- package/dist/daemon/routes/onboard.d.ts +12 -0
- package/dist/daemon/routes/onboard.js +67 -0
- package/dist/daemon/routes/onboard.js.map +1 -0
- package/dist/daemon/routes/orchestra.d.ts +4 -0
- package/dist/daemon/routes/orchestra.js +110 -0
- package/dist/daemon/routes/orchestra.js.map +1 -0
- package/dist/daemon/routes/pairing.d.ts +4 -0
- package/dist/daemon/routes/pairing.js +155 -0
- package/dist/daemon/routes/pairing.js.map +1 -0
- package/dist/daemon/routes/preview.d.ts +24 -0
- package/dist/daemon/routes/preview.js +122 -0
- package/dist/daemon/routes/preview.js.map +1 -0
- package/dist/daemon/routes/project-actions.d.ts +4 -0
- package/dist/daemon/routes/project-actions.js +53 -0
- package/dist/daemon/routes/project-actions.js.map +1 -0
- package/dist/daemon/routes/project-team.d.ts +4 -0
- package/dist/daemon/routes/project-team.js +201 -0
- package/dist/daemon/routes/project-team.js.map +1 -0
- package/dist/daemon/routes/projects.d.ts +14 -0
- package/dist/daemon/routes/projects.js +138 -0
- package/dist/daemon/routes/projects.js.map +1 -0
- package/dist/daemon/routes/prompts.d.ts +4 -0
- package/dist/daemon/routes/prompts.js +44 -0
- package/dist/daemon/routes/prompts.js.map +1 -0
- package/dist/daemon/routes/proof.d.ts +4 -0
- package/dist/daemon/routes/proof.js +22 -0
- package/dist/daemon/routes/proof.js.map +1 -0
- package/dist/daemon/routes/providers.d.ts +3 -0
- package/dist/daemon/routes/providers.js +60 -0
- package/dist/daemon/routes/providers.js.map +1 -0
- package/dist/daemon/routes/public.d.ts +4 -0
- package/dist/daemon/routes/public.js +64 -0
- package/dist/daemon/routes/public.js.map +1 -0
- package/dist/daemon/routes/queue.d.ts +4 -0
- package/dist/daemon/routes/queue.js +140 -0
- package/dist/daemon/routes/queue.js.map +1 -0
- package/dist/daemon/routes/routing.d.ts +4 -0
- package/dist/daemon/routes/routing.js +61 -0
- package/dist/daemon/routes/routing.js.map +1 -0
- package/dist/daemon/routes/runtime-handler.d.ts +2 -0
- package/dist/daemon/routes/runtime-handler.js +63 -0
- package/dist/daemon/routes/runtime-handler.js.map +1 -0
- package/dist/daemon/routes/search.d.ts +4 -0
- package/dist/daemon/routes/search.js +17 -0
- package/dist/daemon/routes/search.js.map +1 -0
- package/dist/daemon/routes/servers.d.ts +4 -0
- package/dist/daemon/routes/servers.js +133 -0
- package/dist/daemon/routes/servers.js.map +1 -0
- package/dist/daemon/routes/setup.d.ts +3 -0
- package/dist/daemon/routes/setup.js +50 -0
- package/dist/daemon/routes/setup.js.map +1 -0
- package/dist/daemon/routes/shift.d.ts +4 -0
- package/dist/daemon/routes/shift.js +30 -0
- package/dist/daemon/routes/shift.js.map +1 -0
- package/dist/daemon/routes/specs.d.ts +4 -0
- package/dist/daemon/routes/specs.js +57 -0
- package/dist/daemon/routes/specs.js.map +1 -0
- package/dist/daemon/routes/task-delivery.d.ts +4 -0
- package/dist/daemon/routes/task-delivery.js +38 -0
- package/dist/daemon/routes/task-delivery.js.map +1 -0
- package/dist/daemon/routes/team.d.ts +4 -0
- package/dist/daemon/routes/team.js +193 -0
- package/dist/daemon/routes/team.js.map +1 -0
- package/dist/daemon/routes/terminals.d.ts +4 -0
- package/dist/daemon/routes/terminals.js +87 -0
- package/dist/daemon/routes/terminals.js.map +1 -0
- package/dist/daemon/routes/tools.d.ts +4 -0
- package/dist/daemon/routes/tools.js +180 -0
- package/dist/daemon/routes/tools.js.map +1 -0
- package/dist/daemon/routes/updates.d.ts +4 -0
- package/dist/daemon/routes/updates.js +89 -0
- package/dist/daemon/routes/updates.js.map +1 -0
- package/dist/daemon/routes/voice.d.ts +4 -0
- package/dist/daemon/routes/voice.js +53 -0
- package/dist/daemon/routes/voice.js.map +1 -0
- package/dist/daemon/runner.d.ts +186 -0
- package/dist/daemon/runner.js +612 -0
- package/dist/daemon/runner.js.map +1 -0
- package/dist/daemon/runtime/accounting.d.ts +130 -0
- package/dist/daemon/runtime/accounting.js +303 -0
- package/dist/daemon/runtime/accounting.js.map +1 -0
- package/dist/daemon/runtime/agents.d.ts +16 -0
- package/dist/daemon/runtime/agents.js +71 -0
- package/dist/daemon/runtime/agents.js.map +1 -0
- package/dist/daemon/runtime/briefings.d.ts +134 -0
- package/dist/daemon/runtime/briefings.js +329 -0
- package/dist/daemon/runtime/briefings.js.map +1 -0
- package/dist/daemon/runtime/native-usage.d.ts +21 -0
- package/dist/daemon/runtime/native-usage.js +71 -0
- package/dist/daemon/runtime/native-usage.js.map +1 -0
- package/dist/daemon/runtime/queue.d.ts +94 -0
- package/dist/daemon/runtime/queue.js +222 -0
- package/dist/daemon/runtime/queue.js.map +1 -0
- package/dist/daemon/runtime/relay.d.ts +93 -0
- package/dist/daemon/runtime/relay.js +240 -0
- package/dist/daemon/runtime/relay.js.map +1 -0
- package/dist/daemon/runtime/turns.d.ts +202 -0
- package/dist/daemon/runtime/turns.js +663 -0
- package/dist/daemon/runtime/turns.js.map +1 -0
- package/dist/daemon/runtime-support.d.ts +76 -0
- package/dist/daemon/runtime-support.js +134 -0
- package/dist/daemon/runtime-support.js.map +1 -0
- package/dist/daemon/runtime.d.ts +739 -70
- package/dist/daemon/runtime.js +2751 -470
- package/dist/daemon/runtime.js.map +1 -1
- package/dist/daemon/server.d.ts +82 -55
- package/dist/daemon/server.js +674 -1435
- package/dist/daemon/server.js.map +1 -1
- package/dist/daemon/shift.d.ts +70 -0
- package/dist/daemon/shift.js +170 -0
- package/dist/daemon/shift.js.map +1 -0
- package/dist/daemon/specs.d.ts +92 -0
- package/dist/daemon/specs.js +285 -0
- package/dist/daemon/specs.js.map +1 -0
- package/dist/daemon/system.d.ts +208 -0
- package/dist/daemon/system.js +557 -0
- package/dist/daemon/system.js.map +1 -0
- package/dist/daemon/tasks.js +1 -1
- package/dist/daemon/team-brain.d.ts +136 -0
- package/dist/daemon/team-brain.js +659 -0
- package/dist/daemon/team-brain.js.map +1 -0
- package/dist/daemon/team-coordinator.d.ts +78 -0
- package/dist/daemon/team-coordinator.js +408 -0
- package/dist/daemon/team-coordinator.js.map +1 -0
- package/dist/daemon/team.d.ts +339 -0
- package/dist/daemon/team.js +1433 -0
- package/dist/daemon/team.js.map +1 -0
- package/dist/daemon/terminals.d.ts +22 -3
- package/dist/daemon/terminals.js +236 -16
- package/dist/daemon/terminals.js.map +1 -1
- package/dist/hub/client.d.ts +120 -0
- package/dist/hub/client.js +228 -0
- package/dist/hub/client.js.map +1 -0
- package/dist/hub/server.d.ts +32 -0
- package/dist/hub/server.js +180 -0
- package/dist/hub/server.js.map +1 -0
- package/dist/hub/supabase-client.d.ts +220 -0
- package/dist/hub/supabase-client.js +843 -0
- package/dist/hub/supabase-client.js.map +1 -0
- package/dist/observability/ask.d.ts +91 -0
- package/dist/observability/ask.js +179 -0
- package/dist/observability/ask.js.map +1 -0
- package/dist/observability/clickhouse.d.ts +33 -0
- package/dist/observability/clickhouse.js +48 -0
- package/dist/observability/clickhouse.js.map +1 -0
- package/dist/observability/decisions.d.ts +176 -0
- package/dist/observability/decisions.js +377 -0
- package/dist/observability/decisions.js.map +1 -0
- package/dist/observability/index.d.ts +89 -0
- package/dist/observability/index.js +348 -0
- package/dist/observability/index.js.map +1 -0
- package/dist/observability/insights.d.ts +151 -0
- package/dist/observability/insights.js +319 -0
- package/dist/observability/insights.js.map +1 -0
- package/dist/observability/logs-query.d.ts +82 -0
- package/dist/observability/logs-query.js +102 -0
- package/dist/observability/logs-query.js.map +1 -0
- package/dist/observability/logs.d.ts +72 -0
- package/dist/observability/logs.js +295 -0
- package/dist/observability/logs.js.map +1 -0
- package/dist/observability/metrics.d.ts +86 -0
- package/dist/observability/metrics.js +303 -0
- package/dist/observability/metrics.js.map +1 -0
- package/dist/observability/otlp.d.ts +127 -0
- package/dist/observability/otlp.js +242 -0
- package/dist/observability/otlp.js.map +1 -0
- package/dist/observability/snapshots.d.ts +43 -0
- package/dist/observability/snapshots.js +129 -0
- package/dist/observability/snapshots.js.map +1 -0
- package/dist/observability/triage.d.ts +49 -0
- package/dist/observability/triage.js +284 -0
- package/dist/observability/triage.js.map +1 -0
- package/dist/providers/adapter.d.ts +50 -0
- package/dist/providers/adapter.js +38 -0
- package/dist/providers/adapter.js.map +1 -0
- package/dist/providers/agent.d.ts +110 -0
- package/dist/providers/agent.js +487 -0
- package/dist/providers/agent.js.map +1 -0
- package/dist/providers/approvals.d.ts +24 -0
- package/dist/providers/approvals.js +78 -0
- package/dist/providers/approvals.js.map +1 -0
- package/dist/providers/attachments.d.ts +20 -0
- package/dist/providers/attachments.js +51 -0
- package/dist/providers/attachments.js.map +1 -0
- package/dist/providers/claude/adapter.d.ts +99 -0
- package/dist/providers/claude/adapter.js +790 -0
- package/dist/providers/claude/adapter.js.map +1 -0
- package/dist/providers/codex/adapter.d.ts +113 -0
- package/dist/providers/codex/adapter.js +881 -0
- package/dist/providers/codex/adapter.js.map +1 -0
- package/dist/providers/codex/instructions.d.ts +11 -0
- package/dist/providers/codex/instructions.js +154 -0
- package/dist/providers/codex/instructions.js.map +1 -0
- package/dist/providers/codex/rpc.d.ts +36 -0
- package/dist/providers/codex/rpc.js +104 -0
- package/dist/providers/codex/rpc.js.map +1 -0
- package/dist/providers/contracts.d.ts +339 -0
- package/dist/providers/contracts.js +19 -0
- package/dist/providers/contracts.js.map +1 -0
- package/dist/providers/directory.d.ts +70 -0
- package/dist/providers/directory.js +95 -0
- package/dist/providers/directory.js.map +1 -0
- package/dist/providers/errors.d.ts +47 -0
- package/dist/providers/errors.js +24 -0
- package/dist/providers/errors.js.map +1 -0
- package/dist/providers/index.d.ts +18 -0
- package/dist/providers/index.js +19 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/ingestion.d.ts +80 -0
- package/dist/providers/ingestion.js +330 -0
- package/dist/providers/ingestion.js.map +1 -0
- package/dist/providers/live.d.ts +22 -0
- package/dist/providers/live.js +56 -0
- package/dist/providers/live.js.map +1 -0
- package/dist/providers/process.d.ts +29 -0
- package/dist/providers/process.js +71 -0
- package/dist/providers/process.js.map +1 -0
- package/dist/providers/reaper.d.ts +33 -0
- package/dist/providers/reaper.js +65 -0
- package/dist/providers/reaper.js.map +1 -0
- package/dist/providers/service.d.ts +87 -0
- package/dist/providers/service.js +256 -0
- package/dist/providers/service.js.map +1 -0
- package/dist/sdk.d.ts +1 -1
- package/dist/sdk.js +1 -1
- package/dist/sdk.js.map +1 -1
- package/dist/types.d.ts +385 -6
- package/dist/types.js +1 -0
- package/dist/types.js.map +1 -1
- package/dist/version.d.ts +7 -0
- package/dist/version.js +16 -0
- package/dist/version.js.map +1 -0
- package/dist/web/app.css +4646 -0
- package/dist/web/app.js +22640 -0
- package/dist/web/app.js.map +7 -0
- package/dist/web/shell.html +39 -0
- package/docs/README.md +21 -0
- package/docs/SETUP.md +10 -0
- package/docs/adapters.md +21 -8
- package/docs/brain-continuity.md +186 -0
- package/docs/cloud.md +108 -0
- package/docs/crews.md +62 -0
- package/docs/design-system.md +31 -2
- package/docs/integration-notes.md +128 -20
- package/docs/loompad.md +105 -0
- package/docs/observability.md +220 -0
- package/docs/play-store.md +123 -0
- package/docs/proposals/agent-teams.md +249 -0
- package/docs/proposals/brain-continuity-implementation.md +468 -0
- package/docs/proposals/brain-session-continuity.md +623 -0
- package/docs/proposals/t3code-port.md +81 -0
- package/docs/proposals/t3code-reference.md +95 -0
- package/docs/refactoring/AGENT-TEAMS-PROGRESS.md +88 -0
- package/docs/refactoring/BOUNDARIES.md +120 -0
- package/docs/refactoring/BRAIN-AUDIT.md +176 -0
- package/docs/refactoring/BRAIN-NOTES.md +390 -0
- package/docs/refactoring/BRAIN-TODO.md +214 -0
- package/docs/refactoring/NOTES.md +129 -0
- package/docs/refactoring/T3-PORT-NOTES.md +165 -0
- package/docs/refactoring/T3-PORT-TODO.md +123 -0
- package/docs/refactoring/TODO.md +46 -0
- package/docs/refactoring/brain-benchmark-2026-09-28.json +48 -0
- package/docs/refactoring/brain-benchmark-audit-2026-09-28.json +48 -0
- package/docs/release-notes/v0.2.0.md +35 -0
- package/docs/release-notes/v0.2.1.md +59 -0
- package/docs/release-notes/v0.2.3.md +77 -0
- package/docs/release-notes/v0.2.4.md +128 -0
- package/docs/release-notes/v0.2.5.md +153 -0
- package/docs/release-notes/v0.2.6.md +62 -0
- package/docs/release-notes/v1.0.0.md +120 -0
- package/docs/release-notes/v1.0.1.md +77 -0
- package/docs/release-notes/v1.1.0.md +71 -0
- package/docs/release-notes/v1.1.1.md +38 -0
- package/docs/release-notes/v1.1.2.md +21 -0
- package/docs/teams-architecture.md +697 -0
- package/docs/teams.md +171 -0
- package/docs/windows.md +85 -0
- package/package.json +22 -9
- package/dist/adapters/claude-code.d.ts +0 -26
- package/dist/adapters/claude-code.js +0 -209
- package/dist/adapters/claude-code.js.map +0 -1
- package/dist/adapters/codex.d.ts +0 -51
- package/dist/adapters/codex.js +0 -291
- package/dist/adapters/codex.js.map +0 -1
- package/docs/img/board-linear.png +0 -0
- package/docs/img/board-projects.png +0 -0
- package/docs/img/brain.png +0 -0
- package/docs/img/settings.png +0 -0
- package/docs/img/workspace.png +0 -0
|
@@ -0,0 +1,395 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Teams, Phase 1 — a crew for one person, working one goal at a time
|
|
3
|
+
* (docs/proposals/agent-teams.md).
|
|
4
|
+
*
|
|
5
|
+
* A crew is a named set of teammates — roster agents with a role (lead,
|
|
6
|
+
* builder, reviewer, tester, researcher) and a charter. A goal runs the
|
|
7
|
+
* "Ship" play in its own worktree, on its own branch, one turn at a time:
|
|
8
|
+
*
|
|
9
|
+
* Lead plans cards → (you approve) → for each card in order:
|
|
10
|
+
* a builder builds it → Loom commits → the reviewer reviews the diff
|
|
11
|
+
* (changes go back to the same builder, same session) → the tester runs
|
|
12
|
+
* the tests (a failure goes back to the builder) → the card is done.
|
|
13
|
+
* Then the Lead writes the summary, and the branch is yours to apply.
|
|
14
|
+
*
|
|
15
|
+
* Everything a teammate does lands in its own thread; the crew's channel gets
|
|
16
|
+
* the plan, the hand-offs, the reviews and anything a teammate posts. You
|
|
17
|
+
* talk to the crew in that channel. Teammates speak the protocol in
|
|
18
|
+
* core/crew-protocol.ts. Parallel builders, per-teammate native sessions and
|
|
19
|
+
* crews across people are later phases (§11).
|
|
20
|
+
*/
|
|
21
|
+
import type { TeamPolicy } from "./team-policy.js";
|
|
22
|
+
import type { OrchestraCoordinator, TaskHold, OrchestraRun } from "./orchestra.js";
|
|
23
|
+
import { type ContinuityEngine } from "./continuity/engine.js";
|
|
24
|
+
import type { Adapter, AgentConfig, ChatInfo, EventKind, LoomEvent } from "../types.js";
|
|
25
|
+
import { type BoardTask } from "./registry.js";
|
|
26
|
+
import { type CrewMemoryKind, type CrewRole } from "./crew-protocol.js";
|
|
27
|
+
export interface CrewTeammate {
|
|
28
|
+
/** Unique within the crew ("lead", "builder-1"). */
|
|
29
|
+
id: string;
|
|
30
|
+
/** A roster agent id. Several teammates may share one; each gets its own session. */
|
|
31
|
+
agent: string;
|
|
32
|
+
role: CrewRole;
|
|
33
|
+
charter?: string;
|
|
34
|
+
}
|
|
35
|
+
export interface CrewConfig {
|
|
36
|
+
id: string;
|
|
37
|
+
name: string;
|
|
38
|
+
teammates: CrewTeammate[];
|
|
39
|
+
/** The Lead's plan waits for your OK before anyone builds (default on). */
|
|
40
|
+
planApproval?: boolean;
|
|
41
|
+
/** How many times a card may go back to its builder from review or test (default 2). */
|
|
42
|
+
maxRounds?: number;
|
|
43
|
+
/** What the tester runs, when you'd rather say than have it look. */
|
|
44
|
+
testCommand?: string;
|
|
45
|
+
/** Minutes a teammate may go silent before its turn is interrupted and retried once (default 8). */
|
|
46
|
+
stallMinutes?: number;
|
|
47
|
+
play?: "ship" | "fanout" | "race";
|
|
48
|
+
maxParallel?: number;
|
|
49
|
+
budgetUsd?: number;
|
|
50
|
+
}
|
|
51
|
+
export type CardStage = "planned" | "building" | "review" | "testing" | "ready" | "done" | "failed";
|
|
52
|
+
export interface CrewCard {
|
|
53
|
+
/** The board task id. */
|
|
54
|
+
id: string;
|
|
55
|
+
title: string;
|
|
56
|
+
detail?: string;
|
|
57
|
+
touches?: string[];
|
|
58
|
+
role: CrewRole;
|
|
59
|
+
assignee?: string;
|
|
60
|
+
blockedBy: string[];
|
|
61
|
+
stage: CardStage;
|
|
62
|
+
/** Teammate building it. */
|
|
63
|
+
builder?: string;
|
|
64
|
+
/** Times it went back to the builder. */
|
|
65
|
+
rounds: number;
|
|
66
|
+
/** What the builder is told next (review notes, test failures, your messages). */
|
|
67
|
+
feedback: string[];
|
|
68
|
+
commits: string[];
|
|
69
|
+
workspace?: {
|
|
70
|
+
dir: string;
|
|
71
|
+
branch: string;
|
|
72
|
+
base: string;
|
|
73
|
+
integrated?: boolean;
|
|
74
|
+
};
|
|
75
|
+
hold?: {
|
|
76
|
+
reason: string;
|
|
77
|
+
with: string[];
|
|
78
|
+
};
|
|
79
|
+
overlap?: string;
|
|
80
|
+
teamHold?: TaskHold;
|
|
81
|
+
summary?: string;
|
|
82
|
+
error?: string;
|
|
83
|
+
}
|
|
84
|
+
export type GoalStatus = "planning" | "awaiting_approval" | "running" | "waiting_human" | "waiting_team" | "paused" | "completed" | "failed" | "stopped" | "interrupted";
|
|
85
|
+
export interface CrewGoal {
|
|
86
|
+
sourceRequestId?: string;
|
|
87
|
+
requestTarget?: string;
|
|
88
|
+
play?: "ship" | "fanout" | "race";
|
|
89
|
+
selected?: string;
|
|
90
|
+
recovery?: string;
|
|
91
|
+
pr?: {
|
|
92
|
+
url: string;
|
|
93
|
+
at: number;
|
|
94
|
+
};
|
|
95
|
+
deliveryError?: string;
|
|
96
|
+
budgetUsd?: number;
|
|
97
|
+
teamWait?: string;
|
|
98
|
+
pauseRequested?: boolean;
|
|
99
|
+
pauseReason?: string;
|
|
100
|
+
resumeStatus?: GoalStatus;
|
|
101
|
+
id: string;
|
|
102
|
+
text: string;
|
|
103
|
+
status: GoalStatus;
|
|
104
|
+
/** Branch and worktree the goal is built in, cut from `base`. */
|
|
105
|
+
branch: string;
|
|
106
|
+
dir: string;
|
|
107
|
+
base: string;
|
|
108
|
+
baseBranch: string;
|
|
109
|
+
cards: CrewCard[];
|
|
110
|
+
/** What is happening right now (a card's stage, or the plan). */
|
|
111
|
+
current?: {
|
|
112
|
+
teammate: string;
|
|
113
|
+
card?: string;
|
|
114
|
+
step: string;
|
|
115
|
+
};
|
|
116
|
+
question?: {
|
|
117
|
+
teammate: string;
|
|
118
|
+
text: string;
|
|
119
|
+
step: "plan" | "card";
|
|
120
|
+
};
|
|
121
|
+
summary?: string;
|
|
122
|
+
error?: string;
|
|
123
|
+
/** Plan turns that came back without a plan. */
|
|
124
|
+
rounds?: number;
|
|
125
|
+
costUsd: number;
|
|
126
|
+
spendBySeat?: Record<string, number>;
|
|
127
|
+
startedAt: number;
|
|
128
|
+
finishedAt?: number;
|
|
129
|
+
applied?: {
|
|
130
|
+
into: string;
|
|
131
|
+
at: number;
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
export interface CrewState {
|
|
135
|
+
id: string;
|
|
136
|
+
channel: string;
|
|
137
|
+
threads: Record<string, string>;
|
|
138
|
+
goal?: CrewGoal;
|
|
139
|
+
history: Array<{
|
|
140
|
+
id: string;
|
|
141
|
+
text: string;
|
|
142
|
+
status: GoalStatus;
|
|
143
|
+
summary?: string;
|
|
144
|
+
finishedAt?: number;
|
|
145
|
+
branch: string;
|
|
146
|
+
}>;
|
|
147
|
+
/** Messages for a teammate's next turn (from you, or posted by another teammate). */
|
|
148
|
+
notes: Record<string, string[]>;
|
|
149
|
+
/** Durable native bindings, keyed by seat rather than roster agent. */
|
|
150
|
+
sessions?: Record<string, {
|
|
151
|
+
bindingId: string;
|
|
152
|
+
epoch: number;
|
|
153
|
+
nativeSessionId: string | null;
|
|
154
|
+
}>;
|
|
155
|
+
inbox?: Array<{
|
|
156
|
+
id: string;
|
|
157
|
+
from: string;
|
|
158
|
+
to: string;
|
|
159
|
+
text: string;
|
|
160
|
+
expiresAt: number;
|
|
161
|
+
status: "queued" | "running" | "waiting_human" | "delivered" | "failed";
|
|
162
|
+
result?: string;
|
|
163
|
+
error?: string;
|
|
164
|
+
}>;
|
|
165
|
+
}
|
|
166
|
+
export interface CrewView extends CrewConfig {
|
|
167
|
+
state: CrewState;
|
|
168
|
+
busy: boolean;
|
|
169
|
+
active: Array<{
|
|
170
|
+
teammate: string;
|
|
171
|
+
card?: string;
|
|
172
|
+
step: string;
|
|
173
|
+
since: number;
|
|
174
|
+
}>;
|
|
175
|
+
spentToday: number;
|
|
176
|
+
}
|
|
177
|
+
export interface CrewHost {
|
|
178
|
+
projectId: string;
|
|
179
|
+
projectName: string;
|
|
180
|
+
projectDir: string;
|
|
181
|
+
crews(): CrewConfig[];
|
|
182
|
+
saveCrews(crews: CrewConfig[]): void;
|
|
183
|
+
roster(): AgentConfig[];
|
|
184
|
+
makeAgent(cfg: AgentConfig, dir: string): Adapter;
|
|
185
|
+
append(e: {
|
|
186
|
+
kind: EventKind;
|
|
187
|
+
agentId?: string;
|
|
188
|
+
chat?: string;
|
|
189
|
+
payload: Record<string, unknown>;
|
|
190
|
+
}): LoomEvent;
|
|
191
|
+
createChat(title: string, opts?: {
|
|
192
|
+
agentId?: string;
|
|
193
|
+
}): ChatInfo;
|
|
194
|
+
chatExists(id: string): boolean;
|
|
195
|
+
briefingFor(query: string, agentId: string, crewId?: string): string | Promise<string>;
|
|
196
|
+
native?(): ContinuityEngine | null;
|
|
197
|
+
nativeOptions?(cfg: AgentConfig): Record<string, unknown>;
|
|
198
|
+
nativeHealth?(id: string): Promise<{
|
|
199
|
+
available: boolean;
|
|
200
|
+
error?: string;
|
|
201
|
+
}>;
|
|
202
|
+
coordinator?(): OrchestraCoordinator | null;
|
|
203
|
+
policy?(): TeamPolicy | null;
|
|
204
|
+
spentToday?(crew?: string): number;
|
|
205
|
+
gitDelivery?(): string;
|
|
206
|
+
gate(agentId: string): void;
|
|
207
|
+
observe(event: LoomEvent): void;
|
|
208
|
+
stream?(f: {
|
|
209
|
+
agentId: string;
|
|
210
|
+
chat: string;
|
|
211
|
+
text: string;
|
|
212
|
+
reasoning?: boolean;
|
|
213
|
+
}): void;
|
|
214
|
+
createTask(input: {
|
|
215
|
+
title: string;
|
|
216
|
+
column?: string;
|
|
217
|
+
agent?: string;
|
|
218
|
+
blockedBy?: string[];
|
|
219
|
+
}): BoardTask;
|
|
220
|
+
updateTask(id: string, patch: Record<string, unknown>): BoardTask | null;
|
|
221
|
+
/** Save a memory a teammate asked the crew to keep (scope: this crew, until a human promotes it). */
|
|
222
|
+
remember?(m: {
|
|
223
|
+
crewId: string;
|
|
224
|
+
kind: CrewMemoryKind;
|
|
225
|
+
text: string;
|
|
226
|
+
agentId: string;
|
|
227
|
+
eventId: number;
|
|
228
|
+
}): void;
|
|
229
|
+
/** The GitHub login running this daemon, when on a team (commit trailers). */
|
|
230
|
+
member?(): string | null;
|
|
231
|
+
/** Tests: how long silence counts as a stall, in ms (else the crew's stallMinutes, else 8 min). */
|
|
232
|
+
stallMs?: number;
|
|
233
|
+
/** How long a crew's test command may run (default 10 min). */
|
|
234
|
+
testTimeoutMs?: number;
|
|
235
|
+
}
|
|
236
|
+
export declare const CREW_TEMPLATES: string[];
|
|
237
|
+
/** Fill a template's roles from the roster; the reviewer avoids the builders' vendor when it can. */
|
|
238
|
+
export declare function teammatesFromTemplate(template: string, roster: AgentConfig[]): CrewTeammate[];
|
|
239
|
+
export declare class CrewEngine {
|
|
240
|
+
private readonly host;
|
|
241
|
+
private states;
|
|
242
|
+
/** Live adapters for the active goal: `${crew}/${teammate}`. */
|
|
243
|
+
private agents;
|
|
244
|
+
private agentOptions;
|
|
245
|
+
/** Teammates blocked on a structured question: key → the request, its question ids, the thread. */
|
|
246
|
+
private waiting;
|
|
247
|
+
/** A teammate's live instance by its id (`crew-<crew>-<seat>.<agent>`), for answering its questions. */
|
|
248
|
+
liveAgent(instanceId: string): Adapter | undefined;
|
|
249
|
+
private running;
|
|
250
|
+
private turnText;
|
|
251
|
+
private turnError;
|
|
252
|
+
private turnQuestion;
|
|
253
|
+
private activeTurns;
|
|
254
|
+
/** When each live teammate last showed a sign of life (any event or streamed text). */
|
|
255
|
+
private lastActivity;
|
|
256
|
+
private gitChain;
|
|
257
|
+
private closed;
|
|
258
|
+
private loops;
|
|
259
|
+
private stopping;
|
|
260
|
+
private seatTurns;
|
|
261
|
+
private testControllers;
|
|
262
|
+
private teamRechecks;
|
|
263
|
+
private deliveries;
|
|
264
|
+
constructor(host: CrewHost);
|
|
265
|
+
/** The agents a teammate can be. */
|
|
266
|
+
roster(): AgentConfig[];
|
|
267
|
+
list(): CrewView[];
|
|
268
|
+
get(id: string): CrewView;
|
|
269
|
+
create(input: {
|
|
270
|
+
name?: string;
|
|
271
|
+
template?: string;
|
|
272
|
+
teammates?: CrewTeammate[];
|
|
273
|
+
planApproval?: boolean;
|
|
274
|
+
testCommand?: string;
|
|
275
|
+
play?: CrewConfig["play"];
|
|
276
|
+
maxParallel?: number;
|
|
277
|
+
budgetUsd?: number;
|
|
278
|
+
}): CrewView;
|
|
279
|
+
update(id: string, patch: {
|
|
280
|
+
name?: string;
|
|
281
|
+
teammates?: CrewTeammate[];
|
|
282
|
+
planApproval?: boolean;
|
|
283
|
+
testCommand?: string | null;
|
|
284
|
+
stallMinutes?: number | null;
|
|
285
|
+
play?: CrewConfig["play"];
|
|
286
|
+
maxParallel?: number;
|
|
287
|
+
budgetUsd?: number | null;
|
|
288
|
+
}): CrewView;
|
|
289
|
+
remove(id: string): Promise<void>;
|
|
290
|
+
private validate;
|
|
291
|
+
/** Give the crew a goal. It plans in the channel and (by default) waits for your OK. */
|
|
292
|
+
goal(id: string, text: string, play?: CrewConfig["play"], request?: {
|
|
293
|
+
id: string;
|
|
294
|
+
to: string;
|
|
295
|
+
}): Promise<CrewGoal>;
|
|
296
|
+
/**
|
|
297
|
+
* You, in the channel. With no goal on, it becomes the goal; while the crew
|
|
298
|
+
* waits on a question it's the answer; otherwise it's a note for the
|
|
299
|
+
* teammate you name (or the Lead) on its next turn.
|
|
300
|
+
*/
|
|
301
|
+
say(id: string, text: string, to?: string): Promise<{
|
|
302
|
+
routed: "goal" | "answer" | "note" | "replan";
|
|
303
|
+
to?: string;
|
|
304
|
+
}>;
|
|
305
|
+
/** OK the Lead's plan: building starts. */
|
|
306
|
+
approve(id: string): CrewGoal;
|
|
307
|
+
/** Stop: the current turn is interrupted, and the goal ends where it is (its branch stays). */
|
|
308
|
+
stop(id: string): Promise<CrewGoal>;
|
|
309
|
+
/** Carry on an interrupted (or stopped) goal from the step it was on. */
|
|
310
|
+
resume(id: string): CrewGoal;
|
|
311
|
+
/** Merge a finished goal's branch into the branch you're on. */
|
|
312
|
+
apply(id: string): Promise<{
|
|
313
|
+
merged: string;
|
|
314
|
+
into: string;
|
|
315
|
+
}>;
|
|
316
|
+
shutdown(): Promise<void>;
|
|
317
|
+
private drive;
|
|
318
|
+
private loop;
|
|
319
|
+
private plan;
|
|
320
|
+
private validPlay;
|
|
321
|
+
receiveRequest(id: string, request: {
|
|
322
|
+
id: string;
|
|
323
|
+
from: string;
|
|
324
|
+
to: string;
|
|
325
|
+
text: string;
|
|
326
|
+
expiresAt: number;
|
|
327
|
+
}): Promise<{
|
|
328
|
+
delivery: string;
|
|
329
|
+
}>;
|
|
330
|
+
private deliverRequest;
|
|
331
|
+
private planApproval;
|
|
332
|
+
coordination(id: string): OrchestraRun | undefined;
|
|
333
|
+
coordinationRuns(): OrchestraRun[];
|
|
334
|
+
addTeamNote(runId: string, text: string): boolean;
|
|
335
|
+
private admit;
|
|
336
|
+
holdForTeam(runId: string, cardId: string, hold: TaskHold): Promise<void>;
|
|
337
|
+
private waitForTeam;
|
|
338
|
+
decideOverlap(id: string, cardId: string, decision: string, touches?: string[]): CrewGoal;
|
|
339
|
+
pause(id: string): CrewGoal;
|
|
340
|
+
raiseBudget(id: string, amount: number): CrewGoal;
|
|
341
|
+
private validParallel;
|
|
342
|
+
private validBudget;
|
|
343
|
+
/** A bounded wave owns its declared file scopes through review and test. */
|
|
344
|
+
private parallel;
|
|
345
|
+
private cardWorkspace;
|
|
346
|
+
private integrateCard;
|
|
347
|
+
pick(id: string, choice: string): Promise<CrewGoal>;
|
|
348
|
+
private addCards;
|
|
349
|
+
/** One card through build → review → test. */
|
|
350
|
+
private work;
|
|
351
|
+
private giveUp;
|
|
352
|
+
private wrapUp;
|
|
353
|
+
private finish;
|
|
354
|
+
deliver(id: string): Promise<{
|
|
355
|
+
url: string;
|
|
356
|
+
}>;
|
|
357
|
+
private deliverOnce;
|
|
358
|
+
/**
|
|
359
|
+
* Send one teammate one prompt in the goal's worktree and wait for the turn.
|
|
360
|
+
* Its role, charter, crewmates, protocol and any notes ride in the briefing.
|
|
361
|
+
* Null when the goal stopped meanwhile.
|
|
362
|
+
*/
|
|
363
|
+
private turn;
|
|
364
|
+
private runTurn;
|
|
365
|
+
private wire;
|
|
366
|
+
private briefing;
|
|
367
|
+
/** A teammate's `remember`: said in the channel, kept in the crew's memory that every teammate's briefing reads. */
|
|
368
|
+
private remember;
|
|
369
|
+
private post;
|
|
370
|
+
private phase;
|
|
371
|
+
private commit;
|
|
372
|
+
/** What a card changed: its first commit's parent to the worktree's tip. */
|
|
373
|
+
private cardDiff;
|
|
374
|
+
/** A goal's whole change against where it started. */
|
|
375
|
+
goalDiff(id: string): Promise<string>;
|
|
376
|
+
private builderFor;
|
|
377
|
+
private lead;
|
|
378
|
+
private reviewer;
|
|
379
|
+
private tester;
|
|
380
|
+
/** Is there a test step: a test command Loom runs, or a tester teammate? */
|
|
381
|
+
private tests;
|
|
382
|
+
private thread;
|
|
383
|
+
private config;
|
|
384
|
+
private state;
|
|
385
|
+
private archive;
|
|
386
|
+
private dropWorktree;
|
|
387
|
+
private stopAgents;
|
|
388
|
+
private assertNativeIdle;
|
|
389
|
+
/** Explicitly start a fresh native epoch for one stopped teammate. */
|
|
390
|
+
refresh(id: string, teammate: string): Promise<CrewView>;
|
|
391
|
+
private serial;
|
|
392
|
+
private stateFile;
|
|
393
|
+
private load;
|
|
394
|
+
private save;
|
|
395
|
+
}
|