cli-jaw 2.0.6 → 2.0.13

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 (294) hide show
  1. package/README.ja.md +24 -11
  2. package/README.ko.md +24 -11
  3. package/README.md +95 -11
  4. package/README.zh-CN.md +24 -11
  5. package/dist/bin/cli-jaw.js +4 -1
  6. package/dist/bin/cli-jaw.js.map +1 -1
  7. package/dist/bin/commands/browser-web-ai.js +2 -2
  8. package/dist/bin/commands/browser-web-ai.js.map +1 -1
  9. package/dist/bin/commands/doctor.js +12 -2
  10. package/dist/bin/commands/doctor.js.map +1 -1
  11. package/dist/bin/commands/init.js +4 -2
  12. package/dist/bin/commands/init.js.map +1 -1
  13. package/dist/bin/commands/project.js +167 -0
  14. package/dist/bin/commands/project.js.map +1 -0
  15. package/dist/bin/commands/tui/types.js +20 -4
  16. package/dist/bin/commands/tui/types.js.map +1 -1
  17. package/dist/bin/postinstall.js +226 -24
  18. package/dist/bin/postinstall.js.map +1 -1
  19. package/dist/lib/mime-detect.js +5 -0
  20. package/dist/lib/mime-detect.js.map +1 -1
  21. package/dist/scripts/fresh-install-smoke.js +78 -6
  22. package/dist/scripts/fresh-install-smoke.js.map +1 -1
  23. package/dist/src/agent/agy-runtime.js +15 -0
  24. package/dist/src/agent/agy-runtime.js.map +1 -0
  25. package/dist/src/agent/args.js +44 -5
  26. package/dist/src/agent/args.js.map +1 -1
  27. package/dist/src/agent/cli-helpers.js +1 -1
  28. package/dist/src/agent/cli-helpers.js.map +1 -1
  29. package/dist/src/agent/lifecycle-handler.js +6 -3
  30. package/dist/src/agent/lifecycle-handler.js.map +1 -1
  31. package/dist/src/agent/session-persistence.js +1 -1
  32. package/dist/src/agent/session-persistence.js.map +1 -1
  33. package/dist/src/agent/smoke-detector.js +3 -0
  34. package/dist/src/agent/smoke-detector.js.map +1 -1
  35. package/dist/src/agent/spawn/resume.js +2 -0
  36. package/dist/src/agent/spawn/resume.js.map +1 -1
  37. package/dist/src/agent/spawn-env.js +6 -0
  38. package/dist/src/agent/spawn-env.js.map +1 -1
  39. package/dist/src/agent/spawn.js +120 -15
  40. package/dist/src/agent/spawn.js.map +1 -1
  41. package/dist/src/browser/web-ai/capability-observation-presets.js +1 -1
  42. package/dist/src/browser/web-ai/capability-observation-presets.js.map +1 -1
  43. package/dist/src/browser/web-ai/capability-registry.js +6 -5
  44. package/dist/src/browser/web-ai/capability-registry.js.map +1 -1
  45. package/dist/src/browser/web-ai/chatgpt-attachments.js +7 -0
  46. package/dist/src/browser/web-ai/chatgpt-attachments.js.map +1 -1
  47. package/dist/src/browser/web-ai/context-pack/builder.js +19 -4
  48. package/dist/src/browser/web-ai/context-pack/builder.js.map +1 -1
  49. package/dist/src/browser/web-ai/context-pack/zip-writer.js +116 -0
  50. package/dist/src/browser/web-ai/context-pack/zip-writer.js.map +1 -0
  51. package/dist/src/browser/web-ai/gemini-live.js +21 -3
  52. package/dist/src/browser/web-ai/gemini-live.js.map +1 -1
  53. package/dist/src/browser/web-ai/gemini-model.js +26 -8
  54. package/dist/src/browser/web-ai/gemini-model.js.map +1 -1
  55. package/dist/src/cli/commands.js +2 -0
  56. package/dist/src/cli/commands.js.map +1 -1
  57. package/dist/src/cli/handlers-project.js +55 -0
  58. package/dist/src/cli/handlers-project.js.map +1 -0
  59. package/dist/src/cli/readiness.js +6 -1
  60. package/dist/src/cli/readiness.js.map +1 -1
  61. package/dist/src/cli/registry.js +11 -0
  62. package/dist/src/cli/registry.js.map +1 -1
  63. package/dist/src/core/claude-install.js +10 -1
  64. package/dist/src/core/claude-install.js.map +1 -1
  65. package/dist/src/core/config.js +63 -7
  66. package/dist/src/core/config.js.map +1 -1
  67. package/dist/src/core/db.js +11 -4
  68. package/dist/src/core/db.js.map +1 -1
  69. package/dist/src/core/runtime-settings.js +4 -1
  70. package/dist/src/core/runtime-settings.js.map +1 -1
  71. package/dist/src/manager/metadata.js +7 -2
  72. package/dist/src/manager/metadata.js.map +1 -1
  73. package/dist/src/manager/notes/routes.js +7 -0
  74. package/dist/src/manager/notes/routes.js.map +1 -1
  75. package/dist/src/manager/notes/store.js +72 -0
  76. package/dist/src/manager/notes/store.js.map +1 -1
  77. package/dist/src/manager/registry.js +1 -1
  78. package/dist/src/manager/registry.js.map +1 -1
  79. package/dist/src/manager/scan.js +2 -0
  80. package/dist/src/manager/scan.js.map +1 -1
  81. package/dist/src/messaging/send.js +1 -1
  82. package/dist/src/messaging/send.js.map +1 -1
  83. package/dist/src/orchestrator/distribute.js +25 -4
  84. package/dist/src/orchestrator/distribute.js.map +1 -1
  85. package/dist/src/orchestrator/pipeline.js +21 -5
  86. package/dist/src/orchestrator/pipeline.js.map +1 -1
  87. package/dist/src/orchestrator/state-machine.js +7 -1
  88. package/dist/src/orchestrator/state-machine.js.map +1 -1
  89. package/dist/src/orchestrator/workspace-context.js +49 -14
  90. package/dist/src/orchestrator/workspace-context.js.map +1 -1
  91. package/dist/src/routes/messaging.js +1 -1
  92. package/dist/src/routes/messaging.js.map +1 -1
  93. package/dist/src/routes/orchestrate.js +11 -4
  94. package/dist/src/routes/orchestrate.js.map +1 -1
  95. package/dist/src/routes/settings.js +73 -8
  96. package/dist/src/routes/settings.js.map +1 -1
  97. package/dist/src/security/path-guards.js +35 -14
  98. package/dist/src/security/path-guards.js.map +1 -1
  99. package/dist/src/types/cli-engine.js +1 -0
  100. package/dist/src/types/cli-engine.js.map +1 -1
  101. package/package.json +19 -4
  102. package/public/css/chat.css +6 -2
  103. package/public/dist/assets/{AdvancedExport-CBvz4_IZ.js → AdvancedExport-CZEVPqHb.js} +1 -1
  104. package/public/dist/assets/{Agent-DlUqCMXJ.js → Agent-BBrJGd5m.js} +1 -1
  105. package/public/dist/assets/{Browser-66BpLQck.js → Browser-dBaU9G9D.js} +1 -1
  106. package/public/dist/assets/{ChannelsDiscord-BifT2Dum.js → ChannelsDiscord-CbmWms9-.js} +1 -1
  107. package/public/dist/assets/{ChannelsTelegram-CK6tYQ8k.js → ChannelsTelegram-BD4Eyztg.js} +1 -1
  108. package/public/dist/assets/{DashboardMeta-Cc03HT5R.js → DashboardMeta-LVAL7TtE.js} +1 -1
  109. package/public/dist/assets/{Display-arOjcMQZ.js → Display-CFm1UmEo.js} +1 -1
  110. package/public/dist/assets/{Employees-YbW-mI67.js → Employees-DcMChleU.js} +1 -1
  111. package/public/dist/assets/{Heartbeat-CW4eIhtJ.js → Heartbeat-BoobN35p.js} +1 -1
  112. package/public/dist/assets/{Mcp-ZQ6ARQb6.js → Mcp-9NU4YkKO.js} +1 -1
  113. package/public/dist/assets/{Memory-BAUWJMqc.js → Memory-uZT30fww.js} +1 -1
  114. package/public/dist/assets/{MilkdownWysiwygEditor-IAqFtXvM.js → MilkdownWysiwygEditor-Otw40DDF.js} +1 -1
  115. package/public/dist/assets/{ModelProvider-DUtmFh0J.js → ModelProvider-CsIOyoZP.js} +1 -1
  116. package/public/dist/assets/{Network-B_4E82zQ.js → Network-D7hGwnyG.js} +1 -1
  117. package/public/dist/assets/NotesGraphView-CJuk9lKn.js +1 -0
  118. package/public/dist/assets/Permissions-CcIBptg3.js +1 -0
  119. package/public/dist/assets/{Permissions-BkADXjQ4.js → Permissions-DwdU3wi8.js} +1 -1
  120. package/public/dist/assets/{Profile-BcnTCSYM.js → Profile-BNTKD_Ex.js} +1 -1
  121. package/public/dist/assets/{Prompts-CUs_RoRE.js → Prompts-D_mCfYiu.js} +1 -1
  122. package/public/dist/assets/{SpeechKeys-qxc-ROWN.js → SpeechKeys-BTXCM-Fs.js} +1 -1
  123. package/public/dist/assets/agent-meta-BC7mLqo6.js +1 -0
  124. package/public/dist/assets/{app-CGqTcIeF.js → app-C7MAcAMu.js} +5 -5
  125. package/public/dist/assets/app-CkFBKUf8.css +1 -0
  126. package/public/dist/assets/{architectureDiagram-3BPJPVTR-kYIVzmWe.js → architectureDiagram-3BPJPVTR-CJCPEsxo.js} +1 -1
  127. package/public/dist/assets/{blockDiagram-GPEHLZMM-B204CPhe.js → blockDiagram-GPEHLZMM-CO1bkn0E.js} +2 -2
  128. package/public/dist/assets/{c4Diagram-AAUBKEIU-DAv6TAjg.js → c4Diagram-AAUBKEIU-D2R36Xu6.js} +1 -1
  129. package/public/dist/assets/{chunk-3OPIFGDE-DOAvk9x8.js → chunk-3OPIFGDE-DixnEkZw.js} +1 -1
  130. package/public/dist/assets/chunk-55IACEB6-DhWWzzdj.js +1 -0
  131. package/public/dist/assets/{chunk-5ZQYHXKU-Bd-RFO5i.js → chunk-5ZQYHXKU-Bli4k6GI.js} +2 -2
  132. package/public/dist/assets/{chunk-727SXJPM-BrsRzj8z.js → chunk-727SXJPM-sp4W8bhf.js} +1 -1
  133. package/public/dist/assets/{chunk-AQP2D5EJ-Di6Gstk-.js → chunk-AQP2D5EJ-Co6ucdGq.js} +1 -1
  134. package/public/dist/assets/{chunk-KSCS5N6A-D9a4ZkOy.js → chunk-KSCS5N6A-Beq1s5eO.js} +2 -2
  135. package/public/dist/assets/{chunk-L5ZTLDWV-D208QbfC.js → chunk-L5ZTLDWV-DfUlBdXN.js} +1 -1
  136. package/public/dist/assets/{chunk-LZXEDZCA-CE2KFduj.js → chunk-LZXEDZCA-B_yP4UKw.js} +1 -1
  137. package/public/dist/assets/{chunk-ND2GUHAM-zZ7h1CPf.js → chunk-ND2GUHAM-3qbNb7I9.js} +1 -1
  138. package/public/dist/assets/{chunk-O5CBEL6O-BTuvXKFi.js → chunk-O5CBEL6O-D-jDqsN2.js} +1 -1
  139. package/public/dist/assets/{chunk-WU5MYG2G-C3fKlSvP.js → chunk-WU5MYG2G-DlBJtD7-.js} +1 -1
  140. package/public/dist/assets/classDiagram-4FO5ZUOK-DmPJvqRM.js +1 -0
  141. package/public/dist/assets/classDiagram-v2-Q7XG4LA2-ECmTUt7U.js +1 -0
  142. package/public/dist/assets/constants-BXWl7LTi.js +1 -0
  143. package/public/dist/assets/{cose-bilkent-S5V4N54A-D1zmarou.js → cose-bilkent-S5V4N54A-Bt9AAJCx.js} +1 -1
  144. package/public/dist/assets/{dagre-BM42HDAG-BVkBttzA.js → dagre-BM42HDAG-CXEA1wvZ.js} +1 -1
  145. package/public/dist/assets/{dagre-DnoxfNXr.js → dagre-Ve-IAfyz.js} +1 -1
  146. package/public/dist/assets/{diagram-2AECGRRQ-Bs32KPnT.js → diagram-2AECGRRQ-CCB0OKc2.js} +1 -1
  147. package/public/dist/assets/{diagram-5GNKFQAL-YDYgPOQj.js → diagram-5GNKFQAL-Cki9HABy.js} +1 -1
  148. package/public/dist/assets/{diagram-KO2AKTUF-1tIdFl26.js → diagram-KO2AKTUF-DNBDjE2o.js} +1 -1
  149. package/public/dist/assets/{diagram-LMA3HP47-B1y15kav.js → diagram-LMA3HP47-Cy23RDPa.js} +1 -1
  150. package/public/dist/assets/{diagram-OG6HWLK6-C25j1jGg.js → diagram-OG6HWLK6-CT_YF8cA.js} +1 -1
  151. package/public/dist/assets/dist-3R3GxjCf.js +13 -0
  152. package/public/dist/assets/{dist-D0PYXGt2.js → dist-BLd7xdyq.js} +1 -1
  153. package/public/dist/assets/{dist-fJAyK82z.js → dist-BaRrwDy3.js} +1 -1
  154. package/public/dist/assets/{dist-Rs_Khtjb.js → dist-Bbsp4OF7.js} +1 -1
  155. package/public/dist/assets/{dist-Cv8S3FhF.js → dist-BkBGlG70.js} +1 -1
  156. package/public/dist/assets/{dist-0v1UKkQ3.js → dist-BkJ_1mj9.js} +1 -1
  157. package/public/dist/assets/{dist-BQNQk-1M.js → dist-BxCRVW5D.js} +1 -1
  158. package/public/dist/assets/{dist-DDDFJ8jG.js → dist-C-v7Rm67.js} +1 -1
  159. package/public/dist/assets/dist-CNgDEAy8.js +1 -0
  160. package/public/dist/assets/dist-CO_W5rr2.js +1 -0
  161. package/public/dist/assets/{dist-vQskrHxt.js → dist-ChAUfTbO.js} +1 -1
  162. package/public/dist/assets/{dist-CjPin7Mr.js → dist-D-k-lzQT.js} +1 -1
  163. package/public/dist/assets/dist-D1hPukqY.js +1 -0
  164. package/public/dist/assets/{dist-C1VqWrYZ.js → dist-D5Qx-jQQ.js} +1 -1
  165. package/public/dist/assets/{dist-DTQW91xt.js → dist-D7VNzYBv.js} +1 -1
  166. package/public/dist/assets/{dist-DHQI31dn.js → dist-DAxnodoa.js} +1 -1
  167. package/public/dist/assets/{dist-CnIrGAPx.js → dist-DHSyODkR.js} +1 -1
  168. package/public/dist/assets/{dist-CE4s7vg82.js → dist-DaYTPjbb2.js} +1 -1
  169. package/public/dist/assets/{dist-jcptfm_T.js → dist-DlWi9tVO.js} +1 -1
  170. package/public/dist/assets/{dist-D66X8iAn.js → dist-DuuoJfRB.js} +1 -1
  171. package/public/dist/assets/{dist-DzT7frM2.js → dist-Dv36UUXz.js} +1 -1
  172. package/public/dist/assets/{dist-BVpa_e6W.js → dist-F4CVhitP.js} +1 -1
  173. package/public/dist/assets/{dist-Qs7HHNCC.js → dist-LHbJYy3N.js} +1 -1
  174. package/public/dist/assets/{dist-Ck6PnIlo.js → dist-VIlx7JdU.js} +1 -1
  175. package/public/dist/assets/{dist-D5GUqT-6.js → dist-cgDt2PmY.js} +1 -1
  176. package/public/dist/assets/dist-eW2LjRIK.js +1 -0
  177. package/public/dist/assets/{dist-Dm7RAaUo.js → dist-vGn3_sWA.js} +1 -1
  178. package/public/dist/assets/{employees-DRmX2RDd.js → employees-BmxY8Mw3.js} +1 -1
  179. package/public/dist/assets/{erDiagram-TEJ5UH35-CRvCbztR.js → erDiagram-TEJ5UH35-Cq7oHdXg.js} +1 -1
  180. package/public/dist/assets/{flowDiagram-I6XJVG4X-CzvVnib_.js → flowDiagram-I6XJVG4X-D8CdEnfM.js} +1 -1
  181. package/public/dist/assets/ganttDiagram-6RSMTGT7-B1rzKXi_.js +292 -0
  182. package/public/dist/assets/{gitGraphDiagram-PVQCEYII-CbKdM7nW.js → gitGraphDiagram-PVQCEYII-CqLh-joi.js} +1 -1
  183. package/public/dist/assets/{graphlib-BLOO0H5r.js → graphlib-W5bESv3F.js} +1 -1
  184. package/public/dist/assets/{infoDiagram-5YYISTIA-BrZmg1At.js → infoDiagram-5YYISTIA-C1zVxumj.js} +1 -1
  185. package/public/dist/assets/{ishikawaDiagram-YF4QCWOH-BDWXqJi5.js → ishikawaDiagram-YF4QCWOH-x-9J6xPM.js} +1 -1
  186. package/public/dist/assets/{journeyDiagram-JHISSGLW-CPFRd_M3.js → journeyDiagram-JHISSGLW-BDYzHrtn.js} +1 -1
  187. package/public/dist/assets/{kanban-definition-UN3LZRKU-BcQbBplS.js → kanban-definition-UN3LZRKU-BJ-06i6Z.js} +1 -1
  188. package/public/dist/assets/manager-B2NWzG7j.css +1 -0
  189. package/public/dist/assets/manager-C5e1IxEN.js +25 -0
  190. package/public/dist/assets/memory-BqqibBIE.js +1 -0
  191. package/public/dist/assets/{memory-BA-ki3gn.js → memory-CRL72HB-.js} +1 -1
  192. package/public/dist/assets/mermaid-loader-Dqb4ZUz6.js +1 -0
  193. package/public/dist/assets/{mermaid.core-ArqR5iFa.js → mermaid.core-D8VnfThU.js} +2 -2
  194. package/public/dist/assets/mermaid.core-DYHvk6Pd.js +1 -0
  195. package/public/dist/assets/{mindmap-definition-RKZ34NQL-C35cGkNU.js → mindmap-definition-RKZ34NQL-D8NDuIhn.js} +1 -1
  196. package/public/dist/assets/{pieDiagram-4H26LBE5-B8C_hoqJ.js → pieDiagram-4H26LBE5-CpBePil_.js} +3 -3
  197. package/public/dist/assets/{quadrantDiagram-W4KKPZXB-BEPrine5.js → quadrantDiagram-W4KKPZXB-C1WWpn88.js} +1 -1
  198. package/public/dist/assets/{render-C7_e0J_X.js → render-o_YEiCEO.js} +2 -2
  199. package/public/dist/assets/{requirementDiagram-4Y6WPE33-ClDDon9c.js → requirementDiagram-4Y6WPE33-C_D5VbNk.js} +1 -1
  200. package/public/dist/assets/{sankeyDiagram-5OEKKPKP-Bjs3OE-1.js → sankeyDiagram-5OEKKPKP--RH3Es8R.js} +3 -3
  201. package/public/dist/assets/{sequenceDiagram-3UESZ5HK-BM8IAaEe.js → sequenceDiagram-3UESZ5HK-CVI4AjhN.js} +1 -1
  202. package/public/dist/assets/settings-B0RlyAkI.js +1 -0
  203. package/public/dist/assets/settings-CCXRL5Ar.js +46 -0
  204. package/public/dist/assets/sidebar-DRJffqO1.js +14 -0
  205. package/public/dist/assets/skills-CFdzXbtK.js +1 -0
  206. package/public/dist/assets/{skills-Dq7fD8I3.js → skills-DbRVI-zf.js} +1 -1
  207. package/public/dist/assets/slash-commands-BUM6u-Ex.js +1 -0
  208. package/public/dist/assets/{slash-commands-DRsKtuGT.js → slash-commands-C2YBMaQV.js} +1 -1
  209. package/public/dist/assets/{stateDiagram-AJRCARHV-BvNABuXE.js → stateDiagram-AJRCARHV-4bx1rPZ3.js} +1 -1
  210. package/public/dist/assets/stateDiagram-v2-BHNVJYJU-CrfGPzHb.js +1 -0
  211. package/public/dist/assets/{timeline-definition-PNZ67QCA-CIvTvac3.js → timeline-definition-PNZ67QCA-DeQoGRE2.js} +1 -1
  212. package/public/dist/assets/{trace-drawer-DDFdU07_.js → trace-drawer-CIVBXyRH.js} +1 -1
  213. package/public/dist/assets/ui-C3ArwMhv.js +140 -0
  214. package/public/dist/assets/ui-CboUuc_E.js +1 -0
  215. package/public/dist/assets/vendor-utils-rVejrfMR.js +1 -0
  216. package/public/dist/assets/{vennDiagram-CIIHVFJN-C5cbS2KC.js → vennDiagram-CIIHVFJN-CejyJK0L.js} +1 -1
  217. package/public/dist/assets/{wardleyDiagram-YWT4CUSO-BsRBBGFP.js → wardleyDiagram-YWT4CUSO-DqXV0sa1.js} +1 -1
  218. package/public/dist/assets/wiki-link-suggestions-e5BzJAZH.js +23 -0
  219. package/public/dist/assets/{xychartDiagram-2RQKCTM6-B6rqui6F.js → xychartDiagram-2RQKCTM6-CWLoVl2b.js} +2 -2
  220. package/public/dist/index.html +20 -2
  221. package/public/dist/manager/index.html +2 -2
  222. package/public/index.html +18 -0
  223. package/public/js/constants.ts +12 -1
  224. package/public/js/features/settings-cli-status.ts +27 -4
  225. package/public/js/features/settings-core.ts +28 -15
  226. package/public/js/features/settings-types.ts +1 -0
  227. package/public/js/features/ui-status.ts +3 -0
  228. package/public/js/ws.ts +5 -1
  229. package/public/manager/src/SidebarRailRouter.tsx +5 -2
  230. package/public/manager/src/api.ts +13 -0
  231. package/public/manager/src/components/WorkbenchHeader.tsx +10 -0
  232. package/public/manager/src/manager-notes.css +228 -0
  233. package/public/manager/src/notes/NotesBacklinksPanel.tsx +91 -0
  234. package/public/manager/src/notes/NotesCommandPalette.tsx +212 -0
  235. package/public/manager/src/notes/NotesGraphView.tsx +145 -0
  236. package/public/manager/src/notes/NotesSidebar.tsx +183 -5
  237. package/public/manager/src/notes/NotesToolbar.tsx +9 -3
  238. package/public/manager/src/notes/NotesWorkspace.tsx +140 -4
  239. package/public/manager/src/notes/notes-api.ts +2 -0
  240. package/public/manager/src/notes/notes-command-registry.tsx +79 -0
  241. package/public/manager/src/notes/notes-quick-switcher.css +151 -0
  242. package/public/manager/src/notes/notes-shortcuts.ts +23 -0
  243. package/public/manager/src/notes/notes-types.ts +1 -1
  244. package/public/manager/src/notes/template-engine.ts +27 -0
  245. package/public/manager/src/settings/pages/components/agent/agent-meta.ts +7 -1
  246. package/public/manager/src/types.ts +2 -1
  247. package/scripts/audit-fresh-install-evidence.mjs +278 -0
  248. package/scripts/collect-fresh-install-evidence.sh +459 -0
  249. package/scripts/fresh-install-smoke.ts +85 -6
  250. package/scripts/install-officecli.ps1 +14 -1
  251. package/scripts/install-risk-gate.mjs +161 -0
  252. package/scripts/install-wsl.sh +78 -16
  253. package/scripts/install.sh +272 -72
  254. package/scripts/postinstall-guard.cjs +2 -2
  255. package/scripts/release-preview.sh +25 -3
  256. package/scripts/release.sh +37 -8
  257. package/scripts/require-release-evidence.mjs +236 -0
  258. package/scripts/verify-fresh-install.sh +120 -0
  259. package/scripts/verify-release-evidence.mjs +158 -0
  260. package/public/dist/assets/Permissions-DvUCB8wA.js +0 -1
  261. package/public/dist/assets/agent-meta-Du8y6mSM.js +0 -1
  262. package/public/dist/assets/app-Dpk6cE6C.css +0 -1
  263. package/public/dist/assets/chunk-55IACEB6-Dx2JkQLw.js +0 -1
  264. package/public/dist/assets/classDiagram-4FO5ZUOK-Cb-qL5u3.js +0 -1
  265. package/public/dist/assets/classDiagram-v2-Q7XG4LA2-BPhGdj15.js +0 -1
  266. package/public/dist/assets/constants-BxG09J6S.js +0 -1
  267. package/public/dist/assets/dist-BMi_buEb.js +0 -1
  268. package/public/dist/assets/dist-BkrbW_LS.js +0 -1
  269. package/public/dist/assets/dist-C3vh7d65.js +0 -13
  270. package/public/dist/assets/dist-D815C1Fv.js +0 -1
  271. package/public/dist/assets/dist-sOV2kBhQ.js +0 -1
  272. package/public/dist/assets/ganttDiagram-6RSMTGT7-BbUYP6iv.js +0 -292
  273. package/public/dist/assets/manager-B5OmizBL.css +0 -1
  274. package/public/dist/assets/manager-Cs3eMBcx.js +0 -25
  275. package/public/dist/assets/memory-DLQbyBA3.js +0 -1
  276. package/public/dist/assets/mermaid-loader-BVPsKrpr.js +0 -1
  277. package/public/dist/assets/mermaid.core-BAwu4U2Y.js +0 -1
  278. package/public/dist/assets/settings-DjyKdqev.js +0 -1
  279. package/public/dist/assets/settings-pUJzyeX2.js +0 -42
  280. package/public/dist/assets/sidebar-CO9Qjj6v.js +0 -14
  281. package/public/dist/assets/skills-CX3qJ77s.js +0 -1
  282. package/public/dist/assets/slash-commands-UbS8w9ij.js +0 -1
  283. package/public/dist/assets/stateDiagram-v2-BHNVJYJU-CCIo81qy.js +0 -1
  284. package/public/dist/assets/ui-CeBmBBZM.js +0 -140
  285. package/public/dist/assets/ui-TMXjvH0r.js +0 -1
  286. package/public/dist/assets/vendor-utils-BnxL60_-.js +0 -1
  287. package/public/dist/assets/wiki-link-suggestions-BHwNQXT_.js +0 -23
  288. /package/public/dist/assets/{HealthBadge-DEPFkcA0.js → HealthBadge-CfLTPTPW.js} +0 -0
  289. /package/public/dist/assets/{InlineWarn-DoJS7AgM.js → InlineWarn-C7ISyzDI.js} +0 -0
  290. /package/public/dist/assets/{fields-DUawAHWZ.js → fields-BwD_NGxe.js} +0 -0
  291. /package/public/dist/assets/{locale-BHMJIzyw.js → locale-DT1WRaeJ.js} +0 -0
  292. /package/public/dist/assets/{page-shell-CVAobxbP.js → page-shell-uNOxwdbr.js} +0 -0
  293. /package/public/dist/assets/{path-utils-r2bJIu28.js → path-utils-h2GAj3hH.js} +0 -0
  294. /package/public/dist/assets/{provider-icons-dxT69zGg.js → provider-icons-ClVd2suJ.js} +0 -0
