@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,107 @@
1
+ // Typed view over the otherwise-opaque `backend.local` config section, scoped to
2
+ // the LLM settings `setup` writes and `status` reads.
3
+ //
4
+ // The config module (config/config.ts) carries `backend.local` through verbatim
5
+ // so the TS CLI never drops fields it does not model. This module adds a *typed
6
+ // lens* for the one sub-tree T05 owns — `local.llm` — and ports the Go CLI's
7
+ // `ResolveLLM*` precedence (env override > config file > provider default) so the
8
+ // two CLIs agree on which provider/model is effectively in force. Writes merge
9
+ // into a shallow copy of `local`, preserving every sibling key (temporal,
10
+ // execution, …).
11
+
12
+ import type { Config } from "../config/config.js";
13
+
14
+ /** LLM settings as persisted under `backend.local.llm` (snake_case = YAML keys). */
15
+ export interface LlmSettings {
16
+ provider?: string;
17
+ model?: string;
18
+ api_key?: string;
19
+ base_url?: string;
20
+ }
21
+
22
+ interface LocalSection {
23
+ llm?: LlmSettings;
24
+ [key: string]: unknown;
25
+ }
26
+
27
+ /** Default model per provider, matching the Go setup wizard's choices. */
28
+ const DEFAULT_MODEL: Record<string, string> = {
29
+ ollama: "qwen2.5-coder:7b",
30
+ anthropic: "claude-sonnet-4.5",
31
+ openai: "gpt-4",
32
+ };
33
+
34
+ /** Default base URL per provider (only Ollama needs one). */
35
+ const DEFAULT_BASE_URL: Record<string, string> = {
36
+ ollama: "http://localhost:11434",
37
+ };
38
+
39
+ function localSection(config: Config): LocalSection {
40
+ const local = config.backend.local;
41
+ return local !== null && typeof local === "object" ? (local as LocalSection) : {};
42
+ }
43
+
44
+ /** The persisted LLM settings, if any. */
45
+ export function readLlm(config: Config): LlmSettings | undefined {
46
+ return localSection(config).llm;
47
+ }
48
+
49
+ /**
50
+ * Detect a provider from API keys present in the environment (Anthropic first,
51
+ * then OpenAI), matching the Go CLI's `DetectProviderFromAPIKeys`.
52
+ */
53
+ export function detectProviderFromEnv(env: NodeJS.ProcessEnv = process.env): string {
54
+ if (env.ANTHROPIC_API_KEY) return "anthropic";
55
+ if (env.OPENAI_API_KEY) return "openai";
56
+ return "";
57
+ }
58
+
59
+ /** Effective provider: env override > config > API-key autodetect. */
60
+ export function resolveProvider(config: Config, env: NodeJS.ProcessEnv = process.env): string {
61
+ if (env.STIGMER_LLM_PROVIDER) return env.STIGMER_LLM_PROVIDER;
62
+ const llm = readLlm(config);
63
+ if (llm?.provider) return llm.provider;
64
+ return detectProviderFromEnv(env);
65
+ }
66
+
67
+ /** Effective model: env override > config > provider default. */
68
+ export function resolveModel(config: Config, env: NodeJS.ProcessEnv = process.env): string {
69
+ if (env.STIGMER_LLM_MODEL) return env.STIGMER_LLM_MODEL;
70
+ const llm = readLlm(config);
71
+ if (llm?.model) return llm.model;
72
+ return DEFAULT_MODEL[resolveProvider(config, env)] ?? "";
73
+ }
74
+
75
+ /** Effective API key: provider-specific env var > config. */
76
+ export function resolveApiKey(config: Config, env: NodeJS.ProcessEnv = process.env): string {
77
+ const provider = resolveProvider(config, env);
78
+ const envKey = provider === "anthropic" ? env.ANTHROPIC_API_KEY : provider === "openai" ? env.OPENAI_API_KEY : "";
79
+ if (envKey) return envKey;
80
+ return readLlm(config)?.api_key ?? "";
81
+ }
82
+
83
+ /** Fill in provider-appropriate defaults for a partial selection. */
84
+ export function withProviderDefaults(settings: LlmSettings): LlmSettings {
85
+ const provider = settings.provider ?? "";
86
+ const out: LlmSettings = { provider };
87
+ out.model = settings.model ?? DEFAULT_MODEL[provider];
88
+ if (settings.api_key) out.api_key = settings.api_key;
89
+ const baseUrl = settings.base_url ?? DEFAULT_BASE_URL[provider];
90
+ if (baseUrl) out.base_url = baseUrl;
91
+ return out;
92
+ }
93
+
94
+ /**
95
+ * Return a copy of `config` with the LLM section replaced, preserving every
96
+ * other key under `backend.local`. Passing `undefined` clears the LLM section
97
+ * (the wizard's "skip" path).
98
+ */
99
+ export function setLlm(config: Config, settings: LlmSettings | undefined): Config {
100
+ const local: LocalSection = { ...localSection(config) };
101
+ if (settings === undefined) {
102
+ delete local.llm;
103
+ } else {
104
+ local.llm = settings;
105
+ }
106
+ return { ...config, backend: { ...config.backend, local } };
107
+ }
@@ -0,0 +1,70 @@
1
+ import { appendFileSync, mkdtempSync, renameSync, writeFileSync } from "node:fs";
2
+ import { tmpdir } from "node:os";
3
+ import { join } from "node:path";
4
+ import { beforeEach, describe, expect, it, vi } from "vitest";
5
+ import { followFile, tailLines } from "./tail.js";
6
+
7
+ let dir: string;
8
+ beforeEach(() => {
9
+ dir = mkdtempSync(join(tmpdir(), "stigmer-tail-"));
10
+ });
11
+
12
+ describe("tailLines", () => {
13
+ it("returns the last n lines, ignoring a trailing newline", () => {
14
+ const file = join(dir, "a.log");
15
+ writeFileSync(file, "l1\nl2\nl3\nl4\n");
16
+ expect(tailLines(file, 2)).toEqual(["l3", "l4"]);
17
+ expect(tailLines(file, 0)).toEqual(["l1", "l2", "l3", "l4"]);
18
+ expect(tailLines(file, 10)).toEqual(["l1", "l2", "l3", "l4"]);
19
+ });
20
+
21
+ it("returns empty for a missing file", () => {
22
+ expect(tailLines(join(dir, "nope.log"), 5)).toEqual([]);
23
+ });
24
+ });
25
+
26
+ describe("followFile", () => {
27
+ const tick = () => vi.advanceTimersByTimeAsync(250);
28
+
29
+ beforeEach(() => {
30
+ vi.useFakeTimers();
31
+ return () => vi.useRealTimers();
32
+ });
33
+
34
+ it("emits only newly appended lines", async () => {
35
+ const file = join(dir, "f.log");
36
+ writeFileSync(file, "old\n");
37
+ const seen: string[] = [];
38
+ const handle = followFile(file, (line) => seen.push(line), { pollMs: 200 });
39
+
40
+ appendFileSync(file, "new1\nnew2\n");
41
+ await tick();
42
+ expect(seen).toEqual(["new1", "new2"]);
43
+ handle.stop();
44
+ });
45
+
46
+ it("reopens after rotation (inode change)", async () => {
47
+ const file = join(dir, "r.log");
48
+ writeFileSync(file, "before\n");
49
+ const seen: string[] = [];
50
+ const handle = followFile(file, (line) => seen.push(line), { pollMs: 200 });
51
+
52
+ // Rotate: move the file aside and create a fresh one in its place.
53
+ renameSync(file, join(dir, "r.log.1"));
54
+ writeFileSync(file, "after-rotate\n");
55
+ await tick();
56
+
57
+ expect(seen).toContain("after-rotate");
58
+ handle.stop();
59
+ });
60
+
61
+ it("with fromStart, emits existing content too", async () => {
62
+ const file = join(dir, "s.log");
63
+ writeFileSync(file, "existing\n");
64
+ const seen: string[] = [];
65
+ const handle = followFile(file, (line) => seen.push(line), { pollMs: 200, fromStart: true });
66
+ await tick();
67
+ expect(seen).toContain("existing");
68
+ handle.stop();
69
+ });
70
+ });
@@ -0,0 +1,100 @@
1
+ // Log tailing + following primitives, robust to the daemon's log rotation.
2
+ //
3
+ // Logs are bounded (rotated at daemon start), so `tailLines` reads the whole
4
+ // file and slices — far simpler and less bug-prone than fd seeking, with no
5
+ // meaningful cost at these sizes. `followFile` is a poll-based `tail -F`:
6
+ // polling `stat` rather than `fs.watch` is deliberate, because `fs.watch`'s
7
+ // rename/rotation semantics differ across platforms and silently miss events.
8
+ // Rotation and truncation are detected by inode change and size shrink
9
+ // respectively, and the reader reopens from the start so no lines are lost.
10
+
11
+ import { closeSync, openSync, readFileSync, readSync, statSync } from "node:fs";
12
+
13
+ /** Return the last `n` non-empty-trailing lines of a file (all lines if n<=0). */
14
+ export function tailLines(file: string, n: number): string[] {
15
+ let content: string;
16
+ try {
17
+ content = readFileSync(file, "utf8");
18
+ } catch {
19
+ return [];
20
+ }
21
+ const lines = content.split("\n");
22
+ if (lines.length > 0 && lines[lines.length - 1] === "") lines.pop();
23
+ return n <= 0 ? lines : lines.slice(-n);
24
+ }
25
+
26
+ export interface FollowHandle {
27
+ /** Stop polling and release resources. */
28
+ stop(): void;
29
+ }
30
+
31
+ export interface FollowOptions {
32
+ /** Poll interval; defaults to 200ms. */
33
+ pollMs?: number;
34
+ /** Start from byte 0 instead of the current end (emit existing content too). */
35
+ fromStart?: boolean;
36
+ }
37
+
38
+ /**
39
+ * Stream lines appended to `file`, invoking `onLine` per complete line. Survives
40
+ * rotation (inode change -> reopen from 0) and truncation (size shrink -> reset
41
+ * to 0). Returns a handle whose `stop()` ends the stream.
42
+ */
43
+ export function followFile(file: string, onLine: (line: string) => void, options: FollowOptions = {}): FollowHandle {
44
+ const pollMs = options.pollMs ?? 200;
45
+ let inode = -1;
46
+ let offset = 0;
47
+ let buffer = "";
48
+ let started = false;
49
+
50
+ const drain = (): void => {
51
+ let newline: number;
52
+ while ((newline = buffer.indexOf("\n")) >= 0) {
53
+ onLine(buffer.slice(0, newline));
54
+ buffer = buffer.slice(newline + 1);
55
+ }
56
+ };
57
+
58
+ const tick = (): void => {
59
+ let stat: ReturnType<typeof statSync>;
60
+ try {
61
+ stat = statSync(file);
62
+ } catch {
63
+ return; // file not created yet, or briefly gone mid-rotation
64
+ }
65
+
66
+ if (stat.ino !== inode) {
67
+ // First sight of the file, or it was rotated out from under us.
68
+ inode = stat.ino;
69
+ offset = started || options.fromStart === true ? 0 : stat.size;
70
+ buffer = "";
71
+ } else if (stat.size < offset) {
72
+ offset = 0; // truncated in place
73
+ buffer = "";
74
+ }
75
+ started = true;
76
+
77
+ if (stat.size <= offset) return;
78
+
79
+ const length = stat.size - offset;
80
+ const chunk = Buffer.alloc(length);
81
+ const fd = openSync(file, "r");
82
+ try {
83
+ readSync(fd, chunk, 0, length, offset);
84
+ } finally {
85
+ closeSync(fd);
86
+ }
87
+ offset = stat.size;
88
+ buffer += chunk.toString("utf8");
89
+ drain();
90
+ };
91
+
92
+ tick();
93
+ const timer = setInterval(tick, pollMs);
94
+ timer.unref?.();
95
+ return {
96
+ stop(): void {
97
+ clearInterval(timer);
98
+ },
99
+ };
100
+ }
@@ -0,0 +1,46 @@
1
+ import { mkdtempSync, writeFileSync } from "node:fs";
2
+ import { tmpdir } from "node:os";
3
+ import { join } from "node:path";
4
+ import { beforeEach, describe, expect, it } from "vitest";
5
+ import { allComponents, componentByName, printTail } from "./view.js";
6
+
7
+ let dir: string;
8
+ beforeEach(() => {
9
+ dir = mkdtempSync(join(tmpdir(), "stigmer-logsview-"));
10
+ });
11
+
12
+ class CaptureSink {
13
+ chunks: string[] = [];
14
+ write(chunk: string): void {
15
+ this.chunks.push(chunk);
16
+ }
17
+ get text(): string {
18
+ return this.chunks.join("");
19
+ }
20
+ }
21
+
22
+ describe("componentByName / allComponents", () => {
23
+ it("knows the three daemon components", () => {
24
+ expect(allComponents(dir).map((c) => c.name)).toEqual(["stigmer-server", "runner", "temporal"]);
25
+ expect(componentByName(dir, "runner")?.file).toBe(join(dir, "runner.log"));
26
+ expect(componentByName(dir, "bogus")).toBeUndefined();
27
+ });
28
+ });
29
+
30
+ describe("printTail", () => {
31
+ it("does not prefix a single component", () => {
32
+ writeFileSync(join(dir, "runner.log"), "r1\nr2\n");
33
+ const sink = new CaptureSink();
34
+ printTail([componentByName(dir, "runner")!], 5, sink);
35
+ expect(sink.text).toBe("r1\nr2\n");
36
+ });
37
+
38
+ it("prefixes lines with the component name when showing several", () => {
39
+ writeFileSync(join(dir, "stigmer-server.log"), "s1\n");
40
+ writeFileSync(join(dir, "runner.log"), "r1\n");
41
+ writeFileSync(join(dir, "temporal.log"), "t1\n");
42
+ const sink = new CaptureSink();
43
+ printTail(allComponents(dir), 5, sink);
44
+ expect(sink.text).toBe("[stigmer-server] s1\n[runner] r1\n[temporal] t1\n");
45
+ });
46
+ });
@@ -0,0 +1,65 @@
1
+ // Multi-component log viewing for `stigmer logs`: print a tail snapshot and,
2
+ // optionally, follow appended lines live.
3
+ //
4
+ // Divergence from the Go CLI (documented, not drift): the Go `--all` view merges
5
+ // components by parsing each line's timestamp. That parse is fragile across the
6
+ // server's and runner's different log formats and silently misorders lines it
7
+ // cannot parse. The TS view instead prefixes every line with its component name
8
+ // (kubectl-style), which is robust without any format coupling and reads clearly
9
+ // in both snapshot and follow modes.
10
+
11
+ import { join } from "node:path";
12
+ import { type FollowHandle, followFile, tailLines } from "./tail.js";
13
+
14
+ export interface LogComponent {
15
+ readonly name: string;
16
+ readonly file: string;
17
+ }
18
+
19
+ /** The components whose logs the daemon writes, in dependency order. */
20
+ export function allComponents(logDir: string): LogComponent[] {
21
+ return [
22
+ { name: "stigmer-server", file: join(logDir, "stigmer-server.log") },
23
+ { name: "runner", file: join(logDir, "runner.log") },
24
+ { name: "temporal", file: join(logDir, "temporal.log") },
25
+ ];
26
+ }
27
+
28
+ /** One component by name, or undefined if not a known component. */
29
+ export function componentByName(logDir: string, name: string): LogComponent | undefined {
30
+ return allComponents(logDir).find((component) => component.name === name);
31
+ }
32
+
33
+ export interface Sink {
34
+ write(chunk: string): unknown;
35
+ }
36
+
37
+ function format(line: string, name: string, prefix: boolean): string {
38
+ return prefix ? `[${name}] ${line}\n` : `${line}\n`;
39
+ }
40
+
41
+ /** Print the last `tail` lines of each component (grouped by component). */
42
+ export function printTail(components: LogComponent[], tail: number, out: Sink): void {
43
+ const prefix = components.length > 1;
44
+ for (const component of components) {
45
+ for (const line of tailLines(component.file, tail)) {
46
+ out.write(format(line, component.name, prefix));
47
+ }
48
+ }
49
+ }
50
+
51
+ /**
52
+ * Follow appended lines from each component until the returned handle is
53
+ * stopped. New lines only (the caller prints the tail snapshot first).
54
+ */
55
+ export function followAll(components: LogComponent[], out: Sink): FollowHandle {
56
+ const prefix = components.length > 1;
57
+ const handles = components.map((component) =>
58
+ followFile(component.file, (line) => out.write(format(line, component.name, prefix))),
59
+ );
60
+ return {
61
+ stop(): void {
62
+ for (const handle of handles) handle.stop();
63
+ },
64
+ };
65
+ }
@@ -0,0 +1,65 @@
1
+ // TCP readiness probing — the "poll-don't-sleep" pattern shared by the Temporal
2
+ // manager and the server gate.
3
+ //
4
+ // A single short-lived connection attempt tells us whether something is
5
+ // listening; waitForTcp loops that probe until a deadline, failing fast (with a
6
+ // log tail) if the process under watch exits first. This mirrors
7
+ // `test/conformance/src/harness/temporal.ts` so the CLI and the harnesses share
8
+ // one readiness model.
9
+
10
+ import { connect } from "node:net";
11
+ import { setTimeout as delay } from "node:timers/promises";
12
+
13
+ /** Attempt a single TCP connection; resolves true if it connects in time. */
14
+ export function tcpConnects(port: number, host = "127.0.0.1", timeoutMs = 200): Promise<boolean> {
15
+ return new Promise((resolveConnected) => {
16
+ const socket = connect({ port, host });
17
+ let settled = false;
18
+ const settle = (connected: boolean): void => {
19
+ if (settled) return;
20
+ settled = true;
21
+ socket.destroy();
22
+ resolveConnected(connected);
23
+ };
24
+ socket.setTimeout(timeoutMs, () => settle(false));
25
+ socket.once("connect", () => settle(true));
26
+ socket.once("error", () => settle(false));
27
+ });
28
+ }
29
+
30
+ export interface WaitForTcpOptions {
31
+ port: number;
32
+ host?: string;
33
+ /** Overall deadline. */
34
+ timeoutMs?: number;
35
+ /** Delay between probes. */
36
+ pollMs?: number;
37
+ /** If provided and it returns non-null, the watched process has exited — fail
38
+ * immediately rather than waiting out the deadline. */
39
+ getExit?: () => { code: number | null; signal: NodeJS.Signals | null } | null;
40
+ /** Diagnostic log tail, appended to the failure message. */
41
+ getLog?: () => string;
42
+ /** Human label for the thing being awaited (used in error text). */
43
+ label?: string;
44
+ }
45
+
46
+ /** Poll a TCP port until it accepts a connection or the deadline passes. */
47
+ export async function waitForTcp(options: WaitForTcpOptions): Promise<void> {
48
+ const { port, host = "127.0.0.1", timeoutMs = 30_000, pollMs = 150, getExit, getLog, label = `port ${port}` } = options;
49
+ const deadline = Date.now() + timeoutMs;
50
+
51
+ while (Date.now() < deadline) {
52
+ const exit = getExit?.();
53
+ if (exit != null) {
54
+ throw new Error(`${label} exited before becoming ready (code=${exit.code}, signal=${exit.signal})${tail(getLog)}`);
55
+ }
56
+ if (await tcpConnects(port, host)) return;
57
+ await delay(pollMs);
58
+ }
59
+ throw new Error(`${label} did not become ready within ${timeoutMs}ms${tail(getLog)}`);
60
+ }
61
+
62
+ function tail(getLog?: () => string): string {
63
+ const log = getLog?.();
64
+ return log ? `\n--- log tail ---\n${log}` : "";
65
+ }
@@ -0,0 +1,67 @@
1
+ // Filesystem layout for the local stack, built on the CLI's config paths.
2
+ //
3
+ // The Go CLI deliberately splits state across two roots and the TS port
4
+ // preserves it exactly:
5
+ // - the *data dir* (~/.stigmer/data) holds daemon/server/runner PID + state +
6
+ // logs + the runner workspace;
7
+ // - the *config dir* (~/.stigmer) holds config.yaml, the SQLite db, and the
8
+ // Temporal binary/data/lock.
9
+ // Centralizing the asymmetry here keeps every call site honest. Each helper
10
+ // takes the home dir (defaulting to os.homedir()) so tests can redirect the
11
+ // whole tree to a temp directory.
12
+
13
+ import { homedir } from "node:os";
14
+ import { join } from "node:path";
15
+ import { configDir, dataDir } from "../config/paths.js";
16
+
17
+ export { configDir, dataDir };
18
+
19
+ /** Daemon/server/runner/temporal log directory (~/.stigmer/data/logs). */
20
+ export function logDir(home: string = homedir()): string {
21
+ return join(dataDir(home), "logs");
22
+ }
23
+
24
+ /** Working directory the runner is launched in (~/.stigmer/data/workspace). */
25
+ export function workspaceDir(home: string = homedir()): string {
26
+ return join(dataDir(home), "workspace");
27
+ }
28
+
29
+ /** Downloaded-binary directory for Temporal + stigmer-server (~/.stigmer/bin). */
30
+ export function binDir(home: string = homedir()): string {
31
+ return join(configDir(home), "bin");
32
+ }
33
+
34
+ /**
35
+ * Root for on-demand-acquired npm runtimes (~/.stigmer/runtimes). Each release
36
+ * version installs into its own `<version>/` subtree so multiple CLI versions can
37
+ * coexist and a partial install never poisons another version's runner.
38
+ */
39
+ export function runtimesDir(home: string = homedir()): string {
40
+ return join(configDir(home), "runtimes");
41
+ }
42
+
43
+ /** Temporal dev-server data directory (~/.stigmer/temporal-data). */
44
+ export function temporalDataDir(home: string = homedir()): string {
45
+ return join(configDir(home), "temporal-data");
46
+ }
47
+
48
+ /** Temporal PID file (~/.stigmer/temporal.pid). Lives in the config dir, not
49
+ * the data dir — matching the Go CLI's Temporal manager layout. */
50
+ export function temporalPidFile(home: string = homedir()): string {
51
+ return join(configDir(home), "temporal.pid");
52
+ }
53
+
54
+ /** Temporal single-instance lock file (~/.stigmer/temporal.lock). */
55
+ export function temporalLockFile(home: string = homedir()): string {
56
+ return join(configDir(home), "temporal.lock");
57
+ }
58
+
59
+ /** Local SQLite database path (~/.stigmer/stigmer.db), the server's default. */
60
+ export function databasePath(home: string = homedir()): string {
61
+ return join(configDir(home), "stigmer.db");
62
+ }
63
+
64
+ /** Server artifact storage path (~/.stigmer/storage), the server's default. */
65
+ export function storagePath(home: string = homedir()): string {
66
+ return join(configDir(home), "storage");
67
+ }
@@ -0,0 +1,53 @@
1
+ import { existsSync, mkdirSync, mkdtempSync, writeFileSync } from "node:fs";
2
+ import { tmpdir } from "node:os";
3
+ import { join } from "node:path";
4
+ import { beforeEach, describe, expect, it, vi } from "vitest";
5
+ import { configPath } from "../config/paths.js";
6
+ import { binDir, configDir, databasePath, dataDir, temporalDataDir } from "./paths.js";
7
+ import { reset } from "./reset.js";
8
+
9
+ let home: string;
10
+ beforeEach(() => {
11
+ home = mkdtempSync(join(tmpdir(), "stigmer-reset-"));
12
+ });
13
+
14
+ function seedState(): void {
15
+ mkdirSync(dataDir(home), { recursive: true });
16
+ mkdirSync(temporalDataDir(home), { recursive: true });
17
+ mkdirSync(binDir(home), { recursive: true });
18
+ writeFileSync(databasePath(home), "db");
19
+ writeFileSync(`${databasePath(home)}-wal`, "wal");
20
+ writeFileSync(join(dataDir(home), "runner.pid"), "1");
21
+ writeFileSync(configPath(home), "backend:\n type: local\n");
22
+ }
23
+
24
+ const noopStop = vi.fn(async () => true);
25
+
26
+ describe("reset", () => {
27
+ it("wipes state but preserves config by default", async () => {
28
+ seedState();
29
+ const result = await reset({}, home, noopStop);
30
+
31
+ expect(result.servicesStopped).toBe(true);
32
+ expect(existsSync(dataDir(home))).toBe(false);
33
+ expect(existsSync(databasePath(home))).toBe(false);
34
+ expect(existsSync(`${databasePath(home)}-wal`)).toBe(false);
35
+ expect(existsSync(temporalDataDir(home))).toBe(false);
36
+ expect(existsSync(binDir(home))).toBe(false);
37
+ // Config is preserved.
38
+ expect(existsSync(configPath(home))).toBe(true);
39
+ expect(result.removedPaths).toContain(dataDir(home));
40
+ });
41
+
42
+ it("removes config when includeConfig is set", async () => {
43
+ seedState();
44
+ await reset({ includeConfig: true }, home, noopStop);
45
+ expect(existsSync(configPath(home))).toBe(false);
46
+ });
47
+
48
+ it("reports services not stopped when nothing was running", async () => {
49
+ mkdirSync(configDir(home), { recursive: true });
50
+ const result = await reset({}, home, vi.fn(async () => false));
51
+ expect(result.servicesStopped).toBe(false);
52
+ });
53
+ });
@@ -0,0 +1,90 @@
1
+ // `stigmer reset` — stop the stack and wipe all persistent local state, so the
2
+ // next `up` starts from a clean slate. Configuration (config.yaml) is preserved
3
+ // by default so users do not lose API keys; `includeConfig` removes it too.
4
+ //
5
+ // The set of removed paths is a faithful port of the Go CLI's reset, spanning
6
+ // both roots of the `~/.stigmer` layout (the SQLite db + Temporal state under
7
+ // the config dir, and everything under the data dir).
8
+
9
+ import { existsSync, rmSync } from "node:fs";
10
+ import { homedir } from "node:os";
11
+ import { join } from "node:path";
12
+ import { configPath } from "../config/paths.js";
13
+ import {
14
+ binDir,
15
+ configDir,
16
+ databasePath,
17
+ dataDir,
18
+ storagePath,
19
+ temporalDataDir,
20
+ temporalLockFile,
21
+ temporalPidFile,
22
+ } from "./paths.js";
23
+ import { down, isRunning } from "./daemon/launch.js";
24
+
25
+ export interface ResetOptions {
26
+ /** Also remove config.yaml (the user must reconfigure on next start). */
27
+ includeConfig?: boolean;
28
+ }
29
+
30
+ export interface ResetResult {
31
+ servicesStopped: boolean;
32
+ removedPaths: string[];
33
+ }
34
+
35
+ /** Stop the stack if running. Returns whether anything was stopped. Injectable
36
+ * so reset's file-wiping can be tested without touching a real daemon. */
37
+ export type StopFn = (home: string) => Promise<boolean>;
38
+
39
+ const defaultStop: StopFn = async (home) => {
40
+ if (!(await isRunning(home))) return false;
41
+ await down(home);
42
+ return true;
43
+ };
44
+
45
+ /** Stop services (if running) and remove persistent state under `home`. */
46
+ export async function reset(
47
+ options: ResetOptions = {},
48
+ home: string = homedir(),
49
+ stop: StopFn = defaultStop,
50
+ ): Promise<ResetResult> {
51
+ const servicesStopped = await stop(home);
52
+
53
+ const config = configDir(home);
54
+ const db = databasePath(home);
55
+
56
+ // Order: db (+ sidecars) first, then the data tree, then config-dir state.
57
+ const targets = [
58
+ db,
59
+ `${db}-wal`,
60
+ `${db}-shm`,
61
+ dataDir(home),
62
+ storagePath(home),
63
+ join(config, "sessions"),
64
+ join(config, "runtimes"),
65
+ temporalDataDir(home),
66
+ temporalPidFile(home),
67
+ temporalLockFile(home),
68
+ binDir(home),
69
+ join(config, "logs"),
70
+ join(config, "llm.pid"),
71
+ ];
72
+
73
+ const removedPaths: string[] = [];
74
+ for (const target of targets) {
75
+ if (existsSync(target)) {
76
+ rmSync(target, { recursive: true, force: true });
77
+ removedPaths.push(target);
78
+ }
79
+ }
80
+
81
+ if (options.includeConfig === true) {
82
+ const cfg = configPath(home);
83
+ if (existsSync(cfg)) {
84
+ rmSync(cfg, { force: true });
85
+ removedPaths.push(cfg);
86
+ }
87
+ }
88
+
89
+ return { servicesStopped, removedPaths };
90
+ }
@@ -0,0 +1,18 @@
1
+ // Public surface of the runtime-acquisition seams (DD-002/003/007).
2
+
3
+ export { MIN_NODE_MAJOR, resolveNode } from "./node.js";
4
+ export {
5
+ type EnsureRunnerOptions,
6
+ type RunnerResolution,
7
+ acquireRunner,
8
+ ensureRunner,
9
+ resolveRunner,
10
+ } from "./runner.js";
11
+ export {
12
+ type EnsureServerOptions,
13
+ type ServerDownloadTarget,
14
+ downloadServerBinary,
15
+ ensureServerBinary,
16
+ resolveServerBinary,
17
+ } from "./server.js";
18
+ export { which } from "./which.js";