@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,62 +0,0 @@
1
- import { describe, expect, it } from "vitest";
2
- import { buildProgram } from "./program.js";
3
- import { VERSION } from "./version.js";
4
-
5
- describe("buildProgram", () => {
6
- it("registers the foundational commands", () => {
7
- const program = buildProgram();
8
- const names = program.commands.map((command) => command.name()).sort();
9
- expect(names).toContain("version");
10
- expect(names).toContain("completion");
11
- });
12
-
13
- it("registers the Wave 2b read commands", () => {
14
- const program = buildProgram();
15
- const names = program.commands.map((command) => command.name());
16
- expect(names).toEqual(expect.arrayContaining(["search", "usage", "diff"]));
17
- });
18
-
19
- it("registers the Wave 2d artifact commands", () => {
20
- const program = buildProgram();
21
- const names = program.commands.map((command) => command.name());
22
- expect(names).toEqual(expect.arrayContaining(["push", "download"]));
23
- });
24
-
25
- it("registers the Wave 3c streaming commands", () => {
26
- const program = buildProgram();
27
- const names = program.commands.map((command) => command.name());
28
- expect(names).toEqual(expect.arrayContaining(["run", "resume"]));
29
- });
30
-
31
- it("has no draft command: a plugin is authored outside Stigmer and installed, never drafted by a system agent", () => {
32
- const program = buildProgram();
33
- const names = program.commands.map((command) => command.name());
34
- expect(names).not.toContain("draft");
35
- });
36
-
37
- it("exposes the share subcommands", () => {
38
- const program = buildProgram();
39
- const share = program.commands.find((command) => command.name() === "share");
40
- const subs = share?.commands.map((command) => command.name());
41
- expect(subs).toEqual(["agent"]);
42
- });
43
-
44
- it("exposes the usage subcommands", () => {
45
- const program = buildProgram();
46
- const usage = program.commands.find((command) => command.name() === "usage");
47
- const subs = usage?.commands.map((command) => command.name()).sort();
48
- expect(subs).toEqual(["agent", "org", "session"]);
49
- });
50
-
51
- it("exposes the global flags as persistent options", () => {
52
- const program = buildProgram();
53
- const longFlags = program.options.map((option) => option.long);
54
- expect(longFlags).toEqual(
55
- expect.arrayContaining(["--debug", "--standalone", "--org", "--api-key"]),
56
- );
57
- });
58
-
59
- it("reports a semver-shaped version", () => {
60
- expect(VERSION).toMatch(/^\d+\.\d+\.\d+/);
61
- });
62
- });
@@ -1,142 +0,0 @@
1
- import { describe, expect, it } from "vitest";
2
- import {
3
- generateAliases,
4
- normalizeAlias,
5
- pluralize,
6
- toKebabCase,
7
- toSnakeCase,
8
- } from "./aliases.js";
9
-
10
- function normalized(aliases: string[]): Set<string> {
11
- return new Set(aliases.map(normalizeAlias));
12
- }
13
-
14
- describe("generateAliases", () => {
15
- it("derives the full McpServer alias set", () => {
16
- const found = normalized(
17
- generateAliases("McpServer", "MCP Server", "mcp", "mcp_server"),
18
- );
19
- for (const exp of [
20
- "mcpserver",
21
- "mcp-server",
22
- "mcp_server",
23
- "mcp",
24
- "mcpservers",
25
- "mcp-servers",
26
- "mcp_servers",
27
- "mcps",
28
- ]) {
29
- expect(found).toContain(exp);
30
- }
31
- });
32
-
33
- it("derives the Agent alias set", () => {
34
- const found = normalized(generateAliases("Agent", "Agent", "agt", "agent"));
35
- for (const exp of ["agent", "agt", "agents", "agts"]) {
36
- expect(found).toContain(exp);
37
- }
38
- });
39
-
40
- it("derives the Workflow alias set", () => {
41
- const found = normalized(
42
- generateAliases("Workflow", "Workflow", "wfl", "workflow"),
43
- );
44
- for (const exp of ["workflow", "wfl", "workflows", "wfls"]) {
45
- expect(found).toContain(exp);
46
- }
47
- });
48
-
49
- it("derives the OAuthApp alias set including the canonical proto name", () => {
50
- // "OAuthApp" is the only kind whose PascalCase name has consecutive
51
- // capitals, so its split-derived forms (o-auth-app) diverge from the proto
52
- // enum name (oauth_app). Both families must be accepted: the canonical
53
- // spellings via protoName (stigmer/stigmer#470), and the historical
54
- // split-derived spellings for backward compatibility.
55
- const found = normalized(
56
- generateAliases("OAuthApp", "OAuth App", "oapp", "oauth_app"),
57
- );
58
- for (const exp of [
59
- "oauth_app",
60
- "oauth-app",
61
- "oauth_apps",
62
- "oauth-apps",
63
- "oauthapp",
64
- "oauthapps",
65
- "o_auth_app",
66
- "o-auth-app",
67
- "oapp",
68
- "oapps",
69
- ]) {
70
- expect(found).toContain(exp);
71
- }
72
- });
73
-
74
- it("does not let a multi-word display name steal the parent's name", () => {
75
- // "Agent Instance" must NOT register "agent" (that belongs to Agent).
76
- const found = normalized(
77
- generateAliases(
78
- "AgentInstance",
79
- "Agent Instance",
80
- "ain",
81
- "agent_instance",
82
- ),
83
- );
84
- expect(found).not.toContain("agent");
85
- expect(found).toContain("agentinstance");
86
- expect(found).toContain("agent-instance");
87
- expect(found).toContain("ain");
88
- });
89
-
90
- it("produces no duplicate normalized aliases", () => {
91
- // "agent" as protoName re-derives already-added forms — dedupe must hold.
92
- const aliases = generateAliases("Agent", "Agent", "agent", "agent");
93
- const lower = aliases.map(normalizeAlias);
94
- expect(new Set(lower).size).toBe(lower.length);
95
- });
96
- });
97
-
98
- describe("case conversion", () => {
99
- it.each([
100
- ["McpServer", "mcp-server"],
101
- ["Agent", "agent"],
102
- ["AgentInstance", "agent-instance"],
103
- ["WorkflowExecution", "workflow-execution"],
104
- ["", ""],
105
- ])("toKebabCase(%s) = %s", (input, expected) => {
106
- expect(toKebabCase(input)).toBe(expected);
107
- });
108
-
109
- it.each([
110
- ["McpServer", "mcp_server"],
111
- ["Agent", "agent"],
112
- ["AgentInstance", "agent_instance"],
113
- ["WorkflowExecution", "workflow_execution"],
114
- ["", ""],
115
- ])("toSnakeCase(%s) = %s", (input, expected) => {
116
- expect(toSnakeCase(input)).toBe(expected);
117
- });
118
- });
119
-
120
- describe("pluralize", () => {
121
- it.each([
122
- ["agent", "agents"],
123
- ["workflow", "workflows"],
124
- ["mcpserver", "mcpservers"],
125
- ["agents", "agents"],
126
- ["", ""],
127
- ])("pluralize(%s) = %s", (input, expected) => {
128
- expect(pluralize(input)).toBe(expected);
129
- });
130
- });
131
-
132
- describe("normalizeAlias", () => {
133
- it.each([
134
- ["Agent", "agent"],
135
- [" agent ", "agent"],
136
- ["MCP-Server", "mcp-server"],
137
- ["WORKFLOW", "workflow"],
138
- ["", ""],
139
- ])("normalizeAlias(%s) = %s", (input, expected) => {
140
- expect(normalizeAlias(input)).toBe(expected);
141
- });
142
- });
@@ -1,355 +0,0 @@
1
- import { ApiResourceKind } from "@stigmer/protos/ai/stigmer/commons/apiresource/apiresourcekind/api_resource_kind_pb";
2
- import { describe, expect, it } from "vitest";
3
- import { APPLY_HANDLERS } from "../resources/apply/handlers.js";
4
- import { DELETE_HANDLERS } from "../resources/delete.js";
5
- import { GET_BINDINGS } from "../resources/get-bindings.js";
6
- import { isExecutionAlias } from "../resources/execution.js";
7
- import { LIST_HANDLERS, SEARCH_KINDS } from "../resources/list.js";
8
- import { VALIDATE_SCHEMAS } from "../resources/validate.js";
9
- import { normalizeAlias } from "./aliases.js";
10
- import { defaultRegistry } from "./registry.js";
11
- import { Verb } from "./verbs.js";
12
-
13
- const registry = defaultRegistry();
14
-
15
- describe("registry — alias resolution", () => {
16
- it.each([
17
- ["mcp", ApiResourceKind.mcp_server],
18
- ["mcp-server", ApiResourceKind.mcp_server],
19
- ["mcp_server", ApiResourceKind.mcp_server],
20
- ["McpServer", ApiResourceKind.mcp_server],
21
- ["mcpservers", ApiResourceKind.mcp_server],
22
- ["agent", ApiResourceKind.agent],
23
- ["agents", ApiResourceKind.agent],
24
- ["agt", ApiResourceKind.agent],
25
- ["workflow", ApiResourceKind.workflow],
26
- ["wfl", ApiResourceKind.workflow],
27
- ["org", ApiResourceKind.organization],
28
- ["oapp", ApiResourceKind.oauth_app],
29
- // The canonical proto enum name and its kebab/plural companions
30
- // (stigmer/stigmer#470) plus the historical split-derived spellings,
31
- // which must keep working.
32
- ["oauth_app", ApiResourceKind.oauth_app],
33
- ["oauth-app", ApiResourceKind.oauth_app],
34
- ["oauth_apps", ApiResourceKind.oauth_app],
35
- ["o_auth_app", ApiResourceKind.oauth_app],
36
- ["o-auth-app", ApiResourceKind.oauth_app],
37
- ["agentchannel", ApiResourceKind.agent_channel],
38
- ["agent-channel", ApiResourceKind.agent_channel],
39
- ["agent_channel", ApiResourceKind.agent_channel],
40
- ["AgentChannel", ApiResourceKind.agent_channel],
41
- ["agentchannels", ApiResourceKind.agent_channel],
42
- ["ach", ApiResourceKind.agent_channel],
43
- ])("resolves %s -> kind", (alias, kind) => {
44
- expect(registry.getByAlias(alias)?.kind).toBe(kind);
45
- });
46
-
47
- it("agent_channel does not steal the agent alias (multi-word first-word guard)", () => {
48
- expect(registry.getByAlias("agent")?.kind).toBe(ApiResourceKind.agent);
49
- });
50
-
51
- it("resolution is case-insensitive", () => {
52
- expect(registry.getByAlias("MCP-SERVER")?.kind).toBe(
53
- ApiResourceKind.mcp_server,
54
- );
55
- });
56
-
57
- it("returns undefined for an unknown alias", () => {
58
- expect(registry.getByAlias("nope")).toBeUndefined();
59
- });
60
-
61
- // The runtime execution kinds are served by the pre-gate `list executions`
62
- // route and their dedicated controllers; registering either would put a
63
- // row in `list types` that the pre-gate route then shadows — the
64
- // stigmer/stigmer#469 class (see the alias-shadowing suite below).
65
- it("does not register the runtime execution kinds as addressable types", () => {
66
- for (const kind of [
67
- ApiResourceKind.agent_execution,
68
- ApiResourceKind.workflow_execution,
69
- ]) {
70
- expect(registry.getByKind(kind)).toBeUndefined();
71
- }
72
- });
73
- });
74
-
75
- describe("registry — YAML kind resolution", () => {
76
- it("resolves the exact YAML kind", () => {
77
- expect(registry.getByYamlKind("McpServer")?.kind).toBe(
78
- ApiResourceKind.mcp_server,
79
- );
80
- expect(registry.getByYamlKind("Workflow")?.kind).toBe(
81
- ApiResourceKind.workflow,
82
- );
83
- });
84
- });
85
-
86
- describe("registry — verb support matrix", () => {
87
- it("agent supports read + run + search verbs", () => {
88
- for (const v of [
89
- Verb.Apply,
90
- Verb.Validate,
91
- Verb.Get,
92
- Verb.List,
93
- Verb.Delete,
94
- Verb.Run,
95
- Verb.Search,
96
- ]) {
97
- expect(registry.supportsVerb(ApiResourceKind.agent, v)).toBe(true);
98
- }
99
- expect(registry.supportsVerb(ApiResourceKind.agent, Verb.Push)).toBe(false);
100
- });
101
-
102
- it("skill supports push but not apply", () => {
103
- expect(registry.supportsVerb(ApiResourceKind.skill, Verb.Push)).toBe(true);
104
- expect(registry.supportsVerb(ApiResourceKind.skill, Verb.Apply)).toBe(
105
- false,
106
- );
107
- });
108
-
109
- it("workflow_instance has no list verb", () => {
110
- expect(
111
- registry.supportsVerb(ApiResourceKind.workflow_instance, Verb.Get),
112
- ).toBe(true);
113
- expect(
114
- registry.supportsVerb(ApiResourceKind.workflow_instance, Verb.List),
115
- ).toBe(false);
116
- });
117
-
118
- it("agent_channel supports the full declarative verb set", () => {
119
- for (const v of [Verb.Apply, Verb.Get, Verb.List, Verb.Delete]) {
120
- expect(registry.supportsVerb(ApiResourceKind.agent_channel, v)).toBe(
121
- true,
122
- );
123
- }
124
- // The install flow is console-driven and cloud-only — never a CLI verb.
125
- expect(registry.supportsVerb(ApiResourceKind.agent_channel, Verb.Run)).toBe(
126
- false,
127
- );
128
- expect(
129
- registry.supportsVerb(ApiResourceKind.agent_channel, Verb.Search),
130
- ).toBe(false);
131
- });
132
-
133
- it("schedule supports the full declarative verb set", () => {
134
- for (const v of [Verb.Apply, Verb.Get, Verb.List, Verb.Delete]) {
135
- expect(registry.supportsVerb(ApiResourceKind.schedule, v)).toBe(true);
136
- }
137
- // Firing rides `stigmer schedule trigger`, never the generic run verb.
138
- expect(registry.supportsVerb(ApiResourceKind.schedule, Verb.Run)).toBe(
139
- false,
140
- );
141
- });
142
-
143
- it("agent_share promises only apply (narrowed — stigmer/stigmer#354)", () => {
144
- expect(registry.supportsVerb(ApiResourceKind.agent_share, Verb.Apply)).toBe(
145
- true,
146
- );
147
- for (const v of [Verb.Get, Verb.List, Verb.Delete]) {
148
- expect(registry.supportsVerb(ApiResourceKind.agent_share, v)).toBe(false);
149
- }
150
- });
151
-
152
- it("session promises apply + list; get/delete stay narrowed (stigmer/stigmer#354, #469)", () => {
153
- expect(registry.supportsVerb(ApiResourceKind.session, Verb.Apply)).toBe(
154
- true,
155
- );
156
- expect(registry.supportsVerb(ApiResourceKind.session, Verb.List)).toBe(
157
- true,
158
- );
159
- for (const v of [Verb.Get, Verb.Delete]) {
160
- expect(registry.supportsVerb(ApiResourceKind.session, v)).toBe(false);
161
- }
162
- });
163
-
164
- it("typesForVerb(get) includes the core read kinds", () => {
165
- const kinds = new Set(registry.typesForVerb(Verb.Get).map((t) => t.kind));
166
- expect(kinds).toContain(ApiResourceKind.agent);
167
- expect(kinds).toContain(ApiResourceKind.workflow);
168
- expect(kinds).toContain(ApiResourceKind.mcp_server);
169
- });
170
- });
171
-
172
- describe("registry — completeness", () => {
173
- it("registers every CLI-relevant kind with metadata", () => {
174
- for (const info of registry.all()) {
175
- expect(info.name).not.toBe("");
176
- expect(info.singular).toBe(info.name.toLowerCase());
177
- expect(info.aliases.length).toBeGreaterThan(0);
178
- }
179
- });
180
-
181
- // The canonical proto enum name is the spelling a proto-literate user is most
182
- // likely to type; it must resolve for EVERY kind by construction, not by
183
- // accident of PascalCase spelling. OAuthApp was the counterexample
184
- // (stigmer/stigmer#470): its split-derived aliases (o_auth_app) diverged from
185
- // the proto name (oauth_app), so only it failed.
186
- it("resolves every registered kind's canonical proto enum name (snake and kebab)", () => {
187
- for (const info of registry.all()) {
188
- const protoName = ApiResourceKind[info.kind];
189
- expect(
190
- registry.getByAlias(protoName)?.kind,
191
- `canonical proto name '${protoName}' must resolve to its own kind`,
192
- ).toBe(info.kind);
193
- const kebab = protoName.replaceAll("_", "-");
194
- expect(
195
- registry.getByAlias(kebab)?.kind,
196
- `kebab form '${kebab}' of the canonical proto name must resolve to its own kind`,
197
- ).toBe(info.kind);
198
- }
199
- });
200
-
201
- // buildRegistry's byAlias.set is last-wins: a collision between two kinds'
202
- // alias sets would silently shadow the earlier kind. The one collision found
203
- // by hand ("Agent Instance" nearly stealing "agent") is prevented inside
204
- // generateAliases; this pin makes the whole class a red test instead of a
205
- // hand-check as future kinds (and their derived forms) are added.
206
- it("no two kinds share an alias (silent last-wins shadowing guard)", () => {
207
- const claimedBy = new Map<string, string>();
208
- for (const info of registry.all()) {
209
- for (const alias of info.aliases) {
210
- const key = normalizeAlias(alias);
211
- const owner = claimedBy.get(key);
212
- expect(
213
- owner === undefined || owner === info.name,
214
- `alias '${key}' is claimed by both ${owner} and ${info.name} — the later registration silently wins`,
215
- ).toBe(true);
216
- claimedBy.set(key, info.name);
217
- }
218
- }
219
- });
220
- });
221
-
222
- // The verb matrix is a PROMISE (`list types` prints it; the command layer
223
- // gates on it), but each verb actually runs through its own dispatch
224
- // registry. A pair present in the matrix but absent from its registry fails
225
- // at the point of use with "not implemented" — the stigmer/stigmer#353 bug
226
- // class. This suite holds the two to strict bidirectional equality so the
227
- // drift is a red test instead of a runtime surprise. Verbs deliberately
228
- // withheld are narrowed out of the matrix (recorded in stigmer/stigmer#354),
229
- // never exempted here — an exemption category would legitimize exactly the
230
- // state this suite exists to reject.
231
- describe("registry — verb/dispatch conformance", () => {
232
- // Special cases are kind/verb pairs that genuinely work through bespoke
233
- // code instead of a registry entry; each names its dispatch site.
234
- const DISPATCH: ReadonlyArray<{
235
- label: string;
236
- verb: Verb;
237
- wired: ReadonlySet<ApiResourceKind>;
238
- specialCases: ReadonlyMap<ApiResourceKind, string>;
239
- }> = [
240
- {
241
- label: "apply",
242
- verb: Verb.Apply,
243
- wired: new Set(APPLY_HANDLERS.keys()),
244
- specialCases: new Map(),
245
- },
246
- {
247
- label: "get",
248
- verb: Verb.Get,
249
- wired: new Set(GET_BINDINGS.keys()),
250
- specialCases: new Map([
251
- [
252
- ApiResourceKind.organization,
253
- "fetchOrganization in resources/get.ts (not org-scoped; a slug resolves via findMyOrganizations)",
254
- ],
255
- ]),
256
- },
257
- {
258
- label: "list",
259
- verb: Verb.List,
260
- wired: new Set([...LIST_HANDLERS.keys(), ...SEARCH_KINDS]),
261
- specialCases: new Map(),
262
- },
263
- {
264
- label: "validate",
265
- verb: Verb.Validate,
266
- wired: new Set(VALIDATE_SCHEMAS.keys()),
267
- specialCases: new Map(),
268
- },
269
- {
270
- label: "delete",
271
- verb: Verb.Delete,
272
- wired: new Set(DELETE_HANDLERS.keys()),
273
- specialCases: new Map([
274
- [
275
- ApiResourceKind.organization,
276
- "planOrganizationDelete in resources/delete.ts (not org-scoped; resolved via memberships)",
277
- ],
278
- ]),
279
- },
280
- ];
281
-
282
- it.each(DISPATCH)(
283
- "every kind promising '$label' has a dispatch entry",
284
- ({ verb, wired, specialCases }) => {
285
- for (const info of registry.all()) {
286
- if (!info.supportedVerbs.has(verb)) continue;
287
- if (specialCases.has(info.kind)) continue;
288
- expect(
289
- wired.has(info.kind),
290
- `${info.name} promises '${verb}' in the verb matrix but has no dispatch entry — ` +
291
- "wire it or narrow the matrix (stigmer/stigmer#353, #354)",
292
- ).toBe(true);
293
- }
294
- },
295
- );
296
-
297
- it.each(DISPATCH)(
298
- "every '$label' dispatch entry is promised in the matrix",
299
- ({ verb, wired }) => {
300
- for (const kind of wired) {
301
- expect(
302
- registry.supportsVerb(kind, verb),
303
- `${ApiResourceKind[kind]} is wired for '${verb}' but the verb matrix does not promise it — ` +
304
- "dead dispatch the command-layer gate blocks",
305
- ).toBe(true);
306
- }
307
- },
308
- );
309
-
310
- it("special cases do not shadow a real dispatch entry", () => {
311
- for (const { label, wired, specialCases } of DISPATCH) {
312
- for (const kind of specialCases.keys()) {
313
- expect(
314
- wired.has(kind),
315
- `${ApiResourceKind[kind]} '${label}' is documented as a special case yet also has a registry entry — drop one`,
316
- ).toBe(false);
317
- }
318
- }
319
- });
320
- });
321
-
322
- // `stigmer list` resolves a handful of aliases BEFORE consulting the
323
- // registry (commands/list.ts): `types` (a command word, not a kind) and the
324
- // execution family. A pre-gate alias that intercepts a REGISTERED kind hides
325
- // that kind's registry dispatch behind bespoke behavior the verb matrix
326
- // cannot describe — sessions shipped working-but-unadvertised for two months
327
- // exactly this way (stigmer/stigmer#469). Every pre-gate predicate must be
328
- // listed here; the pin holds each one away from every registered kind's
329
- // alias set, so a future bypass for an addressable kind is a red test, not
330
- // a silently lying `list types` row.
331
- describe("registry — pre-gate list aliases cannot shadow registered kinds", () => {
332
- const PRE_GATE_PREDICATES: ReadonlyArray<{
333
- name: string;
334
- matches: (type: string) => boolean;
335
- }> = [
336
- {
337
- name: "executions (resources/execution.ts isExecutionAlias)",
338
- matches: isExecutionAlias,
339
- },
340
- ];
341
-
342
- it("no registered kind's alias is intercepted by a pre-gate predicate", () => {
343
- for (const { name, matches } of PRE_GATE_PREDICATES) {
344
- for (const info of registry.all()) {
345
- for (const alias of info.aliases) {
346
- expect(
347
- matches(alias),
348
- `registry alias '${alias}' (${info.name}) is intercepted by the pre-gate route ${name} — ` +
349
- "it shadows the kind's registry dispatch (the stigmer/stigmer#469 works-but-unadvertised class)",
350
- ).toBe(false);
351
- }
352
- }
353
- }
354
- });
355
- });