@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,474 @@
1
+ // Declarative apply (`stigmer apply` inside a stigmer.yaml project directory).
2
+ //
3
+ // The project is a lightweight membership tracker: it stores only references
4
+ // (org/kind/slug) to its members and the server reconciles by set-difference
5
+ // against the previous member list. The CLI's job is to discover the resources
6
+ // that live beside stigmer.yaml, apply each one, collect references to the
7
+ // member-eligible ones, then apply the project with that member set. Pruning of
8
+ // orphans is therefore entirely server-side — see the note on `--prune` in
9
+ // commands/apply.ts (S1).
10
+ //
11
+ // Two project layouts are supported, mirroring the Go CLI:
12
+ // flat: project/agent.yaml, project/my-skill/SKILL.md
13
+ // organized: project/agents/*.yaml, project/skills/my-skill/SKILL.md
14
+ // Scanning is top-level plus one level of subdirectories — deep trees are not
15
+ // walked, matching Go (this keeps membership predictable and fast).
16
+
17
+ import { existsSync, mkdtempSync, readdirSync, rmSync, statSync } from "node:fs";
18
+ import { tmpdir } from "node:os";
19
+ import { basename, dirname, extname, join, resolve } from "node:path";
20
+ import { create, fromJson, type Message } from "@bufbuild/protobuf";
21
+ import type { McpServer } from "@stigmer/protos/ai/stigmer/agentic/mcpserver/v1/api_pb";
22
+ import {
23
+ type ApiResourceReference,
24
+ ApiResourceReferenceSchema,
25
+ } from "@stigmer/protos/ai/stigmer/commons/apiresource/io_pb";
26
+ import { ApiResourceKind } from "@stigmer/protos/ai/stigmer/commons/apiresource/apiresourcekind/api_resource_kind_pb";
27
+ import {
28
+ type ApiResourceMetadata,
29
+ ApiResourceMetadataSchema,
30
+ } from "@stigmer/protos/ai/stigmer/commons/apiresource/metadata_pb";
31
+ import { type Project, ProjectSchema } from "@stigmer/protos/ai/stigmer/tenancy/project/v1/api_pb";
32
+ import { ProjectCommandController } from "@stigmer/protos/ai/stigmer/tenancy/project/v1/command_pb";
33
+ import { ProjectSpecSchema } from "@stigmer/protos/ai/stigmer/tenancy/project/v1/spec_pb";
34
+ import type { Stigmer } from "@stigmer/sdk";
35
+ import { UsageError } from "../../errors/index.js";
36
+ import { CommandResult } from "../../output/index.js";
37
+ import { loadDocuments } from "../documents.js";
38
+ import { cloneRepository } from "../git.js";
39
+ import { hasSkillFile, type PushResult, pushSkill, pushSkillFromClone } from "../skill.js";
40
+ import { type ApplyItem, applyMessage, marshalItem, resolveHandlerForKind, resourceMetadata, sortApplyItems } from "./apply.js";
41
+ import { discoverAppliedMcpServers } from "./discovery.js";
42
+ import type { ApplyHandler, ControllerFn } from "./handlers.js";
43
+
44
+ const CONFIG_FILE_NAME = "stigmer.yaml";
45
+ const DEFAULT_MAX_DEPTH = 10;
46
+
47
+ /** The detected CLI operation mode (mirrors Go's project.Track). */
48
+ export type Track = "atomic" | "declarative" | "project";
49
+
50
+ export interface DetectResult {
51
+ readonly track: Track;
52
+ /** Absolute path to stigmer.yaml; undefined for the atomic track. */
53
+ readonly configPath?: string;
54
+ /** Directory containing stigmer.yaml; undefined for the atomic track. */
55
+ readonly configDir?: string;
56
+ /** Parsed Project; undefined for the atomic track. */
57
+ readonly project?: Project;
58
+ }
59
+
60
+ /**
61
+ * Walk up from `startDir` (max 10 levels, matching Go) looking for stigmer.yaml.
62
+ * Absent → atomic track. Present-but-invalid → a hard error (the user clearly
63
+ * intended a project; help them fix it rather than silently falling back).
64
+ * Present with an entry_point → the SDK "project" track (synthesis), which this
65
+ * wave does not implement.
66
+ */
67
+ export function detectTrack(startDir: string, maxDepth = DEFAULT_MAX_DEPTH): DetectResult {
68
+ let dir = resolve(startDir);
69
+ for (let depth = 0; depth < maxDepth; depth++) {
70
+ const candidate = join(dir, CONFIG_FILE_NAME);
71
+ if (existsSync(candidate) && statSync(candidate).isFile()) {
72
+ const project = loadProject(candidate);
73
+ const track: Track = project.spec?.entryPoint ? "project" : "declarative";
74
+ return { track, configPath: candidate, configDir: dirname(candidate), project };
75
+ }
76
+ const parent = dirname(dir);
77
+ if (parent === dir) break;
78
+ dir = parent;
79
+ }
80
+ return { track: "atomic" };
81
+ }
82
+
83
+ // Strict parse of stigmer.yaml into a Project (proto carries apiVersion/kind as
84
+ // real fields, so the discriminator is accepted, not rejected). Unknown fields
85
+ // are an error — a typo in stigmer.yaml should fail loudly.
86
+ function loadProject(configPath: string): Project {
87
+ const docs = loadDocuments(configPath, { strict: true });
88
+ if (docs.length === 0) throw new UsageError(`${configPath} contains no document`);
89
+ const doc = docs[0];
90
+ if (doc.kind !== "Project") {
91
+ throw new UsageError(`${configPath} must declare 'kind: Project' (found '${doc.kind}')`);
92
+ }
93
+ try {
94
+ return fromJson(ProjectSchema, doc.document, { ignoreUnknownFields: false });
95
+ } catch (err) {
96
+ throw new UsageError(
97
+ `invalid project configuration in ${configPath}: ${(err as Error).message}\n\n` +
98
+ "Fix the issues above or remove the file to use file mode (stigmer apply -f).",
99
+ );
100
+ }
101
+ }
102
+
103
+ // =============================================================================
104
+ // Directory scanning
105
+ // =============================================================================
106
+
107
+ /**
108
+ * YAML resource files beside stigmer.yaml: top-level files plus files in
109
+ * immediate subdirectories. stigmer.yaml itself is excluded, as are skill
110
+ * directories (handled separately) and grouping dirs that hold skills.
111
+ */
112
+ export function scanResourceFiles(projectDir: string): string[] {
113
+ const files: string[] = [];
114
+ for (const entry of readdirSync(projectDir, { withFileTypes: true })) {
115
+ const full = join(projectDir, entry.name);
116
+ if (entry.isDirectory()) {
117
+ if (isSkillDirectory(full) || containsSkillDirectories(full)) continue;
118
+ for (const sub of readdirSync(full, { withFileTypes: true })) {
119
+ if (!sub.isDirectory() && isYaml(sub.name)) files.push(join(full, sub.name));
120
+ }
121
+ continue;
122
+ }
123
+ if (isYaml(entry.name) && entry.name.toLowerCase() !== CONFIG_FILE_NAME) {
124
+ files.push(full);
125
+ }
126
+ }
127
+ return files.sort();
128
+ }
129
+
130
+ /**
131
+ * Skill directories beside stigmer.yaml: immediate children that contain a
132
+ * SKILL.md (flat layout), plus grandchildren under a grouping dir like skills/
133
+ * (organized layout). Scanning stops one level deep, matching Go.
134
+ */
135
+ export function scanSkillDirectories(projectDir: string): string[] {
136
+ const skillDirs: string[] = [];
137
+ for (const entry of readdirSync(projectDir, { withFileTypes: true })) {
138
+ if (!entry.isDirectory()) continue;
139
+ const full = join(projectDir, entry.name);
140
+ if (isSkillDirectory(full)) {
141
+ skillDirs.push(full);
142
+ continue;
143
+ }
144
+ for (const sub of readdirSync(full, { withFileTypes: true })) {
145
+ const nested = join(full, sub.name);
146
+ if (sub.isDirectory() && isSkillDirectory(nested)) skillDirs.push(nested);
147
+ }
148
+ }
149
+ return skillDirs.sort();
150
+ }
151
+
152
+ function containsSkillDirectories(dir: string): boolean {
153
+ try {
154
+ return readdirSync(dir, { withFileTypes: true }).some((e) => e.isDirectory() && isSkillDirectory(join(dir, e.name)));
155
+ } catch {
156
+ return false;
157
+ }
158
+ }
159
+
160
+ function isSkillDirectory(dir: string): boolean {
161
+ return hasSkillFile(dir);
162
+ }
163
+
164
+ function isYaml(name: string): boolean {
165
+ const ext = extname(name).toLowerCase();
166
+ return ext === ".yaml" || ext === ".yml";
167
+ }
168
+
169
+ // =============================================================================
170
+ // Item building
171
+ // =============================================================================
172
+
173
+ /**
174
+ * Build ordered apply items from scanned resource files. Project documents are
175
+ * skipped (stigmer.yaml is already loaded) and Organization documents are
176
+ * skipped with a warning — an organization sits above a project in the resource
177
+ * hierarchy and must be applied independently with file mode.
178
+ */
179
+ export function buildDeclarativeItems(files: readonly string[], warn: (line: string) => void): ApplyItem[] {
180
+ const items: ApplyItem[] = [];
181
+ for (const file of files) {
182
+ for (const doc of loadDocuments(file, { strict: true })) {
183
+ if (doc.kind === "Project") continue;
184
+ if (doc.kind === "Organization") {
185
+ warn(`Skipping ${file}: Organization is not a project resource. Use 'stigmer apply -f' to manage organizations.`);
186
+ continue;
187
+ }
188
+ items.push({ filePath: file, handler: resolveHandlerForKind(doc.kind, file), document: doc.document });
189
+ }
190
+ }
191
+ return sortApplyItems(items);
192
+ }
193
+
194
+ // Member-eligible kinds participate in project membership and reconciliation.
195
+ // Mirrors Go's types.IsProjectMemberKind.
196
+ const MEMBER_KINDS: ReadonlySet<ApiResourceKind> = new Set([
197
+ ApiResourceKind.agent,
198
+ ApiResourceKind.workflow,
199
+ ApiResourceKind.mcp_server,
200
+ ApiResourceKind.skill,
201
+ ]);
202
+
203
+ // =============================================================================
204
+ // Orchestration
205
+ // =============================================================================
206
+
207
+ export interface DeclarativeDeps {
208
+ /** Raw command-controller accessor (full-proto apply, preserves metadata.id). */
209
+ readonly controller: ControllerFn;
210
+ /** High-level client for skill push + post-apply MCP discovery. */
211
+ readonly stigmer: Stigmer;
212
+ /** Resolved organization (already validated non-empty by the caller). */
213
+ readonly org: string;
214
+ /** Human progress lines (stderr; not a parity surface). */
215
+ readonly info: (line: string) => void;
216
+ /** Warnings (stderr). */
217
+ readonly warn: (line: string) => void;
218
+ }
219
+
220
+ /**
221
+ * Apply a declarative project: scan the directory for YAML resources and skill
222
+ * directories, marshal each resource, then hand everything to the shared
223
+ * reconciler. This adapter's only job is "filesystem → resources + skill
224
+ * sources"; the synthesis track has its own adapter ("SDK → resources + skill
225
+ * sources") and both converge on {@link reconcileProjectMembers} (DD-009 §6).
226
+ */
227
+ export async function applyDeclarative(detect: DetectResult, deps: DeclarativeDeps): Promise<CommandResult> {
228
+ const { project, configDir } = detect;
229
+ if (project === undefined || configDir === undefined) {
230
+ throw new UsageError("declarative apply requires a stigmer.yaml project");
231
+ }
232
+
233
+ const resourceFiles = scanResourceFiles(configDir);
234
+ const skillDirs = scanSkillDirectories(configDir);
235
+ if (resourceFiles.length === 0 && skillDirs.length === 0) {
236
+ return buildNoResourcesResult(configDir);
237
+ }
238
+
239
+ const items = buildDeclarativeItems(resourceFiles, deps.warn);
240
+ deps.info(`Found ${items.length} resource(s) in ${resourceFiles.length} file(s), ${skillDirs.length} skill(s)`);
241
+
242
+ const resources: ReconcileResource[] = items.map((item) => ({ handler: item.handler, message: marshalItem(item) }));
243
+ const skillSources: SkillSource[] = skillDirs.map((dir) => ({ kind: "local", dir, tag: "latest" }));
244
+
245
+ return reconcileProjectMembers(project, resources, skillSources, deps);
246
+ }
247
+
248
+ // =============================================================================
249
+ // Shared reconciler (used by BOTH the declarative and the synthesis tracks)
250
+ // =============================================================================
251
+
252
+ /** A resource ready to apply: its handler plus the fully-marshalled message. */
253
+ export interface ReconcileResource {
254
+ readonly handler: ApplyHandler;
255
+ readonly message: Message;
256
+ }
257
+
258
+ /**
259
+ * A skill to push as a project member. `local` is a directory beside the
260
+ * project (declarative) or resolved from a SkillSynth local path (synthesis);
261
+ * `git` is a remote repo cloned on demand (synthesis only — SkillSynth git).
262
+ */
263
+ export type SkillSource =
264
+ | { readonly kind: "local"; readonly dir: string; readonly tag: string }
265
+ | {
266
+ readonly kind: "git";
267
+ readonly url: string;
268
+ readonly ref: string;
269
+ readonly subdir: string;
270
+ readonly tag: string;
271
+ };
272
+
273
+ // Both tracks treat skill artifacts the same way; the default ignore policy
274
+ // mirrors the declarative push (respect .gitignore, no extra patterns).
275
+ const DEFAULT_IGNORE_OPTIONS = { respectGitignore: true, extraIgnore: [] as string[], extraInclude: [] as string[] };
276
+
277
+ /**
278
+ * Reconcile a project's membership: push skills first (agents may reference
279
+ * them), apply each resource through the shared apply core, collect references
280
+ * to the member-eligible ones, run post-apply MCP discovery, then apply the
281
+ * project with that exact member set so the server can reconcile by
282
+ * set-difference (orphan pruning is server-side; see S1 in commands/apply.ts).
283
+ */
284
+ export async function reconcileProjectMembers(
285
+ project: Project,
286
+ resources: readonly ReconcileResource[],
287
+ skillSources: readonly SkillSource[],
288
+ deps: DeclarativeDeps,
289
+ ): Promise<CommandResult> {
290
+ const members: ApiResourceReference[] = [];
291
+
292
+ // Skills first — agents may reference them.
293
+ for (const src of skillSources) {
294
+ const pushed = await pushSkillSource(deps.stigmer, src, deps.org, deps.info);
295
+ members.push(reference(deps.org, ApiResourceKind.skill, pushed.slug));
296
+ }
297
+
298
+ // Then each resource, collecting member references from the APPLIED result so
299
+ // membership carries the server's authoritative slug. (This is the unified
300
+ // policy: the declarative track used to read the pre-apply YAML slug, the Go
301
+ // synthesis track read the applied result — converging on the applied result
302
+ // is correct for both and matches what the backend actually stored.)
303
+ const appliedMcpServers: McpServer[] = [];
304
+ for (const res of resources) {
305
+ const outcome = await applyMessage(deps.controller, res.handler, res.message, deps.org, false);
306
+ if (outcome.warning !== undefined) deps.warn(outcome.warning);
307
+ if (outcome.appliedMcpServer !== undefined) appliedMcpServers.push(outcome.appliedMcpServer);
308
+ if (MEMBER_KINDS.has(res.handler.kind) && outcome.applied !== undefined) {
309
+ const slug = memberSlugOf(outcome.applied);
310
+ if (slug) members.push(reference(deps.org, res.handler.kind, slug));
311
+ }
312
+ }
313
+
314
+ await discoverAppliedMcpServers(deps.stigmer, appliedMcpServers, deps.info);
315
+
316
+ injectOrg(project, deps.org);
317
+ if (project.spec === undefined) project.spec = create(ProjectSpecSchema, {});
318
+ project.spec.members = members;
319
+ const created = (project.metadata?.id ?? "") === "";
320
+ const applied = await deps.controller(ProjectCommandController).apply(project);
321
+
322
+ return buildDeclarativeResult(applied, members, created);
323
+ }
324
+
325
+ /**
326
+ * Push one skill source and return the result. Local sources push directly;
327
+ * git sources clone to a temp dir, push from the subdir, then clean up
328
+ * (mirrors `commands/push.ts` --git-url and Go's `pushSkillSynth`).
329
+ */
330
+ export async function pushSkillSource(
331
+ client: Stigmer,
332
+ src: SkillSource,
333
+ org: string,
334
+ info: (line: string) => void,
335
+ ): Promise<PushResult> {
336
+ if (src.kind === "local") {
337
+ info(`Pushing skill from ${basename(src.dir)}...`);
338
+ return pushSkill(client, src.dir, org, src.tag, "", DEFAULT_IGNORE_OPTIONS);
339
+ }
340
+
341
+ info(`Pushing skill from ${src.url}...`);
342
+ const tempDir = mkdtempSync(join(tmpdir(), "stigmer-skill-"));
343
+ try {
344
+ cloneRepository(src.url, src.ref, tempDir);
345
+ const skillDir = src.subdir !== "" ? join(tempDir, src.subdir) : tempDir;
346
+ return await pushSkillFromClone(client, skillDir, {
347
+ gitUrl: src.url,
348
+ gitRef: src.ref,
349
+ subdir: src.subdir,
350
+ org,
351
+ tag: src.tag,
352
+ message: "",
353
+ options: DEFAULT_IGNORE_OPTIONS,
354
+ });
355
+ } finally {
356
+ rmSync(tempDir, { recursive: true, force: true });
357
+ }
358
+ }
359
+
360
+ // Member slug from an applied resource: prefer the server's slug, fall back to
361
+ // the name (mirrors Go's buildResourceReference / reader name-fallback).
362
+ function memberSlugOf(message: Message): string {
363
+ const meta = resourceMetadata(message);
364
+ return meta?.slug || meta?.name || "";
365
+ }
366
+
367
+ /** Dry-run: validate every resource without touching the backend. */
368
+ export function previewDeclarative(detect: DetectResult, deps: Pick<DeclarativeDeps, "controller" | "warn">): {
369
+ results: CommandResult[];
370
+ summary: CommandResult;
371
+ } {
372
+ const { configDir } = detect;
373
+ if (configDir === undefined) throw new UsageError("declarative apply requires a stigmer.yaml project");
374
+ const items = buildDeclarativeItems(scanResourceFiles(configDir), deps.warn);
375
+ const results = items.map((item) => buildDryRunPreview(item));
376
+ const summary = CommandResult.success(`Dry run complete: ${items.length} resource(s) validated`);
377
+ summary.hint("Remove --dry-run to apply resources to the backend");
378
+ return { results, summary };
379
+ }
380
+
381
+ function buildDryRunPreview(item: ApplyItem): CommandResult {
382
+ const meta = metaOf(item);
383
+ const result = CommandResult.success(`Dry run: ${meta?.name ?? item.handler.displayName} is valid`);
384
+ const section = result.addSection(`${item.handler.displayName} Preview`);
385
+ if (meta?.name) section.field("Name", meta.name);
386
+ if (meta?.slug) section.field("Slug", meta.slug);
387
+ return result;
388
+ }
389
+
390
+ // The document is YAML-shaped JSON; read metadata fields for membership/preview
391
+ // without marshalling (the apply itself marshals strictly).
392
+ function metaOf(item: ApplyItem): { name?: string; slug?: string } | undefined {
393
+ const meta = (item.document as { metadata?: { name?: unknown; slug?: unknown } }).metadata;
394
+ if (meta === undefined) return undefined;
395
+ return {
396
+ name: typeof meta.name === "string" ? meta.name : undefined,
397
+ slug: typeof meta.slug === "string" ? meta.slug : undefined,
398
+ };
399
+ }
400
+
401
+ function reference(org: string, kind: ApiResourceKind, slug: string): ApiResourceReference {
402
+ return create(ApiResourceReferenceSchema, { org, kind, slug });
403
+ }
404
+
405
+ function injectOrg(project: Project, org: string): void {
406
+ if (org === "") return;
407
+ const holder = project as unknown as { metadata?: ApiResourceMetadata };
408
+ if (holder.metadata === undefined) {
409
+ holder.metadata = create(ApiResourceMetadataSchema, { org });
410
+ } else if (holder.metadata.org === "") {
411
+ holder.metadata.org = org;
412
+ }
413
+ }
414
+
415
+ // =============================================================================
416
+ // Result builders
417
+ // =============================================================================
418
+
419
+ function buildNoResourcesResult(projectDir: string): CommandResult {
420
+ const result = CommandResult.warning("No resource files found in project directory");
421
+ result
422
+ .addSection("")
423
+ .field("Directory", projectDir)
424
+ .item(
425
+ "Add YAML resource files (Agent, Workflow, McpServer) or skill directories (with SKILL.md) next to stigmer.yaml",
426
+ );
427
+ result.hint("Example: create agent.yaml with kind: Agent, then run 'stigmer apply'");
428
+ return result;
429
+ }
430
+
431
+ function buildDeclarativeResult(
432
+ project: Project,
433
+ members: readonly ApiResourceReference[],
434
+ created: boolean,
435
+ ): CommandResult {
436
+ const name = project.metadata?.name ?? "project";
437
+ const result = CommandResult.success(`Project ${name} successfully (${created ? "created" : "updated"})`);
438
+
439
+ const section = result.addSection("Project");
440
+ if (project.metadata?.name) section.field("Name", project.metadata.name);
441
+ if (project.metadata?.slug) section.field("Slug", project.metadata.slug);
442
+ if (project.metadata?.id) section.field("ID", project.metadata.id);
443
+
444
+ const counts = countByKind(members);
445
+ if (counts.size > 0) {
446
+ const memberSection = result.addSection("Members Applied");
447
+ for (const kind of [
448
+ ApiResourceKind.agent,
449
+ ApiResourceKind.workflow,
450
+ ApiResourceKind.mcp_server,
451
+ ApiResourceKind.skill,
452
+ ]) {
453
+ const count = counts.get(kind);
454
+ if (count !== undefined) memberSection.field(ApiResourceKind[kind], String(count));
455
+ }
456
+ }
457
+
458
+ const recon = project.status?.lastReconciliation;
459
+ if (recon !== undefined && (recon.created.length > 0 || recon.updated.length > 0 || recon.deleted.length > 0)) {
460
+ const reconSection = result.addSection("Reconciliation");
461
+ if (recon.created.length > 0) reconSection.field("Created", String(recon.created.length));
462
+ if (recon.updated.length > 0) reconSection.field("Updated", String(recon.updated.length));
463
+ if (recon.deleted.length > 0) reconSection.field("Pruned", String(recon.deleted.length));
464
+ }
465
+
466
+ if (project.metadata?.slug) result.hint(`View project: stigmer get project ${project.metadata.slug}`);
467
+ return result;
468
+ }
469
+
470
+ function countByKind(members: readonly ApiResourceReference[]): Map<ApiResourceKind, number> {
471
+ const counts = new Map<ApiResourceKind, number>();
472
+ for (const member of members) counts.set(member.kind, (counts.get(member.kind) ?? 0) + 1);
473
+ return counts;
474
+ }
@@ -0,0 +1,60 @@
1
+ // Post-apply MCP capability discovery.
2
+ //
3
+ // After a file apply, each newly-applied stdio MCP server is connected so its
4
+ // tools become available immediately (no daemon restart). This is best-effort:
5
+ // HTTP servers are skipped (the backend discovers those lazily), servers with
6
+ // unset secret env vars are skipped with a hint, and connect failures warn
7
+ // rather than fail the apply. Mirrors Go's discoverAppliedMcpServers + ConnectOne.
8
+
9
+ import { create } from "@bufbuild/protobuf";
10
+ import type { McpServer } from "@stigmer/protos/ai/stigmer/agentic/mcpserver/v1/api_pb";
11
+ import { ConnectInputSchema } from "@stigmer/protos/ai/stigmer/agentic/mcpserver/v1/io_pb";
12
+ import type { Stigmer } from "@stigmer/sdk";
13
+ import { buildRuntimeEnv } from "../mcp/runtime-env.js";
14
+
15
+ /** A sink for human progress/warning lines (discovery output is not parity). */
16
+ export type DiscoverySink = (line: string) => void;
17
+
18
+ /** Connect each applied stdio MCP server to trigger capability discovery. */
19
+ export async function discoverAppliedMcpServers(
20
+ client: Stigmer,
21
+ servers: readonly McpServer[],
22
+ sink?: DiscoverySink,
23
+ ): Promise<void> {
24
+ if (servers.length === 0) return;
25
+ sink?.(`Discovering capabilities for ${servers.length} applied MCP server(s)...`);
26
+
27
+ for (const server of servers) {
28
+ const name = server.metadata?.name ?? "(unnamed)";
29
+
30
+ // Only stdio servers are auto-connected here; HTTP servers are skipped.
31
+ if (server.spec?.serverType?.case !== "stdio") continue;
32
+
33
+ const missing = missingSecretEnvVars(server);
34
+ if (missing.length > 0) {
35
+ sink?.(`Skipping discovery for ${name}: missing secret env var(s): ${missing.join(", ")}`);
36
+ continue;
37
+ }
38
+
39
+ try {
40
+ await client.mcpServer.connect(
41
+ create(ConnectInputSchema, {
42
+ mcpServerId: server.metadata?.id ?? "",
43
+ runtimeEnv: buildRuntimeEnv(server),
44
+ }),
45
+ );
46
+ sink?.(`Discovered capabilities for ${name}`);
47
+ } catch (err) {
48
+ sink?.(`Discovery failed for ${name}: ${(err as Error).message}`);
49
+ }
50
+ }
51
+ }
52
+
53
+ function missingSecretEnvVars(server: McpServer): string[] {
54
+ const env = server.spec?.env ?? {};
55
+ const missing: string[] = [];
56
+ for (const [name, decl] of Object.entries(env)) {
57
+ if (decl.isSecret && (process.env[name] ?? "") === "") missing.push(name);
58
+ }
59
+ return missing;
60
+ }
@@ -0,0 +1,145 @@
1
+ // Explicit apply-handler registry for `apply -f` (file mode).
2
+ //
3
+ // Each handler binds an ApiResourceKind to its proto schema (for strict
4
+ // YAML→proto marshalling) and the raw command-controller `apply` RPC. We drive
5
+ // the *generated controllers* directly — not the high-level SDK `apply(input)`
6
+ // methods — because the SDK's `*Input` wrappers are lossy (they drop
7
+ // `metadata.id`, so an update would be misrouted as a create). The `apply` RPC
8
+ // takes the full resource message, preserving every field round-tripped from
9
+ // YAML. This is the keystone decision for Wave 2e.
10
+ //
11
+ // Registration is explicit (no init magic), mirroring Go's
12
+ // newApplyHandlerRegistry — to add a kind, add a line here.
13
+
14
+ import type { Client } from "@connectrpc/connect";
15
+ import type { DescMessage, DescService, Message } from "@bufbuild/protobuf";
16
+ import { ApiResourceKind } from "@stigmer/protos/ai/stigmer/commons/apiresource/apiresourcekind/api_resource_kind_pb";
17
+
18
+ import { type Agent, AgentSchema } 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 AgentInstance, AgentInstanceSchema } from "@stigmer/protos/ai/stigmer/agentic/agentinstance/v1/api_pb";
21
+ import { AgentInstanceCommandController } from "@stigmer/protos/ai/stigmer/agentic/agentinstance/v1/command_pb";
22
+ import { type Environment, EnvironmentSchema } from "@stigmer/protos/ai/stigmer/agentic/environment/v1/api_pb";
23
+ import { EnvironmentCommandController } from "@stigmer/protos/ai/stigmer/agentic/environment/v1/command_pb";
24
+ import { type McpServer, McpServerSchema } from "@stigmer/protos/ai/stigmer/agentic/mcpserver/v1/api_pb";
25
+ import { McpServerCommandController } from "@stigmer/protos/ai/stigmer/agentic/mcpserver/v1/command_pb";
26
+ import { type Session, SessionSchema } from "@stigmer/protos/ai/stigmer/agentic/session/v1/api_pb";
27
+ import { SessionCommandController } from "@stigmer/protos/ai/stigmer/agentic/session/v1/command_pb";
28
+ import { type Workflow, WorkflowSchema } from "@stigmer/protos/ai/stigmer/agentic/workflow/v1/api_pb";
29
+ import { WorkflowCommandController } from "@stigmer/protos/ai/stigmer/agentic/workflow/v1/command_pb";
30
+ import {
31
+ type WorkflowInstance,
32
+ WorkflowInstanceSchema,
33
+ } from "@stigmer/protos/ai/stigmer/agentic/workflowinstance/v1/api_pb";
34
+ import { WorkflowInstanceCommandController } from "@stigmer/protos/ai/stigmer/agentic/workflowinstance/v1/command_pb";
35
+ import { type IdentityProvider, IdentityProviderSchema } from "@stigmer/protos/ai/stigmer/iam/identityprovider/v1/api_pb";
36
+ import { IdentityProviderCommandController } from "@stigmer/protos/ai/stigmer/iam/identityprovider/v1/command_pb";
37
+ import { type OAuthApp, OAuthAppSchema } from "@stigmer/protos/ai/stigmer/iam/oauthapp/v1/api_pb";
38
+ import { OAuthAppCommandController } from "@stigmer/protos/ai/stigmer/iam/oauthapp/v1/command_pb";
39
+ import { type Organization, OrganizationSchema } from "@stigmer/protos/ai/stigmer/tenancy/organization/v1/api_pb";
40
+ import { OrganizationCommandController } from "@stigmer/protos/ai/stigmer/tenancy/organization/v1/command_pb";
41
+
42
+ /** Accessor for a raw Connect client over a generated service controller. */
43
+ export type ControllerFn = <Desc extends DescService>(service: Desc) => Client<Desc>;
44
+
45
+ export interface ApplyHandler {
46
+ readonly kind: ApiResourceKind;
47
+ readonly displayName: string;
48
+ /** Proto schema for strict YAML→proto marshalling. */
49
+ readonly schema: DescMessage;
50
+ /** Drive the controller's `apply` RPC with the full resource message. */
51
+ apply(controller: ControllerFn, message: Message): Promise<Message>;
52
+ }
53
+
54
+ export const APPLY_HANDLERS: ReadonlyMap<ApiResourceKind, ApplyHandler> = new Map<ApiResourceKind, ApplyHandler>([
55
+ [
56
+ ApiResourceKind.organization,
57
+ {
58
+ kind: ApiResourceKind.organization,
59
+ displayName: "Organization",
60
+ schema: OrganizationSchema,
61
+ apply: (c, m) => c(OrganizationCommandController).apply(m as Organization),
62
+ },
63
+ ],
64
+ [
65
+ ApiResourceKind.mcp_server,
66
+ {
67
+ kind: ApiResourceKind.mcp_server,
68
+ displayName: "MCP Server",
69
+ schema: McpServerSchema,
70
+ apply: (c, m) => c(McpServerCommandController).apply(m as McpServer),
71
+ },
72
+ ],
73
+ [
74
+ ApiResourceKind.agent,
75
+ {
76
+ kind: ApiResourceKind.agent,
77
+ displayName: "Agent",
78
+ schema: AgentSchema,
79
+ apply: (c, m) => c(AgentCommandController).apply(m as Agent),
80
+ },
81
+ ],
82
+ [
83
+ ApiResourceKind.workflow,
84
+ {
85
+ kind: ApiResourceKind.workflow,
86
+ displayName: "Workflow",
87
+ schema: WorkflowSchema,
88
+ apply: (c, m) => c(WorkflowCommandController).apply(m as Workflow),
89
+ },
90
+ ],
91
+ [
92
+ ApiResourceKind.environment,
93
+ {
94
+ kind: ApiResourceKind.environment,
95
+ displayName: "Environment",
96
+ schema: EnvironmentSchema,
97
+ apply: (c, m) => c(EnvironmentCommandController).apply(m as Environment),
98
+ },
99
+ ],
100
+ [
101
+ ApiResourceKind.identity_provider,
102
+ {
103
+ kind: ApiResourceKind.identity_provider,
104
+ displayName: "Identity Provider",
105
+ schema: IdentityProviderSchema,
106
+ apply: (c, m) => c(IdentityProviderCommandController).apply(m as IdentityProvider),
107
+ },
108
+ ],
109
+ [
110
+ ApiResourceKind.oauth_app,
111
+ {
112
+ kind: ApiResourceKind.oauth_app,
113
+ displayName: "OAuth App",
114
+ schema: OAuthAppSchema,
115
+ apply: (c, m) => c(OAuthAppCommandController).apply(m as OAuthApp),
116
+ },
117
+ ],
118
+ [
119
+ ApiResourceKind.agent_instance,
120
+ {
121
+ kind: ApiResourceKind.agent_instance,
122
+ displayName: "Agent Instance",
123
+ schema: AgentInstanceSchema,
124
+ apply: (c, m) => c(AgentInstanceCommandController).apply(m as AgentInstance),
125
+ },
126
+ ],
127
+ [
128
+ ApiResourceKind.workflow_instance,
129
+ {
130
+ kind: ApiResourceKind.workflow_instance,
131
+ displayName: "Workflow Instance",
132
+ schema: WorkflowInstanceSchema,
133
+ apply: (c, m) => c(WorkflowInstanceCommandController).apply(m as WorkflowInstance),
134
+ },
135
+ ],
136
+ [
137
+ ApiResourceKind.session,
138
+ {
139
+ kind: ApiResourceKind.session,
140
+ displayName: "Session",
141
+ schema: SessionSchema,
142
+ apply: (c, m) => c(SessionCommandController).apply(m as Session),
143
+ },
144
+ ],
145
+ ]);