@loompad/cli 0.1.0 → 1.1.1
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 +1042 -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 +4643 -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/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 @@
|
|
|
1
|
+
{"version":3,"file":"supabase-client.js","sourceRoot":"","sources":["../../src/hub/supabase-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ask the Observatory — a question about this fleet, answered from its own
|
|
3
|
+
* telemetry.
|
|
4
|
+
*
|
|
5
|
+
* The shape is the one that makes an observability assistant worth having: a
|
|
6
|
+
* model that can go and query traces, metrics and logs itself rather than being
|
|
7
|
+
* handed a pre-chewed summary and asked to sound confident about it. So when the
|
|
8
|
+
* project has MCP servers configured (see src/core/mcp.ts) they are passed to
|
|
9
|
+
* the CLI for the turn — if one of them fronts the telemetry store, the model
|
|
10
|
+
* can call it directly. None of that is required: with no MCP server at all the
|
|
11
|
+
* evidence block below is still real, and the answer is still grounded.
|
|
12
|
+
*
|
|
13
|
+
* Two things this deliberately does NOT do:
|
|
14
|
+
*
|
|
15
|
+
* - It does not require its own API key. The project already drives real
|
|
16
|
+
* coding CLIs headlessly, so the cheapest available one answers. On a
|
|
17
|
+
* machine with none, the endpoint says so instead of returning a
|
|
18
|
+
* plausible-sounding paragraph assembled locally.
|
|
19
|
+
* - It does not invent telemetry. The context block below is rendered from
|
|
20
|
+
* the same numbers the Observatory renders; if the telemetry backend is
|
|
21
|
+
* unreachable the prompt says the spans came from the local event log, so
|
|
22
|
+
* the answer can be honest about its own evidence rather than implying a
|
|
23
|
+
* trace backend that isn't running.
|
|
24
|
+
*/
|
|
25
|
+
/** Everything the model is told about the fleet, all of it measured. */
|
|
26
|
+
export interface AskContext {
|
|
27
|
+
projectName: string;
|
|
28
|
+
spendUsd: number;
|
|
29
|
+
turns: number;
|
|
30
|
+
tokensIn: number;
|
|
31
|
+
tokensOut: number;
|
|
32
|
+
holder: string | null;
|
|
33
|
+
agents: Array<{
|
|
34
|
+
id: string;
|
|
35
|
+
kind: string;
|
|
36
|
+
role?: string;
|
|
37
|
+
turns?: number;
|
|
38
|
+
usd?: number;
|
|
39
|
+
health?: number | null;
|
|
40
|
+
busy?: boolean;
|
|
41
|
+
}>;
|
|
42
|
+
/** Recent turns/handoffs, newest last. */
|
|
43
|
+
recentSpans: Array<{
|
|
44
|
+
ts: number;
|
|
45
|
+
agent?: string;
|
|
46
|
+
name?: string;
|
|
47
|
+
ms?: number;
|
|
48
|
+
code?: number;
|
|
49
|
+
model?: string;
|
|
50
|
+
msg?: string;
|
|
51
|
+
}>;
|
|
52
|
+
decisions: Array<{
|
|
53
|
+
agentId: string;
|
|
54
|
+
title: string;
|
|
55
|
+
category?: string;
|
|
56
|
+
confidence?: number;
|
|
57
|
+
source?: string;
|
|
58
|
+
}>;
|
|
59
|
+
/** "backend" when the spans came from ClickHouse, "local-log" when it is down. */
|
|
60
|
+
spanSource: string;
|
|
61
|
+
}
|
|
62
|
+
export interface AskResult {
|
|
63
|
+
answer: string;
|
|
64
|
+
/** Which CLI and model actually answered. */
|
|
65
|
+
via: string;
|
|
66
|
+
/** MCP servers handed to the model for this question, if any. */
|
|
67
|
+
mcpServers: string[];
|
|
68
|
+
/** True when no CLI was available to answer at all. */
|
|
69
|
+
unavailable?: boolean;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Render the fleet's real state as the evidence block the model reasons over.
|
|
73
|
+
*
|
|
74
|
+
* Kept as plain prose and small tables rather than raw JSON: the question is
|
|
75
|
+
* asked in English and the answer is read in English, and a model handed 40kB
|
|
76
|
+
* of span JSON spends its attention parsing rather than answering.
|
|
77
|
+
*/
|
|
78
|
+
export declare function renderAskContext(c: AskContext): string;
|
|
79
|
+
/**
|
|
80
|
+
* Put the question to whichever headless CLI this machine has, cheapest first.
|
|
81
|
+
*
|
|
82
|
+
* `agy` leads because a fleet question is a reading task, not a coding one, and
|
|
83
|
+
* a flash-tier model answers it for a fraction of the orchestrator's budget —
|
|
84
|
+
* which is the same reason the Antigravity adapter exists.
|
|
85
|
+
*/
|
|
86
|
+
export declare function ask(question: string, ctx: AskContext, opts?: {
|
|
87
|
+
cwd: string;
|
|
88
|
+
mcpConfigPath?: string;
|
|
89
|
+
mcpServers?: string[];
|
|
90
|
+
timeoutMs?: number;
|
|
91
|
+
}): Promise<AskResult>;
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ask the Observatory — a question about this fleet, answered from its own
|
|
3
|
+
* telemetry.
|
|
4
|
+
*
|
|
5
|
+
* The shape is the one that makes an observability assistant worth having: a
|
|
6
|
+
* model that can go and query traces, metrics and logs itself rather than being
|
|
7
|
+
* handed a pre-chewed summary and asked to sound confident about it. So when the
|
|
8
|
+
* project has MCP servers configured (see src/core/mcp.ts) they are passed to
|
|
9
|
+
* the CLI for the turn — if one of them fronts the telemetry store, the model
|
|
10
|
+
* can call it directly. None of that is required: with no MCP server at all the
|
|
11
|
+
* evidence block below is still real, and the answer is still grounded.
|
|
12
|
+
*
|
|
13
|
+
* Two things this deliberately does NOT do:
|
|
14
|
+
*
|
|
15
|
+
* - It does not require its own API key. The project already drives real
|
|
16
|
+
* coding CLIs headlessly, so the cheapest available one answers. On a
|
|
17
|
+
* machine with none, the endpoint says so instead of returning a
|
|
18
|
+
* plausible-sounding paragraph assembled locally.
|
|
19
|
+
* - It does not invent telemetry. The context block below is rendered from
|
|
20
|
+
* the same numbers the Observatory renders; if the telemetry backend is
|
|
21
|
+
* unreachable the prompt says the spans came from the local event log, so
|
|
22
|
+
* the answer can be honest about its own evidence rather than implying a
|
|
23
|
+
* trace backend that isn't running.
|
|
24
|
+
*/
|
|
25
|
+
import { spawn } from "../core/process.js";
|
|
26
|
+
import fs from "node:fs";
|
|
27
|
+
import os from "node:os";
|
|
28
|
+
import path from "node:path";
|
|
29
|
+
import { agentEnv } from "../adapters/base.js";
|
|
30
|
+
/** Where the headless CLIs live; the daemon's PATH may predate their install. */
|
|
31
|
+
function firstBin(candidates) {
|
|
32
|
+
for (const c of candidates) {
|
|
33
|
+
if (c.bin.includes("/")) {
|
|
34
|
+
if (fs.existsSync(c.bin))
|
|
35
|
+
return c;
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
// Resolve against PATH the cheap way: `which` is a process too, and this
|
|
39
|
+
// sits in front of an HTTP handler.
|
|
40
|
+
const dirs = (process.env.PATH ?? "").split(path.delimiter);
|
|
41
|
+
if (dirs.some((d) => d && fs.existsSync(path.join(d, c.bin))))
|
|
42
|
+
return c;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Render the fleet's real state as the evidence block the model reasons over.
|
|
49
|
+
*
|
|
50
|
+
* Kept as plain prose and small tables rather than raw JSON: the question is
|
|
51
|
+
* asked in English and the answer is read in English, and a model handed 40kB
|
|
52
|
+
* of span JSON spends its attention parsing rather than answering.
|
|
53
|
+
*/
|
|
54
|
+
export function renderAskContext(c) {
|
|
55
|
+
const L = [];
|
|
56
|
+
L.push(`# Fleet: ${c.projectName}`);
|
|
57
|
+
L.push(`Baton: ${c.holder ?? "nobody"} · ${c.turns} turns completed · $${c.spendUsd.toFixed(4)} spent · ${c.tokensIn} tokens in, ${c.tokensOut} out`);
|
|
58
|
+
L.push("");
|
|
59
|
+
L.push("## Agents");
|
|
60
|
+
for (const a of c.agents) {
|
|
61
|
+
const bits = [`${a.id} (${a.kind}${a.role && a.role !== a.id ? `, role ${a.role}` : ""})`];
|
|
62
|
+
if (a.turns != null)
|
|
63
|
+
bits.push(`${a.turns} turns`);
|
|
64
|
+
if (a.usd != null)
|
|
65
|
+
bits.push(`$${a.usd.toFixed(4)}`);
|
|
66
|
+
if (a.health != null)
|
|
67
|
+
bits.push(`health ${a.health}/100`);
|
|
68
|
+
if (a.busy)
|
|
69
|
+
bits.push("RUNNING NOW");
|
|
70
|
+
L.push(`- ${bits.join(" · ")}`);
|
|
71
|
+
}
|
|
72
|
+
if (c.decisions.length) {
|
|
73
|
+
L.push("");
|
|
74
|
+
L.push("## Decisions recorded");
|
|
75
|
+
for (const d of c.decisions.slice(-12)) {
|
|
76
|
+
L.push(`- [${d.category ?? "decision"}] ${d.agentId}: ${d.title}` +
|
|
77
|
+
(d.confidence != null ? ` (confidence ${d.confidence}%, ${d.source ?? "source unknown"})` : ` (confidence not measured, ${d.source ?? "source unknown"})`));
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
if (c.recentSpans.length) {
|
|
81
|
+
L.push("");
|
|
82
|
+
L.push(`## Recent activity (${c.spanSource === "backend" ? "from exported spans" : "from the local event log — the telemetry backend is not reachable, so there are no trace ids"})`);
|
|
83
|
+
for (const s of c.recentSpans.slice(-25)) {
|
|
84
|
+
const when = new Date(s.ts).toISOString().slice(11, 19);
|
|
85
|
+
const parts = [when, s.name ?? "?", s.agent ?? ""];
|
|
86
|
+
if (s.model)
|
|
87
|
+
parts.push(s.model);
|
|
88
|
+
if (s.ms != null)
|
|
89
|
+
parts.push(`${s.ms}ms`);
|
|
90
|
+
if (s.code === 2)
|
|
91
|
+
parts.push("ERROR");
|
|
92
|
+
if (s.msg)
|
|
93
|
+
parts.push(s.msg.slice(0, 80));
|
|
94
|
+
L.push(`- ${parts.filter(Boolean).join(" · ")}`);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
return L.join("\n");
|
|
98
|
+
}
|
|
99
|
+
const SYSTEM = [
|
|
100
|
+
"You are Ask, the observability assistant inside Loom's Observatory.",
|
|
101
|
+
"You answer questions about THIS agent fleet using the evidence below, and any",
|
|
102
|
+
"telemetry MCP tools you have been given — prefer calling those tools for",
|
|
103
|
+
"anything the evidence block does not already contain.",
|
|
104
|
+
"",
|
|
105
|
+
"Rules:",
|
|
106
|
+
"- Answer in at most 8 short lines. Lead with the answer, not a preamble.",
|
|
107
|
+
"- Cite the concrete numbers you used. Never invent a metric that is not in the",
|
|
108
|
+
" evidence or returned by a tool; if something cannot be determined, say which",
|
|
109
|
+
" data would be needed.",
|
|
110
|
+
"- If the evidence says the telemetry backend is unreachable, do not imply you",
|
|
111
|
+
" queried traces.",
|
|
112
|
+
"- Plain text. No markdown headers, no bullet characters other than '-'.",
|
|
113
|
+
].join("\n");
|
|
114
|
+
/**
|
|
115
|
+
* Put the question to whichever headless CLI this machine has, cheapest first.
|
|
116
|
+
*
|
|
117
|
+
* `agy` leads because a fleet question is a reading task, not a coding one, and
|
|
118
|
+
* a flash-tier model answers it for a fraction of the orchestrator's budget —
|
|
119
|
+
* which is the same reason the Antigravity adapter exists.
|
|
120
|
+
*/
|
|
121
|
+
export async function ask(question, ctx, opts = { cwd: process.cwd() }) {
|
|
122
|
+
const prompt = `${SYSTEM}\n\n===== EVIDENCE =====\n${renderAskContext(ctx)}\n===== END EVIDENCE =====\n\nQuestion: ${question}`;
|
|
123
|
+
const timeoutMs = opts.timeoutMs ?? 90_000;
|
|
124
|
+
const agy = path.join(os.homedir(), ".local", "bin", "agy");
|
|
125
|
+
const chosen = firstBin([
|
|
126
|
+
{
|
|
127
|
+
bin: fs.existsSync(agy) ? agy : "agy",
|
|
128
|
+
label: "agy · gemini-3.6-flash-high",
|
|
129
|
+
args: (q) => {
|
|
130
|
+
const a = ["--print", q, "--dangerously-skip-permissions", "--model", "gemini-3.6-flash-high",
|
|
131
|
+
"--print-timeout", `${Math.round(timeoutMs / 1000)}s`, "--add-dir", opts.cwd];
|
|
132
|
+
return a;
|
|
133
|
+
},
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
bin: "claude",
|
|
137
|
+
label: "claude",
|
|
138
|
+
args: (q) => {
|
|
139
|
+
const a = ["-p", q, "--output-format", "text"];
|
|
140
|
+
// Only claude takes the MCP document directly; see src/core/mcp.ts.
|
|
141
|
+
if (opts.mcpConfigPath)
|
|
142
|
+
a.push("--mcp-config", opts.mcpConfigPath);
|
|
143
|
+
return a;
|
|
144
|
+
},
|
|
145
|
+
},
|
|
146
|
+
]);
|
|
147
|
+
if (!chosen) {
|
|
148
|
+
return {
|
|
149
|
+
answer: "No local model is available to answer. Install the Antigravity CLI (curl -fsSL https://antigravity.google/cli/install.sh | bash) or Claude Code, sign in once, and ask again.",
|
|
150
|
+
via: "none",
|
|
151
|
+
mcpServers: [],
|
|
152
|
+
unavailable: true,
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
const out = await new Promise((resolve) => {
|
|
156
|
+
const child = spawn(chosen.bin, chosen.args(prompt), { cwd: opts.cwd, stdio: ["ignore", "pipe", "pipe"], env: agentEnv() });
|
|
157
|
+
let text = "", err = "";
|
|
158
|
+
const timer = setTimeout(() => { try {
|
|
159
|
+
child.kill("SIGKILL");
|
|
160
|
+
}
|
|
161
|
+
catch { /* gone */ } }, timeoutMs + 5_000);
|
|
162
|
+
timer.unref?.();
|
|
163
|
+
child.stdout.on("data", (d) => { text += d.toString(); });
|
|
164
|
+
child.stderr.on("data", (d) => { err = (err + d.toString()).slice(-2000); });
|
|
165
|
+
child.on("error", () => { clearTimeout(timer); resolve({ text: "", err: "failed to start", code: null }); });
|
|
166
|
+
child.on("close", (code) => { clearTimeout(timer); resolve({ text, err, code }); });
|
|
167
|
+
});
|
|
168
|
+
const answer = out.text.trim();
|
|
169
|
+
if (!answer) {
|
|
170
|
+
return {
|
|
171
|
+
answer: `The model didn't answer${out.err ? ` — ${out.err.trim().slice(0, 200)}` : ""}. It may need signing in once from a terminal.`,
|
|
172
|
+
via: chosen.label,
|
|
173
|
+
mcpServers: opts.mcpServers ?? [],
|
|
174
|
+
unavailable: true,
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
return { answer, via: chosen.label, mcpServers: opts.mcpServers ?? [] };
|
|
178
|
+
}
|
|
179
|
+
//# sourceMappingURL=ask.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ask.js","sourceRoot":"","sources":["../../src/observability/ask.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The one place Loom talks to the telemetry backend's ClickHouse store. Every
|
|
3
|
+
* read-back feature — triage, span replay, burn rate, health score, the trace
|
|
4
|
+
* waterfall — goes through here so the endpoint, the table, and the failure
|
|
5
|
+
* behaviour are shared.
|
|
6
|
+
*
|
|
7
|
+
* Reads are best-effort: an unreachable ClickHouse throws, and callers fall back
|
|
8
|
+
* (to the local event log, or an empty view) rather than break the page.
|
|
9
|
+
*/
|
|
10
|
+
export declare const CH_URL: string;
|
|
11
|
+
/**
|
|
12
|
+
* The span index.
|
|
13
|
+
*
|
|
14
|
+
* The default is the table layout the collector writes into; it is overridable
|
|
15
|
+
* so the same read-back works against a backend that lays its spans out
|
|
16
|
+
* differently.
|
|
17
|
+
*/
|
|
18
|
+
export declare const SPAN_TABLE: string;
|
|
19
|
+
/**
|
|
20
|
+
* The service every read-back filters on — the same name the exporter stamps
|
|
21
|
+
* onto `service.name` (see otlp.ts#resolveTelemetryConfig).
|
|
22
|
+
*
|
|
23
|
+
* Read from the environment rather than hardcoded, because the two halves have
|
|
24
|
+
* to agree: overriding LOOM_SERVICE_NAME to distinguish two fleets moved what
|
|
25
|
+
* the exporter wrote while every query still asked for 'loom', and each panel
|
|
26
|
+
* then came back empty with nothing to say why. Emit and read-back share one
|
|
27
|
+
* answer or the feature only works on the default.
|
|
28
|
+
*/
|
|
29
|
+
export declare const SERVICE_NAME: string;
|
|
30
|
+
/** Escape a value for a single-quoted ClickHouse string literal. */
|
|
31
|
+
export declare function chLiteral(v: string): string;
|
|
32
|
+
/** Run one SQL query, returning parsed JSONEachRow rows. Throws if unreachable. */
|
|
33
|
+
export declare function chQuery(sql: string): Promise<Record<string, unknown>[]>;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The one place Loom talks to the telemetry backend's ClickHouse store. Every
|
|
3
|
+
* read-back feature — triage, span replay, burn rate, health score, the trace
|
|
4
|
+
* waterfall — goes through here so the endpoint, the table, and the failure
|
|
5
|
+
* behaviour are shared.
|
|
6
|
+
*
|
|
7
|
+
* Reads are best-effort: an unreachable ClickHouse throws, and callers fall back
|
|
8
|
+
* (to the local event log, or an empty view) rather than break the page.
|
|
9
|
+
*/
|
|
10
|
+
export const CH_URL = process.env.LOOM_CLICKHOUSE_URL || "http://localhost:8123";
|
|
11
|
+
/**
|
|
12
|
+
* The span index.
|
|
13
|
+
*
|
|
14
|
+
* The default is the table layout the collector writes into; it is overridable
|
|
15
|
+
* so the same read-back works against a backend that lays its spans out
|
|
16
|
+
* differently.
|
|
17
|
+
*/
|
|
18
|
+
export const SPAN_TABLE = process.env.LOOM_SPAN_TABLE || "signoz_traces.distributed_signoz_index_v3";
|
|
19
|
+
/**
|
|
20
|
+
* The service every read-back filters on — the same name the exporter stamps
|
|
21
|
+
* onto `service.name` (see otlp.ts#resolveTelemetryConfig).
|
|
22
|
+
*
|
|
23
|
+
* Read from the environment rather than hardcoded, because the two halves have
|
|
24
|
+
* to agree: overriding LOOM_SERVICE_NAME to distinguish two fleets moved what
|
|
25
|
+
* the exporter wrote while every query still asked for 'loom', and each panel
|
|
26
|
+
* then came back empty with nothing to say why. Emit and read-back share one
|
|
27
|
+
* answer or the feature only works on the default.
|
|
28
|
+
*/
|
|
29
|
+
export const SERVICE_NAME = process.env.LOOM_SERVICE_NAME || process.env.OTEL_SERVICE_NAME || "loom";
|
|
30
|
+
/** Escape a value for a single-quoted ClickHouse string literal. */
|
|
31
|
+
export function chLiteral(v) {
|
|
32
|
+
return v.replace(/[^\w.\-:/ ]/g, "");
|
|
33
|
+
}
|
|
34
|
+
/** Run one SQL query, returning parsed JSONEachRow rows. Throws if unreachable. */
|
|
35
|
+
export async function chQuery(sql) {
|
|
36
|
+
if (typeof globalThis.fetch !== "function")
|
|
37
|
+
throw new Error("no fetch");
|
|
38
|
+
const res = await fetch(`${CH_URL}/?default_format=JSONEachRow`, { method: "POST", body: sql });
|
|
39
|
+
if (!res.ok)
|
|
40
|
+
throw new Error(`clickhouse ${res.status}`);
|
|
41
|
+
const text = await res.text();
|
|
42
|
+
return text
|
|
43
|
+
.trim()
|
|
44
|
+
.split("\n")
|
|
45
|
+
.filter(Boolean)
|
|
46
|
+
.map((l) => JSON.parse(l));
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=clickhouse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clickhouse.js","sourceRoot":"","sources":["../../src/observability/clickhouse.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,uBAAuB,CAAC;AAEjF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,2CAA2C,CAAC;AAErG;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,MAAM,CAAC;AAErG,oEAAoE;AACpE,MAAM,UAAU,SAAS,CAAC,CAAS;IACjC,OAAO,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;AACvC,CAAC;AAED,mFAAmF;AACnF,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,GAAW;IACvC,IAAI,OAAO,UAAU,CAAC,KAAK,KAAK,UAAU;QAAE,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC;IACxE,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,8BAA8B,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;IAChG,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,cAAc,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IACzD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAC9B,OAAO,IAAI;SACR,IAAI,EAAE;SACN,KAAK,CAAC,IAAI,CAAC;SACX,MAAM,CAAC,OAAO,CAAC;SACf,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAA4B,CAAC,CAAC;AAC1D,CAAC"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Decision capture — the KAIRO-style "what did each agent decide, and why".
|
|
3
|
+
*
|
|
4
|
+
* Every substantial agent turn contains deliberate choices (a tech pick, an
|
|
5
|
+
* approach, a fix). This extracts them into structured AgentDecisions, through
|
|
6
|
+
* whichever extractor this machine actually has, in descending order of how much
|
|
7
|
+
* it can be trusted to judge its own certainty:
|
|
8
|
+
*
|
|
9
|
+
* "llm" the Anthropic API, when ANTHROPIC_API_KEY is set;
|
|
10
|
+
* "cli" a signed-in local agent CLI driven headlessly — `agy --print`
|
|
11
|
+
* (Antigravity, cheap Gemini model) or `claude -p`. Same trick
|
|
12
|
+
* observability/triage.ts uses to get real prose with no API key;
|
|
13
|
+
* "heuristic" a regex over the prose, when there is no model at all.
|
|
14
|
+
*
|
|
15
|
+
* That order is also why `confidence` is OPTIONAL. A model reading the turn can
|
|
16
|
+
* say how sure the agent sounded; a regex matching "I'll use X because Y"
|
|
17
|
+
* cannot, and the constants it used to stamp (70/75/78/80) were rendered to
|
|
18
|
+
* users as a measured percentage with a progress bar and averaged into a fleet
|
|
19
|
+
* "Avg confidence" tile. A heuristic decision now carries no confidence at all,
|
|
20
|
+
* and `source` says how it was extracted, so nothing downstream has to guess
|
|
21
|
+
* whether a number was measured or invented.
|
|
22
|
+
*
|
|
23
|
+
* The result is persisted per project and surfaced in the Observatory Decision
|
|
24
|
+
* Explorer, the Timeline, and the Time-Travel Replay.
|
|
25
|
+
*/
|
|
26
|
+
export type DecisionCategory = "architecture" | "design" | "implementation" | "fix" | "refactor" | "test" | "other";
|
|
27
|
+
/** How a decision was extracted — see the module header. */
|
|
28
|
+
export type DecisionSource = "llm" | "cli" | "heuristic";
|
|
29
|
+
export interface AgentDecision {
|
|
30
|
+
id: string;
|
|
31
|
+
projectId: string;
|
|
32
|
+
chatId: string;
|
|
33
|
+
agentId: string;
|
|
34
|
+
agentRole: string;
|
|
35
|
+
timestamp: number;
|
|
36
|
+
turnIndex: number;
|
|
37
|
+
/**
|
|
38
|
+
* The telemetry trace of the turn this came out of, when telemetry minted
|
|
39
|
+
* one. Absent when export is off — a decision with no trace links to nothing,
|
|
40
|
+
* and the empty string it used to carry made every "open in the backend" a
|
|
41
|
+
* dead end that looked like a live one.
|
|
42
|
+
*/
|
|
43
|
+
traceId?: string;
|
|
44
|
+
/** The log event id of the `run_complete` this was mined from, when known. */
|
|
45
|
+
turnId?: string;
|
|
46
|
+
category: DecisionCategory;
|
|
47
|
+
title: string;
|
|
48
|
+
reasoning: string;
|
|
49
|
+
/** 0–100, from the extractor that read the turn. Absent for "heuristic". */
|
|
50
|
+
confidence?: number;
|
|
51
|
+
source: DecisionSource;
|
|
52
|
+
alternatives: string[];
|
|
53
|
+
filesCreated: string[];
|
|
54
|
+
filesModified: string[];
|
|
55
|
+
artifactNames: string[];
|
|
56
|
+
memoryKeys: string[];
|
|
57
|
+
upstreamDecisionIds: string[];
|
|
58
|
+
/**
|
|
59
|
+
* The WHOLE TURN's usage, not this decision's share of it.
|
|
60
|
+
*
|
|
61
|
+
* A turn yielding three decisions has one token count and one price; there is
|
|
62
|
+
* no honest way to split them, and the previous field names (`tokensUsed`,
|
|
63
|
+
* `costUsd`) sat on each decision as if there were — three rows each showing
|
|
64
|
+
* the full turn cost, so a $0.04 turn read as $0.12 of decisions. Named for
|
|
65
|
+
* what they are so a renderer has to say "from a turn that used X".
|
|
66
|
+
*/
|
|
67
|
+
turnTokensUsed: number;
|
|
68
|
+
turnCostUsd: number;
|
|
69
|
+
durationMs: number;
|
|
70
|
+
}
|
|
71
|
+
export interface DecisionStats {
|
|
72
|
+
total: number;
|
|
73
|
+
byAgent: Record<string, number>;
|
|
74
|
+
byCategory: Record<string, number>;
|
|
75
|
+
/**
|
|
76
|
+
* Averaged over the decisions that actually HAVE a confidence, and null when
|
|
77
|
+
* none do — a fleet of heuristic decisions has no measured confidence, and
|
|
78
|
+
* "0" would render as a real reading of total uncertainty.
|
|
79
|
+
*/
|
|
80
|
+
avgConfidence: number | null;
|
|
81
|
+
/** How many of `total` carried a confidence, so the average can be qualified. */
|
|
82
|
+
confidenceSamples: number;
|
|
83
|
+
/** How many decisions came from each extractor. */
|
|
84
|
+
bySource: Record<DecisionSource, number>;
|
|
85
|
+
topAlternatives: string[];
|
|
86
|
+
criticalPath: string[];
|
|
87
|
+
}
|
|
88
|
+
type RawDecision = {
|
|
89
|
+
category: DecisionCategory;
|
|
90
|
+
title: string;
|
|
91
|
+
reasoning: string;
|
|
92
|
+
/** Absent when the extractor couldn't judge it — see the module header. */
|
|
93
|
+
confidence?: number;
|
|
94
|
+
alternatives: string[];
|
|
95
|
+
filesCreated: string[];
|
|
96
|
+
filesModified: string[];
|
|
97
|
+
artifactNames: string[];
|
|
98
|
+
};
|
|
99
|
+
/** Parse the model's JSON reply (tolerating ```json fences) into RawDecisions. */
|
|
100
|
+
export declare function parseDecisionsJson(text: string): RawDecision[];
|
|
101
|
+
/**
|
|
102
|
+
* Regex fallback — pull decisions from natural phrasings ("I'll use X because Y",
|
|
103
|
+
* "Instead of X, I'll Y") when there is no model of any kind to read the turn.
|
|
104
|
+
*
|
|
105
|
+
* It emits NO confidence, deliberately. Matching a sentence shape tells you a
|
|
106
|
+
* decision was stated; it tells you nothing whatsoever about how sure the agent
|
|
107
|
+
* was, and the 75/78/80 these branches used to stamp were numbers nobody
|
|
108
|
+
* measured, shown to users as if somebody had.
|
|
109
|
+
*/
|
|
110
|
+
export declare function extractDecisionsRegex(text: string): RawDecision[];
|
|
111
|
+
/**
|
|
112
|
+
* Run a prompt through a local agent CLI and hand back its raw stdout.
|
|
113
|
+
* Null means "this CLI isn't here, or it gave us nothing".
|
|
114
|
+
*/
|
|
115
|
+
export type CliExtractor = (prompt: string) => Promise<string | null>;
|
|
116
|
+
/**
|
|
117
|
+
* The default CLI extractor: `agy --print` if Antigravity is installed, else
|
|
118
|
+
* `claude -p`. agy is preferred because a turn handed to it runs on Gemini
|
|
119
|
+
* rather than spending the orchestrator's Claude budget — the same reason the
|
|
120
|
+
* antigravity-cli adapter exists.
|
|
121
|
+
*
|
|
122
|
+
* Returns null when neither CLI is present, which is what demotes extraction to
|
|
123
|
+
* the regex (and to no confidence at all).
|
|
124
|
+
*/
|
|
125
|
+
export declare const defaultCliExtractor: CliExtractor;
|
|
126
|
+
/**
|
|
127
|
+
* Pull the completion out of whatever a CLI printed: the `.result` of claude's
|
|
128
|
+
* JSON wrapper, or the raw text agy prints. Kept separate from
|
|
129
|
+
* `parseDecisionsJson` because that one is looking for the decisions document,
|
|
130
|
+
* and one of these two CLIs wraps it in another one.
|
|
131
|
+
*/
|
|
132
|
+
export declare function unwrapCliOutput(raw: string | null): string;
|
|
133
|
+
export interface ExtractOpts {
|
|
134
|
+
agentId: string;
|
|
135
|
+
agentRole: string;
|
|
136
|
+
projectId: string;
|
|
137
|
+
chatId: string;
|
|
138
|
+
turnIndex: number;
|
|
139
|
+
/** The turn's telemetry trace, when telemetry minted one. Omit when it didn't. */
|
|
140
|
+
traceId?: string;
|
|
141
|
+
/** The `run_complete` log event this turn is, when the caller knows it. */
|
|
142
|
+
turnId?: string;
|
|
143
|
+
turnText: string;
|
|
144
|
+
/** The WHOLE turn's usage — see AgentDecision#turnTokensUsed. */
|
|
145
|
+
turnTokensUsed: number;
|
|
146
|
+
turnCostUsd: number;
|
|
147
|
+
durationMs: number;
|
|
148
|
+
filesChanged: string[];
|
|
149
|
+
anthropicApiKey?: string;
|
|
150
|
+
/** Overridable so a caller (or a test) can drive the CLI path without a CLI. */
|
|
151
|
+
cliExtractor?: CliExtractor;
|
|
152
|
+
}
|
|
153
|
+
/** Extract structured decisions from one completed turn. */
|
|
154
|
+
export declare function extractDecisions(opts: ExtractOpts): Promise<AgentDecision[]>;
|
|
155
|
+
/**
|
|
156
|
+
* Read one decision back out of the persisted store, in today's shape.
|
|
157
|
+
*
|
|
158
|
+
* Records written before `source` existed are the problem this handles. Every
|
|
159
|
+
* one of them carries a confidence, and on a machine with no ANTHROPIC_API_KEY
|
|
160
|
+
* — which is the machine most of them were written on — that number came from
|
|
161
|
+
* the regex's 70/75/78/80 constants. It is not distinguishable from a measured
|
|
162
|
+
* one, and a number you cannot tell apart from an invented number must not be
|
|
163
|
+
* rendered as a measurement. So a record with no `source` is read as heuristic
|
|
164
|
+
* and reports no confidence.
|
|
165
|
+
*
|
|
166
|
+
* A projection, not a migration: the file on disk is untouched, and a record
|
|
167
|
+
* written from here on carries its real source and is passed through as-is.
|
|
168
|
+
* The old turn-total names are mapped across for the same reason.
|
|
169
|
+
*/
|
|
170
|
+
export declare function normalizeStoredDecision(raw: AgentDecision & {
|
|
171
|
+
tokensUsed?: number;
|
|
172
|
+
costUsd?: number;
|
|
173
|
+
}): AgentDecision;
|
|
174
|
+
/** Roll up decisions for the Explorer header + KAIRO metrics. */
|
|
175
|
+
export declare function decisionStats(decisions: AgentDecision[]): DecisionStats;
|
|
176
|
+
export {};
|