cli-jaw 2.0.5 → 2.0.6

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 (614) hide show
  1. package/README.ja.md +229 -315
  2. package/README.ko.md +248 -315
  3. package/README.md +103 -186
  4. package/README.zh-CN.md +282 -296
  5. package/dist/bin/commands/browser-web-ai.js +4 -2
  6. package/dist/bin/commands/browser-web-ai.js.map +1 -1
  7. package/dist/bin/commands/browser.js +76 -0
  8. package/dist/bin/commands/browser.js.map +1 -1
  9. package/dist/bin/commands/doctor.js +122 -4
  10. package/dist/bin/commands/doctor.js.map +1 -1
  11. package/dist/bin/commands/skill.js +5 -3
  12. package/dist/bin/commands/skill.js.map +1 -1
  13. package/dist/bin/postinstall.js +507 -89
  14. package/dist/bin/postinstall.js.map +1 -1
  15. package/dist/lib/mcp/format-converters.js +32 -4
  16. package/dist/lib/mcp/format-converters.js.map +1 -1
  17. package/dist/lib/mcp/mcp-install.js +5 -0
  18. package/dist/lib/mcp/mcp-install.js.map +1 -1
  19. package/dist/lib/mcp/skills-distribution.js +52 -53
  20. package/dist/lib/mcp/skills-distribution.js.map +1 -1
  21. package/dist/lib/mcp/skills-reset.js +29 -16
  22. package/dist/lib/mcp/skills-reset.js.map +1 -1
  23. package/dist/lib/mcp/skills-utils.js +64 -2
  24. package/dist/lib/mcp/skills-utils.js.map +1 -1
  25. package/dist/lib/mcp/unified-config.js +7 -3
  26. package/dist/lib/mcp/unified-config.js.map +1 -1
  27. package/dist/scripts/fresh-install-smoke.js +1 -1
  28. package/dist/scripts/fresh-install-smoke.js.map +1 -1
  29. package/dist/server.js +44 -4
  30. package/dist/server.js.map +1 -1
  31. package/dist/src/agent/args.js +148 -1
  32. package/dist/src/agent/args.js.map +1 -1
  33. package/dist/src/agent/claude-e-runtime.js +42 -0
  34. package/dist/src/agent/claude-e-runtime.js.map +1 -0
  35. package/dist/src/agent/claude-i-runtime.js +42 -0
  36. package/dist/src/agent/claude-i-runtime.js.map +1 -0
  37. package/dist/src/agent/cli-helpers.js +9 -0
  38. package/dist/src/agent/cli-helpers.js.map +1 -0
  39. package/dist/src/agent/codex-app-client.js +240 -0
  40. package/dist/src/agent/codex-app-client.js.map +1 -0
  41. package/dist/src/agent/codex-app-events.js +268 -0
  42. package/dist/src/agent/codex-app-events.js.map +1 -0
  43. package/dist/src/agent/error-classifier.js +8 -2
  44. package/dist/src/agent/error-classifier.js.map +1 -1
  45. package/dist/src/agent/events/acp.js +200 -0
  46. package/dist/src/agent/events/acp.js.map +1 -0
  47. package/dist/src/agent/events/claude.js +200 -0
  48. package/dist/src/agent/events/claude.js.map +1 -0
  49. package/dist/src/agent/events/codex.js +118 -0
  50. package/dist/src/agent/events/codex.js.map +1 -0
  51. package/dist/src/agent/events/gemini.js +100 -0
  52. package/dist/src/agent/events/gemini.js.map +1 -0
  53. package/dist/src/agent/events/grok.js +298 -0
  54. package/dist/src/agent/events/grok.js.map +1 -0
  55. package/dist/src/agent/events/helpers.js +237 -0
  56. package/dist/src/agent/events/helpers.js.map +1 -0
  57. package/dist/src/agent/events/index.js +315 -0
  58. package/dist/src/agent/events/index.js.map +1 -0
  59. package/dist/src/agent/events/opencode.js +171 -0
  60. package/dist/src/agent/events/opencode.js.map +1 -0
  61. package/dist/src/agent/events/summary.js +128 -0
  62. package/dist/src/agent/events/summary.js.map +1 -0
  63. package/dist/src/agent/events/tool-labels.js +299 -0
  64. package/dist/src/agent/events/tool-labels.js.map +1 -0
  65. package/dist/src/agent/events/types.js +3 -0
  66. package/dist/src/agent/events/types.js.map +1 -0
  67. package/dist/src/agent/events.js +2 -1487
  68. package/dist/src/agent/events.js.map +1 -1
  69. package/dist/src/agent/grok-trace-backfill.js +153 -0
  70. package/dist/src/agent/grok-trace-backfill.js.map +1 -0
  71. package/dist/src/agent/lifecycle-handler.js +60 -16
  72. package/dist/src/agent/lifecycle-handler.js.map +1 -1
  73. package/dist/src/agent/live-run-state.js +1 -1
  74. package/dist/src/agent/live-run-state.js.map +1 -1
  75. package/dist/src/agent/memory-flush-controller.js +26 -0
  76. package/dist/src/agent/memory-flush-controller.js.map +1 -1
  77. package/dist/src/agent/resume-classifier.js +9 -0
  78. package/dist/src/agent/resume-classifier.js.map +1 -1
  79. package/dist/src/agent/session-persistence.js +7 -2
  80. package/dist/src/agent/session-persistence.js.map +1 -1
  81. package/dist/src/agent/spawn/process-kill.js +29 -0
  82. package/dist/src/agent/spawn/process-kill.js.map +1 -0
  83. package/dist/src/agent/spawn/queue.js +273 -0
  84. package/dist/src/agent/spawn/queue.js.map +1 -0
  85. package/dist/src/agent/spawn/resume.js +56 -0
  86. package/dist/src/agent/spawn/resume.js.map +1 -0
  87. package/dist/src/agent/spawn.js +435 -371
  88. package/dist/src/agent/spawn.js.map +1 -1
  89. package/dist/src/agent/watchdog.js +5 -1
  90. package/dist/src/agent/watchdog.js.map +1 -1
  91. package/dist/src/browser/adaptive-fetch/browser-escalation.js +177 -0
  92. package/dist/src/browser/adaptive-fetch/browser-escalation.js.map +1 -0
  93. package/dist/src/browser/adaptive-fetch/browser-runtime.js +38 -0
  94. package/dist/src/browser/adaptive-fetch/browser-runtime.js.map +1 -0
  95. package/dist/src/browser/adaptive-fetch/browser-session.js +97 -0
  96. package/dist/src/browser/adaptive-fetch/browser-session.js.map +1 -0
  97. package/dist/src/browser/adaptive-fetch/challenge-detector.js +88 -0
  98. package/dist/src/browser/adaptive-fetch/challenge-detector.js.map +1 -0
  99. package/dist/src/browser/adaptive-fetch/content-scorer.js +145 -0
  100. package/dist/src/browser/adaptive-fetch/content-scorer.js.map +1 -0
  101. package/dist/src/browser/adaptive-fetch/endpoint-resolvers.js +382 -0
  102. package/dist/src/browser/adaptive-fetch/endpoint-resolvers.js.map +1 -0
  103. package/dist/src/browser/adaptive-fetch/fetcher.js +105 -0
  104. package/dist/src/browser/adaptive-fetch/fetcher.js.map +1 -0
  105. package/dist/src/browser/adaptive-fetch/human-loop.js +101 -0
  106. package/dist/src/browser/adaptive-fetch/human-loop.js.map +1 -0
  107. package/dist/src/browser/adaptive-fetch/index.js +586 -0
  108. package/dist/src/browser/adaptive-fetch/index.js.map +1 -0
  109. package/dist/src/browser/adaptive-fetch/metadata.js +169 -0
  110. package/dist/src/browser/adaptive-fetch/metadata.js.map +1 -0
  111. package/dist/src/browser/adaptive-fetch/output.js +71 -0
  112. package/dist/src/browser/adaptive-fetch/output.js.map +1 -0
  113. package/dist/src/browser/adaptive-fetch/reader-adapters.js +135 -0
  114. package/dist/src/browser/adaptive-fetch/reader-adapters.js.map +1 -0
  115. package/dist/src/browser/adaptive-fetch/safety.js +296 -0
  116. package/dist/src/browser/adaptive-fetch/safety.js.map +1 -0
  117. package/dist/src/browser/adaptive-fetch/third-party-readers.js +43 -0
  118. package/dist/src/browser/adaptive-fetch/third-party-readers.js.map +1 -0
  119. package/dist/src/browser/adaptive-fetch/trace.js +61 -0
  120. package/dist/src/browser/adaptive-fetch/trace.js.map +1 -0
  121. package/dist/src/browser/adaptive-fetch/transforms.js +81 -0
  122. package/dist/src/browser/adaptive-fetch/transforms.js.map +1 -0
  123. package/dist/src/browser/adaptive-fetch/validators.js +108 -0
  124. package/dist/src/browser/adaptive-fetch/validators.js.map +1 -0
  125. package/dist/src/browser/adaptive-fetch/waf-profiles.js +135 -0
  126. package/dist/src/browser/adaptive-fetch/waf-profiles.js.map +1 -0
  127. package/dist/src/browser/index.js +1 -0
  128. package/dist/src/browser/index.js.map +1 -1
  129. package/dist/src/browser/web-ai/gemini-model.js +42 -15
  130. package/dist/src/browser/web-ai/gemini-model.js.map +1 -1
  131. package/dist/src/cli/claude-models.js +1 -1
  132. package/dist/src/cli/claude-models.js.map +1 -1
  133. package/dist/src/cli/compact.js +2 -0
  134. package/dist/src/cli/compact.js.map +1 -1
  135. package/dist/src/cli/handlers-completions.js +3 -0
  136. package/dist/src/cli/handlers-completions.js.map +1 -1
  137. package/dist/src/cli/handlers-runtime.js +5 -2
  138. package/dist/src/cli/handlers-runtime.js.map +1 -1
  139. package/dist/src/cli/readiness.js +43 -1
  140. package/dist/src/cli/readiness.js.map +1 -1
  141. package/dist/src/cli/registry.js +58 -0
  142. package/dist/src/cli/registry.js.map +1 -1
  143. package/dist/src/core/browser-open.js +4 -1
  144. package/dist/src/core/browser-open.js.map +1 -1
  145. package/dist/src/core/claude-install.js +4 -0
  146. package/dist/src/core/claude-install.js.map +1 -1
  147. package/dist/src/core/cli-detect.js +61 -13
  148. package/dist/src/core/cli-detect.js.map +1 -1
  149. package/dist/src/core/compact.js +295 -63
  150. package/dist/src/core/compact.js.map +1 -1
  151. package/dist/src/core/config.js +151 -11
  152. package/dist/src/core/config.js.map +1 -1
  153. package/dist/src/core/db.js +10 -1
  154. package/dist/src/core/db.js.map +1 -1
  155. package/dist/src/core/employees.js +1 -1
  156. package/dist/src/core/employees.js.map +1 -1
  157. package/dist/src/core/logger.js +28 -9
  158. package/dist/src/core/logger.js.map +1 -1
  159. package/dist/src/core/runtime-settings.js +32 -5
  160. package/dist/src/core/runtime-settings.js.map +1 -1
  161. package/dist/src/manager/memory/embedding/state-machine.js +2 -1
  162. package/dist/src/manager/memory/embedding/state-machine.js.map +1 -1
  163. package/dist/src/manager/memory/embedding/sync.js +52 -33
  164. package/dist/src/manager/memory/embedding/sync.js.map +1 -1
  165. package/dist/src/manager/memory/embedding/vec-store.js +10 -10
  166. package/dist/src/manager/memory/embedding/vec-store.js.map +1 -1
  167. package/dist/src/manager/routes/dashboard-memory.js +43 -16
  168. package/dist/src/manager/routes/dashboard-memory.js.map +1 -1
  169. package/dist/src/manager/server.js +11 -0
  170. package/dist/src/manager/server.js.map +1 -1
  171. package/dist/src/memory/indexing.js +6 -1
  172. package/dist/src/memory/indexing.js.map +1 -1
  173. package/dist/src/orchestrator/distribute.js +5 -4
  174. package/dist/src/orchestrator/distribute.js.map +1 -1
  175. package/dist/src/prompt/builder.js +12 -1
  176. package/dist/src/prompt/builder.js.map +1 -1
  177. package/dist/src/prompt/runtime-context.js +69 -0
  178. package/dist/src/prompt/runtime-context.js.map +1 -0
  179. package/dist/src/routes/browser.js +33 -0
  180. package/dist/src/routes/browser.js.map +1 -1
  181. package/dist/src/routes/employees.js +1 -1
  182. package/dist/src/routes/employees.js.map +1 -1
  183. package/dist/src/routes/memory.js +1 -1
  184. package/dist/src/routes/memory.js.map +1 -1
  185. package/dist/src/routes/orchestrate.js +37 -10
  186. package/dist/src/routes/orchestrate.js.map +1 -1
  187. package/dist/src/routes/quota.js +91 -1
  188. package/dist/src/routes/quota.js.map +1 -1
  189. package/dist/src/routes/runtime-context.js +43 -0
  190. package/dist/src/routes/runtime-context.js.map +1 -0
  191. package/dist/src/routes/security-audit.js +14 -0
  192. package/dist/src/routes/security-audit.js.map +1 -0
  193. package/dist/src/routes/settings.js +8 -1
  194. package/dist/src/routes/settings.js.map +1 -1
  195. package/dist/src/security/security-audit-log.js +99 -0
  196. package/dist/src/security/security-audit-log.js.map +1 -0
  197. package/dist/src/telegram/bot.js +4 -2
  198. package/dist/src/telegram/bot.js.map +1 -1
  199. package/dist/src/types/cli-engine.js +4 -0
  200. package/dist/src/types/cli-engine.js.map +1 -1
  201. package/dist/src/types/cli-events.js +1 -1
  202. package/dist/src/types/cli-events.js.map +1 -1
  203. package/package.json +9 -3
  204. package/public/assets/providers/antigravity-color.svg +1 -0
  205. package/public/assets/providers/antigravity.svg +1 -0
  206. package/public/assets/providers/copilot-color.svg +1 -1
  207. package/public/assets/providers/copilot.svg +1 -1
  208. package/public/assets/providers/grok-color.svg +1 -0
  209. package/public/assets/providers/grok.svg +1 -0
  210. package/public/css/chat-search.css +168 -0
  211. package/public/css/chat.css +43 -1
  212. package/public/css/modals.css +41 -0
  213. package/public/dist/assets/{AdvancedExport-BAdZUC-6.js → AdvancedExport-CBvz4_IZ.js} +1 -1
  214. package/public/dist/assets/Agent-DlUqCMXJ.js +1 -0
  215. package/public/dist/assets/{Browser-BsdxDVgM.js → Browser-66BpLQck.js} +1 -1
  216. package/public/dist/assets/{ChannelsDiscord-Dg_jto6l.js → ChannelsDiscord-BifT2Dum.js} +1 -1
  217. package/public/dist/assets/{ChannelsTelegram-DGyZfJGS.js → ChannelsTelegram-CK6tYQ8k.js} +1 -1
  218. package/public/dist/assets/DashboardEmbeddingSection-6F8zSSja.js +2 -0
  219. package/public/dist/assets/{DashboardMeta-CAH9ONTb.js → DashboardMeta-Cc03HT5R.js} +1 -1
  220. package/public/dist/assets/{Display-DM_yvyKL.js → Display-arOjcMQZ.js} +1 -1
  221. package/public/dist/assets/Employees-YbW-mI67.js +1 -0
  222. package/public/dist/assets/{HealthBadge-Dtr-dDnw.js → HealthBadge-DEPFkcA0.js} +1 -1
  223. package/public/dist/assets/Heartbeat-CW4eIhtJ.js +1 -0
  224. package/public/dist/assets/{InlineWarn-E64UaKFh.js → InlineWarn-DoJS7AgM.js} +1 -1
  225. package/public/dist/assets/{Mcp-Dlp2X7X7.js → Mcp-ZQ6ARQb6.js} +1 -1
  226. package/public/dist/assets/Memory-BAUWJMqc.js +1 -0
  227. package/public/dist/assets/{MilkdownWysiwygEditor-Ctww8i0L.js → MilkdownWysiwygEditor-IAqFtXvM.js} +1 -1
  228. package/public/dist/assets/ModelProvider-DUtmFh0J.js +1 -0
  229. package/public/dist/assets/{Network-Df1R2YcQ.js → Network-B_4E82zQ.js} +1 -1
  230. package/public/dist/assets/{Permissions-BKJ5K6EL.js → Permissions-BkADXjQ4.js} +1 -1
  231. package/public/dist/assets/{Permissions-CcWZoOVP.js → Permissions-DvUCB8wA.js} +1 -1
  232. package/public/dist/assets/{Profile-DZ7xf1WZ.js → Profile-BcnTCSYM.js} +1 -1
  233. package/public/dist/assets/{Prompts-Bh5DYt8e.js → Prompts-CUs_RoRE.js} +1 -1
  234. package/public/dist/assets/{SpeechKeys-CQwtVxOP.js → SpeechKeys-qxc-ROWN.js} +1 -1
  235. package/public/dist/assets/agent-meta-Du8y6mSM.js +1 -0
  236. package/public/dist/assets/app-CGqTcIeF.js +39 -0
  237. package/public/dist/assets/app-Dpk6cE6C.css +1 -0
  238. package/public/dist/assets/architecture-7EHR7CIX-wVaUQezY.js +1 -0
  239. package/public/dist/assets/architectureDiagram-3BPJPVTR-kYIVzmWe.js +36 -0
  240. package/public/dist/assets/blockDiagram-GPEHLZMM-B204CPhe.js +132 -0
  241. package/public/dist/assets/{c4Diagram-AHTNJAMY-Bp2QLC-s.js → c4Diagram-AAUBKEIU-DAv6TAjg.js} +6 -6
  242. package/public/dist/assets/channel-CCQujL1n.js +1 -0
  243. package/public/dist/assets/{chunk-EDXVE4YY-COudQKkJ.js → chunk-2J33WTMH-xiPJWKcl.js} +1 -1
  244. package/public/dist/assets/chunk-3OPIFGDE-DOAvk9x8.js +62 -0
  245. package/public/dist/assets/{chunk-4BX2VUAB-Cm3KqBkS.js → chunk-4BX2VUAB-6lTRwyT0.js} +1 -1
  246. package/public/dist/assets/chunk-4EGX6M5U-DXtAEgX6.js +1 -0
  247. package/public/dist/assets/chunk-55IACEB6-Dx2JkQLw.js +1 -0
  248. package/public/dist/assets/chunk-5DO6E6H7-DDcMHB95.js +1 -0
  249. package/public/dist/assets/chunk-5ZQYHXKU-Bd-RFO5i.js +2 -0
  250. package/public/dist/assets/chunk-727SXJPM-BrsRzj8z.js +206 -0
  251. package/public/dist/assets/{chunk-AGHRB4JF-DIMn8T3_.js → chunk-AGHRB4JF-CYdXVA2-.js} +1 -1
  252. package/public/dist/assets/chunk-AQP2D5EJ-Di6Gstk-.js +231 -0
  253. package/public/dist/assets/{chunk-LIHQZDEY-Xw9ZX8of.js → chunk-BR22UD5L-CVuYkAd1.js} +1 -1
  254. package/public/dist/assets/{chunk-BSJP7CBP-DnSYKjii.js → chunk-BSJP7CBP-B47GpxcW.js} +1 -1
  255. package/public/dist/assets/chunk-CSCIHK7Q-CAE1p4Em.js +123 -0
  256. package/public/dist/assets/chunk-FHYWG6QK-CxZt-yZZ.js +1 -0
  257. package/public/dist/assets/{chunk-FMBD7UC4-6yXYicjw.js → chunk-FMBD7UC4-CwqBlx0l.js} +1 -1
  258. package/public/dist/assets/chunk-KSCS5N6A-D9a4ZkOy.js +10 -0
  259. package/public/dist/assets/{chunk-ZZ45TVLE-D5oxCC1O.js → chunk-L5ZTLDWV-D208QbfC.js} +1 -1
  260. package/public/dist/assets/{chunk-336JU56O-CAt5aBOe.js → chunk-LZXEDZCA-CE2KFduj.js} +1 -1
  261. package/public/dist/assets/chunk-MPE355IW-Bp4qAOUf.js +1 -0
  262. package/public/dist/assets/chunk-MZUSXYTE-DAU-v-0c.js +1 -0
  263. package/public/dist/assets/chunk-N66VUXT2-CpPz1L5u.js +1 -0
  264. package/public/dist/assets/chunk-ND2GUHAM-zZ7h1CPf.js +1 -0
  265. package/public/dist/assets/chunk-NNHCCRGN-BaiX9a5F.js +159 -0
  266. package/public/dist/assets/{chunk-X2U36JSP-CoMFMVNF.js → chunk-NZK2D7GU-CTqFQ8K5.js} +1 -1
  267. package/public/dist/assets/chunk-O5CBEL6O-BTuvXKFi.js +11 -0
  268. package/public/dist/assets/chunk-PUPMXCY4-ppZvktf-.js +1 -0
  269. package/public/dist/assets/chunk-QZHKN3VN-CBAtPPT7.js +1 -0
  270. package/public/dist/assets/chunk-UIBZB4QT-rJZEVBX0.js +1 -0
  271. package/public/dist/assets/chunk-WCWK7LTN-CGvUyB8h.js +1 -0
  272. package/public/dist/assets/chunk-WU5MYG2G-C3fKlSvP.js +1 -0
  273. package/public/dist/assets/{chunk-XPW4576I-CmAz5C-j.js → chunk-XPW4576I-BaQfzRci.js} +1 -1
  274. package/public/dist/assets/classDiagram-4FO5ZUOK-Cb-qL5u3.js +1 -0
  275. package/public/dist/assets/classDiagram-v2-Q7XG4LA2-BPhGdj15.js +1 -0
  276. package/public/dist/assets/constants-BxG09J6S.js +1 -0
  277. package/public/dist/assets/cose-bilkent-S5V4N54A-D1zmarou.js +1 -0
  278. package/public/dist/assets/dagre-BM42HDAG-BVkBttzA.js +4 -0
  279. package/public/dist/assets/dagre-DnoxfNXr.js +1 -0
  280. package/public/dist/assets/diagram-2AECGRRQ-Bs32KPnT.js +43 -0
  281. package/public/dist/assets/{diagram-5BDNPKRD-Cl4PzCD0.js → diagram-5GNKFQAL-YDYgPOQj.js} +2 -2
  282. package/public/dist/assets/diagram-KO2AKTUF-1tIdFl26.js +3 -0
  283. package/public/dist/assets/{diagram-TYMM5635-B_Xoa1Gp.js → diagram-LMA3HP47-B1y15kav.js} +1 -1
  284. package/public/dist/assets/diagram-OG6HWLK6-C25j1jGg.js +24 -0
  285. package/public/dist/assets/{dist-C9LWf2uC.js → dist-0v1UKkQ3.js} +1 -1
  286. package/public/dist/assets/dist-BMi_buEb.js +1 -0
  287. package/public/dist/assets/{dist-B6G8pbap.js → dist-BQNQk-1M.js} +1 -1
  288. package/public/dist/assets/{dist-CCKktDoF.js → dist-BVpa_e6W.js} +1 -1
  289. package/public/dist/assets/dist-BkrbW_LS.js +1 -0
  290. package/public/dist/assets/{dist-CkMC2PPt.js → dist-C1VqWrYZ.js} +1 -1
  291. package/public/dist/assets/{dist-BA7sRne4.js → dist-C3vh7d65.js} +1 -1
  292. package/public/dist/assets/{dist-BhzKO6nt2.js → dist-CE4s7vg82.js} +1 -1
  293. package/public/dist/assets/{dist-BDMNMdPF.js → dist-CjPin7Mr.js} +1 -1
  294. package/public/dist/assets/{dist-W7IGn2ug.js → dist-Ck6PnIlo.js} +1 -1
  295. package/public/dist/assets/{dist-B1rKu9eP.js → dist-CnIrGAPx.js} +1 -1
  296. package/public/dist/assets/{dist-CEDX2HGI.js → dist-Cv8S3FhF.js} +1 -1
  297. package/public/dist/assets/{dist-55MYVjjj.js → dist-D0PYXGt2.js} +1 -1
  298. package/public/dist/assets/{dist-C0sOT_UM.js → dist-D5GUqT-6.js} +1 -1
  299. package/public/dist/assets/{dist-C5S-Rbvc.js → dist-D66X8iAn.js} +1 -1
  300. package/public/dist/assets/dist-D815C1Fv.js +1 -0
  301. package/public/dist/assets/{dist-Ch6JG5jE.js → dist-DDDFJ8jG.js} +1 -1
  302. package/public/dist/assets/{dist-2oDfqE98.js → dist-DHQI31dn.js} +1 -1
  303. package/public/dist/assets/{dist-BTp_Oy_x.js → dist-DTQW91xt.js} +1 -1
  304. package/public/dist/assets/{dist-BuaQLcgQ.js → dist-Dm7RAaUo.js} +1 -1
  305. package/public/dist/assets/{dist-BJyDhGpS.js → dist-DrIWh2fi.js} +1 -1
  306. package/public/dist/assets/{dist-BGzHP3f8.js → dist-DzT7frM2.js} +1 -1
  307. package/public/dist/assets/{dist-wdLr2dSH.js → dist-Qs7HHNCC.js} +1 -1
  308. package/public/dist/assets/{dist-BjqyutOM.js → dist-Rs_Khtjb.js} +1 -1
  309. package/public/dist/assets/{dist-DdhWu7OM.js → dist-fJAyK82z.js} +1 -1
  310. package/public/dist/assets/{dist-G7QUHtDS.js → dist-jcptfm_T.js} +1 -1
  311. package/public/dist/assets/dist-sOV2kBhQ.js +1 -0
  312. package/public/dist/assets/{dist-BoG5I6U5.js → dist-vQskrHxt.js} +1 -1
  313. package/public/dist/assets/{dockerfile-CrC2HXHP.js → dockerfile-DAfh5qoE.js} +1 -1
  314. package/public/dist/assets/{employees-CIkIyvtL.js → employees-DRmX2RDd.js} +2 -2
  315. package/public/dist/assets/{erDiagram-SMLLAGMA-BvtqhMsS.js → erDiagram-TEJ5UH35-CRvCbztR.js} +6 -6
  316. package/public/dist/assets/{error-normalize-CkhPeQYx.js → error-normalize-CNbPE4lO.js} +1 -1
  317. package/public/dist/assets/eventmodeling-FCH6USID-Cq0nylxO.js +1 -0
  318. package/public/dist/assets/{factor-1CttFx2G.js → factor-BpoYJieo.js} +1 -1
  319. package/public/dist/assets/fields-DUawAHWZ.js +1 -0
  320. package/public/dist/assets/flowDiagram-I6XJVG4X-CzvVnib_.js +162 -0
  321. package/public/dist/assets/ganttDiagram-6RSMTGT7-BbUYP6iv.js +292 -0
  322. package/public/dist/assets/gitGraph-WXDBUCRP-DDq6-3D3.js +1 -0
  323. package/public/dist/assets/gitGraphDiagram-PVQCEYII-CbKdM7nW.js +106 -0
  324. package/public/dist/assets/graphlib-BLOO0H5r.js +1 -0
  325. package/public/dist/assets/info-J43DQDTF-OUnqwpUV.js +1 -0
  326. package/public/dist/assets/infoDiagram-5YYISTIA-BrZmg1At.js +2 -0
  327. package/public/dist/assets/{ishikawaDiagram-UXIWVN3A-DZW-Nqsf.js → ishikawaDiagram-YF4QCWOH-BDWXqJi5.js} +2 -2
  328. package/public/dist/assets/javascript-CZjRNq5R.js +1 -0
  329. package/public/dist/assets/{journeyDiagram-VCZTEJTY-ByVRJxVF.js → journeyDiagram-JHISSGLW-CPFRd_M3.js} +6 -6
  330. package/public/dist/assets/{jsx-runtime-BjL7qHh8.js → jsx-runtime-BZmCptaP.js} +1 -1
  331. package/public/dist/assets/{kanban-definition-6JOO6SKY-xwN0YCW2.js → kanban-definition-UN3LZRKU-BcQbBplS.js} +10 -10
  332. package/public/dist/assets/katex-CF5bGce6.js +1 -0
  333. package/public/dist/assets/manager-B5OmizBL.css +1 -0
  334. package/public/dist/assets/manager-Cs3eMBcx.js +25 -0
  335. package/public/dist/assets/{memory-CnBc2_Va.js → memory-BA-ki3gn.js} +1 -1
  336. package/public/dist/assets/memory-DLQbyBA3.js +1 -0
  337. package/public/dist/assets/mermaid-loader-BVPsKrpr.js +1 -0
  338. package/public/dist/assets/mermaid-parser.core-C62NUJRb.js +3 -0
  339. package/public/dist/assets/mermaid.core-ArqR5iFa.js +9 -0
  340. package/public/dist/assets/mermaid.core-BAwu4U2Y.js +1 -0
  341. package/public/dist/assets/{mindmap-definition-QFDTVHPH-Chqgsh1N.js → mindmap-definition-RKZ34NQL-C35cGkNU.js} +29 -29
  342. package/public/dist/assets/{nsis-_CjIiUyF.js → nsis-Ch4QINLN.js} +1 -1
  343. package/public/dist/assets/packet-YPE3B663-Bb9hBQ06.js +1 -0
  344. package/public/dist/assets/{page-shell-CTxVDJ8Y.js → page-shell-CVAobxbP.js} +1 -1
  345. package/public/dist/assets/pie-LRSECV5Y-CNRQnRNZ.js +1 -0
  346. package/public/dist/assets/pieDiagram-4H26LBE5-B8C_hoqJ.js +30 -0
  347. package/public/dist/assets/provider-icons-dxT69zGg.js +8 -0
  348. package/public/dist/assets/{pug-CbR8lCtK.js → pug-CXYqmmpP.js} +1 -1
  349. package/public/dist/assets/quadrantDiagram-W4KKPZXB-BEPrine5.js +7 -0
  350. package/public/dist/assets/radar-GUYGQ44K-BxngU2v0.js +1 -0
  351. package/public/dist/assets/{render-lpTpN1El.js → render-C7_e0J_X.js} +3 -3
  352. package/public/dist/assets/{requirementDiagram-MS252O5E-wnPtv0LG.js → requirementDiagram-4Y6WPE33-ClDDon9c.js} +4 -4
  353. package/public/dist/assets/rolldown-runtime-XQCOJYun.js +1 -0
  354. package/public/dist/assets/sankeyDiagram-5OEKKPKP-Bjs3OE-1.js +40 -0
  355. package/public/dist/assets/sequenceDiagram-3UESZ5HK-BM8IAaEe.js +162 -0
  356. package/public/dist/assets/settings-DjyKdqev.js +1 -0
  357. package/public/dist/assets/settings-pUJzyeX2.js +42 -0
  358. package/public/dist/assets/{sidebar-Cwt0FxQl.js → sidebar-CO9Qjj6v.js} +2 -2
  359. package/public/dist/assets/skills-CX3qJ77s.js +1 -0
  360. package/public/dist/assets/{skills-DDmTyywh.js → skills-Dq7fD8I3.js} +1 -1
  361. package/public/dist/assets/{slash-commands-D5y5AVvS.js → slash-commands-DRsKtuGT.js} +1 -1
  362. package/public/dist/assets/slash-commands-UbS8w9ij.js +1 -0
  363. package/public/dist/assets/stateDiagram-AJRCARHV-BvNABuXE.js +1 -0
  364. package/public/dist/assets/stateDiagram-v2-BHNVJYJU-CCIo81qy.js +1 -0
  365. package/public/dist/assets/{timeline-definition-GMOUNBTQ-DUz1-iOx.js → timeline-definition-PNZ67QCA-CIvTvac3.js} +8 -8
  366. package/public/dist/assets/trace-drawer-DDFdU07_.js +15 -0
  367. package/public/dist/assets/treeView-BLDUP644-cXRzPGzz.js +1 -0
  368. package/public/dist/assets/treemap-LRROVOQU-BsZE5HPE.js +1 -0
  369. package/public/dist/assets/ui-CeBmBBZM.js +140 -0
  370. package/public/dist/assets/ui-TMXjvH0r.js +1 -0
  371. package/public/dist/assets/{vendor-render-DEStnpJ8.js → vendor-render-DCb9B75Q.js} +38 -37
  372. package/public/dist/assets/vendor-utils-BnxL60_-.js +1 -0
  373. package/public/dist/assets/vennDiagram-CIIHVFJN-C5cbS2KC.js +34 -0
  374. package/public/dist/assets/wardley-L42UT6IY-D_qm0cZD.js +1 -0
  375. package/public/dist/assets/{wardleyDiagram-NUSXRM2D-CLAhOzap.js → wardleyDiagram-YWT4CUSO-BsRBBGFP.js} +61 -3
  376. package/public/dist/assets/{wiki-link-suggestions-LQuYT22G.js → wiki-link-suggestions-BHwNQXT_.js} +2 -2
  377. package/public/dist/assets/{xychartDiagram-5P7HB3ND-DLnY9i8z.js → xychartDiagram-2RQKCTM6-B6rqui6F.js} +6 -6
  378. package/public/dist/index.html +102 -3
  379. package/public/dist/manager/index.html +2 -2
  380. package/public/index.html +101 -1
  381. package/public/js/constants.ts +72 -0
  382. package/public/js/diagram/iframe-renderer.ts +7 -0
  383. package/public/js/features/chat-scroll.ts +31 -0
  384. package/public/js/features/chat-search.ts +223 -0
  385. package/public/js/features/help-content.ts +20 -2
  386. package/public/js/features/help-dialog.ts +38 -2
  387. package/public/js/features/pending-queue.ts +6 -0
  388. package/public/js/features/process-block.ts +20 -0
  389. package/public/js/features/settings-channel.ts +3 -1
  390. package/public/js/features/settings-cli-status.ts +24 -3
  391. package/public/js/features/settings-core.ts +134 -21
  392. package/public/js/features/settings-types.ts +12 -1
  393. package/public/js/features/settings.ts +1 -1
  394. package/public/js/features/trace-drawer.ts +2 -1
  395. package/public/js/features/voice-recorder.ts +222 -42
  396. package/public/js/main.ts +58 -4
  397. package/public/js/provider-icons.ts +46 -27
  398. package/public/js/render/markdown.ts +6 -0
  399. package/public/js/ui.ts +33 -7
  400. package/public/js/ws.ts +5 -1
  401. package/public/locales/en.json +31 -7
  402. package/public/locales/ja.json +31 -7
  403. package/public/locales/ko.json +31 -7
  404. package/public/locales/zh.json +31 -7
  405. package/public/manager/src/App.tsx +19 -55
  406. package/public/manager/src/InstancePreview.tsx +46 -1
  407. package/public/manager/src/components/InstanceDetailPanel.tsx +7 -2
  408. package/public/manager/src/components/InstanceLogsPanel.tsx +138 -0
  409. package/public/manager/src/dashboard-settings/DashboardEmbeddingSection.tsx +37 -7
  410. package/public/manager/src/jaw-ceo/useJawCeoDashboardBridge.tsx +1 -0
  411. package/public/manager/src/manager-components.css +76 -0
  412. package/public/manager/src/preview.ts +26 -3
  413. package/public/manager/src/settings/fields/SelectField.tsx +51 -17
  414. package/public/manager/src/settings/pages/Agent.tsx +37 -2
  415. package/public/manager/src/settings/pages/Heartbeat.tsx +3 -2
  416. package/public/manager/src/settings/pages/Memory.tsx +3 -2
  417. package/public/manager/src/settings/pages/components/EmployeeRow.tsx +8 -4
  418. package/public/manager/src/settings/pages/components/PerCliRow.tsx +31 -5
  419. package/public/manager/src/settings/pages/components/agent/FlushAgentSection.tsx +4 -2
  420. package/public/manager/src/settings/pages/components/agent/RuntimeEmployeeRow.tsx +1 -1
  421. package/public/manager/src/settings/pages/components/agent/RuntimeHeader.tsx +23 -1
  422. package/public/manager/src/settings/pages/components/agent/agent-meta.ts +49 -0
  423. package/public/manager/src/settings/pages/components/employees-helpers.ts +6 -1
  424. package/public/manager/src/settings/pages/components/heartbeat-helpers.ts +11 -1
  425. package/public/manager/src/settings-controls.css +25 -0
  426. package/public/manager/src/usePreviewShortcutMessages.ts +30 -0
  427. package/public/manager/src/usePreviewSttLifecycle.ts +31 -0
  428. package/scripts/fresh-install-smoke.ts +1 -1
  429. package/scripts/install-officecli.ps1 +33 -5
  430. package/scripts/install-officecli.sh +52 -8
  431. package/scripts/install-wsl.sh +96 -24
  432. package/scripts/install.sh +82 -11
  433. package/scripts/postinstall-guard.cjs +57 -30
  434. package/public/dist/assets/Agent-DNpehKB2.js +0 -1
  435. package/public/dist/assets/DashboardEmbeddingSection-BYdGgqg7.js +0 -2
  436. package/public/dist/assets/Employees-CuYuTy0R.js +0 -1
  437. package/public/dist/assets/Heartbeat-C-vq02MW.js +0 -1
  438. package/public/dist/assets/Memory-BPKWJDXK.js +0 -1
  439. package/public/dist/assets/ModelProvider-Bd6vGkXT.js +0 -1
  440. package/public/dist/assets/agent-meta-C1pQzExf.js +0 -1
  441. package/public/dist/assets/app-BxsIleo0.js +0 -32
  442. package/public/dist/assets/app-CB9n5A77.css +0 -1
  443. package/public/dist/assets/architecture-YZFGNWBL-BRI-0IaU.js +0 -1
  444. package/public/dist/assets/architectureDiagram-Q4EWVU46-z0JCgZrJ.js +0 -36
  445. package/public/dist/assets/blockDiagram-DXYQGD6D-KaOz3aFS.js +0 -132
  446. package/public/dist/assets/channel-jLopKIgm.js +0 -1
  447. package/public/dist/assets/chunk-2KRD3SAO-C8hJZPJu.js +0 -1
  448. package/public/dist/assets/chunk-426QAEUC-atJRhvKN.js +0 -1
  449. package/public/dist/assets/chunk-4TB4RGXK-BD7UhIN8.js +0 -206
  450. package/public/dist/assets/chunk-55IACEB6-CAWcPDdr.js +0 -1
  451. package/public/dist/assets/chunk-5FUZZQ4R-Cg1pzs6p.js +0 -62
  452. package/public/dist/assets/chunk-5PVQY5BW-otv3HwE_.js +0 -2
  453. package/public/dist/assets/chunk-67CJDMHE-AU2iOKLT.js +0 -1
  454. package/public/dist/assets/chunk-7N4EOEYR-BTIS4jBw.js +0 -1
  455. package/public/dist/assets/chunk-AA7GKIK3-c9UUJO_T.js +0 -1
  456. package/public/dist/assets/chunk-CIAEETIT-Dwbln6rM.js +0 -1
  457. package/public/dist/assets/chunk-ENJZ2VHE-PT_jAckw.js +0 -10
  458. package/public/dist/assets/chunk-FOC6F5B3-BqDmFFeg.js +0 -1
  459. package/public/dist/assets/chunk-ICPOFSXX-P6V6jqiT.js +0 -122
  460. package/public/dist/assets/chunk-K5T4RW27-C42sOmZR.js +0 -27
  461. package/public/dist/assets/chunk-KGLVRYIC-K-BVa8b2.js +0 -1
  462. package/public/dist/assets/chunk-ORNJ4GCN-CEXU6WaD.js +0 -1
  463. package/public/dist/assets/chunk-OYMX7WX6-DmJG2z1S.js +0 -231
  464. package/public/dist/assets/chunk-QZHKN3VN-BkVLii_3.js +0 -1
  465. package/public/dist/assets/chunk-U2HBQHQK-Ny6UwUgK.js +0 -11
  466. package/public/dist/assets/chunk-YZCP3GAM-c7FYtZME.js +0 -1
  467. package/public/dist/assets/classDiagram-6PBFFD2Q-BgOyAynm.js +0 -1
  468. package/public/dist/assets/classDiagram-v2-HSJHXN6E-5gBdoVH9.js +0 -1
  469. package/public/dist/assets/constants-4A2GptQT.js +0 -1
  470. package/public/dist/assets/cose-bilkent-S5V4N54A-CvH6qY_r.js +0 -1
  471. package/public/dist/assets/dagre--20B2-ZQ.js +0 -1
  472. package/public/dist/assets/dagre-KV5264BT-CQ0wo0ma.js +0 -4
  473. package/public/dist/assets/diagram-G4DWMVQ6-_aP6kMTh.js +0 -24
  474. package/public/dist/assets/diagram-MMDJMWI5-J1l6Q0JG.js +0 -43
  475. package/public/dist/assets/dist-B1p80u1b.js +0 -1
  476. package/public/dist/assets/dist-BKyzWv22.js +0 -1
  477. package/public/dist/assets/dist-CxJpXP6s.js +0 -1
  478. package/public/dist/assets/dist-DNLFuTrS.js +0 -1
  479. package/public/dist/assets/fields-BISouxp2.js +0 -1
  480. package/public/dist/assets/flowDiagram-DWJPFMVM-C_F0rqqT.js +0 -162
  481. package/public/dist/assets/ganttDiagram-T4ZO3ILL-B5S8EZRg.js +0 -292
  482. package/public/dist/assets/gitGraph-7Q5UKJZL-DTTW6pxr.js +0 -1
  483. package/public/dist/assets/gitGraphDiagram-UUTBAWPF-DMGzYJeb.js +0 -106
  484. package/public/dist/assets/graphlib-CZk_Ii16.js +0 -1
  485. package/public/dist/assets/info-OMHHGYJF-BU-iuaSm.js +0 -1
  486. package/public/dist/assets/infoDiagram-42DDH7IO-dzSaYFFK.js +0 -2
  487. package/public/dist/assets/javascript-BhB45e0W.js +0 -1
  488. package/public/dist/assets/katex-DamPUmTE.js +0 -1
  489. package/public/dist/assets/manager-B84u-pcn.js +0 -25
  490. package/public/dist/assets/manager-DMg_sTEP.css +0 -1
  491. package/public/dist/assets/memory-BV62wlsG.js +0 -1
  492. package/public/dist/assets/mermaid-loader-DxFGz4EE.js +0 -1
  493. package/public/dist/assets/mermaid-parser.core-CMIZ0my_.js +0 -3
  494. package/public/dist/assets/mermaid.core-CicVBD9l.js +0 -1
  495. package/public/dist/assets/mermaid.core-Dj6viEzN.js +0 -11
  496. package/public/dist/assets/packet-4T2RLAQJ-DzmBsAf0.js +0 -1
  497. package/public/dist/assets/pie-ZZUOXDRM-DyG1KzTn.js +0 -1
  498. package/public/dist/assets/pieDiagram-DEJITSTG-DJLiSymi.js +0 -30
  499. package/public/dist/assets/quadrantDiagram-34T5L4WZ-qcnWmcRr.js +0 -7
  500. package/public/dist/assets/radar-PYXPWWZC-CEBZARUu.js +0 -1
  501. package/public/dist/assets/rolldown-runtime-DE9SaGGd.js +0 -1
  502. package/public/dist/assets/sankeyDiagram-XADWPNL6-Bn3pUd_K.js +0 -10
  503. package/public/dist/assets/sequenceDiagram-FGHM5R23-DfxcHSdj.js +0 -157
  504. package/public/dist/assets/settings-CfAXLa8a.js +0 -1
  505. package/public/dist/assets/settings-FWgmcubl.js +0 -40
  506. package/public/dist/assets/skills-D-qUVJ-e.js +0 -1
  507. package/public/dist/assets/slash-commands-BfI19vIz.js +0 -1
  508. package/public/dist/assets/stateDiagram-FHFEXIEX-CiR7P2OG.js +0 -1
  509. package/public/dist/assets/stateDiagram-v2-QKLJ7IA2-BaWWpysK.js +0 -1
  510. package/public/dist/assets/trace-drawer-DVF5F1df.js +0 -15
  511. package/public/dist/assets/treeView-SZITEDCU-D5-TP7Qp.js +0 -1
  512. package/public/dist/assets/treemap-W4RFUUIX-BQhm_ZSp.js +0 -1
  513. package/public/dist/assets/ui-BJXY16Dk.js +0 -140
  514. package/public/dist/assets/ui-BXm3OPPh.js +0 -1
  515. package/public/dist/assets/vendor-utils-IVTPs69f.js +0 -68
  516. package/public/dist/assets/vennDiagram-DHZGUBPP-CYu7SDdG.js +0 -34
  517. package/public/dist/assets/wardley-RL74JXVD-CpnBMRe0.js +0 -1
  518. package/public/manager/src/settings/pages/Embedding.tsx +0 -382
  519. /package/public/dist/assets/{apl-HYRstREL.js → apl-CieDeb7B.js} +0 -0
  520. /package/public/dist/assets/{asciiarmor-BDXCrhAK.js → asciiarmor-BRTyulZY.js} +0 -0
  521. /package/public/dist/assets/{asn1-CnSBhb0M.js → asn1-DoNAtQ5o.js} +0 -0
  522. /package/public/dist/assets/{asterisk-AqV7rnIi.js → asterisk-CR7oKPxi.js} +0 -0
  523. /package/public/dist/assets/{brainfuck-Dv46-iL9.js → brainfuck-abzPcrOz.js} +0 -0
  524. /package/public/dist/assets/{clike-GRffz5hY.js → clike-B71Zq38G.js} +0 -0
  525. /package/public/dist/assets/{clojure-DzgT_fqE.js → clojure-Zm0UzHPq.js} +0 -0
  526. /package/public/dist/assets/{cmake-Co1237r5.js → cmake-D3UNdg6L.js} +0 -0
  527. /package/public/dist/assets/{cobol-rUaLketb.js → cobol-4fYvwQR0.js} +0 -0
  528. /package/public/dist/assets/{coffeescript-DQyfHE86.js → coffeescript-Ct6bZdRU.js} +0 -0
  529. /package/public/dist/assets/{commonlisp-Buue1PGW.js → commonlisp-CrgXVPcd.js} +0 -0
  530. /package/public/dist/assets/{crystal-BMWO0kOJ.js → crystal-bGOl67VM.js} +0 -0
  531. /package/public/dist/assets/{css-DaxibPo5.js → css-B_EV3Xq2.js} +0 -0
  532. /package/public/dist/assets/{cypher-CmpGfiBR.js → cypher-DXDlHTYf.js} +0 -0
  533. /package/public/dist/assets/{cytoscape.esm-zT8GwLFm.js → cytoscape.esm-BK7ao2Ti.js} +0 -0
  534. /package/public/dist/assets/{d-qmdtoIzU.js → d-RL5ynsiz.js} +0 -0
  535. /package/public/dist/assets/{diff-B40m6u1h.js → diff-B5McBGjz.js} +0 -0
  536. /package/public/dist/assets/{dtd-569ynYVj.js → dtd-l3sK4p_C.js} +0 -0
  537. /package/public/dist/assets/{dylan-Dxolp30i.js → dylan-WjJGY-rW.js} +0 -0
  538. /package/public/dist/assets/{ebnf-BZiX9Iq3.js → ebnf-BGY79HOS.js} +0 -0
  539. /package/public/dist/assets/{ecl-B8F1Q0oZ.js → ecl-BKh7OE1d.js} +0 -0
  540. /package/public/dist/assets/{eiffel-Bv8Kvgh1.js → eiffel-Bzvlg3oK.js} +0 -0
  541. /package/public/dist/assets/{elm-QWXQaIis.js → elm-5_BqNmKu.js} +0 -0
  542. /package/public/dist/assets/{erlang-CuDGzTGm.js → erlang-BdVwz8I8.js} +0 -0
  543. /package/public/dist/assets/{fcl-BiFeqtHf.js → fcl-B9cnfODD.js} +0 -0
  544. /package/public/dist/assets/{forth-R7Uc2VcL.js → forth-wZbbnGzb.js} +0 -0
  545. /package/public/dist/assets/{fortran-kDRG6BzW.js → fortran-BAJZrRfU.js} +0 -0
  546. /package/public/dist/assets/{gas-CyRkuC5T.js → gas-D60ZhBat.js} +0 -0
  547. /package/public/dist/assets/{gherkin-BE0p00ey.js → gherkin-B8tKjAAi.js} +0 -0
  548. /package/public/dist/assets/{groovy-B_Sh3D1t.js → groovy-BAG9eJUD.js} +0 -0
  549. /package/public/dist/assets/{haskell-DWXgCy4o.js → haskell-Cj4TmWbg.js} +0 -0
  550. /package/public/dist/assets/{haxe-xGxZ54Hv.js → haxe-8chnvz-o.js} +0 -0
  551. /package/public/dist/assets/{http-CKv9cSBA.js → http-DDYeO71z.js} +0 -0
  552. /package/public/dist/assets/{idl-DmlI3XzS.js → idl-D1hY-Gp_.js} +0 -0
  553. /package/public/dist/assets/{javascript-j6r5uf_k.js → javascript-Sh0ZUMP2.js} +0 -0
  554. /package/public/dist/assets/{julia-CQSp9Qa0.js → julia-BibioBF2.js} +0 -0
  555. /package/public/dist/assets/{livescript-CqvtVTlb.js → livescript-CSZrB6F4.js} +0 -0
  556. /package/public/dist/assets/{lua-DazQKUZ0.js → lua-BvTlo5w3.js} +0 -0
  557. /package/public/dist/assets/{mathematica-DqhJVCs9.js → mathematica-Bexv8BWZ.js} +0 -0
  558. /package/public/dist/assets/{mbox-Dsyo1_UL.js → mbox-BAhbA8z2.js} +0 -0
  559. /package/public/dist/assets/{mirc-D7ThhoF-.js → mirc-BzT5Kh4S.js} +0 -0
  560. /package/public/dist/assets/{mllike-EPZ6pqQD.js → mllike-DeoJnUZQ.js} +0 -0
  561. /package/public/dist/assets/{modelica-PU45hbqg.js → modelica-FD_-Fxlc.js} +0 -0
  562. /package/public/dist/assets/{mscgen-DEnh2Ojr.js → mscgen-C-OyhbwB.js} +0 -0
  563. /package/public/dist/assets/{mumps-8GhR7rRa.js → mumps-BxkCDTK7.js} +0 -0
  564. /package/public/dist/assets/{nginx-CXwagpwp.js → nginx-2JaV__gC.js} +0 -0
  565. /package/public/dist/assets/{ntriples-BDQxxstw.js → ntriples--rhhCzqb.js} +0 -0
  566. /package/public/dist/assets/{octave-2c90WnyU.js → octave-rS4nMzRe.js} +0 -0
  567. /package/public/dist/assets/{oz-CO0rQ8EL.js → oz-I4fMb_NC.js} +0 -0
  568. /package/public/dist/assets/{pascal-CcVwOGeN.js → pascal-BEghJs8t.js} +0 -0
  569. /package/public/dist/assets/{path-utils-DySmCVZK.js → path-utils-r2bJIu28.js} +0 -0
  570. /package/public/dist/assets/{perl-B9UvGoAV.js → perl-BRO9ZFo9.js} +0 -0
  571. /package/public/dist/assets/{pig-Cd1f86ZJ.js → pig-L4Ii6KI0.js} +0 -0
  572. /package/public/dist/assets/{powershell-DV4cOnkJ.js → powershell-BBeqUCRp.js} +0 -0
  573. /package/public/dist/assets/{properties-DaSVPhrZ.js → properties-Boi0jF2J.js} +0 -0
  574. /package/public/dist/assets/{protobuf-CEtFnY22.js → protobuf-fB2aGypX.js} +0 -0
  575. /package/public/dist/assets/{puppet-Ca0DHfcW.js → puppet-BRmsErtO.js} +0 -0
  576. /package/public/dist/assets/{python-ydzCwWG-.js → python-Be4P9Dgp.js} +0 -0
  577. /package/public/dist/assets/{q-Cl8kzQmk.js → q-DZGhDLYt.js} +0 -0
  578. /package/public/dist/assets/{r-DKZPJFrD.js → r-B4NERjRM.js} +0 -0
  579. /package/public/dist/assets/{rough.esm-Dnk3WN4D.js → rough.esm-C0Gkx4O1.js} +0 -0
  580. /package/public/dist/assets/{rpm-D0lqeHoZ.js → rpm-e-QbHJ1q.js} +0 -0
  581. /package/public/dist/assets/{ruby-RVmtmNDw.js → ruby-BSVP_v59.js} +0 -0
  582. /package/public/dist/assets/{sas-CEzodAB7.js → sas-DHlU4v4g.js} +0 -0
  583. /package/public/dist/assets/{scheme-Pqmt6dh3.js → scheme-BGXbz5Hz.js} +0 -0
  584. /package/public/dist/assets/{settings-client-BN3XzwEo.js → settings-client-DPuJroyk.js} +0 -0
  585. /package/public/dist/assets/{shell-CLG3zy-u.js → shell-yonx6xY2.js} +0 -0
  586. /package/public/dist/assets/{sieve-C95IWC3O.js → sieve-ClPJUZyi.js} +0 -0
  587. /package/public/dist/assets/{simple-mode-B9ErAHMD.js → simple-mode-CjViblDK.js} +0 -0
  588. /package/public/dist/assets/{smalltalk-4cL-gRJb.js → smalltalk-CHXubeqS.js} +0 -0
  589. /package/public/dist/assets/{solr-CEA7oOx_.js → solr-C6q6YwPz.js} +0 -0
  590. /package/public/dist/assets/{sparql-w8kHjP6I.js → sparql-CcspZvEd.js} +0 -0
  591. /package/public/dist/assets/{spreadsheet-C8bDfTgC.js → spreadsheet-DH3a4LBS.js} +0 -0
  592. /package/public/dist/assets/{sql-BrKz8968.js → sql-meoY6gNi.js} +0 -0
  593. /package/public/dist/assets/{stex-xFw1nXeT.js → stex-D2bn6Zsh.js} +0 -0
  594. /package/public/dist/assets/{stylus-gS_68vPk.js → stylus-DbXGih0S.js} +0 -0
  595. /package/public/dist/assets/{swift-D5lXmY2d.js → swift-Ch391uOd.js} +0 -0
  596. /package/public/dist/assets/{tcl-D-41REtC.js → tcl-CQBgGWDP.js} +0 -0
  597. /package/public/dist/assets/{textile-D-Znao0j.js → textile-4i3oG3tg.js} +0 -0
  598. /package/public/dist/assets/{tiddlywiki-Co8lXJKd.js → tiddlywiki-CXG1-CcK.js} +0 -0
  599. /package/public/dist/assets/{tiki-DsiNRYMP.js → tiki-DJqKUhA-.js} +0 -0
  600. /package/public/dist/assets/{toml-CaVZGou4.js → toml-C1FnyICQ.js} +0 -0
  601. /package/public/dist/assets/{troff-DJvDVr-d.js → troff-Cp8NvRO0.js} +0 -0
  602. /package/public/dist/assets/{ttcn-DAC92l4d.js → ttcn-NlmW_fji.js} +0 -0
  603. /package/public/dist/assets/{ttcn-cfg-C0X-mYlr.js → ttcn-cfg-BVuxfGZf.js} +0 -0
  604. /package/public/dist/assets/{turtle-D6WHyCrL.js → turtle-Ba9ERlnm.js} +0 -0
  605. /package/public/dist/assets/{vb-CEo_ccq3.js → vb-DDs4gjJb.js} +0 -0
  606. /package/public/dist/assets/{vbscript-B_PKDV1v.js → vbscript-gOFmdMJN.js} +0 -0
  607. /package/public/dist/assets/{velocity-ClKnKBLH.js → velocity-DtSNZA7i.js} +0 -0
  608. /package/public/dist/assets/{verilog-Pnuspgw6.js → verilog-Pldmtxe7.js} +0 -0
  609. /package/public/dist/assets/{vhdl-CZnyY4fs.js → vhdl-BFfSgWGp.js} +0 -0
  610. /package/public/dist/assets/{w3c-keyname-DJlC6DTY.js → w3c-keyname-BggQEPNo.js} +0 -0
  611. /package/public/dist/assets/{webidl-DHr762Dm.js → webidl-B6ZFYE2L.js} +0 -0
  612. /package/public/dist/assets/{xquery-5-FiyUtN.js → xquery-DhxUT98N.js} +0 -0
  613. /package/public/dist/assets/{yacas-GlqsXIeT.js → yacas-jSkQeF1Q.js} +0 -0
  614. /package/public/dist/assets/{z80-CI7N40Oo.js → z80-D7Lt6v61.js} +0 -0
