@aibyzero/byz 0.0.0 → 0.1.2

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 (1313) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/LICENSE +21 -0
  3. package/README.md +136 -5
  4. package/dist/cli.js +46 -0
  5. package/dist/core/export-html/template.css +1066 -0
  6. package/dist/core/export-html/template.html +55 -0
  7. package/dist/core/export-html/template.js +1864 -0
  8. package/dist/core/export-html/vendor/highlight.min.js +1213 -0
  9. package/dist/core/export-html/vendor/marked.min.js +78 -0
  10. package/dist/modes/interactive/assets/clankolas.png +0 -0
  11. package/dist/modes/interactive/theme/dark.json +90 -0
  12. package/dist/modes/interactive/theme/light.json +89 -0
  13. package/dist/modes/interactive/theme/theme-schema.json +352 -0
  14. package/dist/runtime/bun/cli.d.ts +3 -0
  15. package/dist/runtime/bun/cli.d.ts.map +1 -0
  16. package/dist/runtime/bun/cli.js +11 -0
  17. package/dist/runtime/bun/cli.js.map +1 -0
  18. package/dist/runtime/bun/register-bedrock.d.ts +2 -0
  19. package/dist/runtime/bun/register-bedrock.d.ts.map +1 -0
  20. package/dist/runtime/bun/register-bedrock.js +4 -0
  21. package/dist/runtime/bun/register-bedrock.js.map +1 -0
  22. package/dist/runtime/bun/restore-sandbox-env.d.ts +17 -0
  23. package/dist/runtime/bun/restore-sandbox-env.d.ts.map +1 -0
  24. package/dist/runtime/bun/restore-sandbox-env.js +36 -0
  25. package/dist/runtime/bun/restore-sandbox-env.js.map +1 -0
  26. package/dist/runtime/bundle/chunks/anthropic-messages-JWX2WP65.js +45 -0
  27. package/dist/runtime/bundle/chunks/anthropic.js +75 -0
  28. package/dist/runtime/bundle/chunks/azure-openai-responses-5ENVCQ7U.js +2 -0
  29. package/dist/runtime/bundle/chunks/bedrock-converse-stream.js +74 -0
  30. package/dist/runtime/bundle/chunks/chunk-4L3WN2XY.js +2 -0
  31. package/dist/runtime/bundle/chunks/chunk-6CYCI3EJ.js +12 -0
  32. package/dist/runtime/bundle/chunks/chunk-6R7UI4IY.js +2 -0
  33. package/dist/runtime/bundle/chunks/chunk-AXIIZGTV.js +2 -0
  34. package/dist/runtime/bundle/chunks/chunk-DRQDKNXA.js +2 -0
  35. package/dist/runtime/bundle/chunks/chunk-GMWCTUPB.js +2 -0
  36. package/dist/runtime/bundle/chunks/chunk-GPPBJGBU.js +50 -0
  37. package/dist/runtime/bundle/chunks/chunk-JUUC5AZY.js +2 -0
  38. package/dist/runtime/bundle/chunks/chunk-L2ZPNLYD.js +2 -0
  39. package/dist/runtime/bundle/chunks/chunk-MNAIPA3J.js +2 -0
  40. package/dist/runtime/bundle/chunks/chunk-NBBFIJUL.js +11 -0
  41. package/dist/runtime/bundle/chunks/chunk-NUHFSC37.js +25 -0
  42. package/dist/runtime/bundle/chunks/chunk-PGXDEOVV.js +2 -0
  43. package/dist/runtime/bundle/chunks/chunk-PJACZCIR.js +2 -0
  44. package/dist/runtime/bundle/chunks/chunk-PRRNXB7S.js +2 -0
  45. package/dist/runtime/bundle/chunks/chunk-Q4KIHSRR.js +1547 -0
  46. package/dist/runtime/bundle/chunks/chunk-TEPMHNKQ.js +2 -0
  47. package/dist/runtime/bundle/chunks/chunk-TRDNDS6A.js +4 -0
  48. package/dist/runtime/bundle/chunks/chunk-UAQELI3K.js +2 -0
  49. package/dist/runtime/bundle/chunks/chunk-XDUWOHPL.js +6 -0
  50. package/dist/runtime/bundle/chunks/chunk-XNGRGP62.js +2 -0
  51. package/dist/runtime/bundle/chunks/dist-RDWOYWHR.js +13 -0
  52. package/dist/runtime/bundle/chunks/github-copilot.js +2 -0
  53. package/dist/runtime/bundle/chunks/google-generative-ai-XDKMGBCJ.js +2 -0
  54. package/dist/runtime/bundle/chunks/google-vertex-D5FGEO3Y.js +2 -0
  55. package/dist/runtime/bundle/chunks/image-resize-worker.js +2 -0
  56. package/dist/runtime/bundle/chunks/kimi-coding.js +2 -0
  57. package/dist/runtime/bundle/chunks/lib-HGQMNYVT.js +9 -0
  58. package/dist/runtime/bundle/chunks/mistral-conversations-YK73UAOZ.js +5 -0
  59. package/dist/runtime/bundle/chunks/multipart-parser-SQ6GDJL7.js +3 -0
  60. package/dist/runtime/bundle/chunks/openai-codex-responses-GJVBJXLB.js +8 -0
  61. package/dist/runtime/bundle/chunks/openai-codex.js +75 -0
  62. package/dist/runtime/bundle/chunks/openai-completions-XGHMB3UO.js +7 -0
  63. package/dist/runtime/bundle/chunks/openai-responses-BSOJMSEV.js +2 -0
  64. package/dist/runtime/bundle/chunks/openrouter-images-N4XVVFSD.js +2 -0
  65. package/dist/runtime/bundle/chunks/openrouter.js +75 -0
  66. package/dist/runtime/bundle/chunks/pi-messages-TPFH44NP.js +8 -0
  67. package/dist/runtime/bundle/chunks/radius.js +75 -0
  68. package/dist/runtime/bundle/chunks/src-UK77SYZE.js +4 -0
  69. package/dist/runtime/bundle/chunks/xai.js +2 -0
  70. package/dist/runtime/bundle/cli.js +3 -0
  71. package/dist/runtime/bundle/client.js +2 -0
  72. package/dist/runtime/bundle/index.js +2 -0
  73. package/dist/runtime/bundle/rpc-entry.js +3 -0
  74. package/dist/runtime/cli/args.d.ts +61 -0
  75. package/dist/runtime/cli/args.d.ts.map +1 -0
  76. package/dist/runtime/cli/args.js +439 -0
  77. package/dist/runtime/cli/args.js.map +1 -0
  78. package/dist/runtime/cli/auth-check.d.ts +19 -0
  79. package/dist/runtime/cli/auth-check.d.ts.map +1 -0
  80. package/dist/runtime/cli/auth-check.js +50 -0
  81. package/dist/runtime/cli/auth-check.js.map +1 -0
  82. package/dist/runtime/cli/auth-command.d.ts +24 -0
  83. package/dist/runtime/cli/auth-command.d.ts.map +1 -0
  84. package/dist/runtime/cli/auth-command.js +103 -0
  85. package/dist/runtime/cli/auth-command.js.map +1 -0
  86. package/dist/runtime/cli/config-selector.d.ts +16 -0
  87. package/dist/runtime/cli/config-selector.d.ts.map +1 -0
  88. package/dist/runtime/cli/config-selector.js +31 -0
  89. package/dist/runtime/cli/config-selector.js.map +1 -0
  90. package/dist/runtime/cli/credential-print.d.ts +13 -0
  91. package/dist/runtime/cli/credential-print.d.ts.map +1 -0
  92. package/dist/runtime/cli/credential-print.js +76 -0
  93. package/dist/runtime/cli/credential-print.js.map +1 -0
  94. package/dist/runtime/cli/experimental/auth.d.ts +16 -0
  95. package/dist/runtime/cli/experimental/auth.d.ts.map +1 -0
  96. package/dist/runtime/cli/experimental/auth.js +13 -0
  97. package/dist/runtime/cli/experimental/auth.js.map +1 -0
  98. package/dist/runtime/cli/experimental/cli.d.ts +6 -0
  99. package/dist/runtime/cli/experimental/cli.d.ts.map +1 -0
  100. package/dist/runtime/cli/experimental/cli.js +5 -0
  101. package/dist/runtime/cli/experimental/cli.js.map +1 -0
  102. package/dist/runtime/cli/experimental/command-options.d.ts +17 -0
  103. package/dist/runtime/cli/experimental/command-options.d.ts.map +1 -0
  104. package/dist/runtime/cli/experimental/command-options.js +35 -0
  105. package/dist/runtime/cli/experimental/command-options.js.map +1 -0
  106. package/dist/runtime/cli/experimental/command.d.ts +63 -0
  107. package/dist/runtime/cli/experimental/command.d.ts.map +1 -0
  108. package/dist/runtime/cli/experimental/command.js +130 -0
  109. package/dist/runtime/cli/experimental/command.js.map +1 -0
  110. package/dist/runtime/cli/experimental/commands/client.d.ts +13 -0
  111. package/dist/runtime/cli/experimental/commands/client.d.ts.map +1 -0
  112. package/dist/runtime/cli/experimental/commands/client.js +25 -0
  113. package/dist/runtime/cli/experimental/commands/client.js.map +1 -0
  114. package/dist/runtime/cli/experimental/commands/pi.d.ts +15 -0
  115. package/dist/runtime/cli/experimental/commands/pi.d.ts.map +1 -0
  116. package/dist/runtime/cli/experimental/commands/pi.js +28 -0
  117. package/dist/runtime/cli/experimental/commands/pi.js.map +1 -0
  118. package/dist/runtime/cli/experimental/commands/server.d.ts +13 -0
  119. package/dist/runtime/cli/experimental/commands/server.d.ts.map +1 -0
  120. package/dist/runtime/cli/experimental/commands/server.js +25 -0
  121. package/dist/runtime/cli/experimental/commands/server.js.map +1 -0
  122. package/dist/runtime/cli/experimental/transport-address.d.ts +10 -0
  123. package/dist/runtime/cli/experimental/transport-address.d.ts.map +1 -0
  124. package/dist/runtime/cli/experimental/transport-address.js +38 -0
  125. package/dist/runtime/cli/experimental/transport-address.js.map +1 -0
  126. package/dist/runtime/cli/file-processor.d.ts +15 -0
  127. package/dist/runtime/cli/file-processor.d.ts.map +1 -0
  128. package/dist/runtime/cli/file-processor.js +71 -0
  129. package/dist/runtime/cli/file-processor.js.map +1 -0
  130. package/dist/runtime/cli/initial-message.d.ts +18 -0
  131. package/dist/runtime/cli/initial-message.d.ts.map +1 -0
  132. package/dist/runtime/cli/initial-message.js +22 -0
  133. package/dist/runtime/cli/initial-message.js.map +1 -0
  134. package/dist/runtime/cli/list-models.d.ts +9 -0
  135. package/dist/runtime/cli/list-models.d.ts.map +1 -0
  136. package/dist/runtime/cli/list-models.js +98 -0
  137. package/dist/runtime/cli/list-models.js.map +1 -0
  138. package/dist/runtime/cli/project-trust.d.ts +10 -0
  139. package/dist/runtime/cli/project-trust.d.ts.map +1 -0
  140. package/dist/runtime/cli/project-trust.js +48 -0
  141. package/dist/runtime/cli/project-trust.js.map +1 -0
  142. package/dist/runtime/cli/session-picker.d.ts +10 -0
  143. package/dist/runtime/cli/session-picker.d.ts.map +1 -0
  144. package/dist/runtime/cli/session-picker.js +36 -0
  145. package/dist/runtime/cli/session-picker.js.map +1 -0
  146. package/dist/runtime/cli/startup-ui.d.ts +20 -0
  147. package/dist/runtime/cli/startup-ui.d.ts.map +1 -0
  148. package/dist/runtime/cli/startup-ui.js +184 -0
  149. package/dist/runtime/cli/startup-ui.js.map +1 -0
  150. package/dist/runtime/cli.d.ts +3 -0
  151. package/dist/runtime/cli.d.ts.map +1 -0
  152. package/dist/runtime/cli.js +19 -0
  153. package/dist/runtime/cli.js.map +1 -0
  154. package/dist/runtime/client/index.d.ts +3 -0
  155. package/dist/runtime/client/index.d.ts.map +1 -0
  156. package/dist/runtime/client/index.js +3 -0
  157. package/dist/runtime/client/index.js.map +1 -0
  158. package/dist/runtime/client/remote-session.d.ts +53 -0
  159. package/dist/runtime/client/remote-session.d.ts.map +1 -0
  160. package/dist/runtime/client/remote-session.js +340 -0
  161. package/dist/runtime/client/remote-session.js.map +1 -0
  162. package/dist/runtime/client/transcript.d.ts +12 -0
  163. package/dist/runtime/client/transcript.d.ts.map +1 -0
  164. package/dist/runtime/client/transcript.js +98 -0
  165. package/dist/runtime/client/transcript.js.map +1 -0
  166. package/dist/runtime/config.d.ts +98 -0
  167. package/dist/runtime/config.d.ts.map +1 -0
  168. package/dist/runtime/config.js +469 -0
  169. package/dist/runtime/config.js.map +1 -0
  170. package/dist/runtime/core/agent-session-runtime.d.ts +119 -0
  171. package/dist/runtime/core/agent-session-runtime.d.ts.map +1 -0
  172. package/dist/runtime/core/agent-session-runtime.js +309 -0
  173. package/dist/runtime/core/agent-session-runtime.js.map +1 -0
  174. package/dist/runtime/core/agent-session-services.d.ts +86 -0
  175. package/dist/runtime/core/agent-session-services.d.ts.map +1 -0
  176. package/dist/runtime/core/agent-session-services.js +134 -0
  177. package/dist/runtime/core/agent-session-services.js.map +1 -0
  178. package/dist/runtime/core/agent-session.d.ts +678 -0
  179. package/dist/runtime/core/agent-session.d.ts.map +1 -0
  180. package/dist/runtime/core/agent-session.js +2808 -0
  181. package/dist/runtime/core/agent-session.js.map +1 -0
  182. package/dist/runtime/core/auth-guidance.d.ts +5 -0
  183. package/dist/runtime/core/auth-guidance.d.ts.map +1 -0
  184. package/dist/runtime/core/auth-guidance.js +21 -0
  185. package/dist/runtime/core/auth-guidance.js.map +1 -0
  186. package/dist/runtime/core/auth-storage.d.ts +72 -0
  187. package/dist/runtime/core/auth-storage.d.ts.map +1 -0
  188. package/dist/runtime/core/auth-storage.js +426 -0
  189. package/dist/runtime/core/auth-storage.js.map +1 -0
  190. package/dist/runtime/core/bash-executor.d.ts +32 -0
  191. package/dist/runtime/core/bash-executor.d.ts.map +1 -0
  192. package/dist/runtime/core/bash-executor.js +111 -0
  193. package/dist/runtime/core/bash-executor.js.map +1 -0
  194. package/dist/runtime/core/cache-stats.d.ts +49 -0
  195. package/dist/runtime/core/cache-stats.d.ts.map +1 -0
  196. package/dist/runtime/core/cache-stats.js +101 -0
  197. package/dist/runtime/core/cache-stats.js.map +1 -0
  198. package/dist/runtime/core/compaction/branch-summarization.d.ts +98 -0
  199. package/dist/runtime/core/compaction/branch-summarization.d.ts.map +1 -0
  200. package/dist/runtime/core/compaction/branch-summarization.js +250 -0
  201. package/dist/runtime/core/compaction/branch-summarization.js.map +1 -0
  202. package/dist/runtime/core/compaction/compaction.d.ts +143 -0
  203. package/dist/runtime/core/compaction/compaction.d.ts.map +1 -0
  204. package/dist/runtime/core/compaction/compaction.js +669 -0
  205. package/dist/runtime/core/compaction/compaction.js.map +1 -0
  206. package/dist/runtime/core/compaction/index.d.ts +7 -0
  207. package/dist/runtime/core/compaction/index.d.ts.map +1 -0
  208. package/dist/runtime/core/compaction/index.js +7 -0
  209. package/dist/runtime/core/compaction/index.js.map +1 -0
  210. package/dist/runtime/core/compaction/utils.d.ts +38 -0
  211. package/dist/runtime/core/compaction/utils.d.ts.map +1 -0
  212. package/dist/runtime/core/compaction/utils.js +142 -0
  213. package/dist/runtime/core/compaction/utils.js.map +1 -0
  214. package/dist/runtime/core/defaults.d.ts +4 -0
  215. package/dist/runtime/core/defaults.d.ts.map +1 -0
  216. package/dist/runtime/core/defaults.js +11 -0
  217. package/dist/runtime/core/defaults.js.map +1 -0
  218. package/dist/runtime/core/diagnostics.d.ts +15 -0
  219. package/dist/runtime/core/diagnostics.d.ts.map +1 -0
  220. package/dist/runtime/core/diagnostics.js +2 -0
  221. package/dist/runtime/core/diagnostics.js.map +1 -0
  222. package/dist/runtime/core/event-bus.d.ts +9 -0
  223. package/dist/runtime/core/event-bus.d.ts.map +1 -0
  224. package/dist/runtime/core/event-bus.js +25 -0
  225. package/dist/runtime/core/event-bus.js.map +1 -0
  226. package/dist/runtime/core/exec.d.ts +29 -0
  227. package/dist/runtime/core/exec.d.ts.map +1 -0
  228. package/dist/runtime/core/exec.js +75 -0
  229. package/dist/runtime/core/exec.js.map +1 -0
  230. package/dist/runtime/core/experimental.d.ts +6 -0
  231. package/dist/runtime/core/experimental.d.ts.map +1 -0
  232. package/dist/runtime/core/experimental.js +8 -0
  233. package/dist/runtime/core/experimental.js.map +1 -0
  234. package/dist/runtime/core/export-html/ansi-to-html.d.ts +22 -0
  235. package/dist/runtime/core/export-html/ansi-to-html.d.ts.map +1 -0
  236. package/dist/runtime/core/export-html/ansi-to-html.js +249 -0
  237. package/dist/runtime/core/export-html/ansi-to-html.js.map +1 -0
  238. package/dist/runtime/core/export-html/index.d.ts +37 -0
  239. package/dist/runtime/core/export-html/index.d.ts.map +1 -0
  240. package/dist/runtime/core/export-html/index.js +226 -0
  241. package/dist/runtime/core/export-html/index.js.map +1 -0
  242. package/dist/runtime/core/export-html/template.css +1066 -0
  243. package/dist/runtime/core/export-html/template.html +55 -0
  244. package/dist/runtime/core/export-html/template.js +1864 -0
  245. package/dist/runtime/core/export-html/tool-renderer.d.ts +34 -0
  246. package/dist/runtime/core/export-html/tool-renderer.d.ts.map +1 -0
  247. package/dist/runtime/core/export-html/tool-renderer.js +108 -0
  248. package/dist/runtime/core/export-html/tool-renderer.js.map +1 -0
  249. package/dist/runtime/core/export-html/vendor/highlight.min.js +1213 -0
  250. package/dist/runtime/core/export-html/vendor/marked.min.js +78 -0
  251. package/dist/runtime/core/extensions/index.d.ts +12 -0
  252. package/dist/runtime/core/extensions/index.d.ts.map +1 -0
  253. package/dist/runtime/core/extensions/index.js +9 -0
  254. package/dist/runtime/core/extensions/index.js.map +1 -0
  255. package/dist/runtime/core/extensions/loader.d.ts +23 -0
  256. package/dist/runtime/core/extensions/loader.d.ts.map +1 -0
  257. package/dist/runtime/core/extensions/loader.js +648 -0
  258. package/dist/runtime/core/extensions/loader.js.map +1 -0
  259. package/dist/runtime/core/extensions/runner.d.ts +173 -0
  260. package/dist/runtime/core/extensions/runner.d.ts.map +1 -0
  261. package/dist/runtime/core/extensions/runner.js +967 -0
  262. package/dist/runtime/core/extensions/runner.js.map +1 -0
  263. package/dist/runtime/core/extensions/types.d.ts +1328 -0
  264. package/dist/runtime/core/extensions/types.d.ts.map +1 -0
  265. package/dist/runtime/core/extensions/types.js +48 -0
  266. package/dist/runtime/core/extensions/types.js.map +1 -0
  267. package/dist/runtime/core/extensions/wrapper.d.ts +20 -0
  268. package/dist/runtime/core/extensions/wrapper.d.ts.map +1 -0
  269. package/dist/runtime/core/extensions/wrapper.js +41 -0
  270. package/dist/runtime/core/extensions/wrapper.js.map +1 -0
  271. package/dist/runtime/core/footer-data-provider.d.ts +64 -0
  272. package/dist/runtime/core/footer-data-provider.d.ts.map +1 -0
  273. package/dist/runtime/core/footer-data-provider.js +338 -0
  274. package/dist/runtime/core/footer-data-provider.js.map +1 -0
  275. package/dist/runtime/core/http-dispatcher.d.ts +22 -0
  276. package/dist/runtime/core/http-dispatcher.d.ts.map +1 -0
  277. package/dist/runtime/core/http-dispatcher.js +96 -0
  278. package/dist/runtime/core/http-dispatcher.js.map +1 -0
  279. package/dist/runtime/core/index.d.ts +13 -0
  280. package/dist/runtime/core/index.d.ts.map +1 -0
  281. package/dist/runtime/core/index.js +13 -0
  282. package/dist/runtime/core/index.js.map +1 -0
  283. package/dist/runtime/core/keybindings.d.ts +423 -0
  284. package/dist/runtime/core/keybindings.d.ts.map +1 -0
  285. package/dist/runtime/core/keybindings.js +317 -0
  286. package/dist/runtime/core/keybindings.js.map +1 -0
  287. package/dist/runtime/core/messages.d.ts +77 -0
  288. package/dist/runtime/core/messages.d.ts.map +1 -0
  289. package/dist/runtime/core/messages.js +123 -0
  290. package/dist/runtime/core/messages.js.map +1 -0
  291. package/dist/runtime/core/model-config.d.ts +576 -0
  292. package/dist/runtime/core/model-config.d.ts.map +1 -0
  293. package/dist/runtime/core/model-config.js +256 -0
  294. package/dist/runtime/core/model-config.js.map +1 -0
  295. package/dist/runtime/core/model-registry.d.ts +45 -0
  296. package/dist/runtime/core/model-registry.d.ts.map +1 -0
  297. package/dist/runtime/core/model-registry.js +107 -0
  298. package/dist/runtime/core/model-registry.js.map +1 -0
  299. package/dist/runtime/core/model-resolver.d.ts +124 -0
  300. package/dist/runtime/core/model-resolver.d.ts.map +1 -0
  301. package/dist/runtime/core/model-resolver.js +589 -0
  302. package/dist/runtime/core/model-resolver.js.map +1 -0
  303. package/dist/runtime/core/model-runtime.d.ts +100 -0
  304. package/dist/runtime/core/model-runtime.d.ts.map +1 -0
  305. package/dist/runtime/core/model-runtime.js +599 -0
  306. package/dist/runtime/core/model-runtime.js.map +1 -0
  307. package/dist/runtime/core/models-store.d.ts +22 -0
  308. package/dist/runtime/core/models-store.d.ts.map +1 -0
  309. package/dist/runtime/core/models-store.js +115 -0
  310. package/dist/runtime/core/models-store.js.map +1 -0
  311. package/dist/runtime/core/output-guard.d.ts +7 -0
  312. package/dist/runtime/core/output-guard.d.ts.map +1 -0
  313. package/dist/runtime/core/output-guard.js +89 -0
  314. package/dist/runtime/core/output-guard.js.map +1 -0
  315. package/dist/runtime/core/package-manager.d.ts +213 -0
  316. package/dist/runtime/core/package-manager.d.ts.map +1 -0
  317. package/dist/runtime/core/package-manager.js +2177 -0
  318. package/dist/runtime/core/package-manager.js.map +1 -0
  319. package/dist/runtime/core/pi-manifest.d.ts +8 -0
  320. package/dist/runtime/core/pi-manifest.d.ts.map +1 -0
  321. package/dist/runtime/core/pi-manifest.js +26 -0
  322. package/dist/runtime/core/pi-manifest.js.map +1 -0
  323. package/dist/runtime/core/project-trust.d.ts +15 -0
  324. package/dist/runtime/core/project-trust.d.ts.map +1 -0
  325. package/dist/runtime/core/project-trust.js +59 -0
  326. package/dist/runtime/core/project-trust.js.map +1 -0
  327. package/dist/runtime/core/prompt-templates.d.ts +54 -0
  328. package/dist/runtime/core/prompt-templates.d.ts.map +1 -0
  329. package/dist/runtime/core/prompt-templates.js +236 -0
  330. package/dist/runtime/core/prompt-templates.js.map +1 -0
  331. package/dist/runtime/core/provider-attribution.d.ts +4 -0
  332. package/dist/runtime/core/provider-attribution.d.ts.map +1 -0
  333. package/dist/runtime/core/provider-attribution.js +72 -0
  334. package/dist/runtime/core/provider-attribution.js.map +1 -0
  335. package/dist/runtime/core/provider-composer.d.ts +58 -0
  336. package/dist/runtime/core/provider-composer.d.ts.map +1 -0
  337. package/dist/runtime/core/provider-composer.js +396 -0
  338. package/dist/runtime/core/provider-composer.js.map +1 -0
  339. package/dist/runtime/core/radius.d.ts +2 -0
  340. package/dist/runtime/core/radius.d.ts.map +1 -0
  341. package/dist/runtime/core/radius.js +2 -0
  342. package/dist/runtime/core/radius.js.map +1 -0
  343. package/dist/runtime/core/remote-catalog-provider.d.ts +5 -0
  344. package/dist/runtime/core/remote-catalog-provider.d.ts.map +1 -0
  345. package/dist/runtime/core/remote-catalog-provider.js +122 -0
  346. package/dist/runtime/core/remote-catalog-provider.js.map +1 -0
  347. package/dist/runtime/core/resolve-config-value.d.ts +30 -0
  348. package/dist/runtime/core/resolve-config-value.d.ts.map +1 -0
  349. package/dist/runtime/core/resolve-config-value.js +247 -0
  350. package/dist/runtime/core/resolve-config-value.js.map +1 -0
  351. package/dist/runtime/core/resource-loader.d.ts +221 -0
  352. package/dist/runtime/core/resource-loader.d.ts.map +1 -0
  353. package/dist/runtime/core/resource-loader.js +875 -0
  354. package/dist/runtime/core/resource-loader.js.map +1 -0
  355. package/dist/runtime/core/runtime-credentials.d.ts +15 -0
  356. package/dist/runtime/core/runtime-credentials.d.ts.map +1 -0
  357. package/dist/runtime/core/runtime-credentials.js +39 -0
  358. package/dist/runtime/core/runtime-credentials.js.map +1 -0
  359. package/dist/runtime/core/sdk.d.ts +108 -0
  360. package/dist/runtime/core/sdk.d.ts.map +1 -0
  361. package/dist/runtime/core/sdk.js +275 -0
  362. package/dist/runtime/core/sdk.js.map +1 -0
  363. package/dist/runtime/core/session-cwd.d.ts +19 -0
  364. package/dist/runtime/core/session-cwd.d.ts.map +1 -0
  365. package/dist/runtime/core/session-cwd.js +38 -0
  366. package/dist/runtime/core/session-cwd.js.map +1 -0
  367. package/dist/runtime/core/session-export.d.ts +4 -0
  368. package/dist/runtime/core/session-export.d.ts.map +1 -0
  369. package/dist/runtime/core/session-export.js +32 -0
  370. package/dist/runtime/core/session-export.js.map +1 -0
  371. package/dist/runtime/core/session-manager.d.ts +356 -0
  372. package/dist/runtime/core/session-manager.d.ts.map +1 -0
  373. package/dist/runtime/core/session-manager.js +1341 -0
  374. package/dist/runtime/core/session-manager.js.map +1 -0
  375. package/dist/runtime/core/settings-diagnostics.d.ts +9 -0
  376. package/dist/runtime/core/settings-diagnostics.d.ts.map +1 -0
  377. package/dist/runtime/core/settings-diagnostics.js +21 -0
  378. package/dist/runtime/core/settings-diagnostics.js.map +1 -0
  379. package/dist/runtime/core/settings-manager.d.ts +324 -0
  380. package/dist/runtime/core/settings-manager.d.ts.map +1 -0
  381. package/dist/runtime/core/settings-manager.js +980 -0
  382. package/dist/runtime/core/settings-manager.js.map +1 -0
  383. package/dist/runtime/core/skills.d.ts +60 -0
  384. package/dist/runtime/core/skills.d.ts.map +1 -0
  385. package/dist/runtime/core/skills.js +405 -0
  386. package/dist/runtime/core/skills.js.map +1 -0
  387. package/dist/runtime/core/slash-commands.d.ts +15 -0
  388. package/dist/runtime/core/slash-commands.d.ts.map +1 -0
  389. package/dist/runtime/core/slash-commands.js +27 -0
  390. package/dist/runtime/core/slash-commands.js.map +1 -0
  391. package/dist/runtime/core/source-info.d.ts +18 -0
  392. package/dist/runtime/core/source-info.d.ts.map +1 -0
  393. package/dist/runtime/core/source-info.js +19 -0
  394. package/dist/runtime/core/source-info.js.map +1 -0
  395. package/dist/runtime/core/system-prompt.d.ts +28 -0
  396. package/dist/runtime/core/system-prompt.d.ts.map +1 -0
  397. package/dist/runtime/core/system-prompt.js +119 -0
  398. package/dist/runtime/core/system-prompt.js.map +1 -0
  399. package/dist/runtime/core/telemetry.d.ts +3 -0
  400. package/dist/runtime/core/telemetry.d.ts.map +1 -0
  401. package/dist/runtime/core/telemetry.js +9 -0
  402. package/dist/runtime/core/telemetry.js.map +1 -0
  403. package/dist/runtime/core/timings.d.ts +10 -0
  404. package/dist/runtime/core/timings.d.ts.map +1 -0
  405. package/dist/runtime/core/timings.js +41 -0
  406. package/dist/runtime/core/timings.js.map +1 -0
  407. package/dist/runtime/core/tools/bash.d.ts +87 -0
  408. package/dist/runtime/core/tools/bash.d.ts.map +1 -0
  409. package/dist/runtime/core/tools/bash.js +410 -0
  410. package/dist/runtime/core/tools/bash.js.map +1 -0
  411. package/dist/runtime/core/tools/edit-diff.d.ts +101 -0
  412. package/dist/runtime/core/tools/edit-diff.d.ts.map +1 -0
  413. package/dist/runtime/core/tools/edit-diff.js +421 -0
  414. package/dist/runtime/core/tools/edit-diff.js.map +1 -0
  415. package/dist/runtime/core/tools/edit.d.ts +55 -0
  416. package/dist/runtime/core/tools/edit.d.ts.map +1 -0
  417. package/dist/runtime/core/tools/edit.js +306 -0
  418. package/dist/runtime/core/tools/edit.js.map +1 -0
  419. package/dist/runtime/core/tools/file-mutation-queue.d.ts +6 -0
  420. package/dist/runtime/core/tools/file-mutation-queue.d.ts.map +1 -0
  421. package/dist/runtime/core/tools/file-mutation-queue.js +52 -0
  422. package/dist/runtime/core/tools/file-mutation-queue.js.map +1 -0
  423. package/dist/runtime/core/tools/find.d.ts +42 -0
  424. package/dist/runtime/core/tools/find.d.ts.map +1 -0
  425. package/dist/runtime/core/tools/find.js +302 -0
  426. package/dist/runtime/core/tools/find.js.map +1 -0
  427. package/dist/runtime/core/tools/grep.d.ts +41 -0
  428. package/dist/runtime/core/tools/grep.d.ts.map +1 -0
  429. package/dist/runtime/core/tools/grep.js +308 -0
  430. package/dist/runtime/core/tools/grep.js.map +1 -0
  431. package/dist/runtime/core/tools/index.d.ts +43 -0
  432. package/dist/runtime/core/tools/index.d.ts.map +1 -0
  433. package/dist/runtime/core/tools/index.js +129 -0
  434. package/dist/runtime/core/tools/index.js.map +1 -0
  435. package/dist/runtime/core/tools/ls.d.ts +41 -0
  436. package/dist/runtime/core/tools/ls.d.ts.map +1 -0
  437. package/dist/runtime/core/tools/ls.js +171 -0
  438. package/dist/runtime/core/tools/ls.js.map +1 -0
  439. package/dist/runtime/core/tools/output-accumulator.d.ts +52 -0
  440. package/dist/runtime/core/tools/output-accumulator.d.ts.map +1 -0
  441. package/dist/runtime/core/tools/output-accumulator.js +184 -0
  442. package/dist/runtime/core/tools/output-accumulator.js.map +1 -0
  443. package/dist/runtime/core/tools/path-utils.d.ts +10 -0
  444. package/dist/runtime/core/tools/path-utils.d.ts.map +1 -0
  445. package/dist/runtime/core/tools/path-utils.js +99 -0
  446. package/dist/runtime/core/tools/path-utils.js.map +1 -0
  447. package/dist/runtime/core/tools/powershell.d.ts +16 -0
  448. package/dist/runtime/core/tools/powershell.d.ts.map +1 -0
  449. package/dist/runtime/core/tools/powershell.js +39 -0
  450. package/dist/runtime/core/tools/powershell.js.map +1 -0
  451. package/dist/runtime/core/tools/read.d.ts +39 -0
  452. package/dist/runtime/core/tools/read.d.ts.map +1 -0
  453. package/dist/runtime/core/tools/read.js +282 -0
  454. package/dist/runtime/core/tools/read.js.map +1 -0
  455. package/dist/runtime/core/tools/render-utils.d.ts +24 -0
  456. package/dist/runtime/core/tools/render-utils.d.ts.map +1 -0
  457. package/dist/runtime/core/tools/render-utils.js +65 -0
  458. package/dist/runtime/core/tools/render-utils.js.map +1 -0
  459. package/dist/runtime/core/tools/tool-definition-wrapper.d.ts +14 -0
  460. package/dist/runtime/core/tools/tool-definition-wrapper.d.ts.map +1 -0
  461. package/dist/runtime/core/tools/tool-definition-wrapper.js +36 -0
  462. package/dist/runtime/core/tools/tool-definition-wrapper.js.map +1 -0
  463. package/dist/runtime/core/tools/truncate.d.ts +70 -0
  464. package/dist/runtime/core/tools/truncate.d.ts.map +1 -0
  465. package/dist/runtime/core/tools/truncate.js +215 -0
  466. package/dist/runtime/core/tools/truncate.js.map +1 -0
  467. package/dist/runtime/core/tools/write.d.ts +30 -0
  468. package/dist/runtime/core/tools/write.d.ts.map +1 -0
  469. package/dist/runtime/core/tools/write.js +203 -0
  470. package/dist/runtime/core/tools/write.js.map +1 -0
  471. package/dist/runtime/core/trust-manager.d.ts +36 -0
  472. package/dist/runtime/core/trust-manager.d.ts.map +1 -0
  473. package/dist/runtime/core/trust-manager.js +203 -0
  474. package/dist/runtime/core/trust-manager.js.map +1 -0
  475. package/dist/runtime/core/usage-totals.d.ts +19 -0
  476. package/dist/runtime/core/usage-totals.d.ts.map +1 -0
  477. package/dist/runtime/core/usage-totals.js +52 -0
  478. package/dist/runtime/core/usage-totals.js.map +1 -0
  479. package/dist/runtime/extensions/index.d.ts +3 -0
  480. package/dist/runtime/extensions/index.d.ts.map +1 -0
  481. package/dist/runtime/extensions/index.js +3 -0
  482. package/dist/runtime/extensions/index.js.map +1 -0
  483. package/dist/runtime/extensions/llama/client.d.ts +67 -0
  484. package/dist/runtime/extensions/llama/client.d.ts.map +1 -0
  485. package/dist/runtime/extensions/llama/client.js +309 -0
  486. package/dist/runtime/extensions/llama/client.js.map +1 -0
  487. package/dist/runtime/extensions/llama/huggingface.d.ts +23 -0
  488. package/dist/runtime/extensions/llama/huggingface.d.ts.map +1 -0
  489. package/dist/runtime/extensions/llama/huggingface.js +141 -0
  490. package/dist/runtime/extensions/llama/huggingface.js.map +1 -0
  491. package/dist/runtime/extensions/llama/index.d.ts +3 -0
  492. package/dist/runtime/extensions/llama/index.d.ts.map +1 -0
  493. package/dist/runtime/extensions/llama/index.js +219 -0
  494. package/dist/runtime/extensions/llama/index.js.map +1 -0
  495. package/dist/runtime/extensions/llama/provider.d.ts +12 -0
  496. package/dist/runtime/extensions/llama/provider.d.ts.map +1 -0
  497. package/dist/runtime/extensions/llama/provider.js +146 -0
  498. package/dist/runtime/extensions/llama/provider.js.map +1 -0
  499. package/dist/runtime/extensions/llama/ui.d.ts +42 -0
  500. package/dist/runtime/extensions/llama/ui.d.ts.map +1 -0
  501. package/dist/runtime/extensions/llama/ui.js +416 -0
  502. package/dist/runtime/extensions/llama/ui.js.map +1 -0
  503. package/dist/runtime/index.d.ts +37 -0
  504. package/dist/runtime/index.d.ts.map +1 -0
  505. package/dist/runtime/index.js +49 -0
  506. package/dist/runtime/index.js.map +1 -0
  507. package/dist/runtime/main.d.ts +16 -0
  508. package/dist/runtime/main.d.ts.map +1 -0
  509. package/dist/runtime/main.js +799 -0
  510. package/dist/runtime/main.js.map +1 -0
  511. package/dist/runtime/migrations.d.ts +33 -0
  512. package/dist/runtime/migrations.d.ts.map +1 -0
  513. package/dist/runtime/migrations.js +282 -0
  514. package/dist/runtime/migrations.js.map +1 -0
  515. package/dist/runtime/modes/index.d.ts +10 -0
  516. package/dist/runtime/modes/index.d.ts.map +1 -0
  517. package/dist/runtime/modes/index.js +8 -0
  518. package/dist/runtime/modes/index.js.map +1 -0
  519. package/dist/runtime/modes/interactive/assets/clankolas.png +0 -0
  520. package/dist/runtime/modes/interactive/components/armin.d.ts +34 -0
  521. package/dist/runtime/modes/interactive/components/armin.d.ts.map +1 -0
  522. package/dist/runtime/modes/interactive/components/armin.js +333 -0
  523. package/dist/runtime/modes/interactive/components/armin.js.map +1 -0
  524. package/dist/runtime/modes/interactive/components/assistant-message.d.ts +25 -0
  525. package/dist/runtime/modes/interactive/components/assistant-message.d.ts.map +1 -0
  526. package/dist/runtime/modes/interactive/components/assistant-message.js +150 -0
  527. package/dist/runtime/modes/interactive/components/assistant-message.js.map +1 -0
  528. package/dist/runtime/modes/interactive/components/bash-execution.d.ts +34 -0
  529. package/dist/runtime/modes/interactive/components/bash-execution.d.ts.map +1 -0
  530. package/dist/runtime/modes/interactive/components/bash-execution.js +175 -0
  531. package/dist/runtime/modes/interactive/components/bash-execution.js.map +1 -0
  532. package/dist/runtime/modes/interactive/components/bordered-loader.d.ts +16 -0
  533. package/dist/runtime/modes/interactive/components/bordered-loader.d.ts.map +1 -0
  534. package/dist/runtime/modes/interactive/components/bordered-loader.js +54 -0
  535. package/dist/runtime/modes/interactive/components/bordered-loader.js.map +1 -0
  536. package/dist/runtime/modes/interactive/components/branch-summary-message.d.ts +16 -0
  537. package/dist/runtime/modes/interactive/components/branch-summary-message.d.ts.map +1 -0
  538. package/dist/runtime/modes/interactive/components/branch-summary-message.js +44 -0
  539. package/dist/runtime/modes/interactive/components/branch-summary-message.js.map +1 -0
  540. package/dist/runtime/modes/interactive/components/compaction-summary-message.d.ts +16 -0
  541. package/dist/runtime/modes/interactive/components/compaction-summary-message.d.ts.map +1 -0
  542. package/dist/runtime/modes/interactive/components/compaction-summary-message.js +45 -0
  543. package/dist/runtime/modes/interactive/components/compaction-summary-message.js.map +1 -0
  544. package/dist/runtime/modes/interactive/components/config-selector.d.ts +102 -0
  545. package/dist/runtime/modes/interactive/components/config-selector.d.ts.map +1 -0
  546. package/dist/runtime/modes/interactive/components/config-selector.js +761 -0
  547. package/dist/runtime/modes/interactive/components/config-selector.js.map +1 -0
  548. package/dist/runtime/modes/interactive/components/countdown-timer.d.ts +14 -0
  549. package/dist/runtime/modes/interactive/components/countdown-timer.d.ts.map +1 -0
  550. package/dist/runtime/modes/interactive/components/countdown-timer.js +33 -0
  551. package/dist/runtime/modes/interactive/components/countdown-timer.js.map +1 -0
  552. package/dist/runtime/modes/interactive/components/custom-editor.d.ts +21 -0
  553. package/dist/runtime/modes/interactive/components/custom-editor.d.ts.map +1 -0
  554. package/dist/runtime/modes/interactive/components/custom-editor.js +77 -0
  555. package/dist/runtime/modes/interactive/components/custom-editor.js.map +1 -0
  556. package/dist/runtime/modes/interactive/components/custom-entry.d.ts +19 -0
  557. package/dist/runtime/modes/interactive/components/custom-entry.d.ts.map +1 -0
  558. package/dist/runtime/modes/interactive/components/custom-entry.js +52 -0
  559. package/dist/runtime/modes/interactive/components/custom-entry.js.map +1 -0
  560. package/dist/runtime/modes/interactive/components/custom-message.d.ts +22 -0
  561. package/dist/runtime/modes/interactive/components/custom-message.d.ts.map +1 -0
  562. package/dist/runtime/modes/interactive/components/custom-message.js +87 -0
  563. package/dist/runtime/modes/interactive/components/custom-message.js.map +1 -0
  564. package/dist/runtime/modes/interactive/components/daxnuts.d.ts +23 -0
  565. package/dist/runtime/modes/interactive/components/daxnuts.d.ts.map +1 -0
  566. package/dist/runtime/modes/interactive/components/daxnuts.js +140 -0
  567. package/dist/runtime/modes/interactive/components/daxnuts.js.map +1 -0
  568. package/dist/runtime/modes/interactive/components/diff.d.ts +12 -0
  569. package/dist/runtime/modes/interactive/components/diff.d.ts.map +1 -0
  570. package/dist/runtime/modes/interactive/components/diff.js +133 -0
  571. package/dist/runtime/modes/interactive/components/diff.js.map +1 -0
  572. package/dist/runtime/modes/interactive/components/dynamic-border.d.ts +15 -0
  573. package/dist/runtime/modes/interactive/components/dynamic-border.d.ts.map +1 -0
  574. package/dist/runtime/modes/interactive/components/dynamic-border.js +21 -0
  575. package/dist/runtime/modes/interactive/components/dynamic-border.js.map +1 -0
  576. package/dist/runtime/modes/interactive/components/earendil-announcement.d.ts +5 -0
  577. package/dist/runtime/modes/interactive/components/earendil-announcement.d.ts.map +1 -0
  578. package/dist/runtime/modes/interactive/components/earendil-announcement.js +40 -0
  579. package/dist/runtime/modes/interactive/components/earendil-announcement.js.map +1 -0
  580. package/dist/runtime/modes/interactive/components/extension-editor.d.ts +21 -0
  581. package/dist/runtime/modes/interactive/components/extension-editor.d.ts.map +1 -0
  582. package/dist/runtime/modes/interactive/components/extension-editor.js +98 -0
  583. package/dist/runtime/modes/interactive/components/extension-editor.js.map +1 -0
  584. package/dist/runtime/modes/interactive/components/extension-input.d.ts +23 -0
  585. package/dist/runtime/modes/interactive/components/extension-input.d.ts.map +1 -0
  586. package/dist/runtime/modes/interactive/components/extension-input.js +61 -0
  587. package/dist/runtime/modes/interactive/components/extension-input.js.map +1 -0
  588. package/dist/runtime/modes/interactive/components/extension-selector.d.ts +26 -0
  589. package/dist/runtime/modes/interactive/components/extension-selector.d.ts.map +1 -0
  590. package/dist/runtime/modes/interactive/components/extension-selector.js +83 -0
  591. package/dist/runtime/modes/interactive/components/extension-selector.js.map +1 -0
  592. package/dist/runtime/modes/interactive/components/first-time-setup.d.ts +25 -0
  593. package/dist/runtime/modes/interactive/components/first-time-setup.d.ts.map +1 -0
  594. package/dist/runtime/modes/interactive/components/first-time-setup.js +103 -0
  595. package/dist/runtime/modes/interactive/components/first-time-setup.js.map +1 -0
  596. package/dist/runtime/modes/interactive/components/footer.d.ts +32 -0
  597. package/dist/runtime/modes/interactive/components/footer.d.ts.map +1 -0
  598. package/dist/runtime/modes/interactive/components/footer.js +222 -0
  599. package/dist/runtime/modes/interactive/components/footer.js.map +1 -0
  600. package/dist/runtime/modes/interactive/components/index.d.ts +34 -0
  601. package/dist/runtime/modes/interactive/components/index.d.ts.map +1 -0
  602. package/dist/runtime/modes/interactive/components/index.js +35 -0
  603. package/dist/runtime/modes/interactive/components/index.js.map +1 -0
  604. package/dist/runtime/modes/interactive/components/keybinding-hints.d.ts +13 -0
  605. package/dist/runtime/modes/interactive/components/keybinding-hints.d.ts.map +1 -0
  606. package/dist/runtime/modes/interactive/components/keybinding-hints.js +36 -0
  607. package/dist/runtime/modes/interactive/components/keybinding-hints.js.map +1 -0
  608. package/dist/runtime/modes/interactive/components/login-dialog.d.ts +52 -0
  609. package/dist/runtime/modes/interactive/components/login-dialog.d.ts.map +1 -0
  610. package/dist/runtime/modes/interactive/components/login-dialog.js +188 -0
  611. package/dist/runtime/modes/interactive/components/login-dialog.js.map +1 -0
  612. package/dist/runtime/modes/interactive/components/markdown-transform.d.ts +3 -0
  613. package/dist/runtime/modes/interactive/components/markdown-transform.d.ts.map +1 -0
  614. package/dist/runtime/modes/interactive/components/markdown-transform.js +19 -0
  615. package/dist/runtime/modes/interactive/components/markdown-transform.js.map +1 -0
  616. package/dist/runtime/modes/interactive/components/mermaid.d.ts +11 -0
  617. package/dist/runtime/modes/interactive/components/mermaid.d.ts.map +1 -0
  618. package/dist/runtime/modes/interactive/components/mermaid.js +75 -0
  619. package/dist/runtime/modes/interactive/components/mermaid.js.map +1 -0
  620. package/dist/runtime/modes/interactive/components/model-selector.d.ts +60 -0
  621. package/dist/runtime/modes/interactive/components/model-selector.d.ts.map +1 -0
  622. package/dist/runtime/modes/interactive/components/model-selector.js +370 -0
  623. package/dist/runtime/modes/interactive/components/model-selector.js.map +1 -0
  624. package/dist/runtime/modes/interactive/components/oauth-selector.d.ts +33 -0
  625. package/dist/runtime/modes/interactive/components/oauth-selector.d.ts.map +1 -0
  626. package/dist/runtime/modes/interactive/components/oauth-selector.js +163 -0
  627. package/dist/runtime/modes/interactive/components/oauth-selector.js.map +1 -0
  628. package/dist/runtime/modes/interactive/components/scoped-models-selector.d.ts +46 -0
  629. package/dist/runtime/modes/interactive/components/scoped-models-selector.d.ts.map +1 -0
  630. package/dist/runtime/modes/interactive/components/scoped-models-selector.js +328 -0
  631. package/dist/runtime/modes/interactive/components/scoped-models-selector.js.map +1 -0
  632. package/dist/runtime/modes/interactive/components/session-selector-search.d.ts +23 -0
  633. package/dist/runtime/modes/interactive/components/session-selector-search.d.ts.map +1 -0
  634. package/dist/runtime/modes/interactive/components/session-selector-search.js +155 -0
  635. package/dist/runtime/modes/interactive/components/session-selector-search.js.map +1 -0
  636. package/dist/runtime/modes/interactive/components/session-selector.d.ts +95 -0
  637. package/dist/runtime/modes/interactive/components/session-selector.d.ts.map +1 -0
  638. package/dist/runtime/modes/interactive/components/session-selector.js +867 -0
  639. package/dist/runtime/modes/interactive/components/session-selector.js.map +1 -0
  640. package/dist/runtime/modes/interactive/components/settings-selector.d.ts +90 -0
  641. package/dist/runtime/modes/interactive/components/settings-selector.d.ts.map +1 -0
  642. package/dist/runtime/modes/interactive/components/settings-selector.js +695 -0
  643. package/dist/runtime/modes/interactive/components/settings-selector.js.map +1 -0
  644. package/dist/runtime/modes/interactive/components/settings-submenu.d.ts +72 -0
  645. package/dist/runtime/modes/interactive/components/settings-submenu.d.ts.map +1 -0
  646. package/dist/runtime/modes/interactive/components/settings-submenu.js +165 -0
  647. package/dist/runtime/modes/interactive/components/settings-submenu.js.map +1 -0
  648. package/dist/runtime/modes/interactive/components/show-images-selector.d.ts +10 -0
  649. package/dist/runtime/modes/interactive/components/show-images-selector.d.ts.map +1 -0
  650. package/dist/runtime/modes/interactive/components/show-images-selector.js +39 -0
  651. package/dist/runtime/modes/interactive/components/show-images-selector.js.map +1 -0
  652. package/dist/runtime/modes/interactive/components/skill-invocation-message.d.ts +17 -0
  653. package/dist/runtime/modes/interactive/components/skill-invocation-message.d.ts.map +1 -0
  654. package/dist/runtime/modes/interactive/components/skill-invocation-message.js +47 -0
  655. package/dist/runtime/modes/interactive/components/skill-invocation-message.js.map +1 -0
  656. package/dist/runtime/modes/interactive/components/status-indicator.d.ts +28 -0
  657. package/dist/runtime/modes/interactive/components/status-indicator.d.ts.map +1 -0
  658. package/dist/runtime/modes/interactive/components/status-indicator.js +60 -0
  659. package/dist/runtime/modes/interactive/components/status-indicator.js.map +1 -0
  660. package/dist/runtime/modes/interactive/components/theme-selector.d.ts +11 -0
  661. package/dist/runtime/modes/interactive/components/theme-selector.d.ts.map +1 -0
  662. package/dist/runtime/modes/interactive/components/theme-selector.js +50 -0
  663. package/dist/runtime/modes/interactive/components/theme-selector.js.map +1 -0
  664. package/dist/runtime/modes/interactive/components/thinking-selector.d.ts +23 -0
  665. package/dist/runtime/modes/interactive/components/thinking-selector.d.ts.map +1 -0
  666. package/dist/runtime/modes/interactive/components/thinking-selector.js +109 -0
  667. package/dist/runtime/modes/interactive/components/thinking-selector.js.map +1 -0
  668. package/dist/runtime/modes/interactive/components/tool-execution.d.ts +63 -0
  669. package/dist/runtime/modes/interactive/components/tool-execution.d.ts.map +1 -0
  670. package/dist/runtime/modes/interactive/components/tool-execution.js +326 -0
  671. package/dist/runtime/modes/interactive/components/tool-execution.js.map +1 -0
  672. package/dist/runtime/modes/interactive/components/tree-selector.d.ts +94 -0
  673. package/dist/runtime/modes/interactive/components/tree-selector.d.ts.map +1 -0
  674. package/dist/runtime/modes/interactive/components/tree-selector.js +1245 -0
  675. package/dist/runtime/modes/interactive/components/tree-selector.js.map +1 -0
  676. package/dist/runtime/modes/interactive/components/trust-selector.d.ts +23 -0
  677. package/dist/runtime/modes/interactive/components/trust-selector.d.ts.map +1 -0
  678. package/dist/runtime/modes/interactive/components/trust-selector.js +91 -0
  679. package/dist/runtime/modes/interactive/components/trust-selector.js.map +1 -0
  680. package/dist/runtime/modes/interactive/components/user-message-selector.d.ts +30 -0
  681. package/dist/runtime/modes/interactive/components/user-message-selector.d.ts.map +1 -0
  682. package/dist/runtime/modes/interactive/components/user-message-selector.js +114 -0
  683. package/dist/runtime/modes/interactive/components/user-message-selector.js.map +1 -0
  684. package/dist/runtime/modes/interactive/components/user-message.d.ts +16 -0
  685. package/dist/runtime/modes/interactive/components/user-message.d.ts.map +1 -0
  686. package/dist/runtime/modes/interactive/components/user-message.js +49 -0
  687. package/dist/runtime/modes/interactive/components/user-message.js.map +1 -0
  688. package/dist/runtime/modes/interactive/components/visual-truncate.d.ts +24 -0
  689. package/dist/runtime/modes/interactive/components/visual-truncate.d.ts.map +1 -0
  690. package/dist/runtime/modes/interactive/components/visual-truncate.js +33 -0
  691. package/dist/runtime/modes/interactive/components/visual-truncate.js.map +1 -0
  692. package/dist/runtime/modes/interactive/external-editor.d.ts +12 -0
  693. package/dist/runtime/modes/interactive/external-editor.d.ts.map +1 -0
  694. package/dist/runtime/modes/interactive/external-editor.js +38 -0
  695. package/dist/runtime/modes/interactive/external-editor.js.map +1 -0
  696. package/dist/runtime/modes/interactive/interactive-mode.d.ts +446 -0
  697. package/dist/runtime/modes/interactive/interactive-mode.d.ts.map +1 -0
  698. package/dist/runtime/modes/interactive/interactive-mode.js +5509 -0
  699. package/dist/runtime/modes/interactive/interactive-mode.js.map +1 -0
  700. package/dist/runtime/modes/interactive/model-catalog-refresh.d.ts +7 -0
  701. package/dist/runtime/modes/interactive/model-catalog-refresh.d.ts.map +1 -0
  702. package/dist/runtime/modes/interactive/model-catalog-refresh.js +34 -0
  703. package/dist/runtime/modes/interactive/model-catalog-refresh.js.map +1 -0
  704. package/dist/runtime/modes/interactive/model-search.d.ts +12 -0
  705. package/dist/runtime/modes/interactive/model-search.d.ts.map +1 -0
  706. package/dist/runtime/modes/interactive/model-search.js +15 -0
  707. package/dist/runtime/modes/interactive/model-search.js.map +1 -0
  708. package/dist/runtime/modes/interactive/session-share.d.ts +16 -0
  709. package/dist/runtime/modes/interactive/session-share.d.ts.map +1 -0
  710. package/dist/runtime/modes/interactive/session-share.js +188 -0
  711. package/dist/runtime/modes/interactive/session-share.js.map +1 -0
  712. package/dist/runtime/modes/interactive/theme/dark.json +90 -0
  713. package/dist/runtime/modes/interactive/theme/light.json +89 -0
  714. package/dist/runtime/modes/interactive/theme/theme-controller.d.ts +40 -0
  715. package/dist/runtime/modes/interactive/theme/theme-controller.d.ts.map +1 -0
  716. package/dist/runtime/modes/interactive/theme/theme-controller.js +125 -0
  717. package/dist/runtime/modes/interactive/theme/theme-controller.js.map +1 -0
  718. package/dist/runtime/modes/interactive/theme/theme-schema.json +352 -0
  719. package/dist/runtime/modes/interactive/theme/theme.d.ts +122 -0
  720. package/dist/runtime/modes/interactive/theme/theme.d.ts.map +1 -0
  721. package/dist/runtime/modes/interactive/theme/theme.js +1092 -0
  722. package/dist/runtime/modes/interactive/theme/theme.js.map +1 -0
  723. package/dist/runtime/modes/json-event.d.ts +34 -0
  724. package/dist/runtime/modes/json-event.d.ts.map +1 -0
  725. package/dist/runtime/modes/json-event.js +29 -0
  726. package/dist/runtime/modes/json-event.js.map +1 -0
  727. package/dist/runtime/modes/print-mode.d.ts +28 -0
  728. package/dist/runtime/modes/print-mode.d.ts.map +1 -0
  729. package/dist/runtime/modes/print-mode.js +142 -0
  730. package/dist/runtime/modes/print-mode.js.map +1 -0
  731. package/dist/runtime/modes/rpc/jsonl.d.ts +17 -0
  732. package/dist/runtime/modes/rpc/jsonl.d.ts.map +1 -0
  733. package/dist/runtime/modes/rpc/jsonl.js +49 -0
  734. package/dist/runtime/modes/rpc/jsonl.js.map +1 -0
  735. package/dist/runtime/modes/rpc/rpc-client.d.ts +254 -0
  736. package/dist/runtime/modes/rpc/rpc-client.d.ts.map +1 -0
  737. package/dist/runtime/modes/rpc/rpc-client.js +495 -0
  738. package/dist/runtime/modes/rpc/rpc-client.js.map +1 -0
  739. package/dist/runtime/modes/rpc/rpc-mode.d.ts +20 -0
  740. package/dist/runtime/modes/rpc/rpc-mode.d.ts.map +1 -0
  741. package/dist/runtime/modes/rpc/rpc-mode.js +657 -0
  742. package/dist/runtime/modes/rpc/rpc-mode.js.map +1 -0
  743. package/dist/runtime/modes/rpc/rpc-types.d.ts +469 -0
  744. package/dist/runtime/modes/rpc/rpc-types.d.ts.map +1 -0
  745. package/dist/runtime/modes/rpc/rpc-types.js +8 -0
  746. package/dist/runtime/modes/rpc/rpc-types.js.map +1 -0
  747. package/dist/runtime/package-manager-cli.d.ts +9 -0
  748. package/dist/runtime/package-manager-cli.d.ts.map +1 -0
  749. package/dist/runtime/package-manager-cli.js +961 -0
  750. package/dist/runtime/package-manager-cli.js.map +1 -0
  751. package/dist/runtime/rpc-entry.d.ts +3 -0
  752. package/dist/runtime/rpc-entry.d.ts.map +1 -0
  753. package/dist/runtime/rpc-entry.js +11 -0
  754. package/dist/runtime/rpc-entry.js.map +1 -0
  755. package/dist/runtime/server/create-harness.d.ts +26 -0
  756. package/dist/runtime/server/create-harness.d.ts.map +1 -0
  757. package/dist/runtime/server/create-harness.js +106 -0
  758. package/dist/runtime/server/create-harness.js.map +1 -0
  759. package/dist/runtime/utils/abort.d.ts +5 -0
  760. package/dist/runtime/utils/abort.d.ts.map +1 -0
  761. package/dist/runtime/utils/abort.js +48 -0
  762. package/dist/runtime/utils/abort.js.map +1 -0
  763. package/dist/runtime/utils/ansi.d.ts +2 -0
  764. package/dist/runtime/utils/ansi.d.ts.map +1 -0
  765. package/dist/runtime/utils/ansi.js +52 -0
  766. package/dist/runtime/utils/ansi.js.map +1 -0
  767. package/dist/runtime/utils/changelog.d.ts +22 -0
  768. package/dist/runtime/utils/changelog.d.ts.map +1 -0
  769. package/dist/runtime/utils/changelog.js +165 -0
  770. package/dist/runtime/utils/changelog.js.map +1 -0
  771. package/dist/runtime/utils/child-process.d.ts +18 -0
  772. package/dist/runtime/utils/child-process.d.ts.map +1 -0
  773. package/dist/runtime/utils/child-process.js +106 -0
  774. package/dist/runtime/utils/child-process.js.map +1 -0
  775. package/dist/runtime/utils/clipboard-image.d.ts +11 -0
  776. package/dist/runtime/utils/clipboard-image.d.ts.map +1 -0
  777. package/dist/runtime/utils/clipboard-image.js +245 -0
  778. package/dist/runtime/utils/clipboard-image.js.map +1 -0
  779. package/dist/runtime/utils/clipboard-native.d.ts +11 -0
  780. package/dist/runtime/utils/clipboard-native.d.ts.map +1 -0
  781. package/dist/runtime/utils/clipboard-native.js +20 -0
  782. package/dist/runtime/utils/clipboard-native.js.map +1 -0
  783. package/dist/runtime/utils/clipboard.d.ts +4 -0
  784. package/dist/runtime/utils/clipboard.d.ts.map +1 -0
  785. package/dist/runtime/utils/clipboard.js +161 -0
  786. package/dist/runtime/utils/clipboard.js.map +1 -0
  787. package/dist/runtime/utils/deprecation.d.ts +4 -0
  788. package/dist/runtime/utils/deprecation.d.ts.map +1 -0
  789. package/dist/runtime/utils/deprecation.js +13 -0
  790. package/dist/runtime/utils/deprecation.js.map +1 -0
  791. package/dist/runtime/utils/exif-orientation.d.ts +5 -0
  792. package/dist/runtime/utils/exif-orientation.d.ts.map +1 -0
  793. package/dist/runtime/utils/exif-orientation.js +158 -0
  794. package/dist/runtime/utils/exif-orientation.js.map +1 -0
  795. package/dist/runtime/utils/frontmatter.d.ts +8 -0
  796. package/dist/runtime/utils/frontmatter.d.ts.map +1 -0
  797. package/dist/runtime/utils/frontmatter.js +27 -0
  798. package/dist/runtime/utils/frontmatter.js.map +1 -0
  799. package/dist/runtime/utils/fs-watch.d.ts +5 -0
  800. package/dist/runtime/utils/fs-watch.d.ts.map +1 -0
  801. package/dist/runtime/utils/fs-watch.js +25 -0
  802. package/dist/runtime/utils/fs-watch.js.map +1 -0
  803. package/dist/runtime/utils/git.d.ts +26 -0
  804. package/dist/runtime/utils/git.d.ts.map +1 -0
  805. package/dist/runtime/utils/git.js +195 -0
  806. package/dist/runtime/utils/git.js.map +1 -0
  807. package/dist/runtime/utils/html.d.ts +7 -0
  808. package/dist/runtime/utils/html.d.ts.map +1 -0
  809. package/dist/runtime/utils/html.js +40 -0
  810. package/dist/runtime/utils/html.js.map +1 -0
  811. package/dist/runtime/utils/image-convert.d.ts +10 -0
  812. package/dist/runtime/utils/image-convert.d.ts.map +1 -0
  813. package/dist/runtime/utils/image-convert.js +45 -0
  814. package/dist/runtime/utils/image-convert.js.map +1 -0
  815. package/dist/runtime/utils/image-process.d.ts +18 -0
  816. package/dist/runtime/utils/image-process.d.ts.map +1 -0
  817. package/dist/runtime/utils/image-process.js +83 -0
  818. package/dist/runtime/utils/image-process.js.map +1 -0
  819. package/dist/runtime/utils/image-resize-core.d.ts +30 -0
  820. package/dist/runtime/utils/image-resize-core.d.ts.map +1 -0
  821. package/dist/runtime/utils/image-resize-core.js +124 -0
  822. package/dist/runtime/utils/image-resize-core.js.map +1 -0
  823. package/dist/runtime/utils/image-resize-worker.d.ts +2 -0
  824. package/dist/runtime/utils/image-resize-worker.d.ts.map +1 -0
  825. package/dist/runtime/utils/image-resize-worker.js +31 -0
  826. package/dist/runtime/utils/image-resize-worker.js.map +1 -0
  827. package/dist/runtime/utils/image-resize.d.ts +16 -0
  828. package/dist/runtime/utils/image-resize.d.ts.map +1 -0
  829. package/dist/runtime/utils/image-resize.js +97 -0
  830. package/dist/runtime/utils/image-resize.js.map +1 -0
  831. package/dist/runtime/utils/json.d.ts +3 -0
  832. package/dist/runtime/utils/json.d.ts.map +1 -0
  833. package/dist/runtime/utils/json.js +7 -0
  834. package/dist/runtime/utils/json.js.map +1 -0
  835. package/dist/runtime/utils/management-http.d.ts +25 -0
  836. package/dist/runtime/utils/management-http.d.ts.map +1 -0
  837. package/dist/runtime/utils/management-http.js +54 -0
  838. package/dist/runtime/utils/management-http.js.map +1 -0
  839. package/dist/runtime/utils/mime.d.ts +3 -0
  840. package/dist/runtime/utils/mime.d.ts.map +1 -0
  841. package/dist/runtime/utils/mime.js +110 -0
  842. package/dist/runtime/utils/mime.js.map +1 -0
  843. package/dist/runtime/utils/open-browser.d.ts +9 -0
  844. package/dist/runtime/utils/open-browser.d.ts.map +1 -0
  845. package/dist/runtime/utils/open-browser.js +22 -0
  846. package/dist/runtime/utils/open-browser.js.map +1 -0
  847. package/dist/runtime/utils/paths.d.ts +34 -0
  848. package/dist/runtime/utils/paths.d.ts.map +1 -0
  849. package/dist/runtime/utils/paths.js +114 -0
  850. package/dist/runtime/utils/paths.js.map +1 -0
  851. package/dist/runtime/utils/photon.d.ts +21 -0
  852. package/dist/runtime/utils/photon.d.ts.map +1 -0
  853. package/dist/runtime/utils/photon.js +121 -0
  854. package/dist/runtime/utils/photon.js.map +1 -0
  855. package/dist/runtime/utils/pi-user-agent.d.ts +2 -0
  856. package/dist/runtime/utils/pi-user-agent.d.ts.map +1 -0
  857. package/dist/runtime/utils/pi-user-agent.js +5 -0
  858. package/dist/runtime/utils/pi-user-agent.js.map +1 -0
  859. package/dist/runtime/utils/shell.d.ts +34 -0
  860. package/dist/runtime/utils/shell.d.ts.map +1 -0
  861. package/dist/runtime/utils/shell.js +214 -0
  862. package/dist/runtime/utils/shell.js.map +1 -0
  863. package/dist/runtime/utils/sleep.d.ts +5 -0
  864. package/dist/runtime/utils/sleep.d.ts.map +1 -0
  865. package/dist/runtime/utils/sleep.js +17 -0
  866. package/dist/runtime/utils/sleep.js.map +1 -0
  867. package/dist/runtime/utils/syntax-highlight.d.ts +13 -0
  868. package/dist/runtime/utils/syntax-highlight.d.ts.map +1 -0
  869. package/dist/runtime/utils/syntax-highlight.js +177 -0
  870. package/dist/runtime/utils/syntax-highlight.js.map +1 -0
  871. package/dist/runtime/utils/text.d.ts +8 -0
  872. package/dist/runtime/utils/text.d.ts.map +1 -0
  873. package/dist/runtime/utils/text.js +9 -0
  874. package/dist/runtime/utils/text.js.map +1 -0
  875. package/dist/runtime/utils/tool-result-images.d.ts +19 -0
  876. package/dist/runtime/utils/tool-result-images.d.ts.map +1 -0
  877. package/dist/runtime/utils/tool-result-images.js +45 -0
  878. package/dist/runtime/utils/tool-result-images.js.map +1 -0
  879. package/dist/runtime/utils/tools-manager.d.ts +12 -0
  880. package/dist/runtime/utils/tools-manager.d.ts.map +1 -0
  881. package/dist/runtime/utils/tools-manager.js +321 -0
  882. package/dist/runtime/utils/tools-manager.js.map +1 -0
  883. package/dist/runtime/utils/version-check.d.ts +19 -0
  884. package/dist/runtime/utils/version-check.d.ts.map +1 -0
  885. package/dist/runtime/utils/version-check.js +79 -0
  886. package/dist/runtime/utils/version-check.js.map +1 -0
  887. package/dist/runtime/utils/windows-self-update.d.ts +3 -0
  888. package/dist/runtime/utils/windows-self-update.d.ts.map +1 -0
  889. package/dist/runtime/utils/windows-self-update.js +77 -0
  890. package/dist/runtime/utils/windows-self-update.js.map +1 -0
  891. package/dist/update.js +134 -0
  892. package/dist/workflows.js +264 -0
  893. package/docs/compaction.md +416 -0
  894. package/docs/containerization.md +111 -0
  895. package/docs/custom-provider.md +777 -0
  896. package/docs/development.md +71 -0
  897. package/docs/docs.json +156 -0
  898. package/docs/environment-variables.md +94 -0
  899. package/docs/extensions.md +3002 -0
  900. package/docs/images/doom-extension.png +0 -0
  901. package/docs/images/exy.png +0 -0
  902. package/docs/images/interactive-mode.png +0 -0
  903. package/docs/images/tree-view.png +0 -0
  904. package/docs/index.md +84 -0
  905. package/docs/json.md +98 -0
  906. package/docs/keybindings.md +236 -0
  907. package/docs/llama-cpp.md +101 -0
  908. package/docs/models.md +571 -0
  909. package/docs/packages.md +228 -0
  910. package/docs/prompt-templates.md +96 -0
  911. package/docs/providers.md +317 -0
  912. package/docs/quickstart.md +167 -0
  913. package/docs/rpc.md +1618 -0
  914. package/docs/sdk.md +1219 -0
  915. package/docs/security.md +59 -0
  916. package/docs/session-format.md +438 -0
  917. package/docs/sessions.md +145 -0
  918. package/docs/settings.md +361 -0
  919. package/docs/shell-aliases.md +13 -0
  920. package/docs/skills.md +232 -0
  921. package/docs/terminal-setup.md +165 -0
  922. package/docs/termux.md +127 -0
  923. package/docs/themes.md +320 -0
  924. package/docs/tmux.md +63 -0
  925. package/docs/tui.md +942 -0
  926. package/docs/usage.md +310 -0
  927. package/docs/windows.md +39 -0
  928. package/examples/README.md +25 -0
  929. package/examples/extensions/README.md +213 -0
  930. package/examples/extensions/auto-commit-on-exit.ts +49 -0
  931. package/examples/extensions/bash-spawn-hook.ts +30 -0
  932. package/examples/extensions/bookmark.ts +50 -0
  933. package/examples/extensions/border-status-editor.ts +150 -0
  934. package/examples/extensions/built-in-tool-renderer.ts +249 -0
  935. package/examples/extensions/claude-rules.ts +86 -0
  936. package/examples/extensions/commands.ts +72 -0
  937. package/examples/extensions/confirm-destructive.ts +59 -0
  938. package/examples/extensions/custom-compaction.ts +117 -0
  939. package/examples/extensions/custom-footer.ts +64 -0
  940. package/examples/extensions/custom-header.ts +73 -0
  941. package/examples/extensions/custom-provider-anthropic/index.ts +611 -0
  942. package/examples/extensions/custom-provider-anthropic/package-lock.json +24 -0
  943. package/examples/extensions/custom-provider-anthropic/package.json +19 -0
  944. package/examples/extensions/custom-provider-gitlab-duo/index.ts +405 -0
  945. package/examples/extensions/custom-provider-gitlab-duo/package.json +16 -0
  946. package/examples/extensions/custom-provider-gitlab-duo/test.ts +82 -0
  947. package/examples/extensions/dirty-repo-guard.ts +56 -0
  948. package/examples/extensions/doom-overlay/README.md +46 -0
  949. package/examples/extensions/doom-overlay/doom/build/doom.js +21 -0
  950. package/examples/extensions/doom-overlay/doom/build/doom.wasm +0 -0
  951. package/examples/extensions/doom-overlay/doom/build.sh +152 -0
  952. package/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +72 -0
  953. package/examples/extensions/doom-overlay/doom-component.ts +132 -0
  954. package/examples/extensions/doom-overlay/doom-engine.ts +173 -0
  955. package/examples/extensions/doom-overlay/doom-keys.ts +104 -0
  956. package/examples/extensions/doom-overlay/index.ts +74 -0
  957. package/examples/extensions/doom-overlay/wad-finder.ts +55 -0
  958. package/examples/extensions/dynamic-resources/SKILL.md +8 -0
  959. package/examples/extensions/dynamic-resources/dynamic.json +79 -0
  960. package/examples/extensions/dynamic-resources/dynamic.md +5 -0
  961. package/examples/extensions/dynamic-resources/index.ts +15 -0
  962. package/examples/extensions/dynamic-tools.ts +74 -0
  963. package/examples/extensions/entry-renderer.ts +41 -0
  964. package/examples/extensions/event-bus.ts +43 -0
  965. package/examples/extensions/file-trigger.ts +41 -0
  966. package/examples/extensions/git-checkpoint.ts +53 -0
  967. package/examples/extensions/git-merge-and-resolve.ts +115 -0
  968. package/examples/extensions/github-issue-autocomplete.ts +185 -0
  969. package/examples/extensions/gondolin/index.ts +531 -0
  970. package/examples/extensions/gondolin/package-lock.json +185 -0
  971. package/examples/extensions/gondolin/package.json +19 -0
  972. package/examples/extensions/handoff.ts +190 -0
  973. package/examples/extensions/hello.ts +26 -0
  974. package/examples/extensions/hidden-thinking-label.ts +53 -0
  975. package/examples/extensions/inline-bash.ts +94 -0
  976. package/examples/extensions/input-transform-streaming.ts +39 -0
  977. package/examples/extensions/input-transform.ts +43 -0
  978. package/examples/extensions/interactive-shell.ts +196 -0
  979. package/examples/extensions/kimi-deferred-tools.ts +61 -0
  980. package/examples/extensions/mac-system-theme.ts +47 -0
  981. package/examples/extensions/message-renderer.ts +59 -0
  982. package/examples/extensions/minimal-mode.ts +426 -0
  983. package/examples/extensions/modal-editor.ts +85 -0
  984. package/examples/extensions/model-status.ts +31 -0
  985. package/examples/extensions/notify.ts +57 -0
  986. package/examples/extensions/overlay-qa-tests.ts +1450 -0
  987. package/examples/extensions/overlay-test.ts +153 -0
  988. package/examples/extensions/permission-gate.ts +34 -0
  989. package/examples/extensions/pirate.ts +47 -0
  990. package/examples/extensions/plan-mode/README.md +66 -0
  991. package/examples/extensions/plan-mode/index.ts +390 -0
  992. package/examples/extensions/plan-mode/utils.ts +168 -0
  993. package/examples/extensions/preset.ts +436 -0
  994. package/examples/extensions/project-trust.ts +64 -0
  995. package/examples/extensions/prompt-customizer.ts +97 -0
  996. package/examples/extensions/protected-paths.ts +30 -0
  997. package/examples/extensions/provider-payload.ts +18 -0
  998. package/examples/extensions/qna.ts +118 -0
  999. package/examples/extensions/question.ts +286 -0
  1000. package/examples/extensions/questionnaire.ts +448 -0
  1001. package/examples/extensions/rainbow-editor.ts +88 -0
  1002. package/examples/extensions/reload-runtime.ts +37 -0
  1003. package/examples/extensions/rpc-demo.ts +118 -0
  1004. package/examples/extensions/sandbox/index.ts +321 -0
  1005. package/examples/extensions/sandbox/package-lock.json +92 -0
  1006. package/examples/extensions/sandbox/package.json +19 -0
  1007. package/examples/extensions/send-user-message.ts +97 -0
  1008. package/examples/extensions/session-name.ts +27 -0
  1009. package/examples/extensions/shutdown-command.ts +63 -0
  1010. package/examples/extensions/snake.ts +343 -0
  1011. package/examples/extensions/space-invaders.ts +560 -0
  1012. package/examples/extensions/ssh.ts +220 -0
  1013. package/examples/extensions/status-line.ts +32 -0
  1014. package/examples/extensions/structured-output.ts +65 -0
  1015. package/examples/extensions/subagent/README.md +177 -0
  1016. package/examples/extensions/subagent/agents/planner.md +37 -0
  1017. package/examples/extensions/subagent/agents/reviewer.md +35 -0
  1018. package/examples/extensions/subagent/agents/scout.md +50 -0
  1019. package/examples/extensions/subagent/agents/worker.md +24 -0
  1020. package/examples/extensions/subagent/agents.ts +157 -0
  1021. package/examples/extensions/subagent/index.ts +1038 -0
  1022. package/examples/extensions/subagent/prompts/implement-and-review.md +10 -0
  1023. package/examples/extensions/subagent/prompts/implement.md +10 -0
  1024. package/examples/extensions/subagent/prompts/scout-and-plan.md +9 -0
  1025. package/examples/extensions/summarize.ts +199 -0
  1026. package/examples/extensions/system-prompt-header.ts +17 -0
  1027. package/examples/extensions/tic-tac-toe.ts +1008 -0
  1028. package/examples/extensions/timed-confirm.ts +70 -0
  1029. package/examples/extensions/titlebar-spinner.ts +58 -0
  1030. package/examples/extensions/todo.ts +297 -0
  1031. package/examples/extensions/tool-override.ts +144 -0
  1032. package/examples/extensions/tools.ts +146 -0
  1033. package/examples/extensions/trigger-compact.ts +50 -0
  1034. package/examples/extensions/truncated-tool.ts +195 -0
  1035. package/examples/extensions/widget-placement.ts +9 -0
  1036. package/examples/extensions/with-deps/index.ts +32 -0
  1037. package/examples/extensions/with-deps/package-lock.json +31 -0
  1038. package/examples/extensions/with-deps/package.json +22 -0
  1039. package/examples/extensions/working-indicator.ts +123 -0
  1040. package/examples/extensions/working-message-test.ts +25 -0
  1041. package/examples/rpc-extension-ui.ts +641 -0
  1042. package/examples/sdk/01-minimal.ts +26 -0
  1043. package/examples/sdk/02-custom-model.ts +49 -0
  1044. package/examples/sdk/03-custom-prompt.ts +75 -0
  1045. package/examples/sdk/04-skills.ts +55 -0
  1046. package/examples/sdk/05-tools.ts +48 -0
  1047. package/examples/sdk/06-extensions.ts +99 -0
  1048. package/examples/sdk/07-context-files.ts +47 -0
  1049. package/examples/sdk/08-prompt-templates.ts +51 -0
  1050. package/examples/sdk/09-api-keys-and-oauth.ts +34 -0
  1051. package/examples/sdk/10-settings.ts +53 -0
  1052. package/examples/sdk/11-sessions.ts +52 -0
  1053. package/examples/sdk/12-full-control.ts +74 -0
  1054. package/examples/sdk/13-session-runtime.ts +67 -0
  1055. package/examples/sdk/README.md +140 -0
  1056. package/package.json +66 -12
  1057. package/upstream.json +6 -0
  1058. package/workflows/cm/LICENSE +21 -0
  1059. package/workflows/cm/README.md +333 -0
  1060. package/workflows/cm/THIRD_PARTY_NOTICES.md +29 -0
  1061. package/workflows/cm/VERSION +1 -0
  1062. package/workflows/cm/agents/cm-backend-agent.md +34 -0
  1063. package/workflows/cm/agents/cm-contract-agent.md +34 -0
  1064. package/workflows/cm/agents/cm-database-agent.md +34 -0
  1065. package/workflows/cm/agents/cm-frontend-agent.md +33 -0
  1066. package/workflows/cm/agents/cm-miniprogram-agent.md +33 -0
  1067. package/workflows/cm/agents/cm-ui-agent.md +34 -0
  1068. package/workflows/cm/assets/docs/command-picker-mobile.svg +56 -0
  1069. package/workflows/cm/assets/docs/command-picker.svg +56 -0
  1070. package/workflows/cm/assets/docs/user-guide-hero-mobile.svg +35 -0
  1071. package/workflows/cm/assets/docs/user-guide-hero.svg +36 -0
  1072. package/workflows/cm/assets/readme/delivery-flow.svg +86 -0
  1073. package/workflows/cm/assets/readme/hero.svg +77 -0
  1074. package/workflows/cm/assets/readme/recovery-record.svg +73 -0
  1075. package/workflows/cm/assets/readme/test-evidence.svg +64 -0
  1076. package/workflows/cm/compat/claude-commands/cm-ai.md +3 -0
  1077. package/workflows/cm/compat/claude-commands/cm-check.md +3 -0
  1078. package/workflows/cm/compat/claude-commands/cm-fix.md +3 -0
  1079. package/workflows/cm/compat/claude-commands/cm-idea.md +3 -0
  1080. package/workflows/cm/compat/claude-commands/cm-init.md +3 -0
  1081. package/workflows/cm/compat/claude-commands/cm-prd.md +3 -0
  1082. package/workflows/cm/compat/claude-commands/cm-refactor.md +3 -0
  1083. package/workflows/cm/compat/claude-commands/cm-test.md +3 -0
  1084. package/workflows/cm/docs/architecture.md +130 -0
  1085. package/workflows/cm/docs/fixes/.reviews/fix-manifest-runtime-checkbox-drift-r1.md +33 -0
  1086. package/workflows/cm/docs/fixes/.reviews/fix-manifest-runtime-checkbox-drift-r2.md +31 -0
  1087. package/workflows/cm/docs/fixes/.reviews/fix-model-call-boundary-identity-T-FIX-model-call-boundary-identity-a1-handoff.json +56 -0
  1088. package/workflows/cm/docs/fixes/.reviews/fix-model-call-boundary-identity-T-FIX-model-call-boundary-identity-a2-handoff.json +85 -0
  1089. package/workflows/cm/docs/fixes/.reviews/fix-model-call-boundary-identity-T-FIX-model-call-boundary-identity-r1.md +53 -0
  1090. package/workflows/cm/docs/fixes/.reviews/fix-model-call-boundary-identity-T-FIX-model-call-boundary-identity-r2.md +80 -0
  1091. package/workflows/cm/docs/fixes/.reviews/fix-review-evidence-scope-honesty-T-FIX-review-evidence-scope-honesty-a1-handoff.json +35 -0
  1092. package/workflows/cm/docs/fixes/.reviews/fix-review-evidence-scope-honesty-T-FIX-review-evidence-scope-honesty-r1.md +33 -0
  1093. package/workflows/cm/docs/fixes/.reviews/fix-windows-cp1252-log-output-r1.md +30 -0
  1094. package/workflows/cm/docs/fixes/.reviews/fix-windows-cp1252-log-output-r2.md +16 -0
  1095. package/workflows/cm/docs/fixes/.reviews/openai-compatible-depth-fixture-T-FIX-openai-compatible-depth-fixture-a1-handoff.json +40 -0
  1096. package/workflows/cm/docs/fixes/.reviews/openai-compatible-depth-fixture-T-FIX-openai-compatible-depth-fixture-r1.md +30 -0
  1097. package/workflows/cm/docs/fixes/20260729-windows-cp1252-log-output.md +65 -0
  1098. package/workflows/cm/docs/fixes/20260804-manifest-runtime-checkbox-drift.md +67 -0
  1099. package/workflows/cm/docs/fixes/20260806-model-call-boundary-identity.md +80 -0
  1100. package/workflows/cm/docs/fixes/20260807-prelanding-integrity.md +58 -0
  1101. package/workflows/cm/docs/fixes/20260826-openai-compatible-depth-fixture.md +39 -0
  1102. package/workflows/cm/docs/installation.md +149 -0
  1103. package/workflows/cm/docs/sample-prd/prd-funding-rate-alert.md +42 -0
  1104. package/workflows/cm/docs/sample-specs/docs//351/234/200/346/261/202/347/244/272/344/276/213.md +24 -0
  1105. package/workflows/cm/docs/user-guide.md +521 -0
  1106. 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
  1107. 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
  1108. 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
  1109. 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
  1110. 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
  1111. package/workflows/cm/package.json +45 -0
  1112. package/workflows/cm/runtime/external-expert.md +302 -0
  1113. package/workflows/cm/runtime/logging.md +206 -0
  1114. package/workflows/cm/runtime/model-efficiency.md +201 -0
  1115. package/workflows/cm/runtime/orchestration.md +113 -0
  1116. package/workflows/cm/runtime/project-context.md +37 -0
  1117. package/workflows/cm/runtime/review.md +114 -0
  1118. package/workflows/cm/runtime/task-gates.md +114 -0
  1119. package/workflows/cm/runtime/task-handoff.schema.json +103 -0
  1120. package/workflows/cm/runtime/test-contract.md +212 -0
  1121. package/workflows/cm/runtime/workflow-config.md +115 -0
  1122. package/workflows/cm/runtime/workflow-routing.md +82 -0
  1123. package/workflows/cm/scripts/cm-check-runtime.ps1 +69 -0
  1124. package/workflows/cm/scripts/cm-check-runtime.sh +866 -0
  1125. package/workflows/cm/scripts/cm-log-event.py +1270 -0
  1126. package/workflows/cm/scripts/cm-openai-compatible-call.py +661 -0
  1127. package/workflows/cm/scripts/cm-prd-review-gate.py +319 -0
  1128. package/workflows/cm/scripts/cm-prd-timing.py +272 -0
  1129. package/workflows/cm/scripts/cm-spec-manifest.py +171 -0
  1130. package/workflows/cm/scripts/cm-task-gate.py +760 -0
  1131. package/workflows/cm/scripts/cm-usage-report.py +516 -0
  1132. package/workflows/cm/scripts/cm_workflow_config.py +612 -0
  1133. package/workflows/cm/scripts/scan-public-safety.py +89 -0
  1134. package/workflows/cm/scripts/test-cm-log-event.py +1213 -0
  1135. package/workflows/cm/scripts/test-cm-openai-compatible-call.py +1185 -0
  1136. package/workflows/cm/scripts/test-cm-prd-review-gate.py +243 -0
  1137. package/workflows/cm/scripts/test-cm-prd-timing.py +168 -0
  1138. package/workflows/cm/scripts/test-cm-usage-report.py +584 -0
  1139. package/workflows/cm/scripts/test-shell-compat.sh +338 -0
  1140. package/workflows/cm/scripts/test-spec-manifest.py +220 -0
  1141. package/workflows/cm/scripts/test-task-gate.py +540 -0
  1142. package/workflows/cm/scripts/test-workflow-config.py +394 -0
  1143. package/workflows/cm/scripts/validate-public-repo.py +200 -0
  1144. package/workflows/cm/scripts/validate-test-cases.py +127 -0
  1145. package/workflows/cm/skills/cm-ai/SKILL.md +120 -0
  1146. package/workflows/cm/skills/cm-ai/references/N1-init.md +92 -0
  1147. package/workflows/cm/skills/cm-ai/references/N2-enter-feature.md +38 -0
  1148. package/workflows/cm/skills/cm-ai/references/N3-execute-task.md +99 -0
  1149. package/workflows/cm/skills/cm-ai/references/N4-review.md +96 -0
  1150. package/workflows/cm/skills/cm-ai/references/N5-mark-done.md +107 -0
  1151. package/workflows/cm/skills/cm-ai/references/N6-qa-eval.md +102 -0
  1152. package/workflows/cm/skills/cm-ai/references/N7-context.md +23 -0
  1153. package/workflows/cm/skills/cm-ai/references/N8-finish.md +97 -0
  1154. package/workflows/cm/skills/cm-backend-engineer/SKILL.md +100 -0
  1155. package/workflows/cm/skills/cm-check/SKILL.md +60 -0
  1156. package/workflows/cm/skills/cm-contract-engineer/SKILL.md +136 -0
  1157. package/workflows/cm/skills/cm-database-engineer/SKILL.md +89 -0
  1158. package/workflows/cm/skills/cm-devops-engineer/SKILL.md +137 -0
  1159. package/workflows/cm/skills/cm-doc-syncer/SKILL.md +150 -0
  1160. package/workflows/cm/skills/cm-finance-expert/SKILL.md +85 -0
  1161. package/workflows/cm/skills/cm-fix/SKILL.md +159 -0
  1162. package/workflows/cm/skills/cm-frontend-engineer/SKILL.md +127 -0
  1163. package/workflows/cm/skills/cm-idea/SKILL.md +42 -0
  1164. package/workflows/cm/skills/cm-idea/references/domains/trading.md +97 -0
  1165. package/workflows/cm/skills/cm-idea/references/example-prd.md +92 -0
  1166. package/workflows/cm/skills/cm-idea/references/idea-to-prd.md +282 -0
  1167. package/workflows/cm/skills/cm-init/SKILL.md +158 -0
  1168. package/workflows/cm/skills/cm-miniprogram-engineer/SKILL.md +141 -0
  1169. package/workflows/cm/skills/cm-miniprogram-engineer/references/platform-readiness.md +58 -0
  1170. package/workflows/cm/skills/cm-miniprogram-engineer/references/release-checklist.md +59 -0
  1171. package/workflows/cm/skills/cm-prd/SKILL.md +521 -0
  1172. package/workflows/cm/skills/cm-prd/references/brownfield.md +13 -0
  1173. package/workflows/cm/skills/cm-prd/references/change-mode.md +145 -0
  1174. package/workflows/cm/skills/cm-prd/references/context-scope.md +62 -0
  1175. package/workflows/cm/skills/cm-prd/references/greenfield.md +80 -0
  1176. package/workflows/cm/skills/cm-prd/references/phase-timing.md +60 -0
  1177. package/workflows/cm/skills/cm-prd/references/spec-self-check.md +22 -0
  1178. package/workflows/cm/skills/cm-product-manager/SKILL.md +83 -0
  1179. package/workflows/cm/skills/cm-qa-engineer/SKILL.md +142 -0
  1180. package/workflows/cm/skills/cm-refactor/SKILL.md +209 -0
  1181. package/workflows/cm/skills/cm-test/SKILL.md +259 -0
  1182. package/workflows/cm/skills/cm-ui-engineer/SKILL.md +105 -0
  1183. package/workflows/cm/skills/codebase-context/SKILL.md +489 -0
  1184. package/workflows/cm/skills/darwin-skill/NOTICE.md +26 -0
  1185. package/workflows/cm/skills/darwin-skill/README.md +272 -0
  1186. package/workflows/cm/skills/darwin-skill/SKILL.md +492 -0
  1187. package/workflows/cm/skills/darwin-skill/references/runtime-neutrality.md +68 -0
  1188. package/workflows/cm/skills/darwin-skill/references/skilllens-evidence.md +142 -0
  1189. package/workflows/cm/skills/darwin-skill/scripts/screenshot.mjs +71 -0
  1190. package/workflows/cm/skills/darwin-skill/templates/result-card-dark.html +698 -0
  1191. package/workflows/cm/skills/darwin-skill/templates/result-card-white.html +444 -0
  1192. package/workflows/cm/skills/darwin-skill/templates/result-card.html +616 -0
  1193. package/workflows/cm/skills/external-expert/SKILL.md +250 -0
  1194. package/workflows/cm/templates/arch-reference.md +68 -0
  1195. package/workflows/cm/templates/auto-update/cm-announce.sh +19 -0
  1196. package/workflows/cm/templates/auto-update/cm-update.sh +274 -0
  1197. package/workflows/cm/templates/cm-workflow.yml +52 -0
  1198. package/workflows/cm/templates/dashboard/dashboard.html +153 -0
  1199. package/workflows/cm/templates/dashboard/serve.sh +10 -0
  1200. package/workflows/cm/templates/hooks/pre-commit-cm-task-check +67 -0
  1201. package/workflows/cm/templates/pixel/cm-pixel.html +388 -0
  1202. package/workflows/cm/templates/pixel/cm-pixel.sh +212 -0
  1203. package/workflows/cm/templates/pixel/dev/README.md +20 -0
  1204. package/workflows/cm/templates/pixel/dev/atlas-preview.png +0 -0
  1205. package/workflows/cm/templates/pixel/dev/build.py +55 -0
  1206. package/workflows/cm/templates/pixel/dev/sheets/roguelikeChar_transparent.png +0 -0
  1207. package/workflows/cm/templates/pixel/dev/sheets/roguelikeCity_tilemap.png +0 -0
  1208. package/workflows/cm/templates/pixel/dev/sheets/roguelikeIndoor_transparent.png +0 -0
  1209. package/workflows/cm/templates/pixel/dev/template.html +388 -0
  1210. package/workflows/cm/templates/pixel/serve.sh +12 -0
  1211. package/workflows/cm/templates/refactor/cm-refactor-denies.json +14 -0
  1212. package/workflows/cm/templates/rules/backend-api.md +36 -0
  1213. package/workflows/cm/templates/rules/coding-style.md +44 -0
  1214. package/workflows/cm/templates/rules/database.md +27 -0
  1215. package/workflows/cm/templates/rules/finance.md +32 -0
  1216. package/workflows/cm/templates/rules/frontend.md +32 -0
  1217. package/workflows/cm/templates/rules/git-workflow.md +25 -0
  1218. package/workflows/cm/templates/rules/miniprogram.md +31 -0
  1219. package/workflows/cm/templates/rules/security.md +31 -0
  1220. package/workflows/cm/templates/rules/smart-contract.md +28 -0
  1221. package/workflows/cm/templates/rules/testing.md +36 -0
  1222. package/workflows/cm/templates/statusline/cm-statusline.sh +73 -0
  1223. package/workflows/cm/templates/ui-lens/cm-ui-lens-extract.mjs +55 -0
  1224. package/workflows/cm-plugin/LICENSE +21 -0
  1225. package/workflows/cm-plugin/README.md +195 -0
  1226. package/workflows/cm-plugin/VERSION +1 -0
  1227. package/workflows/cm-plugin/agents/cm-plugin-backend-agent.md +34 -0
  1228. package/workflows/cm-plugin/agents/cm-plugin-extension-agent.md +35 -0
  1229. package/workflows/cm-plugin/agents/cm-plugin-ui-agent.md +34 -0
  1230. package/workflows/cm-plugin/commands/cm-plugin-ai-nodes/N1-init.md +60 -0
  1231. package/workflows/cm-plugin/commands/cm-plugin-ai-nodes/N2-enter-feature.md +51 -0
  1232. package/workflows/cm-plugin/commands/cm-plugin-ai-nodes/N3-execute-task.md +32 -0
  1233. package/workflows/cm-plugin/commands/cm-plugin-ai-nodes/N4-review.md +58 -0
  1234. package/workflows/cm-plugin/commands/cm-plugin-ai-nodes/N5-mark-done.md +80 -0
  1235. package/workflows/cm-plugin/commands/cm-plugin-ai-nodes/N6-qa-eval.md +69 -0
  1236. package/workflows/cm-plugin/commands/cm-plugin-ai-nodes/N7-context.md +23 -0
  1237. package/workflows/cm-plugin/commands/cm-plugin-ai-nodes/N8-finish.md +61 -0
  1238. package/workflows/cm-plugin/commands/cm-plugin-prd-modes/brownfield.md +13 -0
  1239. package/workflows/cm-plugin/commands/cm-plugin-prd-modes/change-mode.md +130 -0
  1240. package/workflows/cm-plugin/commands/cm-plugin-prd-modes/greenfield.md +82 -0
  1241. package/workflows/cm-plugin/commands/cm-plugin:ai.md +75 -0
  1242. package/workflows/cm-plugin/commands/cm-plugin:check.md +66 -0
  1243. package/workflows/cm-plugin/commands/cm-plugin:fix.md +100 -0
  1244. package/workflows/cm-plugin/commands/cm-plugin:idea.md +29 -0
  1245. package/workflows/cm-plugin/commands/cm-plugin:init.md +145 -0
  1246. package/workflows/cm-plugin/commands/cm-plugin:prd.md +403 -0
  1247. package/workflows/cm-plugin/commands/cm-plugin:refactor.md +147 -0
  1248. package/workflows/cm-plugin/commands/cm-plugin:rewrite.md +90 -0
  1249. package/workflows/cm-plugin/commands/cm-plugin:scout.md +202 -0
  1250. package/workflows/cm-plugin/docs//346/265/213/350/257/225/346/214/207/345/274/225-/345/277/253/351/200/237/344/270/212/346/211/213.md +189 -0
  1251. package/workflows/cm-plugin/docs//351/207/215/346/236/204/346/265/201/347/250/213/350/256/276/350/256/241/README.md +17 -0
  1252. package/workflows/cm-plugin/docs//351/207/215/346/236/204/346/265/201/347/250/213/350/256/276/350/256/241/refactor-flow.excalidraw +3650 -0
  1253. package/workflows/cm-plugin/docs//351/207/215/346/236/204/346/265/201/347/250/213/350/256/276/350/256/241/refactor-flow.mp4 +0 -0
  1254. package/workflows/cm-plugin/docs//351/207/215/346/236/204/346/265/201/347/250/213/350/256/276/350/256/241/refactor-flow.png +0 -0
  1255. package/workflows/cm-plugin/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
  1256. package/workflows/cm-plugin/package.json +33 -0
  1257. package/workflows/cm-plugin/skills/cm-plugin-backend-engineer/SKILL.md +100 -0
  1258. package/workflows/cm-plugin/skills/cm-plugin-devops-engineer/NOTICE.md +14 -0
  1259. package/workflows/cm-plugin/skills/cm-plugin-devops-engineer/SKILL.md +120 -0
  1260. package/workflows/cm-plugin/skills/cm-plugin-devops-engineer/references/cws-ci-cd.md +139 -0
  1261. package/workflows/cm-plugin/skills/cm-plugin-devops-engineer/references/cws-submission-checklist.md +87 -0
  1262. package/workflows/cm-plugin/skills/cm-plugin-doc-syncer/SKILL.md +149 -0
  1263. package/workflows/cm-plugin/skills/cm-plugin-extension-engineer/SKILL.md +105 -0
  1264. package/workflows/cm-plugin/skills/cm-plugin-product-manager/SKILL.md +83 -0
  1265. package/workflows/cm-plugin/skills/cm-plugin-qa-engineer/NOTICE.md +14 -0
  1266. package/workflows/cm-plugin/skills/cm-plugin-qa-engineer/SKILL.md +134 -0
  1267. package/workflows/cm-plugin/skills/cm-plugin-qa-engineer/references/cws-scan-checklist.md +136 -0
  1268. package/workflows/cm-plugin/skills/cm-plugin-qa-engineer/references/cws-violation-codes.md +68 -0
  1269. package/workflows/cm-plugin/skills/cm-plugin-ui-engineer/SKILL.md +94 -0
  1270. package/workflows/cm-plugin/skills/codebase-context/SKILL.md +489 -0
  1271. package/workflows/cm-plugin/skills/darwin-skill/NOTICE.md +24 -0
  1272. package/workflows/cm-plugin/skills/darwin-skill/README.md +272 -0
  1273. package/workflows/cm-plugin/skills/darwin-skill/SKILL.md +492 -0
  1274. package/workflows/cm-plugin/skills/darwin-skill/references/runtime-neutrality.md +68 -0
  1275. package/workflows/cm-plugin/skills/darwin-skill/references/skilllens-evidence.md +142 -0
  1276. package/workflows/cm-plugin/skills/darwin-skill/scripts/screenshot.mjs +71 -0
  1277. package/workflows/cm-plugin/skills/darwin-skill/templates/result-card-dark.html +698 -0
  1278. package/workflows/cm-plugin/skills/darwin-skill/templates/result-card-white.html +444 -0
  1279. package/workflows/cm-plugin/skills/darwin-skill/templates/result-card.html +616 -0
  1280. package/workflows/cm-plugin/skills/idea-to-prd/SKILL.md +289 -0
  1281. package/workflows/cm-plugin/skills/idea-to-prd/references/domains/trading.md +97 -0
  1282. package/workflows/cm-plugin/skills/idea-to-prd/references/example-prd.md +92 -0
  1283. package/workflows/cm-plugin/templates/arch-reference.md +55 -0
  1284. package/workflows/cm-plugin/templates/auto-update/cm-announce.sh +19 -0
  1285. package/workflows/cm-plugin/templates/auto-update/cm-update.sh +251 -0
  1286. package/workflows/cm-plugin/templates/dashboard/dashboard.html +153 -0
  1287. package/workflows/cm-plugin/templates/dashboard/serve.sh +10 -0
  1288. package/workflows/cm-plugin/templates/e2e/extension-harness.ts +110 -0
  1289. package/workflows/cm-plugin/templates/e2e/smoke.spec.example.ts +51 -0
  1290. package/workflows/cm-plugin/templates/hooks/pre-commit-cm-task-check +33 -0
  1291. package/workflows/cm-plugin/templates/pixel/cm-pixel.html +388 -0
  1292. package/workflows/cm-plugin/templates/pixel/cm-pixel.sh +212 -0
  1293. package/workflows/cm-plugin/templates/pixel/dev/README.md +20 -0
  1294. package/workflows/cm-plugin/templates/pixel/dev/atlas-preview.png +0 -0
  1295. package/workflows/cm-plugin/templates/pixel/dev/build.py +55 -0
  1296. package/workflows/cm-plugin/templates/pixel/dev/sheets/roguelikeChar_transparent.png +0 -0
  1297. package/workflows/cm-plugin/templates/pixel/dev/sheets/roguelikeCity_tilemap.png +0 -0
  1298. package/workflows/cm-plugin/templates/pixel/dev/sheets/roguelikeIndoor_transparent.png +0 -0
  1299. package/workflows/cm-plugin/templates/pixel/dev/template.html +388 -0
  1300. package/workflows/cm-plugin/templates/pixel/serve.sh +12 -0
  1301. package/workflows/cm-plugin/templates/refactor/cm-refactor-denies.json +14 -0
  1302. package/workflows/cm-plugin/templates/rules/backend-api.md +36 -0
  1303. package/workflows/cm-plugin/templates/rules/chrome-extension.md +53 -0
  1304. package/workflows/cm-plugin/templates/rules/coding-style.md +44 -0
  1305. package/workflows/cm-plugin/templates/rules/frontend.md +32 -0
  1306. package/workflows/cm-plugin/templates/rules/git-workflow.md +25 -0
  1307. package/workflows/cm-plugin/templates/rules/security.md +31 -0
  1308. package/workflows/cm-plugin/templates/rules/testing.md +36 -0
  1309. package/workflows/cm-plugin/templates/scripts/cm-plugin-codex.sh +52 -0
  1310. package/workflows/cm-plugin/templates/scripts/cm-plugin-log.sh +41 -0
  1311. package/workflows/cm-plugin/templates/scripts/cm-plugin-preflight.sh +60 -0
  1312. package/workflows/cm-plugin/templates/statusline/cm-plugin-statusline.sh +73 -0
  1313. package/workflows.lock.json +40 -0
