@stigmer/cli 3.0.8

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 (1049) hide show
  1. package/LICENSE +190 -0
  2. package/README.md +42 -0
  3. package/auth/auth0.d.ts +19 -0
  4. package/auth/auth0.d.ts.map +1 -0
  5. package/auth/auth0.js +39 -0
  6. package/auth/auth0.js.map +1 -0
  7. package/auth/callback-server.d.ts +18 -0
  8. package/auth/callback-server.d.ts.map +1 -0
  9. package/auth/callback-server.js +77 -0
  10. package/auth/callback-server.js.map +1 -0
  11. package/auth/index.d.ts +5 -0
  12. package/auth/index.d.ts.map +1 -0
  13. package/auth/index.js +6 -0
  14. package/auth/index.js.map +1 -0
  15. package/auth/login.d.ts +2 -0
  16. package/auth/login.d.ts.map +1 -0
  17. package/auth/login.js +56 -0
  18. package/auth/login.js.map +1 -0
  19. package/auth/pages.d.ts +7 -0
  20. package/auth/pages.d.ts.map +1 -0
  21. package/auth/pages.js +21 -0
  22. package/auth/pages.js.map +1 -0
  23. package/auth/pkce.d.ts +7 -0
  24. package/auth/pkce.d.ts.map +1 -0
  25. package/auth/pkce.js +22 -0
  26. package/auth/pkce.js.map +1 -0
  27. package/auth/token.d.ts +33 -0
  28. package/auth/token.d.ts.map +1 -0
  29. package/auth/token.js +111 -0
  30. package/auth/token.js.map +1 -0
  31. package/backend.d.ts +5 -0
  32. package/backend.d.ts.map +1 -0
  33. package/backend.js +14 -0
  34. package/backend.js.map +1 -0
  35. package/cli/stigmer.d.ts +3 -0
  36. package/cli/stigmer.d.ts.map +1 -0
  37. package/cli/stigmer.js +14 -0
  38. package/cli/stigmer.js.map +1 -0
  39. package/client/client.d.ts +25 -0
  40. package/client/client.d.ts.map +1 -0
  41. package/client/client.js +55 -0
  42. package/client/client.js.map +1 -0
  43. package/client/index.d.ts +2 -0
  44. package/client/index.d.ts.map +1 -0
  45. package/client/index.js +3 -0
  46. package/client/index.js.map +1 -0
  47. package/commands/agent-exec-flags.d.ts +30 -0
  48. package/commands/agent-exec-flags.d.ts.map +1 -0
  49. package/commands/agent-exec-flags.js +52 -0
  50. package/commands/agent-exec-flags.js.map +1 -0
  51. package/commands/apikey/duration.d.ts +2 -0
  52. package/commands/apikey/duration.d.ts.map +1 -0
  53. package/commands/apikey/duration.js +30 -0
  54. package/commands/apikey/duration.js.map +1 -0
  55. package/commands/apikey/index.d.ts +3 -0
  56. package/commands/apikey/index.d.ts.map +1 -0
  57. package/commands/apikey/index.js +118 -0
  58. package/commands/apikey/index.js.map +1 -0
  59. package/commands/apply.d.ts +3 -0
  60. package/commands/apply.d.ts.map +1 -0
  61. package/commands/apply.js +155 -0
  62. package/commands/apply.js.map +1 -0
  63. package/commands/auth/index.d.ts +3 -0
  64. package/commands/auth/index.d.ts.map +1 -0
  65. package/commands/auth/index.js +76 -0
  66. package/commands/auth/index.js.map +1 -0
  67. package/commands/completion.d.ts +3 -0
  68. package/commands/completion.d.ts.map +1 -0
  69. package/commands/completion.js +82 -0
  70. package/commands/completion.js.map +1 -0
  71. package/commands/config/backend.d.ts +3 -0
  72. package/commands/config/backend.d.ts.map +1 -0
  73. package/commands/config/backend.js +49 -0
  74. package/commands/config/backend.js.map +1 -0
  75. package/commands/config/context.d.ts +3 -0
  76. package/commands/config/context.d.ts.map +1 -0
  77. package/commands/config/context.js +23 -0
  78. package/commands/config/context.js.map +1 -0
  79. package/commands/config/index.d.ts +3 -0
  80. package/commands/config/index.d.ts.map +1 -0
  81. package/commands/config/index.js +13 -0
  82. package/commands/config/index.js.map +1 -0
  83. package/commands/config/kv.d.ts +3 -0
  84. package/commands/config/kv.d.ts.map +1 -0
  85. package/commands/config/kv.js +39 -0
  86. package/commands/config/kv.js.map +1 -0
  87. package/commands/connect.d.ts +3 -0
  88. package/commands/connect.d.ts.map +1 -0
  89. package/commands/connect.js +56 -0
  90. package/commands/connect.js.map +1 -0
  91. package/commands/delete.d.ts +3 -0
  92. package/commands/delete.d.ts.map +1 -0
  93. package/commands/delete.js +41 -0
  94. package/commands/delete.js.map +1 -0
  95. package/commands/diff.d.ts +3 -0
  96. package/commands/diff.d.ts.map +1 -0
  97. package/commands/diff.js +87 -0
  98. package/commands/diff.js.map +1 -0
  99. package/commands/down.d.ts +3 -0
  100. package/commands/down.d.ts.map +1 -0
  101. package/commands/down.js +23 -0
  102. package/commands/down.js.map +1 -0
  103. package/commands/download.d.ts +3 -0
  104. package/commands/download.d.ts.map +1 -0
  105. package/commands/download.js +46 -0
  106. package/commands/download.js.map +1 -0
  107. package/commands/draft.d.ts +3 -0
  108. package/commands/draft.d.ts.map +1 -0
  109. package/commands/draft.js +97 -0
  110. package/commands/draft.js.map +1 -0
  111. package/commands/execution/approve.d.ts +3 -0
  112. package/commands/execution/approve.d.ts.map +1 -0
  113. package/commands/execution/approve.js +60 -0
  114. package/commands/execution/approve.js.map +1 -0
  115. package/commands/execution/control.d.ts +3 -0
  116. package/commands/execution/control.d.ts.map +1 -0
  117. package/commands/execution/control.js +57 -0
  118. package/commands/execution/control.js.map +1 -0
  119. package/commands/execution/index.d.ts +3 -0
  120. package/commands/execution/index.d.ts.map +1 -0
  121. package/commands/execution/index.js +21 -0
  122. package/commands/execution/index.js.map +1 -0
  123. package/commands/execution/logs.d.ts +3 -0
  124. package/commands/execution/logs.d.ts.map +1 -0
  125. package/commands/execution/logs.js +34 -0
  126. package/commands/execution/logs.js.map +1 -0
  127. package/commands/execution/trace.d.ts +3 -0
  128. package/commands/execution/trace.d.ts.map +1 -0
  129. package/commands/execution/trace.js +24 -0
  130. package/commands/execution/trace.js.map +1 -0
  131. package/commands/get.d.ts +3 -0
  132. package/commands/get.d.ts.map +1 -0
  133. package/commands/get.js +81 -0
  134. package/commands/get.js.map +1 -0
  135. package/commands/internal-daemon.d.ts +3 -0
  136. package/commands/internal-daemon.d.ts.map +1 -0
  137. package/commands/internal-daemon.js +22 -0
  138. package/commands/internal-daemon.js.map +1 -0
  139. package/commands/list.d.ts +3 -0
  140. package/commands/list.d.ts.map +1 -0
  141. package/commands/list.js +117 -0
  142. package/commands/list.js.map +1 -0
  143. package/commands/logs.d.ts +3 -0
  144. package/commands/logs.d.ts.map +1 -0
  145. package/commands/logs.js +59 -0
  146. package/commands/logs.js.map +1 -0
  147. package/commands/mcp-server.d.ts +22 -0
  148. package/commands/mcp-server.d.ts.map +1 -0
  149. package/commands/mcp-server.js +104 -0
  150. package/commands/mcp-server.js.map +1 -0
  151. package/commands/push.d.ts +3 -0
  152. package/commands/push.d.ts.map +1 -0
  153. package/commands/push.js +150 -0
  154. package/commands/push.js.map +1 -0
  155. package/commands/reset.d.ts +3 -0
  156. package/commands/reset.d.ts.map +1 -0
  157. package/commands/reset.js +45 -0
  158. package/commands/reset.js.map +1 -0
  159. package/commands/resume.d.ts +3 -0
  160. package/commands/resume.d.ts.map +1 -0
  161. package/commands/resume.js +87 -0
  162. package/commands/resume.js.map +1 -0
  163. package/commands/run.d.ts +3 -0
  164. package/commands/run.d.ts.map +1 -0
  165. package/commands/run.js +193 -0
  166. package/commands/run.js.map +1 -0
  167. package/commands/search.d.ts +3 -0
  168. package/commands/search.d.ts.map +1 -0
  169. package/commands/search.js +73 -0
  170. package/commands/search.js.map +1 -0
  171. package/commands/seedpack.d.ts +3 -0
  172. package/commands/seedpack.d.ts.map +1 -0
  173. package/commands/seedpack.js +76 -0
  174. package/commands/seedpack.js.map +1 -0
  175. package/commands/setup.d.ts +3 -0
  176. package/commands/setup.d.ts.map +1 -0
  177. package/commands/setup.js +57 -0
  178. package/commands/setup.js.map +1 -0
  179. package/commands/shared.d.ts +15 -0
  180. package/commands/shared.d.ts.map +1 -0
  181. package/commands/shared.js +34 -0
  182. package/commands/shared.js.map +1 -0
  183. package/commands/status.d.ts +3 -0
  184. package/commands/status.d.ts.map +1 -0
  185. package/commands/status.js +18 -0
  186. package/commands/status.js.map +1 -0
  187. package/commands/tag.d.ts +3 -0
  188. package/commands/tag.d.ts.map +1 -0
  189. package/commands/tag.js +24 -0
  190. package/commands/tag.js.map +1 -0
  191. package/commands/up.d.ts +3 -0
  192. package/commands/up.d.ts.map +1 -0
  193. package/commands/up.js +39 -0
  194. package/commands/up.js.map +1 -0
  195. package/commands/usage.d.ts +3 -0
  196. package/commands/usage.d.ts.map +1 -0
  197. package/commands/usage.js +56 -0
  198. package/commands/usage.js.map +1 -0
  199. package/commands/validate.d.ts +3 -0
  200. package/commands/validate.d.ts.map +1 -0
  201. package/commands/validate.js +64 -0
  202. package/commands/validate.js.map +1 -0
  203. package/commands/version.d.ts +3 -0
  204. package/commands/version.d.ts.map +1 -0
  205. package/commands/version.js +11 -0
  206. package/commands/version.js.map +1 -0
  207. package/config/config.d.ts +39 -0
  208. package/config/config.d.ts.map +1 -0
  209. package/config/config.js +85 -0
  210. package/config/config.js.map +1 -0
  211. package/config/index.d.ts +5 -0
  212. package/config/index.d.ts.map +1 -0
  213. package/config/index.js +6 -0
  214. package/config/index.js.map +1 -0
  215. package/config/keys.d.ts +6 -0
  216. package/config/keys.d.ts.map +1 -0
  217. package/config/keys.js +53 -0
  218. package/config/keys.js.map +1 -0
  219. package/config/paths.d.ts +10 -0
  220. package/config/paths.d.ts.map +1 -0
  221. package/config/paths.js +21 -0
  222. package/config/paths.js.map +1 -0
  223. package/config/resolve.d.ts +33 -0
  224. package/config/resolve.d.ts.map +1 -0
  225. package/config/resolve.js +77 -0
  226. package/config/resolve.js.map +1 -0
  227. package/errors/classify.d.ts +17 -0
  228. package/errors/classify.d.ts.map +1 -0
  229. package/errors/classify.js +158 -0
  230. package/errors/classify.js.map +1 -0
  231. package/errors/cli-exit-error.d.ts +6 -0
  232. package/errors/cli-exit-error.d.ts.map +1 -0
  233. package/errors/cli-exit-error.js +15 -0
  234. package/errors/cli-exit-error.js.map +1 -0
  235. package/errors/exit-codes.d.ts +10 -0
  236. package/errors/exit-codes.d.ts.map +1 -0
  237. package/errors/exit-codes.js +12 -0
  238. package/errors/exit-codes.js.map +1 -0
  239. package/errors/handle.d.ts +14 -0
  240. package/errors/handle.d.ts.map +1 -0
  241. package/errors/handle.js +46 -0
  242. package/errors/handle.js.map +1 -0
  243. package/errors/index.d.ts +6 -0
  244. package/errors/index.d.ts.map +1 -0
  245. package/errors/index.js +7 -0
  246. package/errors/index.js.map +1 -0
  247. package/errors/usage-error.d.ts +5 -0
  248. package/errors/usage-error.d.ts.map +1 -0
  249. package/errors/usage-error.js +13 -0
  250. package/errors/usage-error.js.map +1 -0
  251. package/index.d.ts +3 -0
  252. package/index.d.ts.map +1 -0
  253. package/index.js +8 -0
  254. package/index.js.map +1 -0
  255. package/local/artifact.d.ts +38 -0
  256. package/local/artifact.d.ts.map +1 -0
  257. package/local/artifact.js +133 -0
  258. package/local/artifact.js.map +1 -0
  259. package/local/constants.d.ts +36 -0
  260. package/local/constants.d.ts.map +1 -0
  261. package/local/constants.js +44 -0
  262. package/local/constants.js.map +1 -0
  263. package/local/daemon/components.d.ts +20 -0
  264. package/local/daemon/components.d.ts.map +1 -0
  265. package/local/daemon/components.js +105 -0
  266. package/local/daemon/components.js.map +1 -0
  267. package/local/daemon/env.d.ts +55 -0
  268. package/local/daemon/env.d.ts.map +1 -0
  269. package/local/daemon/env.js +82 -0
  270. package/local/daemon/env.js.map +1 -0
  271. package/local/daemon/host.d.ts +7 -0
  272. package/local/daemon/host.d.ts.map +1 -0
  273. package/local/daemon/host.js +74 -0
  274. package/local/daemon/host.js.map +1 -0
  275. package/local/daemon/index.d.ts +8 -0
  276. package/local/daemon/index.d.ts.map +1 -0
  277. package/local/daemon/index.js +8 -0
  278. package/local/daemon/index.js.map +1 -0
  279. package/local/daemon/launch.d.ts +11 -0
  280. package/local/daemon/launch.d.ts.map +1 -0
  281. package/local/daemon/launch.js +219 -0
  282. package/local/daemon/launch.js.map +1 -0
  283. package/local/daemon/process.d.ts +28 -0
  284. package/local/daemon/process.d.ts.map +1 -0
  285. package/local/daemon/process.js +149 -0
  286. package/local/daemon/process.js.map +1 -0
  287. package/local/daemon/supervisor.d.ts +56 -0
  288. package/local/daemon/supervisor.d.ts.map +1 -0
  289. package/local/daemon/supervisor.js +211 -0
  290. package/local/daemon/supervisor.js.map +1 -0
  291. package/local/daemon/types.d.ts +63 -0
  292. package/local/daemon/types.d.ts.map +1 -0
  293. package/local/daemon/types.js +9 -0
  294. package/local/daemon/types.js.map +1 -0
  295. package/local/llm-config.d.ts +30 -0
  296. package/local/llm-config.d.ts.map +1 -0
  297. package/local/llm-config.js +93 -0
  298. package/local/llm-config.js.map +1 -0
  299. package/local/logs/tail.d.ts +19 -0
  300. package/local/logs/tail.d.ts.map +1 -0
  301. package/local/logs/tail.js +86 -0
  302. package/local/logs/tail.js.map +1 -0
  303. package/local/logs/view.d.ts +20 -0
  304. package/local/logs/view.d.ts.map +1 -0
  305. package/local/logs/view.js +50 -0
  306. package/local/logs/view.js.map +1 -0
  307. package/local/net/tcp.d.ts +23 -0
  308. package/local/net/tcp.d.ts.map +1 -0
  309. package/local/net/tcp.js +47 -0
  310. package/local/net/tcp.js.map +1 -0
  311. package/local/paths.d.ts +26 -0
  312. package/local/paths.d.ts.map +1 -0
  313. package/local/paths.js +57 -0
  314. package/local/paths.js.map +1 -0
  315. package/local/reset.d.ts +14 -0
  316. package/local/reset.d.ts.map +1 -0
  317. package/local/reset.js +57 -0
  318. package/local/reset.js.map +1 -0
  319. package/local/runtime/index.d.ts +5 -0
  320. package/local/runtime/index.d.ts.map +1 -0
  321. package/local/runtime/index.js +6 -0
  322. package/local/runtime/index.js.map +1 -0
  323. package/local/runtime/node.d.ts +8 -0
  324. package/local/runtime/node.d.ts.map +1 -0
  325. package/local/runtime/node.js +59 -0
  326. package/local/runtime/node.js.map +1 -0
  327. package/local/runtime/runner.d.ts +40 -0
  328. package/local/runtime/runner.d.ts.map +1 -0
  329. package/local/runtime/runner.js +154 -0
  330. package/local/runtime/runner.js.map +1 -0
  331. package/local/runtime/server.d.ts +39 -0
  332. package/local/runtime/server.d.ts.map +1 -0
  333. package/local/runtime/server.js +141 -0
  334. package/local/runtime/server.js.map +1 -0
  335. package/local/runtime/which.d.ts +3 -0
  336. package/local/runtime/which.d.ts.map +1 -0
  337. package/local/runtime/which.js +30 -0
  338. package/local/runtime/which.js.map +1 -0
  339. package/local/seedpack/apply.d.ts +43 -0
  340. package/local/seedpack/apply.d.ts.map +1 -0
  341. package/local/seedpack/apply.js +94 -0
  342. package/local/seedpack/apply.js.map +1 -0
  343. package/local/seedpack/content.d.ts +56 -0
  344. package/local/seedpack/content.d.ts.map +1 -0
  345. package/local/seedpack/content.js +201 -0
  346. package/local/seedpack/content.js.map +1 -0
  347. package/local/setup/prompt.d.ts +8 -0
  348. package/local/setup/prompt.d.ts.map +1 -0
  349. package/local/setup/prompt.js +63 -0
  350. package/local/setup/prompt.js.map +1 -0
  351. package/local/setup/wizard.d.ts +22 -0
  352. package/local/setup/wizard.d.ts.map +1 -0
  353. package/local/setup/wizard.js +65 -0
  354. package/local/setup/wizard.js.map +1 -0
  355. package/local/state/health-state.d.ts +26 -0
  356. package/local/state/health-state.d.ts.map +1 -0
  357. package/local/state/health-state.js +34 -0
  358. package/local/state/health-state.js.map +1 -0
  359. package/local/state/index.d.ts +7 -0
  360. package/local/state/index.d.ts.map +1 -0
  361. package/local/state/index.js +8 -0
  362. package/local/state/index.js.map +1 -0
  363. package/local/state/lock.d.ts +12 -0
  364. package/local/state/lock.d.ts.map +1 -0
  365. package/local/state/lock.js +70 -0
  366. package/local/state/lock.js.map +1 -0
  367. package/local/state/log-rotation.d.ts +17 -0
  368. package/local/state/log-rotation.d.ts.map +1 -0
  369. package/local/state/log-rotation.js +101 -0
  370. package/local/state/log-rotation.js.map +1 -0
  371. package/local/state/pidfile.d.ts +11 -0
  372. package/local/state/pidfile.d.ts.map +1 -0
  373. package/local/state/pidfile.js +35 -0
  374. package/local/state/pidfile.js.map +1 -0
  375. package/local/state/proc.d.ts +16 -0
  376. package/local/state/proc.d.ts.map +1 -0
  377. package/local/state/proc.js +69 -0
  378. package/local/state/proc.js.map +1 -0
  379. package/local/state/startup-config.d.ts +23 -0
  380. package/local/state/startup-config.d.ts.map +1 -0
  381. package/local/state/startup-config.js +33 -0
  382. package/local/state/startup-config.js.map +1 -0
  383. package/local/status.d.ts +9 -0
  384. package/local/status.d.ts.map +1 -0
  385. package/local/status.js +168 -0
  386. package/local/status.js.map +1 -0
  387. package/local/temporal/download.d.ts +20 -0
  388. package/local/temporal/download.d.ts.map +1 -0
  389. package/local/temporal/download.js +36 -0
  390. package/local/temporal/download.js.map +1 -0
  391. package/local/temporal/index.d.ts +5 -0
  392. package/local/temporal/index.d.ts.map +1 -0
  393. package/local/temporal/index.js +6 -0
  394. package/local/temporal/index.js.map +1 -0
  395. package/local/temporal/inspect.d.ts +8 -0
  396. package/local/temporal/inspect.d.ts.map +1 -0
  397. package/local/temporal/inspect.js +33 -0
  398. package/local/temporal/inspect.js.map +1 -0
  399. package/local/temporal/manager.d.ts +50 -0
  400. package/local/temporal/manager.d.ts.map +1 -0
  401. package/local/temporal/manager.js +208 -0
  402. package/local/temporal/manager.js.map +1 -0
  403. package/local/temporal/supervisor.d.ts +34 -0
  404. package/local/temporal/supervisor.d.ts.map +1 -0
  405. package/local/temporal/supervisor.js +83 -0
  406. package/local/temporal/supervisor.js.map +1 -0
  407. package/local/webconsole/index.d.ts +4 -0
  408. package/local/webconsole/index.d.ts.map +1 -0
  409. package/local/webconsole/index.js +13 -0
  410. package/local/webconsole/index.js.map +1 -0
  411. package/logger.d.ts +13 -0
  412. package/logger.d.ts.map +1 -0
  413. package/logger.js +35 -0
  414. package/logger.js.map +1 -0
  415. package/output/command-result.d.ts +47 -0
  416. package/output/command-result.d.ts.map +1 -0
  417. package/output/command-result.js +134 -0
  418. package/output/command-result.js.map +1 -0
  419. package/output/confirm.d.ts +22 -0
  420. package/output/confirm.d.ts.map +1 -0
  421. package/output/confirm.js +42 -0
  422. package/output/confirm.js.map +1 -0
  423. package/output/format.d.ts +22 -0
  424. package/output/format.d.ts.map +1 -0
  425. package/output/format.js +72 -0
  426. package/output/format.js.map +1 -0
  427. package/output/index.d.ts +7 -0
  428. package/output/index.d.ts.map +1 -0
  429. package/output/index.js +8 -0
  430. package/output/index.js.map +1 -0
  431. package/output/ndjson.d.ts +24 -0
  432. package/output/ndjson.d.ts.map +1 -0
  433. package/output/ndjson.js +38 -0
  434. package/output/ndjson.js.map +1 -0
  435. package/output/proto.d.ts +12 -0
  436. package/output/proto.d.ts.map +1 -0
  437. package/output/proto.js +34 -0
  438. package/output/proto.js.map +1 -0
  439. package/output/style.d.ts +19 -0
  440. package/output/style.d.ts.map +1 -0
  441. package/output/style.js +44 -0
  442. package/output/style.js.map +1 -0
  443. package/output/table.d.ts +5 -0
  444. package/output/table.d.ts.map +1 -0
  445. package/output/table.js +43 -0
  446. package/output/table.js.map +1 -0
  447. package/package.json +49 -0
  448. package/program.d.ts +3 -0
  449. package/program.d.ts.map +1 -0
  450. package/program.js +95 -0
  451. package/program.js.map +1 -0
  452. package/registry/aliases.d.ts +18 -0
  453. package/registry/aliases.d.ts.map +1 -0
  454. package/registry/aliases.js +85 -0
  455. package/registry/aliases.js.map +1 -0
  456. package/registry/index.d.ts +6 -0
  457. package/registry/index.d.ts.map +1 -0
  458. package/registry/index.js +7 -0
  459. package/registry/index.js.map +1 -0
  460. package/registry/metadata.d.ts +12 -0
  461. package/registry/metadata.d.ts.map +1 -0
  462. package/registry/metadata.js +49 -0
  463. package/registry/metadata.js.map +1 -0
  464. package/registry/registry.d.ts +39 -0
  465. package/registry/registry.d.ts.map +1 -0
  466. package/registry/registry.js +59 -0
  467. package/registry/registry.js.map +1 -0
  468. package/registry/verb-support.d.ts +5 -0
  469. package/registry/verb-support.d.ts.map +1 -0
  470. package/registry/verb-support.js +48 -0
  471. package/registry/verb-support.js.map +1 -0
  472. package/registry/verbs.d.ts +16 -0
  473. package/registry/verbs.d.ts.map +1 -0
  474. package/registry/verbs.js +36 -0
  475. package/registry/verbs.js.map +1 -0
  476. package/resources/apply/apply.d.ts +55 -0
  477. package/resources/apply/apply.d.ts.map +1 -0
  478. package/resources/apply/apply.js +163 -0
  479. package/resources/apply/apply.js.map +1 -0
  480. package/resources/apply/declarative.d.ts +106 -0
  481. package/resources/apply/declarative.d.ts.map +1 -0
  482. package/resources/apply/declarative.js +378 -0
  483. package/resources/apply/declarative.js.map +1 -0
  484. package/resources/apply/discovery.d.ts +7 -0
  485. package/resources/apply/discovery.d.ts.map +1 -0
  486. package/resources/apply/discovery.js +47 -0
  487. package/resources/apply/discovery.js.map +1 -0
  488. package/resources/apply/handlers.d.ts +15 -0
  489. package/resources/apply/handlers.d.ts.map +1 -0
  490. package/resources/apply/handlers.js +126 -0
  491. package/resources/apply/handlers.js.map +1 -0
  492. package/resources/apply/synth/project-track.d.ts +21 -0
  493. package/resources/apply/synth/project-track.d.ts.map +1 -0
  494. package/resources/apply/synth/project-track.js +102 -0
  495. package/resources/apply/synth/project-track.js.map +1 -0
  496. package/resources/apply/synth/reader.d.ts +18 -0
  497. package/resources/apply/synth/reader.d.ts.map +1 -0
  498. package/resources/apply/synth/reader.js +55 -0
  499. package/resources/apply/synth/reader.js.map +1 -0
  500. package/resources/apply/synth/runtime.d.ts +8 -0
  501. package/resources/apply/synth/runtime.d.ts.map +1 -0
  502. package/resources/apply/synth/runtime.js +32 -0
  503. package/resources/apply/synth/runtime.js.map +1 -0
  504. package/resources/apply/synth/synthesize.d.ts +43 -0
  505. package/resources/apply/synth/synthesize.d.ts.map +1 -0
  506. package/resources/apply/synth/synthesize.js +115 -0
  507. package/resources/apply/synth/synthesize.js.map +1 -0
  508. package/resources/connect/connect.d.ts +24 -0
  509. package/resources/connect/connect.d.ts.map +1 -0
  510. package/resources/connect/connect.js +71 -0
  511. package/resources/connect/connect.js.map +1 -0
  512. package/resources/connect/discover.d.ts +5 -0
  513. package/resources/connect/discover.d.ts.map +1 -0
  514. package/resources/connect/discover.js +100 -0
  515. package/resources/connect/discover.js.map +1 -0
  516. package/resources/connect/display.d.ts +5 -0
  517. package/resources/connect/display.d.ts.map +1 -0
  518. package/resources/connect/display.js +58 -0
  519. package/resources/connect/display.js.map +1 -0
  520. package/resources/connect/oauth.d.ts +45 -0
  521. package/resources/connect/oauth.d.ts.map +1 -0
  522. package/resources/connect/oauth.js +152 -0
  523. package/resources/connect/oauth.js.map +1 -0
  524. package/resources/delete.d.ts +18 -0
  525. package/resources/delete.d.ts.map +1 -0
  526. package/resources/delete.js +180 -0
  527. package/resources/delete.js.map +1 -0
  528. package/resources/diff.d.ts +16 -0
  529. package/resources/diff.d.ts.map +1 -0
  530. package/resources/diff.js +158 -0
  531. package/resources/diff.js.map +1 -0
  532. package/resources/documents.d.ts +16 -0
  533. package/resources/documents.d.ts.map +1 -0
  534. package/resources/documents.js +89 -0
  535. package/resources/documents.js.map +1 -0
  536. package/resources/download.d.ts +16 -0
  537. package/resources/download.d.ts.map +1 -0
  538. package/resources/download.js +107 -0
  539. package/resources/download.js.map +1 -0
  540. package/resources/execution-approve.d.ts +26 -0
  541. package/resources/execution-approve.d.ts.map +1 -0
  542. package/resources/execution-approve.js +69 -0
  543. package/resources/execution-approve.js.map +1 -0
  544. package/resources/execution-control.d.ts +16 -0
  545. package/resources/execution-control.d.ts.map +1 -0
  546. package/resources/execution-control.js +57 -0
  547. package/resources/execution-control.js.map +1 -0
  548. package/resources/execution-format.d.ts +12 -0
  549. package/resources/execution-format.d.ts.map +1 -0
  550. package/resources/execution-format.js +56 -0
  551. package/resources/execution-format.js.map +1 -0
  552. package/resources/execution-logs.d.ts +16 -0
  553. package/resources/execution-logs.d.ts.map +1 -0
  554. package/resources/execution-logs.js +132 -0
  555. package/resources/execution-logs.js.map +1 -0
  556. package/resources/execution-trace.d.ts +10 -0
  557. package/resources/execution-trace.d.ts.map +1 -0
  558. package/resources/execution-trace.js +125 -0
  559. package/resources/execution-trace.js.map +1 -0
  560. package/resources/execution.d.ts +59 -0
  561. package/resources/execution.d.ts.map +1 -0
  562. package/resources/execution.js +192 -0
  563. package/resources/execution.js.map +1 -0
  564. package/resources/get-bindings.d.ts +12 -0
  565. package/resources/get-bindings.d.ts.map +1 -0
  566. package/resources/get-bindings.js +40 -0
  567. package/resources/get-bindings.js.map +1 -0
  568. package/resources/get.d.ts +6 -0
  569. package/resources/get.d.ts.map +1 -0
  570. package/resources/get.js +31 -0
  571. package/resources/get.js.map +1 -0
  572. package/resources/git.d.ts +15 -0
  573. package/resources/git.d.ts.map +1 -0
  574. package/resources/git.js +69 -0
  575. package/resources/git.js.map +1 -0
  576. package/resources/ignore/defaults.d.ts +2 -0
  577. package/resources/ignore/defaults.d.ts.map +1 -0
  578. package/resources/ignore/defaults.js +140 -0
  579. package/resources/ignore/defaults.js.map +1 -0
  580. package/resources/ignore/index.d.ts +5 -0
  581. package/resources/ignore/index.d.ts.map +1 -0
  582. package/resources/ignore/index.js +6 -0
  583. package/resources/ignore/index.js.map +1 -0
  584. package/resources/ignore/match.d.ts +3 -0
  585. package/resources/ignore/match.d.ts.map +1 -0
  586. package/resources/ignore/match.js +166 -0
  587. package/resources/ignore/match.js.map +1 -0
  588. package/resources/ignore/matcher.d.ts +44 -0
  589. package/resources/ignore/matcher.d.ts.map +1 -0
  590. package/resources/ignore/matcher.js +125 -0
  591. package/resources/ignore/matcher.js.map +1 -0
  592. package/resources/ignore/pattern.d.ts +13 -0
  593. package/resources/ignore/pattern.d.ts.map +1 -0
  594. package/resources/ignore/pattern.js +118 -0
  595. package/resources/ignore/pattern.js.map +1 -0
  596. package/resources/list.d.ts +7 -0
  597. package/resources/list.d.ts.map +1 -0
  598. package/resources/list.js +82 -0
  599. package/resources/list.js.map +1 -0
  600. package/resources/mcp/runtime-env.d.ts +23 -0
  601. package/resources/mcp/runtime-env.d.ts.map +1 -0
  602. package/resources/mcp/runtime-env.js +68 -0
  603. package/resources/mcp/runtime-env.js.map +1 -0
  604. package/resources/picker/ink.d.ts +35 -0
  605. package/resources/picker/ink.d.ts.map +1 -0
  606. package/resources/picker/ink.js +45 -0
  607. package/resources/picker/ink.js.map +1 -0
  608. package/resources/picker/tty.d.ts +19 -0
  609. package/resources/picker/tty.d.ts.map +1 -0
  610. package/resources/picker/tty.js +21 -0
  611. package/resources/picker/tty.js.map +1 -0
  612. package/resources/reference.d.ts +32 -0
  613. package/resources/reference.d.ts.map +1 -0
  614. package/resources/reference.js +128 -0
  615. package/resources/reference.js.map +1 -0
  616. package/resources/render.d.ts +28 -0
  617. package/resources/render.d.ts.map +1 -0
  618. package/resources/render.js +87 -0
  619. package/resources/render.js.map +1 -0
  620. package/resources/run/agent-exec.d.ts +15 -0
  621. package/resources/run/agent-exec.d.ts.map +1 -0
  622. package/resources/run/agent-exec.js +81 -0
  623. package/resources/run/agent-exec.js.map +1 -0
  624. package/resources/run/attachments.d.ts +24 -0
  625. package/resources/run/attachments.d.ts.map +1 -0
  626. package/resources/run/attachments.js +209 -0
  627. package/resources/run/attachments.js.map +1 -0
  628. package/resources/run/create.d.ts +56 -0
  629. package/resources/run/create.d.ts.map +1 -0
  630. package/resources/run/create.js +105 -0
  631. package/resources/run/create.js.map +1 -0
  632. package/resources/run/env.d.ts +18 -0
  633. package/resources/run/env.d.ts.map +1 -0
  634. package/resources/run/env.js +147 -0
  635. package/resources/run/env.js.map +1 -0
  636. package/resources/run/epilogue.d.ts +9 -0
  637. package/resources/run/epilogue.d.ts.map +1 -0
  638. package/resources/run/epilogue.js +144 -0
  639. package/resources/run/epilogue.js.map +1 -0
  640. package/resources/run/header.d.ts +23 -0
  641. package/resources/run/header.d.ts.map +1 -0
  642. package/resources/run/header.js +51 -0
  643. package/resources/run/header.js.map +1 -0
  644. package/resources/run/prepare.d.ts +60 -0
  645. package/resources/run/prepare.d.ts.map +1 -0
  646. package/resources/run/prepare.js +78 -0
  647. package/resources/run/prepare.js.map +1 -0
  648. package/resources/run/resolve.d.ts +8 -0
  649. package/resources/run/resolve.d.ts.map +1 -0
  650. package/resources/run/resolve.js +28 -0
  651. package/resources/run/resolve.js.map +1 -0
  652. package/resources/run/resume.d.ts +13 -0
  653. package/resources/run/resume.d.ts.map +1 -0
  654. package/resources/run/resume.js +94 -0
  655. package/resources/run/resume.js.map +1 -0
  656. package/resources/run/stream.d.ts +24 -0
  657. package/resources/run/stream.d.ts.map +1 -0
  658. package/resources/run/stream.js +80 -0
  659. package/resources/run/stream.js.map +1 -0
  660. package/resources/run/workflow-stream.d.ts +25 -0
  661. package/resources/run/workflow-stream.d.ts.map +1 -0
  662. package/resources/run/workflow-stream.js +152 -0
  663. package/resources/run/workflow-stream.js.map +1 -0
  664. package/resources/run/workspace.d.ts +17 -0
  665. package/resources/run/workspace.d.ts.map +1 -0
  666. package/resources/run/workspace.js +147 -0
  667. package/resources/run/workspace.js.map +1 -0
  668. package/resources/search.d.ts +22 -0
  669. package/resources/search.d.ts.map +1 -0
  670. package/resources/search.js +23 -0
  671. package/resources/search.js.map +1 -0
  672. package/resources/session.d.ts +19 -0
  673. package/resources/session.d.ts.map +1 -0
  674. package/resources/session.js +51 -0
  675. package/resources/session.js.map +1 -0
  676. package/resources/skill.d.ts +84 -0
  677. package/resources/skill.d.ts.map +1 -0
  678. package/resources/skill.js +342 -0
  679. package/resources/skill.js.map +1 -0
  680. package/resources/stream/approval-detect.d.ts +38 -0
  681. package/resources/stream/approval-detect.d.ts.map +1 -0
  682. package/resources/stream/approval-detect.js +93 -0
  683. package/resources/stream/approval-detect.js.map +1 -0
  684. package/resources/stream/convert.d.ts +38 -0
  685. package/resources/stream/convert.d.ts.map +1 -0
  686. package/resources/stream/convert.js +178 -0
  687. package/resources/stream/convert.js.map +1 -0
  688. package/resources/stream/diff.d.ts +29 -0
  689. package/resources/stream/diff.d.ts.map +1 -0
  690. package/resources/stream/diff.js +214 -0
  691. package/resources/stream/diff.js.map +1 -0
  692. package/resources/stream/events.d.ts +137 -0
  693. package/resources/stream/events.d.ts.map +1 -0
  694. package/resources/stream/events.js +15 -0
  695. package/resources/stream/events.js.map +1 -0
  696. package/resources/stream/headless.d.ts +38 -0
  697. package/resources/stream/headless.d.ts.map +1 -0
  698. package/resources/stream/headless.js +75 -0
  699. package/resources/stream/headless.js.map +1 -0
  700. package/resources/stream/ink.d.ts +22 -0
  701. package/resources/stream/ink.d.ts.map +1 -0
  702. package/resources/stream/ink.js +24 -0
  703. package/resources/stream/ink.js.map +1 -0
  704. package/resources/stream/render-ndjson.d.ts +25 -0
  705. package/resources/stream/render-ndjson.d.ts.map +1 -0
  706. package/resources/stream/render-ndjson.js +156 -0
  707. package/resources/stream/render-ndjson.js.map +1 -0
  708. package/resources/stream/render-plaintext.d.ts +18 -0
  709. package/resources/stream/render-plaintext.d.ts.map +1 -0
  710. package/resources/stream/render-plaintext.js +71 -0
  711. package/resources/stream/render-plaintext.js.map +1 -0
  712. package/resources/stream/snapshot.d.ts +8 -0
  713. package/resources/stream/snapshot.d.ts.map +1 -0
  714. package/resources/stream/snapshot.js +163 -0
  715. package/resources/stream/snapshot.js.map +1 -0
  716. package/resources/stream/subagent.d.ts +12 -0
  717. package/resources/stream/subagent.d.ts.map +1 -0
  718. package/resources/stream/subagent.js +76 -0
  719. package/resources/stream/subagent.js.map +1 -0
  720. package/resources/stream/submit.d.ts +20 -0
  721. package/resources/stream/submit.d.ts.map +1 -0
  722. package/resources/stream/submit.js +125 -0
  723. package/resources/stream/submit.js.map +1 -0
  724. package/resources/stream/todo.d.ts +11 -0
  725. package/resources/stream/todo.d.ts.map +1 -0
  726. package/resources/stream/todo.js +44 -0
  727. package/resources/stream/todo.js.map +1 -0
  728. package/resources/stream/tool-state.d.ts +31 -0
  729. package/resources/stream/tool-state.d.ts.map +1 -0
  730. package/resources/stream/tool-state.js +126 -0
  731. package/resources/stream/tool-state.js.map +1 -0
  732. package/resources/stream/tty.d.ts +8 -0
  733. package/resources/stream/tty.d.ts.map +1 -0
  734. package/resources/stream/tty.js +15 -0
  735. package/resources/stream/tty.js.map +1 -0
  736. package/resources/stream/workflow-event-view.d.ts +21 -0
  737. package/resources/stream/workflow-event-view.d.ts.map +1 -0
  738. package/resources/stream/workflow-event-view.js +88 -0
  739. package/resources/stream/workflow-event-view.js.map +1 -0
  740. package/resources/stream/workflow-render-ndjson.d.ts +5 -0
  741. package/resources/stream/workflow-render-ndjson.d.ts.map +1 -0
  742. package/resources/stream/workflow-render-ndjson.js +54 -0
  743. package/resources/stream/workflow-render-ndjson.js.map +1 -0
  744. package/resources/stream/workflow-render-plaintext.d.ts +8 -0
  745. package/resources/stream/workflow-render-plaintext.d.ts.map +1 -0
  746. package/resources/stream/workflow-render-plaintext.js +34 -0
  747. package/resources/stream/workflow-render-plaintext.js.map +1 -0
  748. package/resources/tag.d.ts +4 -0
  749. package/resources/tag.d.ts.map +1 -0
  750. package/resources/tag.js +36 -0
  751. package/resources/tag.js.map +1 -0
  752. package/resources/usage.d.ts +14 -0
  753. package/resources/usage.d.ts.map +1 -0
  754. package/resources/usage.js +251 -0
  755. package/resources/usage.js.map +1 -0
  756. package/resources/validate.d.ts +6 -0
  757. package/resources/validate.d.ts.map +1 -0
  758. package/resources/validate.js +28 -0
  759. package/resources/validate.js.map +1 -0
  760. package/resources/version.d.ts +6 -0
  761. package/resources/version.d.ts.map +1 -0
  762. package/resources/version.js +75 -0
  763. package/resources/version.js.map +1 -0
  764. package/runtime.d.ts +5 -0
  765. package/runtime.d.ts.map +1 -0
  766. package/runtime.js +19 -0
  767. package/runtime.js.map +1 -0
  768. package/src/auth/auth0.ts +43 -0
  769. package/src/auth/callback-server.ts +104 -0
  770. package/src/auth/index.ts +6 -0
  771. package/src/auth/login.ts +61 -0
  772. package/src/auth/pages.ts +31 -0
  773. package/src/auth/pkce.test.ts +37 -0
  774. package/src/auth/pkce.ts +26 -0
  775. package/src/auth/token.test.ts +95 -0
  776. package/src/auth/token.ts +135 -0
  777. package/src/backend.ts +15 -0
  778. package/src/cli/stigmer.ts +16 -0
  779. package/src/client/client.test.ts +46 -0
  780. package/src/client/client.ts +84 -0
  781. package/src/client/index.ts +3 -0
  782. package/src/commands/agent-exec-flags.ts +75 -0
  783. package/src/commands/apikey/duration.test.ts +23 -0
  784. package/src/commands/apikey/duration.ts +35 -0
  785. package/src/commands/apikey/index.ts +133 -0
  786. package/src/commands/apply.ts +213 -0
  787. package/src/commands/auth/index.ts +87 -0
  788. package/src/commands/completion.ts +96 -0
  789. package/src/commands/config/backend.ts +58 -0
  790. package/src/commands/config/context.ts +26 -0
  791. package/src/commands/config/index.ts +18 -0
  792. package/src/commands/config/kv.ts +44 -0
  793. package/src/commands/connect.ts +75 -0
  794. package/src/commands/delete.ts +56 -0
  795. package/src/commands/diff.ts +97 -0
  796. package/src/commands/down.ts +27 -0
  797. package/src/commands/download.ts +68 -0
  798. package/src/commands/draft.ts +128 -0
  799. package/src/commands/execution/approve.ts +76 -0
  800. package/src/commands/execution/control.ts +79 -0
  801. package/src/commands/execution/index.ts +24 -0
  802. package/src/commands/execution/logs.ts +47 -0
  803. package/src/commands/execution/trace.ts +32 -0
  804. package/src/commands/get.ts +99 -0
  805. package/src/commands/internal-daemon.ts +25 -0
  806. package/src/commands/list.ts +138 -0
  807. package/src/commands/logs.ts +73 -0
  808. package/src/commands/mcp-server.test.ts +65 -0
  809. package/src/commands/mcp-server.ts +124 -0
  810. package/src/commands/push.ts +205 -0
  811. package/src/commands/reset.ts +57 -0
  812. package/src/commands/resume.ts +121 -0
  813. package/src/commands/run.ts +276 -0
  814. package/src/commands/search.ts +90 -0
  815. package/src/commands/seedpack.ts +94 -0
  816. package/src/commands/setup.ts +71 -0
  817. package/src/commands/shared.ts +41 -0
  818. package/src/commands/status.ts +20 -0
  819. package/src/commands/tag.ts +31 -0
  820. package/src/commands/up.ts +51 -0
  821. package/src/commands/usage.ts +74 -0
  822. package/src/commands/validate.test.ts +79 -0
  823. package/src/commands/validate.ts +73 -0
  824. package/src/commands/version.ts +13 -0
  825. package/src/config/config.test.ts +76 -0
  826. package/src/config/config.ts +127 -0
  827. package/src/config/index.ts +22 -0
  828. package/src/config/keys.test.ts +38 -0
  829. package/src/config/keys.ts +64 -0
  830. package/src/config/paths.ts +25 -0
  831. package/src/config/resolve.test.ts +103 -0
  832. package/src/config/resolve.ts +80 -0
  833. package/src/errors/classify.ts +199 -0
  834. package/src/errors/cli-exit-error.ts +16 -0
  835. package/src/errors/clierr.test.ts +172 -0
  836. package/src/errors/exit-codes.ts +14 -0
  837. package/src/errors/handle.ts +53 -0
  838. package/src/errors/index.ts +7 -0
  839. package/src/errors/usage-error.ts +14 -0
  840. package/src/index.ts +8 -0
  841. package/src/local/artifact.test.ts +28 -0
  842. package/src/local/artifact.ts +166 -0
  843. package/src/local/constants.ts +52 -0
  844. package/src/local/daemon/components.test.ts +80 -0
  845. package/src/local/daemon/components.ts +113 -0
  846. package/src/local/daemon/daemon.integration.test.ts +183 -0
  847. package/src/local/daemon/env.test.ts +51 -0
  848. package/src/local/daemon/env.ts +118 -0
  849. package/src/local/daemon/host.ts +79 -0
  850. package/src/local/daemon/index.ts +18 -0
  851. package/src/local/daemon/launch.ts +260 -0
  852. package/src/local/daemon/process.ts +183 -0
  853. package/src/local/daemon/supervisor.test.ts +260 -0
  854. package/src/local/daemon/supervisor.ts +249 -0
  855. package/src/local/daemon/types.ts +76 -0
  856. package/src/local/llm-config.test.ts +80 -0
  857. package/src/local/llm-config.ts +107 -0
  858. package/src/local/logs/tail.test.ts +70 -0
  859. package/src/local/logs/tail.ts +100 -0
  860. package/src/local/logs/view.test.ts +46 -0
  861. package/src/local/logs/view.ts +65 -0
  862. package/src/local/net/tcp.ts +65 -0
  863. package/src/local/paths.ts +67 -0
  864. package/src/local/reset.test.ts +53 -0
  865. package/src/local/reset.ts +90 -0
  866. package/src/local/runtime/index.ts +18 -0
  867. package/src/local/runtime/node.ts +67 -0
  868. package/src/local/runtime/runner.ts +186 -0
  869. package/src/local/runtime/runtime.test.ts +155 -0
  870. package/src/local/runtime/server.test.ts +152 -0
  871. package/src/local/runtime/server.ts +172 -0
  872. package/src/local/runtime/which.ts +30 -0
  873. package/src/local/seedpack/apply.test.ts +166 -0
  874. package/src/local/seedpack/apply.ts +139 -0
  875. package/src/local/seedpack/content.test.ts +148 -0
  876. package/src/local/seedpack/content.ts +223 -0
  877. package/src/local/setup/prompt.ts +70 -0
  878. package/src/local/setup/wizard.test.ts +42 -0
  879. package/src/local/setup/wizard.ts +78 -0
  880. package/src/local/state/health-state.ts +55 -0
  881. package/src/local/state/index.ts +8 -0
  882. package/src/local/state/lock.ts +77 -0
  883. package/src/local/state/log-rotation.ts +112 -0
  884. package/src/local/state/pidfile.ts +37 -0
  885. package/src/local/state/proc.ts +66 -0
  886. package/src/local/state/startup-config.ts +51 -0
  887. package/src/local/state/state.test.ts +166 -0
  888. package/src/local/status.test.ts +88 -0
  889. package/src/local/status.ts +186 -0
  890. package/src/local/temporal/download.test.ts +64 -0
  891. package/src/local/temporal/download.ts +54 -0
  892. package/src/local/temporal/index.ts +6 -0
  893. package/src/local/temporal/inspect.ts +32 -0
  894. package/src/local/temporal/manager.test.ts +31 -0
  895. package/src/local/temporal/manager.ts +247 -0
  896. package/src/local/temporal/supervisor.test.ts +77 -0
  897. package/src/local/temporal/supervisor.ts +97 -0
  898. package/src/local/webconsole/index.ts +13 -0
  899. package/src/logger.ts +39 -0
  900. package/src/output/command-result.test.ts +64 -0
  901. package/src/output/command-result.ts +185 -0
  902. package/src/output/confirm.test.ts +43 -0
  903. package/src/output/confirm.ts +53 -0
  904. package/src/output/format.test.ts +65 -0
  905. package/src/output/format.ts +101 -0
  906. package/src/output/index.ts +30 -0
  907. package/src/output/ndjson.ts +55 -0
  908. package/src/output/proto.test.ts +72 -0
  909. package/src/output/proto.ts +55 -0
  910. package/src/output/style.ts +57 -0
  911. package/src/output/table.test.ts +37 -0
  912. package/src/output/table.ts +52 -0
  913. package/src/program.test.ts +64 -0
  914. package/src/program.ts +100 -0
  915. package/src/registry/aliases.test.ts +99 -0
  916. package/src/registry/aliases.ts +93 -0
  917. package/src/registry/index.ts +7 -0
  918. package/src/registry/metadata.ts +60 -0
  919. package/src/registry/registry.test.ts +80 -0
  920. package/src/registry/registry.ts +101 -0
  921. package/src/registry/verb-support.ts +50 -0
  922. package/src/registry/verbs.ts +43 -0
  923. package/src/resources/apply/apply.integration.test.ts +207 -0
  924. package/src/resources/apply/apply.ts +202 -0
  925. package/src/resources/apply/declarative.integration.test.ts +126 -0
  926. package/src/resources/apply/declarative.test.ts +132 -0
  927. package/src/resources/apply/declarative.ts +474 -0
  928. package/src/resources/apply/discovery.ts +60 -0
  929. package/src/resources/apply/handlers.ts +145 -0
  930. package/src/resources/apply/synth/capstone.integration.test.ts +134 -0
  931. package/src/resources/apply/synth/project-track.integration.test.ts +194 -0
  932. package/src/resources/apply/synth/project-track.ts +126 -0
  933. package/src/resources/apply/synth/reader.test.ts +90 -0
  934. package/src/resources/apply/synth/reader.ts +68 -0
  935. package/src/resources/apply/synth/runtime.test.ts +29 -0
  936. package/src/resources/apply/synth/runtime.ts +39 -0
  937. package/src/resources/apply/synth/synthesize.test.ts +109 -0
  938. package/src/resources/apply/synth/synthesize.ts +161 -0
  939. package/src/resources/connect/__fixtures__/stdio-crash.mjs +6 -0
  940. package/src/resources/connect/__fixtures__/stdio-server.mjs +43 -0
  941. package/src/resources/connect/connect.integration.test.ts +185 -0
  942. package/src/resources/connect/connect.ts +107 -0
  943. package/src/resources/connect/discover.test.ts +45 -0
  944. package/src/resources/connect/discover.ts +125 -0
  945. package/src/resources/connect/display.ts +68 -0
  946. package/src/resources/connect/oauth.test.ts +155 -0
  947. package/src/resources/connect/oauth.ts +191 -0
  948. package/src/resources/delete.ts +239 -0
  949. package/src/resources/diff.integration.test.ts +103 -0
  950. package/src/resources/diff.test.ts +34 -0
  951. package/src/resources/diff.ts +187 -0
  952. package/src/resources/documents.test.ts +67 -0
  953. package/src/resources/documents.ts +102 -0
  954. package/src/resources/download.ts +151 -0
  955. package/src/resources/execution-approve.test.ts +50 -0
  956. package/src/resources/execution-approve.ts +94 -0
  957. package/src/resources/execution-control.ts +78 -0
  958. package/src/resources/execution-format.test.ts +48 -0
  959. package/src/resources/execution-format.ts +54 -0
  960. package/src/resources/execution-logs.ts +176 -0
  961. package/src/resources/execution-trace.ts +159 -0
  962. package/src/resources/execution.integration.test.ts +285 -0
  963. package/src/resources/execution.test.ts +138 -0
  964. package/src/resources/execution.ts +229 -0
  965. package/src/resources/get-bindings.ts +61 -0
  966. package/src/resources/get.ts +41 -0
  967. package/src/resources/git.ts +71 -0
  968. package/src/resources/ignore/defaults.ts +155 -0
  969. package/src/resources/ignore/ignore.test.ts +139 -0
  970. package/src/resources/ignore/index.ts +17 -0
  971. package/src/resources/ignore/match.ts +158 -0
  972. package/src/resources/ignore/matcher.ts +158 -0
  973. package/src/resources/ignore/pattern.ts +131 -0
  974. package/src/resources/list.ts +97 -0
  975. package/src/resources/mcp/runtime-env.test.ts +68 -0
  976. package/src/resources/mcp/runtime-env.ts +79 -0
  977. package/src/resources/mutate-verbs.integration.test.ts +233 -0
  978. package/src/resources/picker/ink.tsx +114 -0
  979. package/src/resources/picker/tty.test.ts +37 -0
  980. package/src/resources/picker/tty.ts +30 -0
  981. package/src/resources/push-download.integration.test.ts +175 -0
  982. package/src/resources/read-completion.integration.test.ts +156 -0
  983. package/src/resources/read-verbs.integration.test.ts +164 -0
  984. package/src/resources/reference.test.ts +107 -0
  985. package/src/resources/reference.ts +140 -0
  986. package/src/resources/render.ts +118 -0
  987. package/src/resources/run/agent-exec.ts +107 -0
  988. package/src/resources/run/attachments.test.ts +113 -0
  989. package/src/resources/run/attachments.ts +261 -0
  990. package/src/resources/run/create.test.ts +119 -0
  991. package/src/resources/run/create.ts +165 -0
  992. package/src/resources/run/env.test.ts +131 -0
  993. package/src/resources/run/env.ts +167 -0
  994. package/src/resources/run/epilogue.ts +166 -0
  995. package/src/resources/run/header.test.ts +61 -0
  996. package/src/resources/run/header.ts +62 -0
  997. package/src/resources/run/prepare.test.ts +92 -0
  998. package/src/resources/run/prepare.ts +139 -0
  999. package/src/resources/run/resolve.ts +32 -0
  1000. package/src/resources/run/resume.ts +119 -0
  1001. package/src/resources/run/stream.ts +108 -0
  1002. package/src/resources/run/workflow-stream.integration.test.ts +157 -0
  1003. package/src/resources/run/workflow-stream.ts +203 -0
  1004. package/src/resources/run/workspace.test.ts +93 -0
  1005. package/src/resources/run/workspace.ts +171 -0
  1006. package/src/resources/search.ts +53 -0
  1007. package/src/resources/session.test.ts +48 -0
  1008. package/src/resources/session.ts +66 -0
  1009. package/src/resources/skill.test.ts +227 -0
  1010. package/src/resources/skill.ts +451 -0
  1011. package/src/resources/stream/approval-detect.ts +118 -0
  1012. package/src/resources/stream/convert.ts +210 -0
  1013. package/src/resources/stream/diff.test.ts +316 -0
  1014. package/src/resources/stream/diff.ts +254 -0
  1015. package/src/resources/stream/events.ts +193 -0
  1016. package/src/resources/stream/headless.test.ts +119 -0
  1017. package/src/resources/stream/headless.ts +112 -0
  1018. package/src/resources/stream/ink.tsx +56 -0
  1019. package/src/resources/stream/lazy-import.test.ts +63 -0
  1020. package/src/resources/stream/render-ndjson.test.ts +116 -0
  1021. package/src/resources/stream/render-ndjson.ts +176 -0
  1022. package/src/resources/stream/render-plaintext.test.ts +68 -0
  1023. package/src/resources/stream/render-plaintext.ts +86 -0
  1024. package/src/resources/stream/snapshot.test.ts +97 -0
  1025. package/src/resources/stream/snapshot.ts +191 -0
  1026. package/src/resources/stream/subagent.ts +104 -0
  1027. package/src/resources/stream/submit.test.ts +77 -0
  1028. package/src/resources/stream/submit.ts +137 -0
  1029. package/src/resources/stream/todo.ts +53 -0
  1030. package/src/resources/stream/tool-state.ts +142 -0
  1031. package/src/resources/stream/tty.ts +14 -0
  1032. package/src/resources/stream/workflow-event-view.test.ts +116 -0
  1033. package/src/resources/stream/workflow-event-view.ts +111 -0
  1034. package/src/resources/stream/workflow-render-ndjson.ts +61 -0
  1035. package/src/resources/stream/workflow-render-plaintext.ts +43 -0
  1036. package/src/resources/stream/workflow-render.test.ts +81 -0
  1037. package/src/resources/tag.ts +50 -0
  1038. package/src/resources/usage.test.ts +94 -0
  1039. package/src/resources/usage.ts +301 -0
  1040. package/src/resources/validate.test.ts +54 -0
  1041. package/src/resources/validate.ts +31 -0
  1042. package/src/resources/version.ts +105 -0
  1043. package/src/runtime.ts +23 -0
  1044. package/src/types/marked-terminal.d.ts +31 -0
  1045. package/src/version.ts +46 -0
  1046. package/version.d.ts +2 -0
  1047. package/version.d.ts.map +1 -0
  1048. package/version.js +45 -0
  1049. package/version.js.map +1 -0
