@aibyzero/byz 0.0.0 → 0.1.1

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 (1215) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/LICENSE +21 -0
  3. package/README.md +148 -5
  4. package/dist/cli.js +55 -0
  5. package/dist/runtime/bun/cli.d.ts +3 -0
  6. package/dist/runtime/bun/cli.d.ts.map +1 -0
  7. package/dist/runtime/bun/cli.js +11 -0
  8. package/dist/runtime/bun/cli.js.map +1 -0
  9. package/dist/runtime/bun/register-bedrock.d.ts +2 -0
  10. package/dist/runtime/bun/register-bedrock.d.ts.map +1 -0
  11. package/dist/runtime/bun/register-bedrock.js +4 -0
  12. package/dist/runtime/bun/register-bedrock.js.map +1 -0
  13. package/dist/runtime/bun/restore-sandbox-env.d.ts +17 -0
  14. package/dist/runtime/bun/restore-sandbox-env.d.ts.map +1 -0
  15. package/dist/runtime/bun/restore-sandbox-env.js +36 -0
  16. package/dist/runtime/bun/restore-sandbox-env.js.map +1 -0
  17. package/dist/runtime/bundle/chunks/anthropic-messages-JWX2WP65.js +45 -0
  18. package/dist/runtime/bundle/chunks/anthropic.js +75 -0
  19. package/dist/runtime/bundle/chunks/azure-openai-responses-5ENVCQ7U.js +2 -0
  20. package/dist/runtime/bundle/chunks/bedrock-converse-stream.js +74 -0
  21. package/dist/runtime/bundle/chunks/chunk-4L3WN2XY.js +2 -0
  22. package/dist/runtime/bundle/chunks/chunk-6CYCI3EJ.js +12 -0
  23. package/dist/runtime/bundle/chunks/chunk-6R7UI4IY.js +2 -0
  24. package/dist/runtime/bundle/chunks/chunk-AXIIZGTV.js +2 -0
  25. package/dist/runtime/bundle/chunks/chunk-CCRJHU72.js +1547 -0
  26. package/dist/runtime/bundle/chunks/chunk-DRQDKNXA.js +2 -0
  27. package/dist/runtime/bundle/chunks/chunk-GMWCTUPB.js +2 -0
  28. package/dist/runtime/bundle/chunks/chunk-GPPBJGBU.js +50 -0
  29. package/dist/runtime/bundle/chunks/chunk-JUUC5AZY.js +2 -0
  30. package/dist/runtime/bundle/chunks/chunk-L2ZPNLYD.js +2 -0
  31. package/dist/runtime/bundle/chunks/chunk-MNAIPA3J.js +2 -0
  32. package/dist/runtime/bundle/chunks/chunk-NBBFIJUL.js +11 -0
  33. package/dist/runtime/bundle/chunks/chunk-NUHFSC37.js +25 -0
  34. package/dist/runtime/bundle/chunks/chunk-PGXDEOVV.js +2 -0
  35. package/dist/runtime/bundle/chunks/chunk-PJACZCIR.js +2 -0
  36. package/dist/runtime/bundle/chunks/chunk-PRRNXB7S.js +2 -0
  37. package/dist/runtime/bundle/chunks/chunk-TEPMHNKQ.js +2 -0
  38. package/dist/runtime/bundle/chunks/chunk-TRDNDS6A.js +4 -0
  39. package/dist/runtime/bundle/chunks/chunk-UAQELI3K.js +2 -0
  40. package/dist/runtime/bundle/chunks/chunk-XDUWOHPL.js +6 -0
  41. package/dist/runtime/bundle/chunks/chunk-XNGRGP62.js +2 -0
  42. package/dist/runtime/bundle/chunks/dist-RDWOYWHR.js +13 -0
  43. package/dist/runtime/bundle/chunks/github-copilot.js +2 -0
  44. package/dist/runtime/bundle/chunks/google-generative-ai-XDKMGBCJ.js +2 -0
  45. package/dist/runtime/bundle/chunks/google-vertex-D5FGEO3Y.js +2 -0
  46. package/dist/runtime/bundle/chunks/image-resize-worker.js +2 -0
  47. package/dist/runtime/bundle/chunks/kimi-coding.js +2 -0
  48. package/dist/runtime/bundle/chunks/lib-HGQMNYVT.js +9 -0
  49. package/dist/runtime/bundle/chunks/mistral-conversations-YK73UAOZ.js +5 -0
  50. package/dist/runtime/bundle/chunks/multipart-parser-SQ6GDJL7.js +3 -0
  51. package/dist/runtime/bundle/chunks/openai-codex-responses-GJVBJXLB.js +8 -0
  52. package/dist/runtime/bundle/chunks/openai-codex.js +75 -0
  53. package/dist/runtime/bundle/chunks/openai-completions-XGHMB3UO.js +7 -0
  54. package/dist/runtime/bundle/chunks/openai-responses-BSOJMSEV.js +2 -0
  55. package/dist/runtime/bundle/chunks/openrouter-images-N4XVVFSD.js +2 -0
  56. package/dist/runtime/bundle/chunks/openrouter.js +75 -0
  57. package/dist/runtime/bundle/chunks/pi-messages-TPFH44NP.js +8 -0
  58. package/dist/runtime/bundle/chunks/radius.js +75 -0
  59. package/dist/runtime/bundle/chunks/src-UK77SYZE.js +4 -0
  60. package/dist/runtime/bundle/chunks/xai.js +2 -0
  61. package/dist/runtime/bundle/cli.js +3 -0
  62. package/dist/runtime/bundle/client.js +2 -0
  63. package/dist/runtime/bundle/index.js +2 -0
  64. package/dist/runtime/bundle/rpc-entry.js +3 -0
  65. package/dist/runtime/cli/args.d.ts +61 -0
  66. package/dist/runtime/cli/args.d.ts.map +1 -0
  67. package/dist/runtime/cli/args.js +439 -0
  68. package/dist/runtime/cli/args.js.map +1 -0
  69. package/dist/runtime/cli/auth-check.d.ts +19 -0
  70. package/dist/runtime/cli/auth-check.d.ts.map +1 -0
  71. package/dist/runtime/cli/auth-check.js +50 -0
  72. package/dist/runtime/cli/auth-check.js.map +1 -0
  73. package/dist/runtime/cli/auth-command.d.ts +24 -0
  74. package/dist/runtime/cli/auth-command.d.ts.map +1 -0
  75. package/dist/runtime/cli/auth-command.js +103 -0
  76. package/dist/runtime/cli/auth-command.js.map +1 -0
  77. package/dist/runtime/cli/config-selector.d.ts +16 -0
  78. package/dist/runtime/cli/config-selector.d.ts.map +1 -0
  79. package/dist/runtime/cli/config-selector.js +31 -0
  80. package/dist/runtime/cli/config-selector.js.map +1 -0
  81. package/dist/runtime/cli/credential-print.d.ts +13 -0
  82. package/dist/runtime/cli/credential-print.d.ts.map +1 -0
  83. package/dist/runtime/cli/credential-print.js +76 -0
  84. package/dist/runtime/cli/credential-print.js.map +1 -0
  85. package/dist/runtime/cli/experimental/auth.d.ts +16 -0
  86. package/dist/runtime/cli/experimental/auth.d.ts.map +1 -0
  87. package/dist/runtime/cli/experimental/auth.js +13 -0
  88. package/dist/runtime/cli/experimental/auth.js.map +1 -0
  89. package/dist/runtime/cli/experimental/cli.d.ts +6 -0
  90. package/dist/runtime/cli/experimental/cli.d.ts.map +1 -0
  91. package/dist/runtime/cli/experimental/cli.js +5 -0
  92. package/dist/runtime/cli/experimental/cli.js.map +1 -0
  93. package/dist/runtime/cli/experimental/command-options.d.ts +17 -0
  94. package/dist/runtime/cli/experimental/command-options.d.ts.map +1 -0
  95. package/dist/runtime/cli/experimental/command-options.js +35 -0
  96. package/dist/runtime/cli/experimental/command-options.js.map +1 -0
  97. package/dist/runtime/cli/experimental/command.d.ts +63 -0
  98. package/dist/runtime/cli/experimental/command.d.ts.map +1 -0
  99. package/dist/runtime/cli/experimental/command.js +130 -0
  100. package/dist/runtime/cli/experimental/command.js.map +1 -0
  101. package/dist/runtime/cli/experimental/commands/client.d.ts +13 -0
  102. package/dist/runtime/cli/experimental/commands/client.d.ts.map +1 -0
  103. package/dist/runtime/cli/experimental/commands/client.js +25 -0
  104. package/dist/runtime/cli/experimental/commands/client.js.map +1 -0
  105. package/dist/runtime/cli/experimental/commands/pi.d.ts +15 -0
  106. package/dist/runtime/cli/experimental/commands/pi.d.ts.map +1 -0
  107. package/dist/runtime/cli/experimental/commands/pi.js +28 -0
  108. package/dist/runtime/cli/experimental/commands/pi.js.map +1 -0
  109. package/dist/runtime/cli/experimental/commands/server.d.ts +13 -0
  110. package/dist/runtime/cli/experimental/commands/server.d.ts.map +1 -0
  111. package/dist/runtime/cli/experimental/commands/server.js +25 -0
  112. package/dist/runtime/cli/experimental/commands/server.js.map +1 -0
  113. package/dist/runtime/cli/experimental/transport-address.d.ts +10 -0
  114. package/dist/runtime/cli/experimental/transport-address.d.ts.map +1 -0
  115. package/dist/runtime/cli/experimental/transport-address.js +38 -0
  116. package/dist/runtime/cli/experimental/transport-address.js.map +1 -0
  117. package/dist/runtime/cli/file-processor.d.ts +15 -0
  118. package/dist/runtime/cli/file-processor.d.ts.map +1 -0
  119. package/dist/runtime/cli/file-processor.js +71 -0
  120. package/dist/runtime/cli/file-processor.js.map +1 -0
  121. package/dist/runtime/cli/initial-message.d.ts +18 -0
  122. package/dist/runtime/cli/initial-message.d.ts.map +1 -0
  123. package/dist/runtime/cli/initial-message.js +22 -0
  124. package/dist/runtime/cli/initial-message.js.map +1 -0
  125. package/dist/runtime/cli/list-models.d.ts +9 -0
  126. package/dist/runtime/cli/list-models.d.ts.map +1 -0
  127. package/dist/runtime/cli/list-models.js +98 -0
  128. package/dist/runtime/cli/list-models.js.map +1 -0
  129. package/dist/runtime/cli/project-trust.d.ts +10 -0
  130. package/dist/runtime/cli/project-trust.d.ts.map +1 -0
  131. package/dist/runtime/cli/project-trust.js +48 -0
  132. package/dist/runtime/cli/project-trust.js.map +1 -0
  133. package/dist/runtime/cli/session-picker.d.ts +10 -0
  134. package/dist/runtime/cli/session-picker.d.ts.map +1 -0
  135. package/dist/runtime/cli/session-picker.js +36 -0
  136. package/dist/runtime/cli/session-picker.js.map +1 -0
  137. package/dist/runtime/cli/startup-ui.d.ts +20 -0
  138. package/dist/runtime/cli/startup-ui.d.ts.map +1 -0
  139. package/dist/runtime/cli/startup-ui.js +184 -0
  140. package/dist/runtime/cli/startup-ui.js.map +1 -0
  141. package/dist/runtime/cli.d.ts +3 -0
  142. package/dist/runtime/cli.d.ts.map +1 -0
  143. package/dist/runtime/cli.js +19 -0
  144. package/dist/runtime/cli.js.map +1 -0
  145. package/dist/runtime/client/index.d.ts +3 -0
  146. package/dist/runtime/client/index.d.ts.map +1 -0
  147. package/dist/runtime/client/index.js +3 -0
  148. package/dist/runtime/client/index.js.map +1 -0
  149. package/dist/runtime/client/remote-session.d.ts +53 -0
  150. package/dist/runtime/client/remote-session.d.ts.map +1 -0
  151. package/dist/runtime/client/remote-session.js +340 -0
  152. package/dist/runtime/client/remote-session.js.map +1 -0
  153. package/dist/runtime/client/transcript.d.ts +12 -0
  154. package/dist/runtime/client/transcript.d.ts.map +1 -0
  155. package/dist/runtime/client/transcript.js +98 -0
  156. package/dist/runtime/client/transcript.js.map +1 -0
  157. package/dist/runtime/config.d.ts +98 -0
  158. package/dist/runtime/config.d.ts.map +1 -0
  159. package/dist/runtime/config.js +469 -0
  160. package/dist/runtime/config.js.map +1 -0
  161. package/dist/runtime/core/agent-session-runtime.d.ts +119 -0
  162. package/dist/runtime/core/agent-session-runtime.d.ts.map +1 -0
  163. package/dist/runtime/core/agent-session-runtime.js +309 -0
  164. package/dist/runtime/core/agent-session-runtime.js.map +1 -0
  165. package/dist/runtime/core/agent-session-services.d.ts +86 -0
  166. package/dist/runtime/core/agent-session-services.d.ts.map +1 -0
  167. package/dist/runtime/core/agent-session-services.js +134 -0
  168. package/dist/runtime/core/agent-session-services.js.map +1 -0
  169. package/dist/runtime/core/agent-session.d.ts +678 -0
  170. package/dist/runtime/core/agent-session.d.ts.map +1 -0
  171. package/dist/runtime/core/agent-session.js +2808 -0
  172. package/dist/runtime/core/agent-session.js.map +1 -0
  173. package/dist/runtime/core/auth-guidance.d.ts +5 -0
  174. package/dist/runtime/core/auth-guidance.d.ts.map +1 -0
  175. package/dist/runtime/core/auth-guidance.js +21 -0
  176. package/dist/runtime/core/auth-guidance.js.map +1 -0
  177. package/dist/runtime/core/auth-storage.d.ts +72 -0
  178. package/dist/runtime/core/auth-storage.d.ts.map +1 -0
  179. package/dist/runtime/core/auth-storage.js +426 -0
  180. package/dist/runtime/core/auth-storage.js.map +1 -0
  181. package/dist/runtime/core/bash-executor.d.ts +32 -0
  182. package/dist/runtime/core/bash-executor.d.ts.map +1 -0
  183. package/dist/runtime/core/bash-executor.js +111 -0
  184. package/dist/runtime/core/bash-executor.js.map +1 -0
  185. package/dist/runtime/core/cache-stats.d.ts +49 -0
  186. package/dist/runtime/core/cache-stats.d.ts.map +1 -0
  187. package/dist/runtime/core/cache-stats.js +101 -0
  188. package/dist/runtime/core/cache-stats.js.map +1 -0
  189. package/dist/runtime/core/compaction/branch-summarization.d.ts +98 -0
  190. package/dist/runtime/core/compaction/branch-summarization.d.ts.map +1 -0
  191. package/dist/runtime/core/compaction/branch-summarization.js +250 -0
  192. package/dist/runtime/core/compaction/branch-summarization.js.map +1 -0
  193. package/dist/runtime/core/compaction/compaction.d.ts +143 -0
  194. package/dist/runtime/core/compaction/compaction.d.ts.map +1 -0
  195. package/dist/runtime/core/compaction/compaction.js +669 -0
  196. package/dist/runtime/core/compaction/compaction.js.map +1 -0
  197. package/dist/runtime/core/compaction/index.d.ts +7 -0
  198. package/dist/runtime/core/compaction/index.d.ts.map +1 -0
  199. package/dist/runtime/core/compaction/index.js +7 -0
  200. package/dist/runtime/core/compaction/index.js.map +1 -0
  201. package/dist/runtime/core/compaction/utils.d.ts +38 -0
  202. package/dist/runtime/core/compaction/utils.d.ts.map +1 -0
  203. package/dist/runtime/core/compaction/utils.js +142 -0
  204. package/dist/runtime/core/compaction/utils.js.map +1 -0
  205. package/dist/runtime/core/defaults.d.ts +4 -0
  206. package/dist/runtime/core/defaults.d.ts.map +1 -0
  207. package/dist/runtime/core/defaults.js +11 -0
  208. package/dist/runtime/core/defaults.js.map +1 -0
  209. package/dist/runtime/core/diagnostics.d.ts +15 -0
  210. package/dist/runtime/core/diagnostics.d.ts.map +1 -0
  211. package/dist/runtime/core/diagnostics.js +2 -0
  212. package/dist/runtime/core/diagnostics.js.map +1 -0
  213. package/dist/runtime/core/event-bus.d.ts +9 -0
  214. package/dist/runtime/core/event-bus.d.ts.map +1 -0
  215. package/dist/runtime/core/event-bus.js +25 -0
  216. package/dist/runtime/core/event-bus.js.map +1 -0
  217. package/dist/runtime/core/exec.d.ts +29 -0
  218. package/dist/runtime/core/exec.d.ts.map +1 -0
  219. package/dist/runtime/core/exec.js +75 -0
  220. package/dist/runtime/core/exec.js.map +1 -0
  221. package/dist/runtime/core/experimental.d.ts +6 -0
  222. package/dist/runtime/core/experimental.d.ts.map +1 -0
  223. package/dist/runtime/core/experimental.js +8 -0
  224. package/dist/runtime/core/experimental.js.map +1 -0
  225. package/dist/runtime/core/export-html/ansi-to-html.d.ts +22 -0
  226. package/dist/runtime/core/export-html/ansi-to-html.d.ts.map +1 -0
  227. package/dist/runtime/core/export-html/ansi-to-html.js +249 -0
  228. package/dist/runtime/core/export-html/ansi-to-html.js.map +1 -0
  229. package/dist/runtime/core/export-html/index.d.ts +37 -0
  230. package/dist/runtime/core/export-html/index.d.ts.map +1 -0
  231. package/dist/runtime/core/export-html/index.js +226 -0
  232. package/dist/runtime/core/export-html/index.js.map +1 -0
  233. package/dist/runtime/core/export-html/template.css +1066 -0
  234. package/dist/runtime/core/export-html/template.html +55 -0
  235. package/dist/runtime/core/export-html/template.js +1864 -0
  236. package/dist/runtime/core/export-html/tool-renderer.d.ts +34 -0
  237. package/dist/runtime/core/export-html/tool-renderer.d.ts.map +1 -0
  238. package/dist/runtime/core/export-html/tool-renderer.js +108 -0
  239. package/dist/runtime/core/export-html/tool-renderer.js.map +1 -0
  240. package/dist/runtime/core/export-html/vendor/highlight.min.js +1213 -0
  241. package/dist/runtime/core/export-html/vendor/marked.min.js +78 -0
  242. package/dist/runtime/core/extensions/index.d.ts +12 -0
  243. package/dist/runtime/core/extensions/index.d.ts.map +1 -0
  244. package/dist/runtime/core/extensions/index.js +9 -0
  245. package/dist/runtime/core/extensions/index.js.map +1 -0
  246. package/dist/runtime/core/extensions/loader.d.ts +23 -0
  247. package/dist/runtime/core/extensions/loader.d.ts.map +1 -0
  248. package/dist/runtime/core/extensions/loader.js +648 -0
  249. package/dist/runtime/core/extensions/loader.js.map +1 -0
  250. package/dist/runtime/core/extensions/runner.d.ts +173 -0
  251. package/dist/runtime/core/extensions/runner.d.ts.map +1 -0
  252. package/dist/runtime/core/extensions/runner.js +967 -0
  253. package/dist/runtime/core/extensions/runner.js.map +1 -0
  254. package/dist/runtime/core/extensions/types.d.ts +1328 -0
  255. package/dist/runtime/core/extensions/types.d.ts.map +1 -0
  256. package/dist/runtime/core/extensions/types.js +48 -0
  257. package/dist/runtime/core/extensions/types.js.map +1 -0
  258. package/dist/runtime/core/extensions/wrapper.d.ts +20 -0
  259. package/dist/runtime/core/extensions/wrapper.d.ts.map +1 -0
  260. package/dist/runtime/core/extensions/wrapper.js +41 -0
  261. package/dist/runtime/core/extensions/wrapper.js.map +1 -0
  262. package/dist/runtime/core/footer-data-provider.d.ts +64 -0
  263. package/dist/runtime/core/footer-data-provider.d.ts.map +1 -0
  264. package/dist/runtime/core/footer-data-provider.js +338 -0
  265. package/dist/runtime/core/footer-data-provider.js.map +1 -0
  266. package/dist/runtime/core/http-dispatcher.d.ts +22 -0
  267. package/dist/runtime/core/http-dispatcher.d.ts.map +1 -0
  268. package/dist/runtime/core/http-dispatcher.js +96 -0
  269. package/dist/runtime/core/http-dispatcher.js.map +1 -0
  270. package/dist/runtime/core/index.d.ts +13 -0
  271. package/dist/runtime/core/index.d.ts.map +1 -0
  272. package/dist/runtime/core/index.js +13 -0
  273. package/dist/runtime/core/index.js.map +1 -0
  274. package/dist/runtime/core/keybindings.d.ts +423 -0
  275. package/dist/runtime/core/keybindings.d.ts.map +1 -0
  276. package/dist/runtime/core/keybindings.js +317 -0
  277. package/dist/runtime/core/keybindings.js.map +1 -0
  278. package/dist/runtime/core/messages.d.ts +77 -0
  279. package/dist/runtime/core/messages.d.ts.map +1 -0
  280. package/dist/runtime/core/messages.js +123 -0
  281. package/dist/runtime/core/messages.js.map +1 -0
  282. package/dist/runtime/core/model-config.d.ts +576 -0
  283. package/dist/runtime/core/model-config.d.ts.map +1 -0
  284. package/dist/runtime/core/model-config.js +256 -0
  285. package/dist/runtime/core/model-config.js.map +1 -0
  286. package/dist/runtime/core/model-registry.d.ts +45 -0
  287. package/dist/runtime/core/model-registry.d.ts.map +1 -0
  288. package/dist/runtime/core/model-registry.js +107 -0
  289. package/dist/runtime/core/model-registry.js.map +1 -0
  290. package/dist/runtime/core/model-resolver.d.ts +124 -0
  291. package/dist/runtime/core/model-resolver.d.ts.map +1 -0
  292. package/dist/runtime/core/model-resolver.js +589 -0
  293. package/dist/runtime/core/model-resolver.js.map +1 -0
  294. package/dist/runtime/core/model-runtime.d.ts +100 -0
  295. package/dist/runtime/core/model-runtime.d.ts.map +1 -0
  296. package/dist/runtime/core/model-runtime.js +599 -0
  297. package/dist/runtime/core/model-runtime.js.map +1 -0
  298. package/dist/runtime/core/models-store.d.ts +22 -0
  299. package/dist/runtime/core/models-store.d.ts.map +1 -0
  300. package/dist/runtime/core/models-store.js +115 -0
  301. package/dist/runtime/core/models-store.js.map +1 -0
  302. package/dist/runtime/core/output-guard.d.ts +7 -0
  303. package/dist/runtime/core/output-guard.d.ts.map +1 -0
  304. package/dist/runtime/core/output-guard.js +89 -0
  305. package/dist/runtime/core/output-guard.js.map +1 -0
  306. package/dist/runtime/core/package-manager.d.ts +213 -0
  307. package/dist/runtime/core/package-manager.d.ts.map +1 -0
  308. package/dist/runtime/core/package-manager.js +2177 -0
  309. package/dist/runtime/core/package-manager.js.map +1 -0
  310. package/dist/runtime/core/pi-manifest.d.ts +8 -0
  311. package/dist/runtime/core/pi-manifest.d.ts.map +1 -0
  312. package/dist/runtime/core/pi-manifest.js +26 -0
  313. package/dist/runtime/core/pi-manifest.js.map +1 -0
  314. package/dist/runtime/core/project-trust.d.ts +15 -0
  315. package/dist/runtime/core/project-trust.d.ts.map +1 -0
  316. package/dist/runtime/core/project-trust.js +59 -0
  317. package/dist/runtime/core/project-trust.js.map +1 -0
  318. package/dist/runtime/core/prompt-templates.d.ts +54 -0
  319. package/dist/runtime/core/prompt-templates.d.ts.map +1 -0
  320. package/dist/runtime/core/prompt-templates.js +236 -0
  321. package/dist/runtime/core/prompt-templates.js.map +1 -0
  322. package/dist/runtime/core/provider-attribution.d.ts +4 -0
  323. package/dist/runtime/core/provider-attribution.d.ts.map +1 -0
  324. package/dist/runtime/core/provider-attribution.js +72 -0
  325. package/dist/runtime/core/provider-attribution.js.map +1 -0
  326. package/dist/runtime/core/provider-composer.d.ts +58 -0
  327. package/dist/runtime/core/provider-composer.d.ts.map +1 -0
  328. package/dist/runtime/core/provider-composer.js +396 -0
  329. package/dist/runtime/core/provider-composer.js.map +1 -0
  330. package/dist/runtime/core/radius.d.ts +2 -0
  331. package/dist/runtime/core/radius.d.ts.map +1 -0
  332. package/dist/runtime/core/radius.js +2 -0
  333. package/dist/runtime/core/radius.js.map +1 -0
  334. package/dist/runtime/core/remote-catalog-provider.d.ts +5 -0
  335. package/dist/runtime/core/remote-catalog-provider.d.ts.map +1 -0
  336. package/dist/runtime/core/remote-catalog-provider.js +122 -0
  337. package/dist/runtime/core/remote-catalog-provider.js.map +1 -0
  338. package/dist/runtime/core/resolve-config-value.d.ts +30 -0
  339. package/dist/runtime/core/resolve-config-value.d.ts.map +1 -0
  340. package/dist/runtime/core/resolve-config-value.js +247 -0
  341. package/dist/runtime/core/resolve-config-value.js.map +1 -0
  342. package/dist/runtime/core/resource-loader.d.ts +221 -0
  343. package/dist/runtime/core/resource-loader.d.ts.map +1 -0
  344. package/dist/runtime/core/resource-loader.js +875 -0
  345. package/dist/runtime/core/resource-loader.js.map +1 -0
  346. package/dist/runtime/core/runtime-credentials.d.ts +15 -0
  347. package/dist/runtime/core/runtime-credentials.d.ts.map +1 -0
  348. package/dist/runtime/core/runtime-credentials.js +39 -0
  349. package/dist/runtime/core/runtime-credentials.js.map +1 -0
  350. package/dist/runtime/core/sdk.d.ts +108 -0
  351. package/dist/runtime/core/sdk.d.ts.map +1 -0
  352. package/dist/runtime/core/sdk.js +275 -0
  353. package/dist/runtime/core/sdk.js.map +1 -0
  354. package/dist/runtime/core/session-cwd.d.ts +19 -0
  355. package/dist/runtime/core/session-cwd.d.ts.map +1 -0
  356. package/dist/runtime/core/session-cwd.js +38 -0
  357. package/dist/runtime/core/session-cwd.js.map +1 -0
  358. package/dist/runtime/core/session-export.d.ts +4 -0
  359. package/dist/runtime/core/session-export.d.ts.map +1 -0
  360. package/dist/runtime/core/session-export.js +32 -0
  361. package/dist/runtime/core/session-export.js.map +1 -0
  362. package/dist/runtime/core/session-manager.d.ts +356 -0
  363. package/dist/runtime/core/session-manager.d.ts.map +1 -0
  364. package/dist/runtime/core/session-manager.js +1341 -0
  365. package/dist/runtime/core/session-manager.js.map +1 -0
  366. package/dist/runtime/core/settings-diagnostics.d.ts +9 -0
  367. package/dist/runtime/core/settings-diagnostics.d.ts.map +1 -0
  368. package/dist/runtime/core/settings-diagnostics.js +21 -0
  369. package/dist/runtime/core/settings-diagnostics.js.map +1 -0
  370. package/dist/runtime/core/settings-manager.d.ts +324 -0
  371. package/dist/runtime/core/settings-manager.d.ts.map +1 -0
  372. package/dist/runtime/core/settings-manager.js +980 -0
  373. package/dist/runtime/core/settings-manager.js.map +1 -0
  374. package/dist/runtime/core/skills.d.ts +60 -0
  375. package/dist/runtime/core/skills.d.ts.map +1 -0
  376. package/dist/runtime/core/skills.js +405 -0
  377. package/dist/runtime/core/skills.js.map +1 -0
  378. package/dist/runtime/core/slash-commands.d.ts +15 -0
  379. package/dist/runtime/core/slash-commands.d.ts.map +1 -0
  380. package/dist/runtime/core/slash-commands.js +27 -0
  381. package/dist/runtime/core/slash-commands.js.map +1 -0
  382. package/dist/runtime/core/source-info.d.ts +18 -0
  383. package/dist/runtime/core/source-info.d.ts.map +1 -0
  384. package/dist/runtime/core/source-info.js +19 -0
  385. package/dist/runtime/core/source-info.js.map +1 -0
  386. package/dist/runtime/core/system-prompt.d.ts +28 -0
  387. package/dist/runtime/core/system-prompt.d.ts.map +1 -0
  388. package/dist/runtime/core/system-prompt.js +119 -0
  389. package/dist/runtime/core/system-prompt.js.map +1 -0
  390. package/dist/runtime/core/telemetry.d.ts +3 -0
  391. package/dist/runtime/core/telemetry.d.ts.map +1 -0
  392. package/dist/runtime/core/telemetry.js +9 -0
  393. package/dist/runtime/core/telemetry.js.map +1 -0
  394. package/dist/runtime/core/timings.d.ts +10 -0
  395. package/dist/runtime/core/timings.d.ts.map +1 -0
  396. package/dist/runtime/core/timings.js +41 -0
  397. package/dist/runtime/core/timings.js.map +1 -0
  398. package/dist/runtime/core/tools/bash.d.ts +87 -0
  399. package/dist/runtime/core/tools/bash.d.ts.map +1 -0
  400. package/dist/runtime/core/tools/bash.js +410 -0
  401. package/dist/runtime/core/tools/bash.js.map +1 -0
  402. package/dist/runtime/core/tools/edit-diff.d.ts +101 -0
  403. package/dist/runtime/core/tools/edit-diff.d.ts.map +1 -0
  404. package/dist/runtime/core/tools/edit-diff.js +421 -0
  405. package/dist/runtime/core/tools/edit-diff.js.map +1 -0
  406. package/dist/runtime/core/tools/edit.d.ts +55 -0
  407. package/dist/runtime/core/tools/edit.d.ts.map +1 -0
  408. package/dist/runtime/core/tools/edit.js +306 -0
  409. package/dist/runtime/core/tools/edit.js.map +1 -0
  410. package/dist/runtime/core/tools/file-mutation-queue.d.ts +6 -0
  411. package/dist/runtime/core/tools/file-mutation-queue.d.ts.map +1 -0
  412. package/dist/runtime/core/tools/file-mutation-queue.js +52 -0
  413. package/dist/runtime/core/tools/file-mutation-queue.js.map +1 -0
  414. package/dist/runtime/core/tools/find.d.ts +42 -0
  415. package/dist/runtime/core/tools/find.d.ts.map +1 -0
  416. package/dist/runtime/core/tools/find.js +302 -0
  417. package/dist/runtime/core/tools/find.js.map +1 -0
  418. package/dist/runtime/core/tools/grep.d.ts +41 -0
  419. package/dist/runtime/core/tools/grep.d.ts.map +1 -0
  420. package/dist/runtime/core/tools/grep.js +308 -0
  421. package/dist/runtime/core/tools/grep.js.map +1 -0
  422. package/dist/runtime/core/tools/index.d.ts +43 -0
  423. package/dist/runtime/core/tools/index.d.ts.map +1 -0
  424. package/dist/runtime/core/tools/index.js +129 -0
  425. package/dist/runtime/core/tools/index.js.map +1 -0
  426. package/dist/runtime/core/tools/ls.d.ts +41 -0
  427. package/dist/runtime/core/tools/ls.d.ts.map +1 -0
  428. package/dist/runtime/core/tools/ls.js +171 -0
  429. package/dist/runtime/core/tools/ls.js.map +1 -0
  430. package/dist/runtime/core/tools/output-accumulator.d.ts +52 -0
  431. package/dist/runtime/core/tools/output-accumulator.d.ts.map +1 -0
  432. package/dist/runtime/core/tools/output-accumulator.js +184 -0
  433. package/dist/runtime/core/tools/output-accumulator.js.map +1 -0
  434. package/dist/runtime/core/tools/path-utils.d.ts +10 -0
  435. package/dist/runtime/core/tools/path-utils.d.ts.map +1 -0
  436. package/dist/runtime/core/tools/path-utils.js +99 -0
  437. package/dist/runtime/core/tools/path-utils.js.map +1 -0
  438. package/dist/runtime/core/tools/powershell.d.ts +16 -0
  439. package/dist/runtime/core/tools/powershell.d.ts.map +1 -0
  440. package/dist/runtime/core/tools/powershell.js +39 -0
  441. package/dist/runtime/core/tools/powershell.js.map +1 -0
  442. package/dist/runtime/core/tools/read.d.ts +39 -0
  443. package/dist/runtime/core/tools/read.d.ts.map +1 -0
  444. package/dist/runtime/core/tools/read.js +282 -0
  445. package/dist/runtime/core/tools/read.js.map +1 -0
  446. package/dist/runtime/core/tools/render-utils.d.ts +24 -0
  447. package/dist/runtime/core/tools/render-utils.d.ts.map +1 -0
  448. package/dist/runtime/core/tools/render-utils.js +65 -0
  449. package/dist/runtime/core/tools/render-utils.js.map +1 -0
  450. package/dist/runtime/core/tools/tool-definition-wrapper.d.ts +14 -0
  451. package/dist/runtime/core/tools/tool-definition-wrapper.d.ts.map +1 -0
  452. package/dist/runtime/core/tools/tool-definition-wrapper.js +36 -0
  453. package/dist/runtime/core/tools/tool-definition-wrapper.js.map +1 -0
  454. package/dist/runtime/core/tools/truncate.d.ts +70 -0
  455. package/dist/runtime/core/tools/truncate.d.ts.map +1 -0
  456. package/dist/runtime/core/tools/truncate.js +215 -0
  457. package/dist/runtime/core/tools/truncate.js.map +1 -0
  458. package/dist/runtime/core/tools/write.d.ts +30 -0
  459. package/dist/runtime/core/tools/write.d.ts.map +1 -0
  460. package/dist/runtime/core/tools/write.js +203 -0
  461. package/dist/runtime/core/tools/write.js.map +1 -0
  462. package/dist/runtime/core/trust-manager.d.ts +36 -0
  463. package/dist/runtime/core/trust-manager.d.ts.map +1 -0
  464. package/dist/runtime/core/trust-manager.js +203 -0
  465. package/dist/runtime/core/trust-manager.js.map +1 -0
  466. package/dist/runtime/core/usage-totals.d.ts +19 -0
  467. package/dist/runtime/core/usage-totals.d.ts.map +1 -0
  468. package/dist/runtime/core/usage-totals.js +52 -0
  469. package/dist/runtime/core/usage-totals.js.map +1 -0
  470. package/dist/runtime/extensions/index.d.ts +3 -0
  471. package/dist/runtime/extensions/index.d.ts.map +1 -0
  472. package/dist/runtime/extensions/index.js +3 -0
  473. package/dist/runtime/extensions/index.js.map +1 -0
  474. package/dist/runtime/extensions/llama/client.d.ts +67 -0
  475. package/dist/runtime/extensions/llama/client.d.ts.map +1 -0
  476. package/dist/runtime/extensions/llama/client.js +309 -0
  477. package/dist/runtime/extensions/llama/client.js.map +1 -0
  478. package/dist/runtime/extensions/llama/huggingface.d.ts +23 -0
  479. package/dist/runtime/extensions/llama/huggingface.d.ts.map +1 -0
  480. package/dist/runtime/extensions/llama/huggingface.js +141 -0
  481. package/dist/runtime/extensions/llama/huggingface.js.map +1 -0
  482. package/dist/runtime/extensions/llama/index.d.ts +3 -0
  483. package/dist/runtime/extensions/llama/index.d.ts.map +1 -0
  484. package/dist/runtime/extensions/llama/index.js +219 -0
  485. package/dist/runtime/extensions/llama/index.js.map +1 -0
  486. package/dist/runtime/extensions/llama/provider.d.ts +12 -0
  487. package/dist/runtime/extensions/llama/provider.d.ts.map +1 -0
  488. package/dist/runtime/extensions/llama/provider.js +146 -0
  489. package/dist/runtime/extensions/llama/provider.js.map +1 -0
  490. package/dist/runtime/extensions/llama/ui.d.ts +42 -0
  491. package/dist/runtime/extensions/llama/ui.d.ts.map +1 -0
  492. package/dist/runtime/extensions/llama/ui.js +416 -0
  493. package/dist/runtime/extensions/llama/ui.js.map +1 -0
  494. package/dist/runtime/index.d.ts +37 -0
  495. package/dist/runtime/index.d.ts.map +1 -0
  496. package/dist/runtime/index.js +49 -0
  497. package/dist/runtime/index.js.map +1 -0
  498. package/dist/runtime/main.d.ts +16 -0
  499. package/dist/runtime/main.d.ts.map +1 -0
  500. package/dist/runtime/main.js +799 -0
  501. package/dist/runtime/main.js.map +1 -0
  502. package/dist/runtime/migrations.d.ts +33 -0
  503. package/dist/runtime/migrations.d.ts.map +1 -0
  504. package/dist/runtime/migrations.js +282 -0
  505. package/dist/runtime/migrations.js.map +1 -0
  506. package/dist/runtime/modes/index.d.ts +10 -0
  507. package/dist/runtime/modes/index.d.ts.map +1 -0
  508. package/dist/runtime/modes/index.js +8 -0
  509. package/dist/runtime/modes/index.js.map +1 -0
  510. package/dist/runtime/modes/interactive/assets/clankolas.png +0 -0
  511. package/dist/runtime/modes/interactive/components/armin.d.ts +34 -0
  512. package/dist/runtime/modes/interactive/components/armin.d.ts.map +1 -0
  513. package/dist/runtime/modes/interactive/components/armin.js +333 -0
  514. package/dist/runtime/modes/interactive/components/armin.js.map +1 -0
  515. package/dist/runtime/modes/interactive/components/assistant-message.d.ts +25 -0
  516. package/dist/runtime/modes/interactive/components/assistant-message.d.ts.map +1 -0
  517. package/dist/runtime/modes/interactive/components/assistant-message.js +150 -0
  518. package/dist/runtime/modes/interactive/components/assistant-message.js.map +1 -0
  519. package/dist/runtime/modes/interactive/components/bash-execution.d.ts +34 -0
  520. package/dist/runtime/modes/interactive/components/bash-execution.d.ts.map +1 -0
  521. package/dist/runtime/modes/interactive/components/bash-execution.js +175 -0
  522. package/dist/runtime/modes/interactive/components/bash-execution.js.map +1 -0
  523. package/dist/runtime/modes/interactive/components/bordered-loader.d.ts +16 -0
  524. package/dist/runtime/modes/interactive/components/bordered-loader.d.ts.map +1 -0
  525. package/dist/runtime/modes/interactive/components/bordered-loader.js +54 -0
  526. package/dist/runtime/modes/interactive/components/bordered-loader.js.map +1 -0
  527. package/dist/runtime/modes/interactive/components/branch-summary-message.d.ts +16 -0
  528. package/dist/runtime/modes/interactive/components/branch-summary-message.d.ts.map +1 -0
  529. package/dist/runtime/modes/interactive/components/branch-summary-message.js +44 -0
  530. package/dist/runtime/modes/interactive/components/branch-summary-message.js.map +1 -0
  531. package/dist/runtime/modes/interactive/components/compaction-summary-message.d.ts +16 -0
  532. package/dist/runtime/modes/interactive/components/compaction-summary-message.d.ts.map +1 -0
  533. package/dist/runtime/modes/interactive/components/compaction-summary-message.js +45 -0
  534. package/dist/runtime/modes/interactive/components/compaction-summary-message.js.map +1 -0
  535. package/dist/runtime/modes/interactive/components/config-selector.d.ts +102 -0
  536. package/dist/runtime/modes/interactive/components/config-selector.d.ts.map +1 -0
  537. package/dist/runtime/modes/interactive/components/config-selector.js +761 -0
  538. package/dist/runtime/modes/interactive/components/config-selector.js.map +1 -0
  539. package/dist/runtime/modes/interactive/components/countdown-timer.d.ts +14 -0
  540. package/dist/runtime/modes/interactive/components/countdown-timer.d.ts.map +1 -0
  541. package/dist/runtime/modes/interactive/components/countdown-timer.js +33 -0
  542. package/dist/runtime/modes/interactive/components/countdown-timer.js.map +1 -0
  543. package/dist/runtime/modes/interactive/components/custom-editor.d.ts +21 -0
  544. package/dist/runtime/modes/interactive/components/custom-editor.d.ts.map +1 -0
  545. package/dist/runtime/modes/interactive/components/custom-editor.js +77 -0
  546. package/dist/runtime/modes/interactive/components/custom-editor.js.map +1 -0
  547. package/dist/runtime/modes/interactive/components/custom-entry.d.ts +19 -0
  548. package/dist/runtime/modes/interactive/components/custom-entry.d.ts.map +1 -0
  549. package/dist/runtime/modes/interactive/components/custom-entry.js +52 -0
  550. package/dist/runtime/modes/interactive/components/custom-entry.js.map +1 -0
  551. package/dist/runtime/modes/interactive/components/custom-message.d.ts +22 -0
  552. package/dist/runtime/modes/interactive/components/custom-message.d.ts.map +1 -0
  553. package/dist/runtime/modes/interactive/components/custom-message.js +87 -0
  554. package/dist/runtime/modes/interactive/components/custom-message.js.map +1 -0
  555. package/dist/runtime/modes/interactive/components/daxnuts.d.ts +23 -0
  556. package/dist/runtime/modes/interactive/components/daxnuts.d.ts.map +1 -0
  557. package/dist/runtime/modes/interactive/components/daxnuts.js +140 -0
  558. package/dist/runtime/modes/interactive/components/daxnuts.js.map +1 -0
  559. package/dist/runtime/modes/interactive/components/diff.d.ts +12 -0
  560. package/dist/runtime/modes/interactive/components/diff.d.ts.map +1 -0
  561. package/dist/runtime/modes/interactive/components/diff.js +133 -0
  562. package/dist/runtime/modes/interactive/components/diff.js.map +1 -0
  563. package/dist/runtime/modes/interactive/components/dynamic-border.d.ts +15 -0
  564. package/dist/runtime/modes/interactive/components/dynamic-border.d.ts.map +1 -0
  565. package/dist/runtime/modes/interactive/components/dynamic-border.js +21 -0
  566. package/dist/runtime/modes/interactive/components/dynamic-border.js.map +1 -0
  567. package/dist/runtime/modes/interactive/components/earendil-announcement.d.ts +5 -0
  568. package/dist/runtime/modes/interactive/components/earendil-announcement.d.ts.map +1 -0
  569. package/dist/runtime/modes/interactive/components/earendil-announcement.js +40 -0
  570. package/dist/runtime/modes/interactive/components/earendil-announcement.js.map +1 -0
  571. package/dist/runtime/modes/interactive/components/extension-editor.d.ts +21 -0
  572. package/dist/runtime/modes/interactive/components/extension-editor.d.ts.map +1 -0
  573. package/dist/runtime/modes/interactive/components/extension-editor.js +98 -0
  574. package/dist/runtime/modes/interactive/components/extension-editor.js.map +1 -0
  575. package/dist/runtime/modes/interactive/components/extension-input.d.ts +23 -0
  576. package/dist/runtime/modes/interactive/components/extension-input.d.ts.map +1 -0
  577. package/dist/runtime/modes/interactive/components/extension-input.js +61 -0
  578. package/dist/runtime/modes/interactive/components/extension-input.js.map +1 -0
  579. package/dist/runtime/modes/interactive/components/extension-selector.d.ts +26 -0
  580. package/dist/runtime/modes/interactive/components/extension-selector.d.ts.map +1 -0
  581. package/dist/runtime/modes/interactive/components/extension-selector.js +83 -0
  582. package/dist/runtime/modes/interactive/components/extension-selector.js.map +1 -0
  583. package/dist/runtime/modes/interactive/components/first-time-setup.d.ts +25 -0
  584. package/dist/runtime/modes/interactive/components/first-time-setup.d.ts.map +1 -0
  585. package/dist/runtime/modes/interactive/components/first-time-setup.js +103 -0
  586. package/dist/runtime/modes/interactive/components/first-time-setup.js.map +1 -0
  587. package/dist/runtime/modes/interactive/components/footer.d.ts +32 -0
  588. package/dist/runtime/modes/interactive/components/footer.d.ts.map +1 -0
  589. package/dist/runtime/modes/interactive/components/footer.js +222 -0
  590. package/dist/runtime/modes/interactive/components/footer.js.map +1 -0
  591. package/dist/runtime/modes/interactive/components/index.d.ts +34 -0
  592. package/dist/runtime/modes/interactive/components/index.d.ts.map +1 -0
  593. package/dist/runtime/modes/interactive/components/index.js +35 -0
  594. package/dist/runtime/modes/interactive/components/index.js.map +1 -0
  595. package/dist/runtime/modes/interactive/components/keybinding-hints.d.ts +13 -0
  596. package/dist/runtime/modes/interactive/components/keybinding-hints.d.ts.map +1 -0
  597. package/dist/runtime/modes/interactive/components/keybinding-hints.js +36 -0
  598. package/dist/runtime/modes/interactive/components/keybinding-hints.js.map +1 -0
  599. package/dist/runtime/modes/interactive/components/login-dialog.d.ts +52 -0
  600. package/dist/runtime/modes/interactive/components/login-dialog.d.ts.map +1 -0
  601. package/dist/runtime/modes/interactive/components/login-dialog.js +188 -0
  602. package/dist/runtime/modes/interactive/components/login-dialog.js.map +1 -0
  603. package/dist/runtime/modes/interactive/components/markdown-transform.d.ts +3 -0
  604. package/dist/runtime/modes/interactive/components/markdown-transform.d.ts.map +1 -0
  605. package/dist/runtime/modes/interactive/components/markdown-transform.js +19 -0
  606. package/dist/runtime/modes/interactive/components/markdown-transform.js.map +1 -0
  607. package/dist/runtime/modes/interactive/components/mermaid.d.ts +11 -0
  608. package/dist/runtime/modes/interactive/components/mermaid.d.ts.map +1 -0
  609. package/dist/runtime/modes/interactive/components/mermaid.js +75 -0
  610. package/dist/runtime/modes/interactive/components/mermaid.js.map +1 -0
  611. package/dist/runtime/modes/interactive/components/model-selector.d.ts +60 -0
  612. package/dist/runtime/modes/interactive/components/model-selector.d.ts.map +1 -0
  613. package/dist/runtime/modes/interactive/components/model-selector.js +370 -0
  614. package/dist/runtime/modes/interactive/components/model-selector.js.map +1 -0
  615. package/dist/runtime/modes/interactive/components/oauth-selector.d.ts +33 -0
  616. package/dist/runtime/modes/interactive/components/oauth-selector.d.ts.map +1 -0
  617. package/dist/runtime/modes/interactive/components/oauth-selector.js +163 -0
  618. package/dist/runtime/modes/interactive/components/oauth-selector.js.map +1 -0
  619. package/dist/runtime/modes/interactive/components/scoped-models-selector.d.ts +46 -0
  620. package/dist/runtime/modes/interactive/components/scoped-models-selector.d.ts.map +1 -0
  621. package/dist/runtime/modes/interactive/components/scoped-models-selector.js +328 -0
  622. package/dist/runtime/modes/interactive/components/scoped-models-selector.js.map +1 -0
  623. package/dist/runtime/modes/interactive/components/session-selector-search.d.ts +23 -0
  624. package/dist/runtime/modes/interactive/components/session-selector-search.d.ts.map +1 -0
  625. package/dist/runtime/modes/interactive/components/session-selector-search.js +155 -0
  626. package/dist/runtime/modes/interactive/components/session-selector-search.js.map +1 -0
  627. package/dist/runtime/modes/interactive/components/session-selector.d.ts +95 -0
  628. package/dist/runtime/modes/interactive/components/session-selector.d.ts.map +1 -0
  629. package/dist/runtime/modes/interactive/components/session-selector.js +867 -0
  630. package/dist/runtime/modes/interactive/components/session-selector.js.map +1 -0
  631. package/dist/runtime/modes/interactive/components/settings-selector.d.ts +90 -0
  632. package/dist/runtime/modes/interactive/components/settings-selector.d.ts.map +1 -0
  633. package/dist/runtime/modes/interactive/components/settings-selector.js +695 -0
  634. package/dist/runtime/modes/interactive/components/settings-selector.js.map +1 -0
  635. package/dist/runtime/modes/interactive/components/settings-submenu.d.ts +72 -0
  636. package/dist/runtime/modes/interactive/components/settings-submenu.d.ts.map +1 -0
  637. package/dist/runtime/modes/interactive/components/settings-submenu.js +165 -0
  638. package/dist/runtime/modes/interactive/components/settings-submenu.js.map +1 -0
  639. package/dist/runtime/modes/interactive/components/show-images-selector.d.ts +10 -0
  640. package/dist/runtime/modes/interactive/components/show-images-selector.d.ts.map +1 -0
  641. package/dist/runtime/modes/interactive/components/show-images-selector.js +39 -0
  642. package/dist/runtime/modes/interactive/components/show-images-selector.js.map +1 -0
  643. package/dist/runtime/modes/interactive/components/skill-invocation-message.d.ts +17 -0
  644. package/dist/runtime/modes/interactive/components/skill-invocation-message.d.ts.map +1 -0
  645. package/dist/runtime/modes/interactive/components/skill-invocation-message.js +47 -0
  646. package/dist/runtime/modes/interactive/components/skill-invocation-message.js.map +1 -0
  647. package/dist/runtime/modes/interactive/components/status-indicator.d.ts +28 -0
  648. package/dist/runtime/modes/interactive/components/status-indicator.d.ts.map +1 -0
  649. package/dist/runtime/modes/interactive/components/status-indicator.js +60 -0
  650. package/dist/runtime/modes/interactive/components/status-indicator.js.map +1 -0
  651. package/dist/runtime/modes/interactive/components/theme-selector.d.ts +11 -0
  652. package/dist/runtime/modes/interactive/components/theme-selector.d.ts.map +1 -0
  653. package/dist/runtime/modes/interactive/components/theme-selector.js +50 -0
  654. package/dist/runtime/modes/interactive/components/theme-selector.js.map +1 -0
  655. package/dist/runtime/modes/interactive/components/thinking-selector.d.ts +23 -0
  656. package/dist/runtime/modes/interactive/components/thinking-selector.d.ts.map +1 -0
  657. package/dist/runtime/modes/interactive/components/thinking-selector.js +109 -0
  658. package/dist/runtime/modes/interactive/components/thinking-selector.js.map +1 -0
  659. package/dist/runtime/modes/interactive/components/tool-execution.d.ts +63 -0
  660. package/dist/runtime/modes/interactive/components/tool-execution.d.ts.map +1 -0
  661. package/dist/runtime/modes/interactive/components/tool-execution.js +326 -0
  662. package/dist/runtime/modes/interactive/components/tool-execution.js.map +1 -0
  663. package/dist/runtime/modes/interactive/components/tree-selector.d.ts +94 -0
  664. package/dist/runtime/modes/interactive/components/tree-selector.d.ts.map +1 -0
  665. package/dist/runtime/modes/interactive/components/tree-selector.js +1245 -0
  666. package/dist/runtime/modes/interactive/components/tree-selector.js.map +1 -0
  667. package/dist/runtime/modes/interactive/components/trust-selector.d.ts +23 -0
  668. package/dist/runtime/modes/interactive/components/trust-selector.d.ts.map +1 -0
  669. package/dist/runtime/modes/interactive/components/trust-selector.js +91 -0
  670. package/dist/runtime/modes/interactive/components/trust-selector.js.map +1 -0
  671. package/dist/runtime/modes/interactive/components/user-message-selector.d.ts +30 -0
  672. package/dist/runtime/modes/interactive/components/user-message-selector.d.ts.map +1 -0
  673. package/dist/runtime/modes/interactive/components/user-message-selector.js +114 -0
  674. package/dist/runtime/modes/interactive/components/user-message-selector.js.map +1 -0
  675. package/dist/runtime/modes/interactive/components/user-message.d.ts +16 -0
  676. package/dist/runtime/modes/interactive/components/user-message.d.ts.map +1 -0
  677. package/dist/runtime/modes/interactive/components/user-message.js +49 -0
  678. package/dist/runtime/modes/interactive/components/user-message.js.map +1 -0
  679. package/dist/runtime/modes/interactive/components/visual-truncate.d.ts +24 -0
  680. package/dist/runtime/modes/interactive/components/visual-truncate.d.ts.map +1 -0
  681. package/dist/runtime/modes/interactive/components/visual-truncate.js +33 -0
  682. package/dist/runtime/modes/interactive/components/visual-truncate.js.map +1 -0
  683. package/dist/runtime/modes/interactive/external-editor.d.ts +12 -0
  684. package/dist/runtime/modes/interactive/external-editor.d.ts.map +1 -0
  685. package/dist/runtime/modes/interactive/external-editor.js +38 -0
  686. package/dist/runtime/modes/interactive/external-editor.js.map +1 -0
  687. package/dist/runtime/modes/interactive/interactive-mode.d.ts +446 -0
  688. package/dist/runtime/modes/interactive/interactive-mode.d.ts.map +1 -0
  689. package/dist/runtime/modes/interactive/interactive-mode.js +5509 -0
  690. package/dist/runtime/modes/interactive/interactive-mode.js.map +1 -0
  691. package/dist/runtime/modes/interactive/model-catalog-refresh.d.ts +7 -0
  692. package/dist/runtime/modes/interactive/model-catalog-refresh.d.ts.map +1 -0
  693. package/dist/runtime/modes/interactive/model-catalog-refresh.js +34 -0
  694. package/dist/runtime/modes/interactive/model-catalog-refresh.js.map +1 -0
  695. package/dist/runtime/modes/interactive/model-search.d.ts +12 -0
  696. package/dist/runtime/modes/interactive/model-search.d.ts.map +1 -0
  697. package/dist/runtime/modes/interactive/model-search.js +15 -0
  698. package/dist/runtime/modes/interactive/model-search.js.map +1 -0
  699. package/dist/runtime/modes/interactive/session-share.d.ts +16 -0
  700. package/dist/runtime/modes/interactive/session-share.d.ts.map +1 -0
  701. package/dist/runtime/modes/interactive/session-share.js +188 -0
  702. package/dist/runtime/modes/interactive/session-share.js.map +1 -0
  703. package/dist/runtime/modes/interactive/theme/dark.json +90 -0
  704. package/dist/runtime/modes/interactive/theme/light.json +89 -0
  705. package/dist/runtime/modes/interactive/theme/theme-controller.d.ts +40 -0
  706. package/dist/runtime/modes/interactive/theme/theme-controller.d.ts.map +1 -0
  707. package/dist/runtime/modes/interactive/theme/theme-controller.js +125 -0
  708. package/dist/runtime/modes/interactive/theme/theme-controller.js.map +1 -0
  709. package/dist/runtime/modes/interactive/theme/theme-schema.json +352 -0
  710. package/dist/runtime/modes/interactive/theme/theme.d.ts +122 -0
  711. package/dist/runtime/modes/interactive/theme/theme.d.ts.map +1 -0
  712. package/dist/runtime/modes/interactive/theme/theme.js +1092 -0
  713. package/dist/runtime/modes/interactive/theme/theme.js.map +1 -0
  714. package/dist/runtime/modes/json-event.d.ts +34 -0
  715. package/dist/runtime/modes/json-event.d.ts.map +1 -0
  716. package/dist/runtime/modes/json-event.js +29 -0
  717. package/dist/runtime/modes/json-event.js.map +1 -0
  718. package/dist/runtime/modes/print-mode.d.ts +28 -0
  719. package/dist/runtime/modes/print-mode.d.ts.map +1 -0
  720. package/dist/runtime/modes/print-mode.js +142 -0
  721. package/dist/runtime/modes/print-mode.js.map +1 -0
  722. package/dist/runtime/modes/rpc/jsonl.d.ts +17 -0
  723. package/dist/runtime/modes/rpc/jsonl.d.ts.map +1 -0
  724. package/dist/runtime/modes/rpc/jsonl.js +49 -0
  725. package/dist/runtime/modes/rpc/jsonl.js.map +1 -0
  726. package/dist/runtime/modes/rpc/rpc-client.d.ts +254 -0
  727. package/dist/runtime/modes/rpc/rpc-client.d.ts.map +1 -0
  728. package/dist/runtime/modes/rpc/rpc-client.js +495 -0
  729. package/dist/runtime/modes/rpc/rpc-client.js.map +1 -0
  730. package/dist/runtime/modes/rpc/rpc-mode.d.ts +20 -0
  731. package/dist/runtime/modes/rpc/rpc-mode.d.ts.map +1 -0
  732. package/dist/runtime/modes/rpc/rpc-mode.js +657 -0
  733. package/dist/runtime/modes/rpc/rpc-mode.js.map +1 -0
  734. package/dist/runtime/modes/rpc/rpc-types.d.ts +469 -0
  735. package/dist/runtime/modes/rpc/rpc-types.d.ts.map +1 -0
  736. package/dist/runtime/modes/rpc/rpc-types.js +8 -0
  737. package/dist/runtime/modes/rpc/rpc-types.js.map +1 -0
  738. package/dist/runtime/package-manager-cli.d.ts +9 -0
  739. package/dist/runtime/package-manager-cli.d.ts.map +1 -0
  740. package/dist/runtime/package-manager-cli.js +961 -0
  741. package/dist/runtime/package-manager-cli.js.map +1 -0
  742. package/dist/runtime/rpc-entry.d.ts +3 -0
  743. package/dist/runtime/rpc-entry.d.ts.map +1 -0
  744. package/dist/runtime/rpc-entry.js +11 -0
  745. package/dist/runtime/rpc-entry.js.map +1 -0
  746. package/dist/runtime/server/create-harness.d.ts +26 -0
  747. package/dist/runtime/server/create-harness.d.ts.map +1 -0
  748. package/dist/runtime/server/create-harness.js +106 -0
  749. package/dist/runtime/server/create-harness.js.map +1 -0
  750. package/dist/runtime/utils/abort.d.ts +5 -0
  751. package/dist/runtime/utils/abort.d.ts.map +1 -0
  752. package/dist/runtime/utils/abort.js +48 -0
  753. package/dist/runtime/utils/abort.js.map +1 -0
  754. package/dist/runtime/utils/ansi.d.ts +2 -0
  755. package/dist/runtime/utils/ansi.d.ts.map +1 -0
  756. package/dist/runtime/utils/ansi.js +52 -0
  757. package/dist/runtime/utils/ansi.js.map +1 -0
  758. package/dist/runtime/utils/changelog.d.ts +22 -0
  759. package/dist/runtime/utils/changelog.d.ts.map +1 -0
  760. package/dist/runtime/utils/changelog.js +165 -0
  761. package/dist/runtime/utils/changelog.js.map +1 -0
  762. package/dist/runtime/utils/child-process.d.ts +18 -0
  763. package/dist/runtime/utils/child-process.d.ts.map +1 -0
  764. package/dist/runtime/utils/child-process.js +106 -0
  765. package/dist/runtime/utils/child-process.js.map +1 -0
  766. package/dist/runtime/utils/clipboard-image.d.ts +11 -0
  767. package/dist/runtime/utils/clipboard-image.d.ts.map +1 -0
  768. package/dist/runtime/utils/clipboard-image.js +245 -0
  769. package/dist/runtime/utils/clipboard-image.js.map +1 -0
  770. package/dist/runtime/utils/clipboard-native.d.ts +11 -0
  771. package/dist/runtime/utils/clipboard-native.d.ts.map +1 -0
  772. package/dist/runtime/utils/clipboard-native.js +20 -0
  773. package/dist/runtime/utils/clipboard-native.js.map +1 -0
  774. package/dist/runtime/utils/clipboard.d.ts +4 -0
  775. package/dist/runtime/utils/clipboard.d.ts.map +1 -0
  776. package/dist/runtime/utils/clipboard.js +161 -0
  777. package/dist/runtime/utils/clipboard.js.map +1 -0
  778. package/dist/runtime/utils/deprecation.d.ts +4 -0
  779. package/dist/runtime/utils/deprecation.d.ts.map +1 -0
  780. package/dist/runtime/utils/deprecation.js +13 -0
  781. package/dist/runtime/utils/deprecation.js.map +1 -0
  782. package/dist/runtime/utils/exif-orientation.d.ts +5 -0
  783. package/dist/runtime/utils/exif-orientation.d.ts.map +1 -0
  784. package/dist/runtime/utils/exif-orientation.js +158 -0
  785. package/dist/runtime/utils/exif-orientation.js.map +1 -0
  786. package/dist/runtime/utils/frontmatter.d.ts +8 -0
  787. package/dist/runtime/utils/frontmatter.d.ts.map +1 -0
  788. package/dist/runtime/utils/frontmatter.js +27 -0
  789. package/dist/runtime/utils/frontmatter.js.map +1 -0
  790. package/dist/runtime/utils/fs-watch.d.ts +5 -0
  791. package/dist/runtime/utils/fs-watch.d.ts.map +1 -0
  792. package/dist/runtime/utils/fs-watch.js +25 -0
  793. package/dist/runtime/utils/fs-watch.js.map +1 -0
  794. package/dist/runtime/utils/git.d.ts +26 -0
  795. package/dist/runtime/utils/git.d.ts.map +1 -0
  796. package/dist/runtime/utils/git.js +195 -0
  797. package/dist/runtime/utils/git.js.map +1 -0
  798. package/dist/runtime/utils/html.d.ts +7 -0
  799. package/dist/runtime/utils/html.d.ts.map +1 -0
  800. package/dist/runtime/utils/html.js +40 -0
  801. package/dist/runtime/utils/html.js.map +1 -0
  802. package/dist/runtime/utils/image-convert.d.ts +10 -0
  803. package/dist/runtime/utils/image-convert.d.ts.map +1 -0
  804. package/dist/runtime/utils/image-convert.js +45 -0
  805. package/dist/runtime/utils/image-convert.js.map +1 -0
  806. package/dist/runtime/utils/image-process.d.ts +18 -0
  807. package/dist/runtime/utils/image-process.d.ts.map +1 -0
  808. package/dist/runtime/utils/image-process.js +83 -0
  809. package/dist/runtime/utils/image-process.js.map +1 -0
  810. package/dist/runtime/utils/image-resize-core.d.ts +30 -0
  811. package/dist/runtime/utils/image-resize-core.d.ts.map +1 -0
  812. package/dist/runtime/utils/image-resize-core.js +124 -0
  813. package/dist/runtime/utils/image-resize-core.js.map +1 -0
  814. package/dist/runtime/utils/image-resize-worker.d.ts +2 -0
  815. package/dist/runtime/utils/image-resize-worker.d.ts.map +1 -0
  816. package/dist/runtime/utils/image-resize-worker.js +31 -0
  817. package/dist/runtime/utils/image-resize-worker.js.map +1 -0
  818. package/dist/runtime/utils/image-resize.d.ts +16 -0
  819. package/dist/runtime/utils/image-resize.d.ts.map +1 -0
  820. package/dist/runtime/utils/image-resize.js +97 -0
  821. package/dist/runtime/utils/image-resize.js.map +1 -0
  822. package/dist/runtime/utils/json.d.ts +3 -0
  823. package/dist/runtime/utils/json.d.ts.map +1 -0
  824. package/dist/runtime/utils/json.js +7 -0
  825. package/dist/runtime/utils/json.js.map +1 -0
  826. package/dist/runtime/utils/management-http.d.ts +25 -0
  827. package/dist/runtime/utils/management-http.d.ts.map +1 -0
  828. package/dist/runtime/utils/management-http.js +54 -0
  829. package/dist/runtime/utils/management-http.js.map +1 -0
  830. package/dist/runtime/utils/mime.d.ts +3 -0
  831. package/dist/runtime/utils/mime.d.ts.map +1 -0
  832. package/dist/runtime/utils/mime.js +110 -0
  833. package/dist/runtime/utils/mime.js.map +1 -0
  834. package/dist/runtime/utils/open-browser.d.ts +9 -0
  835. package/dist/runtime/utils/open-browser.d.ts.map +1 -0
  836. package/dist/runtime/utils/open-browser.js +22 -0
  837. package/dist/runtime/utils/open-browser.js.map +1 -0
  838. package/dist/runtime/utils/paths.d.ts +34 -0
  839. package/dist/runtime/utils/paths.d.ts.map +1 -0
  840. package/dist/runtime/utils/paths.js +114 -0
  841. package/dist/runtime/utils/paths.js.map +1 -0
  842. package/dist/runtime/utils/photon.d.ts +21 -0
  843. package/dist/runtime/utils/photon.d.ts.map +1 -0
  844. package/dist/runtime/utils/photon.js +121 -0
  845. package/dist/runtime/utils/photon.js.map +1 -0
  846. package/dist/runtime/utils/pi-user-agent.d.ts +2 -0
  847. package/dist/runtime/utils/pi-user-agent.d.ts.map +1 -0
  848. package/dist/runtime/utils/pi-user-agent.js +5 -0
  849. package/dist/runtime/utils/pi-user-agent.js.map +1 -0
  850. package/dist/runtime/utils/shell.d.ts +34 -0
  851. package/dist/runtime/utils/shell.d.ts.map +1 -0
  852. package/dist/runtime/utils/shell.js +214 -0
  853. package/dist/runtime/utils/shell.js.map +1 -0
  854. package/dist/runtime/utils/sleep.d.ts +5 -0
  855. package/dist/runtime/utils/sleep.d.ts.map +1 -0
  856. package/dist/runtime/utils/sleep.js +17 -0
  857. package/dist/runtime/utils/sleep.js.map +1 -0
  858. package/dist/runtime/utils/syntax-highlight.d.ts +13 -0
  859. package/dist/runtime/utils/syntax-highlight.d.ts.map +1 -0
  860. package/dist/runtime/utils/syntax-highlight.js +177 -0
  861. package/dist/runtime/utils/syntax-highlight.js.map +1 -0
  862. package/dist/runtime/utils/text.d.ts +8 -0
  863. package/dist/runtime/utils/text.d.ts.map +1 -0
  864. package/dist/runtime/utils/text.js +9 -0
  865. package/dist/runtime/utils/text.js.map +1 -0
  866. package/dist/runtime/utils/tool-result-images.d.ts +19 -0
  867. package/dist/runtime/utils/tool-result-images.d.ts.map +1 -0
  868. package/dist/runtime/utils/tool-result-images.js +45 -0
  869. package/dist/runtime/utils/tool-result-images.js.map +1 -0
  870. package/dist/runtime/utils/tools-manager.d.ts +12 -0
  871. package/dist/runtime/utils/tools-manager.d.ts.map +1 -0
  872. package/dist/runtime/utils/tools-manager.js +321 -0
  873. package/dist/runtime/utils/tools-manager.js.map +1 -0
  874. package/dist/runtime/utils/version-check.d.ts +19 -0
  875. package/dist/runtime/utils/version-check.d.ts.map +1 -0
  876. package/dist/runtime/utils/version-check.js +79 -0
  877. package/dist/runtime/utils/version-check.js.map +1 -0
  878. package/dist/runtime/utils/windows-self-update.d.ts +3 -0
  879. package/dist/runtime/utils/windows-self-update.d.ts.map +1 -0
  880. package/dist/runtime/utils/windows-self-update.js +77 -0
  881. package/dist/runtime/utils/windows-self-update.js.map +1 -0
  882. package/dist/update.js +134 -0
  883. package/dist/workflows.js +391 -0
  884. package/docs/compaction.md +416 -0
  885. package/docs/containerization.md +111 -0
  886. package/docs/custom-provider.md +777 -0
  887. package/docs/development.md +71 -0
  888. package/docs/docs.json +156 -0
  889. package/docs/environment-variables.md +94 -0
  890. package/docs/extensions.md +3002 -0
  891. package/docs/images/doom-extension.png +0 -0
  892. package/docs/images/exy.png +0 -0
  893. package/docs/images/interactive-mode.png +0 -0
  894. package/docs/images/tree-view.png +0 -0
  895. package/docs/index.md +84 -0
  896. package/docs/json.md +98 -0
  897. package/docs/keybindings.md +236 -0
  898. package/docs/llama-cpp.md +101 -0
  899. package/docs/models.md +571 -0
  900. package/docs/packages.md +228 -0
  901. package/docs/prompt-templates.md +96 -0
  902. package/docs/providers.md +317 -0
  903. package/docs/quickstart.md +167 -0
  904. package/docs/rpc.md +1618 -0
  905. package/docs/sdk.md +1219 -0
  906. package/docs/security.md +59 -0
  907. package/docs/session-format.md +438 -0
  908. package/docs/sessions.md +145 -0
  909. package/docs/settings.md +361 -0
  910. package/docs/shell-aliases.md +13 -0
  911. package/docs/skills.md +232 -0
  912. package/docs/terminal-setup.md +165 -0
  913. package/docs/termux.md +127 -0
  914. package/docs/themes.md +320 -0
  915. package/docs/tmux.md +63 -0
  916. package/docs/tui.md +942 -0
  917. package/docs/usage.md +310 -0
  918. package/docs/windows.md +39 -0
  919. package/examples/README.md +25 -0
  920. package/examples/extensions/README.md +213 -0
  921. package/examples/extensions/auto-commit-on-exit.ts +49 -0
  922. package/examples/extensions/bash-spawn-hook.ts +30 -0
  923. package/examples/extensions/bookmark.ts +50 -0
  924. package/examples/extensions/border-status-editor.ts +150 -0
  925. package/examples/extensions/built-in-tool-renderer.ts +249 -0
  926. package/examples/extensions/claude-rules.ts +86 -0
  927. package/examples/extensions/commands.ts +72 -0
  928. package/examples/extensions/confirm-destructive.ts +59 -0
  929. package/examples/extensions/custom-compaction.ts +117 -0
  930. package/examples/extensions/custom-footer.ts +64 -0
  931. package/examples/extensions/custom-header.ts +73 -0
  932. package/examples/extensions/custom-provider-anthropic/index.ts +611 -0
  933. package/examples/extensions/custom-provider-anthropic/package-lock.json +24 -0
  934. package/examples/extensions/custom-provider-anthropic/package.json +19 -0
  935. package/examples/extensions/custom-provider-gitlab-duo/index.ts +405 -0
  936. package/examples/extensions/custom-provider-gitlab-duo/package.json +16 -0
  937. package/examples/extensions/custom-provider-gitlab-duo/test.ts +82 -0
  938. package/examples/extensions/dirty-repo-guard.ts +56 -0
  939. package/examples/extensions/doom-overlay/README.md +46 -0
  940. package/examples/extensions/doom-overlay/doom/build/doom.js +21 -0
  941. package/examples/extensions/doom-overlay/doom/build/doom.wasm +0 -0
  942. package/examples/extensions/doom-overlay/doom/build.sh +152 -0
  943. package/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +72 -0
  944. package/examples/extensions/doom-overlay/doom-component.ts +132 -0
  945. package/examples/extensions/doom-overlay/doom-engine.ts +173 -0
  946. package/examples/extensions/doom-overlay/doom-keys.ts +104 -0
  947. package/examples/extensions/doom-overlay/index.ts +74 -0
  948. package/examples/extensions/doom-overlay/wad-finder.ts +55 -0
  949. package/examples/extensions/dynamic-resources/SKILL.md +8 -0
  950. package/examples/extensions/dynamic-resources/dynamic.json +79 -0
  951. package/examples/extensions/dynamic-resources/dynamic.md +5 -0
  952. package/examples/extensions/dynamic-resources/index.ts +15 -0
  953. package/examples/extensions/dynamic-tools.ts +74 -0
  954. package/examples/extensions/entry-renderer.ts +41 -0
  955. package/examples/extensions/event-bus.ts +43 -0
  956. package/examples/extensions/file-trigger.ts +41 -0
  957. package/examples/extensions/git-checkpoint.ts +53 -0
  958. package/examples/extensions/git-merge-and-resolve.ts +115 -0
  959. package/examples/extensions/github-issue-autocomplete.ts +185 -0
  960. package/examples/extensions/gondolin/index.ts +531 -0
  961. package/examples/extensions/gondolin/package-lock.json +185 -0
  962. package/examples/extensions/gondolin/package.json +19 -0
  963. package/examples/extensions/handoff.ts +190 -0
  964. package/examples/extensions/hello.ts +26 -0
  965. package/examples/extensions/hidden-thinking-label.ts +53 -0
  966. package/examples/extensions/inline-bash.ts +94 -0
  967. package/examples/extensions/input-transform-streaming.ts +39 -0
  968. package/examples/extensions/input-transform.ts +43 -0
  969. package/examples/extensions/interactive-shell.ts +196 -0
  970. package/examples/extensions/kimi-deferred-tools.ts +61 -0
  971. package/examples/extensions/mac-system-theme.ts +47 -0
  972. package/examples/extensions/message-renderer.ts +59 -0
  973. package/examples/extensions/minimal-mode.ts +426 -0
  974. package/examples/extensions/modal-editor.ts +85 -0
  975. package/examples/extensions/model-status.ts +31 -0
  976. package/examples/extensions/notify.ts +57 -0
  977. package/examples/extensions/overlay-qa-tests.ts +1450 -0
  978. package/examples/extensions/overlay-test.ts +153 -0
  979. package/examples/extensions/permission-gate.ts +34 -0
  980. package/examples/extensions/pirate.ts +47 -0
  981. package/examples/extensions/plan-mode/README.md +66 -0
  982. package/examples/extensions/plan-mode/index.ts +390 -0
  983. package/examples/extensions/plan-mode/utils.ts +168 -0
  984. package/examples/extensions/preset.ts +436 -0
  985. package/examples/extensions/project-trust.ts +64 -0
  986. package/examples/extensions/prompt-customizer.ts +97 -0
  987. package/examples/extensions/protected-paths.ts +30 -0
  988. package/examples/extensions/provider-payload.ts +18 -0
  989. package/examples/extensions/qna.ts +118 -0
  990. package/examples/extensions/question.ts +286 -0
  991. package/examples/extensions/questionnaire.ts +448 -0
  992. package/examples/extensions/rainbow-editor.ts +88 -0
  993. package/examples/extensions/reload-runtime.ts +37 -0
  994. package/examples/extensions/rpc-demo.ts +118 -0
  995. package/examples/extensions/sandbox/index.ts +321 -0
  996. package/examples/extensions/sandbox/package-lock.json +92 -0
  997. package/examples/extensions/sandbox/package.json +19 -0
  998. package/examples/extensions/send-user-message.ts +97 -0
  999. package/examples/extensions/session-name.ts +27 -0
  1000. package/examples/extensions/shutdown-command.ts +63 -0
  1001. package/examples/extensions/snake.ts +343 -0
  1002. package/examples/extensions/space-invaders.ts +560 -0
  1003. package/examples/extensions/ssh.ts +220 -0
  1004. package/examples/extensions/status-line.ts +32 -0
  1005. package/examples/extensions/structured-output.ts +65 -0
  1006. package/examples/extensions/subagent/README.md +177 -0
  1007. package/examples/extensions/subagent/agents/planner.md +37 -0
  1008. package/examples/extensions/subagent/agents/reviewer.md +35 -0
  1009. package/examples/extensions/subagent/agents/scout.md +50 -0
  1010. package/examples/extensions/subagent/agents/worker.md +24 -0
  1011. package/examples/extensions/subagent/agents.ts +157 -0
  1012. package/examples/extensions/subagent/index.ts +1038 -0
  1013. package/examples/extensions/subagent/prompts/implement-and-review.md +10 -0
  1014. package/examples/extensions/subagent/prompts/implement.md +10 -0
  1015. package/examples/extensions/subagent/prompts/scout-and-plan.md +9 -0
  1016. package/examples/extensions/summarize.ts +199 -0
  1017. package/examples/extensions/system-prompt-header.ts +17 -0
  1018. package/examples/extensions/tic-tac-toe.ts +1008 -0
  1019. package/examples/extensions/timed-confirm.ts +70 -0
  1020. package/examples/extensions/titlebar-spinner.ts +58 -0
  1021. package/examples/extensions/todo.ts +297 -0
  1022. package/examples/extensions/tool-override.ts +144 -0
  1023. package/examples/extensions/tools.ts +146 -0
  1024. package/examples/extensions/trigger-compact.ts +50 -0
  1025. package/examples/extensions/truncated-tool.ts +195 -0
  1026. package/examples/extensions/widget-placement.ts +9 -0
  1027. package/examples/extensions/with-deps/index.ts +32 -0
  1028. package/examples/extensions/with-deps/package-lock.json +31 -0
  1029. package/examples/extensions/with-deps/package.json +22 -0
  1030. package/examples/extensions/working-indicator.ts +123 -0
  1031. package/examples/extensions/working-message-test.ts +25 -0
  1032. package/examples/rpc-extension-ui.ts +641 -0
  1033. package/examples/sdk/01-minimal.ts +26 -0
  1034. package/examples/sdk/02-custom-model.ts +49 -0
  1035. package/examples/sdk/03-custom-prompt.ts +75 -0
  1036. package/examples/sdk/04-skills.ts +55 -0
  1037. package/examples/sdk/05-tools.ts +48 -0
  1038. package/examples/sdk/06-extensions.ts +99 -0
  1039. package/examples/sdk/07-context-files.ts +47 -0
  1040. package/examples/sdk/08-prompt-templates.ts +51 -0
  1041. package/examples/sdk/09-api-keys-and-oauth.ts +34 -0
  1042. package/examples/sdk/10-settings.ts +53 -0
  1043. package/examples/sdk/11-sessions.ts +52 -0
  1044. package/examples/sdk/12-full-control.ts +74 -0
  1045. package/examples/sdk/13-session-runtime.ts +67 -0
  1046. package/examples/sdk/README.md +140 -0
  1047. package/package.json +65 -12
  1048. package/upstream.json +6 -0
  1049. package/workflows/cm/LICENSE +21 -0
  1050. package/workflows/cm/README.md +333 -0
  1051. package/workflows/cm/THIRD_PARTY_NOTICES.md +29 -0
  1052. package/workflows/cm/VERSION +1 -0
  1053. package/workflows/cm/agents/cm-backend-agent.md +34 -0
  1054. package/workflows/cm/agents/cm-contract-agent.md +34 -0
  1055. package/workflows/cm/agents/cm-database-agent.md +34 -0
  1056. package/workflows/cm/agents/cm-frontend-agent.md +33 -0
  1057. package/workflows/cm/agents/cm-miniprogram-agent.md +33 -0
  1058. package/workflows/cm/agents/cm-ui-agent.md +34 -0
  1059. package/workflows/cm/assets/docs/command-picker-mobile.svg +56 -0
  1060. package/workflows/cm/assets/docs/command-picker.svg +56 -0
  1061. package/workflows/cm/assets/docs/user-guide-hero-mobile.svg +35 -0
  1062. package/workflows/cm/assets/docs/user-guide-hero.svg +36 -0
  1063. package/workflows/cm/assets/readme/delivery-flow.svg +86 -0
  1064. package/workflows/cm/assets/readme/hero.svg +77 -0
  1065. package/workflows/cm/assets/readme/recovery-record.svg +73 -0
  1066. package/workflows/cm/assets/readme/test-evidence.svg +64 -0
  1067. package/workflows/cm/compat/claude-commands/cm-ai.md +3 -0
  1068. package/workflows/cm/compat/claude-commands/cm-check.md +3 -0
  1069. package/workflows/cm/compat/claude-commands/cm-fix.md +3 -0
  1070. package/workflows/cm/compat/claude-commands/cm-idea.md +3 -0
  1071. package/workflows/cm/compat/claude-commands/cm-init.md +3 -0
  1072. package/workflows/cm/compat/claude-commands/cm-prd.md +3 -0
  1073. package/workflows/cm/compat/claude-commands/cm-refactor.md +3 -0
  1074. package/workflows/cm/compat/claude-commands/cm-test.md +3 -0
  1075. package/workflows/cm/docs/architecture.md +130 -0
  1076. package/workflows/cm/docs/fixes/.reviews/fix-manifest-runtime-checkbox-drift-r1.md +33 -0
  1077. package/workflows/cm/docs/fixes/.reviews/fix-manifest-runtime-checkbox-drift-r2.md +31 -0
  1078. package/workflows/cm/docs/fixes/.reviews/fix-model-call-boundary-identity-T-FIX-model-call-boundary-identity-a1-handoff.json +56 -0
  1079. package/workflows/cm/docs/fixes/.reviews/fix-model-call-boundary-identity-T-FIX-model-call-boundary-identity-a2-handoff.json +85 -0
  1080. package/workflows/cm/docs/fixes/.reviews/fix-model-call-boundary-identity-T-FIX-model-call-boundary-identity-r1.md +53 -0
  1081. package/workflows/cm/docs/fixes/.reviews/fix-model-call-boundary-identity-T-FIX-model-call-boundary-identity-r2.md +80 -0
  1082. package/workflows/cm/docs/fixes/.reviews/fix-review-evidence-scope-honesty-T-FIX-review-evidence-scope-honesty-a1-handoff.json +35 -0
  1083. package/workflows/cm/docs/fixes/.reviews/fix-review-evidence-scope-honesty-T-FIX-review-evidence-scope-honesty-r1.md +33 -0
  1084. package/workflows/cm/docs/fixes/.reviews/fix-windows-cp1252-log-output-r1.md +30 -0
  1085. package/workflows/cm/docs/fixes/.reviews/fix-windows-cp1252-log-output-r2.md +16 -0
  1086. package/workflows/cm/docs/fixes/.reviews/openai-compatible-depth-fixture-T-FIX-openai-compatible-depth-fixture-a1-handoff.json +40 -0
  1087. package/workflows/cm/docs/fixes/.reviews/openai-compatible-depth-fixture-T-FIX-openai-compatible-depth-fixture-r1.md +30 -0
  1088. package/workflows/cm/docs/fixes/20260729-windows-cp1252-log-output.md +65 -0
  1089. package/workflows/cm/docs/fixes/20260804-manifest-runtime-checkbox-drift.md +67 -0
  1090. package/workflows/cm/docs/fixes/20260806-model-call-boundary-identity.md +80 -0
  1091. package/workflows/cm/docs/fixes/20260807-prelanding-integrity.md +58 -0
  1092. package/workflows/cm/docs/fixes/20260826-openai-compatible-depth-fixture.md +39 -0
  1093. package/workflows/cm/docs/installation.md +149 -0
  1094. package/workflows/cm/docs/sample-prd/prd-funding-rate-alert.md +42 -0
  1095. package/workflows/cm/docs/sample-specs/docs//351/234/200/346/261/202/347/244/272/344/276/213.md +24 -0
  1096. package/workflows/cm/docs/user-guide.md +521 -0
  1097. package/workflows/cm/docs//351/207/215/346/236/204/346/265/201/347/250/213/350/256/276/350/256/241/README.md +19 -0
  1098. package/workflows/cm/docs//351/207/215/346/236/204/346/265/201/347/250/213/350/256/276/350/256/241/refactor-flow.excalidraw +3650 -0
  1099. package/workflows/cm/docs//351/207/215/346/236/204/346/265/201/347/250/213/350/256/276/350/256/241/refactor-flow.mp4 +0 -0
  1100. package/workflows/cm/docs//351/207/215/346/236/204/346/265/201/347/250/213/350/256/276/350/256/241/refactor-flow.png +0 -0
  1101. package/workflows/cm/docs//351/207/215/346/236/204/346/265/201/347/250/213/350/256/276/350/256/241/refactor-flow.spec.json +223 -0
  1102. package/workflows/cm/package.json +45 -0
  1103. package/workflows/cm/runtime/external-expert.md +302 -0
  1104. package/workflows/cm/runtime/logging.md +206 -0
  1105. package/workflows/cm/runtime/model-efficiency.md +201 -0
  1106. package/workflows/cm/runtime/orchestration.md +113 -0
  1107. package/workflows/cm/runtime/project-context.md +37 -0
  1108. package/workflows/cm/runtime/review.md +114 -0
  1109. package/workflows/cm/runtime/task-gates.md +114 -0
  1110. package/workflows/cm/runtime/task-handoff.schema.json +103 -0
  1111. package/workflows/cm/runtime/test-contract.md +212 -0
  1112. package/workflows/cm/runtime/workflow-config.md +115 -0
  1113. package/workflows/cm/runtime/workflow-routing.md +82 -0
  1114. package/workflows/cm/scripts/cm-check-runtime.ps1 +69 -0
  1115. package/workflows/cm/scripts/cm-check-runtime.sh +866 -0
  1116. package/workflows/cm/scripts/cm-log-event.py +1270 -0
  1117. package/workflows/cm/scripts/cm-openai-compatible-call.py +661 -0
  1118. package/workflows/cm/scripts/cm-prd-review-gate.py +319 -0
  1119. package/workflows/cm/scripts/cm-prd-timing.py +272 -0
  1120. package/workflows/cm/scripts/cm-spec-manifest.py +171 -0
  1121. package/workflows/cm/scripts/cm-task-gate.py +760 -0
  1122. package/workflows/cm/scripts/cm-usage-report.py +516 -0
  1123. package/workflows/cm/scripts/cm_workflow_config.py +612 -0
  1124. package/workflows/cm/scripts/scan-public-safety.py +89 -0
  1125. package/workflows/cm/scripts/test-cm-log-event.py +1213 -0
  1126. package/workflows/cm/scripts/test-cm-openai-compatible-call.py +1185 -0
  1127. package/workflows/cm/scripts/test-cm-prd-review-gate.py +243 -0
  1128. package/workflows/cm/scripts/test-cm-prd-timing.py +168 -0
  1129. package/workflows/cm/scripts/test-cm-usage-report.py +584 -0
  1130. package/workflows/cm/scripts/test-shell-compat.sh +338 -0
  1131. package/workflows/cm/scripts/test-spec-manifest.py +220 -0
  1132. package/workflows/cm/scripts/test-task-gate.py +540 -0
  1133. package/workflows/cm/scripts/test-workflow-config.py +394 -0
  1134. package/workflows/cm/scripts/validate-public-repo.py +200 -0
  1135. package/workflows/cm/scripts/validate-test-cases.py +127 -0
  1136. package/workflows/cm/skills/cm-ai/SKILL.md +120 -0
  1137. package/workflows/cm/skills/cm-ai/references/N1-init.md +92 -0
  1138. package/workflows/cm/skills/cm-ai/references/N2-enter-feature.md +38 -0
  1139. package/workflows/cm/skills/cm-ai/references/N3-execute-task.md +99 -0
  1140. package/workflows/cm/skills/cm-ai/references/N4-review.md +96 -0
  1141. package/workflows/cm/skills/cm-ai/references/N5-mark-done.md +107 -0
  1142. package/workflows/cm/skills/cm-ai/references/N6-qa-eval.md +102 -0
  1143. package/workflows/cm/skills/cm-ai/references/N7-context.md +23 -0
  1144. package/workflows/cm/skills/cm-ai/references/N8-finish.md +97 -0
  1145. package/workflows/cm/skills/cm-backend-engineer/SKILL.md +100 -0
  1146. package/workflows/cm/skills/cm-check/SKILL.md +60 -0
  1147. package/workflows/cm/skills/cm-contract-engineer/SKILL.md +136 -0
  1148. package/workflows/cm/skills/cm-database-engineer/SKILL.md +89 -0
  1149. package/workflows/cm/skills/cm-devops-engineer/SKILL.md +137 -0
  1150. package/workflows/cm/skills/cm-doc-syncer/SKILL.md +150 -0
  1151. package/workflows/cm/skills/cm-finance-expert/SKILL.md +85 -0
  1152. package/workflows/cm/skills/cm-fix/SKILL.md +159 -0
  1153. package/workflows/cm/skills/cm-frontend-engineer/SKILL.md +127 -0
  1154. package/workflows/cm/skills/cm-idea/SKILL.md +42 -0
  1155. package/workflows/cm/skills/cm-idea/references/domains/trading.md +97 -0
  1156. package/workflows/cm/skills/cm-idea/references/example-prd.md +92 -0
  1157. package/workflows/cm/skills/cm-idea/references/idea-to-prd.md +282 -0
  1158. package/workflows/cm/skills/cm-init/SKILL.md +158 -0
  1159. package/workflows/cm/skills/cm-miniprogram-engineer/SKILL.md +141 -0
  1160. package/workflows/cm/skills/cm-miniprogram-engineer/references/platform-readiness.md +58 -0
  1161. package/workflows/cm/skills/cm-miniprogram-engineer/references/release-checklist.md +59 -0
  1162. package/workflows/cm/skills/cm-prd/SKILL.md +521 -0
  1163. package/workflows/cm/skills/cm-prd/references/brownfield.md +13 -0
  1164. package/workflows/cm/skills/cm-prd/references/change-mode.md +145 -0
  1165. package/workflows/cm/skills/cm-prd/references/context-scope.md +62 -0
  1166. package/workflows/cm/skills/cm-prd/references/greenfield.md +80 -0
  1167. package/workflows/cm/skills/cm-prd/references/phase-timing.md +60 -0
  1168. package/workflows/cm/skills/cm-prd/references/spec-self-check.md +22 -0
  1169. package/workflows/cm/skills/cm-product-manager/SKILL.md +83 -0
  1170. package/workflows/cm/skills/cm-qa-engineer/SKILL.md +142 -0
  1171. package/workflows/cm/skills/cm-refactor/SKILL.md +209 -0
  1172. package/workflows/cm/skills/cm-test/SKILL.md +259 -0
  1173. package/workflows/cm/skills/cm-ui-engineer/SKILL.md +105 -0
  1174. package/workflows/cm/skills/codebase-context/SKILL.md +489 -0
  1175. package/workflows/cm/skills/darwin-skill/NOTICE.md +26 -0
  1176. package/workflows/cm/skills/darwin-skill/README.md +272 -0
  1177. package/workflows/cm/skills/darwin-skill/SKILL.md +492 -0
  1178. package/workflows/cm/skills/darwin-skill/references/runtime-neutrality.md +68 -0
  1179. package/workflows/cm/skills/darwin-skill/references/skilllens-evidence.md +142 -0
  1180. package/workflows/cm/skills/darwin-skill/scripts/screenshot.mjs +71 -0
  1181. package/workflows/cm/skills/darwin-skill/templates/result-card-dark.html +698 -0
  1182. package/workflows/cm/skills/darwin-skill/templates/result-card-white.html +444 -0
  1183. package/workflows/cm/skills/darwin-skill/templates/result-card.html +616 -0
  1184. package/workflows/cm/skills/external-expert/SKILL.md +250 -0
  1185. package/workflows/cm/templates/arch-reference.md +68 -0
  1186. package/workflows/cm/templates/auto-update/cm-announce.sh +19 -0
  1187. package/workflows/cm/templates/auto-update/cm-update.sh +274 -0
  1188. package/workflows/cm/templates/cm-workflow.yml +52 -0
  1189. package/workflows/cm/templates/dashboard/dashboard.html +153 -0
  1190. package/workflows/cm/templates/dashboard/serve.sh +10 -0
  1191. package/workflows/cm/templates/hooks/pre-commit-cm-task-check +67 -0
  1192. package/workflows/cm/templates/pixel/cm-pixel.html +388 -0
  1193. package/workflows/cm/templates/pixel/cm-pixel.sh +212 -0
  1194. package/workflows/cm/templates/pixel/dev/README.md +20 -0
  1195. package/workflows/cm/templates/pixel/dev/atlas-preview.png +0 -0
  1196. package/workflows/cm/templates/pixel/dev/build.py +55 -0
  1197. package/workflows/cm/templates/pixel/dev/sheets/roguelikeChar_transparent.png +0 -0
  1198. package/workflows/cm/templates/pixel/dev/sheets/roguelikeCity_tilemap.png +0 -0
  1199. package/workflows/cm/templates/pixel/dev/sheets/roguelikeIndoor_transparent.png +0 -0
  1200. package/workflows/cm/templates/pixel/dev/template.html +388 -0
  1201. package/workflows/cm/templates/pixel/serve.sh +12 -0
  1202. package/workflows/cm/templates/refactor/cm-refactor-denies.json +14 -0
  1203. package/workflows/cm/templates/rules/backend-api.md +36 -0
  1204. package/workflows/cm/templates/rules/coding-style.md +44 -0
  1205. package/workflows/cm/templates/rules/database.md +27 -0
  1206. package/workflows/cm/templates/rules/finance.md +32 -0
  1207. package/workflows/cm/templates/rules/frontend.md +32 -0
  1208. package/workflows/cm/templates/rules/git-workflow.md +25 -0
  1209. package/workflows/cm/templates/rules/miniprogram.md +31 -0
  1210. package/workflows/cm/templates/rules/security.md +31 -0
  1211. package/workflows/cm/templates/rules/smart-contract.md +28 -0
  1212. package/workflows/cm/templates/rules/testing.md +36 -0
  1213. package/workflows/cm/templates/statusline/cm-statusline.sh +73 -0
  1214. package/workflows/cm/templates/ui-lens/cm-ui-lens-extract.mjs +55 -0
  1215. package/workflows.lock.json +39 -0
