@stigmer/cli 3.35.0 → 3.36.0

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 (514) hide show
  1. package/auth/auth0.d.ts.map +1 -1
  2. package/auth/auth0.js.map +1 -1
  3. package/auth/callback-server.d.ts.map +1 -1
  4. package/auth/callback-server.js.map +1 -1
  5. package/auth/index.d.ts.map +1 -1
  6. package/auth/index.js.map +1 -1
  7. package/auth/login.d.ts.map +1 -1
  8. package/auth/login.js.map +1 -1
  9. package/auth/pages.d.ts.map +1 -1
  10. package/auth/pages.js.map +1 -1
  11. package/auth/pkce.d.ts.map +1 -1
  12. package/auth/pkce.js.map +1 -1
  13. package/auth/token.d.ts.map +1 -1
  14. package/auth/token.js.map +1 -1
  15. package/backend.d.ts.map +1 -1
  16. package/backend.js.map +1 -1
  17. package/cli/stigmer.d.ts.map +1 -1
  18. package/cli/stigmer.js.map +1 -1
  19. package/client/client.d.ts.map +1 -1
  20. package/client/client.js.map +1 -1
  21. package/client/index.d.ts.map +1 -1
  22. package/client/index.js.map +1 -1
  23. package/commands/agent-exec-flags.d.ts.map +1 -1
  24. package/commands/agent-exec-flags.js.map +1 -1
  25. package/commands/apikey/duration.d.ts.map +1 -1
  26. package/commands/apikey/duration.js.map +1 -1
  27. package/commands/apikey/index.d.ts.map +1 -1
  28. package/commands/apikey/index.js.map +1 -1
  29. package/commands/apply.d.ts.map +1 -1
  30. package/commands/apply.js.map +1 -1
  31. package/commands/auth/index.d.ts.map +1 -1
  32. package/commands/auth/index.js.map +1 -1
  33. package/commands/auth/login.d.ts.map +1 -1
  34. package/commands/auth/login.js.map +1 -1
  35. package/commands/auth/whoami.d.ts.map +1 -1
  36. package/commands/auth/whoami.js.map +1 -1
  37. package/commands/bootstrap.d.ts.map +1 -1
  38. package/commands/bootstrap.js.map +1 -1
  39. package/commands/completion.d.ts.map +1 -1
  40. package/commands/completion.js.map +1 -1
  41. package/commands/config/backend.d.ts.map +1 -1
  42. package/commands/config/backend.js.map +1 -1
  43. package/commands/config/context.d.ts.map +1 -1
  44. package/commands/config/context.js.map +1 -1
  45. package/commands/config/index.d.ts.map +1 -1
  46. package/commands/config/index.js.map +1 -1
  47. package/commands/config/kv.d.ts.map +1 -1
  48. package/commands/config/kv.js.map +1 -1
  49. package/commands/connect.d.ts.map +1 -1
  50. package/commands/connect.js.map +1 -1
  51. package/commands/delete.d.ts.map +1 -1
  52. package/commands/delete.js.map +1 -1
  53. package/commands/diff.d.ts.map +1 -1
  54. package/commands/diff.js.map +1 -1
  55. package/commands/down.d.ts.map +1 -1
  56. package/commands/down.js.map +1 -1
  57. package/commands/download.d.ts.map +1 -1
  58. package/commands/download.js.map +1 -1
  59. package/commands/execution/approve.d.ts.map +1 -1
  60. package/commands/execution/approve.js.map +1 -1
  61. package/commands/execution/control.d.ts.map +1 -1
  62. package/commands/execution/control.js.map +1 -1
  63. package/commands/execution/index.d.ts.map +1 -1
  64. package/commands/execution/index.js.map +1 -1
  65. package/commands/execution/logs.d.ts.map +1 -1
  66. package/commands/execution/logs.js.map +1 -1
  67. package/commands/execution/trace.d.ts.map +1 -1
  68. package/commands/execution/trace.js.map +1 -1
  69. package/commands/get.d.ts.map +1 -1
  70. package/commands/get.js.map +1 -1
  71. package/commands/install.d.ts.map +1 -1
  72. package/commands/install.js.map +1 -1
  73. package/commands/internal-daemon.d.ts.map +1 -1
  74. package/commands/internal-daemon.js.map +1 -1
  75. package/commands/list.d.ts.map +1 -1
  76. package/commands/list.js.map +1 -1
  77. package/commands/logs.d.ts.map +1 -1
  78. package/commands/logs.js.map +1 -1
  79. package/commands/marketplace.d.ts.map +1 -1
  80. package/commands/marketplace.js.map +1 -1
  81. package/commands/mcp-server.d.ts.map +1 -1
  82. package/commands/mcp-server.js.map +1 -1
  83. package/commands/push.d.ts.map +1 -1
  84. package/commands/push.js.map +1 -1
  85. package/commands/reset.d.ts.map +1 -1
  86. package/commands/reset.js.map +1 -1
  87. package/commands/resume.d.ts.map +1 -1
  88. package/commands/resume.js.map +1 -1
  89. package/commands/run.d.ts.map +1 -1
  90. package/commands/run.js.map +1 -1
  91. package/commands/schedule.d.ts.map +1 -1
  92. package/commands/schedule.js.map +1 -1
  93. package/commands/search.d.ts.map +1 -1
  94. package/commands/search.js.map +1 -1
  95. package/commands/setup.d.ts.map +1 -1
  96. package/commands/setup.js.map +1 -1
  97. package/commands/share.d.ts.map +1 -1
  98. package/commands/share.js.map +1 -1
  99. package/commands/shared.d.ts.map +1 -1
  100. package/commands/shared.js.map +1 -1
  101. package/commands/status.d.ts.map +1 -1
  102. package/commands/status.js.map +1 -1
  103. package/commands/tag.d.ts.map +1 -1
  104. package/commands/tag.js.map +1 -1
  105. package/commands/up.d.ts.map +1 -1
  106. package/commands/up.js.map +1 -1
  107. package/commands/usage.d.ts.map +1 -1
  108. package/commands/usage.js.map +1 -1
  109. package/commands/validate.d.ts.map +1 -1
  110. package/commands/validate.js.map +1 -1
  111. package/commands/version.d.ts.map +1 -1
  112. package/commands/version.js.map +1 -1
  113. package/config/config.d.ts.map +1 -1
  114. package/config/config.js.map +1 -1
  115. package/config/index.d.ts.map +1 -1
  116. package/config/index.js.map +1 -1
  117. package/config/keys.d.ts.map +1 -1
  118. package/config/keys.js.map +1 -1
  119. package/config/paths.d.ts.map +1 -1
  120. package/config/paths.js.map +1 -1
  121. package/config/resolve.d.ts.map +1 -1
  122. package/config/resolve.js.map +1 -1
  123. package/errors/classify.d.ts.map +1 -1
  124. package/errors/classify.js.map +1 -1
  125. package/errors/cli-exit-error.d.ts.map +1 -1
  126. package/errors/cli-exit-error.js.map +1 -1
  127. package/errors/exit-codes.d.ts.map +1 -1
  128. package/errors/exit-codes.js.map +1 -1
  129. package/errors/handle.d.ts.map +1 -1
  130. package/errors/handle.js.map +1 -1
  131. package/errors/index.d.ts.map +1 -1
  132. package/errors/index.js.map +1 -1
  133. package/errors/usage-error.d.ts.map +1 -1
  134. package/errors/usage-error.js.map +1 -1
  135. package/index.d.ts.map +1 -1
  136. package/index.js.map +1 -1
  137. package/local/artifact.d.ts.map +1 -1
  138. package/local/artifact.js.map +1 -1
  139. package/local/bootstrap.d.ts.map +1 -1
  140. package/local/bootstrap.js.map +1 -1
  141. package/local/constants.d.ts.map +1 -1
  142. package/local/constants.js.map +1 -1
  143. package/local/daemon/components.d.ts.map +1 -1
  144. package/local/daemon/components.js.map +1 -1
  145. package/local/daemon/env.d.ts.map +1 -1
  146. package/local/daemon/env.js.map +1 -1
  147. package/local/daemon/host.d.ts.map +1 -1
  148. package/local/daemon/host.js.map +1 -1
  149. package/local/daemon/index.d.ts.map +1 -1
  150. package/local/daemon/index.js.map +1 -1
  151. package/local/daemon/launch.d.ts.map +1 -1
  152. package/local/daemon/launch.js.map +1 -1
  153. package/local/daemon/process.d.ts.map +1 -1
  154. package/local/daemon/process.js.map +1 -1
  155. package/local/daemon/supervisor.d.ts.map +1 -1
  156. package/local/daemon/supervisor.js.map +1 -1
  157. package/local/daemon/types.d.ts.map +1 -1
  158. package/local/daemon/types.js.map +1 -1
  159. package/local/llm-config.d.ts.map +1 -1
  160. package/local/llm-config.js.map +1 -1
  161. package/local/logs/tail.d.ts.map +1 -1
  162. package/local/logs/tail.js.map +1 -1
  163. package/local/logs/view.d.ts.map +1 -1
  164. package/local/logs/view.js.map +1 -1
  165. package/local/net/tcp.d.ts.map +1 -1
  166. package/local/net/tcp.js.map +1 -1
  167. package/local/operator-config.d.ts.map +1 -1
  168. package/local/operator-config.js.map +1 -1
  169. package/local/paths.d.ts.map +1 -1
  170. package/local/paths.js.map +1 -1
  171. package/local/reset.d.ts.map +1 -1
  172. package/local/reset.js.map +1 -1
  173. package/local/runtime/index.d.ts.map +1 -1
  174. package/local/runtime/index.js.map +1 -1
  175. package/local/runtime/node.d.ts.map +1 -1
  176. package/local/runtime/node.js.map +1 -1
  177. package/local/runtime/runner.d.ts.map +1 -1
  178. package/local/runtime/runner.js.map +1 -1
  179. package/local/runtime/runtimes-install.d.ts.map +1 -1
  180. package/local/runtime/runtimes-install.js.map +1 -1
  181. package/local/runtime/server.d.ts.map +1 -1
  182. package/local/runtime/server.js.map +1 -1
  183. package/local/runtime/which.d.ts.map +1 -1
  184. package/local/runtime/which.js.map +1 -1
  185. package/local/setup/prompt.d.ts.map +1 -1
  186. package/local/setup/prompt.js.map +1 -1
  187. package/local/setup/wizard.d.ts.map +1 -1
  188. package/local/setup/wizard.js.map +1 -1
  189. package/local/state/health-state.d.ts.map +1 -1
  190. package/local/state/health-state.js.map +1 -1
  191. package/local/state/index.d.ts.map +1 -1
  192. package/local/state/index.js.map +1 -1
  193. package/local/state/lock.d.ts.map +1 -1
  194. package/local/state/lock.js.map +1 -1
  195. package/local/state/log-rotation.d.ts.map +1 -1
  196. package/local/state/log-rotation.js.map +1 -1
  197. package/local/state/pidfile.d.ts.map +1 -1
  198. package/local/state/pidfile.js.map +1 -1
  199. package/local/state/proc.d.ts.map +1 -1
  200. package/local/state/proc.js.map +1 -1
  201. package/local/state/startup-config.d.ts.map +1 -1
  202. package/local/state/startup-config.js.map +1 -1
  203. package/local/status.d.ts.map +1 -1
  204. package/local/status.js.map +1 -1
  205. package/local/temporal/download.d.ts.map +1 -1
  206. package/local/temporal/download.js.map +1 -1
  207. package/local/temporal/index.d.ts.map +1 -1
  208. package/local/temporal/index.js.map +1 -1
  209. package/local/temporal/inspect.d.ts.map +1 -1
  210. package/local/temporal/inspect.js.map +1 -1
  211. package/local/temporal/manager.d.ts.map +1 -1
  212. package/local/temporal/manager.js.map +1 -1
  213. package/local/temporal/supervisor.d.ts.map +1 -1
  214. package/local/temporal/supervisor.js.map +1 -1
  215. package/local/webconsole/index.d.ts.map +1 -1
  216. package/local/webconsole/index.js.map +1 -1
  217. package/logger.d.ts.map +1 -1
  218. package/logger.js.map +1 -1
  219. package/marketplace/config.d.ts.map +1 -1
  220. package/marketplace/config.js.map +1 -1
  221. package/marketplace/github.d.ts.map +1 -1
  222. package/marketplace/github.js.map +1 -1
  223. package/marketplace/index.d.ts.map +1 -1
  224. package/marketplace/index.js.map +1 -1
  225. package/marketplace/install.d.ts.map +1 -1
  226. package/marketplace/install.js.map +1 -1
  227. package/marketplace/materialize.d.ts.map +1 -1
  228. package/marketplace/materialize.js.map +1 -1
  229. package/marketplace/official.d.ts.map +1 -1
  230. package/marketplace/official.js.map +1 -1
  231. package/marketplace/read.d.ts.map +1 -1
  232. package/marketplace/read.js.map +1 -1
  233. package/marketplace/ref.d.ts.map +1 -1
  234. package/marketplace/ref.js.map +1 -1
  235. package/marketplace/render.d.ts.map +1 -1
  236. package/marketplace/render.js.map +1 -1
  237. package/output/command-result.d.ts.map +1 -1
  238. package/output/command-result.js.map +1 -1
  239. package/output/confirm.d.ts.map +1 -1
  240. package/output/confirm.js.map +1 -1
  241. package/output/format.d.ts.map +1 -1
  242. package/output/format.js.map +1 -1
  243. package/output/index.d.ts.map +1 -1
  244. package/output/index.js.map +1 -1
  245. package/output/ndjson.d.ts.map +1 -1
  246. package/output/ndjson.js.map +1 -1
  247. package/output/proto.d.ts.map +1 -1
  248. package/output/proto.js.map +1 -1
  249. package/output/style.d.ts.map +1 -1
  250. package/output/style.js.map +1 -1
  251. package/output/table.d.ts.map +1 -1
  252. package/output/table.js.map +1 -1
  253. package/package.json +7 -7
  254. package/program.d.ts.map +1 -1
  255. package/program.js.map +1 -1
  256. package/registry/aliases.d.ts.map +1 -1
  257. package/registry/aliases.js.map +1 -1
  258. package/registry/index.d.ts.map +1 -1
  259. package/registry/index.js.map +1 -1
  260. package/registry/metadata.d.ts.map +1 -1
  261. package/registry/metadata.js.map +1 -1
  262. package/registry/registry.d.ts.map +1 -1
  263. package/registry/registry.js.map +1 -1
  264. package/registry/verb-support.d.ts.map +1 -1
  265. package/registry/verb-support.js.map +1 -1
  266. package/registry/verbs.d.ts.map +1 -1
  267. package/registry/verbs.js.map +1 -1
  268. package/resources/apply/apply.d.ts.map +1 -1
  269. package/resources/apply/apply.js.map +1 -1
  270. package/resources/apply/discovery.d.ts.map +1 -1
  271. package/resources/apply/discovery.js.map +1 -1
  272. package/resources/apply/handlers.d.ts.map +1 -1
  273. package/resources/apply/handlers.js.map +1 -1
  274. package/resources/connect/connect.d.ts.map +1 -1
  275. package/resources/connect/connect.js.map +1 -1
  276. package/resources/connect/discover.d.ts.map +1 -1
  277. package/resources/connect/discover.js.map +1 -1
  278. package/resources/connect/display.d.ts.map +1 -1
  279. package/resources/connect/display.js.map +1 -1
  280. package/resources/connect/oauth.d.ts.map +1 -1
  281. package/resources/connect/oauth.js.map +1 -1
  282. package/resources/cursor-pages.d.ts.map +1 -1
  283. package/resources/cursor-pages.js.map +1 -1
  284. package/resources/delete.d.ts.map +1 -1
  285. package/resources/delete.js.map +1 -1
  286. package/resources/diff.d.ts.map +1 -1
  287. package/resources/diff.js.map +1 -1
  288. package/resources/documents.d.ts.map +1 -1
  289. package/resources/documents.js.map +1 -1
  290. package/resources/download.d.ts.map +1 -1
  291. package/resources/download.js.map +1 -1
  292. package/resources/execution-approve.d.ts.map +1 -1
  293. package/resources/execution-approve.js.map +1 -1
  294. package/resources/execution-control.d.ts.map +1 -1
  295. package/resources/execution-control.js.map +1 -1
  296. package/resources/execution-format.d.ts.map +1 -1
  297. package/resources/execution-format.js.map +1 -1
  298. package/resources/execution-logs.d.ts.map +1 -1
  299. package/resources/execution-logs.js.map +1 -1
  300. package/resources/execution-trace.d.ts.map +1 -1
  301. package/resources/execution-trace.js.map +1 -1
  302. package/resources/execution.d.ts.map +1 -1
  303. package/resources/execution.js.map +1 -1
  304. package/resources/get-bindings.d.ts.map +1 -1
  305. package/resources/get-bindings.js.map +1 -1
  306. package/resources/get.d.ts.map +1 -1
  307. package/resources/get.js.map +1 -1
  308. package/resources/git.d.ts.map +1 -1
  309. package/resources/git.js.map +1 -1
  310. package/resources/ignore/index.d.ts.map +1 -1
  311. package/resources/ignore/index.js.map +1 -1
  312. package/resources/ignore/matcher.d.ts.map +1 -1
  313. package/resources/ignore/matcher.js.map +1 -1
  314. package/resources/list.d.ts.map +1 -1
  315. package/resources/list.js.map +1 -1
  316. package/resources/mcp/placeholder-resolver.d.ts.map +1 -1
  317. package/resources/mcp/placeholder-resolver.js.map +1 -1
  318. package/resources/mcp/runtime-env.d.ts.map +1 -1
  319. package/resources/mcp/runtime-env.js.map +1 -1
  320. package/resources/picker/ink.d.ts.map +1 -1
  321. package/resources/picker/ink.js.map +1 -1
  322. package/resources/picker/tty.d.ts.map +1 -1
  323. package/resources/picker/tty.js.map +1 -1
  324. package/resources/plugin.d.ts.map +1 -1
  325. package/resources/plugin.js.map +1 -1
  326. package/resources/reference.d.ts.map +1 -1
  327. package/resources/reference.js.map +1 -1
  328. package/resources/render.d.ts.map +1 -1
  329. package/resources/render.js.map +1 -1
  330. package/resources/run/agent-exec.d.ts.map +1 -1
  331. package/resources/run/agent-exec.js.map +1 -1
  332. package/resources/run/attachments.d.ts.map +1 -1
  333. package/resources/run/attachments.js.map +1 -1
  334. package/resources/run/create.d.ts.map +1 -1
  335. package/resources/run/create.js.map +1 -1
  336. package/resources/run/env.d.ts.map +1 -1
  337. package/resources/run/env.js.map +1 -1
  338. package/resources/run/epilogue.d.ts.map +1 -1
  339. package/resources/run/epilogue.js.map +1 -1
  340. package/resources/run/header.d.ts.map +1 -1
  341. package/resources/run/header.js.map +1 -1
  342. package/resources/run/prepare.d.ts.map +1 -1
  343. package/resources/run/prepare.js.map +1 -1
  344. package/resources/run/resolve.d.ts.map +1 -1
  345. package/resources/run/resolve.js.map +1 -1
  346. package/resources/run/resume.d.ts.map +1 -1
  347. package/resources/run/resume.js.map +1 -1
  348. package/resources/run/stream.d.ts.map +1 -1
  349. package/resources/run/stream.js.map +1 -1
  350. package/resources/run/workflow-stream.d.ts.map +1 -1
  351. package/resources/run/workflow-stream.js.map +1 -1
  352. package/resources/run/workspace.d.ts.map +1 -1
  353. package/resources/run/workspace.js.map +1 -1
  354. package/resources/schedule.d.ts.map +1 -1
  355. package/resources/schedule.js.map +1 -1
  356. package/resources/search.d.ts.map +1 -1
  357. package/resources/search.js.map +1 -1
  358. package/resources/session.d.ts.map +1 -1
  359. package/resources/session.js.map +1 -1
  360. package/resources/share.d.ts.map +1 -1
  361. package/resources/share.js.map +1 -1
  362. package/resources/skill.d.ts.map +1 -1
  363. package/resources/skill.js.map +1 -1
  364. package/resources/stream/approval-detect.d.ts.map +1 -1
  365. package/resources/stream/approval-detect.js.map +1 -1
  366. package/resources/stream/convert.d.ts.map +1 -1
  367. package/resources/stream/convert.js.map +1 -1
  368. package/resources/stream/diff.d.ts.map +1 -1
  369. package/resources/stream/diff.js.map +1 -1
  370. package/resources/stream/events.d.ts.map +1 -1
  371. package/resources/stream/events.js.map +1 -1
  372. package/resources/stream/headless.d.ts.map +1 -1
  373. package/resources/stream/headless.js.map +1 -1
  374. package/resources/stream/ink.d.ts.map +1 -1
  375. package/resources/stream/ink.js.map +1 -1
  376. package/resources/stream/render-ndjson.d.ts.map +1 -1
  377. package/resources/stream/render-ndjson.js.map +1 -1
  378. package/resources/stream/render-plaintext.d.ts.map +1 -1
  379. package/resources/stream/render-plaintext.js.map +1 -1
  380. package/resources/stream/snapshot.d.ts.map +1 -1
  381. package/resources/stream/snapshot.js.map +1 -1
  382. package/resources/stream/subagent.d.ts.map +1 -1
  383. package/resources/stream/subagent.js.map +1 -1
  384. package/resources/stream/submit.d.ts.map +1 -1
  385. package/resources/stream/submit.js.map +1 -1
  386. package/resources/stream/todo.d.ts.map +1 -1
  387. package/resources/stream/todo.js.map +1 -1
  388. package/resources/stream/tool-state.d.ts.map +1 -1
  389. package/resources/stream/tool-state.js.map +1 -1
  390. package/resources/stream/tty.d.ts.map +1 -1
  391. package/resources/stream/tty.js.map +1 -1
  392. package/resources/stream/workflow-event-view.d.ts.map +1 -1
  393. package/resources/stream/workflow-event-view.js.map +1 -1
  394. package/resources/stream/workflow-render-ndjson.d.ts.map +1 -1
  395. package/resources/stream/workflow-render-ndjson.js.map +1 -1
  396. package/resources/stream/workflow-render-plaintext.d.ts.map +1 -1
  397. package/resources/stream/workflow-render-plaintext.js.map +1 -1
  398. package/resources/tag.d.ts.map +1 -1
  399. package/resources/tag.js.map +1 -1
  400. package/resources/task-configs.d.ts.map +1 -1
  401. package/resources/task-configs.js.map +1 -1
  402. package/resources/usage.d.ts.map +1 -1
  403. package/resources/usage.js.map +1 -1
  404. package/resources/validate.d.ts.map +1 -1
  405. package/resources/validate.js.map +1 -1
  406. package/resources/version.d.ts.map +1 -1
  407. package/resources/version.js.map +1 -1
  408. package/runtime.d.ts.map +1 -1
  409. package/runtime.js.map +1 -1
  410. package/version.d.ts.map +1 -1
  411. package/version.js.map +1 -1
  412. package/src/auth/pkce.test.ts +0 -37
  413. package/src/auth/token.test.ts +0 -151
  414. package/src/client/client.test.ts +0 -142
  415. package/src/commands/apikey/duration.test.ts +0 -23
  416. package/src/commands/auth/login.test.ts +0 -52
  417. package/src/commands/auth/whoami.test.ts +0 -96
  418. package/src/commands/bootstrap.test.ts +0 -178
  419. package/src/commands/config/backend.test.ts +0 -122
  420. package/src/commands/config/context.test.ts +0 -171
  421. package/src/commands/connect.test.ts +0 -113
  422. package/src/commands/install.test.ts +0 -307
  423. package/src/commands/marketplace.test.ts +0 -205
  424. package/src/commands/mcp-server.test.ts +0 -65
  425. package/src/commands/validate.test.ts +0 -168
  426. package/src/config/config.test.ts +0 -132
  427. package/src/config/keys.test.ts +0 -61
  428. package/src/config/resolve.test.ts +0 -242
  429. package/src/errors/clierr.test.ts +0 -172
  430. package/src/local/artifact.test.ts +0 -54
  431. package/src/local/bootstrap.test.ts +0 -166
  432. package/src/local/daemon/components.test.ts +0 -148
  433. package/src/local/daemon/daemon.integration.test.ts +0 -216
  434. package/src/local/daemon/env.test.ts +0 -108
  435. package/src/local/daemon/launch.test.ts +0 -136
  436. package/src/local/daemon/supervisor.test.ts +0 -260
  437. package/src/local/llm-config.test.ts +0 -66
  438. package/src/local/logs/tail.test.ts +0 -70
  439. package/src/local/logs/view.test.ts +0 -46
  440. package/src/local/operator-config.test.ts +0 -72
  441. package/src/local/reset.test.ts +0 -53
  442. package/src/local/runtime/runtime.test.ts +0 -240
  443. package/src/local/runtime/runtimes-install.test.ts +0 -58
  444. package/src/local/runtime/server.test.ts +0 -253
  445. package/src/local/setup/wizard.test.ts +0 -94
  446. package/src/local/state/state.test.ts +0 -210
  447. package/src/local/status.test.ts +0 -108
  448. package/src/local/temporal/download.test.ts +0 -248
  449. package/src/local/temporal/inspect.test.ts +0 -83
  450. package/src/local/temporal/manager.test.ts +0 -64
  451. package/src/local/temporal/supervisor.test.ts +0 -77
  452. package/src/marketplace/__fixtures__/cursor-marketplace.ts +0 -69
  453. package/src/marketplace/config.test.ts +0 -254
  454. package/src/marketplace/github.test.ts +0 -394
  455. package/src/marketplace/install.test.ts +0 -261
  456. package/src/marketplace/official.test.ts +0 -107
  457. package/src/marketplace/read.test.ts +0 -93
  458. package/src/marketplace/ref.test.ts +0 -179
  459. package/src/output/command-result.test.ts +0 -73
  460. package/src/output/confirm.test.ts +0 -43
  461. package/src/output/format.test.ts +0 -65
  462. package/src/output/proto.test.ts +0 -72
  463. package/src/output/table.test.ts +0 -37
  464. package/src/program.test.ts +0 -62
  465. package/src/registry/aliases.test.ts +0 -142
  466. package/src/registry/registry.test.ts +0 -355
  467. package/src/resources/apply/apply.integration.test.ts +0 -353
  468. package/src/resources/apply/apply.test.ts +0 -134
  469. package/src/resources/apply/discovery.integration.test.ts +0 -99
  470. package/src/resources/connect/__fixtures__/stdio-crash.mjs +0 -6
  471. package/src/resources/connect/__fixtures__/stdio-server.mjs +0 -48
  472. package/src/resources/connect/connect.integration.test.ts +0 -383
  473. package/src/resources/connect/discover.test.ts +0 -84
  474. package/src/resources/connect/oauth.test.ts +0 -158
  475. package/src/resources/cursor-pages.test.ts +0 -55
  476. package/src/resources/diff.integration.test.ts +0 -103
  477. package/src/resources/diff.test.ts +0 -34
  478. package/src/resources/documents.test.ts +0 -67
  479. package/src/resources/execution-approve.test.ts +0 -50
  480. package/src/resources/execution-format.test.ts +0 -48
  481. package/src/resources/execution.integration.test.ts +0 -285
  482. package/src/resources/execution.test.ts +0 -138
  483. package/src/resources/ignore/ignore.test.ts +0 -62
  484. package/src/resources/mcp/placeholder-resolver.test.ts +0 -71
  485. package/src/resources/mcp/runtime-env.test.ts +0 -102
  486. package/src/resources/mutate-verbs.integration.test.ts +0 -455
  487. package/src/resources/picker/tty.test.ts +0 -37
  488. package/src/resources/plugin.test.ts +0 -379
  489. package/src/resources/push-download.integration.test.ts +0 -175
  490. package/src/resources/read-completion.integration.test.ts +0 -164
  491. package/src/resources/read-verbs.integration.test.ts +0 -603
  492. package/src/resources/reference.test.ts +0 -107
  493. package/src/resources/run/agent-exec.test.ts +0 -179
  494. package/src/resources/run/attachments.test.ts +0 -135
  495. package/src/resources/run/create.test.ts +0 -336
  496. package/src/resources/run/env.test.ts +0 -131
  497. package/src/resources/run/header.test.ts +0 -79
  498. package/src/resources/run/prepare.test.ts +0 -428
  499. package/src/resources/run/workflow-stream.integration.test.ts +0 -157
  500. package/src/resources/run/workspace.test.ts +0 -93
  501. package/src/resources/share.test.ts +0 -523
  502. package/src/resources/skill.test.ts +0 -364
  503. package/src/resources/stream/diff.test.ts +0 -338
  504. package/src/resources/stream/headless.test.ts +0 -119
  505. package/src/resources/stream/lazy-import.test.ts +0 -63
  506. package/src/resources/stream/render-ndjson.test.ts +0 -126
  507. package/src/resources/stream/render-plaintext.test.ts +0 -127
  508. package/src/resources/stream/snapshot.test.ts +0 -111
  509. package/src/resources/stream/submit.test.ts +0 -77
  510. package/src/resources/stream/workflow-event-view.test.ts +0 -116
  511. package/src/resources/stream/workflow-render.test.ts +0 -81
  512. package/src/resources/task-configs.test.ts +0 -98
  513. package/src/resources/usage.test.ts +0 -94
  514. package/src/resources/validate.test.ts +0 -79