@@ -0,0 +1,32 @@
1
+ // Reference resolution for the run path (Go's resolveAgent / resolveWorkflow in
2
+ // run_resolve.go). A reference is an ID (agt_…/wfl_…), an explicit org/slug, or
3
+ // a bare slug resolved against the context org. The strict ID *classification*
4
+ // used by smart dispatch lives in resources/reference.ts; this module just turns
5
+ // a reference into a fetched resource.
6
+
7
+ import type { Agent } from "@stigmer/protos/ai/stigmer/agentic/agent/v1/api_pb";
8
+ import type { Workflow } from "@stigmer/protos/ai/stigmer/agentic/workflow/v1/api_pb";
9
+ import { ApiResourceKind } from "@stigmer/protos/ai/stigmer/commons/apiresource/apiresourcekind/api_resource_kind_pb";
10
+ import type { Stigmer } from "@stigmer/sdk";
11
+ import { defaultRegistry } from "../../registry/index.js";
12
+ import { parseReference } from "../reference.js";
13
+
14
+ /** Resolve an agent by ID, org/slug, or bare slug. Throws if not found. */
15
+ export async function resolveAgentRef(client: Stigmer, ref: string, org: string): Promise<Agent> {
16
+ const parsed = parseReference(ref, org, idPrefix(ApiResourceKind.agent));
17
+ if (parsed.kind === "id") return client.agent.get(parsed.id);
18
+ return client.agent.getByReference({ org: parsed.org, slug: parsed.slug });
19
+ }
20
+
21
+ /** Resolve a workflow by ID, org/slug, or bare slug. Throws if not found. */
22
+ export async function resolveWorkflowRef(client: Stigmer, ref: string, org: string): Promise<Workflow> {
23
+ const parsed = parseReference(ref, org, idPrefix(ApiResourceKind.workflow));
24
+ if (parsed.kind === "id") return client.workflow.get(parsed.id);
25
+ return client.workflow.getByReference({ org: parsed.org, slug: parsed.slug });
26
+ }
27
+
28
+ // The id_prefix for a kind, via the shared registry (single source of truth).
29
+ function idPrefix(kind: ApiResourceKind): string {
30
+ const alias = kind === ApiResourceKind.agent ? "agent" : "workflow";
31
+ return defaultRegistry().getByAlias(alias)?.idPrefix ?? "";
32
+ }
@@ -0,0 +1,119 @@
1
+ // Re-opening an existing session (Go's openSession / resumeSession in
2
+ // resume_session.go). Fetch the session + its executions, then either:
3
+ // - re-attach to the live stream when the latest execution is still active, or
4
+ // - replay the full history (snapshotToEvents) when everything has finished.
5
+ // The TTY path defers to Ink's SessionView, which loads history and offers a
6
+ // follow-up composer for free.
7
+
8
+ import type { AgentExecution } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/api_pb";
9
+ import { ApprovalAction, ExecutionPhase, InteractionMode } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
10
+ import type { BackendClient } from "../../client/index.js";
11
+ import { getSessionById, listExecutionsBySession } from "../session.js";
12
+ import { NdjsonRenderer } from "../stream/render-ndjson.js";
13
+ import { PlaintextRenderer } from "../stream/render-plaintext.js";
14
+ import { snapshotToEvents } from "../stream/snapshot.js";
15
+ import { isInkSupported } from "../stream/tty.js";
16
+ import { renderSessionHeader, type SessionHeaderInfo, workspaceNames } from "./header.js";
17
+ import type { RunMode } from "./prepare.js";
18
+ import { streamAgentExecution, type RunOutputMode } from "./stream.js";
19
+
20
+ // The backend's auto-create sentinel; suppressed in the header until the async
21
+ // title activity replaces it (Go's session.PendingSubject / ResolvedSubject).
22
+ const PENDING_SUBJECT = "Auto-created session";
23
+
24
+ // Phases where the latest execution is still producing output — re-attach live.
25
+ const ACTIVE_PHASES: ReadonlySet<ExecutionPhase> = new Set([
26
+ ExecutionPhase.EXECUTION_PENDING,
27
+ ExecutionPhase.EXECUTION_IN_PROGRESS,
28
+ ExecutionPhase.EXECUTION_WAITING_FOR_APPROVAL,
29
+ ExecutionPhase.EXECUTION_PAUSED,
30
+ ]);
31
+
32
+ export interface OpenSessionDeps {
33
+ readonly client: BackendClient;
34
+ readonly sessionId: string;
35
+ readonly org: string;
36
+ /** Explicit --mode override; "" means infer from the latest execution. */
37
+ readonly mode: RunMode;
38
+ readonly outputMode: RunOutputMode;
39
+ }
40
+
41
+ export async function openSession(deps: OpenSessionDeps): Promise<void> {
42
+ const stigmer = deps.client.stigmer;
43
+ const session = await getSessionById(stigmer, deps.sessionId);
44
+ const entries = await listExecutionsBySession(stigmer, deps.sessionId);
45
+ if (entries.length === 0) {
46
+ process.stderr.write(`Session ${deps.sessionId} has no executions\n`);
47
+ return;
48
+ }
49
+
50
+ const latest = entries[0];
51
+ const phase = latest.status?.phase ?? ExecutionPhase.EXECUTION_PHASE_UNSPECIFIED;
52
+ const effectiveMode = resolveResumeMode(deps.mode, latest);
53
+
54
+ const header: SessionHeaderInfo = {
55
+ agentName: "",
56
+ sessionId: deps.sessionId,
57
+ subject: resolvedSubject(session.spec?.subject ?? ""),
58
+ model: "",
59
+ mode: effectiveMode,
60
+ workspaces: workspaceNames(session.spec?.workspaceEntries ?? []),
61
+ };
62
+
63
+ if (ACTIVE_PHASES.has(phase)) {
64
+ // Live re-attach reuses the exact run streaming stack.
65
+ await streamAgentExecution({
66
+ client: stigmer,
67
+ sessionId: deps.sessionId,
68
+ executionId: latest.metadata?.id ?? "",
69
+ org: deps.org,
70
+ mode: effectiveMode,
71
+ defaultAction: ApprovalAction.UNSPECIFIED,
72
+ outputMode: deps.outputMode,
73
+ header,
74
+ });
75
+ return;
76
+ }
77
+
78
+ await replaySession(deps, entries, header);
79
+ }
80
+
81
+ // Completed session: render the stored history. TTY → Ink (history + composer);
82
+ // headless → snapshot events through the matching renderer.
83
+ async function replaySession(
84
+ deps: OpenSessionDeps,
85
+ entries: readonly AgentExecution[],
86
+ header: SessionHeaderInfo,
87
+ ): Promise<void> {
88
+ if (deps.outputMode === "inline" && isInkSupported(process.stdout)) {
89
+ const { runInkSession } = await import("../stream/ink.js");
90
+ await runInkSession({
91
+ client: deps.client.stigmer,
92
+ sessionId: deps.sessionId,
93
+ org: deps.org,
94
+ mode: header.mode === "plan" ? "plan" : "agent",
95
+ });
96
+ return;
97
+ }
98
+
99
+ renderSessionHeader(process.stderr, header);
100
+ const chronological = [...entries].reverse();
101
+ const events = snapshotToEvents(chronological);
102
+ const renderer =
103
+ deps.outputMode === "json"
104
+ ? new NdjsonRenderer({ data: process.stdout, status: process.stderr, defaultAction: ApprovalAction.UNSPECIFIED })
105
+ : new PlaintextRenderer({ data: process.stdout, status: process.stderr });
106
+ for (const event of events) renderer.render(event);
107
+ }
108
+
109
+ // Mirrors Go's resolveResumeMode: --mode wins; else infer "plan" from the last
110
+ // execution's InteractionMode; else default (agent).
111
+ function resolveResumeMode(explicit: RunMode, latest: AgentExecution): RunMode {
112
+ if (explicit !== "") return explicit;
113
+ if (latest.spec?.executionConfig?.interactionMode === InteractionMode.PLAN) return "plan";
114
+ return "";
115
+ }
116
+
117
+ function resolvedSubject(subject: string): string {
118
+ return subject === PENDING_SUBJECT ? "" : subject;
119
+ }
@@ -0,0 +1,108 @@
1
+ // Renderer dispatch for a created execution (Go's streamAgentExecution in
2
+ // run_stream.go). One of three paths is selected from the output mode and TTY:
3
+ //
4
+ // --json → headless NDJSON differ (stdout), Go's run --json taxonomy
5
+ // inline + TTY → in-process Ink (SessionView), lazily imported
6
+ // inline + non-TTY → headless plaintext differ (piped stdout)
7
+ //
8
+ // All three converge on the same epilogue (final Get + usage summary). The
9
+ // headless paths share one driver (runHeadlessStream) over the SDK's
10
+ // agentExecution.subscribe / submitApproval; the differ + renderers are the
11
+ // CLI-local port of Go's streamToEvents + handleJSONEvent.
12
+
13
+ import { create } from "@bufbuild/protobuf";
14
+ import type { AgentExecution } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/api_pb";
15
+ import { ApprovalAction } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
16
+ import { SubmitApprovalInputSchema } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/io_pb";
17
+ import type { Stigmer } from "@stigmer/sdk";
18
+ import { runEpilogue } from "./epilogue.js";
19
+ import { renderSessionHeader, type SessionHeaderInfo } from "./header.js";
20
+ import type { RunMode } from "./prepare.js";
21
+ import { runHeadlessStream, type HeadlessRenderer, type HeadlessResult } from "../stream/headless.js";
22
+ import { NdjsonRenderer } from "../stream/render-ndjson.js";
23
+ import { PlaintextRenderer } from "../stream/render-plaintext.js";
24
+ import { isInkSupported } from "../stream/tty.js";
25
+
26
+ /** The user-selected output mode for a streaming command. */
27
+ export type RunOutputMode = "inline" | "json";
28
+
29
+ export interface StreamDeps {
30
+ readonly client: Stigmer;
31
+ readonly sessionId: string;
32
+ readonly executionId: string;
33
+ /** Org slug, for follow-up executions created from the Ink composer. */
34
+ readonly org: string;
35
+ readonly mode: RunMode;
36
+ readonly defaultAction: ApprovalAction;
37
+ readonly outputMode: RunOutputMode;
38
+ readonly header: SessionHeaderInfo;
39
+ }
40
+
41
+ /**
42
+ * Stream the execution to a terminal phase, then run the epilogue. Returns the
43
+ * authoritative final execution (for artifact download).
44
+ */
45
+ export async function streamAgentExecution(deps: StreamDeps): Promise<AgentExecution> {
46
+ if (deps.outputMode === "json") {
47
+ renderSessionHeader(process.stderr, deps.header);
48
+ const result = await runHeadless(deps, jsonRenderer(deps));
49
+ return runEpilogue(deps.client, deps.sessionId, deps.executionId, result);
50
+ }
51
+
52
+ if (isInkSupported(process.stdout)) {
53
+ await runInk(deps);
54
+ // Ink owns the live view; the epilogue still prints the exit summary.
55
+ return runEpilogue(deps.client, deps.sessionId, deps.executionId, { phase: "", error: "" });
56
+ }
57
+
58
+ renderSessionHeader(process.stderr, deps.header);
59
+ const result = await runHeadless(deps, plaintextRenderer());
60
+ return runEpilogue(deps.client, deps.sessionId, deps.executionId, result);
61
+ }
62
+
63
+ function jsonRenderer(deps: StreamDeps): HeadlessRenderer {
64
+ return new NdjsonRenderer({ data: process.stdout, status: process.stderr, defaultAction: deps.defaultAction });
65
+ }
66
+
67
+ function plaintextRenderer(): HeadlessRenderer {
68
+ return new PlaintextRenderer({ data: process.stdout, status: process.stderr });
69
+ }
70
+
71
+ // Drive a headless renderer over the SDK stream, with Ctrl-C wired to abort the
72
+ // subscription cleanly (Go cancels the stream context on signal; the driver
73
+ // treats an aborted signal as a clean exit and the epilogue prints the phase).
74
+ async function runHeadless(deps: StreamDeps, renderer: HeadlessRenderer): Promise<HeadlessResult> {
75
+ const controller = new AbortController();
76
+ const onSignal = (): void => controller.abort();
77
+ process.once("SIGINT", onSignal);
78
+ process.once("SIGTERM", onSignal);
79
+
80
+ try {
81
+ return await runHeadlessStream({
82
+ subscribe: (signal) => deps.client.agentExecution.subscribe(deps.executionId, signal),
83
+ submitApproval: async (toolCallId, action) => {
84
+ await deps.client.agentExecution.submitApproval(
85
+ create(SubmitApprovalInputSchema, { agentExecutionId: deps.executionId, toolCallId, action }),
86
+ );
87
+ },
88
+ renderer,
89
+ sessionId: deps.sessionId,
90
+ signal: controller.signal,
91
+ });
92
+ } finally {
93
+ process.removeListener("SIGINT", onSignal);
94
+ process.removeListener("SIGTERM", onSignal);
95
+ }
96
+ }
97
+
98
+ // Lazily import the Ink renderer so React/Ink load only on the interactive path
99
+ // (DD-001 boundary — non-streaming commands and --help never pay for them).
100
+ async function runInk(deps: StreamDeps): Promise<void> {
101
+ const { runInkSession } = await import("../stream/ink.js");
102
+ await runInkSession({
103
+ client: deps.client,
104
+ sessionId: deps.sessionId,
105
+ org: deps.org,
106
+ mode: deps.mode === "plan" ? "plan" : "agent",
107
+ });
108
+ }
@@ -0,0 +1,157 @@
1
+ // In-process integration test for live `run workflow` streaming.
2
+ //
3
+ // Stands up a real Connect backend serving workflowExecution.subscribeEvents
4
+ // (the canonical event stream) plus get + submitApproval, points an SDK node
5
+ // client at it, and drives streamWorkflowExecution end to end: NDJSON vs inline
6
+ // rendering (D-WF-1), policy-driven approval submission on approval_requested,
7
+ // terminal-event stop, and the final-Get epilogue summary.
8
+
9
+ import { create } from "@bufbuild/protobuf";
10
+ import type { ConnectRouter } from "@connectrpc/connect";
11
+ import { connectNodeAdapter } from "@connectrpc/connect-node";
12
+ import { ApprovalAction } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
13
+ import { WorkflowExecutionSchema } from "@stigmer/protos/ai/stigmer/agentic/workflowexecution/v1/api_pb";
14
+ import { WorkflowExecutionCommandController } from "@stigmer/protos/ai/stigmer/agentic/workflowexecution/v1/command_pb";
15
+ import { ExecutionPhase, WorkflowTaskStatus } from "@stigmer/protos/ai/stigmer/agentic/workflowexecution/v1/enum_pb";
16
+ import {
17
+ type WorkflowExecutionEvent,
18
+ WorkflowExecutionEventSchema,
19
+ WorkflowEventType,
20
+ } from "@stigmer/protos/ai/stigmer/agentic/workflowexecution/v1/event_pb";
21
+ import type { SubmitWorkflowApprovalInput } from "@stigmer/protos/ai/stigmer/agentic/workflowexecution/v1/io_pb";
22
+ import { WorkflowExecutionQueryController } from "@stigmer/protos/ai/stigmer/agentic/workflowexecution/v1/query_pb";
23
+ import type { Stigmer } from "@stigmer/sdk";
24
+ import { createNodeClient, normalizeEndpoint } from "@stigmer/sdk/node";
25
+ import { createServer as createHttp2Server, type Http2Server, type ServerHttp2Session } from "node:http2";
26
+ import type { AddressInfo } from "node:net";
27
+ import { afterAll, beforeAll, beforeEach, describe, expect, it } from "vitest";
28
+ import { streamWorkflowExecution, type WorkflowStreamStreams } from "./workflow-stream.js";
29
+
30
+ let backend: Http2Server;
31
+ let client: Stigmer;
32
+ const openSessions = new Set<ServerHttp2Session>();
33
+ let approvals: SubmitWorkflowApprovalInput[] = [];
34
+
35
+ beforeEach(() => {
36
+ approvals = [];
37
+ });
38
+
39
+ // Final state returned by the epilogue Get: one task done, one failed.
40
+ const finalExec = create(WorkflowExecutionSchema, {
41
+ metadata: { id: "wex_1", name: "Deploy" },
42
+ status: {
43
+ phase: ExecutionPhase.EXECUTION_COMPLETED,
44
+ startedAt: "2026-06-12T10:00:00Z",
45
+ completedAt: "2026-06-12T10:01:30Z",
46
+ tasks: [
47
+ { taskName: "build", status: WorkflowTaskStatus.WORKFLOW_TASK_COMPLETED },
48
+ { taskName: "ship", status: WorkflowTaskStatus.WORKFLOW_TASK_FAILED },
49
+ ],
50
+ },
51
+ });
52
+
53
+ function event(type: WorkflowEventType, payload: WorkflowExecutionEvent["payload"], taskName = "") {
54
+ return create(WorkflowExecutionEventSchema, { eventType: type, occurredAt: "2026-06-12T10:00:01Z", taskName, payload });
55
+ }
56
+
57
+ beforeAll(async () => {
58
+ const routes = (router: ConnectRouter) => {
59
+ router.service(WorkflowExecutionQueryController, {
60
+ get: () => finalExec,
61
+ subscribeEvents: async function* () {
62
+ yield event(WorkflowEventType.execution_started, { case: "executionStarted", value: {} as never });
63
+ yield event(WorkflowEventType.task_started, { case: "taskStarted", value: {} as never }, "build");
64
+ yield event(
65
+ WorkflowEventType.approval_requested,
66
+ { case: "approvalRequested", value: { toolCallId: "tc_99", prompt: "delete prod?" } as never },
67
+ "ship",
68
+ );
69
+ yield event(WorkflowEventType.execution_completed, { case: "executionCompleted", value: {} as never });
70
+ },
71
+ });
72
+ router.service(WorkflowExecutionCommandController, {
73
+ submitApproval: (req) => (approvals.push(req), finalExec),
74
+ });
75
+ };
76
+
77
+ backend = createHttp2Server(connectNodeAdapter({ routes }));
78
+ backend.on("session", (session) => {
79
+ openSessions.add(session);
80
+ session.on("close", () => openSessions.delete(session));
81
+ });
82
+ await new Promise<void>((resolve) => backend.listen(0, "127.0.0.1", resolve));
83
+ const port = (backend.address() as AddressInfo).port;
84
+ client = createNodeClient({ baseUrl: normalizeEndpoint(`127.0.0.1:${port}`) });
85
+ });
86
+
87
+ afterAll(async () => {
88
+ for (const session of openSessions) session.destroy();
89
+ await new Promise<void>((resolve) => backend.close(() => resolve()));
90
+ });
91
+
92
+ function capture(): { streams: WorkflowStreamStreams; data: () => string; status: () => string } {
93
+ const out: string[] = [];
94
+ const err: string[] = [];
95
+ return {
96
+ streams: { data: (l) => out.push(l), status: (l) => err.push(l), colorize: false },
97
+ data: () => out.join(""),
98
+ status: () => err.join("\n"),
99
+ };
100
+ }
101
+
102
+ describe("live run workflow streaming", () => {
103
+ it("renders inline plaintext, auto-resolves approval, and prints the epilogue", async () => {
104
+ const cap = capture();
105
+ const result = await streamWorkflowExecution(
106
+ { client, executionId: "wex_1", outputMode: "inline", defaultAction: ApprovalAction.APPROVE },
107
+ cap.streams,
108
+ );
109
+
110
+ const data = cap.data();
111
+ expect(data).toContain("execution started");
112
+ expect(data).toContain("task started: build");
113
+ expect(data).toContain("approval requested: ship — delete prod?");
114
+ expect(data).toContain("execution completed");
115
+
116
+ // Policy resolved the approval: one submit with the right tool call + action.
117
+ expect(approvals).toHaveLength(1);
118
+ expect(approvals[0].toolCallId).toBe("tc_99");
119
+ expect(approvals[0].action).toBe(ApprovalAction.APPROVE);
120
+ expect(cap.status()).toContain("Approval auto-resolved (approve) for tc_99");
121
+
122
+ // Epilogue summary from the final Get.
123
+ expect(cap.status()).toContain("Workflow completed");
124
+ expect(cap.status()).toContain("1 completed");
125
+ expect(cap.status()).toContain("1 failed");
126
+ expect(result.metadata?.id).toBe("wex_1");
127
+ });
128
+
129
+ it("emits NDJSON event envelopes with canonical type names (D-WF-1)", async () => {
130
+ const cap = capture();
131
+ await streamWorkflowExecution(
132
+ { client, executionId: "wex_1", outputMode: "json", defaultAction: ApprovalAction.APPROVE },
133
+ cap.streams,
134
+ );
135
+
136
+ const lines = cap.data().trim().split("\n").map((l) => JSON.parse(l));
137
+ expect(lines.map((e) => e.type)).toEqual([
138
+ "execution_started",
139
+ "task_started",
140
+ "approval_requested",
141
+ "execution_completed",
142
+ ]);
143
+ const approval = lines.find((e) => e.type === "approval_requested");
144
+ expect(approval.payload.task).toBe("ship");
145
+ });
146
+
147
+ it("leaves the approval for the user when no policy is configured", async () => {
148
+ const cap = capture();
149
+ await streamWorkflowExecution(
150
+ { client, executionId: "wex_1", outputMode: "inline", defaultAction: ApprovalAction.UNSPECIFIED },
151
+ cap.streams,
152
+ );
153
+
154
+ expect(approvals).toHaveLength(0);
155
+ expect(cap.status()).toContain("stigmer execution approve wex_1 --tool-call tc_99 --action approve");
156
+ });
157
+ });
@@ -0,0 +1,203 @@
1
+ // Live `run workflow` streaming over the canonical WorkflowExecutionEvent stream.
2
+ //
3
+ // Unlike the agent path (which has only status snapshots and so must diff them —
4
+ // see resources/stream/headless.ts), WorkflowExecution exposes subscribeEvents:
5
+ // an incremental, sequenced, persisted event stream with explicit terminal
6
+ // markers. A live run view *is* a timeline view, so we consume that stream
7
+ // directly and render through the shared workflow event renderer (B1). This is
8
+ // why `run workflow`, `execution logs`, and the web execution viewer all speak
9
+ // the same event vocabulary — the server's — instead of a CLI-private one.
10
+ //
11
+ // Mirrors the *behavior* of Go's streamWorkflowExecution (run_stream.go): render
12
+ // progress, resolve bubbled tool approvals via the run's approval policy, stop on
13
+ // a terminal state, then print a completion summary. It diverges deliberately on
14
+ // the source primitive (events, not snapshots) and on approvals: per the shipped
15
+ // decision, workflows have no inline raw-mode prompter, so an approval is either
16
+ // resolved by the configured policy (--approve-default / --auto-approve) or left
17
+ // for the user to resolve out-of-band via `stigmer execution approve`.
18
+
19
+ import { create } from "@bufbuild/protobuf";
20
+ import { ApprovalAction } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
21
+ import type { WorkflowExecution, WorkflowTask } from "@stigmer/protos/ai/stigmer/agentic/workflowexecution/v1/api_pb";
22
+ import { ExecutionPhase, WorkflowTaskStatus } from "@stigmer/protos/ai/stigmer/agentic/workflowexecution/v1/enum_pb";
23
+ import type { WorkflowExecutionEvent } from "@stigmer/protos/ai/stigmer/agentic/workflowexecution/v1/event_pb";
24
+ import {
25
+ SubmitWorkflowApprovalInputSchema,
26
+ SubscribeEventsRequestSchema,
27
+ } from "@stigmer/protos/ai/stigmer/agentic/workflowexecution/v1/io_pb";
28
+ import type { Stigmer } from "@stigmer/sdk";
29
+ import { shouldColorize, type Styler, styler } from "../../output/style.js";
30
+ import { calculateDuration } from "../execution-format.js";
31
+ import { formatWorkflowPhase } from "../execution.js";
32
+ import { APPROVAL_RETRY_BASE_DELAY_MS, APPROVAL_RETRY_MAX_ATTEMPTS, retryWithBackoff } from "../stream/submit.js";
33
+ import { toWorkflowEventView } from "../stream/workflow-event-view.js";
34
+ import { renderWorkflowEventPlaintext } from "../stream/workflow-render-plaintext.js";
35
+ import { workflowEventToNdjson } from "../stream/workflow-render-ndjson.js";
36
+
37
+ /** Output mode for the run stream: human (inline) lines or NDJSON. */
38
+ export type RunOutputMode = "inline" | "json";
39
+
40
+ export interface WorkflowStreamDeps {
41
+ readonly client: Stigmer;
42
+ readonly executionId: string;
43
+ readonly outputMode: RunOutputMode;
44
+ /** Approval policy: APPROVE_ALL when --auto-approve, else --approve-default (or UNSPECIFIED). */
45
+ readonly defaultAction: ApprovalAction;
46
+ }
47
+
48
+ /** Output sinks; defaults to stdout (events) + stderr (notices/summary). */
49
+ export interface WorkflowStreamStreams {
50
+ data(line: string): void;
51
+ status(line: string): void;
52
+ readonly colorize: boolean;
53
+ }
54
+
55
+ /**
56
+ * Stream a workflow execution to a terminal state, then print a summary. Returns
57
+ * the authoritative final execution (a final Get), mirroring the agent path's
58
+ * return for symmetry. Ctrl-C aborts the subscription cleanly.
59
+ */
60
+ export async function streamWorkflowExecution(
61
+ deps: WorkflowStreamDeps,
62
+ streams: WorkflowStreamStreams = defaultStreams(),
63
+ ): Promise<WorkflowExecution> {
64
+ const controller = new AbortController();
65
+ const onSignal = (): void => controller.abort();
66
+ process.once("SIGINT", onSignal);
67
+ process.once("SIGTERM", onSignal);
68
+
69
+ const resolved = new Set<string>();
70
+ try {
71
+ const stream = deps.client.workflowExecution.subscribeEvents(
72
+ create(SubscribeEventsRequestSchema, { executionId: deps.executionId }),
73
+ controller.signal,
74
+ );
75
+ for await (const event of stream) {
76
+ renderEvent(event, deps.outputMode, streams);
77
+ await maybeResolveApproval(event, deps, streams, resolved, controller.signal);
78
+ if (toWorkflowEventView(event).terminal) break;
79
+ }
80
+ } catch (error) {
81
+ if (!controller.signal.aborted) throw error;
82
+ } finally {
83
+ process.removeListener("SIGINT", onSignal);
84
+ process.removeListener("SIGTERM", onSignal);
85
+ }
86
+
87
+ return runWorkflowEpilogue(deps.client, deps.executionId, streams);
88
+ }
89
+
90
+ function renderEvent(event: WorkflowExecutionEvent, mode: RunOutputMode, streams: WorkflowStreamStreams): void {
91
+ if (mode === "json") {
92
+ streams.data(`${JSON.stringify(workflowEventToNdjson(event))}\n`);
93
+ return;
94
+ }
95
+ renderWorkflowEventPlaintext(event, { write: streams.data }, streams.colorize);
96
+ }
97
+
98
+ // Resolve a bubbled tool approval. With a policy, submit it (retrying transient
99
+ // failures); without one, print the manual escape hatch and leave it for the user.
100
+ // Each tool_call_id is handled once (mirrors Go's promptedToolCallIDs guard).
101
+ async function maybeResolveApproval(
102
+ event: WorkflowExecutionEvent,
103
+ deps: WorkflowStreamDeps,
104
+ streams: WorkflowStreamStreams,
105
+ resolved: Set<string>,
106
+ signal: AbortSignal,
107
+ ): Promise<void> {
108
+ if (event.payload.case !== "approvalRequested") return;
109
+ const toolCallId = event.payload.value.toolCallId;
110
+ if (toolCallId === "" || resolved.has(toolCallId)) return;
111
+ resolved.add(toolCallId);
112
+
113
+ const escapeHatch = `stigmer execution approve ${deps.executionId} --tool-call ${toolCallId} --action approve`;
114
+ if (deps.defaultAction === ApprovalAction.UNSPECIFIED) {
115
+ streams.status(` ⏳ Approval required for ${toolCallId}. Resolve it with:`);
116
+ streams.status(` ${escapeHatch}`);
117
+ return;
118
+ }
119
+
120
+ await retryWithBackoff(signal, APPROVAL_RETRY_MAX_ATTEMPTS, APPROVAL_RETRY_BASE_DELAY_MS, async () => {
121
+ await deps.client.workflowExecution.submitApproval(
122
+ create(SubmitWorkflowApprovalInputSchema, {
123
+ executionId: deps.executionId,
124
+ toolCallId,
125
+ action: deps.defaultAction,
126
+ }),
127
+ );
128
+ });
129
+ streams.status(` ✓ Approval auto-resolved (${approvalLabel(deps.defaultAction)}) for ${toolCallId}`);
130
+ }
131
+
132
+ // Final Get + a compact completion summary (port of Go's
133
+ // displayWorkflowExecutionComplete, without the panel chrome — to stderr so
134
+ // piped event output on stdout stays clean).
135
+ async function runWorkflowEpilogue(
136
+ client: Stigmer,
137
+ executionId: string,
138
+ streams: WorkflowStreamStreams,
139
+ ): Promise<WorkflowExecution> {
140
+ const exec = await client.workflowExecution.get(executionId);
141
+ const style = styler(streams.colorize);
142
+ const status = exec.status;
143
+ const phase = status?.phase ?? ExecutionPhase.EXECUTION_PHASE_UNSPECIFIED;
144
+
145
+ streams.status("");
146
+ streams.status(summaryHeadline(phase, status?.error ?? "", style));
147
+
148
+ const duration = calculateDuration(status?.startedAt ?? "", status?.completedAt ?? "");
149
+ if (duration !== "-") streams.status(` Duration: ${duration}`);
150
+
151
+ const tasks = status?.tasks ?? [];
152
+ const counts = countTasks(tasks);
153
+ streams.status(` Tasks: ${tasks.length} total`);
154
+ if (counts.completed > 0) streams.status(` ${counts.completed} completed`);
155
+ if (counts.failed > 0) streams.status(` ${counts.failed} failed`);
156
+ if (counts.skipped > 0) streams.status(` ${counts.skipped} skipped`);
157
+
158
+ return exec;
159
+ }
160
+
161
+ function summaryHeadline(phase: ExecutionPhase, error: string, style: Styler): string {
162
+ switch (phase) {
163
+ case ExecutionPhase.EXECUTION_COMPLETED:
164
+ return style.green("✓ Workflow completed");
165
+ case ExecutionPhase.EXECUTION_FAILED:
166
+ return style.red(`✗ Workflow failed${error !== "" ? `: ${error}` : ""}`);
167
+ case ExecutionPhase.EXECUTION_CANCELLED:
168
+ return style.yellow("Workflow cancelled");
169
+ case ExecutionPhase.EXECUTION_TERMINATED:
170
+ return style.yellow("Workflow terminated");
171
+ default:
172
+ return style.yellow(`Workflow exited (${formatWorkflowPhase(phase)})`);
173
+ }
174
+ }
175
+
176
+ interface TaskCounts {
177
+ completed: number;
178
+ failed: number;
179
+ skipped: number;
180
+ }
181
+
182
+ // Tally terminal task outcomes. Mirrors Go's countWorkflowTasks.
183
+ function countTasks(tasks: readonly WorkflowTask[]): TaskCounts {
184
+ const counts: TaskCounts = { completed: 0, failed: 0, skipped: 0 };
185
+ for (const task of tasks) {
186
+ if (task.status === WorkflowTaskStatus.WORKFLOW_TASK_COMPLETED) counts.completed++;
187
+ else if (task.status === WorkflowTaskStatus.WORKFLOW_TASK_FAILED) counts.failed++;
188
+ else if (task.status === WorkflowTaskStatus.WORKFLOW_TASK_SKIPPED) counts.skipped++;
189
+ }
190
+ return counts;
191
+ }
192
+
193
+ function approvalLabel(action: ApprovalAction): string {
194
+ return (ApprovalAction[action] ?? "unspecified").toLowerCase();
195
+ }
196
+
197
+ function defaultStreams(): WorkflowStreamStreams {
198
+ return {
199
+ data: (line) => void process.stdout.write(line),
200
+ status: (line) => void process.stderr.write(`${line}\n`),
201
+ colorize: shouldColorize(process.stderr),
202
+ };
203
+ }