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
package/dist/channel.js
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.startMessagePoller = startMessagePoller;
|
|
4
|
+
const log = (...args) => console.error('[claude-tempo:poller]', ...args);
|
|
5
|
+
const POLL_BASE_MS = 2000;
|
|
6
|
+
const POLL_BACKOFF_FACTOR = 1.5;
|
|
7
|
+
const POLL_MAX_MS = 30000;
|
|
8
|
+
function startMessagePoller(handle, onMessages) {
|
|
9
|
+
let stopped = false;
|
|
10
|
+
let timeout = null;
|
|
11
|
+
let currentInterval = POLL_BASE_MS;
|
|
12
|
+
let consecutiveErrors = 0;
|
|
13
|
+
const poll = async () => {
|
|
14
|
+
if (stopped)
|
|
15
|
+
return;
|
|
16
|
+
try {
|
|
17
|
+
const messages = await handle.query('pendingMessages');
|
|
18
|
+
if (messages.length > 0) {
|
|
19
|
+
const ids = messages.map((m) => m.id);
|
|
20
|
+
// Deliver messages first — only mark delivered after successful notification.
|
|
21
|
+
// If onMessages throws, messages stay undelivered and retry on next poll cycle.
|
|
22
|
+
await onMessages(messages);
|
|
23
|
+
await handle.signal('markDelivered', ids);
|
|
24
|
+
}
|
|
25
|
+
// Reset backoff on successful poll
|
|
26
|
+
currentInterval = POLL_BASE_MS;
|
|
27
|
+
consecutiveErrors = 0;
|
|
28
|
+
}
|
|
29
|
+
catch (err) {
|
|
30
|
+
consecutiveErrors++;
|
|
31
|
+
// Apply exponential backoff on errors
|
|
32
|
+
currentInterval = Math.min(currentInterval * POLL_BACKOFF_FACTOR, POLL_MAX_MS);
|
|
33
|
+
log(`Poll error (attempt ${consecutiveErrors}, next in ${Math.round(currentInterval)}ms):`, err);
|
|
34
|
+
}
|
|
35
|
+
if (!stopped) {
|
|
36
|
+
timeout = setTimeout(poll, currentInterval);
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
// Start the first poll
|
|
40
|
+
timeout = setTimeout(poll, POLL_BASE_MS);
|
|
41
|
+
return () => {
|
|
42
|
+
stopped = true;
|
|
43
|
+
if (timeout) {
|
|
44
|
+
clearTimeout(timeout);
|
|
45
|
+
timeout = null;
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
}
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
import { Client, Connection } from '@temporalio/client';
|
|
2
|
+
import { Config, CliOverrides } from '../config';
|
|
3
|
+
import { AgentType, ScheduleEntry } from '../types';
|
|
4
|
+
interface StatusOpts extends CliOverrides {
|
|
5
|
+
ensemble?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function status(opts: StatusOpts): Promise<void>;
|
|
8
|
+
interface InitOpts {
|
|
9
|
+
dir: string;
|
|
10
|
+
project?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export declare function init(opts: InitOpts): Promise<void>;
|
|
13
|
+
interface ServerOpts extends CliOverrides {
|
|
14
|
+
background: boolean;
|
|
15
|
+
}
|
|
16
|
+
export declare function server(opts: ServerOpts): Promise<void>;
|
|
17
|
+
interface UpOpts extends CliOverrides {
|
|
18
|
+
ensemble: string;
|
|
19
|
+
name?: string;
|
|
20
|
+
lineup?: string;
|
|
21
|
+
agent: AgentType;
|
|
22
|
+
/**
|
|
23
|
+
* Issue #172: when true, skip the "defer conductor instructions + hold
|
|
24
|
+
* players until user's first message" behavior and use the legacy
|
|
25
|
+
* immediate-start semantics. Ignored when `--lineup` is not set.
|
|
26
|
+
*/
|
|
27
|
+
noHold?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* `--scenario <name>` (PR-3 of #340-followup, ADR 0014 §5.5). Forces
|
|
30
|
+
* every `agent: "mock"` player in the lineup into `mockMode: "scripted"`
|
|
31
|
+
* with this scenario. Bare name (resolved against shipped `scenarios/`)
|
|
32
|
+
* or absolute path. Ignored when no `--lineup` is given.
|
|
33
|
+
*
|
|
34
|
+
* Dev-mode-only — silently no-ops outside dev mode because mock players
|
|
35
|
+
* can't exist there anyway (gate 3 in recruit pre-flight).
|
|
36
|
+
*/
|
|
37
|
+
scenario?: string;
|
|
38
|
+
}
|
|
39
|
+
export declare function up(opts: UpOpts): Promise<void>;
|
|
40
|
+
/**
|
|
41
|
+
* Format a `ScheduleEntry` recurrence for the `status` display.
|
|
42
|
+
*
|
|
43
|
+
* #586 — cron entries previously rendered as `'one-shot'` because the inline
|
|
44
|
+
* formatter only checked `sched.interval`. The display formatter now mirrors
|
|
45
|
+
* the wire-type triplet (`'once' | 'interval' | 'cron'`) from
|
|
46
|
+
* `ScheduleEntry.type` so cron schedules from the lineup loader (and the
|
|
47
|
+
* MCP `load_lineup` path) read correctly in `agent-tempo status`.
|
|
48
|
+
*
|
|
49
|
+
* Exported for unit tests.
|
|
50
|
+
*/
|
|
51
|
+
export declare function formatScheduleRecurrence(sched: ScheduleEntry): string;
|
|
52
|
+
/**
|
|
53
|
+
* Convert a lineup schedule definition to a ScheduleEntry for the scheduler
|
|
54
|
+
* workflow.
|
|
55
|
+
*
|
|
56
|
+
* #586 — cron entries now produce `type: 'cron'` with `cronExpression` +
|
|
57
|
+
* `timezone` populated; previously they fell through to the default
|
|
58
|
+
* `nextFireAt = now + 60_000` with `type: 'once'`, firing once and getting
|
|
59
|
+
* garbage-collected. The cron branch mirrors the MCP-side `load_lineup` tool
|
|
60
|
+
* at `src/tools/load-lineup.ts:280-300` so both load paths agree on the wire
|
|
61
|
+
* shape submitted to the scheduler workflow.
|
|
62
|
+
*
|
|
63
|
+
* Exported for unit tests; consumed internally by `up` /
|
|
64
|
+
* `ensembleCommand` after a lineup is parsed.
|
|
65
|
+
*/
|
|
66
|
+
export declare function lineupScheduleToEntry(sched: NonNullable<import('../ensemble/schema').EnsembleLineup['schedules']>[number],
|
|
67
|
+
/** Injectable clock for deterministic tests. Defaults to `Date.now()`. */
|
|
68
|
+
now?: number): ScheduleEntry;
|
|
69
|
+
interface DownOpts extends CliOverrides {
|
|
70
|
+
removeMcp: boolean;
|
|
71
|
+
keepDaemon: boolean;
|
|
72
|
+
yes: boolean;
|
|
73
|
+
/** When true, terminate every workflow across every ensemble before
|
|
74
|
+
* stopping infra. Without it, workflows stay on the Temporal server and
|
|
75
|
+
* resume on the next `up`. */
|
|
76
|
+
destroy: boolean;
|
|
77
|
+
/**
|
|
78
|
+
* `--kill-shared-temporal` (#423): bypass the cross-profile coexistence
|
|
79
|
+
* guard and kill the shared Temporal dev server unconditionally. Without
|
|
80
|
+
* it, `down` skips the Temporal kill when the OPPOSITE profile shows any
|
|
81
|
+
* sign of life (PID file, port file) — see ADR 0014 §5.6 for the same
|
|
82
|
+
* guard `stopDaemon`'s zombie reaper applies. The flag is the explicit
|
|
83
|
+
* opt-in for the hard-reset case.
|
|
84
|
+
*/
|
|
85
|
+
killSharedTemporal: boolean;
|
|
86
|
+
dir: string;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Options for {@link stopTemporalServer} — exported for unit tests so we
|
|
90
|
+
* can inject stubs without spawning real processes or touching the
|
|
91
|
+
* developer's home dir. Production callers should pass only
|
|
92
|
+
* `killSharedTemporal` and accept the defaults.
|
|
93
|
+
*
|
|
94
|
+
* @internal
|
|
95
|
+
*/
|
|
96
|
+
export interface StopTemporalServerOpts {
|
|
97
|
+
/** When true, bypass the cross-profile coexistence guard. Maps to the
|
|
98
|
+
* `--kill-shared-temporal` CLI flag (#423). */
|
|
99
|
+
killSharedTemporal: boolean;
|
|
100
|
+
/** Cross-profile coexistence probe — defaults to {@link isOtherProfileLikelyRunning}. */
|
|
101
|
+
isOtherProfileLikelyRunning?: () => boolean;
|
|
102
|
+
/** Process exec hook — defaults to `execFileSync` with stdio ignored. */
|
|
103
|
+
exec?: (command: string, args: string[]) => void;
|
|
104
|
+
/** Platform override — defaults to `process.platform`. */
|
|
105
|
+
platform?: NodeJS.Platform;
|
|
106
|
+
}
|
|
107
|
+
/** Outcome of {@link stopTemporalServer}, surfaced so callers (and tests)
|
|
108
|
+
* can shape user-facing messages. */
|
|
109
|
+
export type StopTemporalResult = {
|
|
110
|
+
action: 'killed';
|
|
111
|
+
} | {
|
|
112
|
+
action: 'failed';
|
|
113
|
+
error: unknown;
|
|
114
|
+
} | {
|
|
115
|
+
action: 'skipped-cross-profile';
|
|
116
|
+
};
|
|
117
|
+
/**
|
|
118
|
+
* Stop the shared Temporal dev server, with the same cross-profile guard
|
|
119
|
+
* that `stopDaemon`'s zombie reaper already applies (ADR 0014 §5.6).
|
|
120
|
+
*
|
|
121
|
+
* The Temporal dev server is a single OS-wide process — `pkill -f` on
|
|
122
|
+
* POSIX and `taskkill /IM temporal.exe` on Windows kill it by name and
|
|
123
|
+
* cannot distinguish dev-profile vs prod-profile ownership. So when
|
|
124
|
+
* `agent-tempo --dev down` runs while the prod profile is also active,
|
|
125
|
+
* the unconditional kill takes down the prod profile's Temporal as
|
|
126
|
+
* collateral damage. This is exactly the bug `isOtherProfileLikelyRunning`
|
|
127
|
+
* was introduced to prevent on the daemon side; the missing piece was
|
|
128
|
+
* `down`'s own Temporal kill (#423).
|
|
129
|
+
*
|
|
130
|
+
* `--kill-shared-temporal` (passed as `killSharedTemporal: true`) is the
|
|
131
|
+
* explicit opt-in for the hard-reset case where the user accepts cross-
|
|
132
|
+
* profile collateral damage.
|
|
133
|
+
*/
|
|
134
|
+
export declare function stopTemporalServer(opts: StopTemporalServerOpts): StopTemporalResult;
|
|
135
|
+
export declare function down(opts: DownOpts): Promise<void>;
|
|
136
|
+
interface AgentTypesCommandOpts {
|
|
137
|
+
subcommand?: string;
|
|
138
|
+
name?: string;
|
|
139
|
+
}
|
|
140
|
+
export declare function agentTypesCommand(opts: AgentTypesCommandOpts): Promise<void>;
|
|
141
|
+
interface BroadcastOpts extends CliOverrides {
|
|
142
|
+
ensemble?: string;
|
|
143
|
+
message: string;
|
|
144
|
+
type?: string;
|
|
145
|
+
includeStale?: boolean;
|
|
146
|
+
}
|
|
147
|
+
export declare function broadcast(opts: BroadcastOpts): Promise<void>;
|
|
148
|
+
interface VerbOpts extends CliOverrides {
|
|
149
|
+
name: string;
|
|
150
|
+
ensemble?: string;
|
|
151
|
+
}
|
|
152
|
+
interface DestroyCliOpts extends CliOverrides {
|
|
153
|
+
ensemble: string;
|
|
154
|
+
yes: boolean;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Shared connection + client helper for verb commands. Exported so the
|
|
158
|
+
* dev-mode verb dispatcher (`./dev-verbs.ts`) can use the same connection
|
|
159
|
+
* idiom — single source of truth for the 3-second timeout + error-exit
|
|
160
|
+
* behavior across all CLI verbs.
|
|
161
|
+
*/
|
|
162
|
+
export declare function verbClient(opts: CliOverrides): Promise<{
|
|
163
|
+
config: Config;
|
|
164
|
+
connection: Connection;
|
|
165
|
+
client: Client;
|
|
166
|
+
}>;
|
|
167
|
+
/**
|
|
168
|
+
* `agent-tempo destroy <ensemble> [-y]` — terminate every workflow in an
|
|
169
|
+
* ensemble (#288). Prompts with the ensemble name and workflow count unless
|
|
170
|
+
* `-y` is passed. The per-player destroy path lives in the TUI (`/destroy
|
|
171
|
+
* --player`).
|
|
172
|
+
*/
|
|
173
|
+
export declare function destroy(opts: DestroyCliOpts): Promise<void>;
|
|
174
|
+
export declare function attachmentInfo(opts: VerbOpts): Promise<void>;
|
|
175
|
+
export interface HostsCliOpts extends CliOverrides {
|
|
176
|
+
ensemble?: string;
|
|
177
|
+
/** Include stale hosts (those not seen in the last minute). CLI default: false. */
|
|
178
|
+
all?: boolean;
|
|
179
|
+
/** Emit raw `HostInfo[]` JSON instead of the formatted table. */
|
|
180
|
+
json?: boolean;
|
|
181
|
+
}
|
|
182
|
+
export declare function hosts(opts: HostsCliOpts): Promise<void>;
|
|
183
|
+
export interface RefreshHostProfileCliOpts extends CliOverrides {
|
|
184
|
+
ensemble?: string;
|
|
185
|
+
/** Max wait for the new profile to appear in the maestro `hostProfiles` map. Default 10s. */
|
|
186
|
+
confirmTimeoutMs?: number;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* #274 AC5d (M12) — manual re-signal of this host's profile to the
|
|
190
|
+
* global maestro. The daemon otherwise only re-signals on boot; this
|
|
191
|
+
* subcommand re-computes the profile + signals fresh.
|
|
192
|
+
*
|
|
193
|
+
* Exit semantics (per my implementation-time call to the conductor,
|
|
194
|
+
* approved): await ensureGlobalMaestro → signal → short poll on
|
|
195
|
+
* `hostProfiles()` to confirm the new version is visible → exit 0.
|
|
196
|
+
* Exits nonzero if the poll timeout elapses without confirmation.
|
|
197
|
+
*/
|
|
198
|
+
export declare function refreshHostProfile(opts: RefreshHostProfileCliOpts): Promise<void>;
|
|
199
|
+
export interface RecallCliOpts extends VerbOpts {
|
|
200
|
+
limit?: number;
|
|
201
|
+
offset?: number;
|
|
202
|
+
previewLength?: number;
|
|
203
|
+
since?: string;
|
|
204
|
+
from?: string;
|
|
205
|
+
includeSent?: boolean;
|
|
206
|
+
/** Emit raw JSON `{ received, sent, total, shown, hasMore, text }` instead of the formatted timeline. */
|
|
207
|
+
json?: boolean;
|
|
208
|
+
}
|
|
209
|
+
export declare function recall(opts: RecallCliOpts): Promise<void>;
|
|
210
|
+
interface RestoreCliOpts extends CliOverrides {
|
|
211
|
+
/** Required for the default local-restore flow; ignored when `allHosts` is set. */
|
|
212
|
+
ensemble?: string;
|
|
213
|
+
/**
|
|
214
|
+
* #151: cluster-view listing mode. Lists cross-host orphans the local
|
|
215
|
+
* daemon's `agent-tempo restore <ensemble>` would otherwise skip
|
|
216
|
+
* silently. Read-only: never enqueues a `restart`. Recovery still
|
|
217
|
+
* happens through the remote daemon's `reconcileOnBoot` when it
|
|
218
|
+
* returns, or a deliberate TUI `/migrate <player> <host> --force`.
|
|
219
|
+
*/
|
|
220
|
+
allHosts?: boolean;
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* `agent-tempo restore <ensemble>` — delegate to {@link TempoClient.restore},
|
|
224
|
+
* which reattaches orphans AND unpauses maestro + scheduler (#298 — the
|
|
225
|
+
* direct-to-`restoreOrphansOnce` path left the ensemble paused after a
|
|
226
|
+
* `shutdown → restore` roundtrip). The TUI home view (#290) is the picker
|
|
227
|
+
* surface; the CLI is the scriptable bulk operation, one ensemble at a time.
|
|
228
|
+
*
|
|
229
|
+
* `--all-hosts` (#151): switches to cluster-view readonly listing — the
|
|
230
|
+
* positional `<ensemble>` becomes optional (when set, narrows the listing;
|
|
231
|
+
* when omitted, lists across every ensemble). Never enqueues a restart.
|
|
232
|
+
* See `formatCrossHostOrphans` for the output shape.
|
|
233
|
+
*/
|
|
234
|
+
export declare function restore(opts: RestoreCliOpts): Promise<void>;
|
|
235
|
+
interface EnsembleCommandOpts extends CliOverrides {
|
|
236
|
+
subcommand?: string;
|
|
237
|
+
name?: string;
|
|
238
|
+
}
|
|
239
|
+
export declare function ensembleCommand(opts: EnsembleCommandOpts): Promise<void>;
|
|
240
|
+
interface ReleaseOpts extends CliOverrides {
|
|
241
|
+
ensemble: string;
|
|
242
|
+
}
|
|
243
|
+
/** Release all held sessions in an ensemble (unlock outbox, deliver initial messages). */
|
|
244
|
+
export declare function release(opts: ReleaseOpts): Promise<void>;
|
|
245
|
+
export {};
|