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.ko.md CHANGED
@@ -2,9 +2,10 @@
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)
@@ -12,197 +13,108 @@
12
13
 
13
14
  [English](README.md) / **한국어** / [中文](README.zh-CN.md) / [日本語](README.ja.md)
14
15
 
15
- ![CLI-JAW manager dashboard](docs/screenshots/manager-dashboard-light.png)
16
-
17
16
  </div>
18
17
 
19
- ---
20
-
21
- ## CLI-JAW가 뭔가요?
22
-
23
- Claude Code, Codex CLI, Gemini CLI, OpenCode, Copilot CLI — 요즘 터미널 AI 도구가 정말 많습니다. 근데 각각 앱이 따로 있고, 메모리도 따로 관리해야 하고, MCP 설정도 제각각이라 왔다 갔다 하다 보면 피로감이 장난이 아닙니다.
24
-
25
- **CLI-JAW는 이 다섯 개 엔진을 하나의 인터페이스로 묶어주는 오픈소스 플랫폼입니다.** 별도의 API 키나 토큰 과금 없이, 여러분이 이미 결제하고 있는 구독(Claude Max, ChatGPT Pro, Gemini Advanced, Copilot 등)을 OAuth로 연결해서 그대로 쓰면 됩니다.
26
-
27
- 웹 대시보드, 터미널 TUI, Mac 앱, Telegram, Discord까지 — 어디서 쓰든 같은 메모리, 같은 스킬, 같은 비서입니다. 비개발자도 두 줄이면 설치할 수 있게 만들었습니다.
28
-
29
- > **한 줄 요약**: 밴리스크 없는 Claude Code + Codex + Gemini CLI + OpenCode + Copilot CLI 통합 플랫폼. 다중 인스턴스 관리 + 노트 + 칸반까지 되는 슈퍼앱.
30
-
31
- ---
32
-
33
- ## 2.0.0에서 뭐가 달라졌나요
34
-
35
- 2.0.0은 CLI-JAW가 "개인 AI 비서"에서 "로컬 AI 운영 환경"으로 진화한 메이저 릴리스입니다.
36
-
37
- ### Manager Dashboard — 슈퍼앱
38
-
39
- 더 이상 터미널만 바라보고 있을 필요가 없습니다. 브라우저를 열면 모든 JAW 인스턴스를 한 눈에 볼 수 있습니다.
40
-
41
- - 실행 중인 인스턴스를 그룹별로 보여주고, 각각의 상태를 실시간으로 추적합니다
42
- - 선택한 인스턴스의 Web UI를 라이브 프리뷰로 바로 확인합니다
43
- - 시작, 정지, 재시작을 딸깍 한 번으로 처리합니다
44
- - CLI, 모델, 권한 모드, 작업 디렉터리 등 런타임 설정을 한 곳에서 확인합니다
45
-
46
- ### Notes Workspace — 짭시디언
47
-
48
- 대시보드 안에 마크다운 노트 시스템이 들어있습니다. 옵시디언까지는 아니지만 가볍게 쓰기엔 충분합니다.
49
-
50
- - 폴더 트리, 드래그 앤 드롭 이동, 이름 변경
51
- - Raw / Split / Preview 세 가지 보기 모드
52
- - KaTeX 수식, Mermaid 다이어그램, 코드 하이라이팅 지원
53
- - 저장하지 않은 변경 사항 표시 (dirty-state marker)
54
-
55
- ### Kanban Board
18
+ ## 설치
56
19
 
57
- 실행 중인 인스턴스를 카드로 만들어서 드래그할 수 있습니다. 프로젝트별로 인스턴스를 관리할 때 유용합니다.
58
-
59
- ### Employee 시스템
60
-
61
- 메인 CLI가 다른 CLI를 "직원"으로 부릅니다. 예를 들어 Claude가 Boss로 작업 계획을 세우고, Codex에게 백엔드 구현을 시키고, OpenCode에게 프론트엔드를 맡기는 식입니다. 각 직원은 독립된 CLI 세션에서 실행되고, 결과는 Boss에게 보고됩니다.
62
-
63
- ### 반응형 모바일 레이아웃
20
+ <details>
21
+ <summary><b>안전 설치</b> — 기존 사용자용, 최소 변경</summary>
64
22
 
65
- 대시보드가 모바일에서도 잘 동작합니다. 폰에서 Telegram으로 대화하다가, 대시보드를 열어서 상태를 확인하는 식으로 쓸 수 있습니다.
23
+ ```bash
24
+ # macOS / Linux
25
+ JAW_SAFE=1 npm install -g cli-jaw # skips optional tool/runtime setup
26
+ jaw init # 준비되면 대화형 설정
66
27
 
67
- ---
28
+ # Windows PowerShell
29
+ $env:JAW_SAFE="1"; npm install -g cli-jaw
30
+ jaw init
31
+ ```
68
32
 
69
- ## 두 줄이면 됩니다
33
+ </details>
70
34
 
71
35
  ```bash
72
36
  npm install -g cli-jaw
73
- jaw serve
37
+ jaw dashboard
74
38
  ```
75
39
 
76
- 브라우저에서 **http://localhost:3457** 을 열면 끝입니다.
77
-
78
- **필요한 것**: Node.js 22 이상, AI CLI 인증 하나 이상 (아래 참조)
40
+ 끝입니다. **http://localhost:3457** 을 열면 나만의 AI 에이전트가 준비됩니다. [Node.js 22+](https://nodejs.org) 필요.
79
41
 
