agent-tempo 1.0.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/CLAUDE.md +213 -0
- package/LICENSE +21 -0
- package/README.md +289 -0
- package/assets/icon-32.png +0 -0
- package/assets/icon-512.png +0 -0
- package/assets/icon-64.png +0 -0
- package/assets/icon-dark-32.png +0 -0
- package/assets/icon-dark-64.png +0 -0
- package/assets/icon-dark.svg +9 -0
- package/assets/icon.svg +9 -0
- package/assets/logo-dark.svg +11 -0
- package/assets/logo-light.svg +11 -0
- package/dashboard/README.md +91 -0
- package/dashboard/dist/assets/index-CB78ToNE.css +2 -0
- package/dashboard/dist/assets/index-_5jV0Znu.js +62 -0
- package/dashboard/dist/assets/index-_5jV0Znu.js.map +1 -0
- package/dashboard/dist/index.html +21 -0
- package/dashboard/package.json +47 -0
- package/dist/activities/hard-terminate.d.ts +32 -0
- package/dist/activities/hard-terminate.js +460 -0
- package/dist/activities/maestro.d.ts +72 -0
- package/dist/activities/maestro.js +254 -0
- package/dist/activities/outbox.d.ts +188 -0
- package/dist/activities/outbox.js +849 -0
- package/dist/activities/resolve.d.ts +64 -0
- package/dist/activities/resolve.js +129 -0
- package/dist/activities/schedule-fire.d.ts +36 -0
- package/dist/activities/schedule-fire.js +147 -0
- package/dist/adapters/base.d.ts +426 -0
- package/dist/adapters/base.js +1270 -0
- package/dist/adapters/claude-api/adapter.d.ts +168 -0
- package/dist/adapters/claude-api/adapter.js +797 -0
- package/dist/adapters/claude-api/api-error.d.ts +96 -0
- package/dist/adapters/claude-api/api-error.js +191 -0
- package/dist/adapters/claude-api/index.d.ts +16 -0
- package/dist/adapters/claude-api/index.js +21 -0
- package/dist/adapters/claude-api/mcp-bridge.d.ts +50 -0
- package/dist/adapters/claude-api/mcp-bridge.js +157 -0
- package/dist/adapters/claude-code/adapter.d.ts +133 -0
- package/dist/adapters/claude-code/adapter.js +274 -0
- package/dist/adapters/claude-code/index.d.ts +15 -0
- package/dist/adapters/claude-code/index.js +20 -0
- package/dist/adapters/claude-code-headless/adapter.d.ts +131 -0
- package/dist/adapters/claude-code-headless/adapter.js +710 -0
- package/dist/adapters/claude-code-headless/error-mapper.d.ts +107 -0
- package/dist/adapters/claude-code-headless/error-mapper.js +281 -0
- package/dist/adapters/claude-code-headless/index.d.ts +17 -0
- package/dist/adapters/claude-code-headless/index.js +26 -0
- package/dist/adapters/claude-code-headless/pre-flight.d.ts +51 -0
- package/dist/adapters/claude-code-headless/pre-flight.js +207 -0
- package/dist/adapters/claude-code-headless/prompt.d.ts +93 -0
- package/dist/adapters/claude-code-headless/prompt.js +79 -0
- package/dist/adapters/claude-code-headless/stream-json.d.ts +242 -0
- package/dist/adapters/claude-code-headless/stream-json.js +208 -0
- package/dist/adapters/claude-code-headless/types.d.ts +28 -0
- package/dist/adapters/claude-code-headless/types.js +36 -0
- package/dist/adapters/copilot/adapter.d.ts +100 -0
- package/dist/adapters/copilot/adapter.js +730 -0
- package/dist/adapters/copilot/index.d.ts +15 -0
- package/dist/adapters/copilot/index.js +20 -0
- package/dist/adapters/index.d.ts +42 -0
- package/dist/adapters/index.js +115 -0
- package/dist/adapters/opencode/adapter.d.ts +82 -0
- package/dist/adapters/opencode/adapter.js +710 -0
- package/dist/adapters/opencode/config.d.ts +90 -0
- package/dist/adapters/opencode/config.js +137 -0
- package/dist/adapters/opencode/helpers.d.ts +40 -0
- package/dist/adapters/opencode/helpers.js +144 -0
- package/dist/adapters/opencode/index.d.ts +12 -0
- package/dist/adapters/opencode/index.js +17 -0
- package/dist/adapters/opencode/server-bridge.d.ts +124 -0
- package/dist/adapters/opencode/server-bridge.js +216 -0
- package/dist/adapters/sdk/base.d.ts +95 -0
- package/dist/adapters/sdk/base.js +134 -0
- package/dist/adapters/sdk/system-prompt.d.ts +64 -0
- package/dist/adapters/sdk/system-prompt.js +78 -0
- package/dist/adapters/terminal-error.d.ts +27 -0
- package/dist/adapters/terminal-error.js +39 -0
- package/dist/channel.d.ts +3 -0
- package/dist/channel.js +48 -0
- package/dist/cli/commands.d.ts +245 -0
- package/dist/cli/commands.js +2438 -0
- package/dist/cli/config-command.d.ts +8 -0
- package/dist/cli/config-command.js +254 -0
- package/dist/cli/daemon-command.d.ts +57 -0
- package/dist/cli/daemon-command.js +493 -0
- package/dist/cli/daemon.d.ts +217 -0
- package/dist/cli/daemon.js +632 -0
- package/dist/cli/dashboard-command.d.ts +20 -0
- package/dist/cli/dashboard-command.js +241 -0
- package/dist/cli/dev-banner.d.ts +107 -0
- package/dist/cli/dev-banner.js +190 -0
- package/dist/cli/dev-mode-bootstrap.d.ts +29 -0
- package/dist/cli/dev-mode-bootstrap.js +36 -0
- package/dist/cli/dev-verbs.d.ts +43 -0
- package/dist/cli/dev-verbs.js +254 -0
- package/dist/cli/help-text.d.ts +1 -0
- package/dist/cli/help-text.js +158 -0
- package/dist/cli/legacy-migration.d.ts +35 -0
- package/dist/cli/legacy-migration.js +335 -0
- package/dist/cli/mcp.d.ts +8 -0
- package/dist/cli/mcp.js +63 -0
- package/dist/cli/output.d.ts +12 -0
- package/dist/cli/output.js +37 -0
- package/dist/cli/preflight.d.ts +9 -0
- package/dist/cli/preflight.js +96 -0
- package/dist/cli/removed-verbs.d.ts +9 -0
- package/dist/cli/removed-verbs.js +78 -0
- package/dist/cli/sa-preflight.d.ts +99 -0
- package/dist/cli/sa-preflight.js +183 -0
- package/dist/cli/scenarios-command.d.ts +6 -0
- package/dist/cli/scenarios-command.js +167 -0
- package/dist/cli/startup.d.ts +112 -0
- package/dist/cli/startup.js +641 -0
- package/dist/cli/upgrade-command.d.ts +5 -0
- package/dist/cli/upgrade-command.js +240 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +680 -0
- package/dist/client/core.d.ts +33 -0
- package/dist/client/core.js +1260 -0
- package/dist/client/ensure-conductor-spawned.d.ts +35 -0
- package/dist/client/ensure-conductor-spawned.js +48 -0
- package/dist/client/index.d.ts +32 -0
- package/dist/client/index.js +22 -0
- package/dist/client/interface.d.ts +461 -0
- package/dist/client/interface.js +2 -0
- package/dist/client/subscribe.d.ts +108 -0
- package/dist/client/subscribe.js +598 -0
- package/dist/client/with-spawn.d.ts +27 -0
- package/dist/client/with-spawn.js +87 -0
- package/dist/config.d.ts +323 -0
- package/dist/config.js +593 -0
- package/dist/connection.d.ts +7 -0
- package/dist/connection.js +46 -0
- package/dist/constants.d.ts +50 -0
- package/dist/constants.js +74 -0
- package/dist/copilot-bridge.d.ts +22 -0
- package/dist/copilot-bridge.js +565 -0
- package/dist/daemon-adapter-versions.d.ts +52 -0
- package/dist/daemon-adapter-versions.js +170 -0
- package/dist/daemon.d.ts +275 -0
- package/dist/daemon.js +989 -0
- package/dist/ensemble/agent-types.d.ts +23 -0
- package/dist/ensemble/agent-types.js +132 -0
- package/dist/ensemble/loader.d.ts +14 -0
- package/dist/ensemble/loader.js +140 -0
- package/dist/ensemble/saver.d.ts +49 -0
- package/dist/ensemble/saver.js +201 -0
- package/dist/ensemble/schema.d.ts +71 -0
- package/dist/ensemble/schema.js +3 -0
- package/dist/git-info.d.ts +4 -0
- package/dist/git-info.js +29 -0
- package/dist/http/aggregate.d.ts +319 -0
- package/dist/http/aggregate.js +684 -0
- package/dist/http/auth.d.ts +67 -0
- package/dist/http/auth.js +177 -0
- package/dist/http/body.d.ts +71 -0
- package/dist/http/body.js +121 -0
- package/dist/http/catalog.d.ts +67 -0
- package/dist/http/catalog.js +209 -0
- package/dist/http/cors.d.ts +42 -0
- package/dist/http/cors.js +111 -0
- package/dist/http/dashboard-pair.d.ts +94 -0
- package/dist/http/dashboard-pair.js +148 -0
- package/dist/http/dashboard.d.ts +20 -0
- package/dist/http/dashboard.js +160 -0
- package/dist/http/event-bus.d.ts +217 -0
- package/dist/http/event-bus.js +365 -0
- package/dist/http/event-id.d.ts +77 -0
- package/dist/http/event-id.js +117 -0
- package/dist/http/event-types.d.ts +348 -0
- package/dist/http/event-types.js +36 -0
- package/dist/http/fixtures/chat-stress.d.ts +8 -0
- package/dist/http/fixtures/chat-stress.js +63 -0
- package/dist/http/fixtures/conductor-leaving.d.ts +8 -0
- package/dist/http/fixtures/conductor-leaving.js +80 -0
- package/dist/http/fixtures/constants.d.ts +10 -0
- package/dist/http/fixtures/constants.js +13 -0
- package/dist/http/fixtures/eight-player-broadcast.d.ts +10 -0
- package/dist/http/fixtures/eight-player-broadcast.js +81 -0
- package/dist/http/fixtures/empty-ensemble.d.ts +6 -0
- package/dist/http/fixtures/empty-ensemble.js +26 -0
- package/dist/http/fixtures/index.d.ts +55 -0
- package/dist/http/fixtures/index.js +110 -0
- package/dist/http/fixtures/single-conductor.d.ts +7 -0
- package/dist/http/fixtures/single-conductor.js +46 -0
- package/dist/http/fixtures/sse-reconnect.d.ts +8 -0
- package/dist/http/fixtures/sse-reconnect.js +77 -0
- package/dist/http/index.d.ts +21 -0
- package/dist/http/index.js +61 -0
- package/dist/http/port-file.d.ts +22 -0
- package/dist/http/port-file.js +132 -0
- package/dist/http/responses.d.ts +27 -0
- package/dist/http/responses.js +40 -0
- package/dist/http/ring-buffer.d.ts +41 -0
- package/dist/http/ring-buffer.js +80 -0
- package/dist/http/server.d.ts +122 -0
- package/dist/http/server.js +459 -0
- package/dist/http/snapshot.d.ts +85 -0
- package/dist/http/snapshot.js +180 -0
- package/dist/http/sse-handler.d.ts +87 -0
- package/dist/http/sse-handler.js +294 -0
- package/dist/http/writes.d.ts +55 -0
- package/dist/http/writes.js +240 -0
- package/dist/palette/index.d.ts +138 -0
- package/dist/palette/index.js +221 -0
- package/dist/reconcile/orphans.d.ts +255 -0
- package/dist/reconcile/orphans.js +340 -0
- package/dist/scripts/258-spotcheck.js +303 -0
- package/dist/scripts/check-components-css-sync.js +199 -0
- package/dist/scripts/run-shard.js +121 -0
- package/dist/scripts/verify-daemon-isolation-guard.js +128 -0
- package/dist/server-tools.d.ts +87 -0
- package/dist/server-tools.js +146 -0
- package/dist/server.d.ts +2 -0
- package/dist/server.js +366 -0
- package/dist/spawn.d.ts +296 -0
- package/dist/spawn.js +747 -0
- package/dist/tools/agent-types.d.ts +2 -0
- package/dist/tools/agent-types.js +21 -0
- package/dist/tools/attachment-info.d.ts +4 -0
- package/dist/tools/attachment-info.js +48 -0
- package/dist/tools/broadcast.d.ts +4 -0
- package/dist/tools/broadcast.js +76 -0
- package/dist/tools/cancel-stage.d.ts +3 -0
- package/dist/tools/cancel-stage.js +20 -0
- package/dist/tools/clear-state.d.ts +3 -0
- package/dist/tools/clear-state.js +37 -0
- package/dist/tools/coat-check-evict.d.ts +4 -0
- package/dist/tools/coat-check-evict.js +43 -0
- package/dist/tools/coat-check-get.d.ts +4 -0
- package/dist/tools/coat-check-get.js +56 -0
- package/dist/tools/coat-check-list.d.ts +4 -0
- package/dist/tools/coat-check-list.js +60 -0
- package/dist/tools/coat-check-put.d.ts +4 -0
- package/dist/tools/coat-check-put.js +53 -0
- package/dist/tools/cue.d.ts +44 -0
- package/dist/tools/cue.js +201 -0
- package/dist/tools/destroy.d.ts +4 -0
- package/dist/tools/destroy.js +188 -0
- package/dist/tools/detach.d.ts +4 -0
- package/dist/tools/detach.js +45 -0
- package/dist/tools/encore.d.ts +4 -0
- package/dist/tools/encore.js +31 -0
- package/dist/tools/ensemble.d.ts +32 -0
- package/dist/tools/ensemble.js +198 -0
- package/dist/tools/evaluate-gate.d.ts +3 -0
- package/dist/tools/evaluate-gate.js +32 -0
- package/dist/tools/fetch-state.d.ts +13 -0
- package/dist/tools/fetch-state.js +78 -0
- package/dist/tools/gates.d.ts +3 -0
- package/dist/tools/gates.js +41 -0
- package/dist/tools/helpers.d.ts +21 -0
- package/dist/tools/helpers.js +25 -0
- package/dist/tools/hosts.d.ts +4 -0
- package/dist/tools/hosts.js +40 -0
- package/dist/tools/listen.d.ts +3 -0
- package/dist/tools/listen.js +22 -0
- package/dist/tools/load-lineup.d.ts +5 -0
- package/dist/tools/load-lineup.js +381 -0
- package/dist/tools/migrate.d.ts +4 -0
- package/dist/tools/migrate.js +60 -0
- package/dist/tools/pause-ensemble.d.ts +4 -0
- package/dist/tools/pause-ensemble.js +58 -0
- package/dist/tools/pause.d.ts +4 -0
- package/dist/tools/pause.js +36 -0
- package/dist/tools/play.d.ts +4 -0
- package/dist/tools/play.js +57 -0
- package/dist/tools/quality-gate.d.ts +3 -0
- package/dist/tools/quality-gate.js +26 -0
- package/dist/tools/recall.d.ts +3 -0
- package/dist/tools/recall.js +32 -0
- package/dist/tools/recruit.d.ts +38 -0
- package/dist/tools/recruit.js +447 -0
- package/dist/tools/release.d.ts +4 -0
- package/dist/tools/release.js +98 -0
- package/dist/tools/report.d.ts +3 -0
- package/dist/tools/report.js +29 -0
- package/dist/tools/resolve.d.ts +1 -0
- package/dist/tools/resolve.js +7 -0
- package/dist/tools/restart.d.ts +35 -0
- package/dist/tools/restart.js +131 -0
- package/dist/tools/restore.d.ts +4 -0
- package/dist/tools/restore.js +107 -0
- package/dist/tools/resume-ensemble.d.ts +4 -0
- package/dist/tools/resume-ensemble.js +79 -0
- package/dist/tools/save-lineup.d.ts +4 -0
- package/dist/tools/save-lineup.js +36 -0
- package/dist/tools/save-state.d.ts +3 -0
- package/dist/tools/save-state.js +57 -0
- package/dist/tools/schedule.d.ts +4 -0
- package/dist/tools/schedule.js +152 -0
- package/dist/tools/schedules.d.ts +4 -0
- package/dist/tools/schedules.js +54 -0
- package/dist/tools/set-ensemble-description.d.ts +4 -0
- package/dist/tools/set-ensemble-description.js +37 -0
- package/dist/tools/set-name.d.ts +4 -0
- package/dist/tools/set-name.js +45 -0
- package/dist/tools/set-part.d.ts +3 -0
- package/dist/tools/set-part.js +20 -0
- package/dist/tools/shutdown.d.ts +4 -0
- package/dist/tools/shutdown.js +54 -0
- package/dist/tools/stage.d.ts +3 -0
- package/dist/tools/stage.js +28 -0
- package/dist/tools/stages.d.ts +3 -0
- package/dist/tools/stages.js +35 -0
- package/dist/tools/stop.d.ts +4 -0
- package/dist/tools/stop.js +29 -0
- package/dist/tools/unschedule.d.ts +4 -0
- package/dist/tools/unschedule.js +35 -0
- package/dist/tools/who-am-i.d.ts +3 -0
- package/dist/tools/who-am-i.js +34 -0
- package/dist/tools/worktree.d.ts +4 -0
- package/dist/tools/worktree.js +181 -0
- package/dist/tui/App.d.ts +85 -0
- package/dist/tui/App.js +1791 -0
- package/dist/tui/bootstrap-types.d.ts +46 -0
- package/dist/tui/bootstrap-types.js +7 -0
- package/dist/tui/client.d.ts +6 -0
- package/dist/tui/client.js +9 -0
- package/dist/tui/commands.d.ts +71 -0
- package/dist/tui/commands.js +1375 -0
- package/dist/tui/components/ActivityLog.d.ts +16 -0
- package/dist/tui/components/ActivityLog.js +36 -0
- package/dist/tui/components/ChatView.d.ts +35 -0
- package/dist/tui/components/ChatView.js +54 -0
- package/dist/tui/components/CommandOverlay.d.ts +15 -0
- package/dist/tui/components/CommandOverlay.js +34 -0
- package/dist/tui/components/CommandPalette.d.ts +21 -0
- package/dist/tui/components/CommandPalette.js +67 -0
- package/dist/tui/components/ConductorChat.d.ts +16 -0
- package/dist/tui/components/ConductorChat.js +32 -0
- package/dist/tui/components/ConversationStream.d.ts +114 -0
- package/dist/tui/components/ConversationStream.js +307 -0
- package/dist/tui/components/CreateEnsembleWizard.d.ts +19 -0
- package/dist/tui/components/CreateEnsembleWizard.js +223 -0
- package/dist/tui/components/DestroyConfirmModal.d.ts +17 -0
- package/dist/tui/components/DestroyConfirmModal.js +62 -0
- package/dist/tui/components/EnsembleListView.d.ts +14 -0
- package/dist/tui/components/EnsembleListView.js +32 -0
- package/dist/tui/components/EnsemblePanel.d.ts +12 -0
- package/dist/tui/components/EnsemblePanel.js +40 -0
- package/dist/tui/components/ErrorView.d.ts +31 -0
- package/dist/tui/components/ErrorView.js +129 -0
- package/dist/tui/components/HomeView.d.ts +54 -0
- package/dist/tui/components/HomeView.js +306 -0
- package/dist/tui/components/InputBar.d.ts +13 -0
- package/dist/tui/components/InputBar.js +58 -0
- package/dist/tui/components/LoadLineupModal.d.ts +18 -0
- package/dist/tui/components/LoadLineupModal.js +79 -0
- package/dist/tui/components/MainView.d.ts +21 -0
- package/dist/tui/components/MainView.js +107 -0
- package/dist/tui/components/NewEnsembleModal.d.ts +9 -0
- package/dist/tui/components/NewEnsembleModal.js +73 -0
- package/dist/tui/components/Picker.d.ts +23 -0
- package/dist/tui/components/Picker.js +70 -0
- package/dist/tui/components/PlayerDetailView.d.ts +26 -0
- package/dist/tui/components/PlayerDetailView.js +118 -0
- package/dist/tui/components/PromptArea.d.ts +50 -0
- package/dist/tui/components/PromptArea.js +303 -0
- package/dist/tui/components/RecruitWizard.d.ts +17 -0
- package/dist/tui/components/RecruitWizard.js +221 -0
- package/dist/tui/components/RestoreConfirmModal.d.ts +18 -0
- package/dist/tui/components/RestoreConfirmModal.js +71 -0
- package/dist/tui/components/ScheduleOverlay.d.ts +13 -0
- package/dist/tui/components/ScheduleOverlay.js +113 -0
- package/dist/tui/components/ScheduleWizard.d.ts +19 -0
- package/dist/tui/components/ScheduleWizard.js +259 -0
- package/dist/tui/components/Splash.d.ts +23 -0
- package/dist/tui/components/Splash.js +221 -0
- package/dist/tui/components/StatusBar.d.ts +48 -0
- package/dist/tui/components/StatusBar.js +128 -0
- package/dist/tui/components/StatusOverlay.d.ts +15 -0
- package/dist/tui/components/StatusOverlay.js +76 -0
- package/dist/tui/components/TitleBar.d.ts +10 -0
- package/dist/tui/components/TitleBar.js +21 -0
- package/dist/tui/components/TopBar.d.ts +12 -0
- package/dist/tui/components/TopBar.js +15 -0
- package/dist/tui/core-api.d.ts +26 -0
- package/dist/tui/core-api.js +67 -0
- package/dist/tui/hooks/useEnsembleDiscovery.d.ts +3 -0
- package/dist/tui/hooks/useEnsembleDiscovery.js +30 -0
- package/dist/tui/hooks/useMaestroPoller.d.ts +3 -0
- package/dist/tui/hooks/useMaestroPoller.js +36 -0
- package/dist/tui/hooks/useSendCommand.d.ts +7 -0
- package/dist/tui/hooks/useSendCommand.js +29 -0
- package/dist/tui/index.d.ts +15 -0
- package/dist/tui/index.js +156 -0
- package/dist/tui/ink-context.d.ts +18 -0
- package/dist/tui/ink-context.js +59 -0
- package/dist/tui/ink-loader.d.ts +26 -0
- package/dist/tui/ink-loader.js +42 -0
- package/dist/tui/removed-commands.d.ts +9 -0
- package/dist/tui/removed-commands.js +22 -0
- package/dist/tui/sse-handler.d.ts +52 -0
- package/dist/tui/sse-handler.js +157 -0
- package/dist/tui/store.d.ts +598 -0
- package/dist/tui/store.js +753 -0
- package/dist/tui/utils/format.d.ts +56 -0
- package/dist/tui/utils/format.js +155 -0
- package/dist/tui/utils/fullscreen.d.ts +23 -0
- package/dist/tui/utils/fullscreen.js +71 -0
- package/dist/tui/utils/history.d.ts +10 -0
- package/dist/tui/utils/history.js +85 -0
- package/dist/tui/utils/platform.d.ts +45 -0
- package/dist/tui/utils/platform.js +258 -0
- package/dist/tui/utils/theme.d.ts +21 -0
- package/dist/tui/utils/theme.js +24 -0
- package/dist/types.d.ts +1020 -0
- package/dist/types.js +39 -0
- package/dist/utils/attachment-format.d.ts +22 -0
- package/dist/utils/attachment-format.js +32 -0
- package/dist/utils/default-part.d.ts +43 -0
- package/dist/utils/default-part.js +104 -0
- package/dist/utils/duration.d.ts +30 -0
- package/dist/utils/duration.js +69 -0
- package/dist/utils/ensemble-ops.d.ts +61 -0
- package/dist/utils/ensemble-ops.js +77 -0
- package/dist/utils/format-hosts.d.ts +21 -0
- package/dist/utils/format-hosts.js +73 -0
- package/dist/utils/hosts.d.ts +113 -0
- package/dist/utils/hosts.js +265 -0
- package/dist/utils/parent-death-watchdog.d.ts +1 -0
- package/dist/utils/parent-death-watchdog.js +47 -0
- package/dist/utils/query-timeout.d.ts +103 -0
- package/dist/utils/query-timeout.js +113 -0
- package/dist/utils/recall-format.d.ts +78 -0
- package/dist/utils/recall-format.js +105 -0
- package/dist/utils/restore-format.d.ts +49 -0
- package/dist/utils/restore-format.js +91 -0
- package/dist/utils/safe-path.d.ts +10 -0
- package/dist/utils/safe-path.js +43 -0
- package/dist/utils/sdk-probe.d.ts +9 -0
- package/dist/utils/sdk-probe.js +45 -0
- package/dist/utils/search-attributes.d.ts +76 -0
- package/dist/utils/search-attributes.js +86 -0
- package/dist/utils/validation.d.ts +113 -0
- package/dist/utils/validation.js +163 -0
- package/dist/utils/visibility-deadline.d.ts +186 -0
- package/dist/utils/visibility-deadline.js +158 -0
- package/dist/utils/worktree.d.ts +103 -0
- package/dist/utils/worktree.js +327 -0
- package/dist/worker.d.ts +14 -0
- package/dist/worker.js +146 -0
- package/dist/workflows/attachment-math.d.ts +56 -0
- package/dist/workflows/attachment-math.js +47 -0
- package/dist/workflows/index.d.ts +3 -0
- package/dist/workflows/index.js +11 -0
- package/dist/workflows/maestro-signals.d.ts +217 -0
- package/dist/workflows/maestro-signals.js +155 -0
- package/dist/workflows/maestro.d.ts +3 -0
- package/dist/workflows/maestro.js +812 -0
- package/dist/workflows/scheduler-signals.d.ts +10 -0
- package/dist/workflows/scheduler-signals.js +14 -0
- package/dist/workflows/scheduler.d.ts +17 -0
- package/dist/workflows/scheduler.js +143 -0
- package/dist/workflows/session.d.ts +2 -0
- package/dist/workflows/session.js +1638 -0
- package/dist/workflows/signals.d.ts +297 -0
- package/dist/workflows/signals.js +239 -0
- package/examples/agents/tempo-composer.md +56 -0
- package/examples/agents/tempo-conductor.md +117 -0
- package/examples/agents/tempo-critic.md +73 -0
- package/examples/agents/tempo-improv.md +74 -0
- package/examples/agents/tempo-liner.md +75 -0
- package/examples/agents/tempo-roadie.md +61 -0
- package/examples/agents/tempo-soloist.md +71 -0
- package/examples/agents/tempo-tuner.md +94 -0
- package/examples/ensembles/tempo-big-band.yaml +146 -0
- package/examples/ensembles/tempo-dev-team.yaml +58 -0
- package/examples/ensembles/tempo-headless-jam.yaml +77 -0
- package/examples/ensembles/tempo-jam-session.yaml +41 -0
- package/examples/ensembles/tempo-mock-jam.yaml +79 -0
- package/examples/ensembles/tempo-review-squad.yaml +32 -0
- package/package.json +172 -0
- package/packaging/launchd/com.agent.tempo.plist +46 -0
- package/packaging/systemd/agent-tempo.service +32 -0
- package/packaging/windows/install-task.ps1 +71 -0
- package/scenarios/conductor-recruit-mock.yaml +33 -0
- package/scenarios/echo-roundtrip.yaml +15 -0
- package/scenarios/multi-player-handoff.yaml +38 -0
- package/scenarios/recruit-cascade.yaml +38 -0
- package/scenarios/two-player-conversation.yaml +33 -0
- package/workflow-bundle.js +14146 -0
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fixed-capacity FIFO ring buffer for SSE replay (SSE-PROTOCOL.md §7.1).
|
|
3
|
+
*
|
|
4
|
+
* Holds at most `capacity` items. Past capacity, `push` evicts the
|
|
5
|
+
* oldest. Items are stored alongside a strictly-monotonic `seq`
|
|
6
|
+
* (provided by the caller, sourced from {@link SeqAllocator}) so
|
|
7
|
+
* replay can address ranges without scanning.
|
|
8
|
+
*
|
|
9
|
+
* **Default capacity**: 256 events per ensemble (§7.1). Power of two,
|
|
10
|
+
* ≤ 128 KiB worst case at ~500 B/event. Larger sizes don't materially
|
|
11
|
+
* widen the common-case reconnect window once §6 coalescing kicks in.
|
|
12
|
+
*/
|
|
13
|
+
/** Default per-ensemble buffer size — locked in by §7.1. */
|
|
14
|
+
export declare const RING_BUFFER_CAPACITY = 256;
|
|
15
|
+
export interface BufferedEvent<T> {
|
|
16
|
+
/** Strictly-monotonic seq value matching the wire `<bootEpoch>:<seq>`. */
|
|
17
|
+
seq: number;
|
|
18
|
+
payload: T;
|
|
19
|
+
}
|
|
20
|
+
export interface RingBuffer<T> {
|
|
21
|
+
/** Number of items currently held. */
|
|
22
|
+
readonly size: number;
|
|
23
|
+
/** Configured maximum size. */
|
|
24
|
+
readonly capacity: number;
|
|
25
|
+
/** `seq` of the oldest item, or `null` when empty. Monotone-increasing across the buffer's lifetime as evictions occur. */
|
|
26
|
+
readonly oldestSeq: number | null;
|
|
27
|
+
/** `seq` of the newest item, or `null` when empty. */
|
|
28
|
+
readonly newestSeq: number | null;
|
|
29
|
+
/** Append a new item. Evicts the oldest when at capacity. Throws on a non-monotonic seq (ring assumes the caller pulls from a SeqAllocator). */
|
|
30
|
+
push(item: BufferedEvent<T>): void;
|
|
31
|
+
/** Return every item with `seq >= fromSeq`, in original order. Empty array if none qualify. */
|
|
32
|
+
sliceFrom(fromSeq: number): BufferedEvent<T>[];
|
|
33
|
+
/** Snapshot of all items in order — escape hatch for tests + diagnostics. */
|
|
34
|
+
toArray(): BufferedEvent<T>[];
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Build a ring buffer of the given capacity. Implementation uses a
|
|
38
|
+
* cyclic array — push is O(1), `sliceFrom` is O(n) where n is the
|
|
39
|
+
* number of returned items.
|
|
40
|
+
*/
|
|
41
|
+
export declare function createRingBuffer<T>(capacity?: number): RingBuffer<T>;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Fixed-capacity FIFO ring buffer for SSE replay (SSE-PROTOCOL.md §7.1).
|
|
4
|
+
*
|
|
5
|
+
* Holds at most `capacity` items. Past capacity, `push` evicts the
|
|
6
|
+
* oldest. Items are stored alongside a strictly-monotonic `seq`
|
|
7
|
+
* (provided by the caller, sourced from {@link SeqAllocator}) so
|
|
8
|
+
* replay can address ranges without scanning.
|
|
9
|
+
*
|
|
10
|
+
* **Default capacity**: 256 events per ensemble (§7.1). Power of two,
|
|
11
|
+
* ≤ 128 KiB worst case at ~500 B/event. Larger sizes don't materially
|
|
12
|
+
* widen the common-case reconnect window once §6 coalescing kicks in.
|
|
13
|
+
*/
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.RING_BUFFER_CAPACITY = void 0;
|
|
16
|
+
exports.createRingBuffer = createRingBuffer;
|
|
17
|
+
/** Default per-ensemble buffer size — locked in by §7.1. */
|
|
18
|
+
exports.RING_BUFFER_CAPACITY = 256;
|
|
19
|
+
/**
|
|
20
|
+
* Build a ring buffer of the given capacity. Implementation uses a
|
|
21
|
+
* cyclic array — push is O(1), `sliceFrom` is O(n) where n is the
|
|
22
|
+
* number of returned items.
|
|
23
|
+
*/
|
|
24
|
+
function createRingBuffer(capacity = exports.RING_BUFFER_CAPACITY) {
|
|
25
|
+
if (!Number.isInteger(capacity) || capacity < 1) {
|
|
26
|
+
throw new Error(`createRingBuffer: capacity must be a positive integer, got ${capacity}`);
|
|
27
|
+
}
|
|
28
|
+
const slots = new Array(capacity);
|
|
29
|
+
let head = 0; // index where the next push lands
|
|
30
|
+
let count = 0;
|
|
31
|
+
let lastSeq = null;
|
|
32
|
+
return {
|
|
33
|
+
get size() { return count; },
|
|
34
|
+
get capacity() { return capacity; },
|
|
35
|
+
get oldestSeq() {
|
|
36
|
+
if (count === 0)
|
|
37
|
+
return null;
|
|
38
|
+
const idx = (head - count + capacity) % capacity;
|
|
39
|
+
return slots[idx].seq;
|
|
40
|
+
},
|
|
41
|
+
get newestSeq() {
|
|
42
|
+
if (count === 0)
|
|
43
|
+
return null;
|
|
44
|
+
const idx = (head - 1 + capacity) % capacity;
|
|
45
|
+
return slots[idx].seq;
|
|
46
|
+
},
|
|
47
|
+
push(item) {
|
|
48
|
+
if (lastSeq !== null && item.seq <= lastSeq) {
|
|
49
|
+
throw new Error(`RingBuffer.push: non-monotonic seq ${item.seq} (last was ${lastSeq})`);
|
|
50
|
+
}
|
|
51
|
+
slots[head] = item;
|
|
52
|
+
head = (head + 1) % capacity;
|
|
53
|
+
if (count < capacity)
|
|
54
|
+
count++;
|
|
55
|
+
lastSeq = item.seq;
|
|
56
|
+
},
|
|
57
|
+
sliceFrom(fromSeq) {
|
|
58
|
+
const out = [];
|
|
59
|
+
if (count === 0)
|
|
60
|
+
return out;
|
|
61
|
+
const startIdx = (head - count + capacity) % capacity;
|
|
62
|
+
for (let i = 0; i < count; i++) {
|
|
63
|
+
const slot = slots[(startIdx + i) % capacity];
|
|
64
|
+
if (slot.seq >= fromSeq)
|
|
65
|
+
out.push(slot);
|
|
66
|
+
}
|
|
67
|
+
return out;
|
|
68
|
+
},
|
|
69
|
+
toArray() {
|
|
70
|
+
const out = [];
|
|
71
|
+
if (count === 0)
|
|
72
|
+
return out;
|
|
73
|
+
const startIdx = (head - count + capacity) % capacity;
|
|
74
|
+
for (let i = 0; i < count; i++) {
|
|
75
|
+
out.push(slots[(startIdx + i) % capacity]);
|
|
76
|
+
}
|
|
77
|
+
return out;
|
|
78
|
+
},
|
|
79
|
+
};
|
|
80
|
+
}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Daemon HTTP server — PR-1 of #94/#95.
|
|
3
|
+
*
|
|
4
|
+
* Hosts the read-only snapshot endpoints (`/v1/health`, `/v1/ensembles`,
|
|
5
|
+
* `/v1/state/:ensemble`, `/v1/hosts`) defined in `docs/SSE-PROTOCOL.md`.
|
|
6
|
+
* The SSE streaming endpoints (`/v1/events*`) are PR-2.
|
|
7
|
+
*
|
|
8
|
+
* Boot lifecycle:
|
|
9
|
+
* 1. Caller passes a {@link TempoClient}, namespace, and version to
|
|
10
|
+
* {@link startHttpServer}.
|
|
11
|
+
* 2. Server binds to `127.0.0.1:8473` in production / `:8474` in dev mode
|
|
12
|
+
* (defaults overridable via `AGENT_TEMPO_HTTP_BIND` /
|
|
13
|
+
* `AGENT_TEMPO_DAEMON_PORT`; dev profile per ADR 0014 §5.1).
|
|
14
|
+
* 3. The bound port is written atomically to `~/.agent-tempo/daemon.port`.
|
|
15
|
+
* 4. Caller `await`s {@link HttpServerHandle.close} on shutdown — drains
|
|
16
|
+
* in-flight requests, removes the port file, then resolves.
|
|
17
|
+
*/
|
|
18
|
+
import * as http from 'http';
|
|
19
|
+
import type { TempoClient } from '../client/interface';
|
|
20
|
+
import type { AggregateRunner } from './aggregate';
|
|
21
|
+
import { type CorsConfig } from './cors';
|
|
22
|
+
import { ConnectionCap } from './sse-handler';
|
|
23
|
+
/** Default bind addr per SSE-PROTOCOL.md §1. */
|
|
24
|
+
export declare const DEFAULT_BIND_ADDR = "127.0.0.1";
|
|
25
|
+
/**
|
|
26
|
+
* Default port — `t-e-m-p-o` mnemonic for prod (8473), `+1` for dev (8474).
|
|
27
|
+
* ADR 0014 §5.1 flips this with the rest of the dev profile so prod and dev
|
|
28
|
+
* daemons can coexist on the same machine without binding the same port.
|
|
29
|
+
*
|
|
30
|
+
* Evaluated at module load time. The dev daemon child process inherits
|
|
31
|
+
* `AGENT_TEMPO_DEV_MODE=1` from its parent CLI (set by the
|
|
32
|
+
* `dev-mode-bootstrap` side-effect), so by the time this module loads,
|
|
33
|
+
* `isDevMode()` already returns the correct value.
|
|
34
|
+
*/
|
|
35
|
+
export declare const DEFAULT_PORT: number;
|
|
36
|
+
export interface HttpServerOptions {
|
|
37
|
+
client: TempoClient;
|
|
38
|
+
namespace: string;
|
|
39
|
+
/**
|
|
40
|
+
* Shared task queue the daemon's workers poll. Surfaced verbatim on
|
|
41
|
+
* `GET /v1/health` so the dashboard's Settings → Connection panel
|
|
42
|
+
* reflects the runtime queue (#444).
|
|
43
|
+
*/
|
|
44
|
+
taskQueue: string;
|
|
45
|
+
version: string;
|
|
46
|
+
/** Defaults to `process.env[ENV.HTTP_BIND] || '127.0.0.1'`. */
|
|
47
|
+
bindAddr?: string;
|
|
48
|
+
/**
|
|
49
|
+
* Defaults to `Number(process.env[ENV.DAEMON_PORT]) || DEFAULT_PORT` —
|
|
50
|
+
* where {@link DEFAULT_PORT} is `8473` in production and `8474` in dev
|
|
51
|
+
* mode (ADR 0014 §5.1). `0` → ephemeral.
|
|
52
|
+
*/
|
|
53
|
+
port?: number;
|
|
54
|
+
/** Defaults to parsing `process.env[ENV.CORS_ORIGINS]`. */
|
|
55
|
+
allowedOrigins?: string[];
|
|
56
|
+
/**
|
|
57
|
+
* Override the port-file path. Tests pass an isolated temp path so they
|
|
58
|
+
* don't fight production daemons running on the same machine.
|
|
59
|
+
*/
|
|
60
|
+
portFilePath?: string;
|
|
61
|
+
/**
|
|
62
|
+
* Inject the bearer token directly. Production callers pass `undefined`
|
|
63
|
+
* so the server reads/auto-generates from `~/.agent-tempo/config.json`.
|
|
64
|
+
*/
|
|
65
|
+
httpToken?: string;
|
|
66
|
+
/**
|
|
67
|
+
* Test seam — lets unit tests stub `process.uptime`-style readings.
|
|
68
|
+
*/
|
|
69
|
+
startedAtMs?: number;
|
|
70
|
+
/**
|
|
71
|
+
* Aggregate poll loop + per-ensemble buses. When provided, the
|
|
72
|
+
* server lights up `/v1/events/:ensemble` and `/v1/events` (PR-2).
|
|
73
|
+
* When absent, those routes return `503 streaming-not-implemented`
|
|
74
|
+
* (PR-1 behavior).
|
|
75
|
+
*/
|
|
76
|
+
aggregate?: AggregateRunner;
|
|
77
|
+
/**
|
|
78
|
+
* Process-wide SSE connection cap. Defaults to
|
|
79
|
+
* `Number(process.env[ENV.SSE_MAX_CONNECTIONS]) || 100`. Set to a
|
|
80
|
+
* low value in tests to exercise the 503 path.
|
|
81
|
+
*/
|
|
82
|
+
maxSseConnections?: number;
|
|
83
|
+
}
|
|
84
|
+
export interface HttpServerHandle {
|
|
85
|
+
/** The actual port the server is listening on (after `.listen()` resolves). */
|
|
86
|
+
readonly port: number;
|
|
87
|
+
/** The actual bind address. */
|
|
88
|
+
readonly bindAddr: string;
|
|
89
|
+
/**
|
|
90
|
+
* Subscriber count — always `0` in PR-1; PR-2 wires this to the live
|
|
91
|
+
* SSE subscriber set. Exposed for the `/v1/health` payload.
|
|
92
|
+
*/
|
|
93
|
+
readonly subscriberCount: () => number;
|
|
94
|
+
/** Drain + close the listener. Removes the port file. */
|
|
95
|
+
close(): Promise<void>;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Start the HTTP server. Resolves once the listener is bound and the
|
|
99
|
+
* port file has been written.
|
|
100
|
+
*/
|
|
101
|
+
export declare function startHttpServer(opts: HttpServerOptions): Promise<HttpServerHandle>;
|
|
102
|
+
interface HandleContext {
|
|
103
|
+
client: TempoClient;
|
|
104
|
+
namespace: string;
|
|
105
|
+
taskQueue: string;
|
|
106
|
+
version: string;
|
|
107
|
+
bindAddr: string;
|
|
108
|
+
corsConfig: CorsConfig;
|
|
109
|
+
httpToken: string | null;
|
|
110
|
+
startedAt: number;
|
|
111
|
+
subscriberCount: () => number;
|
|
112
|
+
/** Present when PR-2 streaming is wired; null on PR-1-only deployments. */
|
|
113
|
+
aggregate: AggregateRunner | null;
|
|
114
|
+
/** Process-wide SSE subscriber cap (§7.3). */
|
|
115
|
+
sseConnectionCap: ConnectionCap;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Top-level request dispatcher — exported for unit tests that want to
|
|
119
|
+
* exercise the handler without spinning up a real listener.
|
|
120
|
+
*/
|
|
121
|
+
export declare function handle(req: http.IncomingMessage, res: http.ServerResponse, ctx: HandleContext): Promise<void>;
|
|
122
|
+
export {};
|