@@ -0,0 +1,866 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ ROOT="$(cd "$(dirname "$0")/.." && pwd)"
5
+ FAILURES=0
6
+
7
+ fail() {
8
+ echo "FAIL: $*" >&2
9
+ FAILURES=$((FAILURES + 1))
10
+ }
11
+
12
+ require_file() {
13
+ [ -f "$ROOT/$1" ] || fail "missing $1"
14
+ }
15
+
16
+ find_python() {
17
+ local candidate
18
+ for candidate in python3 python; do
19
+ if command -v "$candidate" >/dev/null 2>&1 &&
20
+ "$candidate" -c 'import sys; raise SystemExit(sys.version_info < (3, 9))' >/dev/null 2>&1; then
21
+ command -v "$candidate"
22
+ return 0
23
+ fi
24
+ done
25
+ return 1
26
+ }
27
+
28
+ route_external_expert_mode() {
29
+ local pro="$1"
30
+ local extra_high="$2"
31
+ local high="$3"
32
+ local strict_pro="$4"
33
+
34
+ if [ "$pro" = "true" ]; then
35
+ echo "selected=Pro|external_used=true|outcome=send"
36
+ elif [ "$strict_pro" = "true" ]; then
37
+ echo "selected=none|external_used=false|outcome=blocked"
38
+ elif [ "$extra_high" = "true" ]; then
39
+ echo "selected=Extra High|external_used=true|outcome=send"
40
+ elif [ "$high" = "true" ]; then
41
+ echo "selected=High|external_used=true|outcome=send"
42
+ else
43
+ echo "selected=none|external_used=false|outcome=skipped"
44
+ fi
45
+ }
46
+
47
+ assert_external_expert_route() {
48
+ local expected="$1"
49
+ shift
50
+ local actual
51
+ actual="$(route_external_expert_mode "$@")"
52
+ [ "$actual" = "$expected" ] ||
53
+ fail "external-expert route expected '$expected', got '$actual'"
54
+ }
55
+
56
+ route_external_expert_task() {
57
+ local explicit_mode="$1"
58
+ local activation="$2"
59
+ local has_local_work="$3"
60
+ local has_consequential_reasoning="$4"
61
+ local has_complex_reasoning="$5"
62
+ local mode
63
+ local source
64
+
65
+ if [ "$explicit_mode" != "none" ]; then
66
+ mode="$explicit_mode"
67
+ source="explicit-directive"
68
+ elif [ "$activation" = "expert" ]; then
69
+ if [ "$has_consequential_reasoning" = "true" ]; then
70
+ mode="verify"
71
+ else
72
+ mode="consult"
73
+ fi
74
+ source="explicit-expert-request"
75
+ elif [ "$activation" = "auto" ]; then
76
+ if [ "$has_consequential_reasoning" = "true" ]; then
77
+ mode="verify"
78
+ elif [ "$has_complex_reasoning" = "true" ]; then
79
+ mode="consult"
80
+ else
81
+ mode="local"
82
+ fi
83
+ source="auto-classifier"
84
+ else
85
+ mode="local"
86
+ source="default-explicit"
87
+ fi
88
+
89
+ case "$mode" in
90
+ local) echo "mode=local|source=$source|external_scope=none|local_work=$has_local_work" ;;
91
+ handoff) echo "mode=handoff|source=$source|external_scope=explicit-handoff|local_work=$has_local_work" ;;
92
+ *) echo "mode=$mode|source=$source|external_scope=reasoning-only|local_work=$has_local_work" ;;
93
+ esac
94
+ }
95
+
96
+ assert_external_expert_task_route() {
97
+ local expected="$1"
98
+ shift
99
+ local actual
100
+ actual="$(route_external_expert_task "$@")"
101
+ [ "$actual" = "$expected" ] ||
102
+ fail "external-expert task route expected '$expected', got '$actual'"
103
+ }
104
+
105
+ print_external_expert_routing_fixtures() {
106
+ echo "task explicit-local: $(route_external_expert_task local auto true true true)"
107
+ echo "task explicit-consult: $(route_external_expert_task consult auto true true false)"
108
+ echo "task explicit-verify: $(route_external_expert_task verify auto true false true)"
109
+ echo "task explicit-handoff: $(route_external_expert_task handoff auto true true true)"
110
+ echo "task explicit-expert-verify: $(route_external_expert_task none expert false true false)"
111
+ echo "task explicit-expert-consult: $(route_external_expert_task none expert false false false)"
112
+ echo "task auto-local: $(route_external_expert_task none auto true false false)"
113
+ echo "task auto-consult: $(route_external_expert_task none auto false false true)"
114
+ echo "task auto-verify: $(route_external_expert_task none auto false true false)"
115
+ echo "task auto-verify-over-consult: $(route_external_expert_task none auto false true true)"
116
+ echo "task mixed-local-plus-consult: $(route_external_expert_task none auto true false true)"
117
+ echo "task mixed-local-plus-verify: $(route_external_expert_task none auto true true false)"
118
+ echo "task auto-default-local: $(route_external_expert_task none auto false false false)"
119
+ echo "task default-explicit-local: $(route_external_expert_task none none false true true)"
120
+ echo "model preferred: $(route_external_expert_mode true true true false)"
121
+ echo "model extra-high: $(route_external_expert_mode false true true false)"
122
+ echo "model high: $(route_external_expert_mode false false true false)"
123
+ echo "model skipped: $(route_external_expert_mode false false false false)"
124
+ echo "model strict-pro: $(route_external_expert_mode false true true true)"
125
+ }
126
+
127
+ assert_external_expert_task_route \
128
+ "mode=local|source=explicit-directive|external_scope=none|local_work=true" \
129
+ local auto true true true
130
+ assert_external_expert_task_route \
131
+ "mode=consult|source=explicit-directive|external_scope=reasoning-only|local_work=true" \
132
+ consult auto true true false
133
+ assert_external_expert_task_route \
134
+ "mode=verify|source=explicit-directive|external_scope=reasoning-only|local_work=true" \
135
+ verify auto true false true
136
+ assert_external_expert_task_route \
137
+ "mode=handoff|source=explicit-directive|external_scope=explicit-handoff|local_work=true" \
138
+ handoff auto true true true
139
+ assert_external_expert_task_route \
140
+ "mode=verify|source=explicit-expert-request|external_scope=reasoning-only|local_work=false" \
141
+ none expert false true false
142
+ assert_external_expert_task_route \
143
+ "mode=consult|source=explicit-expert-request|external_scope=reasoning-only|local_work=false" \
144
+ none expert false false false
145
+ assert_external_expert_task_route \
146
+ "mode=local|source=auto-classifier|external_scope=none|local_work=true" \
147
+ none auto true false false
148
+ assert_external_expert_task_route \
149
+ "mode=consult|source=auto-classifier|external_scope=reasoning-only|local_work=false" \
150
+ none auto false false true
151
+ assert_external_expert_task_route \
152
+ "mode=verify|source=auto-classifier|external_scope=reasoning-only|local_work=false" \
153
+ none auto false true false
154
+ assert_external_expert_task_route \
155
+ "mode=verify|source=auto-classifier|external_scope=reasoning-only|local_work=false" \
156
+ none auto false true true
157
+ assert_external_expert_task_route \
158
+ "mode=consult|source=auto-classifier|external_scope=reasoning-only|local_work=true" \
159
+ none auto true false true
160
+ assert_external_expert_task_route \
161
+ "mode=verify|source=auto-classifier|external_scope=reasoning-only|local_work=true" \
162
+ none auto true true false
163
+ assert_external_expert_task_route \
164
+ "mode=local|source=auto-classifier|external_scope=none|local_work=false" \
165
+ none auto false false false
166
+ assert_external_expert_task_route \
167
+ "mode=local|source=default-explicit|external_scope=none|local_work=false" \
168
+ none none false true true
169
+
170
+ PROJECT_PATH="$PWD"
171
+ CONFIG_PATH=""
172
+ REQUESTED_MODE=""
173
+ PRINT_EFFECTIVE=0
174
+ while [ "$#" -gt 0 ]; do
175
+ case "$1" in
176
+ --project)
177
+ [ "$#" -ge 2 ] || { echo "Usage: $0 [--project PATH] [--config PATH] [--print-effective] [--routing-fixtures|--log-fixtures]" >&2; exit 2; }
178
+ PROJECT_PATH="$2"
179
+ shift 2
180
+ ;;
181
+ --config)
182
+ [ "$#" -ge 2 ] || { echo "Usage: $0 [--project PATH] [--config PATH] [--print-effective] [--routing-fixtures|--log-fixtures]" >&2; exit 2; }
183
+ CONFIG_PATH="$2"
184
+ shift 2
185
+ ;;
186
+ --routing-fixtures|--log-fixtures)
187
+ [ -z "$REQUESTED_MODE" ] || { echo "Usage: $0 [--project PATH] [--config PATH] [--print-effective] [--routing-fixtures|--log-fixtures]" >&2; exit 2; }
188
+ REQUESTED_MODE="$1"
189
+ shift
190
+ ;;
191
+ --print-effective)
192
+ PRINT_EFFECTIVE=1
193
+ shift
194
+ ;;
195
+ *)
196
+ echo "Usage: $0 [--project PATH] [--config PATH] [--print-effective] [--routing-fixtures|--log-fixtures]" >&2
197
+ exit 2
198
+ ;;
199
+ esac
200
+ done
201
+
202
+ case "$REQUESTED_MODE" in
203
+ "") ;;
204
+ --routing-fixtures)
205
+ if [ "$FAILURES" -ne 0 ]; then
206
+ echo "external-expert routing fixtures: FAILED ($FAILURES)" >&2
207
+ exit 1
208
+ fi
209
+ print_external_expert_routing_fixtures
210
+ exit 0
211
+ ;;
212
+ --log-fixtures)
213
+ if python_bin="$(find_python)"; then
214
+ "$python_bin" "$ROOT/scripts/test-cm-log-event.py" &&
215
+ "$python_bin" "$ROOT/scripts/test-cm-usage-report.py" &&
216
+ "$python_bin" "$ROOT/scripts/test-cm-openai-compatible-call.py"
217
+ exit $?
218
+ fi
219
+ echo "cm global log fixture: FAILED (Python 3 not found)" >&2
220
+ exit 1
221
+ ;;
222
+ esac
223
+
224
+ PYTHON_BIN=""
225
+ if PYTHON_BIN="$(find_python)"; then
226
+ :
227
+ else
228
+ PYTHON_BIN=""
229
+ fi
230
+
231
+ MODE="unknown"
232
+ if [ -f "$ROOT/.codex-plugin/plugin.json" ]; then
233
+ MODE="plugin"
234
+ require_file "VERSION"
235
+ require_file "AGENTS.md"
236
+ require_file "install-codex.sh"
237
+ elif [ -f "$ROOT/templates/cm-VERSION" ]; then
238
+ MODE="claude-compat"
239
+ else
240
+ fail "cannot determine installation mode (missing plugin manifest and templates/cm-VERSION)"
241
+ fi
242
+ require_file "runtime/project-context.md"
243
+ require_file "runtime/external-expert.md"
244
+ require_file "runtime/logging.md"
245
+ require_file "runtime/model-efficiency.md"
246
+ require_file "runtime/orchestration.md"
247
+ require_file "runtime/review.md"
248
+ require_file "runtime/task-gates.md"
249
+ require_file "runtime/task-handoff.schema.json"
250
+ require_file "runtime/test-contract.md"
251
+ require_file "runtime/workflow-config.md"
252
+ require_file "runtime/workflow-routing.md"
253
+ require_file "scripts/cm-check-runtime.ps1"
254
+ require_file "scripts/cm-log-event.py"
255
+ require_file "scripts/test-cm-log-event.py"
256
+ require_file "scripts/cm-prd-timing.py"
257
+ require_file "scripts/test-cm-prd-timing.py"
258
+ require_file "scripts/cm-usage-report.py"
259
+ require_file "scripts/test-cm-usage-report.py"
260
+ require_file "scripts/cm-openai-compatible-call.py"
261
+ require_file "scripts/test-cm-openai-compatible-call.py"
262
+ require_file "scripts/cm-task-gate.py"
263
+ require_file "scripts/test-task-gate.py"
264
+ require_file "scripts/cm_workflow_config.py"
265
+ require_file "scripts/test-workflow-config.py"
266
+ require_file "scripts/validate-test-cases.py"
267
+ require_file "scripts/cm-spec-manifest.py"
268
+ require_file "scripts/test-spec-manifest.py"
269
+ require_file "scripts/cm-prd-review-gate.py"
270
+ require_file "scripts/test-cm-prd-review-gate.py"
271
+
272
+ if [ -n "$PYTHON_BIN" ]; then
273
+ "$PYTHON_BIN" "$ROOT/scripts/test-cm-log-event.py" ||
274
+ fail "cm global log fixture failed"
275
+ "$PYTHON_BIN" "$ROOT/scripts/test-cm-prd-timing.py" ||
276
+ fail "cm-prd timing fixture failed"
277
+ "$PYTHON_BIN" "$ROOT/scripts/test-cm-usage-report.py" ||
278
+ fail "cm usage report fixture failed"
279
+ "$PYTHON_BIN" "$ROOT/scripts/test-cm-openai-compatible-call.py" ||
280
+ fail "cm openai-compatible adapter fixture failed"
281
+ "$PYTHON_BIN" "$ROOT/scripts/test-workflow-config.py" ||
282
+ fail "cm workflow config fixture failed"
283
+ "$PYTHON_BIN" "$ROOT/scripts/test-task-gate.py" ||
284
+ fail "cm task gate fixture failed"
285
+ "$PYTHON_BIN" "$ROOT/scripts/test-spec-manifest.py" ||
286
+ fail "cm spec manifest fixture failed"
287
+ "$PYTHON_BIN" "$ROOT/scripts/test-cm-prd-review-gate.py" ||
288
+ fail "cm-prd review recovery fixture failed"
289
+ if [ -n "$PROJECT_PATH" ]; then
290
+ if [ -n "$CONFIG_PATH" ]; then
291
+ if [ "$PRINT_EFFECTIVE" -eq 1 ]; then
292
+ "$PYTHON_BIN" "$ROOT/scripts/cm_workflow_config.py" --project "$PROJECT_PATH" --config "$CONFIG_PATH" --print-effective ||
293
+ fail "project workflow config validation failed"
294
+ else
295
+ "$PYTHON_BIN" "$ROOT/scripts/cm_workflow_config.py" --project "$PROJECT_PATH" --config "$CONFIG_PATH" ||
296
+ fail "project workflow config validation failed"
297
+ fi
298
+ elif [ "$PRINT_EFFECTIVE" -eq 1 ]; then
299
+ "$PYTHON_BIN" "$ROOT/scripts/cm_workflow_config.py" --project "$PROJECT_PATH" --print-effective ||
300
+ fail "project workflow config validation failed"
301
+ else
302
+ "$PYTHON_BIN" "$ROOT/scripts/cm_workflow_config.py" --project "$PROJECT_PATH" ||
303
+ fail "project workflow config validation failed"
304
+ fi
305
+ fi
306
+ else
307
+ fail "Python 3 is required for CM global logging"
308
+ fi
309
+
310
+ if [ "$MODE" = "plugin" ]; then
311
+ require_file "docs/user-guide.md"
312
+ require_file "assets/docs/user-guide-hero.svg"
313
+ else
314
+ require_file "cm-workflow/docs/user-guide.md"
315
+ require_file "cm-workflow/assets/docs/user-guide-hero.svg"
316
+ require_file "cm-workflow/README.md"
317
+ fi
318
+
319
+ for asset in \
320
+ templates/arch-reference.md \
321
+ templates/cm-workflow.yml \
322
+ templates/hooks/pre-commit-cm-task-check \
323
+ templates/pixel/cm-pixel.sh \
324
+ templates/pixel/serve.sh \
325
+ templates/refactor/cm-refactor-denies.json \
326
+ templates/rules/finance.md \
327
+ templates/ui-lens/cm-ui-lens-extract.mjs; do
328
+ require_file "$asset"
329
+ done
330
+
331
+ require_file "skills/external-expert/SKILL.md"
332
+ grep -q "runtime/external-expert.md" "$ROOT/skills/external-expert/SKILL.md" ||
333
+ fail "external-expert does not reference the shared contract"
334
+ grep -Fq "Version 1 is on-request only" "$ROOT/runtime/external-expert.md" ||
335
+ fail "external-expert is not explicitly on-request only"
336
+ grep -Fq 'The default activation policy is `EXPLICIT`' "$ROOT/runtime/external-expert.md" ||
337
+ fail "external-expert no longer defaults to explicit activation"
338
+ grep -Fq 'explicitly enable `AUTO` for the current' "$ROOT/runtime/external-expert.md" ||
339
+ fail "external-expert AUTO is not invocation-scoped"
340
+ grep -Fq "AUTO authorizes task classification, not local-file transmission" "$ROOT/runtime/external-expert.md" ||
341
+ fail "external-expert AUTO can imply local-file approval"
342
+ grep -Fq 'AUTO never selects `HANDOFF`' "$ROOT/runtime/external-expert.md" ||
343
+ fail "external-expert AUTO can silently hand off"
344
+ grep -Fq "Code inspection, editing, commands, builds, test execution, browser QA, Git" "$ROOT/runtime/external-expert.md" ||
345
+ fail "external-expert mixed-task execution can leave the local runtime"
346
+ grep -Fq "activation_policy: explicit | invocation-auto" "$ROOT/runtime/external-expert.md" &&
347
+ grep -Fq "routing_mode: consult | verify | handoff" "$ROOT/runtime/external-expert.md" &&
348
+ grep -Fq "routing_source: explicit-directive | explicit-expert-request | auto-classifier" "$ROOT/runtime/external-expert.md" &&
349
+ grep -Fq "external_scope: reasoning-only | explicit-handoff" "$ROOT/runtime/external-expert.md" &&
350
+ grep -Fq "local_execution_retained: true" "$ROOT/runtime/external-expert.md" ||
351
+ fail "external-expert evidence does not record task routing"
352
+ grep -Fq "canonical absolute path of every individual" "$ROOT/runtime/external-expert.md" ||
353
+ fail "external-expert does not require canonical per-file approval"
354
+ grep -Fq "fresh approval reply in the same external-expert" "$ROOT/runtime/external-expert.md" ||
355
+ fail "external-expert can reuse stale local-file approval"
356
+ grep -Fq "globs, and unresolved symlinks are not valid manifest entries" "$ROOT/runtime/external-expert.md" ||
357
+ fail "external-expert path manifest can expand after approval"
358
+ grep -Fq "upload or transmit any archive" "$ROOT/runtime/external-expert.md" ||
359
+ fail "external-expert does not prohibit all archive transmission"
360
+ grep -Fq "encoded/archive-derived bulk context" "$ROOT/runtime/external-expert.md" ||
361
+ fail "external-expert does not prohibit encoded or archive-derived bulk context"
362
+ grep -q "n4_eligible: false" "$ROOT/runtime/external-expert.md" ||
363
+ fail "external-expert evidence does not declare N4 ineligibility"
364
+ grep -q "never satisfies N4" "$ROOT/runtime/external-expert.md" ||
365
+ fail "external-expert can be mistaken for independent review"
366
+ grep -Fq "Version 1 external-expert evidence never satisfies" "$ROOT/runtime/review.md" ||
367
+ fail "independent review contract does not exclude external-expert evidence"
368
+ tr -d '\r' < "$ROOT/runtime/review.md" | tr '\n' ' ' |
369
+ grep -Fq "A conversation that contributed to the plan, diagnosis, tests, or patch is an authoring channel" ||
370
+ fail "independent review contract does not preserve all external authoring categories"
371
+ grep -Fq '{SPECS_DIR}/.external/' "$ROOT/runtime/external-expert.md" ||
372
+ fail "external-expert has no isolated evidence location"
373
+ grep -q "manual copy/paste" "$ROOT/runtime/external-expert.md" ||
374
+ fail "external-expert has no manual transport fallback"
375
+ grep -q "dispatch_state: ambiguous" "$ROOT/runtime/external-expert.md" ||
376
+ fail "external-expert has no crash-ambiguous dispatch state"
377
+ grep -Fq "URL alone as dispatch evidence" "$ROOT/runtime/external-expert.md" ||
378
+ fail "external-expert can mistake a conversation URL for dispatch evidence"
379
+ grep -Fq "Set \`dispatch_state: ambiguous\` and do not resend automatically" "$ROOT/runtime/external-expert.md" ||
380
+ fail "external-expert ambiguous recovery can resend automatically"
381
+ grep -Fq "CM does not claim exactly-once" "$ROOT/runtime/external-expert.md" ||
382
+ fail "external-expert does not disclose dispatch guarantee limits"
383
+ grep -Fq "Maximum two correction rounds after the initial response" "$ROOT/runtime/external-expert.md" ||
384
+ fail "external-expert correction round accounting is ambiguous"
385
+ grep -Fq "Pro → Extra High → High → SKIPPED" "$ROOT/runtime/external-expert.md" ||
386
+ fail "external-expert model fallback order is missing"
387
+ grep -Fq "a Pro subscription/account badge is not proof" "$ROOT/runtime/external-expert.md" ||
388
+ fail "external-expert can mistake subscription status for selected mode"
389
+ grep -Fq "does not require another user confirmation" "$ROOT/runtime/external-expert.md" ||
390
+ fail "external-expert model fallback can interrupt for confirmation"
391
+ grep -Fq "Medium and Instant are never external-expert fallback modes" "$ROOT/runtime/external-expert.md" ||
392
+ fail "external-expert can silently fall back to Medium or Instant"
393
+ grep -Fq 'use `strict-Pro`: missing Pro records `BLOCKED`, sends nothing' "$ROOT/runtime/external-expert.md" ||
394
+ fail "external-expert has no explicit Pro-only override"
395
+ grep -Fq "Never reroute, resend, or start a" "$ROOT/runtime/external-expert.md" ||
396
+ fail "external-expert can reroute after dispatch"
397
+ grep -Fq "dispatch_state: intent-recorded | response-observed | completed | ambiguous | skipped | blocked" "$ROOT/runtime/external-expert.md" ||
398
+ fail "external-expert evidence cannot represent skipped or blocked routing"
399
+ grep -Fq "external_used: true | false" "$ROOT/runtime/external-expert.md" ||
400
+ fail "external-expert evidence cannot distinguish skipped from used"
401
+ grep -Fq 'selected_mode: Pro | Extra High | High | none' "$ROOT/runtime/external-expert.md" &&
402
+ grep -Fq 'fallback_reason: none | pro-unavailable | pro-and-extra-high-unavailable | all-approved-modes-unavailable | strict-pro-unavailable' "$ROOT/runtime/external-expert.md" ||
403
+ fail "external-expert evidence does not encode the full routing decision"
404
+ grep -Fq "Pro → Extra High → High → SKIPPED" "$ROOT/skills/external-expert/SKILL.md" ||
405
+ fail "external-expert Skill does not execute the shared mode policy"
406
+ grep -Fq '$external-expert --auto' "$ROOT/skills/external-expert/SKILL.md" ||
407
+ fail "external-expert Skill has no invocation-scoped AUTO entry"
408
+ grep -Fq "单独安装的全局智能分流不能替用户开启 CM AUTO" "$ROOT/skills/external-expert/SKILL.md" ||
409
+ fail "external-expert Skill can inherit unauthorized global AUTO"
410
+ grep -Fq "AUTO 选中 \`LOCAL\` 时不启动浏览器" "$ROOT/skills/external-expert/SKILL.md" ||
411
+ fail "external-expert LOCAL route can open the browser"
412
+ grep -Fq -- "--routing-fixtures" "$ROOT/scripts/cm-check-runtime.sh" ||
413
+ fail "external-expert routing fixtures have no reproducible entry"
414
+ grep -q "不因.*自动外发本地文件" "$ROOT/skills/external-expert/SKILL.md" ||
415
+ fail "external-expert can silently send local files"
416
+ grep -Fq '${CM_WORKFLOW_LOG_HOME:-~/.cm-workflow/logs}' "$ROOT/runtime/logging.md" ||
417
+ fail "global logging contract has no stable default root"
418
+ grep -Fq "specs log is the portable recovery and audit source of truth" "$ROOT/runtime/logging.md" ||
419
+ fail "global logging can displace the project source of truth"
420
+ grep -Fq "global-mirror failure" "$ROOT/runtime/logging.md" ||
421
+ fail "global logging has no project-side degradation rule"
422
+ grep -Fq "Never log:" "$ROOT/runtime/logging.md" ||
423
+ fail "global logging contract has no privacy boundary"
424
+ grep -Fq 'event-based. Do not add a background heartbeat' "$ROOT/runtime/logging.md" ||
425
+ fail "global logging contract can require a background heartbeat"
426
+ grep -Fq '`resource/acquired`' "$ROOT/runtime/logging.md" &&
427
+ grep -Fq '`resource/released`' "$ROOT/runtime/logging.md" &&
428
+ grep -Fq '`resource/cleanup_failed`' "$ROOT/runtime/logging.md" ||
429
+ fail "temporary resource lifecycle is not fully paired"
430
+ grep -Fq '`requested_model`, `effective_model`' "$ROOT/runtime/logging.md" ||
431
+ fail "model routing identity is not explicit in the logging contract"
432
+ grep -Fq '`test_run/case_start`' "$ROOT/skills/cm-ai/references/N3-execute-task.md" &&
433
+ grep -Fq '`test_run/case_start`' "$ROOT/skills/cm-qa-engineer/SKILL.md" ||
434
+ fail "long-running test case checkpoints are not wired into N3 and QA"
435
+ grep -Fq '`resource/acquired`' "$ROOT/skills/cm-ai/references/N8-finish.md" &&
436
+ grep -Fq '`resource/released`' "$ROOT/skills/cm-ai/references/N8-finish.md" &&
437
+ grep -Fq '不得写 `run_done`' "$ROOT/skills/cm-ai/references/N8-finish.md" ||
438
+ fail "N8 does not block completion on unreleased temporary resources"
439
+ grep -Fq 'RESOURCE_GUARDED_EVENTS = TERMINAL_EVENTS | {"task_done"}' \
440
+ "$ROOT/scripts/cm-log-event.py" &&
441
+ grep -Fq 'completion blocked by unclosed resources' \
442
+ "$ROOT/scripts/cm-log-event.py" ||
443
+ fail "log writer does not enforce resource closure on completion"
444
+ grep -Fq 'TEST_RUN_GUARDED_EVENTS = TERMINAL_EVENTS | {"task_done"}' \
445
+ "$ROOT/scripts/cm-log-event.py" &&
446
+ grep -Fq 'completion blocked by incomplete test_run' \
447
+ "$ROOT/scripts/cm-log-event.py" ||
448
+ fail "log writer does not enforce test_run closure on completion"
449
+ grep -Fq '本 Skill 不重复写调用级边界' \
450
+ "$ROOT/skills/cm-qa-engineer/SKILL.md" &&
451
+ grep -Fq 'standalone `$cm-test` 不创建该文件' \
452
+ "$ROOT/skills/cm-qa-engineer/SKILL.md" ||
453
+ fail "QA log ownership or standalone cm-test status boundary is not explicit"
454
+ grep -Fq "sensitive log field is forbidden" "$ROOT/scripts/cm-log-event.py" ||
455
+ fail "global log writer does not reject sensitive field names"
456
+ grep -Fq -- "--log-fixtures" "$ROOT/scripts/cm-check-runtime.sh" ||
457
+ fail "global logging fixtures have no reproducible entry"
458
+ grep -Fq 'missing_usage_policy": "unavailable-not-guessed"' \
459
+ "$ROOT/scripts/cm-usage-report.py" ||
460
+ fail "usage report can guess missing model usage"
461
+ grep -Fq 'unresolved_claim_policy": "reported-not-counted"' \
462
+ "$ROOT/scripts/cm-usage-report.py" ||
463
+ fail "usage report silently drops unresolved model-call claims"
464
+ grep -Fq 'model_usage contains unsupported fields' \
465
+ "$ROOT/scripts/cm-log-event.py" ||
466
+ fail "model usage logs have no strict field allowlist"
467
+ grep -Fq 'model_usage requires a valid call_id' \
468
+ "$ROOT/scripts/cm-log-event.py" ||
469
+ fail "model usage calls have no stable idempotency key"
470
+ grep -Fq 'call_id already claimed; use a new call_id' \
471
+ "$ROOT/scripts/cm-openai-compatible-call.py" &&
472
+ grep -Fq '"model_call"' "$ROOT/scripts/cm-openai-compatible-call.py" &&
473
+ grep -Fq 'model_call events require phase claimed' "$ROOT/scripts/cm-log-event.py" ||
474
+ fail "managed model calls are not atomically claimed before HTTP"
475
+ grep -Fq 'API key contains unsupported characters' \
476
+ "$ROOT/scripts/cm-openai-compatible-call.py" &&
477
+ grep -Fq 'dynamic_packet.{field} must match --{field}' \
478
+ "$ROOT/scripts/cm-openai-compatible-call.py" &&
479
+ grep -Fq 'return 4' "$ROOT/scripts/cm-openai-compatible-call.py" ||
480
+ fail "managed model-call failure boundaries are incomplete"
481
+ grep -Fq 'openai-compatible requires source api' \
482
+ "$ROOT/scripts/cm_workflow_config.py" ||
483
+ fail "openai-compatible routes can be mislabeled as local"
484
+ grep -Fq 'CM_OPENAI_COMPATIBLE_ENABLED' \
485
+ "$ROOT/scripts/cm-openai-compatible-call.py" &&
486
+ grep -Fq 'NoRedirectHandler' "$ROOT/scripts/cm-openai-compatible-call.py" &&
487
+ grep -Fq 'ProxyHandler({})' "$ROOT/scripts/cm-openai-compatible-call.py" &&
488
+ grep -Fq 'managed-adapter' "$ROOT/runtime/workflow-routing.md" &&
489
+ grep -Fq 'adapter == "openai-compatible"' "$ROOT/scripts/cm_workflow_config.py" ||
490
+ fail "openai-compatible route is not wired to the managed call boundary"
491
+ grep -Fq 'identifies a callable boundary, not proof that a call occurred' \
492
+ "$ROOT/runtime/review.md" ||
493
+ fail "managed adapter route metadata can be mistaken for call evidence"
494
+ grep -Fq '"outcomes": {outcome: 0 for outcome in OUTCOME_ORDER}' \
495
+ "$ROOT/scripts/cm-usage-report.py" ||
496
+ fail "usage report does not aggregate call outcomes"
497
+ grep -Fq 'reducing requirements, tests, independent review, approval, or evidence' \
498
+ "$ROOT/runtime/model-efficiency.md" ||
499
+ fail "model efficiency can weaken quality gates"
500
+ grep -Fq 'A Skill that cannot see the call boundary' \
501
+ "$ROOT/runtime/model-efficiency.md" ||
502
+ fail "model efficiency can fabricate usage"
503
+
504
+ for consumer in \
505
+ skills/cm-prd/SKILL.md \
506
+ skills/cm-ai/SKILL.md \
507
+ skills/cm-fix/SKILL.md \
508
+ skills/cm-refactor/SKILL.md \
509
+ skills/cm-test/SKILL.md; do
510
+ grep -q "runtime/model-efficiency.md" "$ROOT/$consumer" ||
511
+ fail "model efficiency contract is not wired into $consumer"
512
+ done
513
+
514
+ for consumer in \
515
+ skills/cm-prd/SKILL.md \
516
+ skills/cm-ai/SKILL.md \
517
+ skills/cm-fix/SKILL.md \
518
+ skills/cm-refactor/SKILL.md \
519
+ skills/cm-test/SKILL.md \
520
+ skills/external-expert/SKILL.md; do
521
+ grep -q "runtime/logging.md" "$ROOT/$consumer" ||
522
+ fail "global logging contract is not wired into $consumer"
523
+ done
524
+ for consumer in \
525
+ skills/cm-prd/SKILL.md \
526
+ skills/cm-ai/references/N8-finish.md \
527
+ skills/cm-fix/SKILL.md \
528
+ skills/cm-refactor/SKILL.md \
529
+ skills/cm-test/SKILL.md \
530
+ skills/external-expert/SKILL.md; do
531
+ grep -q "run_done" "$ROOT/$consumer" ||
532
+ fail "terminal run_done is not wired into $consumer"
533
+ done
534
+
535
+ assert_external_expert_route "selected=Pro|external_used=true|outcome=send" true true true false
536
+ assert_external_expert_route "selected=Extra High|external_used=true|outcome=send" false true true false
537
+ assert_external_expert_route "selected=High|external_used=true|outcome=send" false false true false
538
+ assert_external_expert_route "selected=none|external_used=false|outcome=skipped" false false false false
539
+ assert_external_expert_route "selected=none|external_used=false|outcome=blocked" false true true true
540
+
541
+ for consumer in \
542
+ skills/cm-idea/SKILL.md \
543
+ skills/cm-prd/SKILL.md \
544
+ skills/cm-ai/SKILL.md \
545
+ skills/cm-fix/SKILL.md \
546
+ skills/cm-refactor/SKILL.md \
547
+ skills/cm-test/SKILL.md; do
548
+ grep -q "runtime/external-expert.md" "$ROOT/$consumer" ||
549
+ fail "external-expert contract is not wired into $consumer"
550
+ grep -q "AUTO" "$ROOT/$consumer" ||
551
+ fail "external-expert AUTO routing is not wired into $consumer"
552
+ done
553
+
554
+ for name in cm-idea cm-init cm-prd cm-ai cm-test cm-fix cm-refactor cm-check; do
555
+ require_file "skills/$name/SKILL.md"
556
+ require_file "compat/claude-commands/$name.md"
557
+ wrapper="$ROOT/compat/claude-commands/$name.md"
558
+ if [ -f "$wrapper" ]; then
559
+ grep -q "skills/$name/SKILL.md" "$wrapper" || fail "legacy wrapper does not delegate to $name"
560
+ [ "$(wc -l < "$wrapper" | tr -d ' ')" -le 8 ] || fail "legacy wrapper is not thin: compat/claude-commands/$name.md"
561
+ fi
562
+ done
563
+
564
+ for reference in \
565
+ skills/cm-idea/references/idea-to-prd.md \
566
+ skills/cm-idea/references/example-prd.md \
567
+ skills/cm-idea/references/domains/trading.md; do
568
+ require_file "$reference"
569
+ done
570
+ grep -q "references/idea-to-prd.md" "$ROOT/skills/cm-idea/SKILL.md" ||
571
+ fail "cm-idea does not delegate to its internal interview reference"
572
+
573
+ if grep -Fq '二开且修改存量模块(方案错误会伤及老功能)' \
574
+ "$ROOT/skills/cm-prd/SKILL.md"; then
575
+ fail "cm-prd still sends every brownfield edit through full design review"
576
+ fi
577
+ grep -Fq '仅修改存量模块不再单独触发本步' \
578
+ "$ROOT/skills/cm-prd/SKILL.md" &&
579
+ grep -Fq '独立规格审查(方案 + 任务拆分)' \
580
+ "$ROOT/skills/cm-prd/SKILL.md" &&
581
+ grep -Fq '跳过(低风险,并入独立规格审查)' \
582
+ "$ROOT/skills/cm-prd/SKILL.md" ||
583
+ fail "cm-prd low-risk design review merge is not fully wired"
584
+
585
+ prd_design_review_section=$(sed -n '/^### Step 9\.5:/,/^### Step 10:/p' \
586
+ "$ROOT/skills/cm-prd/SKILL.md")
587
+ prd_spec_review_section=$(sed -n '/^### Step 10\.6:/,/^### Step 11:/p' \
588
+ "$ROOT/skills/cm-prd/SKILL.md")
589
+ [ "$(printf '%s' "$prd_design_review_section" | grep -Fc 'ROUND_LIMIT=1')" -eq 1 ] &&
590
+ [ "$(printf '%s' "$prd_spec_review_section" | grep -Fc 'ROUND_LIMIT=1')" -eq 1 ] &&
591
+ printf '%s' "$prd_design_review_section" | grep -Fq '后续 10.5 自检' &&
592
+ printf '%s' "$prd_spec_review_section" | grep -Fq '重跑一次 10.5 自检' &&
593
+ printf '%s' "$prd_design_review_section" | grep -Fq '禁止 review → 修正 → 再 review' &&
594
+ printf '%s' "$prd_spec_review_section" | grep -Fq '禁止 review → 修正 → 再 review' &&
595
+ printf '%s' "$prd_design_review_section" | grep -Fq '包括 `self-degraded`' &&
596
+ printf '%s' "$prd_spec_review_section" | grep -Fq '包括 `self-degraded`' &&
597
+ printf '%s' "$prd_design_review_section" | grep -Fq '不得生成 `design-r2.md`' &&
598
+ printf '%s' "$prd_spec_review_section" | grep -Fq '不得生成 `split-r2.md`' &&
599
+ grep -Fq 'cm-prd Step 9.5/10.6 固定为一次审查调用' \
600
+ "$ROOT/runtime/review.md" &&
601
+ grep -Fq 'The rules in this section apply to N4 reviews of implemented task diffs.' \
602
+ "$ROOT/runtime/review.md" &&
603
+ grep -Fq 'Maximum two review rounds per task.' "$ROOT/runtime/review.md" &&
604
+ grep -Fq 'reviewer/independent/at/scope' "$ROOT/runtime/review.md" ||
605
+ fail "cm-prd pre-implementation reviews are not mechanically limited to one round"
606
+ printf '%s' "$prd_design_review_section" | grep -Fq 'cm-prd-review-gate.py inspect --stage design' &&
607
+ printf '%s' "$prd_spec_review_section" | grep -Fq 'cm-prd-review-gate.py inspect --stage split' &&
608
+ printf '%s' "$prd_design_review_section" | grep -Fq 'resume_disposition' &&
609
+ printf '%s' "$prd_spec_review_section" | grep -Fq 'resume_disposition' &&
610
+ grep -Fq 'r1 内容哈希漂移' "$ROOT/runtime/review.md" ||
611
+ fail "cm-prd single-round reviews have no crash-safe disposition recovery gate"
612
+
613
+ require_file "skills/cm-prd/references/context-scope.md"
614
+ grep -Fq 'references/context-scope.md' "$ROOT/skills/cm-prd/SKILL.md" &&
615
+ grep -Fq 'CONTEXT_SCOPE=targeted|full' "$ROOT/skills/cm-prd/SKILL.md" &&
616
+ grep -Fq 'decision/context_scope' "$ROOT/skills/cm-prd/SKILL.md" &&
617
+ grep -Fq 'targeted_to_full' "$ROOT/skills/cm-prd/references/context-scope.md" &&
618
+ grep -Fq 'Step 9.5 的任何方案对抗审查触发条件' \
619
+ "$ROOT/skills/cm-prd/references/context-scope.md" &&
620
+ grep -Fq '页面/UI、共享组件、Hook、Store' \
621
+ "$ROOT/skills/cm-prd/references/context-scope.md" &&
622
+ grep -Fq '00–09 全部 10 份' "$ROOT/skills/cm-prd/references/context-scope.md" &&
623
+ grep -Fq '上下文范围: {定向 / 完整 / 定向→完整(reason_code)}' \
624
+ "$ROOT/skills/cm-prd/SKILL.md" ||
625
+ fail "cm-prd progressive context routing is not fully wired"
626
+ grep -Fq '禁止再次' "$ROOT/skills/cm-prd/SKILL.md" &&
627
+ grep -Fq '全量读取未变化的 CLAUDE/rules' "$ROOT/skills/cm-prd/SKILL.md" ||
628
+ fail "cm-prd can still reread all project rules before design"
629
+ if grep -Fq '按 `codebase-context` skill dev 模式加载 10 份文档' \
630
+ "$ROOT/skills/cm-prd/SKILL.md"; then
631
+ fail "cm-prd still unconditionally loads all codebase-context documents"
632
+ fi
633
+
634
+ require_file "skills/cm-prd/references/phase-timing.md"
635
+ grep -Fq 'references/phase-timing.md' "$ROOT/skills/cm-prd/SKILL.md" &&
636
+ grep -Fq 'prd-context' "$ROOT/skills/cm-prd/references/phase-timing.md" &&
637
+ grep -Fq 'prd-requirements' "$ROOT/skills/cm-prd/references/phase-timing.md" &&
638
+ grep -Fq 'prd-design-review' "$ROOT/skills/cm-prd/references/phase-timing.md" &&
639
+ grep -Fq 'prd-spec-validation' "$ROOT/skills/cm-prd/references/phase-timing.md" &&
640
+ grep -Fq 'prd-spec-review' "$ROOT/skills/cm-prd/references/phase-timing.md" &&
641
+ grep -Fq 'C1 定位 specs 前' "$ROOT/skills/cm-prd/references/phase-timing.md" &&
642
+ grep -Fq 'outcome: awaiting_input' "$ROOT/skills/cm-prd/references/phase-timing.md" &&
643
+ grep -Fq 'operation_id + segment' "$ROOT/skills/cm-prd/SKILL.md" ||
644
+ fail "cm-prd phase timing is not fully wired"
645
+ grep -Fq 'PRD phase timing' "$ROOT/runtime/logging.md" &&
646
+ grep -Fq 'callers do not write guessed `duration_ms`' "$ROOT/runtime/logging.md" ||
647
+ fail "logging contract does not protect cm-prd timing semantics"
648
+
649
+ for reference in \
650
+ skills/cm-miniprogram-engineer/references/platform-readiness.md \
651
+ skills/cm-miniprogram-engineer/references/release-checklist.md; do
652
+ require_file "$reference"
653
+ done
654
+ grep -q "references/platform-readiness.md" "$ROOT/skills/cm-miniprogram-engineer/SKILL.md" &&
655
+ grep -q "cm-miniprogram-engineer/references/platform-readiness.md" "$ROOT/skills/cm-prd/SKILL.md" ||
656
+ fail "miniprogram platform readiness is not wired into engineer and PRD"
657
+ for consumer in \
658
+ runtime/test-contract.md \
659
+ skills/cm-prd/SKILL.md \
660
+ skills/cm-test/SKILL.md \
661
+ skills/cm-qa-engineer/SKILL.md \
662
+ skills/cm-ai/references/N6-qa-eval.md \
663
+ skills/cm-ai/references/N8-finish.md \
664
+ skills/cm-devops-engineer/SKILL.md; do
665
+ grep -q "cm-miniprogram-engineer/references/release-checklist.md\|references/release-checklist.md" "$ROOT/$consumer" ||
666
+ fail "miniprogram release checklist is not wired into $consumer"
667
+ done
668
+ grep -q "Web target" "$ROOT/runtime/test-contract.md" &&
669
+ grep -q 'BLOCKED' "$ROOT/skills/cm-miniprogram-engineer/references/release-checklist.md" ||
670
+ fail "miniprogram tests can silently substitute Web evidence"
671
+ grep -Fq '{CM_WORKFLOW_ROOT}/skills/cm-miniprogram-engineer/references/release-checklist.md' \
672
+ "$ROOT/runtime/test-contract.md" ||
673
+ fail "miniprogram test reference is not anchored to CM_WORKFLOW_ROOT"
674
+ grep -Fq '发布验证: {staging/体验版已验证 | 未执行/待人工 | 不适用}' \
675
+ "$ROOT/skills/cm-ai/references/N8-finish.md" ||
676
+ fail "N8 feature summary can overclaim staging verification"
677
+ grep -Fq '远程平台上传' "$ROOT/skills/cm-devops-engineer/SKILL.md" &&
678
+ grep -Fq '必须由 task 明确写出目标与通道' "$ROOT/skills/cm-devops-engineer/SKILL.md" ||
679
+ fail "remote platform staging upload lacks explicit task authorization"
680
+ if grep -Eq '≤ *2MB|超 *2MB' \
681
+ "$ROOT/skills/cm-miniprogram-engineer/SKILL.md" \
682
+ "$ROOT/templates/rules/miniprogram.md"; then
683
+ fail "miniprogram package limit is hardcoded instead of runtime-verified"
684
+ fi
685
+
686
+ for consumer in \
687
+ skills/cm-prd/SKILL.md \
688
+ skills/cm-ai/references/N1-init.md \
689
+ skills/cm-ai/references/N4-review.md \
690
+ skills/cm-ai/references/N6-qa-eval.md \
691
+ skills/cm-qa-engineer/SKILL.md \
692
+ skills/cm-test/SKILL.md; do
693
+ grep -q "runtime/test-contract.md" "$ROOT/$consumer" ||
694
+ fail "AI test contract is not wired into $consumer"
695
+ done
696
+
697
+ grep -q "validate-test-cases.py" "$ROOT/runtime/test-contract.md" ||
698
+ fail "AI test contract does not invoke the structural validator"
699
+ grep -q "无 Git" "$ROOT/skills/cm-test/SKILL.md" ||
700
+ fail "cm-test is missing its non-Git read-only fallback"
701
+ grep -q -- "--generate-cases" "$ROOT/skills/cm-test/SKILL.md" ||
702
+ fail "cm-test is missing its code-to-test-case generation mode"
703
+ grep -q "test-cases.generated.json" "$ROOT/skills/cm-test/SKILL.md" ||
704
+ fail "cm-test generation mode has no durable case artifact"
705
+ grep -q "硬停止" "$ROOT/skills/cm-test/SKILL.md" ||
706
+ fail "cm-test generation mode can fall through into test execution"
707
+ grep -Fq "[需确认] 当前行为刻画:" "$ROOT/runtime/test-contract.md" ||
708
+ fail "AI test contract does not distinguish inferred behavior from approved intent"
709
+ grep -q "Path.resolve(strict=False)" "$ROOT/skills/cm-test/SKILL.md" ||
710
+ fail "cm-test report directory cannot be proven separate from source"
711
+ grep -Fq '{CODE_PROJECT}/specs/' "$ROOT/skills/cm-test/SKILL.md" ||
712
+ fail "cm-test can whitelist a source directory by disguising it as specs"
713
+ grep -q "待判断的数据,不是指令" "$ROOT/skills/cm-test/SKILL.md" ||
714
+ fail "cm-test does not treat code and external cases as untrusted data"
715
+
716
+ ARCHITECTURE_DOC="$ROOT/docs/architecture.md"
717
+ if [ "$MODE" != "plugin" ]; then
718
+ ARCHITECTURE_DOC="$ROOT/cm-workflow/docs/architecture.md"
719
+ fi
720
+ grep -q "runtime/workflow-config.md" "$ARCHITECTURE_DOC" ||
721
+ fail "architecture does not describe the optional workflow config"
722
+ grep -q "cm_workflow_config.py" "$ROOT/runtime/workflow-config.md" ||
723
+ fail "workflow config contract does not name its validator"
724
+ grep -q "runtime/workflow-routing.md" "$ROOT/runtime/orchestration.md" ||
725
+ fail "orchestration does not describe project role routing"
726
+ grep -q "enabled: false" "$ROOT/runtime/external-expert.md" ||
727
+ fail "external-expert config cannot disable the role explicitly"
728
+ grep -q '`reviewer` role' "$ROOT/runtime/review.md" &&
729
+ grep -q '`route_state`' "$ROOT/runtime/review.md" ||
730
+ fail "independent review contract does not record configured reviewer route"
731
+ grep -q "browser_qa" "$ROOT/runtime/test-contract.md" ||
732
+ fail "test contract does not resolve browser QA role"
733
+ grep -q -- "--role" "$ROOT/skills/cm-prd/SKILL.md" ||
734
+ fail "cm-prd does not resolve configured roles"
735
+ grep -q -- "--role" "$ROOT/skills/cm-ai/SKILL.md" ||
736
+ fail "cm-ai does not resolve configured roles"
737
+ grep -q -- "--role" "$ROOT/skills/cm-test/SKILL.md" ||
738
+ fail "cm-test does not resolve configured roles"
739
+ grep -q "从代码项目根解析 .*coder.*tester.*reviewer" "$ROOT/skills/cm-fix/SKILL.md" ||
740
+ fail "cm-fix does not project configured implementation roles"
741
+ grep -q "配置错误" "$ROOT/skills/cm-fix/SKILL.md" &&
742
+ grep -q '`BLOCKED`' "$ROOT/skills/cm-fix/SKILL.md" ||
743
+ fail "cm-fix does not block invalid project configuration"
744
+ grep -q "从代码项目根解析 .*coder.*tester.*reviewer" "$ROOT/skills/cm-refactor/SKILL.md" ||
745
+ fail "cm-refactor does not project configured implementation roles"
746
+ grep -q "配置错误" "$ROOT/skills/cm-refactor/SKILL.md" &&
747
+ grep -q '`BLOCKED`' "$ROOT/skills/cm-refactor/SKILL.md" ||
748
+ fail "cm-refactor does not block invalid project configuration"
749
+ grep -q "enabled: false" "$ROOT/skills/external-expert/SKILL.md" ||
750
+ fail "external-expert Skill does not honor disabled project route"
751
+ grep -q "配置错误" "$ROOT/skills/external-expert/SKILL.md" &&
752
+ grep -q '`BLOCKED`' "$ROOT/skills/external-expert/SKILL.md" ||
753
+ fail "external-expert Skill does not block invalid project configuration"
754
+ grep -q -- "--print-effective" "$ROOT/skills/cm-check/SKILL.md" ||
755
+ fail "cm-check does not expose the effective workflow config"
756
+ grep -Fq 'policies.generate_cases' "$ROOT/skills/cm-prd/SKILL.md" &&
757
+ grep -Fq 'policies.tests' "$ROOT/skills/cm-ai/references/N6-qa-eval.md" &&
758
+ grep -Fq 'policies.auto_fix' "$ROOT/skills/cm-ai/references/N6-qa-eval.md" &&
759
+ grep -Fq 'DELIVERY_MODE=diff|branch|draft-mr' "$ROOT/skills/cm-ai/references/N1-init.md" &&
760
+ grep -Fq 'delivery/pull_request' "$ROOT/skills/cm-ai/references/N8-finish.md" ||
761
+ fail "workflow policies are parsed but not consumed by their execution nodes"
762
+ grep -Fq 'cm-spec-manifest.py' "$ROOT/skills/cm-prd/SKILL.md" &&
763
+ grep -Fq -- '--status-file' "$ROOT/skills/cm-ai/references/N1-init.md" &&
764
+ grep -Fq 'specFiles' "$ROOT/runtime/test-contract.md" ||
765
+ fail "spec approval does not bind the full requirements/design/tasks/test manifest"
766
+ grep -Fq '已审批 design.md' "$ROOT/skills/cm-miniprogram-engineer/SKILL.md" &&
767
+ grep -Fq '不得重复询问' "$ROOT/skills/cm-miniprogram-engineer/SKILL.md" &&
768
+ grep -Fq '规格缺失或互相矛盾' "$ROOT/skills/cm-miniprogram-engineer/SKILL.md" ||
769
+ fail "miniprogram execution can reopen an approved design-baseline decision"
770
+ if [ "$MODE" = "plugin" ]; then
771
+ grep -q "cm-workflow.yml" "$ROOT/install.sh" ||
772
+ fail "Claude Bash installer does not package the workflow config template"
773
+ grep -q "cm-workflow.yml" "$ROOT/install.ps1" ||
774
+ fail "Claude PowerShell installer does not package the workflow config template"
775
+ else
776
+ require_file "templates/cm-workflow.yml"
777
+ fi
778
+
779
+ grep -q "runtime/review.md" "$ROOT/skills/cm-fix/SKILL.md" ||
780
+ fail "cm-fix does not reference the independent review contract"
781
+ grep -Fq 'T-FIX-{slug}' "$ROOT/skills/cm-fix/SKILL.md" &&
782
+ grep -Fq 'cm-task-gate.py check-n4' "$ROOT/skills/cm-fix/SKILL.md" &&
783
+ grep -Fq 'cm-task-gate.py check-n5' "$ROOT/skills/cm-fix/SKILL.md" ||
784
+ fail "cm-fix is missing the content-bound post-fix review gate"
785
+ grep -Fq 'T-REFACTOR-{slug}' "$ROOT/skills/cm-refactor/SKILL.md" &&
786
+ grep -Fq 'cm-task-gate.py check-n4' "$ROOT/skills/cm-refactor/SKILL.md" &&
787
+ grep -Fq 'cm-task-gate.py check-n5' "$ROOT/skills/cm-refactor/SKILL.md" ||
788
+ fail "cm-refactor is missing the content-bound review gate"
789
+ grep -Fq 'auto_fix: `never`' "$ROOT/skills/cm-ai/references/N6-qa-eval.md" &&
790
+ grep -Fq '调用 `$cm-fix`' "$ROOT/skills/cm-ai/references/N6-qa-eval.md" &&
791
+ grep -Fq '不得在 N6 直接修改' "$ROOT/skills/cm-ai/references/N6-qa-eval.md" ||
792
+ fail "N6 QA repairs can bypass the structured fix review path"
793
+
794
+ grep -q "task-handoff.schema.json" "$ROOT/runtime/task-gates.md" ||
795
+ fail "task gate contract does not bind the handoff schema"
796
+ grep -q "tasks.md.*authoritative" "$ROOT/runtime/task-gates.md" ||
797
+ fail "task gate contract can become a competing task-state database"
798
+ grep -q "check-parallel-write" "$ROOT/runtime/orchestration.md" &&
799
+ grep -q "run serially" "$ROOT/runtime/orchestration.md" ||
800
+ fail "parallel writes do not fail closed to serial execution"
801
+ grep -q "check-n4" "$ROOT/skills/cm-ai/references/N3-execute-task.md" &&
802
+ grep -q "handoff.json" "$ROOT/skills/cm-ai/references/N3-execute-task.md" ||
803
+ fail "N3 does not produce and validate the structured task handoff"
804
+ grep -q "verdict: approved | changes_requested | blocked" "$ROOT/skills/cm-ai/references/N4-review.md" &&
805
+ grep -q "attempt:" "$ROOT/skills/cm-ai/references/N4-review.md" &&
806
+ grep -q "handoff:" "$ROOT/skills/cm-ai/references/N4-review.md" &&
807
+ grep -q "handoff_sha256:" "$ROOT/skills/cm-ai/references/N4-review.md" ||
808
+ fail "N4 evidence cannot drive the mechanical review transition"
809
+ grep -q "mark-done" "$ROOT/skills/cm-ai/references/N5-mark-done.md" &&
810
+ grep -q "verdict: approved" "$ROOT/skills/cm-ai/references/N5-mark-done.md" &&
811
+ grep -Fq -- '--tasks {SPECS_DIR}/{FEATURE_DIR}/tasks.md' \
812
+ "$ROOT/skills/cm-ai/references/N5-mark-done.md" &&
813
+ grep -Fq -- '--tasks {SPECS_DIR}/{FEATURE_DIR}/tasks.md' \
814
+ "$ROOT/runtime/task-gates.md" ||
815
+ fail "N5 does not require an approved current-attempt review"
816
+
817
+ if [ "$MODE" = "plugin" ]; then
818
+ grep -q 'docs assets' "$ROOT/install-codex.sh" ||
819
+ fail "Codex installer does not package docs and assets"
820
+ grep -q 'cm-workflow/docs' "$ROOT/install.sh" ||
821
+ fail "Claude installer does not package the user guide"
822
+ grep -q 'compat/claude-commands' "$ROOT/templates/auto-update/cm-update.sh" ||
823
+ fail "Claude updater does not map generated legacy aliases"
824
+ fi
825
+
826
+ for mode in greenfield brownfield change-mode spec-self-check; do
827
+ require_file "skills/cm-prd/references/$mode.md"
828
+ done
829
+
830
+ for node in N1-init N2-enter-feature N3-execute-task N4-review N5-mark-done N6-qa-eval N7-context N8-finish; do
831
+ require_file "skills/cm-ai/references/$node.md"
832
+ done
833
+
834
+ while IFS= read -r skill; do
835
+ dir="$(basename "$(dirname "$skill")")"
836
+ declared="$(sed -n 's/^name:[[:space:]]*//p' "$skill" | head -n 1 | tr -d '\r\"')"
837
+ [ "$declared" = "$dir" ] || fail "skill name mismatch: ${skill#$ROOT/} declares '$declared'"
838
+ done < <(find "$ROOT/skills" -mindepth 2 -maxdepth 2 -name SKILL.md -type f | sort)
839
+
840
+ if [ "$MODE" = "plugin" ]; then
841
+ version="$(tr -d '[:space:]' < "$ROOT/VERSION")"
842
+ if [ -n "$PYTHON_BIN" ]; then
843
+ manifest_version="$("$PYTHON_BIN" -c 'import json,sys; print(json.load(open(sys.argv[1]))["version"].split("+")[0])' "$ROOT/.codex-plugin/plugin.json")"
844
+ [ "$version" = "$manifest_version" ] || fail "VERSION $version != plugin $manifest_version"
845
+ else
846
+ fail "Python 3 is required to compare the Codex plugin version"
847
+ fi
848
+ else
849
+ version="$(tr -d '[:space:]' < "$ROOT/templates/cm-VERSION")"
850
+ fi
851
+
852
+ if [ -d "$ROOT/skills/cm-ai" ]; then
853
+ while IFS= read -r hit; do
854
+ [ -z "$hit" ] || fail "Claude-only invocation in Codex flow: $hit"
855
+ done < <(grep -RInE 'TaskCreate|TodoWrite|codex:review|CLAUDE_CODE_EXPERIMENTAL|~/.claude/commands' \
856
+ "$ROOT/skills/cm-ai" "$ROOT/skills/cm-prd" "$ROOT/skills/cm-test" \
857
+ "$ROOT/skills/cm-fix" "$ROOT/skills/cm-refactor" \
858
+ "$ROOT/skills/external-expert" 2>/dev/null || true)
859
+ fi
860
+
861
+ if [ "$FAILURES" -ne 0 ]; then
862
+ echo "cm runtime check: FAILED ($FAILURES)" >&2
863
+ exit 1
864
+ fi
865
+
866
+ echo "cm runtime check: PASSED ($MODE v$version)"