package/README.zh-CN.md CHANGED
@@ -2,164 +2,119 @@
2
2
 
3
3
  # CLI-JAW
4
4
 
5
- ### 你已有的 AI 订阅,一个助手统一使用。
5
+ ### 你的个人 AI 助手。2 行安装。7 个 AI 引擎,一个仪表盘。
6
6
 
7
7
  [![npm](https://img.shields.io/npm/v/cli-jaw)](https://npmjs.com/package/cli-jaw)
8
+ [![Version](https://img.shields.io/badge/v2.0.0-GA-brightgreen)](https://github.com/lidge-jun/cli-jaw/releases)
8
9
  [![TypeScript](https://img.shields.io/badge/TypeScript-5.7-blue)](https://typescriptlang.org)
9
10
  [![Node](https://img.shields.io/badge/node-%3E%3D22-blue)](https://nodejs.org)
10
11
  [![License](https://img.shields.io/badge/license-MIT-yellow)](LICENSE)
11
- [![Docker](https://img.shields.io/badge/Docker-supported-2496ED?logo=docker&logoColor=white)](#-docker)
12
+ [![Docker](https://img.shields.io/badge/Docker-supported-2496ED?logo=docker&logoColor=white)](#docker)
12
13
 
13
14
  [English](README.md) / [한국어](README.ko.md) / **中文** / [日本語](README.ja.md)
14
15
 
15
- ![CLI-JAW manager dashboard](docs/screenshots/manager-dashboard-light.png)
16
-
17
16
  </div>
18
17
 
19
- <table>
20
- <tr><td><b>统一使用已有订阅</b></td><td>通过 OAuth 接入 Claude Max、ChatGPT Pro、Copilot、Gemini Advanced。也可以通过 OpenCode 添加任意模型。没有按 token 计费。</td></tr>
21
- <tr><td><b>Manager dashboard</b></td><td>在一个浏览器工作区里追踪所有本地 JAW 实例,预览实时 Web UI,切换浅色/深色主题,查看运行时设置,并启动或停止托管会话。</td></tr>
22
- <tr><td><b>Notes workspace</b></td><td>仪表盘主目录下的 Markdown 仓库。支持文件夹、重命名/移动、未保存状态标记、raw/split/preview 模式、KaTeX、Mermaid 和代码高亮。</td></tr>
23
- <tr><td><b>你在哪里,它就在哪里</b></td><td>Manager dashboard、Web PWA、Mac WebView app、terminal TUI、带语音的 Telegram、Discord。所有入口共享同一个助手和同一份记忆。</td></tr>
24
- <tr><td><b>3-layer memory</b></td><td>History Block(近期会话)+ Memory Flush(episodes、daily logs)+ Soul and Task Snapshot(identity、semantic recall)。使用 SQLite FTS5 全文搜索。</td></tr>
25
- <tr><td><b>Multi-agent orchestration</b></td><td>PABCD 是持久化到 DB 的 5 阶段 FSM。Employee system 带 worker registry。支持并行 subtask 和文件重叠检测。每个 phase 都由你确认。</td></tr>
26
- <tr><td><b>Browser and desktop automation</b></td><td>Chrome CDP、vision-click、ChatGPT/Grok/Gemini 的 DOM reference、通过 Codex App 接入 Computer Use、用于 SVG 与交互式可视化的 diagram skill。</td></tr>
27
- <tr><td><b>MCP install once, 5 engines</b></td><td><code>jaw mcp install</code> 会同时同步到 Claude、Codex、Gemini、OpenCode、Copilot。只维护一份配置。</td></tr>
28
- <tr><td><b>多语言支持</b></td><td>English、Korean、Chinese、Japanese README。i18n Web UI。通过 OfficeCLI 支持 HWP/HWPX 韩文办公文档。</td></tr>
29
- </table>
18
+ ## 安装
30
19
 
31
- ---
20
+ <details>
21
+ <summary><b>安全安装</b> — 面向现有用户,最小改动</summary>
32
22
 
33
- ## 快速链接
23
+ ```bash
24
+ # macOS / Linux
25
+ JAW_SAFE=1 npm install -g cli-jaw # skips optional tool/runtime setup
26
+ jaw init # 准备好后再交互式配置
34
27
 
35
- - [安装](#-安装与运行) · [认证](#-认证) · [使用入口](#-使用入口)
36
- - [引擎路由](#-引擎路由) · [记忆](#-记忆) · [PABCD](#-编排--pabcd) · [技能](#-技能)
37
- - [浏览器自动化](#-浏览器与桌面自动化) · [MCP](#-mcp) · [消息](#-消息)
38
- - [CLI 命令](#%EF%B8%8F-cli-命令) · [Docker](#-docker) · [文档](#-文档) · [对比](#%EF%B8%8F-对比)
28
+ # Windows PowerShell
29
+ $env:JAW_SAFE="1"; npm install -g cli-jaw
30
+ jaw init
31
+ ```
39
32
 
40
- ---
33
+ </details>
41
34
 
42
- ## Manager dashboard
35
+ ```bash
36
+ npm install -g cli-jaw
37
+ jaw dashboard
38
+ ```
43
39
 
44
- Dashboard 现在是本地运行 CLI-JAW 的主控制面。实例发现、预览、设置、员工和 Notes 都在一个地方;每个实例仍然保留自己的主目录、数据库、记忆、生命周期元数据和工作目录。
40
+ 完成。打开 **http://localhost:3457** 即可拥有你的个人 AI 助手。需要 [Node.js 22+](https://nodejs.org)。
45
41
 
46
- | 区域 | 作用 |
47
- |---|---|
48
- | **Navigator** | 按活跃/运行中/离线分组实例,显示 CLI 与模型标签、自定义名称、端口,并提供预览/打开/启动/停止/重启操作 |
49
- | **Live preview** | 通过 Manager 预览代理嵌入所选实例的 Web UI,带刷新/打开控件和预览开关 |
50
- | **Runtime settings** | 显示所选实例的当前 CLI、模型、推理深度、权限模式、工作目录、员工、技能和设置 |
51
- | **Notes** | 仪表盘本地的 markdown 仓库,支持文件夹树、手动保存、拖拽到文件夹、重命名、分屏预览、KaTeX、Mermaid 和代码高亮 |
42
+ > **第一次用?** 安装时会自动配置 Claude、Codex、Gemini、Copilot 和 OpenCode CLI。只需认证其中一个(参见[认证](#认证))即可开始。
52
43
 
53
- 发布打磨还需要补齐的截图:
44
+ <details>
45
+ <summary><b>macOS 一键安装</b> — 没有 Node.js?用这个</summary>
54
46
 
55
- 1. 同样三栏布局的深色主题 dashboard。
56
- 2. 展示文件夹树、分屏编辑器/预览、已渲染 KaTeX/Mermaid/代码块的 Notes 模式。
57
- 3. 展示 responsive navigation 的 mobile 或 narrow viewport dashboard。
47
+ ```bash
48
+ curl -fsSL https://raw.githubusercontent.com/lidge-jun/cli-jaw/master/scripts/install.sh | bash
49
+ ```
58
50
 
59
- <details>
60
- <summary>在 Windows 上使用?— WSL 一键安装</summary>
51
+ </details>
61
52
 
62
- **步骤 1:安装 WSL**(以管理员身份打开 PowerShell)
53
+ <details>
54
+ <summary><b>Windows(WSL — Windows 子系统 Linux)</b> — 从零一键安装</summary>
63
55
 
64
56
  ```powershell
57
+ # 1. 安装 WSL(以管理员身份运行 PowerShell)
65
58
  wsl --install
66
59
  ```
67
60
 
68
- 重启后,从 Start Menu 打开 **Ubuntu**。
69
-
70
- **步骤 2:安装 CLI-JAW**
61
+ 重启后打开 **Ubuntu**,然后:
71
62
 
72
63
  ```bash
64
+ # 2. 安装 CLI-JAW + 所有依赖
73
65
  curl -fsSL https://raw.githubusercontent.com/lidge-jun/cli-jaw/master/scripts/install-wsl.sh | bash
74
- ```
75
-
76
- **步骤 3:重新加载 shell 并启动**
77
-
78
- ```bash
79
66
  source ~/.bashrc
80
- copilot login # or: claude auth / codex login / gemini
81
- jaw serve # → http://localhost:3457
67
+ jaw dashboard
82
68
  ```
83
69
 
84
- WSL 脚本是集成 Linux 安装路径:它会验证 `jaw --version`,以 strict mode
85
- 请求同捆 CLI 工具,安装 OfficeCLI,并在成功前验证 `officecli --version`。
86
- 如果没有检测到可运行的 Chromium 或 Windows Chrome fallback,安装器会给出警告,
87
- 不会把 browser/web-ai 说成已经完全可用。
88
-
89
- <details>
90
- <summary>WSL 故障排查</summary>
91
-
92
- | 问题 | 解决办法 |
93
- |---|---|
94
- | `unzip: command not found` | 重新运行 installer |
95
- | `jaw: command not found` | `source ~/.bashrc` 或 `export PATH="$HOME/.local/bin:$PATH"` |
96
- | `officecli: command not found` | 重新运行 WSL installer,或执行 `bash "$(npm root -g)/cli-jaw/scripts/install-officecli.sh"` |
97
- | Permission errors | `sudo chown -R $USER $(npm config get prefix)` |
98
-
99
- </details>
100
70
  </details>
101
71
 
102
72
  <details>
103
- <summary>第一次用终端?— macOS 一键安装</summary>
104
-
105
- 1. 打开 **Terminal**(`Cmd + Space` → 输入 `Terminal`)
106
- 2. 粘贴下面的命令并按 Enter:
73
+ <summary><b>Docker</b></summary>
107
74
 
108
75
  ```bash
109
- curl -fsSL https://raw.githubusercontent.com/lidge-jun/cli-jaw/master/scripts/install.sh | bash
110
- ```
111
-
112
- 3. 认证并启动:
113
-
114
- ```bash
115
- copilot login
116
- jaw serve # → http://localhost:3457
76
+ docker compose up -d # http://localhost:3457
117
77
  ```
118
78
 
119
79
  </details>
120
80
 
121
81
  ---
122
82
 
123
- ## 🚀 安装与运行
83
+ ## CLI-JAW 是什么?
124
84
 
125
- ```bash
126
- npm install -g cli-jaw
127
- jaw serve
128
- ```
85
+ CLI-JAW 是一个开源平台,将你已经在用的 AI 编码 CLI — Claude、Codex、Gemini、Grok、OpenCode、Copilot — 统一成**一个助手、一份记忆、一个仪表盘**。
129
86
 
130
- 普通 Linux `npm install -g cli-jaw` 为了兼容性仍把 optional helper 安装视为
131
- best-effort。需要集成安装保证时请使用 WSL 一键脚本;普通 Linux 安装后请手动验证:
87
+ 你的主 CLI(Boss)调度其他 CLI 作为"员工"。不用在各种应用之间来回切换,直接在一个地方下达指令。
132
88
 
133
- ```bash
134
- jaw --version
135
- officecli --version
136
- jaw doctor
137
- ```
89
+ - **无需 API 密钥** — 通过你已有的订阅路由
90
+ - **无按 token 计费** — 和你现在的月费一样
91
+ - **本地运行** — 代码不会离开你的机器
138
92
 
139
- 打开 **http://localhost:3457**。需要 Node.js 22+,并且至少完成下面一个 AI CLI 的认证。
93
+ <div align="center">
94
+
95
+ ![CLI-JAW Manager Dashboard](docs/screenshots/manager-dashboard-light.png)
140
96
 
141
- > `jaw service install` — 开机自启(自动检测 systemd、launchd 或 Docker)。
142
- >
143
- > Claude Code 说明:如果需要 Anthropic computer-use MCP,建议使用原生 Claude installer(`curl -fsSL https://claude.ai/install.sh | bash` 或 `claude install`)。当 `claude` 看起来由 npm/bun 管理时,`jaw doctor` 现在会提示警告。
97
+ </div>
144
98
 
145
99
  ---
146
100
 
147
- ## 🔑 认证
101
+ ## 认证
148
102
 
149
- 只需要一个。选择你已经订阅的服务:
103
+ 只需一个。选择你已经订阅的服务:
150
104
 
151
105
  ```bash
152
- # Free
153
- copilot login # GitHub Copilot
154
- opencode # OpenCode — free models available
106
+ # 免费选项(无需信用卡)
107
+ copilot login # GitHub Copilot(有免费层)
108
+ opencode # OpenCode — 有免费模型
155
109
 
156
- # Paid (monthly subscription)
157
- claude auth # Anthropic Claude Max (computer-use MCP users: native Claude install recommended)
158
- codex login # OpenAI ChatGPT Pro (npm/bun installs are fine)
110
+ # 付费(你已经在付的月订阅)
111
+ claude auth login # Anthropic Claude Max
112
+ codex login # OpenAI ChatGPT Pro
159
113
  gemini # Google Gemini Advanced
114
+ grok login --oauth # xAI Grok / Grok Heavy
160
115
  ```
161
116
 
162
- 检查状态:`jaw doctor`
117
+ 一次性检查全部:`jaw doctor`
163
118
 
164
119
  <details>
165
120
  <summary>jaw doctor 输出示例</summary>
@@ -174,9 +129,9 @@ gemini # Google Gemini Advanced
174
129
  ✅ OpenCode CLI installed
175
130
  ✅ Copilot CLI installed
176
131
  ✅ Database jaw.db OK
177
- ✅ Skills 22 active, 94 reference
178
- ✅ MCP 3 servers configured
179
- ✅ Memory MEMORY.md exists
132
+ ✅ Skills 32 active, 194 reference
133
+ ✅ MCP(插件) 3 servers configured
134
+ ✅ Memory structured/ exists
180
135
  ✅ Server port 3457 available
181
136
  ```
182
137
 
@@ -184,321 +139,352 @@ gemini # Google Gemini Advanced
184
139
 
185
140
  ---
186
141
 
187
- ## 🖥️ 使用入口
142
+ ## 仪表盘
188
143
 
189
- CLI-JAW 有五个使用入口。每个入口使用同一个助手、同一份记忆、同一组 skills。
144
+ 仪表盘是你的指挥中心——一个运行在 `http://localhost:3457` 的本地 Web 应用。
190
145
 
191
- | Surface | 你得到什么 |
192
- |---|---|
193
- | **Web PWA** | 完整 UI:markdown/KaTeX/Mermaid rendering、virtual scroll、WS streaming、drag-and-drop file upload、voice recording、PABCD roadmap bar、i18n(English, Korean, Chinese, Japanese)、dark/light theme、基于 IndexedDB 的 offline message cache |
194
- | **Mac WebView app** | 把 `jaw serve` 包在原生 macOS app shell 中。不打开浏览器也能从 Dock 访问 |
195
- | **Terminal TUI** | multiline editing、slash-command autocomplete、overlay selectors、session persistence、resume classification |
196
- | **Telegram** | 语音消息(multi-provider STT)、照片、文件。scheduled task 结果会自动送达。支持 model/CLI 切换 slash commands |
197
- | **Discord** | 文本和文件消息、command sync、channel/thread routing、agent result forwarder |
146
+ ### 实例管理器
198
147
 
199
- ---
148
+ 查看每个正在运行的 AI 实例——一键启动、停止、重启。在仪表盘中直接预览实时 Web UI。
200
149
 
201
- ## 🔀 引擎路由
150
+ <div align="center">
202
151
 
203
- 五个 CLI backend 通过你已有的 OAuth 订阅进行路由。没有按 token 的 API 账单。
152
+ ![Dashboard Navigator](docs/screenshots/dashboard-navigator.png)
204
153
 
205
- | CLI | 默认模型 | 认证 | 费用模式 |
206
- |---|---|---|---|
207
- | **Claude** | `opus-4-6` | `claude auth` | Claude Max subscription |
208
- | **Codex** | `gpt-5.5` | `codex login` | ChatGPT Pro subscription |
209
- | **Gemini** | `gemini-3.1-pro-preview` | `gemini` | Gemini Advanced subscription |
210
- | **OpenCode** | `minimax-m2.7` | `opencode` | Free models available |
211
- | **Copilot** | `gpt-5-mini` | `copilot login` | Free tier available |
154
+ </div>
212
155
 
213
- **Fallback chain**:某个引擎 rate-limited 或不可用时,下一个引擎会自动接上。使用 `/fallback [cli1 cli2...]` 配置。
156
+ ### 看板
214
157
 
215
- **OpenCode wildcard**:接入任意模型 endpoint,包括 OpenRouter、local LLMs 或任何 OpenAI-compatible API。
158
+ 将实例卡片拖入泳道(Backlog Ready In Progress Review → Done)。跟踪每个 AI 会话正在做什么。
216
159
 
217
- > 切换引擎:`/cli codex`。切换模型:`/model gpt-5.5`。Web、Terminal、Telegram、Discord 都支持。
160
+ <div align="center">
218
161
 
219
- ---
162
+ ![看板](docs/screenshots/dashboard-kanban.png)
163
+
164
+ </div>
220
165
 
221
- ## 🧠 记忆
166
+ ### 优先级矩阵
222
167
 
223
- 三层记忆分别负责不同的回忆范围。
168
+ 艾森豪威尔矩阵管理你的任务和提醒。优先处理重要的事。
224
169
 
225
- | 层 | 存什么 | 如何工作 |
226
- |---|---|---|
227
- | **History Block** | 最近的会话上下文 | `buildHistoryBlock()` — 最近 10 个会话,最多 8000 字符,按工作目录限定范围。注入到提示开头 |
228
- | **Memory Flush** | 从对话中提取的结构化知识 | 达到阈值后触发(默认 10 轮)。抽取提示汇总为事件记录、每日日志(`YYYY-MM-DD.md`)、实时笔记,并保存为 markdown 文件 |
229
- | **Soul + Task Snapshot** | 身份和语义检索 | `soul.md` 定义核心价值、语调、边界。Task Snapshot 每次提示都从 FTS5 index 中搜索最多 4 条语义相关命中(每条 700 字符) |
170
+ <div align="center">
230
171
 
231
- 三层都会自动进入系统提示。记忆可搜索:`jaw memory search <query>`,或在任意界面使用 `/memory <query>`。
172
+ ![优先级矩阵](docs/screenshots/priority-matrix.png)
232
173
 
233
- 高级记忆功能包括资料摘要、初始化/迁移、重建索引流程,可从 Web UI 设置访问。
174
+ </div>
234
175
 
235
- ---
176
+ ### 笔记
236
177
 
237
- ## 🎭 编排 PABCD
178
+ 仪表盘内的迷你 Obsidian。文件夹、可视化(WYSIWYG)+ 源码 + 分屏编辑、KaTeX(数学公式渲染)、Mermaid(图表即代码)、语法高亮代码块。
238
179
 
239
- 复杂任务使用 CLI-JAW 的 5 阶段状态机。每次状态切换都需要你确认。
180
+ <div align="center">
240
181
 
241
- ```
242
- P (Plan) → A (Audit) → B (Build) → C (Check) → D (Done) → IDLE
243
- ⛔ ⛔ ⛔ auto auto
244
- ```
182
+ ![笔记编辑器](docs/screenshots/notes-wysiwyg.png)
245
183
 
246
- | Phase | 发生什么 |
247
- |---|---|
248
- | **P** | Boss AI 写出 diff-level plan,并停下来等你 review |
249
- | **A** | read-only worker 验证 plan 是否可执行 |
250
- | **B** | Boss 实现。read-only worker 验证结果 |
251
- | **C** | type-check、docs update、consistency check |
252
- | **D** | 汇总所有变更,然后回到 idle |
184
+ </div>
253
185
 
254
- 状态持久化在 DB 中,server restart 后仍然保留。Workers 不能修改文件。使用 `jaw orchestrate` 或 `/pabcd` 启用。
186
+ ### 代理状态
187
+
188
+ 一目了然地监控每个 AI 引擎的健康状况和使用情况。
189
+
190
+ <div align="center">
191
+
192
+ ![Claude 状态](docs/screenshots/claude-status-widget.png)
193
+
194
+ </div>
255
195
 
256
196
  ---
257
197
 
258
- ## 📦 技能
198
+ ## 员工系统的工作原理
259
199
 
260
- 100+ skills,按用途组织。
200
+ 核心理念:**你的主 CLI 调用其他 CLI 作为工作者。**
261
201
 
262
- | Category | Skills | 覆盖范围 |
263
- |---|---|---|
264
- | **Office** | `pdf`, `docx`, `xlsx`, `pptx`, `hwp` | 读取、创建、编辑文档。通过 OfficeCLI 支持 Korean HWP/HWPX |
265
- | **Automation** | `browser`, `vision-click`, `screen-capture`, `desktop-control` | Chrome CDP、AI coordinate click、macOS screenshot/camera、Computer Use |
266
- | **Media** | `video`, `imagegen`, `lecture-stt`, `tts` | Remotion video rendering、OpenAI image generation、lecture transcription、text-to-speech |
267
- | **Integration** | `github`, `notion`, `telegram-send`, `memory` | issues/PRs/CI、Notion pages、Telegram media delivery、persistent memory |
268
- | **Visualization** | `diagram` | 在 chat 中渲染 SVG diagrams、charts、interactive visualizations |
269
- | **Dev guides** | `dev`, `dev-frontend`, `dev-backend`, `dev-data`, `dev-testing`, `dev-pabcd`, `dev-code-reviewer` | 注入 sub-agent prompts 的 engineering guidelines |
202
+ 你和一个 AI(Boss)对话。当它需要专业工作时,会向员工分派任务——每个员工运行自己的 CLI 和模型:
203
+
204
+ ```
205
+ 你:"修复前端样式,并更新 API 端点"
270
206
 
271
- 22 个 active skills 始终注入。94+ reference skills 按需加载。
207
+ Boss(Claude)思考中...
208
+ ├── 分派到 Frontend 员工(OpenCode)→ "修复 dashboard.tsx 中的 CSS grid 布局"
209
+ ├── 分派到 Backend 员工(Codex) → "更新 /api/users 以返回分页元数据"
210
+ └── 综合两方结果返回给你
211
+ ```
272
212
 
273
213
  ```bash
274
- jaw skill install <name> # activate a reference skill
214
+ # 底层就是一条命令:
215
+ jaw dispatch --agent "Frontend" --task "修复 dashboard.tsx 中的 CSS grid 布局"
275
216
  ```
276
217
 
277
- ---
218
+ 员工是在你的设置中配置的其他 AI CLI。每个有自己的会话、模型和上下文。Boss 审核它们的输出后再呈现给你。
278
219
 
279
- ## 🌐 浏览器与桌面自动化
220
+ ### 员工 vs 子代理
280
221
 
281
- | Capability | 工作方式 |
282
- |---|---|
283
- | **Chrome CDP** | 通过 DevTools Protocol 执行导航、点击、输入、截图、执行 JS、滚动、聚焦、按键等 10 个操作 |
284
- | **Vision-click** | 截屏后由 AI 提取目标坐标并点击。一个命令即可:`jaw browser vision-click "Login button"` |
285
- | **DOM reference** | ChatGPTGrok、Gemini Web UI 的选择器映射文档,覆盖模型选择、停止按钮、工具抽屉 |
286
- | **Computer Use** | 通过 Codex App Computer Use MCP 自动化桌面应用。DOM 目标走 CDP,桌面应用走 Computer Use |
287
- | **Diagram skill** | 生成 SVG 图表和交互式 HTML 可视化,并在带复制/保存控件的沙箱化 iframe 中渲染 |
222
+ 这是两个不同的东西:
223
+
224
+ | | 员工 | 子代理 |
225
+ |---|---|---|
226
+ | **是什么** | 配置为工作者的其他 AI CLI(CodexOpenCode 等) | 单个 CLI 内置的并行任务工具 |
227
+ | **何时用** | 跨不同代码库或领域的多专家协作 | 内部研究、文件读取、并行分析 |
228
+ | **如何用** | `jaw dispatch --agent "Name" --task "..."` | 自动——CLI 在内部生成 |
229
+
230
+ 员工用于"Frontend 做 CSS,Backend 做 API"。子代理用于"做决定前并行读取 5 个文件"。
288
231
 
289
232
  ---
290
233
 
291
- ## 🔌 MCP
234
+ ## AI 运行时
292
235
 
293
- [Model Context Protocol](https://modelcontextprotocol.io) AI agents 使用外部工具。CLI-JAW 用一个文件管理五个引擎的 MCP config。
236
+ 无按 token API 计费。通过你已有的订阅路由。
294
237
 
295
- ```bash
296
- jaw mcp install @anthropic/context7
297
- # syncs to Claude, Codex, Gemini, OpenCode, Copilot config files
298
- ```
238
+ | CLI | 默认模型 | 认证 | 费用 |
239
+ |---|---|---|---|
240
+ | **Claude** | `opus-4-6` | `claude auth login` | Claude Max 订阅 |
241
+ | **Codex** | `gpt-5.5` | `codex login` | ChatGPT Pro 订阅 |
242
+ | **Codex App** | `gpt-5.4` | `codex login` | ChatGPT Pro 订阅 |
243
+ | **Gemini** | `gemini-3.1-pro-preview` | `gemini` | Gemini Advanced 订阅 |
244
+ | **Grok** | `grok-build` | `grok login --oauth` | Grok 订阅;配额仅限认证/状态 |
245
+ | **OpenCode** | `minimax-m2.7` | `opencode` | 有免费模型 |
246
+ | **Copilot** | `gpt-5-mini` | `copilot login` | 有免费层 |
299
247
 
300
- 不用再分别编辑五个 JSON 文件。安装一次,所有引擎都会同步。
248
+ **回退链**:当一个引擎被限速时,下一个自动接上。用 `/fallback [cli1 cli2...]` 配置。
301
249
 
302
- ```bash
303
- jaw mcp sync # re-sync after manual edits
304
- ```
250
+ **OpenCode 通配符**:连接任意模型端点——OpenRouter、本地 LLM(大语言模型)、任何 OpenAI 兼容 API。
251
+
252
+ > 切换引擎:`/cli codex`。切换模型:`/model gpt-5.5`。Web、终端、Telegram 或 Discord 均可。
305
253
 
306
254
  ---
307
255
 
308
- ## 💬 消息
256
+ ## PABCD 编排(Plan → Audit → Build → Check → Done)
309
257
 
310
- ### Telegram
258
+ 对于复杂任务,CLI-JAW 使用结构化的 5 阶段工作流。每次转换都需要你的批准——没有你的确认什么都不会发布。
311
259
 
312
260
  ```
313
- 📱 Telegram ←→ 🦈 CLI-JAW ←→ 🤖 AI Engines
261
+ P (Plan) A (Audit) B (Build) → C (Check) → D (Done) → IDLE
262
+ ⛔ ⛔ ⛔ auto auto
314
263
  ```
315
264
 
316
- <details>
317
- <summary>设置(3 步)</summary>
265
+ | 阶段 | 发生什么 |
266
+ |---|---|
267
+ | **P — Plan** | Boss AI 编写 diff 级别的计划。停下等你审查 |
268
+ | **A — Audit** | 只读工作者验证计划是否可行(imports 存在、签名匹配) |
269
+ | **B — Build** | Boss 实现。只读工作者验证结果 |
270
+ | **C — Check** | 类型检查(`tsc --noEmit`)、文档更新、一致性检查 |
271
+ | **D — Done** | 汇总所有变更。返回空闲状态 |
318
272
 
319
- 1. 创建 bot 给 [@BotFather](https://t.me/BotFather) 发消息 → `/newbot` → 复制 token
320
- 2. 配置 — `jaw init --telegram-token YOUR_TOKEN`,或使用 Web UI settings
321
- 3. 给 bot 发送任意消息。Chat ID 会在第一条消息时自动保存
273
+ 状态持久化在数据库中,服务器重启后仍然保留。工作者不能修改文件——只能验证。用 `jaw orchestrate`、`/orchestrate` `/pabcd` 启动。
322
274
 
323
- </details>
275
+ ---
324
276
 
325
- Telegram 支持:text chat、voice messages(通过 multi-provider STT 自动转写)、file/photo upload、slash commands(`/cli`、`/model`、`/status`)、scheduled task result delivery。
277
+ ## 记忆
326
278
 
327
- ### Discord
279
+ 三个层次,各覆盖不同的回忆范围。
328
280
 
329
- 能力与 Telegram 相同 text、files、commands。支持 channel/thread routing,并带有用于 agent result broadcast 的 forwarder。通过 Web UI settings 设置。
281
+ | | 存储内容 | 工作方式 |
282
+ |---|---|---|
283
+ | **History Block** | 近期会话上下文 | 最近 10 个会话,最多 8000 字符,按工作目录限定范围。注入到提示开头 |
284
+ | **Memory Flush** | 从对话中提取的结构化知识 | 达到阈值后触发(默认 10 轮)。提取为事件记录、每日日志、语义笔记,保存为 markdown |
285
+ | **Soul + Task Snapshot** | 身份和语义检索 | 核心价值观、语调、边界。全文搜索索引每次提示返回最多 4 条语义相关结果 |
330
286
 
331
- ### 语音 & STT
287
+ 三层全部自动注入系统提示。记忆可搜索:
332
288
 
333
- 语音输入支持 Web(mic button)、Telegram(voice messages)和 Discord。Providers:OpenAI-compatible、Google Vertex AI 或任意 custom endpoint。通过 Web UI settings 配置。
289
+ ```bash
290
+ jaw memory search "我们是怎么设置 API 认证的?"
291
+ ```
334
292
 
335
293
  ---
336
294
 
337
- ## ⏰ 调度 & heartbeat
295
+ ## 技能
338
296
 
339
- | Feature | 做什么 |
340
- |---|---|
341
- | **Heartbeat jobs** | 按 cron schedule 运行 unattended tasks。结果发送到 Telegram/Discord |
342
- | **Service auto-start** | `jaw service install` — 自动检测 systemd(Linux)、launchd(macOS)或 Docker |
343
- | **Memory auto-reflect** | 用于 structured knowledge extraction 的 optional post-flush reflection |
297
+ 230+ 技能覆盖开发工作流、办公文档、自动化和媒体。
344
298
 
345
- ---
299
+ | 分类 | 技能 | 覆盖范围 |
300
+ |---|---|---|
301
+ | **办公** | `pdf`, `docx`, `xlsx`, `pptx`, `hwp` | 读取、创建、编辑文档。HWP/HWPX(韩国文字处理器格式)原生支持 |
302
+ | **自动化** | `browser`, `vision-click`, `screen-capture`, `desktop-control` | Chrome DevTools Protocol(CDP)浏览器控制、AI 坐标点击、macOS 截屏、Computer Use |
303
+ | **媒体** | `video`, `imagegen`, `lecture-stt`, `tts` | Remotion 视频、OpenAI 图像生成、讲座转录、文字转语音 |
304
+ | **集成** | `github`, `notion`, `telegram-send`, `memory` | Issues/PRs/CI、Notion 页面、Telegram 媒体发送、持久记忆 |
305
+ | **可视化** | `diagram` | 在聊天中渲染 SVG 图表、图形、交互式可视化 |
306
+ | **开发指南** | `dev`, `dev-frontend`, `dev-backend`, `dev-data`, `dev-testing`, `dev-pabcd` | 注入代理提示的工程指南 |
346
307
 
347
- ## ⌨️ CLI 命令
308
+ 参考技能位于 `skills_ref/`,按需安装到活跃运行时。
348
309
 
349
310
  ```bash
350
- jaw serve # start server → http://localhost:3457
351
- jaw chat # terminal TUI
352
- jaw doctor # 12-point diagnostics
353
- jaw service install # auto-start on boot
354
- jaw skill install <name> # activate a skill
355
- jaw mcp install <package> # install MCP → syncs to 5 engines
356
- jaw memory search <query> # search memory
357
- jaw browser start # launch Chrome (CDP)
358
- jaw browser vision-click "Login" # AI-powered click
359
- jaw clone ~/project # clone instance
360
- jaw --home ~/project serve --port 3458 # run second instance
361
- jaw orchestrate # enter PABCD
362
- jaw dispatch --agent Backend --task "..." # dispatch employee
363
- jaw reset # full reset
311
+ jaw skill install <name> # 激活参考技能
312
+ jaw skill list # 查看可用技能
364
313
  ```
365
314
 
366
315
  ---
367
316
 
368
- ## 🏗️ 多实例
369
-
370
- 运行彼此隔离的实例。每个实例都有独立 settings、memory 和 database。
317
+ ## 浏览器和桌面自动化
371
318
 
372
- ```bash
373
- jaw clone ~/my-project
374
- jaw --home ~/my-project serve --port 3458
375
- ```
319
+ | 功能 | 工作方式 |
320
+ |---|---|
321
+ | **Chrome DevTools Protocol** | 导航、点击、输入、截屏、执行 JS、滚动、按键——Chrome 的远程控制 |
322
+ | **Vision-click** | 截屏 → AI 提取目标坐标 → 点击。`jaw browser vision-click "Login button"` |
323
+ | **Computer Use** | 通过 Codex Computer Use 自动化桌面应用。用 Safari 访问 localhost,体验如同 Codex 应用 |
324
+ | **Web-AI 供应商** | `jaw browser web-ai --vendor chatgpt\|gemini\|grok`——会话生命周期、诊断、源码审计支持 |
325
+ | **Diagram 技能** | 生成 SVG 图表和交互式可视化,在聊天中内联渲染 |
376
326
 
377
- 每个实例完全独立 working directorymemory、MCP config 都不同。
327
+ Computer Use 让你用自然语言控制任何 macOS 应用——FinderSafari、系统设置、Xcode。
378
328
 
379
329
  ---
380
330
 
381
- ## 🔗 远程访问(Tailscale)
331
+ ## 消息
382
332
 
383
- ```bash
384
- jaw serve --lan # bind 0.0.0.0 + allow tailnet peers
385
- # settings.json: network.bindHost=0.0.0.0, lanBypass=true
333
+ ### Telegram
334
+
335
+ ```
336
+ 📱 Telegram ←→ 🦈 CLI-JAW ←→ 🤖 AI Engines
386
337
  ```
387
338
 
388
- `lanBypass=true` 时支持的 peer addresses:
339
+ 文字聊天、语音消息(通过多供应商 STT——语音转文字 自动转录)、文件/照片上传、斜杠命令(`/cli`、`/model`、`/status`)、定时任务(`every`/`cron`——循环计划)结果自动送达。
389
340
 
390
- - `100.64.0.0/10` — Tailscale CGNAT (RFC 6598)
391
- - `fd7a:115c:a1e0::/48` — Tailscale ULA
392
- - `*.ts.net` — MagicDNS hostnames(Host + Origin both pass)
341
+ <details>
342
+ <summary>设置(3 步)</summary>
393
343
 
394
- 注意事项:
344
+ 1. 给 [@BotFather](https://t.me/BotFather) 发消息 → `/newbot` → 复制 token
345
+ 2. `jaw init --telegram-token YOUR_TOKEN` 或在 Web UI 设置中输入
346
+ 3. 给 bot 发送任意消息。Chat ID 首次消息时自动保存
395
347
 
396
- - Tailnet peers 已通过 WireGuard + IdP 认证 — 把它们当作 LAN,而不是 public。
397
- - Shared tailnets:结合 Tailscale ACL(`acl.tailnet`)限制谁能访问 node。
398
- - Subnet router / exit node:SNAT 会把 peer IP 折叠成 router 的 100.x,trust boundary 会变模糊。建议使用 direct tailnet membership。
399
- - Production:尽量把 `bindHost` 缩到 `tailscale0` interface address,而不是 `0.0.0.0`。
400
- - `lanBypass=true` 时,tailnet peers 会跳过 Bearer token(与 RFC 1918 一样按 LAN 处理)。如需让所有非 loopback peer 都提供 `JAW_AUTH_TOKEN`,设置 `lanBypass=false`。
348
+ </details>
401
349
 
402
- ---
350
+ ### Discord
403
351
 
404
- ## 🐳 Docker
352
+ Telegram 功能相同——文字、文件、命令。频道/线程路由、规范 `/api/channel/send`、代理结果广播转发器。通过 Web UI 设置配置。
405
353
 
406
- ```bash
407
- docker compose up -d # → http://localhost:3457
408
- ```
354
+ ### 语音 & STT
409
355
 
410
- 使用非 root `jaw` 用户,并启用 Chromium sandbox。包含两个 Dockerfile:`Dockerfile`(npm install)和 `Dockerfile.dev`(local source)。数据保存在 `jaw-data` named volume 中。
356
+ 语音输入支持 Web(麦克风按钮)、Telegram(语音消息)和 Discord。供应商:OpenAI 兼容、Google Vertex AI 或任意自定义端点。
411
357
 
412
- <details>
413
- <summary>Docker details</summary>
358
+ ---
414
359
 
415
- ```bash
416
- # Dev build
417
- docker build -f Dockerfile.dev -t cli-jaw:dev .
418
- docker run -d -p 3457:3457 --env-file .env cli-jaw:dev
360
+ ## MCP(Model Context Protocol)
419
361
 
420
- # Pin version
421
- docker build --build-arg CLI_JAW_VERSION=1.0.1 -t cli-jaw:1.0.1 .
362
+ [MCP](https://modelcontextprotocol.io) 是一个让 AI 工具共享能力的标准——就像 AI 代理的插件。CLI-JAW 用一个文件管理所有引擎的 MCP 配置。
422
363
 
423
- # If Chromium sandbox fails
424
- docker run -e CHROME_NO_SANDBOX=1 -p 3457:3457 cli-jaw
364
+ ```bash
365
+ jaw mcp install @anthropic/context7
366
+ # → 同步到 Claude、Codex、Gemini、OpenCode、Copilot 的配置文件
425
367
  ```
426
368
 
427
- </details>
369
+ 不用再分别编辑多个 JSON 文件。安装一次,每个 MCP 感知引擎都会获得配置。Grok CLI 是标准运行时,但在 Grok 暴露兼容配置面之前不计为 MCP 同步对象。
370
+
371
+ ```bash
372
+ jaw mcp sync # 手动编辑后重新同步
373
+ ```
428
374
 
429
375
  ---
430
376
 
431
- ## 📖 文档
377
+ ## CLI 命令
432
378
 
433
- | 文档 | 内容 |
434
- |---|---|
435
- | [CHANGELOG.md](CHANGELOG.md) | Release log,包括覆盖 v1.2.0 到 v1.5.1 的 v1.6.0 catch-up |
436
- | [ARCHITECTURE.md](docs/ARCHITECTURE.md) | System design、module graph、94 个 endpoints 上的 95 个 API handlers |
437
- | [TESTS.md](TESTS.md) | Test coverage、counts、test plan |
438
- | [memory-architecture.md](docs/memory-architecture.md) | 3-layer memory model、indexing、runtime behavior |
439
- | [env-vars.md](docs/env-vars.md) | Environment variable reference |
440
- | [skill-router-plan.md](docs/skill-router-plan.md) | Skill routing architecture |
441
- | [officecli-integration.md](docs/officecli-integration.md) | 面向 HWP/HWPX 和 Office documents 的 OfficeCLI setup |
442
- | [devlog/structure/](devlog/structure/) | Internal architecture reference — prompt pipeline、agent spawn、frontend、server API、commands、Telegram、memory |
379
+ ```bash
380
+ # 核心
381
+ jaw dashboard # 启动管理仪表盘
382
+ jaw serve # 启动服务器(http://localhost:3457)
383
+ jaw chat # 终端聊天 UI
384
+ jaw doctor # 12 项诊断
385
+
386
+ # 实例
387
+ jaw clone ~/project # 克隆实例到新目录
388
+ jaw --home ~/project serve --port 3458 # 运行第二个实例
389
+ jaw service install # 开机自启
390
+
391
+ # AI 和编排
392
+ jaw dispatch --agent "Backend" --task "..." # 分派员工
393
+ jaw orchestrate # 进入/控制 PABCD 工作流
394
+
395
+ # 技能和 MCP
396
+ jaw skill install <name> # 激活技能
397
+ jaw skill list # 列出可用技能
398
+ jaw mcp install <package> # 安装 MCP → 同步支持的 MCP 感知引擎
399
+ jaw mcp sync # 重新同步 MCP 配置
400
+
401
+ # 记忆
402
+ jaw memory search <query> # 跨所有记忆层搜索
403
+ jaw memory save <file> <content> # 保存到结构化记忆
404
+
405
+ # 浏览器
406
+ jaw browser start # 启动 Chrome 自动化
407
+ jaw browser fetch "https://example.com" --json --trace # 自适应 URL 读取
408
+ jaw browser snapshot # 捕获页面状态
409
+ jaw browser vision-click "Login" # AI 驱动的点击
410
+
411
+ # 维护
412
+ jaw reset # 完全重置
413
+ ```
443
414
 
444
415
  ---
445
416
 
446
- ## ⚖️ 对比
417
+ ## 多实例
447
418
 
448
- | | CLI-JAW | Hermes Agent | Claude Code |
449
- |---|---|---|---|
450
- | **Model access** | OAuth subscriptions(Claude Max、ChatGPT Pro、Copilot、Gemini)+ OpenCode wildcard | API keys(OpenRouter 200+、Nous Portal) | Anthropic only |
451
- | **Cost model** | 你已经支付的 monthly subscriptions | Per-token API billing | Anthropic subscription |
452
- | **Primary UI** | Web PWA + Mac app + TUI | TUI only | CLI + IDE plugins |
453
- | **Messaging** | Telegram(voice)+ Discord | Telegram/Discord/Slack/WhatsApp/Signal | None |
454
- | **Memory** | 3-layer(History/Flush/Soul)+ FTS5 | Self-improving learning loop + Honcho | File-based auto-memory |
455
- | **Browser automation** | Chrome CDP + vision-click + DOM ref | Limited | Via MCP |
456
- | **Orchestration** | PABCD 5-phase FSM | Subagent spawn | Task tool |
457
- | **Execution** | Local + Docker | Local/Docker/SSH/Daytona/Modal/Singularity | Local |
458
- | **Skills** | 100+ bundled | Self-creating + agentskills.io | User-configured |
459
- | **i18n** | English, Korean, Chinese, Japanese | English | English |
460
-
461
- CLI-JAW 源自 OpenClaw harness architecture(hybrid search manager、fallback patterns、session indexing)。如果从 OpenClaw 迁移,slash-command surface 和 memory model 会很熟悉。
419
+ 运行互相隔离的独立实例,各有独立的设置、记忆和数据库:
420
+
421
+ ```bash
422
+ jaw clone ~/my-project
423
+ jaw --home ~/my-project serve --port 3458
424
+ ```
425
+
426
+ 每个实例完全独立——不同的工作目录、记忆、MCP 配置。管理仪表盘可以看到全部。
462
427
 
463
428
  ---
464
429
 
465
- ## 🛠️ 开发
430
+ ## 开发
466
431
 
467
432
  ```bash
468
433
  npm run build # tsc → dist/
469
- npm run dev # tsx server.ts (hot-reload)
470
- npm test # native Node.js test runner
434
+ npm run dev # tsx server.ts(热重载)
435
+ npm test # Node.js 原生测试运行器
436
+ npm run gate:all # 发布/文档一致性门禁
471
437
  ```
472
438
 
473
- Architecture 和 test details 见 [ARCHITECTURE.md](docs/ARCHITECTURE.md)[TESTS.md](TESTS.md) [devlog/structure/](devlog/structure/)
439
+ 架构详情:[ARCHITECTURE.md](docs/ARCHITECTURE.md) · 测试覆盖:[TESTS.md](TESTS.md) · 内部结构文档:[structure/](structure/)
440
+
441
+ ---
442
+
443
+ ## 对比
444
+
445
+ | | CLI-JAW 2.0 | Hermes Agent | Claude Code |
446
+ |---|---|---|---|
447
+ | **模型接入** | Claude、Codex、Codex App、Gemini、Grok、OpenCode 和 Copilot(通过厂商认证) | API 密钥(OpenRouter 200+、Nous Portal) | 仅 Anthropic |
448
+ | **费用模型** | 你已经在付的月订阅 | 按 token API 计费 | Anthropic 订阅 |
449
+ | **主 UI** | 管理仪表盘 + Web 应用 + Mac 应用 + 终端 UI | 仅终端 | CLI + IDE 插件 |
450
+ | **仪表盘** | 多实例管理器、看板、笔记工作区 | 无 | 无 |
451
+ | **消息** | Telegram(语音)+ Discord | Telegram/Discord/Slack/WhatsApp/Signal | 无 |
452
+ | **记忆** | 3 层(History/Flush/Soul)+ 全文搜索 | 自我改进循环 + Honcho | 文件型自动记忆 |
453
+ | **多代理** | 员工系统(分派其他 CLI)+ PABCD | 子代理生成 | Task 工具 |
454
+ | **浏览器自动化** | Chrome DevTools + vision-click + Computer Use | 有限 | 通过 MCP |
455
+ | **运行环境** | 本地 + Docker | 本地/Docker/SSH/Daytona/Modal | 本地 |
456
+ | **技能** | 230+ 内置 | 自动创建 + agentskills.io | 用户配置 |
457
+ | **多语言** | 英语、韩语、中文、日语 | 英语 | 英语 |
474
458
 
475
459
  ---
476
460
 
477
- ## 故障排查
461
+ ## 故障排查
478
462
 
479
463
  | 问题 | 解决办法 |
480
464
  |---|---|
481
- | `cli-jaw: command not found` | 重新运行 `npm install -g cli-jaw`。确认 `npm bin -g` `$PATH` 中 |
465
+ | `cli-jaw: command not found` | 重新运行 `npm install -g cli-jaw`。检查 `~/.local/bin` 或 `npm bin -g` 是否在 `$PATH` 中 |
482
466
  | `Error: node version` | 升级到 Node.js 22+:`nvm install 22` |
483
- | `NODE_MODULE_VERSION` mismatch | `npm run ensure:native`(auto-rebuild) |
484
- | `EADDRINUSE: port 3457` | 另一个 instance 正在运行。使用 `--port 3458` |
485
- | Telegram or agent auth fails | 运行 `jaw doctor`,然后重启 `jaw serve` |
486
- | Browser commands fail | 安装 Chrome。先运行 `jaw browser start` |
467
+ | `NODE_MODULE_VERSION` mismatch | `npm run ensure:native`(自动重编译原生模块) |
468
+ | `EADDRINUSE: port 3457` | 另一个实例正在运行。使用 `--port 3458` 或先停止 |
469
+ | Telegram / Discord 认证失败 | 运行 `jaw doctor`,检查 token,重启 `jaw serve` |
470
+ | 浏览器命令失败 | 安装 Chrome/Chromium。先运行 `jaw browser start` |
471
+ | 员工分派挂起 | 确保员工 CLI 已认证(`jaw doctor`) |
472
+ | Computer Use 不工作 | 仅限 macOS。需要 Codex CLI。在系统设置中检查自动化权限 |
487
473
 
488
474
  ---
489
475
 
490
- ## 🤝 参与贡献
476
+ ## 参与贡献
491
477
 
492
- 1. 从 `master` fork 并创建 branch
478
+ 1. 从 `master` Fork 并创建分支
493
479
  2. `npm run build && npm test`
494
480
  3. 提交 PR
495
481
 
496
- 发现 bug 或有想法?[Open an issue](https://github.com/lidge-jun/cli-jaw/issues)
482
+ Bug 报告和功能建议:[Open an issue](https://github.com/lidge-jun/cli-jaw/issues)
497
483
 
498
484
  ---
499
485
 
500
486
  <div align="center">
501
487
 
502
- **[MIT License](LICENSE)**
488
+ **[MIT License](LICENSE)** · 由受够了在 AI 应用间切换标签的开发者们打造。
503
489
 
504
490
  </div>