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.
Files changed (484) hide show
  1. package/CLAUDE.md +213 -0
  2. package/LICENSE +21 -0
  3. package/README.md +289 -0
  4. package/assets/icon-32.png +0 -0
  5. package/assets/icon-512.png +0 -0
  6. package/assets/icon-64.png +0 -0
  7. package/assets/icon-dark-32.png +0 -0
  8. package/assets/icon-dark-64.png +0 -0
  9. package/assets/icon-dark.svg +9 -0
  10. package/assets/icon.svg +9 -0
  11. package/assets/logo-dark.svg +11 -0
  12. package/assets/logo-light.svg +11 -0
  13. package/dashboard/README.md +91 -0
  14. package/dashboard/dist/assets/index-CB78ToNE.css +2 -0
  15. package/dashboard/dist/assets/index-_5jV0Znu.js +62 -0
  16. package/dashboard/dist/assets/index-_5jV0Znu.js.map +1 -0
  17. package/dashboard/dist/index.html +21 -0
  18. package/dashboard/package.json +47 -0
  19. package/dist/activities/hard-terminate.d.ts +32 -0
  20. package/dist/activities/hard-terminate.js +460 -0
  21. package/dist/activities/maestro.d.ts +72 -0
  22. package/dist/activities/maestro.js +254 -0
  23. package/dist/activities/outbox.d.ts +188 -0
  24. package/dist/activities/outbox.js +849 -0
  25. package/dist/activities/resolve.d.ts +64 -0
  26. package/dist/activities/resolve.js +129 -0
  27. package/dist/activities/schedule-fire.d.ts +36 -0
  28. package/dist/activities/schedule-fire.js +147 -0
  29. package/dist/adapters/base.d.ts +426 -0
  30. package/dist/adapters/base.js +1270 -0
  31. package/dist/adapters/claude-api/adapter.d.ts +168 -0
  32. package/dist/adapters/claude-api/adapter.js +797 -0
  33. package/dist/adapters/claude-api/api-error.d.ts +96 -0
  34. package/dist/adapters/claude-api/api-error.js +191 -0
  35. package/dist/adapters/claude-api/index.d.ts +16 -0
  36. package/dist/adapters/claude-api/index.js +21 -0
  37. package/dist/adapters/claude-api/mcp-bridge.d.ts +50 -0
  38. package/dist/adapters/claude-api/mcp-bridge.js +157 -0
  39. package/dist/adapters/claude-code/adapter.d.ts +133 -0
  40. package/dist/adapters/claude-code/adapter.js +274 -0
  41. package/dist/adapters/claude-code/index.d.ts +15 -0
  42. package/dist/adapters/claude-code/index.js +20 -0
  43. package/dist/adapters/claude-code-headless/adapter.d.ts +131 -0
  44. package/dist/adapters/claude-code-headless/adapter.js +710 -0
  45. package/dist/adapters/claude-code-headless/error-mapper.d.ts +107 -0
  46. package/dist/adapters/claude-code-headless/error-mapper.js +281 -0
  47. package/dist/adapters/claude-code-headless/index.d.ts +17 -0
  48. package/dist/adapters/claude-code-headless/index.js +26 -0
  49. package/dist/adapters/claude-code-headless/pre-flight.d.ts +51 -0
  50. package/dist/adapters/claude-code-headless/pre-flight.js +207 -0
  51. package/dist/adapters/claude-code-headless/prompt.d.ts +93 -0
  52. package/dist/adapters/claude-code-headless/prompt.js +79 -0
  53. package/dist/adapters/claude-code-headless/stream-json.d.ts +242 -0
  54. package/dist/adapters/claude-code-headless/stream-json.js +208 -0
  55. package/dist/adapters/claude-code-headless/types.d.ts +28 -0
  56. package/dist/adapters/claude-code-headless/types.js +36 -0
  57. package/dist/adapters/copilot/adapter.d.ts +100 -0
  58. package/dist/adapters/copilot/adapter.js +730 -0
  59. package/dist/adapters/copilot/index.d.ts +15 -0
  60. package/dist/adapters/copilot/index.js +20 -0
  61. package/dist/adapters/index.d.ts +42 -0
  62. package/dist/adapters/index.js +115 -0
  63. package/dist/adapters/opencode/adapter.d.ts +82 -0
  64. package/dist/adapters/opencode/adapter.js +710 -0
  65. package/dist/adapters/opencode/config.d.ts +90 -0
  66. package/dist/adapters/opencode/config.js +137 -0
  67. package/dist/adapters/opencode/helpers.d.ts +40 -0
  68. package/dist/adapters/opencode/helpers.js +144 -0
  69. package/dist/adapters/opencode/index.d.ts +12 -0
  70. package/dist/adapters/opencode/index.js +17 -0
  71. package/dist/adapters/opencode/server-bridge.d.ts +124 -0
  72. package/dist/adapters/opencode/server-bridge.js +216 -0
  73. package/dist/adapters/sdk/base.d.ts +95 -0
  74. package/dist/adapters/sdk/base.js +134 -0
  75. package/dist/adapters/sdk/system-prompt.d.ts +64 -0
  76. package/dist/adapters/sdk/system-prompt.js +78 -0
  77. package/dist/adapters/terminal-error.d.ts +27 -0
  78. package/dist/adapters/terminal-error.js +39 -0
  79. package/dist/channel.d.ts +3 -0
  80. package/dist/channel.js +48 -0
  81. package/dist/cli/commands.d.ts +245 -0
  82. package/dist/cli/commands.js +2438 -0
  83. package/dist/cli/config-command.d.ts +8 -0
  84. package/dist/cli/config-command.js +254 -0
  85. package/dist/cli/daemon-command.d.ts +57 -0
  86. package/dist/cli/daemon-command.js +493 -0
  87. package/dist/cli/daemon.d.ts +217 -0
  88. package/dist/cli/daemon.js +632 -0
  89. package/dist/cli/dashboard-command.d.ts +20 -0
  90. package/dist/cli/dashboard-command.js +241 -0
  91. package/dist/cli/dev-banner.d.ts +107 -0
  92. package/dist/cli/dev-banner.js +190 -0
  93. package/dist/cli/dev-mode-bootstrap.d.ts +29 -0
  94. package/dist/cli/dev-mode-bootstrap.js +36 -0
  95. package/dist/cli/dev-verbs.d.ts +43 -0
  96. package/dist/cli/dev-verbs.js +254 -0
  97. package/dist/cli/help-text.d.ts +1 -0
  98. package/dist/cli/help-text.js +158 -0
  99. package/dist/cli/legacy-migration.d.ts +35 -0
  100. package/dist/cli/legacy-migration.js +335 -0
  101. package/dist/cli/mcp.d.ts +8 -0
  102. package/dist/cli/mcp.js +63 -0
  103. package/dist/cli/output.d.ts +12 -0
  104. package/dist/cli/output.js +37 -0
  105. package/dist/cli/preflight.d.ts +9 -0
  106. package/dist/cli/preflight.js +96 -0
  107. package/dist/cli/removed-verbs.d.ts +9 -0
  108. package/dist/cli/removed-verbs.js +78 -0
  109. package/dist/cli/sa-preflight.d.ts +99 -0
  110. package/dist/cli/sa-preflight.js +183 -0
  111. package/dist/cli/scenarios-command.d.ts +6 -0
  112. package/dist/cli/scenarios-command.js +167 -0
  113. package/dist/cli/startup.d.ts +112 -0
  114. package/dist/cli/startup.js +641 -0
  115. package/dist/cli/upgrade-command.d.ts +5 -0
  116. package/dist/cli/upgrade-command.js +240 -0
  117. package/dist/cli.d.ts +2 -0
  118. package/dist/cli.js +680 -0
  119. package/dist/client/core.d.ts +33 -0
  120. package/dist/client/core.js +1260 -0
  121. package/dist/client/ensure-conductor-spawned.d.ts +35 -0
  122. package/dist/client/ensure-conductor-spawned.js +48 -0
  123. package/dist/client/index.d.ts +32 -0
  124. package/dist/client/index.js +22 -0
  125. package/dist/client/interface.d.ts +461 -0
  126. package/dist/client/interface.js +2 -0
  127. package/dist/client/subscribe.d.ts +108 -0
  128. package/dist/client/subscribe.js +598 -0
  129. package/dist/client/with-spawn.d.ts +27 -0
  130. package/dist/client/with-spawn.js +87 -0
  131. package/dist/config.d.ts +323 -0
  132. package/dist/config.js +593 -0
  133. package/dist/connection.d.ts +7 -0
  134. package/dist/connection.js +46 -0
  135. package/dist/constants.d.ts +50 -0
  136. package/dist/constants.js +74 -0
  137. package/dist/copilot-bridge.d.ts +22 -0
  138. package/dist/copilot-bridge.js +565 -0
  139. package/dist/daemon-adapter-versions.d.ts +52 -0
  140. package/dist/daemon-adapter-versions.js +170 -0
  141. package/dist/daemon.d.ts +275 -0
  142. package/dist/daemon.js +989 -0
  143. package/dist/ensemble/agent-types.d.ts +23 -0
  144. package/dist/ensemble/agent-types.js +132 -0
  145. package/dist/ensemble/loader.d.ts +14 -0
  146. package/dist/ensemble/loader.js +140 -0
  147. package/dist/ensemble/saver.d.ts +49 -0
  148. package/dist/ensemble/saver.js +201 -0
  149. package/dist/ensemble/schema.d.ts +71 -0
  150. package/dist/ensemble/schema.js +3 -0
  151. package/dist/git-info.d.ts +4 -0
  152. package/dist/git-info.js +29 -0
  153. package/dist/http/aggregate.d.ts +319 -0
  154. package/dist/http/aggregate.js +684 -0
  155. package/dist/http/auth.d.ts +67 -0
  156. package/dist/http/auth.js +177 -0
  157. package/dist/http/body.d.ts +71 -0
  158. package/dist/http/body.js +121 -0
  159. package/dist/http/catalog.d.ts +67 -0
  160. package/dist/http/catalog.js +209 -0
  161. package/dist/http/cors.d.ts +42 -0
  162. package/dist/http/cors.js +111 -0
  163. package/dist/http/dashboard-pair.d.ts +94 -0
  164. package/dist/http/dashboard-pair.js +148 -0
  165. package/dist/http/dashboard.d.ts +20 -0
  166. package/dist/http/dashboard.js +160 -0
  167. package/dist/http/event-bus.d.ts +217 -0
  168. package/dist/http/event-bus.js +365 -0
  169. package/dist/http/event-id.d.ts +77 -0
  170. package/dist/http/event-id.js +117 -0
  171. package/dist/http/event-types.d.ts +348 -0
  172. package/dist/http/event-types.js +36 -0
  173. package/dist/http/fixtures/chat-stress.d.ts +8 -0
  174. package/dist/http/fixtures/chat-stress.js +63 -0
  175. package/dist/http/fixtures/conductor-leaving.d.ts +8 -0
  176. package/dist/http/fixtures/conductor-leaving.js +80 -0
  177. package/dist/http/fixtures/constants.d.ts +10 -0
  178. package/dist/http/fixtures/constants.js +13 -0
  179. package/dist/http/fixtures/eight-player-broadcast.d.ts +10 -0
  180. package/dist/http/fixtures/eight-player-broadcast.js +81 -0
  181. package/dist/http/fixtures/empty-ensemble.d.ts +6 -0
  182. package/dist/http/fixtures/empty-ensemble.js +26 -0
  183. package/dist/http/fixtures/index.d.ts +55 -0
  184. package/dist/http/fixtures/index.js +110 -0
  185. package/dist/http/fixtures/single-conductor.d.ts +7 -0
  186. package/dist/http/fixtures/single-conductor.js +46 -0
  187. package/dist/http/fixtures/sse-reconnect.d.ts +8 -0
  188. package/dist/http/fixtures/sse-reconnect.js +77 -0
  189. package/dist/http/index.d.ts +21 -0
  190. package/dist/http/index.js +61 -0
  191. package/dist/http/port-file.d.ts +22 -0
  192. package/dist/http/port-file.js +132 -0
  193. package/dist/http/responses.d.ts +27 -0
  194. package/dist/http/responses.js +40 -0
  195. package/dist/http/ring-buffer.d.ts +41 -0
  196. package/dist/http/ring-buffer.js +80 -0
  197. package/dist/http/server.d.ts +122 -0
  198. package/dist/http/server.js +459 -0
  199. package/dist/http/snapshot.d.ts +85 -0
  200. package/dist/http/snapshot.js +180 -0
  201. package/dist/http/sse-handler.d.ts +87 -0
  202. package/dist/http/sse-handler.js +294 -0
  203. package/dist/http/writes.d.ts +55 -0
  204. package/dist/http/writes.js +240 -0
  205. package/dist/palette/index.d.ts +138 -0
  206. package/dist/palette/index.js +221 -0
  207. package/dist/reconcile/orphans.d.ts +255 -0
  208. package/dist/reconcile/orphans.js +340 -0
  209. package/dist/scripts/258-spotcheck.js +303 -0
  210. package/dist/scripts/check-components-css-sync.js +199 -0
  211. package/dist/scripts/run-shard.js +121 -0
  212. package/dist/scripts/verify-daemon-isolation-guard.js +128 -0
  213. package/dist/server-tools.d.ts +87 -0
  214. package/dist/server-tools.js +146 -0
  215. package/dist/server.d.ts +2 -0
  216. package/dist/server.js +366 -0
  217. package/dist/spawn.d.ts +296 -0
  218. package/dist/spawn.js +747 -0
  219. package/dist/tools/agent-types.d.ts +2 -0
  220. package/dist/tools/agent-types.js +21 -0
  221. package/dist/tools/attachment-info.d.ts +4 -0
  222. package/dist/tools/attachment-info.js +48 -0
  223. package/dist/tools/broadcast.d.ts +4 -0
  224. package/dist/tools/broadcast.js +76 -0
  225. package/dist/tools/cancel-stage.d.ts +3 -0
  226. package/dist/tools/cancel-stage.js +20 -0
  227. package/dist/tools/clear-state.d.ts +3 -0
  228. package/dist/tools/clear-state.js +37 -0
  229. package/dist/tools/coat-check-evict.d.ts +4 -0
  230. package/dist/tools/coat-check-evict.js +43 -0
  231. package/dist/tools/coat-check-get.d.ts +4 -0
  232. package/dist/tools/coat-check-get.js +56 -0
  233. package/dist/tools/coat-check-list.d.ts +4 -0
  234. package/dist/tools/coat-check-list.js +60 -0
  235. package/dist/tools/coat-check-put.d.ts +4 -0
  236. package/dist/tools/coat-check-put.js +53 -0
  237. package/dist/tools/cue.d.ts +44 -0
  238. package/dist/tools/cue.js +201 -0
  239. package/dist/tools/destroy.d.ts +4 -0
  240. package/dist/tools/destroy.js +188 -0
  241. package/dist/tools/detach.d.ts +4 -0
  242. package/dist/tools/detach.js +45 -0
  243. package/dist/tools/encore.d.ts +4 -0
  244. package/dist/tools/encore.js +31 -0
  245. package/dist/tools/ensemble.d.ts +32 -0
  246. package/dist/tools/ensemble.js +198 -0
  247. package/dist/tools/evaluate-gate.d.ts +3 -0
  248. package/dist/tools/evaluate-gate.js +32 -0
  249. package/dist/tools/fetch-state.d.ts +13 -0
  250. package/dist/tools/fetch-state.js +78 -0
  251. package/dist/tools/gates.d.ts +3 -0
  252. package/dist/tools/gates.js +41 -0
  253. package/dist/tools/helpers.d.ts +21 -0
  254. package/dist/tools/helpers.js +25 -0
  255. package/dist/tools/hosts.d.ts +4 -0
  256. package/dist/tools/hosts.js +40 -0
  257. package/dist/tools/listen.d.ts +3 -0
  258. package/dist/tools/listen.js +22 -0
  259. package/dist/tools/load-lineup.d.ts +5 -0
  260. package/dist/tools/load-lineup.js +381 -0
  261. package/dist/tools/migrate.d.ts +4 -0
  262. package/dist/tools/migrate.js +60 -0
  263. package/dist/tools/pause-ensemble.d.ts +4 -0
  264. package/dist/tools/pause-ensemble.js +58 -0
  265. package/dist/tools/pause.d.ts +4 -0
  266. package/dist/tools/pause.js +36 -0
  267. package/dist/tools/play.d.ts +4 -0
  268. package/dist/tools/play.js +57 -0
  269. package/dist/tools/quality-gate.d.ts +3 -0
  270. package/dist/tools/quality-gate.js +26 -0
  271. package/dist/tools/recall.d.ts +3 -0
  272. package/dist/tools/recall.js +32 -0
  273. package/dist/tools/recruit.d.ts +38 -0
  274. package/dist/tools/recruit.js +447 -0
  275. package/dist/tools/release.d.ts +4 -0
  276. package/dist/tools/release.js +98 -0
  277. package/dist/tools/report.d.ts +3 -0
  278. package/dist/tools/report.js +29 -0
  279. package/dist/tools/resolve.d.ts +1 -0
  280. package/dist/tools/resolve.js +7 -0
  281. package/dist/tools/restart.d.ts +35 -0
  282. package/dist/tools/restart.js +131 -0
  283. package/dist/tools/restore.d.ts +4 -0
  284. package/dist/tools/restore.js +107 -0
  285. package/dist/tools/resume-ensemble.d.ts +4 -0
  286. package/dist/tools/resume-ensemble.js +79 -0
  287. package/dist/tools/save-lineup.d.ts +4 -0
  288. package/dist/tools/save-lineup.js +36 -0
  289. package/dist/tools/save-state.d.ts +3 -0
  290. package/dist/tools/save-state.js +57 -0
  291. package/dist/tools/schedule.d.ts +4 -0
  292. package/dist/tools/schedule.js +152 -0
  293. package/dist/tools/schedules.d.ts +4 -0
  294. package/dist/tools/schedules.js +54 -0
  295. package/dist/tools/set-ensemble-description.d.ts +4 -0
  296. package/dist/tools/set-ensemble-description.js +37 -0
  297. package/dist/tools/set-name.d.ts +4 -0
  298. package/dist/tools/set-name.js +45 -0
  299. package/dist/tools/set-part.d.ts +3 -0
  300. package/dist/tools/set-part.js +20 -0
  301. package/dist/tools/shutdown.d.ts +4 -0
  302. package/dist/tools/shutdown.js +54 -0
  303. package/dist/tools/stage.d.ts +3 -0
  304. package/dist/tools/stage.js +28 -0
  305. package/dist/tools/stages.d.ts +3 -0
  306. package/dist/tools/stages.js +35 -0
  307. package/dist/tools/stop.d.ts +4 -0
  308. package/dist/tools/stop.js +29 -0
  309. package/dist/tools/unschedule.d.ts +4 -0
  310. package/dist/tools/unschedule.js +35 -0
  311. package/dist/tools/who-am-i.d.ts +3 -0
  312. package/dist/tools/who-am-i.js +34 -0
  313. package/dist/tools/worktree.d.ts +4 -0
  314. package/dist/tools/worktree.js +181 -0
  315. package/dist/tui/App.d.ts +85 -0
  316. package/dist/tui/App.js +1791 -0
  317. package/dist/tui/bootstrap-types.d.ts +46 -0
  318. package/dist/tui/bootstrap-types.js +7 -0
  319. package/dist/tui/client.d.ts +6 -0
  320. package/dist/tui/client.js +9 -0
  321. package/dist/tui/commands.d.ts +71 -0
  322. package/dist/tui/commands.js +1375 -0
  323. package/dist/tui/components/ActivityLog.d.ts +16 -0
  324. package/dist/tui/components/ActivityLog.js +36 -0
  325. package/dist/tui/components/ChatView.d.ts +35 -0
  326. package/dist/tui/components/ChatView.js +54 -0
  327. package/dist/tui/components/CommandOverlay.d.ts +15 -0
  328. package/dist/tui/components/CommandOverlay.js +34 -0
  329. package/dist/tui/components/CommandPalette.d.ts +21 -0
  330. package/dist/tui/components/CommandPalette.js +67 -0
  331. package/dist/tui/components/ConductorChat.d.ts +16 -0
  332. package/dist/tui/components/ConductorChat.js +32 -0
  333. package/dist/tui/components/ConversationStream.d.ts +114 -0
  334. package/dist/tui/components/ConversationStream.js +307 -0
  335. package/dist/tui/components/CreateEnsembleWizard.d.ts +19 -0
  336. package/dist/tui/components/CreateEnsembleWizard.js +223 -0
  337. package/dist/tui/components/DestroyConfirmModal.d.ts +17 -0
  338. package/dist/tui/components/DestroyConfirmModal.js +62 -0
  339. package/dist/tui/components/EnsembleListView.d.ts +14 -0
  340. package/dist/tui/components/EnsembleListView.js +32 -0
  341. package/dist/tui/components/EnsemblePanel.d.ts +12 -0
  342. package/dist/tui/components/EnsemblePanel.js +40 -0
  343. package/dist/tui/components/ErrorView.d.ts +31 -0
  344. package/dist/tui/components/ErrorView.js +129 -0
  345. package/dist/tui/components/HomeView.d.ts +54 -0
  346. package/dist/tui/components/HomeView.js +306 -0
  347. package/dist/tui/components/InputBar.d.ts +13 -0
  348. package/dist/tui/components/InputBar.js +58 -0
  349. package/dist/tui/components/LoadLineupModal.d.ts +18 -0
  350. package/dist/tui/components/LoadLineupModal.js +79 -0
  351. package/dist/tui/components/MainView.d.ts +21 -0
  352. package/dist/tui/components/MainView.js +107 -0
  353. package/dist/tui/components/NewEnsembleModal.d.ts +9 -0
  354. package/dist/tui/components/NewEnsembleModal.js +73 -0
  355. package/dist/tui/components/Picker.d.ts +23 -0
  356. package/dist/tui/components/Picker.js +70 -0
  357. package/dist/tui/components/PlayerDetailView.d.ts +26 -0
  358. package/dist/tui/components/PlayerDetailView.js +118 -0
  359. package/dist/tui/components/PromptArea.d.ts +50 -0
  360. package/dist/tui/components/PromptArea.js +303 -0
  361. package/dist/tui/components/RecruitWizard.d.ts +17 -0
  362. package/dist/tui/components/RecruitWizard.js +221 -0
  363. package/dist/tui/components/RestoreConfirmModal.d.ts +18 -0
  364. package/dist/tui/components/RestoreConfirmModal.js +71 -0
  365. package/dist/tui/components/ScheduleOverlay.d.ts +13 -0
  366. package/dist/tui/components/ScheduleOverlay.js +113 -0
  367. package/dist/tui/components/ScheduleWizard.d.ts +19 -0
  368. package/dist/tui/components/ScheduleWizard.js +259 -0
  369. package/dist/tui/components/Splash.d.ts +23 -0
  370. package/dist/tui/components/Splash.js +221 -0
  371. package/dist/tui/components/StatusBar.d.ts +48 -0
  372. package/dist/tui/components/StatusBar.js +128 -0
  373. package/dist/tui/components/StatusOverlay.d.ts +15 -0
  374. package/dist/tui/components/StatusOverlay.js +76 -0
  375. package/dist/tui/components/TitleBar.d.ts +10 -0
  376. package/dist/tui/components/TitleBar.js +21 -0
  377. package/dist/tui/components/TopBar.d.ts +12 -0
  378. package/dist/tui/components/TopBar.js +15 -0
  379. package/dist/tui/core-api.d.ts +26 -0
  380. package/dist/tui/core-api.js +67 -0
  381. package/dist/tui/hooks/useEnsembleDiscovery.d.ts +3 -0
  382. package/dist/tui/hooks/useEnsembleDiscovery.js +30 -0
  383. package/dist/tui/hooks/useMaestroPoller.d.ts +3 -0
  384. package/dist/tui/hooks/useMaestroPoller.js +36 -0
  385. package/dist/tui/hooks/useSendCommand.d.ts +7 -0
  386. package/dist/tui/hooks/useSendCommand.js +29 -0
  387. package/dist/tui/index.d.ts +15 -0
  388. package/dist/tui/index.js +156 -0
  389. package/dist/tui/ink-context.d.ts +18 -0
  390. package/dist/tui/ink-context.js +59 -0
  391. package/dist/tui/ink-loader.d.ts +26 -0
  392. package/dist/tui/ink-loader.js +42 -0
  393. package/dist/tui/removed-commands.d.ts +9 -0
  394. package/dist/tui/removed-commands.js +22 -0
  395. package/dist/tui/sse-handler.d.ts +52 -0
  396. package/dist/tui/sse-handler.js +157 -0
  397. package/dist/tui/store.d.ts +598 -0
  398. package/dist/tui/store.js +753 -0
  399. package/dist/tui/utils/format.d.ts +56 -0
  400. package/dist/tui/utils/format.js +155 -0
  401. package/dist/tui/utils/fullscreen.d.ts +23 -0
  402. package/dist/tui/utils/fullscreen.js +71 -0
  403. package/dist/tui/utils/history.d.ts +10 -0
  404. package/dist/tui/utils/history.js +85 -0
  405. package/dist/tui/utils/platform.d.ts +45 -0
  406. package/dist/tui/utils/platform.js +258 -0
  407. package/dist/tui/utils/theme.d.ts +21 -0
  408. package/dist/tui/utils/theme.js +24 -0
  409. package/dist/types.d.ts +1020 -0
  410. package/dist/types.js +39 -0
  411. package/dist/utils/attachment-format.d.ts +22 -0
  412. package/dist/utils/attachment-format.js +32 -0
  413. package/dist/utils/default-part.d.ts +43 -0
  414. package/dist/utils/default-part.js +104 -0
  415. package/dist/utils/duration.d.ts +30 -0
  416. package/dist/utils/duration.js +69 -0
  417. package/dist/utils/ensemble-ops.d.ts +61 -0
  418. package/dist/utils/ensemble-ops.js +77 -0
  419. package/dist/utils/format-hosts.d.ts +21 -0
  420. package/dist/utils/format-hosts.js +73 -0
  421. package/dist/utils/hosts.d.ts +113 -0
  422. package/dist/utils/hosts.js +265 -0
  423. package/dist/utils/parent-death-watchdog.d.ts +1 -0
  424. package/dist/utils/parent-death-watchdog.js +47 -0
  425. package/dist/utils/query-timeout.d.ts +103 -0
  426. package/dist/utils/query-timeout.js +113 -0
  427. package/dist/utils/recall-format.d.ts +78 -0
  428. package/dist/utils/recall-format.js +105 -0
  429. package/dist/utils/restore-format.d.ts +49 -0
  430. package/dist/utils/restore-format.js +91 -0
  431. package/dist/utils/safe-path.d.ts +10 -0
  432. package/dist/utils/safe-path.js +43 -0
  433. package/dist/utils/sdk-probe.d.ts +9 -0
  434. package/dist/utils/sdk-probe.js +45 -0
  435. package/dist/utils/search-attributes.d.ts +76 -0
  436. package/dist/utils/search-attributes.js +86 -0
  437. package/dist/utils/validation.d.ts +113 -0
  438. package/dist/utils/validation.js +163 -0
  439. package/dist/utils/visibility-deadline.d.ts +186 -0
  440. package/dist/utils/visibility-deadline.js +158 -0
  441. package/dist/utils/worktree.d.ts +103 -0
  442. package/dist/utils/worktree.js +327 -0
  443. package/dist/worker.d.ts +14 -0
  444. package/dist/worker.js +146 -0
  445. package/dist/workflows/attachment-math.d.ts +56 -0
  446. package/dist/workflows/attachment-math.js +47 -0
  447. package/dist/workflows/index.d.ts +3 -0
  448. package/dist/workflows/index.js +11 -0
  449. package/dist/workflows/maestro-signals.d.ts +217 -0
  450. package/dist/workflows/maestro-signals.js +155 -0
  451. package/dist/workflows/maestro.d.ts +3 -0
  452. package/dist/workflows/maestro.js +812 -0
  453. package/dist/workflows/scheduler-signals.d.ts +10 -0
  454. package/dist/workflows/scheduler-signals.js +14 -0
  455. package/dist/workflows/scheduler.d.ts +17 -0
  456. package/dist/workflows/scheduler.js +143 -0
  457. package/dist/workflows/session.d.ts +2 -0
  458. package/dist/workflows/session.js +1638 -0
  459. package/dist/workflows/signals.d.ts +297 -0
  460. package/dist/workflows/signals.js +239 -0
  461. package/examples/agents/tempo-composer.md +56 -0
  462. package/examples/agents/tempo-conductor.md +117 -0
  463. package/examples/agents/tempo-critic.md +73 -0
  464. package/examples/agents/tempo-improv.md +74 -0
  465. package/examples/agents/tempo-liner.md +75 -0
  466. package/examples/agents/tempo-roadie.md +61 -0
  467. package/examples/agents/tempo-soloist.md +71 -0
  468. package/examples/agents/tempo-tuner.md +94 -0
  469. package/examples/ensembles/tempo-big-band.yaml +146 -0
  470. package/examples/ensembles/tempo-dev-team.yaml +58 -0
  471. package/examples/ensembles/tempo-headless-jam.yaml +77 -0
  472. package/examples/ensembles/tempo-jam-session.yaml +41 -0
  473. package/examples/ensembles/tempo-mock-jam.yaml +79 -0
  474. package/examples/ensembles/tempo-review-squad.yaml +32 -0
  475. package/package.json +172 -0
  476. package/packaging/launchd/com.agent.tempo.plist +46 -0
  477. package/packaging/systemd/agent-tempo.service +32 -0
  478. package/packaging/windows/install-task.ps1 +71 -0
  479. package/scenarios/conductor-recruit-mock.yaml +33 -0
  480. package/scenarios/echo-roundtrip.yaml +15 -0
  481. package/scenarios/multi-player-handoff.yaml +38 -0
  482. package/scenarios/recruit-cascade.yaml +38 -0
  483. package/scenarios/two-player-conversation.yaml +33 -0
  484. package/workflow-bundle.js +14146 -0
