@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,102 @@
1
+ // Shared YAML document loading for the file-based verbs (validate, diff, apply).
2
+ //
3
+ // One loader, two strictness modes (the S-strict decision):
4
+ // - lenient (default) — tolerates malformed YAML the same way Wave-1 validate
5
+ // did; `toJS()` best-effort, no error surfacing.
6
+ // - strict — rejects any document with YAML parse errors. Used by `apply`,
7
+ // where silently applying a half-parsed document would be dangerous.
8
+ //
9
+ // Each loaded document carries its parsed JSON value (for kind detection and
10
+ // schema work) and its raw text (for `diff`, which compares the user's authored
11
+ // bytes against the rendered remote state).
12
+
13
+ import { readdirSync, readFileSync, statSync } from "node:fs";
14
+ import { extname, join } from "node:path";
15
+ import type { JsonValue } from "@bufbuild/protobuf";
16
+ import { parseAllDocuments } from "yaml";
17
+ import { UsageError } from "../errors/index.js";
18
+
19
+ export interface LoadedDocument {
20
+ readonly kind: string;
21
+ readonly document: JsonValue;
22
+ /** Raw YAML text of this document (whole file when single-document). */
23
+ readonly raw: string;
24
+ }
25
+
26
+ export interface LoadOptions {
27
+ /** Reject documents with YAML parse errors (apply); off mirrors Wave-1 validate. */
28
+ readonly strict?: boolean;
29
+ }
30
+
31
+ /** Expand a path into the YAML files it covers (single file, or dir walk). */
32
+ export function resolveYamlFiles(path: string): string[] {
33
+ let stat: ReturnType<typeof statSync>;
34
+ try {
35
+ stat = statSync(path);
36
+ } catch (err) {
37
+ // A path the user typed that doesn't exist is a bad argument, not an
38
+ // unexpected I/O failure — surface it as a usage error.
39
+ throw new UsageError(`cannot access ${path}: ${(err as Error).message}`);
40
+ }
41
+ if (!stat.isDirectory()) return [path];
42
+
43
+ const files: string[] = [];
44
+ const walk = (dir: string): void => {
45
+ for (const entry of readdirSync(dir, { withFileTypes: true })) {
46
+ const full = join(dir, entry.name);
47
+ if (entry.isDirectory()) {
48
+ walk(full);
49
+ } else if (isYaml(full)) {
50
+ files.push(full);
51
+ }
52
+ }
53
+ };
54
+ walk(path);
55
+ return files;
56
+ }
57
+
58
+ /** Parse a file's YAML documents, detecting each document's `kind`. */
59
+ export function loadDocuments(file: string, options: LoadOptions = {}): LoadedDocument[] {
60
+ let text: string;
61
+ try {
62
+ text = readFileSync(file, "utf8");
63
+ } catch (err) {
64
+ throw new Error(`cannot read ${file}: ${(err as Error).message}`);
65
+ }
66
+
67
+ const docs = parseAllDocuments(text);
68
+ const singleDocument = docs.length === 1;
69
+ const results: LoadedDocument[] = [];
70
+
71
+ for (const doc of docs) {
72
+ if (options.strict === true && doc.errors.length > 0) {
73
+ throw new UsageError(`invalid YAML in ${file}: ${doc.errors[0].message}`);
74
+ }
75
+ const value = doc.toJS() as unknown;
76
+ if (value === null || value === undefined) continue;
77
+ if (typeof value !== "object") {
78
+ throw new UsageError(`invalid YAML document in ${file}`);
79
+ }
80
+ const kind = (value as Record<string, unknown>).kind;
81
+ if (typeof kind !== "string" || kind === "") {
82
+ throw new UsageError(`missing 'kind' field in ${file}`);
83
+ }
84
+ results.push({ kind, document: value as JsonValue, raw: rawText(text, doc, singleDocument) });
85
+ }
86
+ return results;
87
+ }
88
+
89
+ // The `yaml` Document exposes a [valueStart, valueEnd, nodeEnd] range into the
90
+ // source. For multi-document files we slice per document; a single document is
91
+ // just the whole file (matching Go's RawContent for the common case).
92
+ function rawText(source: string, doc: { range?: readonly [number, number, number] | null }, single: boolean): string {
93
+ if (single) return source;
94
+ const range = doc.range;
95
+ if (range === undefined || range === null) return source;
96
+ return source.slice(range[0], range[2]);
97
+ }
98
+
99
+ function isYaml(file: string): boolean {
100
+ const ext = extname(file).toLowerCase();
101
+ return ext === ".yaml" || ext === ".yml";
102
+ }
@@ -0,0 +1,151 @@
1
+ // `download execution`: stream an execution's artifacts to disk via short-lived
2
+ // presigned URLs. Partial-failure tolerant — a failed artifact is reported and
3
+ // skipped, never aborting the batch (mirrors Go's downloadExecutionArtifacts).
4
+
5
+ import { createWriteStream, mkdirSync } from "node:fs";
6
+ import { dirname, join } from "node:path";
7
+ import { Readable } from "node:stream";
8
+ import { pipeline } from "node:stream/promises";
9
+ import type { ReadableStream as NodeReadableStream } from "node:stream/web";
10
+ import { create } from "@bufbuild/protobuf";
11
+ import type { ExecutionArtifact } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/artifact_pb";
12
+ import { ExecutionPhase } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
13
+ import { GetArtifactDownloadUrlRequestSchema } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/io_pb";
14
+ import type { Stigmer } from "@stigmer/sdk";
15
+ import { CliExitError, ExitCode } from "../errors/index.js";
16
+ import { formatBytes } from "./skill.js";
17
+
18
+ export interface DownloadParams {
19
+ readonly artifactName: string;
20
+ readonly outputDir: string;
21
+ }
22
+
23
+ export interface DownloadOutcome {
24
+ readonly total: number;
25
+ readonly downloaded: number;
26
+ readonly noArtifacts: boolean;
27
+ /** Set when the execution is not yet terminal (a soft warning, not an error). */
28
+ readonly incompletePhase?: string;
29
+ }
30
+
31
+ /** A sink for human progress/warning lines (download is not byte-parity output). */
32
+ export type ProgressSink = (line: string) => void;
33
+
34
+ const TERMINAL_PHASES: ReadonlySet<ExecutionPhase> = new Set([
35
+ ExecutionPhase.EXECUTION_COMPLETED,
36
+ ExecutionPhase.EXECUTION_FAILED,
37
+ ExecutionPhase.EXECUTION_CANCELLED,
38
+ ExecutionPhase.EXECUTION_TERMINATED,
39
+ ]);
40
+
41
+ export async function downloadExecutionArtifacts(
42
+ client: Stigmer,
43
+ executionId: string,
44
+ params: DownloadParams,
45
+ progress?: ProgressSink,
46
+ ): Promise<DownloadOutcome> {
47
+ const execution = await client.agentExecution.get(executionId);
48
+ const phase = execution.status?.phase ?? ExecutionPhase.EXECUTION_PHASE_UNSPECIFIED;
49
+ const incompletePhase = TERMINAL_PHASES.has(phase) ? undefined : formatDownloadPhase(phase);
50
+ if (incompletePhase !== undefined) {
51
+ progress?.(`Execution is still ${incompletePhase}. Artifacts may not be complete until execution finishes.`);
52
+ }
53
+
54
+ let artifacts = execution.status?.artifacts ?? [];
55
+ if (artifacts.length === 0) {
56
+ return { total: 0, downloaded: 0, noArtifacts: true, incompletePhase };
57
+ }
58
+
59
+ if (params.artifactName !== "") {
60
+ artifacts = artifacts.filter((a) => a.name === params.artifactName);
61
+ if (artifacts.length === 0) {
62
+ throw new CliExitError(
63
+ `artifact not found: ${params.artifactName}\n\n` +
64
+ `Use 'stigmer get execution ${executionId}' to see available artifacts`,
65
+ ExitCode.General,
66
+ );
67
+ }
68
+ }
69
+
70
+ mkdirSync(params.outputDir, { recursive: true });
71
+
72
+ let downloaded = 0;
73
+ for (const artifact of artifacts) {
74
+ try {
75
+ const written = await downloadSingle(client, executionId, artifact, params.outputDir, progress);
76
+ progress?.(` Downloaded ${artifact.name} (${formatBytes(written)})`);
77
+ downloaded++;
78
+ } catch (err) {
79
+ progress?.(` Failed to download ${artifact.name}: ${(err as Error).message}`);
80
+ }
81
+ }
82
+
83
+ return { total: artifacts.length, downloaded, noArtifacts: false, incompletePhase };
84
+ }
85
+
86
+ async function downloadSingle(
87
+ client: Stigmer,
88
+ executionId: string,
89
+ artifact: ExecutionArtifact,
90
+ outputDir: string,
91
+ progress?: ProgressSink,
92
+ ): Promise<number> {
93
+ const url = await resolveDownloadUrl(client, executionId, artifact);
94
+ const destPath = join(outputDir, artifact.name);
95
+ mkdirSync(dirname(destPath), { recursive: true });
96
+
97
+ progress?.(` Downloading ${artifact.name} (${formatBytes(Number(artifact.sizeBytes))})...`);
98
+
99
+ const response = await fetch(url);
100
+ if (!response.ok || response.body === null) {
101
+ throw new Error(`HTTP ${response.status}: ${response.statusText}`);
102
+ }
103
+
104
+ let written = 0;
105
+ const counter = new TransformStream<Uint8Array, Uint8Array>({
106
+ transform(chunk, controller) {
107
+ written += chunk.byteLength;
108
+ controller.enqueue(chunk);
109
+ },
110
+ });
111
+ // The CLI compiles with the `dom` lib (for in-process Ink/React), so `fetch`'s
112
+ // body types as the DOM ReadableStream. `Readable.fromWeb` wants Node's
113
+ // stream/web variant; they are structurally identical at runtime, so we bridge
114
+ // the two type worlds at this single boundary.
115
+ const counted = response.body.pipeThrough(counter) as unknown as NodeReadableStream<Uint8Array>;
116
+ await pipeline(Readable.fromWeb(counted), createWriteStream(destPath));
117
+ return written;
118
+ }
119
+
120
+ /**
121
+ * Get a fresh presigned URL, falling back to the artifact's cached URL when the
122
+ * refresh RPC fails (matching Go: prefer fresh, tolerate transient gRPC errors).
123
+ */
124
+ async function resolveDownloadUrl(client: Stigmer, executionId: string, artifact: ExecutionArtifact): Promise<string> {
125
+ try {
126
+ const response = await client.agentExecution.getArtifactDownloadUrl(
127
+ create(GetArtifactDownloadUrlRequestSchema, { executionId, storageKey: artifact.storageKey }),
128
+ );
129
+ if (response.downloadUrl !== "") return response.downloadUrl;
130
+ } catch {
131
+ // Fall through to the cached URL below.
132
+ }
133
+ if (artifact.downloadUrl !== "") return artifact.downloadUrl;
134
+ throw new Error("failed to get download URL");
135
+ }
136
+
137
+ // Human-readable non-terminal phase label (matches Go's formatPhaseForDownload).
138
+ function formatDownloadPhase(phase: ExecutionPhase): string {
139
+ switch (phase) {
140
+ case ExecutionPhase.EXECUTION_PENDING:
141
+ return "pending";
142
+ case ExecutionPhase.EXECUTION_IN_PROGRESS:
143
+ return "in progress";
144
+ case ExecutionPhase.EXECUTION_WAITING_FOR_APPROVAL:
145
+ return "waiting for approval";
146
+ case ExecutionPhase.EXECUTION_PAUSED:
147
+ return "paused";
148
+ default:
149
+ return "unknown";
150
+ }
151
+ }
@@ -0,0 +1,50 @@
1
+ import { mkdtemp, writeFile } from "node:fs/promises";
2
+ import { tmpdir } from "node:os";
3
+ import { join } from "node:path";
4
+ import { afterAll, describe, expect, it } from "vitest";
5
+ import { classify, ExitCode } from "../errors/index.js";
6
+ import { readFormData } from "./execution-approve.js";
7
+
8
+ const dirs: string[] = [];
9
+
10
+ async function tempFile(name: string, contents: string): Promise<string> {
11
+ const dir = await mkdtemp(join(tmpdir(), "stigmer-approve-"));
12
+ dirs.push(dir);
13
+ const path = join(dir, name);
14
+ await writeFile(path, contents, "utf8");
15
+ return path;
16
+ }
17
+
18
+ afterAll(() => {
19
+ // mkdtemp dirs are small and OS-cleaned; nothing to do but keep the ref alive.
20
+ void dirs;
21
+ });
22
+
23
+ describe("readFormData", () => {
24
+ it("returns undefined when no path is given", async () => {
25
+ expect(await readFormData(undefined)).toBeUndefined();
26
+ expect(await readFormData("")).toBeUndefined();
27
+ });
28
+
29
+ it("parses a JSON object", async () => {
30
+ const path = await tempFile("form.json", JSON.stringify({ approved: true, note: "ok" }));
31
+ expect(await readFormData(path)).toEqual({ approved: true, note: "ok" });
32
+ });
33
+
34
+ it("rejects a missing file with a usage error", async () => {
35
+ const err = await readFormData("/no/such/file.json").catch((e) => e);
36
+ expect(classify(err)?.exitCode).toBe(ExitCode.Usage);
37
+ });
38
+
39
+ it("rejects malformed JSON with a usage error", async () => {
40
+ const path = await tempFile("bad.json", "{ not valid");
41
+ const err = await readFormData(path).catch((e) => e);
42
+ expect(classify(err)?.exitCode).toBe(ExitCode.Usage);
43
+ });
44
+
45
+ it("rejects a non-object JSON value with a usage error", async () => {
46
+ const path = await tempFile("array.json", "[1, 2, 3]");
47
+ const err = await readFormData(path).catch((e) => e);
48
+ expect(classify(err)?.exitCode).toBe(ExitCode.Usage);
49
+ });
50
+ });
@@ -0,0 +1,94 @@
1
+ // `execution approve` — submit an approval decision for a waiting execution.
2
+ //
3
+ // Mirrors Go's execution.ApproveWorkflow / ApproveAgent (approve.go), with two
4
+ // deliberate corrections over the Go behavior:
5
+ //
6
+ // - D-EX-1 (fixed here): the agent `--comment` is carried onto
7
+ // SubmitApprovalInput.comment. The field exists on the proto; Go accepted the
8
+ // flag then dropped it. We thread it through.
9
+ // - D-EX-2 (match Go, backend follow-up): the workflow `reviewer` field is left
10
+ // unset by the client. Reviewer is an audit identity and must be attributed
11
+ // server-side from the authenticated principal — a client-supplied identity
12
+ // is spoofable. The backend follow-up is to populate it from the token.
13
+
14
+ import { readFile } from "node:fs/promises";
15
+ import { type JsonObject } from "@bufbuild/protobuf";
16
+ import { create } from "@bufbuild/protobuf";
17
+ import { ApprovalAction } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
18
+ import { SubmitApprovalInputSchema } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/io_pb";
19
+ import { SubmitWorkflowTaskApprovalInputSchema } from "@stigmer/protos/ai/stigmer/agentic/workflowexecution/v1/io_pb";
20
+ import type { Stigmer } from "@stigmer/sdk";
21
+ import { UsageError } from "../errors/index.js";
22
+
23
+ export interface ApproveWorkflowOptions {
24
+ readonly executionId: string;
25
+ readonly taskName: string;
26
+ readonly outcome: string;
27
+ readonly comment: string;
28
+ readonly formData?: JsonObject;
29
+ }
30
+
31
+ /** Submit a workflow task approval. `reviewer` stays unset (server-attributed). */
32
+ export async function approveWorkflowTask(client: Stigmer, opts: ApproveWorkflowOptions): Promise<void> {
33
+ await client.workflowExecution.submitWorkflowTaskApproval(
34
+ create(SubmitWorkflowTaskApprovalInputSchema, {
35
+ executionId: opts.executionId,
36
+ taskName: opts.taskName,
37
+ outcome: opts.outcome,
38
+ comment: opts.comment,
39
+ ...(opts.formData ? { formData: opts.formData } : {}),
40
+ }),
41
+ );
42
+ }
43
+
44
+ export interface ApproveAgentOptions {
45
+ readonly executionId: string;
46
+ readonly toolCallId: string;
47
+ readonly action: string;
48
+ readonly comment: string;
49
+ }
50
+
51
+ /** Submit an agent tool-call approval. `--comment` is carried through (D-EX-1). */
52
+ export async function approveAgentToolCall(client: Stigmer, opts: ApproveAgentOptions): Promise<void> {
53
+ await client.agentExecution.submitApproval(
54
+ create(SubmitApprovalInputSchema, {
55
+ agentExecutionId: opts.executionId,
56
+ toolCallId: opts.toolCallId,
57
+ action: resolveApprovalAction(opts.action),
58
+ comment: opts.comment,
59
+ }),
60
+ );
61
+ }
62
+
63
+ // Mirrors Go's mapping: "deny"/"reject" → REJECT, everything else → APPROVE.
64
+ function resolveApprovalAction(action: string): ApprovalAction {
65
+ return action === "deny" || action === "reject" ? ApprovalAction.REJECT : ApprovalAction.APPROVE;
66
+ }
67
+
68
+ /**
69
+ * Read and parse a `--data-file` JSON object for workflow form data. A missing
70
+ * path returns undefined; an unreadable file or non-object/invalid JSON is a
71
+ * usage error (bad input), mirroring Go's os.ReadFile + json.Unmarshal guards.
72
+ */
73
+ export async function readFormData(path: string | undefined): Promise<JsonObject | undefined> {
74
+ if (path === undefined || path === "") return undefined;
75
+
76
+ let raw: string;
77
+ try {
78
+ raw = await readFile(path, "utf8");
79
+ } catch (error) {
80
+ throw new UsageError(`failed to read data file '${path}': ${(error as Error).message}`);
81
+ }
82
+
83
+ let parsed: unknown;
84
+ try {
85
+ parsed = JSON.parse(raw);
86
+ } catch (error) {
87
+ throw new UsageError(`failed to parse JSON in '${path}': ${(error as Error).message}`);
88
+ }
89
+
90
+ if (parsed === null || typeof parsed !== "object" || Array.isArray(parsed)) {
91
+ throw new UsageError(`data file '${path}' must contain a JSON object`);
92
+ }
93
+ return parsed as JsonObject;
94
+ }
@@ -0,0 +1,78 @@
1
+ // Lifecycle control for executions (cancel / terminate / pause / resume).
2
+ //
3
+ // Mirrors Go's execution.Cancel/Terminate/Pause/Resume (cancel.go + pause.go):
4
+ // each verb auto-detects agent vs workflow from the ID prefix, issues the
5
+ // matching controller RPC, and returns the resulting phase as a human label.
6
+ // The phase is read back from the RPC response so the success line reports the
7
+ // authoritative post-mutation state, exactly as the Go CLI does.
8
+ //
9
+ // These return a plain `{ type, phase }` rather than a CommandResult so the
10
+ // command layer owns presentation (single source of the success wording).
11
+
12
+ import { create } from "@bufbuild/protobuf";
13
+ import { ExecutionPhase } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
14
+ import {
15
+ CancelAgentExecutionInputSchema,
16
+ PauseAgentExecutionInputSchema,
17
+ ResumeAgentExecutionInputSchema,
18
+ TerminateAgentExecutionInputSchema,
19
+ } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/io_pb";
20
+ import { ExecutionPhase as WorkflowExecutionPhase } from "@stigmer/protos/ai/stigmer/agentic/workflowexecution/v1/enum_pb";
21
+ import {
22
+ CancelWorkflowExecutionInputSchema,
23
+ PauseWorkflowExecutionInputSchema,
24
+ ResumeWorkflowExecutionInputSchema,
25
+ TerminateWorkflowExecutionInputSchema,
26
+ } from "@stigmer/protos/ai/stigmer/agentic/workflowexecution/v1/io_pb";
27
+ import type { Stigmer } from "@stigmer/sdk";
28
+ import { type ExecutionType, formatAgentPhase, formatWorkflowPhase, resolveExecutionType } from "./execution.js";
29
+
30
+ /** Outcome of a control verb: the resolved type and the post-mutation phase. */
31
+ export interface ControlResult {
32
+ readonly type: ExecutionType;
33
+ readonly phase: string;
34
+ }
35
+
36
+ /** Gracefully cancel an execution (agent or workflow). Mirrors Go execution.Cancel. */
37
+ export async function cancelExecution(client: Stigmer, id: string, reason: string): Promise<ControlResult> {
38
+ const type = resolveExecutionType(id);
39
+ if (type === "agent") {
40
+ const result = await client.agentExecution.cancel(create(CancelAgentExecutionInputSchema, { id, reason }));
41
+ return { type, phase: formatAgentPhase(result.status?.phase ?? ExecutionPhase.EXECUTION_PHASE_UNSPECIFIED) };
42
+ }
43
+ const result = await client.workflowExecution.cancel(create(CancelWorkflowExecutionInputSchema, { id, reason }));
44
+ return { type, phase: formatWorkflowPhase(result.status?.phase ?? WorkflowExecutionPhase.EXECUTION_PHASE_UNSPECIFIED) };
45
+ }
46
+
47
+ /** Force-stop an execution immediately (agent or workflow). Mirrors Go execution.Terminate. */
48
+ export async function terminateExecution(client: Stigmer, id: string, reason: string): Promise<ControlResult> {
49
+ const type = resolveExecutionType(id);
50
+ if (type === "agent") {
51
+ const result = await client.agentExecution.terminate(create(TerminateAgentExecutionInputSchema, { id, reason }));
52
+ return { type, phase: formatAgentPhase(result.status?.phase ?? ExecutionPhase.EXECUTION_PHASE_UNSPECIFIED) };
53
+ }
54
+ const result = await client.workflowExecution.terminate(create(TerminateWorkflowExecutionInputSchema, { id, reason }));
55
+ return { type, phase: formatWorkflowPhase(result.status?.phase ?? WorkflowExecutionPhase.EXECUTION_PHASE_UNSPECIFIED) };
56
+ }
57
+
58
+ /** Pause a running execution (agent or workflow). Mirrors Go execution.Pause. */
59
+ export async function pauseExecution(client: Stigmer, id: string, reason: string): Promise<ControlResult> {
60
+ const type = resolveExecutionType(id);
61
+ if (type === "agent") {
62
+ const result = await client.agentExecution.pause(create(PauseAgentExecutionInputSchema, { id, reason }));
63
+ return { type, phase: formatAgentPhase(result.status?.phase ?? ExecutionPhase.EXECUTION_PHASE_UNSPECIFIED) };
64
+ }
65
+ const result = await client.workflowExecution.pause(create(PauseWorkflowExecutionInputSchema, { id, reason }));
66
+ return { type, phase: formatWorkflowPhase(result.status?.phase ?? WorkflowExecutionPhase.EXECUTION_PHASE_UNSPECIFIED) };
67
+ }
68
+
69
+ /** Resume a paused execution (agent or workflow). Mirrors Go execution.Resume (no reason). */
70
+ export async function resumeExecution(client: Stigmer, id: string): Promise<ControlResult> {
71
+ const type = resolveExecutionType(id);
72
+ if (type === "agent") {
73
+ const result = await client.agentExecution.resume(create(ResumeAgentExecutionInputSchema, { id }));
74
+ return { type, phase: formatAgentPhase(result.status?.phase ?? ExecutionPhase.EXECUTION_PHASE_UNSPECIFIED) };
75
+ }
76
+ const result = await client.workflowExecution.resume(create(ResumeWorkflowExecutionInputSchema, { id }));
77
+ return { type, phase: formatWorkflowPhase(result.status?.phase ?? WorkflowExecutionPhase.EXECUTION_PHASE_UNSPECIFIED) };
78
+ }
@@ -0,0 +1,48 @@
1
+ import { WorkflowTaskType } from "@stigmer/protos/ai/stigmer/agentic/workflowexecution/v1/enum_pb";
2
+ import { describe, expect, it } from "vitest";
3
+ import { calculateDuration, formatWorkflowTaskType, truncateWithEllipsis } from "./execution-format.js";
4
+
5
+ describe("calculateDuration", () => {
6
+ it("returns '-' when a bound is missing or unparseable", () => {
7
+ expect(calculateDuration("", "2026-01-01T00:00:01Z")).toBe("-");
8
+ expect(calculateDuration("2026-01-01T00:00:00Z", "")).toBe("-");
9
+ expect(calculateDuration("not-a-date", "2026-01-01T00:00:01Z")).toBe("-");
10
+ });
11
+
12
+ it("formats sub-minute durations in seconds", () => {
13
+ expect(calculateDuration("2026-01-01T00:00:00Z", "2026-01-01T00:00:42Z")).toBe("42s");
14
+ });
15
+
16
+ it("formats sub-hour durations as minutes and seconds", () => {
17
+ expect(calculateDuration("2026-01-01T00:00:00Z", "2026-01-01T00:05:09Z")).toBe("5m 9s");
18
+ });
19
+
20
+ it("formats hour-plus durations as hours and minutes", () => {
21
+ expect(calculateDuration("2026-01-01T00:00:00Z", "2026-01-01T02:30:00Z")).toBe("2h 30m");
22
+ });
23
+ });
24
+
25
+ describe("truncateWithEllipsis", () => {
26
+ it("leaves short strings untouched", () => {
27
+ expect(truncateWithEllipsis("short", 10)).toBe("short");
28
+ });
29
+
30
+ it("truncates and appends an ellipsis", () => {
31
+ expect(truncateWithEllipsis("abcdefghij", 8)).toBe("abcde...");
32
+ });
33
+ });
34
+
35
+ describe("formatWorkflowTaskType", () => {
36
+ it.each([
37
+ [WorkflowTaskType.WORKFLOW_TASK_AGENT_INVOCATION, "agent"],
38
+ [WorkflowTaskType.WORKFLOW_TASK_APPROVAL, "approval"],
39
+ [WorkflowTaskType.WORKFLOW_TASK_API_CALL, "api_call"],
40
+ [WorkflowTaskType.WORKFLOW_TASK_CONDITIONAL, "condition"],
41
+ [WorkflowTaskType.WORKFLOW_TASK_PARALLEL, "parallel"],
42
+ [WorkflowTaskType.WORKFLOW_TASK_TRANSFORM, "transform"],
43
+ [WorkflowTaskType.WORKFLOW_TASK_CUSTOM, "custom"],
44
+ [WorkflowTaskType.WORKFLOW_TASK_TYPE_UNSPECIFIED, "unknown"],
45
+ ])("%s -> %s", (type, expected) => {
46
+ expect(formatWorkflowTaskType(type)).toBe(expected);
47
+ });
48
+ });
@@ -0,0 +1,54 @@
1
+ // Shared, presentation-only formatters for execution output.
2
+ //
3
+ // These mirror helpers in Go's pkg/display + internal/cli/execution (duration
4
+ // math, ellipsis truncation, workflow task-type labels). They live here, away
5
+ // from any RPC code, so both `execution trace` and the `run workflow` epilogue
6
+ // format durations and task types identically without duplicating the logic.
7
+
8
+ import { WorkflowTaskType } from "@stigmer/protos/ai/stigmer/agentic/workflowexecution/v1/enum_pb";
9
+
10
+ /**
11
+ * Human duration between two ISO 8601 timestamps. Mirrors Go's calculateDuration:
12
+ * "-" when either bound is missing/unparseable, "<n>s" under a minute,
13
+ * "<m>m <s>s" under an hour, "<h>h <m>m" otherwise.
14
+ */
15
+ export function calculateDuration(start: string, end: string): string {
16
+ if (start === "" || end === "") return "-";
17
+ const startMs = Date.parse(start);
18
+ const endMs = Date.parse(end);
19
+ if (Number.isNaN(startMs) || Number.isNaN(endMs)) return "-";
20
+
21
+ const totalSeconds = Math.floor((endMs - startMs) / 1000);
22
+ if (totalSeconds < 60) return `${totalSeconds}s`;
23
+ if (totalSeconds < 3600) return `${Math.floor(totalSeconds / 60)}m ${totalSeconds % 60}s`;
24
+ return `${Math.floor(totalSeconds / 3600)}h ${Math.floor((totalSeconds % 3600) / 60)}m`;
25
+ }
26
+
27
+ /** Truncate to `maxLen`, appending "..." when cut. Mirrors Go's display.TruncateWithEllipsis. */
28
+ export function truncateWithEllipsis(value: string, maxLen: number): string {
29
+ if (value.length <= maxLen) return value;
30
+ if (maxLen <= 3) return value.slice(0, maxLen);
31
+ return `${value.slice(0, maxLen - 3)}...`;
32
+ }
33
+
34
+ /** Short workflow task-type label. Mirrors Go's formatWorkflowTaskType. */
35
+ export function formatWorkflowTaskType(type: WorkflowTaskType): string {
36
+ switch (type) {
37
+ case WorkflowTaskType.WORKFLOW_TASK_AGENT_INVOCATION:
38
+ return "agent";
39
+ case WorkflowTaskType.WORKFLOW_TASK_APPROVAL:
40
+ return "approval";
41
+ case WorkflowTaskType.WORKFLOW_TASK_API_CALL:
42
+ return "api_call";
43
+ case WorkflowTaskType.WORKFLOW_TASK_CONDITIONAL:
44
+ return "condition";
45
+ case WorkflowTaskType.WORKFLOW_TASK_PARALLEL:
46
+ return "parallel";
47
+ case WorkflowTaskType.WORKFLOW_TASK_TRANSFORM:
48
+ return "transform";
49
+ case WorkflowTaskType.WORKFLOW_TASK_CUSTOM:
50
+ return "custom";
51
+ default:
52
+ return "unknown";
53
+ }
54
+ }