@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,101 @@
1
+ // The type registry: the single source of truth that maps user-facing resource
2
+ // identifiers (aliases, YAML kinds) to proto kinds and their supported verbs.
3
+ // Built once from the declarative kind-metadata table with aliases derived
4
+ // algorithmically — a structural mirror of Go's types.Registry.
5
+
6
+ import { ApiResourceKind } from "@stigmer/protos/ai/stigmer/commons/apiresource/apiresourcekind/api_resource_kind_pb";
7
+ import { generateAliases, normalizeAlias } from "./aliases.js";
8
+ import { CLI_RELEVANT_KINDS, KIND_META } from "./metadata.js";
9
+ import { Verb } from "./verbs.js";
10
+ import { verbsForKind } from "./verb-support.js";
11
+
12
+ /** CLI metadata for a single resource type. */
13
+ export interface TypeInfo {
14
+ /** Proto enum value this type maps to. */
15
+ readonly kind: ApiResourceKind;
16
+ /** Kind name (also the YAML `kind` value), e.g. "McpServer". */
17
+ readonly name: string;
18
+ /** Human-readable name, e.g. "MCP Server". */
19
+ readonly displayName: string;
20
+ /** ID prefix, e.g. "mcp". */
21
+ readonly idPrefix: string;
22
+ /** Canonical singular form (lowercase name), e.g. "mcpserver". */
23
+ readonly singular: string;
24
+ /** Plural form for list commands, e.g. "mcpservers". */
25
+ readonly plural: string;
26
+ /** All accepted input spellings (case-insensitive on lookup). */
27
+ readonly aliases: readonly string[];
28
+ /** Verbs this type supports. */
29
+ readonly supportedVerbs: ReadonlySet<Verb>;
30
+ }
31
+
32
+ export function supportsVerb(info: TypeInfo, verb: Verb): boolean {
33
+ return info.supportedVerbs.has(verb);
34
+ }
35
+
36
+ export interface Registry {
37
+ /** Look up a type by its proto kind. */
38
+ getByKind(kind: ApiResourceKind): TypeInfo | undefined;
39
+ /** Look up a type by any alias (case-insensitive). */
40
+ getByAlias(input: string): TypeInfo | undefined;
41
+ /** Look up a type by its exact YAML kind string. */
42
+ getByYamlKind(yamlKind: string): TypeInfo | undefined;
43
+ /** All registered CLI-relevant types, in declaration order. */
44
+ all(): readonly TypeInfo[];
45
+ /** Whether a kind supports a verb. */
46
+ supportsVerb(kind: ApiResourceKind, verb: Verb): boolean;
47
+ /** All types supporting a given verb, in declaration order. */
48
+ typesForVerb(verb: Verb): readonly TypeInfo[];
49
+ }
50
+
51
+ function buildTypeInfo(kind: ApiResourceKind): TypeInfo | undefined {
52
+ const meta = KIND_META.get(kind);
53
+ if (meta === undefined) return undefined;
54
+
55
+ const singular = meta.name.toLowerCase();
56
+ return {
57
+ kind,
58
+ name: meta.name,
59
+ displayName: meta.displayName,
60
+ idPrefix: meta.idPrefix,
61
+ singular,
62
+ plural: singular.endsWith("s") ? singular : `${singular}s`,
63
+ aliases: generateAliases(meta.name, meta.displayName, meta.idPrefix),
64
+ supportedVerbs: verbsForKind(kind),
65
+ };
66
+ }
67
+
68
+ function buildRegistry(): Registry {
69
+ const byKind = new Map<ApiResourceKind, TypeInfo>();
70
+ const byAlias = new Map<string, TypeInfo>();
71
+ const byYamlKind = new Map<string, TypeInfo>();
72
+ const all: TypeInfo[] = [];
73
+
74
+ for (const kind of CLI_RELEVANT_KINDS) {
75
+ const info = buildTypeInfo(kind);
76
+ if (info === undefined) continue;
77
+ byKind.set(kind, info);
78
+ byYamlKind.set(info.name, info);
79
+ all.push(info);
80
+ for (const alias of info.aliases) {
81
+ byAlias.set(normalizeAlias(alias), info);
82
+ }
83
+ }
84
+
85
+ return {
86
+ getByKind: (kind) => byKind.get(kind),
87
+ getByAlias: (input) => byAlias.get(normalizeAlias(input)),
88
+ getByYamlKind: (yamlKind) => byYamlKind.get(yamlKind),
89
+ all: () => all,
90
+ supportsVerb: (kind, verb) => byKind.get(kind)?.supportedVerbs.has(verb) ?? false,
91
+ typesForVerb: (verb) => all.filter((info) => info.supportedVerbs.has(verb)),
92
+ };
93
+ }
94
+
95
+ let cached: Registry | undefined;
96
+
97
+ /** The process-wide registry singleton, built lazily on first use. */
98
+ export function defaultRegistry(): Registry {
99
+ if (cached === undefined) cached = buildRegistry();
100
+ return cached;
101
+ }
@@ -0,0 +1,50 @@
1
+ // Verb-support matrix — which verbs each resource kind supports.
2
+ //
3
+ // This is CLI-specific policy (not stored in proto), ported verbatim from Go's
4
+ // types.verbSupport so both CLIs expose the same surface. Keep in lockstep.
5
+ //
6
+ // | Kind | apply | validate | get | list | delete | run | push | search | download |
7
+ // |--------------|-------|----------|-----|------|--------|-----|------|--------|----------|
8
+ // | Organization | Y | - | Y | Y | Y | - | - | - | - |
9
+ // | Agent | Y | Y | Y | Y | Y | Y | - | Y | - |
10
+ // | Workflow | Y | Y | Y | Y | Y | Y | - | Y | - |
11
+ // | Skill | - | - | Y | Y | Y | - | Y | - | - |
12
+ // | McpServer | Y | Y | Y | Y | Y | - | - | - | - |
13
+ // | Project | Y* | Y | Y | Y | Y | - | - | - | - |
14
+ // | Execution | - | - | Y | Y | Y** | - | - | - | Y |
15
+ //
16
+ // * Project "apply" triggers SDK synthesis mode.
17
+ // ** Execution "delete" maps to a cancel operation.
18
+
19
+ import { ApiResourceKind } from "@stigmer/protos/ai/stigmer/commons/apiresource/apiresourcekind/api_resource_kind_pb";
20
+ import { Verb } from "./verbs.js";
21
+
22
+ export const VERB_SUPPORT: ReadonlyMap<ApiResourceKind, ReadonlySet<Verb>> = new Map([
23
+ [ApiResourceKind.organization, new Set<Verb>([Verb.Apply, Verb.Get, Verb.List, Verb.Delete])],
24
+ [
25
+ ApiResourceKind.agent,
26
+ new Set<Verb>([Verb.Apply, Verb.Validate, Verb.Get, Verb.List, Verb.Delete, Verb.Run, Verb.Search]),
27
+ ],
28
+ [
29
+ ApiResourceKind.workflow,
30
+ new Set<Verb>([Verb.Apply, Verb.Validate, Verb.Get, Verb.List, Verb.Delete, Verb.Run, Verb.Search]),
31
+ ],
32
+ [ApiResourceKind.skill, new Set<Verb>([Verb.Get, Verb.List, Verb.Delete, Verb.Push])],
33
+ [ApiResourceKind.mcp_server, new Set<Verb>([Verb.Apply, Verb.Validate, Verb.Get, Verb.List, Verb.Delete])],
34
+ [ApiResourceKind.project, new Set<Verb>([Verb.Apply, Verb.Validate, Verb.Get, Verb.List, Verb.Delete])],
35
+ [ApiResourceKind.api_key, new Set<Verb>([Verb.Get, Verb.List, Verb.Delete])],
36
+ // agent_execution is special — uses dedicated AgentExecutionQueryController
37
+ // RPCs, not the unified SearchService. delete maps to cancel.
38
+ [ApiResourceKind.agent_execution, new Set<Verb>([Verb.Get, Verb.List, Verb.Delete, Verb.Download])],
39
+ [ApiResourceKind.identity_provider, new Set<Verb>([Verb.Apply, Verb.Get, Verb.List, Verb.Delete])],
40
+ [ApiResourceKind.oauth_app, new Set<Verb>([Verb.Apply, Verb.Get, Verb.List, Verb.Delete])],
41
+ [ApiResourceKind.environment, new Set<Verb>([Verb.Apply, Verb.Get, Verb.List, Verb.Delete])],
42
+ [ApiResourceKind.agent_instance, new Set<Verb>([Verb.Apply, Verb.Get, Verb.List, Verb.Delete])],
43
+ // No list: proto exposes getByWorkflow (requires workflow_id), not a generic list.
44
+ [ApiResourceKind.workflow_instance, new Set<Verb>([Verb.Apply, Verb.Get, Verb.Delete])],
45
+ [ApiResourceKind.session, new Set<Verb>([Verb.Apply, Verb.Get, Verb.List, Verb.Delete])],
46
+ ]);
47
+
48
+ export function verbsForKind(kind: ApiResourceKind): ReadonlySet<Verb> {
49
+ return VERB_SUPPORT.get(kind) ?? new Set<Verb>();
50
+ }
@@ -0,0 +1,43 @@
1
+ // CLI verbs — operations that can be performed on a resource.
2
+ // Mirrors the Go types.Verb set so the two CLIs stay behaviorally identical.
3
+
4
+ export const Verb = {
5
+ Apply: "apply",
6
+ Validate: "validate",
7
+ Get: "get",
8
+ List: "list",
9
+ Delete: "delete",
10
+ Run: "run",
11
+ Push: "push",
12
+ Search: "search",
13
+ Download: "download",
14
+ } as const;
15
+
16
+ export type Verb = (typeof Verb)[keyof typeof Verb];
17
+
18
+ // Declaration order is the canonical display order (help text, parity tables).
19
+ export const ALL_VERBS: readonly Verb[] = [
20
+ Verb.Apply,
21
+ Verb.Validate,
22
+ Verb.Get,
23
+ Verb.List,
24
+ Verb.Delete,
25
+ Verb.Run,
26
+ Verb.Push,
27
+ Verb.Search,
28
+ Verb.Download,
29
+ ];
30
+
31
+ export function isFileBasedVerb(verb: Verb): boolean {
32
+ return verb === Verb.Apply || verb === Verb.Validate;
33
+ }
34
+
35
+ export function isReferenceBasedVerb(verb: Verb): boolean {
36
+ return (
37
+ verb === Verb.Get ||
38
+ verb === Verb.Delete ||
39
+ verb === Verb.Run ||
40
+ verb === Verb.Search ||
41
+ verb === Verb.Download
42
+ );
43
+ }
@@ -0,0 +1,207 @@
1
+ // In-process integration test for file-mode apply.
2
+ //
3
+ // The keystone assertion (the reason this wave drives the raw command
4
+ // controllers instead of the high-level SDK `apply(input)`): a resource carrying
5
+ // fields the SDK's lossy `*Input` would drop — notably `metadata.id`, which
6
+ // distinguishes an update from a create — must reach the backend intact. We
7
+ // apply an Agent YAML with an id set plus spec fields and assert the server
8
+ // received every one. Also covers dependency ordering, org injection, dry-run,
9
+ // and the created-vs-updated signal.
10
+
11
+ import { mkdtempSync, rmSync, writeFileSync } from "node:fs";
12
+ import { createServer as createHttp2Server, type Http2Server, type ServerHttp2Session } from "node:http2";
13
+ import type { AddressInfo } from "node:net";
14
+ import { tmpdir } from "node:os";
15
+ import { join } from "node:path";
16
+ import { type ConnectRouter, createClient } from "@connectrpc/connect";
17
+ import { connectNodeAdapter } from "@connectrpc/connect-node";
18
+ import type { Agent } from "@stigmer/protos/ai/stigmer/agentic/agent/v1/api_pb";
19
+ import { AgentCommandController } from "@stigmer/protos/ai/stigmer/agentic/agent/v1/command_pb";
20
+ import type { McpServer } from "@stigmer/protos/ai/stigmer/agentic/mcpserver/v1/api_pb";
21
+ import { McpServerCommandController } from "@stigmer/protos/ai/stigmer/agentic/mcpserver/v1/command_pb";
22
+ import { createNodeTransport, normalizeEndpoint } from "@stigmer/sdk/node";
23
+ import { afterAll, beforeAll, beforeEach, describe, expect, it } from "vitest";
24
+ import { applyItem, requiresOrgContext, resolveApplyItems } from "./apply.js";
25
+ import type { ControllerFn } from "./handlers.js";
26
+
27
+ let backend: Http2Server;
28
+ let controllerFn: ControllerFn;
29
+ const openSessions = new Set<ServerHttp2Session>();
30
+
31
+ let appliedAgents: Agent[] = [];
32
+ let appliedMcps: McpServer[] = [];
33
+
34
+ beforeEach(() => {
35
+ appliedAgents = [];
36
+ appliedMcps = [];
37
+ });
38
+
39
+ function writeYaml(dir: string, name: string, body: string): string {
40
+ const path = join(dir, name);
41
+ writeFileSync(path, body);
42
+ return path;
43
+ }
44
+
45
+ beforeAll(async () => {
46
+ const routes = (router: ConnectRouter) => {
47
+ router.service(AgentCommandController, {
48
+ apply: (req) => {
49
+ appliedAgents.push(req);
50
+ return req; // echo back the full proto the server received
51
+ },
52
+ });
53
+ router.service(McpServerCommandController, {
54
+ apply: (req) => {
55
+ appliedMcps.push(req);
56
+ return req;
57
+ },
58
+ });
59
+ };
60
+
61
+ backend = createHttp2Server(connectNodeAdapter({ routes }));
62
+ backend.on("session", (session) => {
63
+ openSessions.add(session);
64
+ session.on("close", () => openSessions.delete(session));
65
+ });
66
+ await new Promise<void>((resolve) => backend.listen(0, "127.0.0.1", resolve));
67
+ const port = (backend.address() as AddressInfo).port;
68
+ const transport = createNodeTransport({ baseUrl: normalizeEndpoint(`127.0.0.1:${port}`) });
69
+ controllerFn = (service) => createClient(service, transport);
70
+ });
71
+
72
+ afterAll(async () => {
73
+ for (const session of openSessions) session.destroy();
74
+ await new Promise<void>((resolve) => backend.close(() => resolve()));
75
+ });
76
+
77
+ const AGENT_WITH_ID = [
78
+ "apiVersion: agentic.stigmer.ai/v1",
79
+ "kind: Agent",
80
+ "metadata:",
81
+ " id: agt_existing",
82
+ " name: Reviewer",
83
+ " slug: reviewer",
84
+ " org: acme",
85
+ "spec:",
86
+ " description: A code reviewer",
87
+ " instructions: Review pull requests carefully",
88
+ "",
89
+ ].join("\n");
90
+
91
+ describe("file-mode apply — fidelity (raw controller preserves full proto)", () => {
92
+ it("preserves metadata.id and spec fields the SDK input would drop", async () => {
93
+ const dir = mkdtempSync(join(tmpdir(), "apply-it-"));
94
+ try {
95
+ writeYaml(dir, "agent.yaml", AGENT_WITH_ID);
96
+ const items = resolveApplyItems(dir);
97
+ expect(items).toHaveLength(1);
98
+
99
+ const outcome = await applyItem(controllerFn, items[0], "acme", false);
100
+
101
+ // The keystone: id (lossy in AgentInput) and spec round-trip intact.
102
+ expect(appliedAgents).toHaveLength(1);
103
+ expect(appliedAgents[0].metadata?.id).toBe("agt_existing");
104
+ expect(appliedAgents[0].metadata?.slug).toBe("reviewer");
105
+ expect(appliedAgents[0].spec?.description).toBe("A code reviewer");
106
+ expect(appliedAgents[0].spec?.instructions).toBe("Review pull requests carefully");
107
+
108
+ // id present → treated as an update.
109
+ expect(outcome.result.status).toBe("success");
110
+ expect(outcome.result.message).toBe("Agent updated successfully");
111
+ } finally {
112
+ rmSync(dir, { recursive: true, force: true });
113
+ }
114
+ });
115
+
116
+ it("treats a resource without metadata.id as a create", async () => {
117
+ const dir = mkdtempSync(join(tmpdir(), "apply-it-"));
118
+ try {
119
+ writeYaml(
120
+ dir,
121
+ "agent.yaml",
122
+ ["kind: Agent", "metadata:", " name: New", " slug: new", "spec:", " description: d", ""].join("\n"),
123
+ );
124
+ const items = resolveApplyItems(dir);
125
+ const outcome = await applyItem(controllerFn, items[0], "acme", false);
126
+ expect(outcome.result.message).toBe("Agent created successfully");
127
+ } finally {
128
+ rmSync(dir, { recursive: true, force: true });
129
+ }
130
+ });
131
+
132
+ it("injects the resolved org when the document omits it", async () => {
133
+ const dir = mkdtempSync(join(tmpdir(), "apply-it-"));
134
+ try {
135
+ writeYaml(
136
+ dir,
137
+ "agent.yaml",
138
+ ["kind: Agent", "metadata:", " name: NoOrg", " slug: no-org", "spec:", " description: d", ""].join("\n"),
139
+ );
140
+ const items = resolveApplyItems(dir);
141
+ await applyItem(controllerFn, items[0], "acme", false);
142
+ expect(appliedAgents[0].metadata?.org).toBe("acme");
143
+ } finally {
144
+ rmSync(dir, { recursive: true, force: true });
145
+ }
146
+ });
147
+ });
148
+
149
+ describe("file-mode apply — orchestration", () => {
150
+ it("sorts items into dependency order (mcp_server before agent)", () => {
151
+ const dir = mkdtempSync(join(tmpdir(), "apply-it-"));
152
+ try {
153
+ writeYaml(dir, "agent.yaml", AGENT_WITH_ID);
154
+ writeYaml(
155
+ dir,
156
+ "mcp.yaml",
157
+ ["kind: McpServer", "metadata:", " name: fs", " slug: fs", "spec:", " stdio:", " command: node", ""].join(
158
+ "\n",
159
+ ),
160
+ );
161
+ const items = resolveApplyItems(dir);
162
+ expect(items.map((i) => i.handler.displayName)).toEqual(["MCP Server", "Agent"]);
163
+ } finally {
164
+ rmSync(dir, { recursive: true, force: true });
165
+ }
166
+ });
167
+
168
+ it("requiresOrgContext is false for an Organization-only set", () => {
169
+ const dir = mkdtempSync(join(tmpdir(), "apply-it-"));
170
+ try {
171
+ writeYaml(dir, "org.yaml", ["kind: Organization", "metadata:", " name: Acme", " slug: acme", ""].join("\n"));
172
+ const items = resolveApplyItems(dir);
173
+ expect(requiresOrgContext(items)).toBe(false);
174
+ } finally {
175
+ rmSync(dir, { recursive: true, force: true });
176
+ }
177
+ });
178
+
179
+ it("dry-run previews without touching the backend", async () => {
180
+ const dir = mkdtempSync(join(tmpdir(), "apply-it-"));
181
+ try {
182
+ writeYaml(dir, "agent.yaml", AGENT_WITH_ID);
183
+ const items = resolveApplyItems(dir);
184
+ const before = appliedAgents.length;
185
+ const outcome = await applyItem(controllerFn, items[0], "acme", true);
186
+ expect(outcome.result.message).toBe("Dry run: Reviewer is valid");
187
+ expect(appliedAgents.length).toBe(before);
188
+ } finally {
189
+ rmSync(dir, { recursive: true, force: true });
190
+ }
191
+ });
192
+
193
+ it("rejects unknown YAML fields under strict marshalling", async () => {
194
+ const dir = mkdtempSync(join(tmpdir(), "apply-it-"));
195
+ try {
196
+ writeYaml(
197
+ dir,
198
+ "agent.yaml",
199
+ ["kind: Agent", "metadata:", " name: Bad", "spec:", " bogus_field: nope", ""].join("\n"),
200
+ );
201
+ const items = resolveApplyItems(dir);
202
+ await expect(applyItem(controllerFn, items[0], "acme", false)).rejects.toThrow(/invalid Agent/);
203
+ } finally {
204
+ rmSync(dir, { recursive: true, force: true });
205
+ }
206
+ });
207
+ });
@@ -0,0 +1,202 @@
1
+ // File-mode apply orchestration (`apply -f <file|dir>`).
2
+ //
3
+ // Pipeline per document: strict YAML→proto marshal (S-strict) → inject the
4
+ // resolved org when absent → dry-run preview OR drive the raw command
5
+ // controller's `apply` RPC with the full proto → build a CommandResult. Items
6
+ // across all files are sorted into dependency order before applying so parents
7
+ // (org → mcp_server → agent → workflow → …) land before their dependents.
8
+
9
+ import { create, fromJson, type JsonValue, type Message } from "@bufbuild/protobuf";
10
+ import type { McpServer } from "@stigmer/protos/ai/stigmer/agentic/mcpserver/v1/api_pb";
11
+ import { ApiResourceKind } from "@stigmer/protos/ai/stigmer/commons/apiresource/apiresourcekind/api_resource_kind_pb";
12
+ import {
13
+ type ApiResourceMetadata,
14
+ ApiResourceMetadataSchema,
15
+ } from "@stigmer/protos/ai/stigmer/commons/apiresource/metadata_pb";
16
+ import { UsageError } from "../../errors/index.js";
17
+ import { CommandResult } from "../../output/index.js";
18
+ import { defaultRegistry, Verb } from "../../registry/index.js";
19
+ import { loadDocuments, resolveYamlFiles } from "../documents.js";
20
+ import { type ApplyHandler, APPLY_HANDLERS, type ControllerFn } from "./handlers.js";
21
+
22
+ export interface ApplyItem {
23
+ readonly filePath: string;
24
+ readonly handler: ApplyHandler;
25
+ readonly document: JsonValue;
26
+ }
27
+
28
+ export interface ApplyOutcome {
29
+ readonly result: CommandResult;
30
+ /** Set for successfully applied MCP servers, to drive post-apply discovery. */
31
+ readonly appliedMcpServer?: McpServer;
32
+ /** Optional org-mismatch warning to surface on stderr. */
33
+ readonly warning?: string;
34
+ /**
35
+ * The applied resource message (absent in dry-run). Carries the server's
36
+ * authoritative metadata (id/slug) — the reconciler reads this to register
37
+ * project membership, so membership matches what the backend stored.
38
+ */
39
+ readonly applied?: Message;
40
+ }
41
+
42
+ // Dependency apply order (ascending priority); kinds absent get 99 (applied
43
+ // last). Mirrors Go's applier.DefaultApplyOrder.
44
+ const APPLY_ORDER: ReadonlyMap<ApiResourceKind, number> = new Map([
45
+ [ApiResourceKind.organization, 0],
46
+ [ApiResourceKind.mcp_server, 1],
47
+ [ApiResourceKind.agent, 2],
48
+ [ApiResourceKind.workflow, 3],
49
+ [ApiResourceKind.environment, 4],
50
+ [ApiResourceKind.identity_provider, 5],
51
+ [ApiResourceKind.oauth_app, 6],
52
+ [ApiResourceKind.agent_instance, 7],
53
+ [ApiResourceKind.workflow_instance, 8],
54
+ [ApiResourceKind.session, 9],
55
+ ]);
56
+
57
+ /** Expand a path into ordered, kind-resolved apply items (strict YAML parse). */
58
+ export function resolveApplyItems(path: string): ApplyItem[] {
59
+ const files = resolveYamlFiles(path);
60
+ if (files.length === 0) throw new UsageError("no YAML files found");
61
+
62
+ const items: ApplyItem[] = [];
63
+ for (const file of files) {
64
+ for (const doc of loadDocuments(file, { strict: true })) {
65
+ items.push({ filePath: file, handler: resolveHandlerForKind(doc.kind, file), document: doc.document });
66
+ }
67
+ }
68
+ if (items.length === 0) throw new UsageError("no valid resources found in files");
69
+ return sortApplyItems(items);
70
+ }
71
+
72
+ /**
73
+ * Resolve a YAML `kind` to its apply handler, enforcing the verb-support gate.
74
+ * Shared by file mode and declarative mode so the lookup + error wording lives
75
+ * in exactly one place. `where` is woven into errors for a precise location.
76
+ */
77
+ export function resolveHandlerForKind(kind: string, where: string): ApplyHandler {
78
+ const info = defaultRegistry().getByYamlKind(kind);
79
+ if (info === undefined) throw new UsageError(`unknown resource kind '${kind}' in ${where}`);
80
+ if (!info.supportedVerbs.has(Verb.Apply)) throw new UsageError(`${info.displayName} does not support 'apply'`);
81
+ const handler = APPLY_HANDLERS.get(info.kind);
82
+ if (handler === undefined) throw new UsageError(`apply not implemented for ${info.displayName}`);
83
+ return handler;
84
+ }
85
+
86
+ /** Stable sort by dependency priority (Array.prototype.sort is stable in V8). */
87
+ export function sortApplyItems(items: ApplyItem[]): ApplyItem[] {
88
+ items.sort((a, b) => priorityOf(a.handler.kind) - priorityOf(b.handler.kind));
89
+ return items;
90
+ }
91
+
92
+ /** True when any item needs org context (everything except Organization). */
93
+ export function requiresOrgContext(items: readonly ApplyItem[]): boolean {
94
+ return items.some((item) => item.handler.kind !== ApiResourceKind.organization);
95
+ }
96
+
97
+ /** Apply a single YAML item: strict-marshal to a proto, then apply the message. */
98
+ export async function applyItem(
99
+ controller: ControllerFn,
100
+ item: ApplyItem,
101
+ org: string,
102
+ dryRun: boolean,
103
+ ): Promise<ApplyOutcome> {
104
+ return applyMessage(controller, item.handler, marshalItem(item), org, dryRun);
105
+ }
106
+
107
+ /**
108
+ * Strict YAML→proto marshal for one item, with a precise location in the error.
109
+ * Split out from {@link applyItem} so the declarative reconciler can marshal
110
+ * without immediately applying (it batches messages, then reconciles).
111
+ */
112
+ export function marshalItem(item: ApplyItem): Message {
113
+ try {
114
+ return fromJson(item.handler.schema, item.document, { ignoreUnknownFields: false });
115
+ } catch (err) {
116
+ throw new UsageError(`invalid ${item.handler.displayName} in ${item.filePath}: ${(err as Error).message}`);
117
+ }
118
+ }
119
+
120
+ /**
121
+ * Apply a fully-marshalled resource message: inject org, then dry-run preview or
122
+ * drive the controller's `apply` RPC. This is the single apply core shared by
123
+ * both tracks — the declarative/file track feeds messages marshalled from YAML
124
+ * (`marshalItem`), the synthesis track feeds messages decoded from `.pb`
125
+ * (`fromBinary`). One core means one place where org injection, create/update
126
+ * detection, and result shaping live (DD-009 §6).
127
+ */
128
+ export async function applyMessage(
129
+ controller: ControllerFn,
130
+ handler: ApplyHandler,
131
+ message: Message,
132
+ org: string,
133
+ dryRun: boolean,
134
+ ): Promise<ApplyOutcome> {
135
+ const warning = injectOrg(message, org);
136
+ const created = (metaOf(message)?.id ?? "") === "";
137
+
138
+ if (dryRun) {
139
+ return { result: buildDryRunResult(handler, message), warning };
140
+ }
141
+
142
+ const applied = await handler.apply(controller, message);
143
+ const result = buildApplyResult(handler, applied, created);
144
+ if (handler.kind === ApiResourceKind.mcp_server) {
145
+ return { result, appliedMcpServer: applied as McpServer, warning, applied };
146
+ }
147
+ return { result, warning, applied };
148
+ }
149
+
150
+ /** Read a resource message's metadata (id/name/slug/org), if present. */
151
+ export function resourceMetadata(message: Message): ApiResourceMetadata | undefined {
152
+ return metaOf(message);
153
+ }
154
+
155
+ function metaOf(message: Message): ApiResourceMetadata | undefined {
156
+ return (message as unknown as { metadata?: ApiResourceMetadata }).metadata;
157
+ }
158
+
159
+ // Inject the resolved org into metadata.org when the document omitted it. When
160
+ // the document specifies a *different* org, return a warning (Go warns but
161
+ // honors the document's value — we do the same).
162
+ function injectOrg(message: Message, org: string): string | undefined {
163
+ if (org === "") return undefined;
164
+ const holder = message as unknown as { metadata?: ApiResourceMetadata };
165
+ if (holder.metadata === undefined) {
166
+ holder.metadata = create(ApiResourceMetadataSchema, { org });
167
+ return undefined;
168
+ }
169
+ if (holder.metadata.org === "") {
170
+ holder.metadata.org = org;
171
+ return undefined;
172
+ }
173
+ if (holder.metadata.org !== org) {
174
+ return `resource org '${holder.metadata.org}' differs from target org '${org}'; using '${holder.metadata.org}'`;
175
+ }
176
+ return undefined;
177
+ }
178
+
179
+ function buildApplyResult(handler: ApplyHandler, applied: Message, created: boolean): CommandResult {
180
+ const meta = metaOf(applied);
181
+ const result = CommandResult.success(`${handler.displayName} ${created ? "created" : "updated"} successfully`);
182
+ const section = result.addSection("Resource Details");
183
+ if (meta?.id) section.field("ID", meta.id);
184
+ if (meta?.name) section.field("Name", meta.name);
185
+ if (meta?.slug) section.field("Slug", meta.slug);
186
+ return result;
187
+ }
188
+
189
+ function buildDryRunResult(handler: ApplyHandler, message: Message): CommandResult {
190
+ const meta = metaOf(message);
191
+ const name = meta?.name ?? handler.displayName;
192
+ const result = CommandResult.success(`Dry run: ${name} is valid`);
193
+ const section = result.addSection(`${handler.displayName} Preview`);
194
+ if (meta?.name) section.field("Name", meta.name);
195
+ if (meta?.slug) section.field("Slug", meta.slug);
196
+ if (meta?.org) section.field("Org", meta.org);
197
+ return result;
198
+ }
199
+
200
+ function priorityOf(kind: ApiResourceKind): number {
201
+ return APPLY_ORDER.get(kind) ?? 99;
202
+ }