@@ -0,0 +1,15 @@
1
+ /**
2
+ * copilot adapter — barrel export.
3
+ *
4
+ * Re-exports the descriptor and class from `./adapter`. `src/adapters/index.ts`
5
+ * imports the descriptor here at module load and registers it with the
6
+ * singleton {@link AdapterRegistry}. Direct consumers should fetch from the
7
+ * registry, not import the descriptor directly.
8
+ *
9
+ * The descriptor constant itself lives colocated with the class in `./adapter`
10
+ * so this file has no inward-pointing imports — breaks the module-graph cycle
11
+ * flagged in PR-B QA review.
12
+ *
13
+ * Design reference: docs/design/session-lifecycle-rebuild-v2.md §4.2.
14
+ */
15
+ export { CopilotSdkAttachment, copilotDescriptor } from './adapter';
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.copilotDescriptor = exports.CopilotSdkAttachment = void 0;
4
+ /**
5
+ * copilot adapter — barrel export.
6
+ *
7
+ * Re-exports the descriptor and class from `./adapter`. `src/adapters/index.ts`
8
+ * imports the descriptor here at module load and registers it with the
9
+ * singleton {@link AdapterRegistry}. Direct consumers should fetch from the
10
+ * registry, not import the descriptor directly.
11
+ *
12
+ * The descriptor constant itself lives colocated with the class in `./adapter`
13
+ * so this file has no inward-pointing imports — breaks the module-graph cycle
14
+ * flagged in PR-B QA review.
15
+ *
16
+ * Design reference: docs/design/session-lifecycle-rebuild-v2.md §4.2.
17
+ */
18
+ var adapter_1 = require("./adapter");
19
+ Object.defineProperty(exports, "CopilotSdkAttachment", { enumerable: true, get: function () { return adapter_1.CopilotSdkAttachment; } });
20
+ Object.defineProperty(exports, "copilotDescriptor", { enumerable: true, get: function () { return adapter_1.copilotDescriptor; } });
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Adapter registry bootstrap + barrel exports.
3
+ *
4
+ * Import side effect: registers every shipped adapter descriptor with the
5
+ * singleton {@link registry}. Callers should:
6
+ *
7
+ * ```ts
8
+ * import { registry } from './adapters';
9
+ * const descriptor = registry.get(metadata.adapterId ?? registry.resolveFromAgentType(metadata.agentType));
10
+ * ```
11
+ *
12
+ * Adding a new adapter is one line — import its descriptor here and call
13
+ * `registry.register(...)`. See `src/adapters/README.md`.
14
+ *
15
+ * Design reference: docs/design/session-lifecycle-rebuild-v2.md §§4.1–4.2.
16
+ * Sequencing memo: §3 PR-B.
17
+ */
18
+ import { AdapterRegistry } from './base';
19
+ export declare const registry: AdapterRegistry;
20
+ /**
21
+ * Canonical list of production adapters registered at module-import time.
22
+ *
23
+ * SSOT for the conformance test asserting every shipped adapter is present
24
+ * in the registry (#486). Adding a new adapter is two adjacent touches in
25
+ * this file: a `registry.register(...)` call above AND a new entry below.
26
+ * The test (`test/conformance/registry.test.ts`) imports this constant and
27
+ * compares it against `registry.all()`, so it catches BOTH "registered but
28
+ * not declared canonical" AND "declared canonical but not registered"
29
+ * drift. Mirrors the `AGENT_TYPES` tripwire in `src/types.ts`.
30
+ *
31
+ * Mock adapter is intentionally excluded — it's dev-mode-only and stripped
32
+ * from the npm tarball at prepack time (ADR 0014 §7 gate 1).
33
+ */
34
+ export declare const CANONICAL_ADAPTER_IDS: readonly ["claude-code", "copilot", "claude-api", "opencode", "claude-code-headless"];
35
+ export { BaseAttachment, AdapterRegistry } from './base';
36
+ export { SdkAttachment } from './sdk/base';
37
+ export { InteractiveAttachment } from './claude-code';
38
+ export { CopilotSdkAttachment } from './copilot';
39
+ export { DirectApiAttachment } from './claude-api';
40
+ export { OpenCodeAttachment } from './opencode';
41
+ export { ClaudeCodeHeadlessAttachment } from './claude-code-headless';
42
+ export type { AdapterClass, AdapterDescriptor } from '../types';
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ClaudeCodeHeadlessAttachment = exports.OpenCodeAttachment = exports.DirectApiAttachment = exports.CopilotSdkAttachment = exports.InteractiveAttachment = exports.SdkAttachment = exports.AdapterRegistry = exports.BaseAttachment = exports.CANONICAL_ADAPTER_IDS = exports.registry = void 0;
4
+ /**
5
+ * Adapter registry bootstrap + barrel exports.
6
+ *
7
+ * Import side effect: registers every shipped adapter descriptor with the
8
+ * singleton {@link registry}. Callers should:
9
+ *
10
+ * ```ts
11
+ * import { registry } from './adapters';
12
+ * const descriptor = registry.get(metadata.adapterId ?? registry.resolveFromAgentType(metadata.agentType));
13
+ * ```
14
+ *
15
+ * Adding a new adapter is one line — import its descriptor here and call
16
+ * `registry.register(...)`. See `src/adapters/README.md`.
17
+ *
18
+ * Design reference: docs/design/session-lifecycle-rebuild-v2.md §§4.1–4.2.
19
+ * Sequencing memo: §3 PR-B.
20
+ */
21
+ const base_1 = require("./base");
22
+ const claude_code_1 = require("./claude-code");
23
+ const copilot_1 = require("./copilot");
24
+ const claude_api_1 = require("./claude-api");
25
+ const opencode_1 = require("./opencode");
26
+ const claude_code_headless_1 = require("./claude-code-headless");
27
+ const config_1 = require("../config");
28
+ exports.registry = new base_1.AdapterRegistry();
29
+ exports.registry.register(claude_code_1.claudeCodeDescriptor);
30
+ exports.registry.register(copilot_1.copilotDescriptor);
31
+ // #131 Phase C — headless Claude API adapter. Always-registered (the optional
32
+ // `@anthropic-ai/sdk` dependency only matters at adapter spawn time; the
33
+ // descriptor itself has no SDK dependency, so the registry can list and
34
+ // resolve it even on hosts that haven't installed the SDK).
35
+ exports.registry.register(claude_api_1.claudeApiDescriptor);
36
+ // #449 Phase C — headless multi-provider OpenCode adapter. Always-registered
37
+ // for the same reason as claude-api: the optional `@opencode-ai/sdk` and the
38
+ // `opencode` binary only matter at adapter spawn time. The recruit pre-flight
39
+ // gates on both being available (or `force: true` to bypass).
40
+ exports.registry.register(opencode_1.opencodeDescriptor);
41
+ // #520 — headless Claude Code adapter. Spawns the host's installed `claude`
42
+ // CLI as a per-turn subprocess; uses the operator's existing OAuth login so
43
+ // turns bill against subscription extra-usage credits (the only ToS-clean
44
+ // path to that pool for a third-party tool). Always-registered — the
45
+ // `claude` binary is a system binary, not an npm dep; recruit pre-flight
46
+ // probes for installation + login state via `pre-flight.ts`.
47
+ exports.registry.register(claude_code_headless_1.claudeCodeHeadlessDescriptor);
48
+ /**
49
+ * Canonical list of production adapters registered at module-import time.
50
+ *
51
+ * SSOT for the conformance test asserting every shipped adapter is present
52
+ * in the registry (#486). Adding a new adapter is two adjacent touches in
53
+ * this file: a `registry.register(...)` call above AND a new entry below.
54
+ * The test (`test/conformance/registry.test.ts`) imports this constant and
55
+ * compares it against `registry.all()`, so it catches BOTH "registered but
56
+ * not declared canonical" AND "declared canonical but not registered"
57
+ * drift. Mirrors the `AGENT_TYPES` tripwire in `src/types.ts`.
58
+ *
59
+ * Mock adapter is intentionally excluded — it's dev-mode-only and stripped
60
+ * from the npm tarball at prepack time (ADR 0014 §7 gate 1).
61
+ */
62
+ exports.CANONICAL_ADAPTER_IDS = [
63
+ 'claude-code',
64
+ 'copilot',
65
+ 'claude-api',
66
+ 'opencode',
67
+ 'claude-code-headless',
68
+ ];
69
+ // ADR 0014 §7 gate 2 — import-time registration gate. The mock adapter's
70
+ // descriptor only enters the registry when `isDevMode()` is true.
71
+ //
72
+ // Synchronous (require) is intentional: the registry is the resolution
73
+ // surface every recruit / spawn / restart path consults, and they consult
74
+ // it inside the same Node.js tick the MCP server boots in. Doing this with
75
+ // dynamic `import()` would leave a window where `registry.get('mock')`
76
+ // throws "Unknown adapter" until the promise lands. Tests that want to
77
+ // flip dev mode mid-process can re-require this module after mutating
78
+ // `process.env.AGENT_TEMPO_DEV_MODE`.
79
+ //
80
+ // In production tarballs `dist/adapters/mock/` is excluded via the root
81
+ // `.npmignore` (gate 1). If a malicious / hand-edited install somehow has
82
+ // the file present AND `AGENT_TEMPO_DEV_MODE=1`, recruit-time rejection
83
+ // (gate 3) is the next line of defence.
84
+ if ((0, config_1.isDevMode)()) {
85
+ try {
86
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
87
+ const { mockDescriptor } = require('./mock');
88
+ exports.registry.register(mockDescriptor);
89
+ console.error('[agent-tempo] DEV MODE: mock adapter registered');
90
+ }
91
+ catch (err) {
92
+ // ADR 0014 §7 gate 1 strips `dist/adapters/mock/` from the published
93
+ // tarball. If a user then sets `AGENT_TEMPO_DEV_MODE=1` against an
94
+ // npm-installed agent-tempo, the require above fails — and that's
95
+ // exactly the safety property we want. Log + continue so the rest of
96
+ // the daemon boots normally; gate 3 (recruit-time rejection) catches
97
+ // any later `agent: 'mock'` request with a clearer message.
98
+ console.error('[agent-tempo] DEV MODE: mock adapter unavailable in this build —', err instanceof Error ? err.message : err);
99
+ }
100
+ }
101
+ var base_2 = require("./base");
102
+ Object.defineProperty(exports, "BaseAttachment", { enumerable: true, get: function () { return base_2.BaseAttachment; } });
103
+ Object.defineProperty(exports, "AdapterRegistry", { enumerable: true, get: function () { return base_2.AdapterRegistry; } });
104
+ var base_3 = require("./sdk/base");
105
+ Object.defineProperty(exports, "SdkAttachment", { enumerable: true, get: function () { return base_3.SdkAttachment; } });
106
+ var claude_code_2 = require("./claude-code");
107
+ Object.defineProperty(exports, "InteractiveAttachment", { enumerable: true, get: function () { return claude_code_2.InteractiveAttachment; } });
108
+ var copilot_2 = require("./copilot");
109
+ Object.defineProperty(exports, "CopilotSdkAttachment", { enumerable: true, get: function () { return copilot_2.CopilotSdkAttachment; } });
110
+ var claude_api_2 = require("./claude-api");
111
+ Object.defineProperty(exports, "DirectApiAttachment", { enumerable: true, get: function () { return claude_api_2.DirectApiAttachment; } });
112
+ var opencode_2 = require("./opencode");
113
+ Object.defineProperty(exports, "OpenCodeAttachment", { enumerable: true, get: function () { return opencode_2.OpenCodeAttachment; } });
114
+ var claude_code_headless_2 = require("./claude-code-headless");
115
+ Object.defineProperty(exports, "ClaudeCodeHeadlessAttachment", { enumerable: true, get: function () { return claude_code_headless_2.ClaudeCodeHeadlessAttachment; } });
@@ -0,0 +1,82 @@
1
+ import type { AdapterDescriptor } from '../../types';
2
+ import { SdkAttachment } from '../sdk/base';
3
+ /**
4
+ * Descriptor for the opencode adapter. Colocated with the class so
5
+ * `adapter.ts` has no import dependency on `index.ts` (avoids the
6
+ * circular module-graph cycle QA flagged on copilot's PR-B).
7
+ */
8
+ export declare const opencodeDescriptor: AdapterDescriptor;
9
+ /**
10
+ * SDK-class adapter for OpenCode. Pull-based delivery: poll workflow for
11
+ * pending messages, post each batch to `prompt_async`, observe SSE until
12
+ * `finish`, ack via `markDelivered`. `processingStart`/`End` paired by
13
+ * `SdkAttachment.deliver()`.
14
+ */
15
+ export declare class OpenCodeAttachment extends SdkAttachment {
16
+ readonly descriptor: AdapterDescriptor;
17
+ /** Resolved model id (recruit-arg → ENV.OPENCODE_MODEL → DEFAULT_MODEL). */
18
+ private model;
19
+ /** Probed-free port the opencode serve subprocess binds. */
20
+ private port;
21
+ /** Subprocess handle — `null` before run() spawns, after cleanup kills. */
22
+ private serveProcess;
23
+ /** HTTP/SSE bridge — `null` before run() boots the subprocess. */
24
+ private bridge;
25
+ /** OpenCode session id — created on first turn, stashed on workflow metadata. */
26
+ private openCodeSessionId;
27
+ /** AbortController for the in-flight SSE consumer / prompt_async fetch. */
28
+ private inFlightAbortController;
29
+ /** Cached for the per-turn telemetry log. */
30
+ private playerName;
31
+ /** Built once at session start; sent every turn (cheap; OpenCode caches server-side). */
32
+ private systemPrompt;
33
+ constructor(opts?: {
34
+ model?: string;
35
+ });
36
+ /**
37
+ * Lease-revocation hook. Two-step graceful → SIGTERM → SIGKILL fallback
38
+ * per design §6.1: post `/session/:id/abort` first (cleanest, no
39
+ * subprocess kill), abort in-flight fetch via `inFlightAbortController`,
40
+ * fall back to subprocess kill if HTTP abort hangs.
41
+ */
42
+ protected onSuperseded(): void;
43
+ /**
44
+ * Subprocess entry point. Boots `opencode serve`, connects Temporal,
45
+ * claims the attachment, runs the poll loop. The optional-dep gate at
46
+ * module load (above) has already exited the process if the SDK isn't
47
+ * installed, so by the time `run()` executes we know it's available.
48
+ */
49
+ run(): Promise<void>;
50
+ /**
51
+ * Poll the workflow for pending messages; call `deliver()` per batch.
52
+ * Mirrors claude-api / copilot — only the `invokeSdk` body differs.
53
+ */
54
+ private pollLoop;
55
+ /** True once `onTerminal` fired and cleanup tore down the V2 token. */
56
+ private shouldStop;
57
+ /**
58
+ * Per-turn LLM dispatch. Closes over the message batch so SdkAttachment's
59
+ * `invokeSdk` callback can stay (prompt, timeoutMs) shaped while the
60
+ * actual driving data is the `messages[]` from the poll.
61
+ *
62
+ * Steps per design §5.4:
63
+ * 1. Ensure OpenCode session exists (create on first turn, stash id
64
+ * on workflow metadata via the existing updateMetadataSignal
65
+ * sessionId field — same field copilot uses).
66
+ * 2. Subscribe to `/event` SSE.
67
+ * 3. POST `/session/:id/prompt_async` (returns 204, turn streams).
68
+ * 4. Consume SSE until `finish` reason — accumulate text, observe
69
+ * tool-use breadcrumbs.
70
+ * 5. Log per-turn `turn-usage` line (design §5.6).
71
+ */
72
+ private invokeSdkWithBatch;
73
+ /**
74
+ * SIGTERM → SIGKILL escalation on the `opencode serve` subprocess.
75
+ * Idempotent — racing signals during cleanup are safe.
76
+ *
77
+ * On Windows, Bun-runtime SIGTERM may not propagate cleanly (ADR 0015
78
+ * §84). The fallback to SIGKILL after `SIGTERM_TIMEOUT_MS` covers this
79
+ * case without per-platform branching.
80
+ */
81
+ private killSubprocessChain;
82
+ }