80
- > npm이 뭔지 모르겠다면? [Node.js 공식 사이트](https://nodejs.org)에서 LTS 버전을 설치하면 npm이 같이 딸려옵니다.
81
-
82
- > `jaw service install` 을 실행하면 부팅할 때 자동으로 시작됩니다 (macOS는 launchd, Linux는 systemd, Docker도 지원).
83
-
84
- ---
85
-
86
- ## 플랫폼별 설치
42
+ > **처음이세요?** 설치 Claude, Codex, Gemini, Copilot, OpenCode CLI가 자동으로 설정됩니다. 하나만 인증하면 바로 시작할 수 있습니다 ([인증](#인증) 참조).
87
43
 
88
44
  <details>
89
- <summary><b>macOS — 터미널이 처음이라면</b></summary>
90
-
91
- 1. **Terminal**을 엽니다 (`Cmd + Space` -> `Terminal` 입력)
92
- 2. 아래 한 줄을 붙여넣고 Enter:
45
+ <summary><b>macOS 원클릭</b> Node.js가 없다면 이걸로</summary>
93
46
 
94
47
  ```bash
95
48
  curl -fsSL https://raw.githubusercontent.com/lidge-jun/cli-jaw/master/scripts/install.sh | bash
96
49
  ```
97
50
 
98
- 3. 인증하고 시작:
99
-
100
- ```bash
101
- copilot login
102
- jaw serve # -> http://localhost:3457
103
- ```
104
-
105
- 그냥 딸깍으로 켜지게 만들었습니다. Node.js, npm 설치까지 스크립트가 알아서 처리합니다.
106
-
107
51
  </details>
108
52
 
109
53
  <details>
110
- <summary><b>Windows — WSL 원클릭 설치</b></summary>
111
-
112
- **1단계: WSL 설치** (PowerShell을 관리자 권한으로 실행)
54
+ <summary><b>Windows (WSL Windows Subsystem for Linux)</b> — 처음부터 원클릭</summary>
113
55
 
114
56
  ```powershell
57
+ # 1. WSL 설치 (관리자 권한 PowerShell)
115
58
  wsl --install
116
59
  ```
117
60
 
118
- 재시작한 시작 메뉴에서 **Ubuntu**를 엽니다.
119
-
120
- **2단계: CLI-JAW 설치**
61
+ 재시작 **Ubuntu**를 열고:
121
62
 
122
63
  ```bash
64
+ # 2. CLI-JAW + 전체 의존성 설치
123
65
  curl -fsSL https://raw.githubusercontent.com/lidge-jun/cli-jaw/master/scripts/install-wsl.sh | bash
124
- ```
125
-
126
- **3단계: 시작**
127
-
128
- ```bash
129
66
  source ~/.bashrc
130
- copilot login # 또는: claude auth login / codex login / gemini
131
- jaw serve # -> http://localhost:3457
67
+ jaw dashboard
132
68
  ```
133
69
 
134
- 설치 스크립트는 npm 전역 prefix를 사용자 로컬 경로(`~/.local`)로 맞추고
135
- `~/.local/bin`을 `~/.bashrc`와 `~/.profile`에 모두 등록합니다. 그래서 새
136
- Ubuntu 셸에서도 `jaw`와 함께 설치된 CLI 도구들을 바로 찾을 수 있습니다.
137
-
138
- WSL 스크립트는 통합 Linux 설치 경로입니다. `jaw --version`을 검증하고,
139
- bundled CLI 도구를 strict mode로 요청하며, OfficeCLI 설치 후
140
- `officecli --version`까지 확인한 뒤 성공을 보고합니다. Chromium 또는 Windows
141
- Chrome fallback을 찾지 못하면 browser/web-ai가 완전히 준비됐다고 말하지 않고
142
- 경고를 출력합니다.
70
+ </details>
143
71
 
144
72
  <details>
145
- <summary>WSL 문제 해결</summary>
73
+ <summary><b>Docker</b></summary>
146
74
 
147
- | 문제 | 해결 |
148
- |---|---|
149
- | `unzip: command not found` | 설치 스크립트를 다시 실행합니다 |
150
- | `jaw: command not found` | `source ~/.bashrc` 또는 `export PATH="$HOME/.local/bin:$PATH"` 실행 |
151
- | `officecli: command not found` | WSL 설치 스크립트를 다시 실행하거나 `bash "$(npm root -g)/cli-jaw/scripts/install-officecli.sh"` 실행 |
152
- | Permission 에러 | `sudo chown -R $USER $(npm config get prefix)` |
75
+ ```bash
76
+ docker compose up -d # → http://localhost:3457
77
+ ```
153
78
 
154
- </details>
155
79
  </details>
156
80
 
157
- <details>
158
- <summary><b>Linux</b></summary>
81
+ ---
159
82
 
160
- ```bash
161
- # Node.js 22+ 설치 (nvm 사용)
162
- curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
163
- source ~/.bashrc
164
- nvm install 22
83
+ ## CLI-JAW가 뭔가요?
165
84
 
166
- # CLI-JAW 설치
167
- npm install -g cli-jaw
168
- jaw serve
169
- ```
85
+ CLI-JAW 여러분이 이미 사용하는 AI 코딩 CLI — Claude, Codex, Gemini, Grok, OpenCode, Copilot — 를 **하나의 비서, 하나의 메모리, 하나의 대시보드**로 통합하는 오픈소스 플랫폼입니다.
170
86
 
171
- 일반 Linux의 `npm install -g cli-jaw`는 호환성을 위해 optional helper 설치를
172
- best-effort로 유지합니다. 통합 설치 보장이 필요하면 WSL 원클릭 스크립트를 쓰고,
173
- 일반 Linux에서는 아래 명령으로 직접 확인하세요.
87
+ 메인 CLI(Boss)가 다른 CLI를 "직원"으로 부릅니다. 앱을 왔다 갔다 필요 없이 한 곳에서 지시하면 됩니다.
174
88
 
175
- ```bash
176
- jaw --version
177
- officecli --version
178
- jaw doctor
179
- ```
89
+ - **API 키 불필요** — 이미 결제 중인 구독으로 라우팅
90
+ - **토큰당 과금 없음** — 기존 월정액 그대로
91
+ - **로컬 실행** — 코드가 외부로 나가지 않음
180
92
 
181
- </details>
93
+ <div align="center">
94
+
95
+ ![CLI-JAW Manager Dashboard](docs/screenshots/manager-dashboard-light.png)
96
+
97
+ </div>
182
98
 
183
99
  ---
184
100
 
185
- ## 인증 — 이미 쓰는 구독으로
101
+ ## 인증
186
102
 
187
- 하나만 있으면 됩니다. 이미 결제하고 있는 서비스를 골라서 인증하세요.
103
+ 하나만 있으면 됩니다. 이미 결제 중인 서비스를 골라서 인증하세요:
188
104
 
189
105
  ```bash
190
- # 무료
106
+ # 무료 (신용카드 불필요)
191
107
  copilot login # GitHub Copilot (무료 티어 있음)
192
- opencode # OpenCode (무료 모델 사용 가능)
108
+ opencode # OpenCode 무료 모델 사용 가능
193
109
 
194
- # 유료 (월 구독)
195
- claude auth login # Claude Max 구독
196
- codex login # ChatGPT Pro 구독
197
- gemini # Gemini Advanced 구독
110
+ # 유료 (이미 결제 중인 월 구독)
111
+ claude auth login # Anthropic Claude Max
112
+ codex login # OpenAI ChatGPT Pro
113
+ gemini # Google Gemini Advanced
114
+ grok login --oauth # xAI Grok / Grok Heavy
198
115
  ```
199
116
 
200
- 제대로 됐는지 확인하려면:
201
-
202
- ```bash
203
- claude auth status
204
- jaw doctor
205
- ```
117
+ 한꺼번에 확인: `jaw doctor`
206
118
 
207
119
  <details>
208
120
  <summary>jaw doctor 출력 예시</summary>
@@ -217,214 +129,247 @@ jaw doctor
217
129
  ✅ OpenCode CLI installed
218
130
  ✅ Copilot CLI installed
219
131
  ✅ Database jaw.db OK
220
- ✅ Skills 22 active, 94 reference
221
- ✅ MCP 3 servers configured
222
- ✅ Memory MEMORY.md exists
132
+ ✅ Skills 32 active, 194 reference
133
+ ✅ MCP (플러그인) 3 servers configured
134
+ ✅ Memory structured/ exists
223
135
  ✅ Server port 3457 available
224
136
  ```
225
137
 
226
138
  </details>
227
139
 
228
- > **Claude Code 참고**: Anthropic computer-use MCP가 필요하면 native Claude installer 사용을 권장합니다 (`curl -fsSL https://claude.ai/install.sh | bash`). npm으로 설치한 Claude는 computer-use가 제한될 수 있는데, `jaw doctor`가 이런 상황을 알려줍니다.
229
-
230
140
  ---
231
141
 
232
- ## 대시보드 살펴보기
142
+ ## 대시보드
233
143
 
234
- `jaw serve` 하나면 브라우저에서 모든 할 수 있습니다. 대시보드는 CLI-JAW의 중심 제어판입니다.
144
+ 대시보드는 `http://localhost:3457`에서 동작하는 로컬 웹앱 형태의 제어판입니다.
235
145
 
236
- ### 어디서 쓸 수 있나요
146
+ ### 인스턴스 매니저
237
147
 
238
- CLI-JAW는 다섯 가지 Surface에서 동작합니다. 어디서 쓰든 같은 비서, 같은 메모리입니다.
148
+ 실행 중인 AI 인스턴스를 눈에 있습니다. 시작, 정지, 재시작을 클릭 한 번으로 처리하고, Web UI를 대시보드 안에서 바로 프리뷰합니다.
239
149
 
240
- | Surface | 설명 |
241
- |---|---|
242
- | **Web PWA** | 메인 인터페이스입니다. 마크다운, KaTeX, Mermaid 렌더링, 파일 드래그 앤 드롭, 음성 녹음, 다크/라이트 테마, 오프라인 캐시까지 지원합니다 |
243
- | **Mac WebView 앱** | `jaw serve`를 macOS 네이티브 앱으로 감싼 것입니다. Dock에서 바로 접근할 수 있어서 브라우저를 따로 열 필요가 없습니다 |
244
- | **Terminal TUI** | `jaw chat`으로 실행합니다. 멀티라인 편집, 슬래시 명령어 자동완성, 세션 유지를 지원합니다 |
245
- | **Telegram** | 음성 메시지를 자동으로 텍스트로 변환합니다. 사진, 파일 업로드도 됩니다. 예약 작업 결과가 자동으로 전달됩니다 |
246
- | **Discord** | 텍스트, 파일, 명령어를 지원합니다. 채널/스레드 라우팅과 에이전트 결과 포워딩이 됩니다 |
150
+ <div align="center">
247
151
 
248
- ### 대시보드 구성
152
+ ![Dashboard Navigator](docs/screenshots/dashboard-navigator.png)
249
153
 
250
- | 영역 | 하는 일 |
251
- |---|---|
252
- | **Navigator** | 활성/실행중/오프라인 인스턴스를 그룹으로 보여줍니다. CLI, 모델, 포트 정보와 함께 시작/정지/재시작 버튼을 제공합니다 |
253
- | **Live Preview** | 선택한 인스턴스의 Web UI를 바로 임베드해서 보여줍니다. 따로 탭을 열 필요가 없습니다 |
254
- | **Runtime Settings** | 현재 사용 중인 CLI, 모델, 추론 강도, 권한 모드, 작업 디렉터리, 직원 목록, 스킬 등을 눈에 보여줍니다 |
255
- | **Notes** | 대시보드 안에 내장된 마크다운 노트입니다. 폴더 트리, KaTeX, Mermaid, 코드 하이라이팅, Split 프리뷰를 지원합니다 |
154
+ </div>
155
+
156
+ ### 칸반 보드
157
+
158
+ 인스턴스 카드를 레인(Backlog Ready In Progress Review Done)에 드래그해서 배치합니다. AI 세션이 무슨 작업을 하는지 추적할 있습니다.
159
+
160
+ <div align="center">
161
+
162
+ ![칸반 보드](docs/screenshots/dashboard-kanban.png)
163
+
164
+ </div>
165
+
166
+ ### 우선순위 매트릭스
167
+
168
+ 할 일과 리마인더를 아이젠하워 매트릭스로 정리합니다. 중요한 것부터 처리하세요.
169
+
170
+ <div align="center">
171
+
172
+ ![우선순위 매트릭스](docs/screenshots/priority-matrix.png)
173
+
174
+ </div>
175
+
176
+ ### 노트
177
+
178
+ 대시보드 안의 미니 옵시디언입니다. 폴더, 비주얼(WYSIWYG) + 원본 + 분할 편집, KaTeX(수식 렌더링), Mermaid(다이어그램), 구문 강조 코드 블록을 지원합니다.
179
+
180
+ <div align="center">
181
+
182
+ ![노트 에디터](docs/screenshots/notes-wysiwyg.png)
183
+
184
+ </div>
185
+
186
+ ### 에이전트 상태
187
+
188
+ 각 AI 엔진의 상태와 사용량을 한 눈에 모니터링합니다.
189
+
190
+ <div align="center">
191
+
192
+ ![Claude 상태](docs/screenshots/claude-status-widget.png)
193
+
194
+ </div>
256
195
 
257
196
  ---
258
197
 
259
198
  ## 직원(Employee) 시스템
260
199
 
261
- CLI-JAW에서 가장 흥미로운 기능 하나입니다. AI가 AI부려먹는 구조입니다.
200
+ 핵심 아이디어: **메인 CLI가 다른 CLI워커로 부립니다.**
262
201
 
263
- ### 어떻게 동작하나요
202
+ 하나의 AI(Boss)에게 말하면, 전문 작업이 필요할 때 직원들에게 태스크를 배분합니다 — 각 직원은 자체 CLI와 자체 모델로 동작합니다:
264
203
 
265
204
  ```
266
- 사용자 -> jaw 서버 -> Boss 에이전트 (메인 CLI)
267
- ├── 직접 응답 (간단한 작업)
268
- └── 직원 디스패치
269
- ├── Frontend 직원 (OpenCode)
270
- ├── Backend 직원 (Codex)
271
- └── Research 직원 (Codex)
272
- └── 결과를 Boss가 취합해서 보고
273
- ```
205
+ 나: "프론트엔드 스타일 고치고, API 엔드포인트도 업데이트해"
274
206
 
275
- - **Boss**가 작업 계획을 세우고, 각 **직원**에게 서브태스크를 배분합니다
276
- - 직원은 독립된 CLI 세션에서 실행됩니다 (Claude, Codex, OpenCode 각자 다른 엔진 사용 가능)
277
- - 파일 겹침 감지: 직원이 같은 파일을 건드리려 하면 경고합니다
278
- - Boss는 직원 결과를 검토한 뒤 사용자에게 최종 보고합니다
279
-
280
- ### 디스패치 방법
207
+ Boss (Claude) 판단 중...
208
+ ├── Frontend 직원 (OpenCode)에게 디스패치 "dashboard.tsx의 CSS 그리드 레이아웃 수정"
209
+ ├── Backend 직원 (Codex)에게 디스패치 → "/api/users에서 페이지네이션 메타데이터 반환하도록 수정"
210
+ └── 양쪽 결과를 종합해서 보고
211
+ ```
281
212
 
282
213
  ```bash
283
- jaw dispatch --agent "Backend" --task "API 엔드포인트 검증해줘"
214
+ # 내부적으로는 명령어 하나:
215
+ jaw dispatch --agent "Frontend" --task "dashboard.tsx의 CSS 그리드 레이아웃 수정"
284
216
  ```
285
217
 
286
- Web UI, Telegram, Discord 어디서든 `/dispatch` 명령어로도 사용할 있습니다.
218
+ 직원은 설정에 등록된 다른 AI CLI입니다. 각각 자체 세션, 자체 모델, 자체 컨텍스트를 가집니다. Boss가 결과를 검토한 뒤 최종 보고합니다.
219
+
220
+ ### 직원 vs 서브에이전트
221
+
222
+ 이 둘은 다른 것입니다:
223
+
224
+ | | 직원 | 서브에이전트 |
225
+ |---|---|---|
226
+ | **뭔가요** | 다른 AI CLI (Codex, OpenCode 등)를 워커로 설정한 것 | 단일 CLI 안의 병렬 태스크 도구 |
227
+ | **언제 쓰나요** | 여러 전문가가 서로 다른 코드베이스/도메인을 다룰 때 | 내부 리서치, 파일 읽기, 병렬 분석 |
228
+ | **어떻게 쓰나요** | `jaw dispatch --agent "이름" --task "..."` | 자동 — CLI가 내부적으로 생성 |
229
+
230
+ 직원은 "Frontend는 CSS, Backend는 API"용. 서브에이전트는 "결정 전에 파일 5개를 병렬로 읽기"용.
287
231
 
288
232
  ---
289
233
 
290
- ## 5개 AI 엔진
234
+ ## AI 런타임
291
235
 
292
- 이미 결제하고 있는 OAuth 구독으로 라우팅합니다. **토큰당 과금이 없습니다.**
236
+ 토큰당 API 과금 없음. 이미 결제 중인 구독으로 라우팅합니다.
293
237
 
294
238
  | CLI | 기본 모델 | 인증 | 비용 |
295
239
  |---|---|---|---|
296
- | **Claude** | `opus-4-6` | `claude auth` | Claude Max 구독 |
240
+ | **Claude** | `opus-4-6` | `claude auth login` | Claude Max 구독 |
297
241
  | **Codex** | `gpt-5.5` | `codex login` | ChatGPT Pro 구독 |
242
+ | **Codex App** | `gpt-5.4` | `codex login` | ChatGPT Pro 구독 |
298
243
  | **Gemini** | `gemini-3.1-pro-preview` | `gemini` | Gemini Advanced 구독 |
244
+ | **Grok** | `grok-build` | `grok login --oauth` | Grok 구독; 쿼터는 인증/상태 전용 |
299
245
  | **OpenCode** | `minimax-m2.7` | `opencode` | 무료 모델 사용 가능 |
300
246
  | **Copilot** | `gpt-5-mini` | `copilot login` | 무료 티어 사용 가능 |
301
247
 
302
- **Fallback 체인**: 한 엔진이 rate limit에 걸리거나 다운되면 다음 엔진이 자동으로 이어받습니다. `/fallback [cli1 cli2...]`로 순서를 설정합니다.
248
+ **Fallback 체인**: 한 엔진이 레이트 리밋되면 다음이 이어받습니다. `/fallback [cli1 cli2...]`로 설정.
303
249
 
304
- **OpenCode 와일드카드**: OpenRouter, 로컬 LLM, OpenAI 호환 API 등 어떤 모델 엔드포인트든 연결할 수 있습니다.
250
+ **OpenCode 와일드카드**: OpenRouter, 로컬 LLM(대규모 언어 모델), OpenAI 호환 API 등 어떤 모델 엔드포인트든 연결 가능.
305
251
 
306
- > 엔진 전환: `/cli codex` | 모델 전환: `/model gpt-5.5` | Web, Terminal, Telegram, Discord 어디서든 됩니다.
252
+ > 엔진 전환: `/cli codex` | 모델 전환: `/model gpt-5.5` | Web, Terminal, Telegram, Discord 어디서든 가능.
307
253
 
308
254
  ---
309
255
 
310
- ## PABCD 오케스트레이션
256
+ ## PABCD 오케스트레이션 (Plan → Audit → Build → Check → Done)
311
257
 
312
- 복잡한 작업을 "야 그냥 알아서 해" 하면 결과물이 좋지 않습니다. PABCD는 작업을 5단계로 쪼개서, 매 단계마다 사용자가 확인하고 승인하는 구조입니다.
258
+ 복잡한 작업에 CLI-JAW는 5단계 워크플로를 사용합니다. 단계마다 사용자가 확인하고 승인합니다 승인 없이는 아무것도 진행되지 않습니다.
313
259
 
314
260
  ```
315
- P (Plan) -> A (Audit) -> B (Build) -> C (Check) -> D (Done) -> IDLE
316
- ⛔ ⛔ auto auto
261
+ P (Plan) A (Audit) B (Build) C (Check) D (Done) IDLE
262
+ ⛔ ⛔ ⛔ auto auto
317
263
  ```
318
264
 
319
265
  | 단계 | 하는 일 |
320
266
  |---|---|
321
- | **P** (Plan) | Boss AI가 diff 수준의 구체적인 계획을 세웁니다. 사용자 확인을 위해 멈춥니다 |
322
- | **A** (Audit) | 읽기 전용 워커가 계획의 실행 가능성을 검증합니다 (파일 경로, import, 시그니처 확인) |
323
- | **B** (Build) | Boss가 직접 코드를 작성합니다. 워커는 결과만 검증합니다 |
324
- | **C** (Check) | 타입 체크, 문서 업데이트, 일관성 검사를 자동으로 수행합니다 |
325
- | **D** (Done) | 모든 변경 사항을 요약하고 IDLE로 돌아갑니다 |
267
+ | **P Plan** | Boss AI가 diff 수준의 구체적인 계획을 세웁니다. 사용자 확인을 위해 멈춥니다 |
268
+ | **A Audit** | 읽기 전용 워커가 계획의 실행 가능성을 검증합니다 (import 경로, 시그니처 일치 등) |
269
+ | **B Build** | Boss가 직접 구현합니다. 읽기 전용 워커가 결과를 검증합니다 |
270
+ | **C Check** | 타입 체크 (`tsc --noEmit`), 문서 업데이트, 일관성 검사 |
271
+ | **D Done** | 모든 변경 사항 요약. IDLE로 복귀 |
326
272
 
327
- 상태는 DB에 저장되니까 서버를 재시작해도 이어서 작업할 수 있습니다. `jaw orchestrate` 또는 `/pabcd`로 시작합니다.
273
+ 상태는 데이터베이스에 저장되므로 재시작해도 이어서 작업할 수 있습니다. 워커는 파일을 수정할 수 없습니다 — 검증만 합니다. `jaw orchestrate`, `/orchestrate`, `/pabcd`로 시작합니다.
328
274
 
329
275
  ---
330
276
 
331
- ## 메모리 — 3계층 구조
277
+ ## 메모리
332
278
 
333
- AI 비서가 어제 이야기를 오늘도 기억하면 좋겠다고 생각해본 적 있으시죠? CLI-JAW는 세 가지 계층으로 기억을 관리합니다.
279
+ 개의 계층이 각기 다른 회상 범위를 담당합니다.
334
280
 
335
- | 계층 | 저장하나요 | 어떻게 동작하나요 |
281
+ | 계층 | 저장 대상 | 동작 방식 |
336
282
  |---|---|---|
337
- | **History Block** | 최근 세션 맥락 | 마지막 10개 세션(최대 8,000자) 프롬프트 시작부에 자동 주입합니다 |
338
- | **Memory Flush** | 대화에서 추출한 지식 | 10턴마다 대화를 요약해서 에피소드, 일일 로그(`YYYY-MM-DD.md`), 라이브 노트로 정리합니다 |
339
- | **Soul + Task Snapshot** | 정체성과 의미 검색 | `soul.md`가 AI의 성격과 경계를 정의합니다. 프롬프트마다 FTS5 인덱스에서 관련 기억을 최대 4 검색합니다 |
283
+ | **History Block** | 최근 세션 맥락 | 마지막 10개 세션(최대 8,000자), 작업 디렉터리 기준. 프롬프트 시작부에 자동 주입 |
284
+ | **Memory Flush** | 대화에서 추출한 구조화된 지식 | 일정 턴(기본 10턴) 트리거. 에피소드, 일일 로그, 시맨틱 노트를 마크다운으로 추출 |
285
+ | **Soul + Task Snapshot** | 정체성과 시맨틱 검색 | 핵심 가치, 톤, 경계를 정의. 전문 검색(full-text search) 인덱스에서 프롬프트당 최대 4건의 관련 결과를 반환 |
340
286
 
341
- 세 계층 모두 시스템 프롬프트에 자동으로 들어갑니다. 수동 검색도 가능합니다:
287
+ 세 계층 모두 시스템 프롬프트에 자동으로 주입됩니다. 메모리 검색:
342
288
 
343
289
  ```bash
344
- jaw memory search "지난주 회의 내용"
345
- # 또는 어느 인터페이스에서든
346
- /memory 지난주 회의 내용
290
+ jaw memory search "API 인증은 어떻게 설정했지?"
347
291
  ```
348
292
 
349
- Web UI 설정에서 프로필 요약, 메모리 마이그레이션, 재인덱싱도 할 수 있습니다.
350
-
351
293
  ---
352
294
 
353
- ## 스킬 — 100개 이상
295
+ ## 스킬
354
296
 
355
- CLI-JAW에는 100개 이상의 스킬이 탑재되어 있습니다. 스킬은 AI가 특정 작업을 수행하는 방법을 알려주는 가이드입니다.
297
+ 230개 이상의 스킬이 개발 워크플로, 오피스 문서, 자동화, 미디어를 커버합니다.
356
298
 
357
299
  | 분류 | 스킬 | 할 수 있는 것 |
358
300
  |---|---|---|
359
- | **오피스** | `pdf`, `docx`, `xlsx`, `pptx`, `hwp` | 문서 읽기, 생성, 편집. 한글(HWP/HWPX) 됩니다 |
360
- | **자동화** | `browser`, `vision-click`, `screen-capture`, `desktop-control` | Chrome 자동화, AI 화면 보고 클릭, 스크린샷, 데스크톱 제어 |
361
- | **미디어** | `video`, `imagegen`, `lecture-stt`, `tts` | 영상 생성(Remotion), 이미지 생성(OpenAI), 강의 녹음 텍스트 변환, 음성 합성 |
362
- | **연동** | `github`, `notion`, `telegram-send`, `memory` | GitHub Issue/PR/CI, Notion 페이지 관리, Telegram 미디어 전송, 메모리 관리 |
363
- | **시각화** | `diagram` | 채팅 안에서 SVG 다이어그램, 차트, 인터랙티브 시각화를 바로 렌더링 |
364
- | **개발 가이드** | `dev`, `dev-frontend`, `dev-backend`, `dev-data`, `dev-testing`, `dev-pabcd`, `dev-code-reviewer` | 서브 에이전트에 주입되는 엔지니어링 가이드라인 |
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` | Issue/PR/CI, Notion 페이지, Telegram 미디어 전송, 영구 메모리 |
305
+ | **시각화** | `diagram` | SVG 다이어그램, 차트, 인터랙티브 시각화를 채팅 안에서 렌더링 |
306
+ | **개발 가이드** | `dev`, `dev-frontend`, `dev-backend`, `dev-data`, `dev-testing`, `dev-pabcd` | 에이전트 프롬프트에 주입되는 엔지니어링 가이드라인 |
365
307
 
366
- 32개 활성 스킬은 항상 자동으로 주입되고, 194개 이상의 참조 스킬은 필요할 때 불러옵니다.
308
+ 참조 스킬은 `skills_ref/`에 있으며 필요 활성화합니다.
367
309
 
368
310
  ```bash
369
- jaw skill install <name> # 참조 스킬을 활성화
311
+ jaw skill install <name> # 참조 스킬 활성화
312
+ jaw skill list # 사용 가능한 스킬 목록
370
313
  ```
371
314
 
372
315
  ---
373
316
 
374
317
  ## 브라우저 & 데스크톱 자동화
375
318
 
376
- | 기능 | 설명 |
319
+ | 기능 | 동작 방식 |
377
320
  |---|---|
378
- | **Chrome CDP** | DevTools Protocol로 웹페이지를 탐색하고 클릭하고 입력하고 스크린샷을 찍습니다. 10가지 액션을 지원합니다 |
379
- | **Vision-click** | 화면을 캡쳐하고 AI가 대상 좌표를 추출해서 클릭합니다. `jaw browser vision-click "로그인 버튼"` 한 줄이면 됩니다 |
380
- | **DOM Reference** | ChatGPT, Grok, Gemini UI의 셀렉터 맵입니다. 모델 선택, 정지 버튼 등을 자동화할 수 있습니다 |
381
- | **Computer Use** | Codex App의 Computer Use MCP를 통한 데스크톱 자동화입니다. 웹은 CDP로, 데스크톱 앱은 Computer Use로 자동 라우팅됩니다 |
382
- | **Diagram 스킬** | SVG 다이어그램과 인터랙티브 HTML 시각화를 생성해서 샌드박스 iframe에 렌더링합니다 |
321
+ | **Chrome DevTools Protocol** | 탐색, 클릭, 입력, 스크린샷, JS 실행, 스크롤, 입력 Chrome 원격 제어 |
322
+ | **Vision-click** | 화면 캡처 AI가 대상 좌표 추출 클릭. `jaw browser vision-click "로그인 버튼"` |
323
+ | **Computer Use** | Codex Computer Use를 통한 데스크톱 자동화. Safari로 localhost에 접속하면 Codex 앱처럼 동작 |
324
+ | **Web-AI 벤더** | `jaw browser web-ai --vendor chatgpt\|gemini\|grok` 세션 생명주기, 진단, 소스 감사 지원 |
325
+ | **Diagram 스킬** | SVG 다이어그램과 인터랙티브 시각화 생성, 채팅 안에서 인라인 렌더링 |
326
+
327
+ Computer Use로 Finder, Safari, 시스템 설정, Xcode 등 모든 macOS 앱을 자연어로 제어할 수 있습니다.
383
328
 
384
329
  ---
385
330
 
386
- ## 메시징 — Telegram & Discord
331
+ ## 메시징
387
332
 
388
333
  ### Telegram
389
334
 
390
335
  ```
391
- 📱 Telegram <-> 🦈 CLI-JAW <-> 🤖 AI Engines
336
+ 📱 Telegram ←→ 🦈 CLI-JAW ←→ 🤖 AI Engines
392
337
  ```
393
338
 
339
+ 텍스트 채팅, 음성 메시지(다중 프로바이더 STT — 음성을 텍스트로 자동 변환), 파일/사진 업로드, 슬래시 명령어(`/cli`, `/model`, `/status`), 예약 작업(`every`/`cron` — 반복 스케줄) 결과 자동 전달.
340
+
394
341
  <details>
395
342
  <summary>설정 (3단계)</summary>
396
343
 
397
- 1. bot 만들기 — [@BotFather](https://t.me/BotFather)에서 `/newbot` -> 토큰 복사
398
- 2. 설정 — `jaw init --telegram-token YOUR_TOKEN` 또는 Web UI 설정에서 입력
399
- 3. bot에 아무 메시지나 보내면 Chat ID 자동 저장됩니다
344
+ 1. [@BotFather](https://t.me/BotFather)에서 `/newbot` 토큰 복사
345
+ 2. `jaw init --telegram-token YOUR_TOKEN` 또는 Web UI 설정에서 입력
346
+ 3. 봇에 아무 메시지나 보내면 Chat ID 자동 저장
400
347
 
401
348
  </details>
402
349
 
403
- **Telegram에서 되는 것들**: 텍스트 채팅, 음성 메시지(자동 텍스트 변환), 사진/파일 업로드, 슬래시 명령어(`/cli`, `/model`, `/status`), 예약 작업 결과 자동 전달
404
-
405
350
  ### Discord
406
351
 
407
- Telegram과 동일한 기능을 지원합니다. 채널/스레드 라우팅, 에이전트 결과 브로드캐스트 포워더가 있습니다. Web UI 설정에서 세팅합니다.
352
+ Telegram과 동일한 기능 텍스트, 파일, 명령어. 채널/스레드 라우팅, `/api/channel/send` 정규 엔드포인트, 에이전트 결과 브로드캐스트 포워더 지원. Web UI 설정에서 세팅.
408
353
 
409
354
  ### 음성 & STT
410
355
 
411
- Web(마이크 버튼), Telegram(음성 메시지), Discord에서 음성 입력이 됩니다. OpenAI 호환, Google Vertex AI, 커스텀 엔드포인트 등 다양한 STT 프로바이더를 지원합니다.
356
+ Web(마이크 버튼), Telegram(음성 메시지), Discord에서 음성 입력 가능. 프로바이더: OpenAI 호환, Google Vertex AI, 커스텀 엔드포인트.
412
357
 
413
358
  ---
414
359
 
415
- ## MCP 번 설치, 5개 엔진 동기화
360
+ ## MCP (Model Context Protocol)
416
361
 
417
- [Model Context Protocol](https://modelcontextprotocol.io) AI에게 외부 도구를 수 있게 해주는 표준입니다. 보통이라면 Claude, Codex, Gemini, OpenCode, Copilot 설정 파일을 다섯 따로 편집해야 하는데, CLI-JAW에서는 한 번이면 됩니다.
362
+ [MCP](https://modelcontextprotocol.io) AI 도구가 기능을 공유할 수 있게 해주는 표준입니다 AI 에이전트용 플러그인이라고 생각하면 됩니다. CLI-JAW는 모든 엔진의 MCP 설정을 하나의 파일로 관리합니다.
418
363
 
419
364
  ```bash
420
365
  jaw mcp install @anthropic/context7
421
- # -> Claude, Codex, Gemini, OpenCode, Copilot 설정 파일에 동시에 동기화
366
+ # Claude, Codex, Gemini, OpenCode, Copilot 설정 파일에 동시에 동기화
422
367
  ```
423
368
 
424
- JSON 파일 다섯 개를 돌아다니며 고칠 필요가 없습니다.
369
+ 여러 JSON 파일을 따로 편집할 필요 없습니다. 번 설치하면 MCP 지원 엔진 전체에 반영됩니다. Grok CLI는 표준 런타임이지만, Grok 쪽에 호환 MCP 설정이 확인될 때까지 MCP 동기화 대상으로 표기하지 않습니다.
425
370
 
426
371
  ```bash
427
- jaw mcp sync # 수동으로 편집한 후 다시 동기화
372
+ jaw mcp sync # 수동 편집 후 다시 동기화
428
373
  ```
429
374
 
430
375
  ---
@@ -432,126 +377,114 @@ jaw mcp sync # 수동으로 편집한 후 다시 동기화
432
377
  ## CLI 명령어
433
378
 
434
379
  ```bash
435
- jaw serve # 서버 시작 -> http://localhost:3457
436
- jaw chat # 터미널 TUI
437
- jaw doctor # 12가지 진단 체크
438
- jaw service install # 부팅 자동 시작
439
- jaw skill install <name> # 스킬 활성화
440
- jaw mcp install <package> # MCP 설치 -> 5개 엔진 동기화
441
- jaw memory search <query> # 메모리 검색
442
- jaw browser start # Chrome 실행 (CDP)
443
- jaw browser vision-click "로그인 버튼" # AI 기반 클릭
444
- jaw clone ~/project # 인스턴스 복제
445
- jaw --home ~/project serve --port 3458 # 두 번째 인스턴스 실행
446
- jaw orchestrate # PABCD 시작
447
- jaw dispatch --agent Backend --task "..." # 직원 디스패치
448
- jaw reset # 전체 초기화
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 "로그인" # AI 기반 클릭
410
+
411
+ # 유지보수
412
+ jaw reset # 전체 초기화
449
413
  ```
450
414
 
451
415
  ---
452
416
 
453
- ## 멀티 인스턴스 & Docker
454
-
455
- ### 멀티 인스턴스
417
+ ## 멀티 인스턴스
456
418
 
457
- 프로젝트마다 독립된 인스턴스를 돌릴 있습니다. 설정, 메모리, DB가 전부 분리됩니다.
419
+ 설정, 메모리, 데이터베이스가 완전히 분리된 독립 인스턴스를 실행합니다:
458
420
 
459
421
  ```bash
460
422
  jaw clone ~/my-project
461
423
  jaw --home ~/my-project serve --port 3458
462
424
  ```
463
425
 
464
- ### Docker
465
-
466
- ```bash
467
- docker compose up -d # -> http://localhost:3457
468
- ```
469
-
470
- non-root `jaw` 유저, Chromium 샌드박스 활성화. Dockerfile이 두 개 있습니다: `Dockerfile` (npm install)과 `Dockerfile.dev` (로컬 소스). 데이터는 `jaw-data` named volume에 보존됩니다.
471
-
472
- <details>
473
- <summary>Docker 상세</summary>
474
-
475
- ```bash
476
- # Dev 빌드
477
- docker build -f Dockerfile.dev -t cli-jaw:dev .
478
- docker run -d -p 3457:3457 --env-file .env cli-jaw:dev
479
-
480
- # 버전 고정
481
- docker build --build-arg CLI_JAW_VERSION=2.0.0 -t cli-jaw:2.0.0 .
482
-
483
- # Chromium 샌드박스 문제 시
484
- docker run -e CHROME_NO_SANDBOX=1 -p 3457:3457 cli-jaw
485
- ```
486
-
487
- </details>
488
-
489
- ### 원격 접근 (Tailscale)
490
-
491
- ```bash
492
- jaw serve --lan # 0.0.0.0 바인딩 + tailnet 피어 허용
493
- ```
494
-
495
- Tailnet 피어는 WireGuard + IdP 인증을 거치므로 LAN처럼 취급됩니다. 자세한 설정은 영문 README의 [Remote access 섹션](README.md#-remote-access-tailscale)을 참고하세요.
426
+ 인스턴스는 완전히 독립적 — 작업 디렉터리, 메모리, MCP 설정 모두 별개. 매니저 대시보드에서 전부 볼 수 있습니다.
496
427
 
497
428
  ---
498
429
 
499
430
  ## 개발
500
431
 
501
432
  ```bash
502
- npm run build # tsc -> dist/
433
+ npm run build # tsc dist/
503
434
  npm run dev # tsx server.ts (핫 리로드)
504
435
  npm test # Node.js 네이티브 테스트 러너
436
+ npm run gate:all # 릴리스/문서 정합성 게이트
505
437
  ```
506
438
 
507
- 아키텍처와 테스트 상세는 [ARCHITECTURE.md](docs/ARCHITECTURE.md), [TESTS.md](TESTS.md), [devlog/structure/](devlog/structure/)에 있습니다.
508
-
509
- ---
510
-
511
- ## 문제 해결
512
-
513
- | 문제 | 해결 방법 |
514
- |---|---|
515
- | `cli-jaw: command not found` | `npm install -g cli-jaw`를 다시 실행하세요. `~/.local/bin` 또는 `npm bin -g`가 `$PATH`에 있는지 확인하세요 |
516
- | `Error: node version` | Node.js 22 이상으로 업그레이드: `nvm install 22` |
517
- | `NODE_MODULE_VERSION` mismatch | `npm run ensure:native` 실행 (자동 재빌드) |
518
- | `EADDRINUSE: port 3457` | 다른 인스턴스가 실행 중입니다. `--port 3458`을 사용하세요 |
519
- | Telegram/에이전트 인증 실패 | `jaw doctor` 실행 후 `jaw serve` 재시작 |
520
- | 브라우저 명령 실패 | Chrome 설치 후 `jaw browser start`를 먼저 실행하세요 |
439
+ 아키텍처 상세: [ARCHITECTURE.md](docs/ARCHITECTURE.md) · 테스트 커버리지: [TESTS.md](TESTS.md) · 내부 구조 문서: [structure/](structure/)
521
440
 
522
441
  ---
523
442
 
524
443
  ## 비교
525
444
 
526
- | | CLI-JAW | Hermes Agent | Claude Code |
445
+ | | CLI-JAW 2.0 | Hermes Agent | Claude Code |
527
446
  |---|---|---|---|
528
- | **모델 접근** | OAuth 구독 (Claude Max, ChatGPT Pro, Copilot, Gemini) + OpenCode 와일드카드 | API 키 (OpenRouter 200+, Nous Portal) | Anthropic 전용 |
529
- | **비용** | 이미 결제하는 월 구독 그대로 | 토큰당 API 과금 | Anthropic 구독 |
530
- | **메인 UI** | Web PWA + Mac 앱 + TUI | TUI만 | CLI + IDE 플러그인 |
447
+ | **모델 접근** | Claude, Codex, Codex App, Gemini, Grok, OpenCode, Copilot 벤더 인증으로 연결 | API 키 (OpenRouter 200+, Nous Portal) | Anthropic 전용 |
448
+ | **비용 모델** | 이미 결제 중인 월 구독 그대로 | 토큰당 API 과금 | Anthropic 구독 |
449
+ | **메인 UI** | 매니저 대시보드 + 웹앱 + Mac앱 + 터미널 UI | 터미널 전용 | CLI + IDE 플러그인 |
450
+ | **대시보드** | 멀티 인스턴스 매니저, 칸반, 노트 워크스페이스 | 없음 | 없음 |
531
451
  | **메시징** | Telegram (음성) + Discord | Telegram/Discord/Slack/WhatsApp/Signal | 없음 |
532
- | **메모리** | 3계층 (History/Flush/Soul) + FTS5 | 자가 학습 루프 + Honcho | 파일 기반 자동 메모리 |
533
- | **브라우저 자동화** | Chrome CDP + Vision-click + DOM ref | 제한적 | MCP 경유 |
534
- | **오케스트레이션** | PABCD 5단계 FSM | 서브에이전트 스폰 | Task 도구 |
535
- | **실행 환경** | 로컬 + Docker | 로컬/Docker/SSH/Daytona/Modal/Singularity | 로컬 |
536
- | **스킬** | 100+ 번들 | 자가 생성 + agentskills.io | 유저 설정 |
452
+ | **메모리** | 3계층 (History/Flush/Soul) + 전문 검색 | Self-improving loop + Honcho | 파일 기반 자동 메모리 |
453
+ | **멀티 에이전트** | 직원 시스템 (다른 CLI 디스패치) + PABCD | 서브에이전트 스폰 | Task 도구 |
454
+ | **브라우저 자동화** | Chrome DevTools + vision-click + Computer Use | 제한적 | MCP 경유 |
455
+ | **실행 환경** | 로컬 + Docker | 로컬/Docker/SSH/Daytona/Modal | 로컬 |
456
+ | **스킬** | 230+ 번들 | 자가 생성 + agentskills.io | 유저 설정 |
537
457
  | **다국어** | 영어, 한국어, 중국어, 일본어 | 영어 | 영어 |
538
458
 
539
459
  ---
540
460
 
461
+ ## 문제 해결
462
+
463
+ | 문제 | 해결 방법 |
464
+ |---|---|
465
+ | `cli-jaw: command not found` | `npm install -g cli-jaw` 재실행. `~/.local/bin` 또는 `npm bin -g`가 `$PATH`에 있는지 확인 |
466
+ | `Error: node version` | Node.js 22+로 업그레이드: `nvm install 22` |
467
+ | `NODE_MODULE_VERSION` mismatch | `npm run ensure:native` (네이티브 모듈 자동 재빌드) |
468
+ | `EADDRINUSE: port 3457` | 다른 인스턴스 실행 중. `--port 3458` 사용 또는 기존 프로세스 종료 |
469
+ | Telegram / Discord 인증 실패 | `jaw doctor` 실행 후 `jaw serve` 재시작 |
470
+ | 브라우저 명령 실패 | Chrome/Chromium 설치 후 `jaw browser start` 먼저 실행 |
471
+ | 직원 디스패치가 멈춤 | 직원 CLI가 인증됐는지 확인 (`jaw doctor`) |
472
+ | Computer Use 안됨 | macOS 전용. Codex CLI 필요. 시스템 설정에서 자동화 권한 확인 |
473
+
474
+ ---
475
+
541
476
  ## 기여하기
542
477
 
543
478
  1. `master`에서 Fork하고 브랜치를 만듭니다
544
479
  2. `npm run build && npm test`
545
480
  3. PR을 제출합니다
546
481
 
547
- 버그를 발견했거나 아이디어가 있다면 [Issue 열어주세요](https://github.com/lidge-jun/cli-jaw/issues).
482
+ 버그 리포트, 기능 아이디어: [Issue 열기](https://github.com/lidge-jun/cli-jaw/issues)
548
483
 
549
484
  ---
550
485
 
551
486
  <div align="center">
552
487
 
553
- **[MIT License](LICENSE)**
554
-
555
- 비개발자도 운영할 수 있는 10만 LOC 오픈소스 AI 플랫폼.
488
+ **[MIT License](LICENSE)** · AI 앱을 왔다 갔다 하는 게 지겨운 개발자들이 만들었습니다.
556
489
 
557
490
  </div>