@@ -1,455 +0,0 @@
1
- // In-process integration test for the mutating verbs (delete / tag).
2
- //
3
- // Stands up a real Connect backend over h2c serving the query *and* command
4
- // controllers these verbs call, points an SDK node client at it, and drives the
5
- // resource layer (planDelete → perform, tagVersion) end to end. Asserts the
6
- // rendered result shape, the special-case routing (execution→cancel,
7
- // already-terminal), and that backend errors map to the right CLI exit code.
8
-
9
- import { create } from "@bufbuild/protobuf";
10
- import { Code, ConnectError, type ConnectRouter } from "@connectrpc/connect";
11
- import { connectNodeAdapter } from "@connectrpc/connect-node";
12
- import { AgentSchema } from "@stigmer/protos/ai/stigmer/agentic/agent/v1/api_pb";
13
- import { AgentCommandController } from "@stigmer/protos/ai/stigmer/agentic/agent/v1/command_pb";
14
- import { AgentQueryController } from "@stigmer/protos/ai/stigmer/agentic/agent/v1/query_pb";
15
- import { AgentExecutionSchema } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/api_pb";
16
- import { AgentExecutionCommandController } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/command_pb";
17
- import { ExecutionPhase } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
18
- import { AgentExecutionQueryController } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/query_pb";
19
- import { AgentChannelSchema } from "@stigmer/protos/ai/stigmer/agentic/agentchannel/v1/api_pb";
20
- import { AgentChannelCommandController } from "@stigmer/protos/ai/stigmer/agentic/agentchannel/v1/command_pb";
21
- import { AgentChannelQueryController } from "@stigmer/protos/ai/stigmer/agentic/agentchannel/v1/query_pb";
22
- import { AgentInstanceSchema } from "@stigmer/protos/ai/stigmer/agentic/agentinstance/v1/api_pb";
23
- import { AgentInstanceCommandController } from "@stigmer/protos/ai/stigmer/agentic/agentinstance/v1/command_pb";
24
- import { AgentInstanceQueryController } from "@stigmer/protos/ai/stigmer/agentic/agentinstance/v1/query_pb";
25
- import { ChannelAppSchema } from "@stigmer/protos/ai/stigmer/agentic/channelapp/v1/api_pb";
26
- import { ChannelAppCommandController } from "@stigmer/protos/ai/stigmer/agentic/channelapp/v1/command_pb";
27
- import { ChannelAppQueryController } from "@stigmer/protos/ai/stigmer/agentic/channelapp/v1/query_pb";
28
- import { EnvironmentSchema } from "@stigmer/protos/ai/stigmer/agentic/environment/v1/api_pb";
29
- import { EnvironmentCommandController } from "@stigmer/protos/ai/stigmer/agentic/environment/v1/command_pb";
30
- import { EnvironmentQueryController } from "@stigmer/protos/ai/stigmer/agentic/environment/v1/query_pb";
31
- import { McpServerSchema } from "@stigmer/protos/ai/stigmer/agentic/mcpserver/v1/api_pb";
32
- import { McpServerCommandController } from "@stigmer/protos/ai/stigmer/agentic/mcpserver/v1/command_pb";
33
- import { McpServerQueryController } from "@stigmer/protos/ai/stigmer/agentic/mcpserver/v1/query_pb";
34
- import { ScheduleSchema } from "@stigmer/protos/ai/stigmer/agentic/schedule/v1/api_pb";
35
- import { ScheduleCommandController } from "@stigmer/protos/ai/stigmer/agentic/schedule/v1/command_pb";
36
- import { ScheduleQueryController } from "@stigmer/protos/ai/stigmer/agentic/schedule/v1/query_pb";
37
- import { WorkflowSchema } from "@stigmer/protos/ai/stigmer/agentic/workflow/v1/api_pb";
38
- import { WorkflowCommandController } from "@stigmer/protos/ai/stigmer/agentic/workflow/v1/command_pb";
39
- import { WorkflowQueryController } from "@stigmer/protos/ai/stigmer/agentic/workflow/v1/query_pb";
40
- import { WorkflowInstanceSchema } from "@stigmer/protos/ai/stigmer/agentic/workflowinstance/v1/api_pb";
41
- import { WorkflowInstanceCommandController } from "@stigmer/protos/ai/stigmer/agentic/workflowinstance/v1/command_pb";
42
- import { WorkflowInstanceQueryController } from "@stigmer/protos/ai/stigmer/agentic/workflowinstance/v1/query_pb";
43
- import { createNodeClient, normalizeEndpoint } from "@stigmer/sdk/node";
44
- import type { Stigmer } from "@stigmer/sdk";
45
- import { createServer as createHttp2Server, type Http2Server, type ServerHttp2Session } from "node:http2";
46
- import type { AddressInfo } from "node:net";
47
- import { afterAll, beforeAll, beforeEach, describe, expect, it } from "vitest";
48
- import { classify, ExitCode } from "../errors/index.js";
49
- import { planDelete } from "./delete.js";
50
- import { tagVersion } from "./tag.js";
51
-
52
- const knownAgent = create(AgentSchema, {
53
- metadata: { name: "Reviewer", slug: "reviewer", org: "acme", id: "agt_1" },
54
- });
55
-
56
- const knownInstance = create(AgentInstanceSchema, {
57
- metadata: { name: "reviewer-default", slug: "reviewer-default", org: "acme", id: "ain_1" },
58
- spec: { agentId: "agt_1" },
59
- });
60
-
61
- const knownMcp = create(McpServerSchema, {
62
- metadata: { name: "Filesystem", slug: "filesystem", org: "acme", id: "mcp_1" },
63
- });
64
-
65
- const knownWorkflow = create(WorkflowSchema, {
66
- metadata: { name: "Deploy", slug: "deploy", org: "acme", id: "wfl_1" },
67
- });
68
-
69
- const knownEnvironment = create(EnvironmentSchema, {
70
- metadata: { name: "clinic-patient-db", slug: "clinic-patient-db", org: "acme", id: "env_1" },
71
- });
72
-
73
- const knownChannel = create(AgentChannelSchema, {
74
- metadata: { name: "clinic-patient-whatsapp", slug: "clinic-patient-whatsapp", org: "acme", id: "ach_1" },
75
- });
76
-
77
- const knownChannelApp = create(ChannelAppSchema, {
78
- metadata: { name: "clinic-meta-app", slug: "clinic-meta-app", org: "acme", id: "chapp_1" },
79
- });
80
-
81
- const knownSchedule = create(ScheduleSchema, {
82
- metadata: { name: "daily-fee-reminders", slug: "daily-fee-reminders", org: "acme", id: "sch_1" },
83
- });
84
-
85
- const knownWorkflowInstance = create(WorkflowInstanceSchema, {
86
- metadata: { name: "deploy-default", slug: "deploy-default", org: "acme", id: "win_1" },
87
- });
88
-
89
- // Pending execution (cancellable) vs. an already-terminal one.
90
- const pendingExecution = create(AgentExecutionSchema, {
91
- metadata: { id: "aex_run" },
92
- status: { phase: ExecutionPhase.EXECUTION_PENDING },
93
- });
94
- const cancelledExecution = create(AgentExecutionSchema, {
95
- metadata: { id: "aex_run" },
96
- status: { phase: ExecutionPhase.EXECUTION_CANCELLED },
97
- });
98
- const completedExecution = create(AgentExecutionSchema, {
99
- metadata: { id: "aex_done" },
100
- status: { phase: ExecutionPhase.EXECUTION_COMPLETED },
101
- });
102
-
103
- let backend: Http2Server;
104
- let client: Stigmer;
105
- const openSessions = new Set<ServerHttp2Session>();
106
-
107
- // Spies for the command-side calls, reset per test.
108
- let cancelCalls: string[] = [];
109
- let tagCalls: { workflowId: string; versionHash: string; tag: string }[] = [];
110
- // Force-carrying deletes record what actually rode the RPC.
111
- let environmentDeletes: { resourceId: string; force: boolean }[] = [];
112
- let channelAppDeletes: { resourceId: string; force: boolean }[] = [];
113
- // agent_channel, schedule, and workflow_instance delete by typed ID — no
114
- // force field exists on their wire contracts.
115
- let channelDeleteIds: string[] = [];
116
- let scheduleDeleteIds: string[] = [];
117
- let workflowInstanceDeleteIds: string[] = [];
118
-
119
- beforeEach(() => {
120
- cancelCalls = [];
121
- tagCalls = [];
122
- environmentDeletes = [];
123
- channelAppDeletes = [];
124
- channelDeleteIds = [];
125
- scheduleDeleteIds = [];
126
- workflowInstanceDeleteIds = [];
127
- });
128
-
129
- beforeAll(async () => {
130
- const routes = (router: ConnectRouter) => {
131
- router.service(AgentQueryController, {
132
- get: (req) => {
133
- if (req.value !== "agt_1") throw new ConnectError("agent not found", Code.NotFound);
134
- return knownAgent;
135
- },
136
- getByReference: (req) => {
137
- if (req.slug !== "reviewer") throw new ConnectError("agent not found", Code.NotFound);
138
- return knownAgent;
139
- },
140
- });
141
- router.service(AgentCommandController, {
142
- delete: () => knownAgent,
143
- });
144
-
145
- router.service(AgentInstanceQueryController, {
146
- get: (req) => {
147
- if (req.value !== "ain_1") throw new ConnectError("agent instance not found", Code.NotFound);
148
- return knownInstance;
149
- },
150
- getByReference: (req) => {
151
- if (req.slug !== "reviewer-default") throw new ConnectError("agent instance not found", Code.NotFound);
152
- return knownInstance;
153
- },
154
- });
155
- router.service(AgentInstanceCommandController, {
156
- delete: () => knownInstance,
157
- });
158
-
159
- router.service(McpServerQueryController, {
160
- getByReference: () => knownMcp,
161
- });
162
- router.service(McpServerCommandController, {
163
- delete: (req) => {
164
- if (req.resourceId !== "mcp_1") throw new ConnectError("bad id", Code.InvalidArgument);
165
- return knownMcp;
166
- },
167
- });
168
-
169
- router.service(EnvironmentQueryController, {
170
- getByReference: (req) => {
171
- if (req.slug !== "clinic-patient-db") throw new ConnectError("environment not found", Code.NotFound);
172
- return knownEnvironment;
173
- },
174
- });
175
- router.service(EnvironmentCommandController, {
176
- delete: (req) => {
177
- environmentDeletes.push({ resourceId: req.resourceId, force: req.force });
178
- return knownEnvironment;
179
- },
180
- });
181
-
182
- router.service(AgentChannelQueryController, {
183
- getByReference: (req) => {
184
- if (req.slug !== "clinic-patient-whatsapp") throw new ConnectError("agent channel not found", Code.NotFound);
185
- return knownChannel;
186
- },
187
- });
188
- router.service(AgentChannelCommandController, {
189
- delete: (req) => {
190
- channelDeleteIds.push(req.value);
191
- return knownChannel;
192
- },
193
- });
194
-
195
- router.service(ChannelAppQueryController, {
196
- getByReference: (req) => {
197
- if (req.slug !== "clinic-meta-app") throw new ConnectError("channel app not found", Code.NotFound);
198
- return knownChannelApp;
199
- },
200
- });
201
- router.service(ChannelAppCommandController, {
202
- delete: (req) => {
203
- channelAppDeletes.push({ resourceId: req.resourceId, force: req.force });
204
- return knownChannelApp;
205
- },
206
- });
207
-
208
- router.service(ScheduleQueryController, {
209
- getByReference: (req) => {
210
- if (req.slug !== "daily-fee-reminders") throw new ConnectError("schedule not found", Code.NotFound);
211
- return knownSchedule;
212
- },
213
- });
214
- router.service(ScheduleCommandController, {
215
- delete: (req) => {
216
- scheduleDeleteIds.push(req.value);
217
- return knownSchedule;
218
- },
219
- });
220
-
221
- router.service(WorkflowInstanceQueryController, {
222
- getByReference: (req) => {
223
- if (req.slug !== "deploy-default") throw new ConnectError("workflow instance not found", Code.NotFound);
224
- return knownWorkflowInstance;
225
- },
226
- });
227
- router.service(WorkflowInstanceCommandController, {
228
- delete: (req) => {
229
- workflowInstanceDeleteIds.push(req.value);
230
- return knownWorkflowInstance;
231
- },
232
- });
233
-
234
- router.service(WorkflowQueryController, {
235
- getByReference: (req) => {
236
- if (req.slug !== "deploy") throw new ConnectError("workflow not found", Code.NotFound);
237
- return knownWorkflow;
238
- },
239
- });
240
- router.service(WorkflowCommandController, {
241
- tagVersion: (req) => {
242
- tagCalls.push({ workflowId: req.workflowId, versionHash: req.versionHash, tag: req.tag });
243
- return knownWorkflow;
244
- },
245
- });
246
-
247
- router.service(AgentExecutionQueryController, {
248
- get: (req) => {
249
- if (req.value === "aex_done") return completedExecution;
250
- if (req.value === "aex_run") return pendingExecution;
251
- throw new ConnectError("execution not found", Code.NotFound);
252
- },
253
- });
254
- router.service(AgentExecutionCommandController, {
255
- cancel: (req) => {
256
- cancelCalls.push(req.id);
257
- return cancelledExecution;
258
- },
259
- });
260
- };
261
-
262
- backend = createHttp2Server(connectNodeAdapter({ routes }));
263
- backend.on("session", (session) => {
264
- openSessions.add(session);
265
- session.on("close", () => openSessions.delete(session));
266
- });
267
- await new Promise<void>((resolve) => backend.listen(0, "127.0.0.1", resolve));
268
- const port = (backend.address() as AddressInfo).port;
269
- client = createNodeClient({ baseUrl: normalizeEndpoint(`127.0.0.1:${port}`) });
270
- });
271
-
272
- afterAll(async () => {
273
- for (const session of openSessions) session.destroy();
274
- await new Promise<void>((resolve) => backend.close(() => resolve()));
275
- });
276
-
277
- describe("delete (standard kinds)", () => {
278
- it("describes then deletes an agent by ID", async () => {
279
- const plan = await planDelete(client, "agent", "agt_1", "acme");
280
-
281
- expect(plan.warning.status).toBe("warning");
282
- expect(plan.warning.sections[0].fields).toEqual([
283
- { key: "ID", value: "agt_1" },
284
- { key: "Name", value: "Reviewer" },
285
- { key: "Slug", value: "reviewer" },
286
- { key: "Org", value: "acme" },
287
- ]);
288
-
289
- const result = await plan.perform();
290
- expect(result.status).toBe("success");
291
- expect(result.message).toBe("Agent deleted successfully");
292
- expect(result.sections[0].title).toBe("Deleted Agent");
293
- expect(result.sections[0].fields).toContainEqual({ key: "ID", value: "agt_1" });
294
- });
295
-
296
- it("resolves an agent by org/slug for the pre-Get", async () => {
297
- const plan = await planDelete(client, "agent", "reviewer", "acme");
298
- expect((await plan.perform()).status).toBe("success");
299
- });
300
-
301
- it("describes then deletes an agent instance by org/slug", async () => {
302
- const plan = await planDelete(client, "agent-instance", "reviewer-default", "acme");
303
-
304
- expect(plan.warning.status).toBe("warning");
305
- expect(plan.warning.sections[0].fields).toContainEqual({ key: "ID", value: "ain_1" });
306
-
307
- const result = await plan.perform();
308
- expect(result.status).toBe("success");
309
- expect(result.message).toBe("Agent Instance deleted successfully");
310
- });
311
-
312
- it("deletes an MCP server via the DeleteResourceInput shape", async () => {
313
- const plan = await planDelete(client, "mcpserver", "filesystem", "acme");
314
- const result = await plan.perform();
315
- expect(result.status).toBe("success");
316
- expect(result.message).toBe("MCP Server deleted successfully");
317
- });
318
-
319
- it("maps a NotFound on the pre-Get to ExitCode.NotFound", async () => {
320
- const err = await planDelete(client, "agent", "missing", "acme").catch((e) => e);
321
- expect(classify(err)?.exitCode).toBe(ExitCode.NotFound);
322
- });
323
-
324
- it("deletes a schedule via its typed ID (tears down the Temporal artifact server-side)", async () => {
325
- const plan = await planDelete(client, "schedule", "daily-fee-reminders", "acme");
326
- const result = await plan.perform();
327
- expect(result.status).toBe("success");
328
- expect(result.message).toBe("Schedule deleted successfully");
329
- expect(scheduleDeleteIds).toEqual(["sch_1"]);
330
- });
331
-
332
- it("deletes a workflow instance via its typed ID", async () => {
333
- const plan = await planDelete(client, "workflow-instance", "deploy-default", "acme");
334
- const result = await plan.perform();
335
- expect(result.status).toBe("success");
336
- expect(result.message).toBe("Workflow Instance deleted successfully");
337
- expect(workflowInstanceDeleteIds).toEqual(["win_1"]);
338
- });
339
-
340
- it("rejects an unknown type and lists exactly the wired types", async () => {
341
- const err = await planDelete(client, "bogus", "x", "acme").catch((e) => e);
342
- expect(classify(err)?.exitCode).toBe(ExitCode.Usage);
343
- // The list is derived from DELETE_HANDLERS (+ the two special cases), so
344
- // it must name the wired kinds and never the narrowed ones (#354).
345
- const message = String(err.message);
346
- for (const wired of [
347
- "environment",
348
- "agentchannel",
349
- "channelapp",
350
- "schedule",
351
- "workflowinstance",
352
- "execution",
353
- "organization",
354
- ]) {
355
- expect(message).toContain(wired);
356
- }
357
- expect(message).not.toContain("session");
358
- expect(message).not.toContain("oauthapp");
359
- });
360
-
361
- it("rejects a narrowed kind at the verb gate with a usage error", async () => {
362
- // session's delete verb is narrowed out of the matrix
363
- // (stigmer/stigmer#354), so the refusal now happens at the verb-support
364
- // gate ("does not support") rather than the dispatch fall-through.
365
- const err = await planDelete(client, "session", "ses_1", "acme").catch((e) => e);
366
- expect(classify(err)?.exitCode).toBe(ExitCode.Usage);
367
- expect(String(err.message)).toContain("does not support");
368
- });
369
- });
370
-
371
- describe("delete (cutover kinds: environment, agent channel, channel app)", () => {
372
- it("deletes an environment via the DeleteResourceInput shape", async () => {
373
- const plan = await planDelete(client, "environment", "clinic-patient-db", "acme");
374
- const result = await plan.perform();
375
-
376
- expect(result.status).toBe("success");
377
- expect(result.message).toBe("Environment deleted successfully");
378
- expect(environmentDeletes).toEqual([{ resourceId: "env_1", force: false }]);
379
- });
380
-
381
- it("threads --force through the environment delete (generic ack carrier)", async () => {
382
- const plan = await planDelete(client, "environment", "clinic-patient-db", "acme", true);
383
- await plan.perform();
384
- expect(environmentDeletes).toEqual([{ resourceId: "env_1", force: true }]);
385
- });
386
-
387
- it("deletes an agent channel via its typed-ID contract, ignoring force gracefully", async () => {
388
- const plan = await planDelete(client, "agent-channel", "clinic-patient-whatsapp", "acme", true);
389
-
390
- // The teardown-vs-pause distinction rides the warning (server doc contract).
391
- expect(plan.warning.hints).toContain(
392
- "Delete is the connection's full teardown; to pause instead, apply with spec.enabled: false.",
393
- );
394
-
395
- const result = await plan.perform();
396
- expect(result.status).toBe("success");
397
- expect(result.message).toBe("Agent Channel deleted successfully");
398
- expect(channelDeleteIds).toEqual(["ach_1"]);
399
- });
400
-
401
- it("deletes a channel app via the DeleteResourceInput shape", async () => {
402
- const plan = await planDelete(client, "channel-app", "clinic-meta-app", "acme");
403
- const result = await plan.perform();
404
-
405
- expect(result.status).toBe("success");
406
- expect(result.message).toBe("Channel App deleted successfully");
407
- expect(channelAppDeletes).toEqual([{ resourceId: "chapp_1", force: false }]);
408
- });
409
- });
410
-
411
- describe("delete execution (cancel special case)", () => {
412
- it("cancels a non-terminal execution", async () => {
413
- const plan = await planDelete(client, "execution", "aex_run", "");
414
- expect(plan.confirmPrompt).toContain("cancellation");
415
-
416
- const result = await plan.perform();
417
- expect(result.status).toBe("success");
418
- expect(result.message).toBe("Execution cancelled successfully");
419
- expect(result.sections[0].fields).toContainEqual({ key: "Status", value: "cancelled" });
420
- expect(cancelCalls).toEqual(["aex_run"]);
421
- });
422
-
423
- it("reports an already-terminal execution without issuing a cancel", async () => {
424
- const plan = await planDelete(client, "execution", "aex_done", "");
425
- const result = await plan.perform();
426
- expect(result.status).toBe("warning");
427
- expect(result.message).toBe("Execution was already in terminal state");
428
- expect(result.sections[0].fields).toContainEqual({ key: "Status", value: "completed" });
429
- expect(cancelCalls).toEqual([]);
430
- });
431
-
432
- it("rejects a non-execution ID with a usage error", async () => {
433
- const err = await planDelete(client, "execution", "agt_1", "").catch((e) => e);
434
- expect(classify(err)?.exitCode).toBe(ExitCode.Usage);
435
- });
436
- });
437
-
438
- describe("tag (workflow versions)", () => {
439
- it("tags a workflow version and truncates the hash in the message", async () => {
440
- const result = await tagVersion(client, "workflow", "acme/deploy", "abcdef1234567890", "stable", "acme");
441
- expect(result.status).toBe("success");
442
- expect(result.message).toBe("Tagged version abcdef123456 as 'stable'");
443
- expect(tagCalls).toEqual([{ workflowId: "wfl_1", versionHash: "abcdef1234567890", tag: "stable" }]);
444
- });
445
-
446
- it("uses the org context for a bare slug", async () => {
447
- await tagVersion(client, "wf", "deploy", "abc", "v1", "acme");
448
- expect(tagCalls[0]?.workflowId).toBe("wfl_1");
449
- });
450
-
451
- it("rejects unsupported resource types with a usage error", async () => {
452
- const err = await tagVersion(client, "agent", "acme/x", "abc", "v1", "acme").catch((e) => e);
453
- expect(classify(err)?.exitCode).toBe(ExitCode.Usage);
454
- });
455
- });
@@ -1,37 +0,0 @@
1
- import { afterEach, describe, expect, it } from "vitest";
2
- import { interactiveBrowseEnabled } from "./tty.js";
3
-
4
- const TTY = { isTTY: true };
5
- const PIPE = { isTTY: false };
6
-
7
- describe("interactiveBrowseEnabled", () => {
8
- const originalTerm = process.env.TERM;
9
- afterEach(() => {
10
- process.env.TERM = originalTerm;
11
- });
12
-
13
- it("enables the picker for inline output on a full TTY", () => {
14
- process.env.TERM = "xterm-256color";
15
- expect(interactiveBrowseEnabled("inline", { stdin: TTY, stdout: TTY })).toBe(true);
16
- });
17
-
18
- it("disables the picker in JSON output mode", () => {
19
- process.env.TERM = "xterm-256color";
20
- expect(interactiveBrowseEnabled("json", { stdin: TTY, stdout: TTY })).toBe(false);
21
- });
22
-
23
- it("disables the picker when stdout is not a TTY (piped output)", () => {
24
- process.env.TERM = "xterm-256color";
25
- expect(interactiveBrowseEnabled("inline", { stdin: TTY, stdout: PIPE })).toBe(false);
26
- });
27
-
28
- it("disables the picker when stdin is not a TTY (piped input)", () => {
29
- process.env.TERM = "xterm-256color";
30
- expect(interactiveBrowseEnabled("inline", { stdin: PIPE, stdout: TTY })).toBe(false);
31
- });
32
-
33
- it("disables the picker on a dumb terminal", () => {
34
- process.env.TERM = "dumb";
35
- expect(interactiveBrowseEnabled("inline", { stdin: TTY, stdout: TTY })).toBe(false);
36
- });
37
- });