@@ -0,0 +1,153 @@
1
+ <!DOCTYPE html>
2
+ <html lang="zh">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>cm 工作流看板</title>
6
+ <style>
7
+ :root{--bg:#f7f8f6;--card:#fff;--ink:#1e2628;--muted:#55646a;--line:#dde3e1;
8
+ --accent:#0e7a6b;--soft:#e3f0ed;--warn:#9a6a14;--warnbg:#f5eddc;--drop:#b4231f;
9
+ --num:ui-monospace,"SF Mono",Menlo,monospace}
10
+ *{box-sizing:border-box}
11
+ body{margin:0;background:var(--bg);color:var(--ink);
12
+ font-family:"PingFang SC","Microsoft YaHei",system-ui,sans-serif;font-size:14px}
13
+ .wrap{max-width:980px;margin:0 auto;padding:28px 20px}
14
+ header{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:8px}
15
+ h1{font-size:20px;margin:0}
16
+ #meta{color:var(--muted);font-size:12px}
17
+ .tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:18px 0}
18
+ .tile{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:12px 16px}
19
+ .tile b{display:block;font-size:22px;font-family:var(--num)}
20
+ .tile span{color:var(--muted);font-size:12px}
21
+ .feature{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px 18px;margin-bottom:14px}
22
+ .fhead{display:flex;justify-content:space-between;align-items:center;gap:10px}
23
+ .fhead h2{font-size:15px;margin:0}
24
+ .bar{height:8px;background:var(--soft);border-radius:99px;margin:10px 0;overflow:hidden}
25
+ .bar i{display:block;height:100%;background:var(--accent);border-radius:99px;transition:width .5s}
26
+ .task{display:flex;gap:8px;padding:3px 0;font-size:13px;align-items:baseline}
27
+ .task .id{font-family:var(--num);color:var(--muted);min-width:52px}
28
+ .done{color:var(--muted)}.done .title{text-decoration:line-through}
29
+ .current{background:var(--warnbg);border-radius:6px;padding:3px 8px;margin:2px -8px}
30
+ .current .st{color:var(--warn);font-weight:700}
31
+ .dropped{color:var(--drop);opacity:.7}.dropped .title{text-decoration:line-through}
32
+ .pct{font-family:var(--num);font-size:12px;color:var(--muted)}
33
+ table{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:8px;font-size:12.5px}
34
+ th,td{text-align:left;padding:7px 12px;border-bottom:1px solid var(--line)}
35
+ th{color:var(--muted);font-weight:600}
36
+ tr:last-child td{border-bottom:none}
37
+ td{font-family:var(--num)}
38
+ h3{font-size:14px;margin:24px 0 10px}
39
+ #lessons li{font-size:13px;color:var(--muted);margin:4px 0}
40
+ .empty{color:var(--muted);padding:30px;text-align:center}
41
+ /* 状态机横条 */
42
+ #pipeline{display:none;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px 18px;margin:16px 0}
43
+ #statusline{font-size:13px;margin-bottom:10px}
44
+ #statusline b{color:var(--accent)}
45
+ .nodes{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
46
+ .node{padding:6px 10px;border-radius:6px;border:1px solid var(--line);font-size:12px;color:var(--muted);background:var(--bg);white-space:nowrap}
47
+ .node.active{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:700;animation:pulse 1.2s ease-in-out infinite}
48
+ .node.passed{background:var(--soft);color:var(--accent);border-color:var(--soft)}
49
+ .arrowc{color:var(--line);font-size:11px}
50
+ @keyframes pulse{0%,100%{opacity:1}50%{opacity:.55}}
51
+ #pausebanner{display:none;background:var(--warnbg);border:1px solid var(--warn);color:var(--warn);
52
+ border-radius:8px;padding:10px 16px;margin:12px 0;font-weight:700;font-size:14px}
53
+ </style>
54
+ </head>
55
+ <body>
56
+ <div class="wrap">
57
+ <header>
58
+ <h1>cm 工作流看板 <span id="dot" style="color:var(--accent)">●</span></h1>
59
+ <div id="meta">加载中…</div>
60
+ </header>
61
+ <div id="pausebanner"></div>
62
+ <div id="pipeline">
63
+ <div id="statusline"></div>
64
+ <div class="nodes" id="nodes"></div>
65
+ </div>
66
+ <div class="tiles" id="tiles"></div>
67
+ <div id="features"><div class="empty">正在读取 specs…(确认由 serve.sh 启动且 specs 目录下有编号 feature)</div></div>
68
+ <h3>📊 METRICS(每任务度量)</h3>
69
+ <div id="metrics"><div class="empty">尚无 METRICS.md——执行到第一个 N5 后出现</div></div>
70
+ <h3>📝 LESSONS(经验库)</h3>
71
+ <ul id="lessons"><li>尚无记录</li></ul>
72
+ </div>
73
+ <script>
74
+ const $=id=>document.getElementById(id);
75
+ async function txt(p){try{const r=await fetch(p+'?t='+Date.now());return r.ok?await r.text():null}catch{return null}}
76
+
77
+ function parseTasks(md){
78
+ const out=[];if(!md)return out;
79
+ for(const m of md.matchAll(/^- \[( |x)\] (T-\d+):?\s*(.+)$/gm)){
80
+ const line=m[3];
81
+ out.push({id:m[2],done:m[1]==='x',dropped:/\[DROPPED/.test(line),changed:/\[CHANGED/.test(line),
82
+ title:line.replace(/`\[[^\]]*\]`?/g,'').replace(/~.*$/,'').trim().slice(0,60)});
83
+ }
84
+ return out;
85
+ }
86
+
87
+ const NODES=[['N1','初始化'],['N2','进Feature'],['N3','执行'],['N4','审查'],['N5','标记'],['N6','QA'],['N7','轮换'],['N8','收尾']];
88
+ async function renderStatus(){
89
+ const raw=await txt('./.cm-status.json');
90
+ const pl=$('pipeline'),pb=$('pausebanner');
91
+ if(!raw){pl.style.display='none';pb.style.display='none';return}
92
+ let s;try{s=JSON.parse(raw)}catch{return}
93
+ pl.style.display='block';
94
+ const curIdx=NODES.findIndex(n=>n[0]===s.node);
95
+ $('nodes').innerHTML=NODES.map((n,i)=>{
96
+ const cls=s.state==='done'?'passed':(i===curIdx?'active':(i<curIdx||['N3','N4','N5','N6','N7'].includes(s.node)&&i<2?'passed':''));
97
+ return `<span class="node ${cls}">${n[0]} ${n[1]}</span>`;
98
+ }).join('<span class="arrowc">▸</span>');
99
+ $('statusline').innerHTML=s.state==='done'
100
+ ?`🎉 全部完成 · ${s.at||''}`
101
+ :`当前: <b>${s.feature||'—'}</b> / <b>${s.task||'—'}</b> / <b>${s.node}</b> · ${s.detail||''} · ${s.at||''}`;
102
+ if(s.state==='paused_for_human'){pb.style.display='block';pb.textContent=`⏸ 等待人工介入: ${s.detail||'请查看会话'}`}
103
+ else pb.style.display='none';
104
+ }
105
+ async function load(){
106
+ renderStatus();
107
+ const idx=await txt('./');if(!idx){$('meta').textContent='无法读取 specs 目录';return}
108
+ const dirs=[...new Set([...idx.matchAll(/href="(\d+\.[^"\/]+)\//g)].map(m=>decodeURIComponent(m[1])))]
109
+ .sort((a,b)=>parseInt(a)-parseInt(b));
110
+ let total=0,done=0,fh='';
111
+ for(const d of dirs){
112
+ const tasks=parseTasks(await txt(`./${d}/tasks.md`));
113
+ const act=tasks.filter(t=>!t.dropped);
114
+ const dn=act.filter(t=>t.done).length;
115
+ total+=act.length;done+=dn;
116
+ const cur=act.find(t=>!t.done);
117
+ const pct=act.length?Math.round(dn/act.length*100):0;
118
+ fh+=`<div class="feature"><div class="fhead"><h2>📂 ${d}</h2><span class="pct">${dn}/${act.length} · ${pct}%</span></div>
119
+ <div class="bar"><i style="width:${pct}%"></i></div>`+
120
+ tasks.map(t=>{
121
+ const cls=t.dropped?'dropped':t.done?'done':(t===cur?'current':'');
122
+ const st=t.dropped?'🚫':t.done?'✅':(t===cur?'▶':'⬜');
123
+ return `<div class="task ${cls}"><span class="st">${st}</span><span class="id">${t.id}</span><span class="title">${t.title}${t.changed?' 🔁':''}</span></div>`;
124
+ }).join('')+`</div>`;
125
+ }
126
+ $('features').innerHTML=fh||'<div class="empty">未发现编号 feature 目录</div>';
127
+
128
+ const met=await txt('./METRICS.md');
129
+ let rows=[],human=0,firstPass=0;
130
+ if(met){
131
+ rows=[...met.matchAll(/^\|\s*(T-\d+)\s*\|(.+)$/gm)].map(m=>[m[1],...m[2].split('|').map(s=>s.trim()).slice(0,7)]);
132
+ for(const r of rows){human+=parseInt(r[7])||0;if((r[4]||'')==='1')firstPass++}
133
+ if(rows.length){
134
+ $('metrics').innerHTML='<table><tr><th>任务</th><th>Feature</th><th>开始</th><th>结束</th><th>审查轮</th><th>独立审查拦截</th><th>QA</th><th>人工介入</th></tr>'+
135
+ rows.map(r=>'<tr>'+r.map(c=>`<td>${c}</td>`).join('')+'</tr>').join('')+'</table>';
136
+ }
137
+ }
138
+ const lessons=await txt('./LESSONS.md');
139
+ const ls=lessons?[...lessons.matchAll(/^## (.+)$/gm)].map(m=>m[1]):[];
140
+ $('lessons').innerHTML=ls.length?ls.slice(-8).reverse().map(l=>`<li>${l}</li>`).join(''):'<li>尚无记录</li>';
141
+
142
+ $('tiles').innerHTML=`
143
+ <div class="tile"><b>${done}/${total}</b><span>任务完成</span></div>
144
+ <div class="tile"><b>${rows.length?(human/rows.length).toFixed(1):'—'}</b><span>人工介入/任务</span></div>
145
+ <div class="tile"><b>${rows.length?Math.round(firstPass/rows.length*100)+'%':'—'}</b><span>一次通过率</span></div>
146
+ <div class="tile"><b>${ls.length}</b><span>LESSONS 条目</span></div>`;
147
+ $('meta').textContent=`数据源: specs 落盘文件 · 只读 · ${new Date().toLocaleTimeString()} 刷新`;
148
+ $('dot').style.color='var(--accent)';
149
+ }
150
+ load();setInterval(load,2000);
151
+ </script>
152
+ </body>
153
+ </html>
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env bash
2
+ # cm 工作流可视化看板 · 纯只读,零侵入(只消费 specs 落盘文件)
3
+ # 用法: ./serve.sh /path/to/specs [端口,默认 8788]
4
+ set -euo pipefail
5
+ SPECS="${1:?用法: ./serve.sh /path/to/specs [端口]}"
6
+ PORT="${2:-8788}"
7
+ [ -d "$SPECS" ] || { echo "specs 目录不存在: $SPECS"; exit 1; }
8
+ cp "$(cd "$(dirname "$0")" && pwd)/dashboard.html" "$SPECS/.cm-dashboard.html"
9
+ echo "✓ 看板已启动: http://localhost:$PORT/.cm-dashboard.html (Ctrl+C 停止)"
10
+ cd "$SPECS" && exec python3 -m http.server "$PORT" --bind 127.0.0.1
@@ -0,0 +1,67 @@
1
+ #!/usr/bin/env bash
2
+ # cm 工作流 · 任务标记双保险(灰度阶段启用,可选)
3
+ #
4
+ # 用途:防止 N5 漏标记——代码提交时校验 tasks.md 的勾选状态有同步更新。
5
+ # 安装(在代码仓库内):
6
+ # export CM_SPECS_DIR=/path/to/specs # specs 文件夹路径(含 N.feature 目录)
7
+ # cp templates/hooks/pre-commit-cm-task-check .git/hooks/pre-commit
8
+ # chmod +x .git/hooks/pre-commit
9
+ #
10
+ # 逻辑:本次提交包含源码变更、且 CM_SPECS_DIR 已设置时,检查 specs 下
11
+ # 是否存在"最近修改时间晚于上次提交"的 tasks.md——没有则给出警告。
12
+ # 默认仅警告不阻断;置 CM_TASK_CHECK_STRICT=1 时阻断提交。
13
+ set -uo pipefail
14
+
15
+ [ -z "${CM_SPECS_DIR:-}" ] && exit 0 # 未启用则直接放行
16
+ [ -d "$CM_SPECS_DIR" ] || exit 0
17
+
18
+ find_python() {
19
+ local candidate
20
+ for candidate in python3 python; do
21
+ if command -v "$candidate" >/dev/null 2>&1 &&
22
+ "$candidate" -c 'import sys; raise SystemExit(sys.version_info < (3, 9))' >/dev/null 2>&1; then
23
+ command -v "$candidate"
24
+ return 0
25
+ fi
26
+ done
27
+ return 1
28
+ }
29
+
30
+ # 本次提交是否包含源码变更(排除纯文档)
31
+ changed=$(git diff --cached --name-only | grep -vE '\.(md|txt)$' || true)
32
+ [ -z "$changed" ] && exit 0
33
+
34
+ last_commit_ts=$(git log -1 --format=%ct 2>/dev/null || echo 0)
35
+ python_bin="$(find_python 2>/dev/null || true)"
36
+ fresh_tasks=""
37
+ if [ -n "$python_bin" ]; then
38
+ # BSD find on macOS has no -newermt. Python keeps this timestamp check
39
+ # portable while preserving support for specs outside the code repository.
40
+ fresh_tasks="$("$python_bin" - "$CM_SPECS_DIR" "$last_commit_ts" <<'PY'
41
+ from pathlib import Path
42
+ import sys
43
+
44
+ root = Path(sys.argv[1])
45
+ cutoff = float(sys.argv[2])
46
+ try:
47
+ for path in root.rglob("tasks.md"):
48
+ try:
49
+ if path.is_file() and path.stat().st_mtime > cutoff:
50
+ print(path)
51
+ except OSError:
52
+ continue
53
+ except OSError:
54
+ pass
55
+ PY
56
+ )"
57
+ fi
58
+
59
+ if [ -z "$fresh_tasks" ]; then
60
+ echo "⚠ [cm] 本次提交含源码变更,但 $CM_SPECS_DIR 下没有新更新的 tasks.md。" >&2
61
+ echo " 若刚完成某个任务,请确认 N5 已将其标记为 [x](漏标会导致断点恢复时重复执行)。" >&2
62
+ if [ "${CM_TASK_CHECK_STRICT:-0}" = "1" ]; then
63
+ echo " 严格模式已开启:提交被阻断。确认无碍可用 git commit --no-verify 跳过。" >&2
64
+ exit 1
65
+ fi
66
+ fi
67
+ exit 0
@@ -0,0 +1,388 @@
1
+ <!doctype html>
2
+ <html lang="zh">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <title>cm 工作流 · 像素办公室</title>
7
+ <style>
8
+ * { margin:0; padding:0; box-sizing:border-box; }
9
+ body { background:#131120; color:#e8e2d0; font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
10
+ min-height:100vh; display:flex; flex-direction:column; align-items:center; padding:18px 12px; }
11
+ #wrap { width:min(980px, 100%); }
12
+ #hud { display:flex; align-items:center; gap:12px; padding:8px 2px; font-size:14px; }
13
+ #logo { background:#f0b03c; color:#1c1a14; font-weight:800; padding:3px 9px; border-radius:3px;
14
+ letter-spacing:2px; box-shadow:0 3px 0 #8a6210; }
15
+ #phase { background:#232033; padding:4px 12px; border-radius:3px; letter-spacing:1px; font-weight:700; }
16
+ #phase.paused { background:#f5d95c; color:#1c1a14; }
17
+ #phase.stale { background:#d25050; color:#fff; }
18
+ #task { color:#9a93b8; font-size:13px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; flex:1; }
19
+ #coins { color:#f0b03c; font-weight:700; }
20
+ #stage { position:relative; border:4px solid #2a2438; border-radius:8px; overflow:hidden;
21
+ box-shadow:0 18px 50px rgba(0,0,0,.55), inset 0 0 0 2px #0d0b16; background:#0d0b16; }
22
+ canvas { display:block; width:100%; image-rendering:pixelated; image-rendering:crisp-edges; }
23
+ #bubble { position:absolute; transform:translate(-50%,-115%); max-width:380px; padding:8px 12px;
24
+ background:#faf6ec; color:#1c1a14; border:2px solid #1c1a14; border-radius:6px;
25
+ font-size:13px; line-height:1.5; display:none; box-shadow:3px 4px 0 rgba(0,0,0,.4); z-index:2; }
26
+ #bubble.paused { background:#f5d95c; transform:translate(-12%,-115%); }
27
+ #bubble.paused:after { left:12%; }
28
+ #bubble:after { content:""; position:absolute; left:50%; bottom:-10px; margin-left:-5px;
29
+ border:5px solid transparent; border-top-color:#1c1a14; }
30
+ #note { position:absolute; right:14px; bottom:16px; width:250px; display:none;
31
+ background:#f7ecc0; color:#4a3c14; border:2px solid #c8b478; padding:9px 11px;
32
+ font-size:12px; line-height:1.65; white-space:pre-wrap; transform:rotate(-1.6deg);
33
+ box-shadow:4px 5px 0 rgba(0,0,0,.35); border-radius:2px; }
34
+ #note b { color:#8a6210; }
35
+ #barrow { display:flex; align-items:center; gap:10px; margin-top:10px; }
36
+ #bar { flex:1; height:16px; background:#232033; border:2px solid #2a2438; border-radius:4px; overflow:hidden; }
37
+ #fill { height:100%; width:0; transition:width .6s;
38
+ background:repeating-linear-gradient(45deg,#f0b03c 0 10px,#d99a28 10px 20px); }
39
+ #count { font-size:13px; color:#f0b03c; min-width:44px; text-align:right; font-weight:700; }
40
+ #hint { margin-top:8px; font-size:12px; color:#6f6890; }
41
+ </style>
42
+ </head>
43
+ <body>
44
+ <div id="wrap">
45
+ <div id="hud">
46
+ <span id="logo">CM</span><span id="phase">连接中…</span>
47
+ <span id="task"></span><span id="coins"></span>
48
+ </div>
49
+ <div id="stage">
50
+ <canvas id="cv" width="744" height="420"></canvas>
51
+ <div id="bubble"></div>
52
+ <div id="note"></div>
53
+ </div>
54
+ <div id="barrow"><div id="bar"><div id="fill"></div></div><span id="count"></span></div>
55
+ <div id="hint"></div>
56
+ </div>
57
+ <script>
58
+ const ATLAS = "data:image/png;base64,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";
59
+ const T = {"wall": [0, 0], "wall2": [1, 0], "wallB": [2, 0], "flr": [3, 0], "flr2": [4, 0], "flr3": [5, 0], "desk": [6, 0], "chairL": [7, 0], "chairR": [0, 1], "mon": [1, 1], "mon2": [2, 1], "sofaL": [3, 1], "sofaM": [4, 1], "sofaR": [5, 1], "rugL": [6, 1], "rugM": [7, 1], "rugM2": [0, 2], "rugR": [1, 2], "plant": [2, 2], "plant2": [3, 2], "art1": [4, 2], "art2": [5, 2], "art3": [6, 2], "gold": [7, 2], "mirror": [0, 3], "shelfA": [1, 3], "shelfB": [2, 3], "dresser": [3, 3], "vend": [4, 3], "fridge": [5, 3], "bin": [6, 3], "crate": [7, 3], "lamp": [0, 4], "lamp2": [1, 4], "cntL": [2, 4], "cntM": [3, 4], "cntR": [4, 4], "brick": [5, 4], "brick2": [6, 4], "wood": [7, 4], "wood2": [0, 5], "wood3": [1, 5], "rgA": [2, 5], "rgB": [3, 5], "rgC": [4, 5], "rgD": [5, 5], "chairF": [6, 5], "tblO1": [7, 5], "tblO2": [0, 6], "worker": [1, 6], "codex": [2, 6], "sleep": [3, 6], "celA": [4, 6], "celB": [5, 6], "celC": [6, 6]};
60
+ const IMG = new Image(); let loaded = false;
61
+ IMG.onload = () => loaded = true; IMG.src = ATLAS;
62
+
63
+ const SKY = {
64
+ dawn:["#c98d78","#dba98a","#e8c49a"], day:["#7fa8c8","#93b9d4","#a9cbdd"],
65
+ dusk:["#8a5f7a","#b07a6a","#d0996a"], night:["#242138","#2e2a48","#3a3560"],
66
+ };
67
+ const TINT = { dawn:"rgba(230,150,100,.09)", day:"rgba(255,180,90,.05)",
68
+ dusk:"rgba(210,120,70,.12)", night:"rgba(30,34,90,.17)" };
69
+ const NODES = ["N1","N2","N3","N4","N5","N6","N7","N8"];
70
+ const PHASE = { N1:"启动准备", N2:"规划任务", N3:"开发中", N4:"检查代码",
71
+ N5:"保存进度", N6:"质量检测", N7:"整理现场", N8:"收尾总结" };
72
+ const ZONE = i => i<2 ? "dawn" : i<5 ? "day" : i<7 ? "dusk" : "night";
73
+ const PROPS = { 0:"plant2", 1:"crate", 2:"bin", 4:"dresser", 5:"fridge", 6:"shelfB", 7:"plant" };
74
+
75
+ const cv = document.getElementById("cv"), cx = cv.getContext("2d");
76
+ cx.imageSmoothingEnabled = false;
77
+ const W = cv.width, H = cv.height, TOPW = 48; // 顶墙高度
78
+ // 工位:两排四列,像真办公室
79
+ const POD = []; for (let i=0;i<8;i++)
80
+ POD.push({ x: 128 + (i%4)*162, y: 168 + ((i/4)|0)*150 });
81
+ const BENCH = { x:20, y:252, cx:44 }; // 等候长椅(左墙)
82
+ const LOUNGE = { x:W/2, y:252 }; // 中央过道=休息区
83
+ const seed = n => { let x = Math.sin(n*127.1)*43758.5; return x - Math.floor(x); };
84
+
85
+ function rect(x,y,w,h,c){ cx.fillStyle = c; cx.fillRect(x|0, y|0, w, h); }
86
+ function tile(n,dx,dy,z=3){ const [c,r] = T[n];
87
+ cx.drawImage(IMG, c*16, r*16, 16, 16, dx|0, dy|0, 16*z, 16*z); }
88
+ function shadow(x,y,rx,ry,a=.26){ cx.fillStyle = "rgba(12,8,20,"+a+")";
89
+ cx.beginPath(); cx.ellipse(x,y,rx,ry,0,0,7); cx.fill(); }
90
+
91
+ let cur = { node:"N1", state:"running", detail:"", feature:"", task:"" };
92
+ let mode = "wait", staleRun = false, firstSnap = true;
93
+ let wk = { x:POD[0].x-58, y:POD[0].y+18 }; // 小人(2D 自由走动)
94
+ let frame = 0, confetti = [];
95
+
96
+ // ---------- 房间(俯视) ----------
97
+ function room(zone) {
98
+ for (let r=0; r<Math.ceil((H-TOPW)/48); r++) // 暖木地板
99
+ for (let c=0; c<Math.ceil(W/48); c++)
100
+ tile(seed(c*3+r*11)>.62 ? "wood2" : (seed(c*5+r)>.85 ? "wood3" : "wood"), c*48, TOPW + r*48);
101
+ for (let c=0; c<Math.ceil(W/48); c++) tile("brick", c*48, 0); // 红砖顶墙
102
+ rect(0,0,W,6,"#171310");
103
+ rect(0,TOPW-7,W,7,"#4a3626"); rect(0,TOPW-7,W,2,"#5f4630"); // 木梁压边
104
+ rect(0,TOPW,W,5,"rgba(12,8,20,.35)"); // 墙脚阴影
105
+ rect(0,TOPW,4,H-TOPW,"rgba(12,8,20,.30)"); // 左右墙沿
106
+ rect(W-4,TOPW,4,H-TOPW,"rgba(12,8,20,.30)");
107
+ const p = SKY[zone]; // 4 扇窗,窗外=当前进度时辰
108
+ for (let i=0;i<4;i++) {
109
+ const x = 96 + i*168, y = 7, w = 52, h = 32;
110
+ rect(x-3,y-3,w+6,h+6,"#241f1a");
111
+ for (let b=0;b<3;b++) rect(x, y+b*h/3, w, h/3+1, p[b]);
112
+ if (zone==="day" && i===1) { rect(x+34,y+5,9,9,"#f5e8b0"); }
113
+ if (zone==="dawn" && i===0) { rect(x+8,y+h-12,10,5,"#f0c890"); }
114
+ if (zone==="dusk" && i===2) { rect(x+30,y+h-14,11,6,"#e8a060"); }
115
+ if (zone==="night") { if (i===1) { rect(x+34,y+5,8,8,"#e8e2d0");
116
+ rect(x+35,y+6,2,2,"#c8c2b0"); rect(x+38,y+9,2,2,"#c8c2b0"); }
117
+ for (let s2=0;s2<3;s2++) if ((frame>>4)%3 !== s2)
118
+ rect(x+4+seed(s2+i)*44, y+3+seed(s2+9)*24, 2,2,"#e8e2d0"); }
119
+ if (zone==="day" || zone==="dawn") {
120
+ cx.save(); cx.beginPath(); cx.rect(x,y,w,h); cx.clip();
121
+ const cxp = x + ((frame*0.22 + i*53) % (w+30)) - 15;
122
+ rect(cxp, y+6+(i%2)*8, 14, 4, "rgba(250,246,236,.85)"); cx.restore(); }
123
+ rect(x-3, y+h/2-1, w+6, 2, "#241f1a");
124
+ if (i%2===0) tile("plant2", x+w-6, y+h-8, 1); // 窗台盆栽
125
+ else tile("plant", x-12, y+h-8, 1);
126
+ }
127
+ tile("art1", 40, 10, 2); tile("gold", 660, 8, 2); // 顶墙挂画
128
+ const ckx = 24, cky = 12; // 挂钟
129
+ rect(ckx-2,cky-2,16,16,"#241f1a"); rect(ckx,cky,12,12,"#e8e2d0");
130
+ rect(ckx+5,cky+2,2,5,"#241f1a"); rect(ckx+6,cky+6,4,2,"#241f1a");
131
+ }
132
+
133
+ // ---------- 深度排序渲染(y 小在后,y 大在前=离观众近) ----------
134
+ function drawSorted(ents) {
135
+ ents.sort((a,b) => a.by - b.by);
136
+ for (const e of ents) e.f();
137
+ }
138
+
139
+ function podEnts(ents, idx, done) {
140
+ for (let i=0;i<8;i++) {
141
+ const P = POD[i], x = P.x, y = P.y,
142
+ active = i===idx && !done && mode==="run", passed = done || i<idx;
143
+ ents.push({ by: y+30, f: () => {
144
+ tile("rgA", x-32, y-14, 2); tile("rgB", x, y-14, 2); // 奶油地垫
145
+ tile("rgC", x-32, y+18, 2); tile("rgD", x, y+18, 2);
146
+ shadow(x, y+30, 30, 6);
147
+ tile("desk", x-24, y-18);
148
+ tile("lamp2", x+13, y-30, 1.1); // 桌灯
149
+ tile(active ? "mon" : "mon2", x-14, y-38, 1.75);
150
+ if (passed) { rect(x-11, y-35, 22, 17, "rgba(80,170,90,.85)");
151
+ cx.fillStyle="#eaf6ea"; cx.font="bold 11px monospace"; cx.textAlign="center";
152
+ cx.fillText("✓", x, y-22); }
153
+ else if (!active) rect(x-11, y-35, 22, 17, "rgba(24,20,34,.88)");
154
+ else if ((frame>>4)%4===0) rect(x-11, y-35, 22, 17, "rgba(159,216,240,.25)");
155
+ tile("chairF", x-14, y+16, 1.75); // 桌前椅(背对观众)
156
+ }});
157
+ if (i===3) ents.push({ by: P.y+26, f: () => { // Codex 审查员常驻 N4
158
+ shadow(P.x+44, P.y+26, 13, 4); tile("codex", P.x+22, P.y-22); }});
159
+ else if (i===5) ents.push({ by: P.y+28, f: () => { // 服务器机架(CI/测试机)
160
+ shadow(P.x+46, P.y+28, 13, 4);
161
+ tile("mon2", P.x+30, P.y-36, 2); tile("mon2", P.x+30, P.y-4, 2);
162
+ for (let k=0;k<4;k++) if ((frame>>3)%4!==k)
163
+ rect(P.x+36+k*6, P.y-30+((k%2)*32), 3, 3, k%2?"#7fdc6a":"#63b8b0"); }});
164
+ else if (PROPS[i]) ents.push({ by: P.y+28, f: () => {
165
+ shadow(P.x+46, P.y+28, 13, 4); tile(PROPS[i], P.x+30, P.y-4, 2); }});
166
+ }
167
+ }
168
+
169
+ function furnitureEnts(ents) {
170
+ ents.push({ by: 96, f: () => { // 咖啡台(靠顶墙)
171
+ shadow(608, 98, 52, 6);
172
+ tile("cntL", 560, 64, 2); tile("cntM", 592, 64, 2); tile("cntR", 624, 64, 2); }});
173
+ ents.push({ by: 98, f: () => { shadow(40, 98, 20, 5); tile("shelfA", 16, 56, 2.5); }}); // 书架
174
+ ents.push({ by: BENCH.y+34, f: () => { // 等候区:售货机+长椅
175
+ shadow(36, BENCH.y-14, 18, 5); tile("vend", 16, BENCH.y-62, 2);
176
+ shadow(BENCH.cx+22, BENCH.y+32, 26, 5);
177
+ tile("sofaM", BENCH.x, BENCH.y, 2); tile("sofaR", BENCH.x+32, BENCH.y, 2); }});
178
+ ents.push({ by: H-8, f: () => { // 角落绿植
179
+ tile("plant", 12, H-56, 2); tile("plant2", W-46, H-58, 2); }});
180
+ }
181
+
182
+ function person(n, x, y, bob) { // x,y = 脚底中心
183
+ return { by: y, f: () => { shadow(x, y+2, 14, 4, .32);
184
+ tile(n, x-24, y-46 + (bob ? ((frame>>3)%2) : 0)); } };
185
+ }
186
+
187
+ function lighting(idx, paused, done, zone) {
188
+ const lit = [];
189
+ if (mode==="run" && !done && !paused)
190
+ lit.push({x:POD[idx].x, y:POD[idx].y-10, c: staleRun ? "255,95,80" : "255,205,120", a:.26});
191
+ if (paused) lit.push({x:BENCH.cx+16, y:BENCH.y-10, c:"255,205,120", a:.24});
192
+ if (done || mode==="wait") lit.push({x:LOUNGE.x, y:LOUNGE.y, c:"255,205,120", a:.10});
193
+ cx.globalCompositeOperation = "lighter";
194
+ for (const L of lit) {
195
+ const g = cx.createRadialGradient(L.x,L.y,10, L.x,L.y,130);
196
+ g.addColorStop(0,"rgba("+L.c+","+L.a+")"); g.addColorStop(1,"rgba("+L.c+",0)");
197
+ cx.fillStyle = g; cx.fillRect(L.x-130, L.y-130, 260, 260);
198
+ }
199
+ cx.globalCompositeOperation = "source-over";
200
+ rect(0,0,W,H, TINT[zone]); // 时辰环境色
201
+ const v = cx.createRadialGradient(W/2, H*.44, H*.42, W/2, H*.52, W*.62);
202
+ v.addColorStop(0,"rgba(8,6,18,0)"); v.addColorStop(1,"rgba(8,6,18,.48)");
203
+ cx.fillStyle = v; cx.fillRect(0,0,W,H);
204
+ }
205
+
206
+ function labels(idx, done) {
207
+ cx.font = "bold 11px ui-monospace,monospace"; cx.textAlign = "center";
208
+ for (let i=0;i<8;i++) {
209
+ const P = POD[i], active = i===idx && !done && mode==="run", passed = done || i<idx;
210
+ const t = NODES[i]+" "+PHASE[NODES[i]].slice(0,2);
211
+ cx.fillStyle = "rgba(20,14,8,.75)"; cx.fillText(t, P.x+1, P.y+53);
212
+ cx.fillStyle = active ? "#faf6ec" : passed ? "#8fdc78" : "#b8a888";
213
+ cx.fillText(t, P.x, P.y+52);
214
+ }
215
+ const name = (cur.feature ? cur.feature.replace(/^\d+\./,"") : "cm 工作流") + " 的办公室";
216
+ cx.font = "bold 12px ui-monospace,monospace";
217
+ const tw = cx.measureText("★ "+name+" ★").width + 24;
218
+ rect(W/2-tw/2, H-24, tw, 19, "#241f1a"); rect(W/2-tw/2+2, H-22, tw-4, 15, "#3a2c1e");
219
+ cx.fillStyle = "#f0c05a"; cx.fillText("★ "+name+" ★", W/2, H-10);
220
+ }
221
+
222
+ function emote(ch, x, y, col) {
223
+ if ((frame>>4)%2) return;
224
+ cx.fillStyle = col; cx.font = "bold 17px monospace"; cx.textAlign = "center";
225
+ cx.fillText(ch, x, y);
226
+ }
227
+
228
+ function drawIdle() {
229
+ room("night");
230
+ const ents = []; podEnts(ents, 0, false); furnitureEnts(ents);
231
+ ents.push({ by: LOUNGE.y+34, f: () => { // 中央沙发打盹
232
+ shadow(LOUNGE.x, LOUNGE.y+34, 66, 7);
233
+ tile("sofaL", LOUNGE.x-72, LOUNGE.y-6); tile("sofaM", LOUNGE.x-24, LOUNGE.y-6);
234
+ tile("sofaR", LOUNGE.x+24, LOUNGE.y-6); }});
235
+ ents.push(person("sleep", LOUNGE.x, LOUNGE.y+2, false));
236
+ drawSorted(ents); labels(0, false);
237
+ const zi = (frame>>4)%3;
238
+ cx.fillStyle="#cfc8e8"; cx.font="bold 13px monospace"; cx.textAlign="left";
239
+ cx.fillText("z".repeat(zi+1), LOUNGE.x+26, LOUNGE.y-40-zi*4);
240
+ lighting(0,false,false,"night");
241
+ }
242
+
243
+ function draw() {
244
+ frame++;
245
+ if (!loaded) { rect(0,0,W,H,"#0d0b16"); requestAnimationFrame(draw); return; }
246
+ if (mode==="wait") { drawIdle(); requestAnimationFrame(draw); return; }
247
+ const idx = Math.max(0, NODES.indexOf(cur.node)),
248
+ paused = cur.state==="paused_for_human", done = mode==="done",
249
+ zone = done ? "night" : ZONE(idx);
250
+ room(zone);
251
+ const ents = []; podEnts(ents, idx, done); furnitureEnts(ents);
252
+ let sat = false;
253
+ if (!done) {
254
+ const t = paused ? {x:BENCH.cx+16, y:BENCH.y+26} : {x:POD[idx].x-52, y:POD[idx].y+20};
255
+ const dx = t.x-wk.x, dy = t.y-wk.y, d = Math.hypot(dx,dy);
256
+ const spd = isDemo ? 8 : 2.6;
257
+ if (d>3) { wk.x += dx/d*Math.min(spd,d); wk.y += dy/d*Math.min(spd,d); }
258
+ const walking = d>3;
259
+ sat = paused && !walking;
260
+ ents.push(person("worker", wk.x, wk.y, walking));
261
+ if (sat) ents.push({ by: wk.y+1, f: () => { // 补画椅面盖腿=坐下
262
+ tile("sofaM", BENCH.x, BENCH.y, 2); tile("sofaR", BENCH.x+32, BENCH.y, 2); }});
263
+ } else {
264
+ ents.push({ by: LOUNGE.y+18, f: () => { shadow(LOUNGE.x, LOUNGE.y+18, 34, 7);
265
+ tile("tblO1", LOUNGE.x-24, LOUNGE.y-54); tile("tblO2", LOUNGE.x-24, LOUNGE.y-8); }});
266
+ ents.push(person("worker", LOUNGE.x-64, LOUNGE.y+6, true));
267
+ ents.push(person("celA", LOUNGE.x+64, LOUNGE.y+6, true));
268
+ ents.push(person("celB", LOUNGE.x-40, LOUNGE.y+52, true));
269
+ ents.push(person("celC", LOUNGE.x+40, LOUNGE.y+52, true));
270
+ }
271
+ if (paused) { drawSorted(ents.filter(e=>true)); rect(0,0,W,H,"rgba(10,8,22,.32)");
272
+ const again = []; again.push(person("worker", wk.x, wk.y, false));
273
+ if (sat) again.push({ by: wk.y+1, f: () => {
274
+ tile("sofaM", BENCH.x, BENCH.y, 2); tile("sofaR", BENCH.x+32, BENCH.y, 2); }});
275
+ drawSorted(again);
276
+ if (sat) emote("!", wk.x, wk.y-56, "#f5d95c");
277
+ } else {
278
+ drawSorted(ents);
279
+ if (staleRun && !done) emote("?", wk.x, wk.y-56, "#f08a80");
280
+ }
281
+ labels(idx, done);
282
+ if (done) {
283
+ if (frame%3===0) confetti.push({ x:Math.random()*W, y:-6, v:1+Math.random()*1.6,
284
+ w:Math.random()>.5?4:3, c:["#f0b03c","#f06a3c","#63b8b0","#95c86a","#8c78c8","#faf6ec"][Math.random()*6|0] });
285
+ confetti = confetti.filter(p => p.y < H-8);
286
+ for (const p of confetti) { p.y += p.v; rect(p.x + Math.sin((p.y+p.x)/14)*5, p.y, p.w, p.w+2, p.c); }
287
+ rect(W/2-104, 66, 208, 34, "#faf6ec"); rect(W/2-104, 66, 208, 4, "#241f1a");
288
+ rect(W/2-104, 96, 208, 4, "#241f1a"); rect(W/2-104, 66, 4, 34, "#241f1a"); rect(W/2+100, 66, 4, 34, "#241f1a");
289
+ cx.fillStyle="#1c1a14"; cx.font="bold 19px ui-monospace,monospace"; cx.textAlign="center";
290
+ cx.fillText("STAGE CLEAR!", W/2, 90);
291
+ }
292
+ lighting(idx, paused, done, zone);
293
+ requestAnimationFrame(draw);
294
+ }
295
+
296
+ function hud() {
297
+ const paused = cur.state==="paused_for_human", done = mode==="done";
298
+ const ph = document.getElementById("phase");
299
+ if (mode==="wait") { ph.textContent = "😴 休息中(等 /cm-ai 启动)"; ph.className=""; }
300
+ else if (staleRun) { ph.textContent = "⚠ 可能已中断(去会话确认)"; ph.className="stale"; }
301
+ else { ph.textContent = done ? "STAGE CLEAR — 全部完成" :
302
+ (paused ? "🖐 等你确认" : "STAGE "+cur.node+" · "+(PHASE[cur.node]||"运行中"));
303
+ ph.className = paused ? "paused" : ""; }
304
+ document.getElementById("task").textContent =
305
+ mode==="wait" ? "" : [cur.feature.replace(/^\d+\./,""), cur.task].filter(Boolean).join(" · ");
306
+ const b = document.getElementById("bubble");
307
+ if (mode==="run" && cur.detail) {
308
+ b.style.display="block"; b.className = paused ? "paused" : "";
309
+ b.textContent = (paused ? "🖐 " : "") + cur.detail;
310
+ const idx = Math.max(0, NODES.indexOf(cur.node));
311
+ b.style.left = paused ? (BENCH.cx/W*100+"%")
312
+ : (Math.min(86, Math.max(14, POD[idx].x/W*100)) + "%");
313
+ b.style.top = paused ? ((BENCH.y-58)/H*100+"%") : ((POD[idx].y-34)/H*100 + "%");
314
+ } else b.style.display = "none";
315
+ }
316
+
317
+ // 上次收工小记:读度量汇总.md 最后一节
318
+ async function loadNote() {
319
+ try {
320
+ const md = await (await fetch("度量汇总.md?ts="+Date.now())).text();
321
+ if (md.startsWith("<")) return;
322
+ const secs = md.trim().split(/\n(?=#)/), last = secs[secs.length-1];
323
+ const lines = last.split("\n").filter(l=>l.trim().startsWith("-")).slice(0,4);
324
+ if (!lines.length) return;
325
+ const n = document.getElementById("note");
326
+ n.innerHTML = "<b>📋 上次收工小记</b>\n" + lines.join("\n").replace(/</g,"&lt;");
327
+ n.style.display = "block";
328
+ } catch {}
329
+ }
330
+
331
+ const DEMO = [
332
+ ["N1","running","正在检查项目环境和版本控制","",""],
333
+ ["N2","running","正在读需求、排任务","1.market-board",""],
334
+ ["N3","running","正在开发行情数据接口","1.market-board","T-005"],
335
+ ["N4","running","第1轮代码审查进行中","1.market-board","T-005"],
336
+ ["N4","paused_for_human","确认一下:原型里有3个按钮点了没反应,要做吗?","1.market-board","T-006"],
337
+ ["N5","running","保存进度:行情页面完成","1.market-board","T-006"],
338
+ ["N6","running","质量检测和业务走查","1.market-board",""],
339
+ ["N7","running","整理现场,准备下一个任务","1.market-board",""],
340
+ ["N8","running","收尾:整理文档和发布清单","",""],
341
+ ["N8","done","全部完成","",""]];
342
+ const q = new URLSearchParams(location.search);
343
+ const isDemo = q.has("demo"), isIdleDemo = q.has("idle");
344
+
345
+ async function poll() {
346
+ if (isIdleDemo) { mode="wait"; hud(); loadNote(); return; }
347
+ if (isDemo) {
348
+ const [node,state,detail,feature,task] = DEMO[(Math.floor(Date.now()/2600))%DEMO.length];
349
+ cur = {node,state,detail,feature,task};
350
+ mode = state==="done" ? "done" : "run"; staleRun = false; setBar(4,6);
351
+ } else {
352
+ try {
353
+ const res = await fetch(".cm-status.json?ts="+Date.now());
354
+ if (!res.ok) throw 0;
355
+ const s = await res.json();
356
+ cur = { node:s.node||"N1", state:s.state||"running", detail:s.detail||"",
357
+ feature:s.feature||"", task:s.task||"" };
358
+ mode = cur.state==="done" ? "done" : "run";
359
+ if (firstSnap && mode==="run") { firstSnap = false;
360
+ if (cur.state==="paused_for_human") { wk.x = BENCH.cx+16; wk.y = BENCH.y+26; }
361
+ else { const P = POD[Math.max(0,NODES.indexOf(cur.node))];
362
+ wk.x = P.x-52; wk.y = P.y+20; } }
363
+ const lm = res.headers.get("last-modified"); // 中断检测(阈值 10 分钟)
364
+ staleRun = !!(lm && mode==="run" && cur.state!=="paused_for_human"
365
+ && (Date.now()-new Date(lm).getTime()) > 600_000);
366
+ if (cur.feature && mode!=="wait") {
367
+ const md = await (await fetch(cur.feature+"/tasks.md?ts="+Date.now())).text();
368
+ const items = md.match(/^- \[( |x)\] T-\d+/gm)||[];
369
+ setBar(items.filter(l=>l.includes("[x]")).length, items.length);
370
+ } else setBar(0,0);
371
+ document.getElementById("hint").textContent = "";
372
+ document.getElementById("note").style.display = mode==="done" ? "" : "none";
373
+ if (mode==="done") loadNote();
374
+ } catch { mode = "wait"; setBar(0,0); loadNote();
375
+ document.getElementById("hint").textContent = "😴 值班中"; }
376
+ }
377
+ hud(); setTimeout(poll, isDemo?400:2000);
378
+ }
379
+ function setBar(d,t){
380
+ document.getElementById("fill").style.width = t ? (100*d/t)+"%" : "0";
381
+ document.getElementById("count").textContent = t ? d+"/"+t : "";
382
+ document.getElementById("coins").textContent = d ? "⛁ "+d : "";
383
+ }
384
+
385
+ draw(); poll();
386
+ </script>
387
+ </body>
388
+ </html>