@@ -0,0 +1,236 @@
1
+ #!/usr/bin/env node
2
+ import crypto from 'node:crypto';
3
+ import fs from 'node:fs';
4
+ import path from 'node:path';
5
+ import { spawnSync } from 'node:child_process';
6
+ import { fileURLToPath } from 'node:url';
7
+
8
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
9
+ const repoRoot = path.resolve(__dirname, '..');
10
+
11
+ const installerSensitivePaths = [
12
+ '.github/workflows/postinstall-platform.yml',
13
+ 'README.md',
14
+ 'README.ko.md',
15
+ 'README.ja.md',
16
+ 'README.zh-CN.md',
17
+ 'bin/postinstall.ts',
18
+ 'src/core/claude-install.ts',
19
+ 'src/core/cli-detect.ts',
20
+ 'src/core/runtime-path.ts',
21
+ 'scripts/install-risk-gate.mjs',
22
+ 'scripts/install.sh',
23
+ 'scripts/install-wsl.sh',
24
+ 'scripts/install-officecli.ps1',
25
+ 'scripts/install-officecli.sh',
26
+ 'scripts/fresh-install-smoke.ts',
27
+ 'scripts/verify-fresh-install.sh',
28
+ 'scripts/collect-fresh-install-evidence.sh',
29
+ 'scripts/audit-fresh-install-evidence.mjs',
30
+ 'scripts/verify-release-evidence.mjs',
31
+ 'scripts/require-release-evidence.mjs',
32
+ 'scripts/release.sh',
33
+ 'scripts/release-preview.sh',
34
+ 'tests/unit/cli-detect.test.ts',
35
+ 'tests/unit/install-sh-exec.test.ts',
36
+ 'tests/unit/fresh-evidence-audit.test.ts',
37
+ 'tests/unit/safe-install.test.ts',
38
+ 'tests/unit/service.test.ts',
39
+ 'tests/unit/postinstall-strict-tools.test.ts',
40
+ 'tests/unit/wsl-installer-doctor.test.ts',
41
+ 'tests/unit/wsl-installer-exec.test.ts',
42
+ 'package.json',
43
+ 'package-lock.json',
44
+ ];
45
+
46
+ function usage() {
47
+ console.log(`Usage: require-release-evidence.mjs [options]
48
+
49
+ Options:
50
+ --base-ref REF Compare installer-sensitive files against REF instead of the latest v* tag.
51
+ -h, --help Show this help.
52
+
53
+ If installer-sensitive files changed, this script requires:
54
+ CLI_JAW_MACOS_EVIDENCE_DIR=/path/to/macos-evidence
55
+ CLI_JAW_WSL_EVIDENCE_DIR=/path/to/wsl-evidence
56
+
57
+ Then it runs scripts/verify-release-evidence.mjs before publish/release can continue.
58
+ `);
59
+ }
60
+
61
+ let baseRef = '';
62
+ const args = process.argv.slice(2);
63
+ for (let i = 0; i < args.length; i += 1) {
64
+ const arg = args[i];
65
+ if (arg === '-h' || arg === '--help') {
66
+ usage();
67
+ process.exit(0);
68
+ }
69
+ if (arg === '--base-ref') {
70
+ baseRef = args[++i] || '';
71
+ if (!baseRef) throw new Error('missing value for --base-ref');
72
+ continue;
73
+ }
74
+ throw new Error(`unknown option: ${arg}`);
75
+ }
76
+
77
+ function git(args, options = {}) {
78
+ return spawnSync('git', args, {
79
+ cwd: repoRoot,
80
+ encoding: 'utf8',
81
+ stdio: options.stdio || 'pipe',
82
+ shell: false,
83
+ });
84
+ }
85
+
86
+ function requireGit(args, label) {
87
+ const result = git(args);
88
+ if (result.status !== 0) {
89
+ throw new Error(`${label} failed: ${(result.stderr || result.stdout || '').trim()}`);
90
+ }
91
+ return result.stdout.trim();
92
+ }
93
+
94
+ function isGitRepo() {
95
+ return git(['rev-parse', '--is-inside-work-tree']).status === 0;
96
+ }
97
+
98
+ function currentPackageVersionTag() {
99
+ const packageJson = workingTreeFile('package.json');
100
+ if (!packageJson) return '';
101
+ try {
102
+ const version = JSON.parse(packageJson).version;
103
+ return typeof version === 'string' && version ? `v${version}` : '';
104
+ } catch {
105
+ return '';
106
+ }
107
+ }
108
+
109
+ function latestVersionTag() {
110
+ const result = git(['tag', '--sort=-v:refname']);
111
+ if (result.status !== 0) return '';
112
+ const currentTag = currentPackageVersionTag();
113
+ const tags = result.stdout
114
+ .split(/\r?\n/)
115
+ .map((tag) => tag.trim())
116
+ .filter((tag) => /^v[0-9]+\.[0-9]+\.[0-9]+$/.test(tag));
117
+ return tags.find((tag) => tag !== currentTag) || '';
118
+ }
119
+
120
+ function gitFile(ref, relativePath) {
121
+ const result = git(['show', `${ref}:${relativePath}`]);
122
+ if (result.status !== 0) return null;
123
+ return result.stdout;
124
+ }
125
+
126
+ function workingTreeFile(relativePath) {
127
+ const fullPath = path.join(repoRoot, relativePath);
128
+ if (!fs.existsSync(fullPath) || !fs.statSync(fullPath).isFile()) return null;
129
+ return fs.readFileSync(fullPath, 'utf8');
130
+ }
131
+
132
+ function stableStringify(value) {
133
+ if (Array.isArray(value)) {
134
+ return `[${value.map(stableStringify).join(',')}]`;
135
+ }
136
+ if (value && typeof value === 'object') {
137
+ return `{${Object.keys(value).sort().map((key) => `${JSON.stringify(key)}:${stableStringify(value[key])}`).join(',')}}`;
138
+ }
139
+ return JSON.stringify(value);
140
+ }
141
+
142
+ function normalizePackageJson(content) {
143
+ const parsed = JSON.parse(content);
144
+ delete parsed.version;
145
+ return stableStringify(parsed);
146
+ }
147
+
148
+ function normalizePackageLock(content) {
149
+ const parsed = JSON.parse(content);
150
+ delete parsed.version;
151
+ if (parsed.packages?.['']) {
152
+ delete parsed.packages[''].version;
153
+ }
154
+ return stableStringify(parsed);
155
+ }
156
+
157
+ function normalizeForEvidence(relativePath, content) {
158
+ if (content === null) return null;
159
+ if (relativePath === 'package.json') return normalizePackageJson(content);
160
+ if (relativePath === 'package-lock.json') return normalizePackageLock(content);
161
+ return content.replace(/\r\n/g, '\n');
162
+ }
163
+
164
+ function changedInstallerFiles(ref) {
165
+ const changed = [];
166
+ for (const relativePath of installerSensitivePaths) {
167
+ const before = normalizeForEvidence(relativePath, gitFile(ref, relativePath));
168
+ const after = normalizeForEvidence(relativePath, workingTreeFile(relativePath));
169
+ if (before !== after) {
170
+ changed.push(relativePath);
171
+ }
172
+ }
173
+ return changed;
174
+ }
175
+
176
+ function shortHash(files) {
177
+ return crypto.createHash('sha256').update(files.join('\n')).digest('hex').slice(0, 12);
178
+ }
179
+
180
+ if (!isGitRepo()) {
181
+ console.error('[release-evidence-required] FAIL');
182
+ console.error('- Cannot determine installer-sensitive changes outside a git checkout.');
183
+ console.error('- Publish from the release checkout, or run scripts/verify-release-evidence.mjs manually before packaging.');
184
+ process.exit(1);
185
+ }
186
+
187
+ const ref = baseRef || latestVersionTag();
188
+ if (!ref) {
189
+ console.error('[release-evidence-required] no previous v* tag found; treating release as installer-sensitive');
190
+ }
191
+ if (ref) {
192
+ requireGit(['rev-parse', '--verify', `${ref}^{commit}`], `base ref ${ref}`);
193
+ }
194
+
195
+ const changed = ref ? changedInstallerFiles(ref) : installerSensitivePaths;
196
+ if (!changed.length) {
197
+ console.log(`[release-evidence-required] SKIP no installer-sensitive changes since ${ref}`);
198
+ process.exit(0);
199
+ }
200
+
201
+ const macosEvidence = process.env.CLI_JAW_MACOS_EVIDENCE_DIR || process.env.MACOS_EVIDENCE_DIR || '';
202
+ const wslEvidence = process.env.CLI_JAW_WSL_EVIDENCE_DIR || process.env.WSL_EVIDENCE_DIR || '';
203
+
204
+ console.error(`[release-evidence-required] installer-sensitive changes detected since ${ref || '(initial release)'} (${changed.length}, ${shortHash(changed)})`);
205
+ for (const file of changed.slice(0, 30)) {
206
+ console.error(`- ${file}`);
207
+ }
208
+ if (changed.length > 30) {
209
+ console.error(`- ... ${changed.length - 30} more`);
210
+ }
211
+
212
+ if (!macosEvidence || !wslEvidence) {
213
+ console.error('[release-evidence-required] FAIL');
214
+ console.error('Strict fresh-machine evidence is required before git push or npm publish.');
215
+ console.error('Set both variables and rerun:');
216
+ console.error(' CLI_JAW_MACOS_EVIDENCE_DIR=/path/to/macos-evidence');
217
+ console.error(' CLI_JAW_WSL_EVIDENCE_DIR=/path/to/wsl-evidence');
218
+ console.error('Then verify with:');
219
+ console.error(' node scripts/verify-release-evidence.mjs --macos "$CLI_JAW_MACOS_EVIDENCE_DIR" --wsl "$CLI_JAW_WSL_EVIDENCE_DIR"');
220
+ process.exit(1);
221
+ }
222
+
223
+ const gate = path.join(__dirname, 'verify-release-evidence.mjs');
224
+ const result = spawnSync(process.execPath, [gate, '--macos', macosEvidence, '--wsl', wslEvidence], {
225
+ cwd: repoRoot,
226
+ env: process.env,
227
+ encoding: 'utf8',
228
+ stdio: 'inherit',
229
+ shell: false,
230
+ });
231
+
232
+ if (result.status !== 0) {
233
+ process.exit(result.status ?? 1);
234
+ }
235
+
236
+ console.log('[release-evidence-required] PASS strict fresh-machine release evidence');
@@ -0,0 +1,120 @@
1
+ #!/usr/bin/env bash
2
+ # Verify a completed CLI-JAW fresh install from a newly opened macOS/Linux shell.
3
+ set -euo pipefail
4
+
5
+ SKIP_DOCTOR=0
6
+ for arg in "$@"; do
7
+ case "$arg" in
8
+ --skip-doctor) SKIP_DOCTOR=1 ;;
9
+ *) echo "Unknown option: $arg" >&2; exit 2 ;;
10
+ esac
11
+ done
12
+
13
+ fail() {
14
+ echo "✖ $*" >&2
15
+ exit 1
16
+ }
17
+
18
+ ok() {
19
+ echo "✔ $*"
20
+ }
21
+
22
+ run_version() {
23
+ local name="$1"
24
+ command -v "$name" >/dev/null 2>&1 || fail "$name is not on PATH"
25
+ "$name" --version >/dev/null 2>&1 || fail "$name is on PATH but '$name --version' failed"
26
+ ok "$name works: $(command -v "$name")"
27
+ }
28
+
29
+ run_optional_version() {
30
+ local name="$1"
31
+ if command -v "$name" >/dev/null 2>&1 && "$name" --version >/dev/null 2>&1; then
32
+ ok "$name works: $(command -v "$name")"
33
+ return 0
34
+ fi
35
+ if [ "${CLI_JAW_REQUIRE_OPTIONAL_RUNTIMES:-0}" = "1" ] || [ "${CLI_JAW_REQUIRE_OPTIONAL_RUNTIMES:-}" = "true" ]; then
36
+ fail "$name optional runtime is missing or not runnable"
37
+ fi
38
+ ok "$name optional runtime not available; continuing"
39
+ }
40
+
41
+ path_contains() {
42
+ local needle="$1"
43
+ case ":${PATH:-}:" in
44
+ *":$needle:"*) return 0 ;;
45
+ *) return 1 ;;
46
+ esac
47
+ }
48
+
49
+ should_check_zsh() {
50
+ command -v zsh >/dev/null 2>&1 || return 1
51
+
52
+ case "$(uname -s 2>/dev/null || true)" in
53
+ Darwin) return 0 ;;
54
+ esac
55
+
56
+ case "${SHELL:-}" in
57
+ */zsh) return 0 ;;
58
+ esac
59
+
60
+ [ -f "$HOME/.zshrc" ] || [ -f "$HOME/.zprofile" ]
61
+ }
62
+
63
+ is_wsl() {
64
+ [ -n "${WSL_DISTRO_NAME:-}" ] && return 0
65
+ grep -qi microsoft /proc/version 2>/dev/null
66
+ }
67
+
68
+ echo "CLI-JAW fresh-install verification"
69
+ echo "shell=${SHELL:-unknown}"
70
+ echo "path=${PATH:-}"
71
+
72
+ run_version node
73
+ node -e 'process.exit(Number(process.versions.node.split(".")[0]) >= 22 ? 0 : 1)' >/dev/null 2>&1 \
74
+ || fail "node version is below 22: $(node --version 2>/dev/null || echo unknown)"
75
+ ok "node version is >=22: $(node --version)"
76
+
77
+ run_version npm
78
+ run_version jaw
79
+ run_optional_version ai-e
80
+ run_optional_version claude-e
81
+
82
+ if command -v npm >/dev/null 2>&1; then
83
+ npm_prefix="$(npm prefix -g 2>/dev/null || true)"
84
+ npm_bin="${npm_prefix%/}/bin"
85
+ if [ -n "$npm_prefix" ] && [ -d "$npm_bin" ]; then
86
+ path_contains "$npm_bin" || fail "npm global bin is not on PATH: $npm_bin"
87
+ ok "npm global bin is on PATH: $npm_bin"
88
+ fi
89
+ fi
90
+
91
+ if [ -x "$HOME/.local/bin/claude" ]; then
92
+ path_contains "$HOME/.local/bin" || fail "~/.local/bin contains claude but is not on PATH"
93
+ "$HOME/.local/bin/claude" --version >/dev/null 2>&1 || fail "native claude exists but failed --version"
94
+ ok "native claude path is usable"
95
+ fi
96
+
97
+ if should_check_zsh; then
98
+ zsh -ic 'command -v node >/dev/null && command -v npm >/dev/null && command -v jaw >/dev/null' >/dev/null 2>&1 \
99
+ || fail "interactive zsh cannot resolve node/npm/jaw"
100
+ ok "interactive zsh resolves node/npm/jaw"
101
+
102
+ zsh -lc 'command -v node >/dev/null && command -v npm >/dev/null && command -v jaw >/dev/null' >/dev/null 2>&1 \
103
+ || fail "login zsh cannot resolve node/npm/jaw"
104
+ ok "login zsh resolves node/npm/jaw"
105
+ fi
106
+
107
+ if is_wsl; then
108
+ bash -lc 'command -v node >/dev/null && node --version >/dev/null && command -v npm >/dev/null && npm --version >/dev/null && command -v jaw >/dev/null && jaw --version >/dev/null' >/dev/null 2>&1 \
109
+ || fail "WSL bash login shell cannot resolve node/npm/jaw"
110
+ ok "WSL bash login shell resolves node/npm/jaw"
111
+ fi
112
+
113
+ if [ "$SKIP_DOCTOR" != "1" ]; then
114
+ jaw doctor >/dev/null 2>&1 || fail "jaw doctor failed"
115
+ ok "jaw doctor completed"
116
+ else
117
+ ok "jaw doctor skipped"
118
+ fi
119
+
120
+ echo "ALL PASS"
@@ -0,0 +1,158 @@
1
+ #!/usr/bin/env node
2
+ import path from 'node:path';
3
+ import { spawnSync } from 'node:child_process';
4
+ import { fileURLToPath } from 'node:url';
5
+ import fs from 'node:fs';
6
+ import crypto from 'node:crypto';
7
+
8
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
9
+
10
+ function usage() {
11
+ console.log(`Usage: verify-release-evidence.mjs --macos DIR --wsl DIR [options]
12
+
13
+ Options:
14
+ --macos DIR Strict macOS fresh-machine evidence directory.
15
+ --wsl DIR Strict Windows-via-WSL fresh-machine evidence directory.
16
+ --auditor FILE Auditor script path. Defaults to sibling audit-fresh-install-evidence.mjs.
17
+ -h, --help Show this help.
18
+
19
+ This is the release gate. It intentionally does not pass any --allow-* local-smoke
20
+ flags to the per-target auditor.
21
+ `);
22
+ }
23
+
24
+ const args = process.argv.slice(2);
25
+ let macosDir = '';
26
+ let wslDir = '';
27
+ let auditor = path.join(__dirname, 'audit-fresh-install-evidence.mjs');
28
+ const currentScripts = {
29
+ collector: path.join(__dirname, 'collect-fresh-install-evidence.sh'),
30
+ verifier: path.join(__dirname, 'verify-fresh-install.sh'),
31
+ macosInstaller: path.join(__dirname, 'install.sh'),
32
+ wslInstaller: path.join(__dirname, 'install-wsl.sh'),
33
+ };
34
+
35
+ for (let i = 0; i < args.length; i += 1) {
36
+ const arg = args[i];
37
+ if (arg === '-h' || arg === '--help') {
38
+ usage();
39
+ process.exit(0);
40
+ }
41
+ if (arg === '--macos') {
42
+ macosDir = args[++i] || '';
43
+ continue;
44
+ }
45
+ if (arg === '--wsl') {
46
+ wslDir = args[++i] || '';
47
+ continue;
48
+ }
49
+ if (arg === '--auditor') {
50
+ auditor = args[++i] || '';
51
+ continue;
52
+ }
53
+ throw new Error(`unknown option: ${arg}`);
54
+ }
55
+
56
+ const failures = [];
57
+ if (!macosDir) failures.push('missing --macos DIR');
58
+ if (!wslDir) failures.push('missing --wsl DIR');
59
+ if (macosDir && wslDir && path.resolve(macosDir) === path.resolve(wslDir)) {
60
+ failures.push('--macos and --wsl must point to different evidence directories');
61
+ }
62
+ if (!auditor) failures.push('missing --auditor FILE');
63
+
64
+ function requireDirectory(label, dir) {
65
+ if (!dir) return;
66
+ if (!fs.existsSync(dir)) {
67
+ failures.push(`${label} evidence directory does not exist: ${dir}`);
68
+ return;
69
+ }
70
+ if (!fs.statSync(dir).isDirectory()) {
71
+ failures.push(`${label} evidence path is not a directory: ${dir}`);
72
+ }
73
+ }
74
+
75
+ function requireFile(label, file) {
76
+ if (!file) return;
77
+ if (!fs.existsSync(file)) {
78
+ failures.push(`${label} file does not exist: ${file}`);
79
+ return;
80
+ }
81
+ if (!fs.statSync(file).isFile()) {
82
+ failures.push(`${label} path is not a file: ${file}`);
83
+ }
84
+ }
85
+
86
+ requireDirectory('macOS', macosDir);
87
+ requireDirectory('Windows-via-WSL', wslDir);
88
+ requireFile('auditor', auditor);
89
+ requireFile('current collector', currentScripts.collector);
90
+ requireFile('current verifier', currentScripts.verifier);
91
+ requireFile('current macOS installer', currentScripts.macosInstaller);
92
+ requireFile('current WSL installer', currentScripts.wslInstaller);
93
+
94
+ function sha256(file) {
95
+ return crypto.createHash('sha256').update(fs.readFileSync(file)).digest('hex');
96
+ }
97
+
98
+ function requireEvidenceScriptMatches(label, evidenceDir, evidenceFile, currentFile) {
99
+ if (!evidenceDir || !currentFile) return;
100
+
101
+ const archived = path.join(evidenceDir, evidenceFile);
102
+ if (!fs.existsSync(archived)) {
103
+ failures.push(`${label} archived script missing: ${archived}`);
104
+ return;
105
+ }
106
+ if (!fs.statSync(archived).isFile()) {
107
+ failures.push(`${label} archived script path is not a file: ${archived}`);
108
+ return;
109
+ }
110
+
111
+ const archivedHash = sha256(archived);
112
+ const currentHash = sha256(currentFile);
113
+ if (archivedHash !== currentHash) {
114
+ failures.push(`${label} archived ${evidenceFile} does not match current ${path.basename(currentFile)}: evidence=${archivedHash} current=${currentHash}`);
115
+ }
116
+ }
117
+
118
+ function runAudit(label, dir, target) {
119
+ console.log(`[release-evidence] RUN ${label}: ${dir}`);
120
+ const result = spawnSync(process.execPath, [auditor, dir, '--target', target], {
121
+ cwd: process.cwd(),
122
+ env: process.env,
123
+ encoding: 'utf8',
124
+ stdio: 'pipe',
125
+ shell: false,
126
+ });
127
+ if (result.stdout) process.stdout.write(result.stdout);
128
+ if (result.stderr) process.stderr.write(result.stderr);
129
+ if (result.status !== 0) {
130
+ failures.push(`${label} audit failed with exit ${result.status ?? 'signal'}`);
131
+ return;
132
+ }
133
+ console.log(`[release-evidence] PASS ${label}`);
134
+ }
135
+
136
+ if (!failures.length) {
137
+ runAudit('macOS', macosDir, 'macos');
138
+ runAudit('Windows-via-WSL', wslDir, 'wsl');
139
+ }
140
+
141
+ if (!failures.length) {
142
+ requireEvidenceScriptMatches('macOS', macosDir, '00-collector-script.sh', currentScripts.collector);
143
+ requireEvidenceScriptMatches('macOS', macosDir, '02-installer-script.sh', currentScripts.macosInstaller);
144
+ requireEvidenceScriptMatches('macOS', macosDir, '21-verifier-script.sh', currentScripts.verifier);
145
+ requireEvidenceScriptMatches('Windows-via-WSL', wslDir, '00-collector-script.sh', currentScripts.collector);
146
+ requireEvidenceScriptMatches('Windows-via-WSL', wslDir, '02-installer-script.sh', currentScripts.wslInstaller);
147
+ requireEvidenceScriptMatches('Windows-via-WSL', wslDir, '21-verifier-script.sh', currentScripts.verifier);
148
+ }
149
+
150
+ if (failures.length) {
151
+ console.error('[release-evidence] FAIL');
152
+ for (const failure of failures) {
153
+ console.error(`- ${failure}`);
154
+ }
155
+ process.exit(1);
156
+ }
157
+
158
+ console.log('[release-evidence] ALL PASS');
@@ -1 +0,0 @@
1
- import{a as e,i as t,n,o as r,r as i,t as a}from"./Permissions-BkADXjQ4.js";export{a as default,n as isAllowlistValid,i as isPermissionToken,t as isPermissionsAuto,e as parsePermissionsValue,r as seedAutoAllowlist};
@@ -1 +0,0 @@
1
- var e=[`claude`,`codex`,`gemini`],t={"ai-e":{label:`AI-E`,defaultProvider:`claude`,providers:[`claude`,`codex`,`gemini`,`grok`,`copilot`],models:[`opus`,`sonnet`,`haiku`,`gpt-5.4`,`gpt-5.4-mini`,`gemini-3-flash-preview`,`grok-build`,`gpt-5-mini`],efforts:[`low`,`medium`,`high`,`xhigh`,`max`],modelsByProvider:{claude:[`opus`,`sonnet`,`haiku`],codex:[`gpt-5.4`,`gpt-5.4-mini`],gemini:[`gemini-3-flash-preview`],grok:[`grok-build`],copilot:[`gpt-5-mini`]},effortsByProvider:{claude:[`low`,`medium`,`high`,`xhigh`,`max`],codex:[`low`,`medium`,`high`,`xhigh`],gemini:[],grok:[],copilot:[`low`,`medium`,`high`]}},claude:{label:`Claude`,models:[`opus`,`sonnet`,`sonnet[1m]`,`haiku`,`claude-opus-4-7`,`claude-opus-4-7[1m]`,`claude-opus-4-6`,`claude-opus-4-6[1m]`,`claude-sonnet-4-6`,`claude-sonnet-4-6[1m]`,`claude-haiku-4-5`],efforts:[`low`,`medium`,`high`,`xhigh`,`max`]},"claude-e":{label:`Claude E`,models:[`opus`,`sonnet`,`haiku`,`claude-opus-4-7`,`claude-sonnet-4-6`,`claude-haiku-4-5`],efforts:[`low`,`medium`,`high`,`xhigh`,`max`]},codex:{label:`Codex`,models:[`gpt-5.5`,`gpt-5.4`,`gpt-5.4-mini`,`gpt-5.3-codex`],efforts:[`low`,`medium`,`high`,`xhigh`]},"codex-app":{label:`Codex App`,models:[`gpt-5.5`,`gpt-5.4`,`gpt-5.4-mini`,`gpt-5.3-codex`],efforts:[`low`,`medium`,`high`,`xhigh`]},gemini:{label:`Gemini`,models:[`gemini-3-pro-preview`,`gemini-2.5-pro`,`gemini-3-flash-preview`],efforts:[]},grok:{label:`Grok`,models:[`grok-build`],efforts:[],effortNote:`unsupported by grok-build; do not pass --effort`},opencode:{label:`OpenCode`,models:[`opencode-go/kimi-k2.6`,`opencode-go/glm-5.1`],efforts:[`minimal`,`low`,`high`,`max`]},copilot:{label:`Copilot`,models:[`gpt-5.5`,`claude-opus-4.7`,`claude-sonnet-4.6`,`gpt-5.4`],efforts:[`low`,`medium`,`high`]}};function n(e){return t[e]||{label:e,models:[],efforts:[]}}function r(e,t={},n={}){return n[e]?.model||t[e]?.model||``}function i(e,t={},n={}){return n[e]?.effort||t[e]?.effort||``}function a(e,t=``){let n=new Set;t&&n.add(t);for(let t of e)n.add(t);return Array.from(n).map(e=>({value:e,label:e}))}export{r as a,i,n,a as r,e as t};