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.
- package/README.ja.md +229 -315
- package/README.ko.md +248 -315
- package/README.md +103 -186
- package/README.zh-CN.md +282 -296
- package/dist/bin/commands/browser-web-ai.js +4 -2
- package/dist/bin/commands/browser-web-ai.js.map +1 -1
- package/dist/bin/commands/browser.js +76 -0
- package/dist/bin/commands/browser.js.map +1 -1
- package/dist/bin/commands/doctor.js +122 -4
- package/dist/bin/commands/doctor.js.map +1 -1
- package/dist/bin/commands/skill.js +5 -3
- package/dist/bin/commands/skill.js.map +1 -1
- package/dist/bin/postinstall.js +507 -89
- package/dist/bin/postinstall.js.map +1 -1
- package/dist/lib/mcp/format-converters.js +32 -4
- package/dist/lib/mcp/format-converters.js.map +1 -1
- package/dist/lib/mcp/mcp-install.js +5 -0
- package/dist/lib/mcp/mcp-install.js.map +1 -1
- package/dist/lib/mcp/skills-distribution.js +52 -53
- package/dist/lib/mcp/skills-distribution.js.map +1 -1
- package/dist/lib/mcp/skills-reset.js +29 -16
- package/dist/lib/mcp/skills-reset.js.map +1 -1
- package/dist/lib/mcp/skills-utils.js +64 -2
- package/dist/lib/mcp/skills-utils.js.map +1 -1
- package/dist/lib/mcp/unified-config.js +7 -3
- package/dist/lib/mcp/unified-config.js.map +1 -1
- package/dist/scripts/fresh-install-smoke.js +1 -1
- package/dist/scripts/fresh-install-smoke.js.map +1 -1
- package/dist/server.js +44 -4
- package/dist/server.js.map +1 -1
- package/dist/src/agent/args.js +148 -1
- package/dist/src/agent/args.js.map +1 -1
- package/dist/src/agent/claude-e-runtime.js +42 -0
- package/dist/src/agent/claude-e-runtime.js.map +1 -0
- package/dist/src/agent/claude-i-runtime.js +42 -0
- package/dist/src/agent/claude-i-runtime.js.map +1 -0
- package/dist/src/agent/cli-helpers.js +9 -0
- package/dist/src/agent/cli-helpers.js.map +1 -0
- package/dist/src/agent/codex-app-client.js +240 -0
- package/dist/src/agent/codex-app-client.js.map +1 -0
- package/dist/src/agent/codex-app-events.js +268 -0
- package/dist/src/agent/codex-app-events.js.map +1 -0
- package/dist/src/agent/error-classifier.js +8 -2
- package/dist/src/agent/error-classifier.js.map +1 -1
- package/dist/src/agent/events/acp.js +200 -0
- package/dist/src/agent/events/acp.js.map +1 -0
- package/dist/src/agent/events/claude.js +200 -0
- package/dist/src/agent/events/claude.js.map +1 -0
- package/dist/src/agent/events/codex.js +118 -0
- package/dist/src/agent/events/codex.js.map +1 -0
- package/dist/src/agent/events/gemini.js +100 -0
- package/dist/src/agent/events/gemini.js.map +1 -0
- package/dist/src/agent/events/grok.js +298 -0
- package/dist/src/agent/events/grok.js.map +1 -0
- package/dist/src/agent/events/helpers.js +237 -0
- package/dist/src/agent/events/helpers.js.map +1 -0
- package/dist/src/agent/events/index.js +315 -0
- package/dist/src/agent/events/index.js.map +1 -0
- package/dist/src/agent/events/opencode.js +171 -0
- package/dist/src/agent/events/opencode.js.map +1 -0
- package/dist/src/agent/events/summary.js +128 -0
- package/dist/src/agent/events/summary.js.map +1 -0
- package/dist/src/agent/events/tool-labels.js +299 -0
- package/dist/src/agent/events/tool-labels.js.map +1 -0
- package/dist/src/agent/events/types.js +3 -0
- package/dist/src/agent/events/types.js.map +1 -0
- package/dist/src/agent/events.js +2 -1487
- package/dist/src/agent/events.js.map +1 -1
- package/dist/src/agent/grok-trace-backfill.js +153 -0
- package/dist/src/agent/grok-trace-backfill.js.map +1 -0
- package/dist/src/agent/lifecycle-handler.js +60 -16
- package/dist/src/agent/lifecycle-handler.js.map +1 -1
- package/dist/src/agent/live-run-state.js +1 -1
- package/dist/src/agent/live-run-state.js.map +1 -1
- package/dist/src/agent/memory-flush-controller.js +26 -0
- package/dist/src/agent/memory-flush-controller.js.map +1 -1
- package/dist/src/agent/resume-classifier.js +9 -0
- package/dist/src/agent/resume-classifier.js.map +1 -1
- package/dist/src/agent/session-persistence.js +7 -2
- package/dist/src/agent/session-persistence.js.map +1 -1
- package/dist/src/agent/spawn/process-kill.js +29 -0
- package/dist/src/agent/spawn/process-kill.js.map +1 -0
- package/dist/src/agent/spawn/queue.js +273 -0
- package/dist/src/agent/spawn/queue.js.map +1 -0
- package/dist/src/agent/spawn/resume.js +56 -0
- package/dist/src/agent/spawn/resume.js.map +1 -0
- package/dist/src/agent/spawn.js +435 -371
- package/dist/src/agent/spawn.js.map +1 -1
- package/dist/src/agent/watchdog.js +5 -1
- package/dist/src/agent/watchdog.js.map +1 -1
- package/dist/src/browser/adaptive-fetch/browser-escalation.js +177 -0
- package/dist/src/browser/adaptive-fetch/browser-escalation.js.map +1 -0
- package/dist/src/browser/adaptive-fetch/browser-runtime.js +38 -0
- package/dist/src/browser/adaptive-fetch/browser-runtime.js.map +1 -0
- package/dist/src/browser/adaptive-fetch/browser-session.js +97 -0
- package/dist/src/browser/adaptive-fetch/browser-session.js.map +1 -0
- package/dist/src/browser/adaptive-fetch/challenge-detector.js +88 -0
- package/dist/src/browser/adaptive-fetch/challenge-detector.js.map +1 -0
- package/dist/src/browser/adaptive-fetch/content-scorer.js +145 -0
- package/dist/src/browser/adaptive-fetch/content-scorer.js.map +1 -0
- package/dist/src/browser/adaptive-fetch/endpoint-resolvers.js +382 -0
- package/dist/src/browser/adaptive-fetch/endpoint-resolvers.js.map +1 -0
- package/dist/src/browser/adaptive-fetch/fetcher.js +105 -0
- package/dist/src/browser/adaptive-fetch/fetcher.js.map +1 -0
- package/dist/src/browser/adaptive-fetch/human-loop.js +101 -0
- package/dist/src/browser/adaptive-fetch/human-loop.js.map +1 -0
- package/dist/src/browser/adaptive-fetch/index.js +586 -0
- package/dist/src/browser/adaptive-fetch/index.js.map +1 -0
- package/dist/src/browser/adaptive-fetch/metadata.js +169 -0
- package/dist/src/browser/adaptive-fetch/metadata.js.map +1 -0
- package/dist/src/browser/adaptive-fetch/output.js +71 -0
- package/dist/src/browser/adaptive-fetch/output.js.map +1 -0
- package/dist/src/browser/adaptive-fetch/reader-adapters.js +135 -0
- package/dist/src/browser/adaptive-fetch/reader-adapters.js.map +1 -0
- package/dist/src/browser/adaptive-fetch/safety.js +296 -0
- package/dist/src/browser/adaptive-fetch/safety.js.map +1 -0
- package/dist/src/browser/adaptive-fetch/third-party-readers.js +43 -0
- package/dist/src/browser/adaptive-fetch/third-party-readers.js.map +1 -0
- package/dist/src/browser/adaptive-fetch/trace.js +61 -0
- package/dist/src/browser/adaptive-fetch/trace.js.map +1 -0
- package/dist/src/browser/adaptive-fetch/transforms.js +81 -0
- package/dist/src/browser/adaptive-fetch/transforms.js.map +1 -0
- package/dist/src/browser/adaptive-fetch/validators.js +108 -0
- package/dist/src/browser/adaptive-fetch/validators.js.map +1 -0
- package/dist/src/browser/adaptive-fetch/waf-profiles.js +135 -0
- package/dist/src/browser/adaptive-fetch/waf-profiles.js.map +1 -0
- package/dist/src/browser/index.js +1 -0
- package/dist/src/browser/index.js.map +1 -1
- package/dist/src/browser/web-ai/gemini-model.js +42 -15
- package/dist/src/browser/web-ai/gemini-model.js.map +1 -1
- package/dist/src/cli/claude-models.js +1 -1
- package/dist/src/cli/claude-models.js.map +1 -1
- package/dist/src/cli/compact.js +2 -0
- package/dist/src/cli/compact.js.map +1 -1
- package/dist/src/cli/handlers-completions.js +3 -0
- package/dist/src/cli/handlers-completions.js.map +1 -1
- package/dist/src/cli/handlers-runtime.js +5 -2
- package/dist/src/cli/handlers-runtime.js.map +1 -1
- package/dist/src/cli/readiness.js +43 -1
- package/dist/src/cli/readiness.js.map +1 -1
- package/dist/src/cli/registry.js +58 -0
- package/dist/src/cli/registry.js.map +1 -1
- package/dist/src/core/browser-open.js +4 -1
- package/dist/src/core/browser-open.js.map +1 -1
- package/dist/src/core/claude-install.js +4 -0
- package/dist/src/core/claude-install.js.map +1 -1
- package/dist/src/core/cli-detect.js +61 -13
- package/dist/src/core/cli-detect.js.map +1 -1
- package/dist/src/core/compact.js +295 -63
- package/dist/src/core/compact.js.map +1 -1
- package/dist/src/core/config.js +151 -11
- package/dist/src/core/config.js.map +1 -1
- package/dist/src/core/db.js +10 -1
- package/dist/src/core/db.js.map +1 -1
- package/dist/src/core/employees.js +1 -1
- package/dist/src/core/employees.js.map +1 -1
- package/dist/src/core/logger.js +28 -9
- package/dist/src/core/logger.js.map +1 -1
- package/dist/src/core/runtime-settings.js +32 -5
- package/dist/src/core/runtime-settings.js.map +1 -1
- package/dist/src/manager/memory/embedding/state-machine.js +2 -1
- package/dist/src/manager/memory/embedding/state-machine.js.map +1 -1
- package/dist/src/manager/memory/embedding/sync.js +52 -33
- package/dist/src/manager/memory/embedding/sync.js.map +1 -1
- package/dist/src/manager/memory/embedding/vec-store.js +10 -10
- package/dist/src/manager/memory/embedding/vec-store.js.map +1 -1
- package/dist/src/manager/routes/dashboard-memory.js +43 -16
- package/dist/src/manager/routes/dashboard-memory.js.map +1 -1
- package/dist/src/manager/server.js +11 -0
- package/dist/src/manager/server.js.map +1 -1
- package/dist/src/memory/indexing.js +6 -1
- package/dist/src/memory/indexing.js.map +1 -1
- package/dist/src/orchestrator/distribute.js +5 -4
- package/dist/src/orchestrator/distribute.js.map +1 -1
- package/dist/src/prompt/builder.js +12 -1
- package/dist/src/prompt/builder.js.map +1 -1
- package/dist/src/prompt/runtime-context.js +69 -0
- package/dist/src/prompt/runtime-context.js.map +1 -0
- package/dist/src/routes/browser.js +33 -0
- package/dist/src/routes/browser.js.map +1 -1
- package/dist/src/routes/employees.js +1 -1
- package/dist/src/routes/employees.js.map +1 -1
- package/dist/src/routes/memory.js +1 -1
- package/dist/src/routes/memory.js.map +1 -1
- package/dist/src/routes/orchestrate.js +37 -10
- package/dist/src/routes/orchestrate.js.map +1 -1
- package/dist/src/routes/quota.js +91 -1
- package/dist/src/routes/quota.js.map +1 -1
- package/dist/src/routes/runtime-context.js +43 -0
- package/dist/src/routes/runtime-context.js.map +1 -0
- package/dist/src/routes/security-audit.js +14 -0
- package/dist/src/routes/security-audit.js.map +1 -0
- package/dist/src/routes/settings.js +8 -1
- package/dist/src/routes/settings.js.map +1 -1
- package/dist/src/security/security-audit-log.js +99 -0
- package/dist/src/security/security-audit-log.js.map +1 -0
- package/dist/src/telegram/bot.js +4 -2
- package/dist/src/telegram/bot.js.map +1 -1
- package/dist/src/types/cli-engine.js +4 -0
- package/dist/src/types/cli-engine.js.map +1 -1
- package/dist/src/types/cli-events.js +1 -1
- package/dist/src/types/cli-events.js.map +1 -1
- package/package.json +9 -3
- package/public/assets/providers/antigravity-color.svg +1 -0
- package/public/assets/providers/antigravity.svg +1 -0
- package/public/assets/providers/copilot-color.svg +1 -1
- package/public/assets/providers/copilot.svg +1 -1
- package/public/assets/providers/grok-color.svg +1 -0
- package/public/assets/providers/grok.svg +1 -0
- package/public/css/chat-search.css +168 -0
- package/public/css/chat.css +43 -1
- package/public/css/modals.css +41 -0
- package/public/dist/assets/{AdvancedExport-BAdZUC-6.js → AdvancedExport-CBvz4_IZ.js} +1 -1
- package/public/dist/assets/Agent-DlUqCMXJ.js +1 -0
- package/public/dist/assets/{Browser-BsdxDVgM.js → Browser-66BpLQck.js} +1 -1
- package/public/dist/assets/{ChannelsDiscord-Dg_jto6l.js → ChannelsDiscord-BifT2Dum.js} +1 -1
- package/public/dist/assets/{ChannelsTelegram-DGyZfJGS.js → ChannelsTelegram-CK6tYQ8k.js} +1 -1
- package/public/dist/assets/DashboardEmbeddingSection-6F8zSSja.js +2 -0
- package/public/dist/assets/{DashboardMeta-CAH9ONTb.js → DashboardMeta-Cc03HT5R.js} +1 -1
- package/public/dist/assets/{Display-DM_yvyKL.js → Display-arOjcMQZ.js} +1 -1
- package/public/dist/assets/Employees-YbW-mI67.js +1 -0
- package/public/dist/assets/{HealthBadge-Dtr-dDnw.js → HealthBadge-DEPFkcA0.js} +1 -1
- package/public/dist/assets/Heartbeat-CW4eIhtJ.js +1 -0
- package/public/dist/assets/{InlineWarn-E64UaKFh.js → InlineWarn-DoJS7AgM.js} +1 -1
- package/public/dist/assets/{Mcp-Dlp2X7X7.js → Mcp-ZQ6ARQb6.js} +1 -1
- package/public/dist/assets/Memory-BAUWJMqc.js +1 -0
- package/public/dist/assets/{MilkdownWysiwygEditor-Ctww8i0L.js → MilkdownWysiwygEditor-IAqFtXvM.js} +1 -1
- package/public/dist/assets/ModelProvider-DUtmFh0J.js +1 -0
- package/public/dist/assets/{Network-Df1R2YcQ.js → Network-B_4E82zQ.js} +1 -1
- package/public/dist/assets/{Permissions-BKJ5K6EL.js → Permissions-BkADXjQ4.js} +1 -1
- package/public/dist/assets/{Permissions-CcWZoOVP.js → Permissions-DvUCB8wA.js} +1 -1
- package/public/dist/assets/{Profile-DZ7xf1WZ.js → Profile-BcnTCSYM.js} +1 -1
- package/public/dist/assets/{Prompts-Bh5DYt8e.js → Prompts-CUs_RoRE.js} +1 -1
- package/public/dist/assets/{SpeechKeys-CQwtVxOP.js → SpeechKeys-qxc-ROWN.js} +1 -1
- package/public/dist/assets/agent-meta-Du8y6mSM.js +1 -0
- package/public/dist/assets/app-CGqTcIeF.js +39 -0
- package/public/dist/assets/app-Dpk6cE6C.css +1 -0
- package/public/dist/assets/architecture-7EHR7CIX-wVaUQezY.js +1 -0
- package/public/dist/assets/architectureDiagram-3BPJPVTR-kYIVzmWe.js +36 -0
- package/public/dist/assets/blockDiagram-GPEHLZMM-B204CPhe.js +132 -0
- package/public/dist/assets/{c4Diagram-AHTNJAMY-Bp2QLC-s.js → c4Diagram-AAUBKEIU-DAv6TAjg.js} +6 -6
- package/public/dist/assets/channel-CCQujL1n.js +1 -0
- package/public/dist/assets/{chunk-EDXVE4YY-COudQKkJ.js → chunk-2J33WTMH-xiPJWKcl.js} +1 -1
- package/public/dist/assets/chunk-3OPIFGDE-DOAvk9x8.js +62 -0
- package/public/dist/assets/{chunk-4BX2VUAB-Cm3KqBkS.js → chunk-4BX2VUAB-6lTRwyT0.js} +1 -1
- package/public/dist/assets/chunk-4EGX6M5U-DXtAEgX6.js +1 -0
- package/public/dist/assets/chunk-55IACEB6-Dx2JkQLw.js +1 -0
- package/public/dist/assets/chunk-5DO6E6H7-DDcMHB95.js +1 -0
- package/public/dist/assets/chunk-5ZQYHXKU-Bd-RFO5i.js +2 -0
- package/public/dist/assets/chunk-727SXJPM-BrsRzj8z.js +206 -0
- package/public/dist/assets/{chunk-AGHRB4JF-DIMn8T3_.js → chunk-AGHRB4JF-CYdXVA2-.js} +1 -1
- package/public/dist/assets/chunk-AQP2D5EJ-Di6Gstk-.js +231 -0
- package/public/dist/assets/{chunk-LIHQZDEY-Xw9ZX8of.js → chunk-BR22UD5L-CVuYkAd1.js} +1 -1
- package/public/dist/assets/{chunk-BSJP7CBP-DnSYKjii.js → chunk-BSJP7CBP-B47GpxcW.js} +1 -1
- package/public/dist/assets/chunk-CSCIHK7Q-CAE1p4Em.js +123 -0
- package/public/dist/assets/chunk-FHYWG6QK-CxZt-yZZ.js +1 -0
- package/public/dist/assets/{chunk-FMBD7UC4-6yXYicjw.js → chunk-FMBD7UC4-CwqBlx0l.js} +1 -1
- package/public/dist/assets/chunk-KSCS5N6A-D9a4ZkOy.js +10 -0
- package/public/dist/assets/{chunk-ZZ45TVLE-D5oxCC1O.js → chunk-L5ZTLDWV-D208QbfC.js} +1 -1
- package/public/dist/assets/{chunk-336JU56O-CAt5aBOe.js → chunk-LZXEDZCA-CE2KFduj.js} +1 -1
- package/public/dist/assets/chunk-MPE355IW-Bp4qAOUf.js +1 -0
- package/public/dist/assets/chunk-MZUSXYTE-DAU-v-0c.js +1 -0
- package/public/dist/assets/chunk-N66VUXT2-CpPz1L5u.js +1 -0
- package/public/dist/assets/chunk-ND2GUHAM-zZ7h1CPf.js +1 -0
- package/public/dist/assets/chunk-NNHCCRGN-BaiX9a5F.js +159 -0
- package/public/dist/assets/{chunk-X2U36JSP-CoMFMVNF.js → chunk-NZK2D7GU-CTqFQ8K5.js} +1 -1
- package/public/dist/assets/chunk-O5CBEL6O-BTuvXKFi.js +11 -0
- package/public/dist/assets/chunk-PUPMXCY4-ppZvktf-.js +1 -0
- package/public/dist/assets/chunk-QZHKN3VN-CBAtPPT7.js +1 -0
- package/public/dist/assets/chunk-UIBZB4QT-rJZEVBX0.js +1 -0
- package/public/dist/assets/chunk-WCWK7LTN-CGvUyB8h.js +1 -0
- package/public/dist/assets/chunk-WU5MYG2G-C3fKlSvP.js +1 -0
- package/public/dist/assets/{chunk-XPW4576I-CmAz5C-j.js → chunk-XPW4576I-BaQfzRci.js} +1 -1
- package/public/dist/assets/classDiagram-4FO5ZUOK-Cb-qL5u3.js +1 -0
- package/public/dist/assets/classDiagram-v2-Q7XG4LA2-BPhGdj15.js +1 -0
- package/public/dist/assets/constants-BxG09J6S.js +1 -0
- package/public/dist/assets/cose-bilkent-S5V4N54A-D1zmarou.js +1 -0
- package/public/dist/assets/dagre-BM42HDAG-BVkBttzA.js +4 -0
- package/public/dist/assets/dagre-DnoxfNXr.js +1 -0
- package/public/dist/assets/diagram-2AECGRRQ-Bs32KPnT.js +43 -0
- package/public/dist/assets/{diagram-5BDNPKRD-Cl4PzCD0.js → diagram-5GNKFQAL-YDYgPOQj.js} +2 -2
- package/public/dist/assets/diagram-KO2AKTUF-1tIdFl26.js +3 -0
- package/public/dist/assets/{diagram-TYMM5635-B_Xoa1Gp.js → diagram-LMA3HP47-B1y15kav.js} +1 -1
- package/public/dist/assets/diagram-OG6HWLK6-C25j1jGg.js +24 -0
- package/public/dist/assets/{dist-C9LWf2uC.js → dist-0v1UKkQ3.js} +1 -1
- package/public/dist/assets/dist-BMi_buEb.js +1 -0
- package/public/dist/assets/{dist-B6G8pbap.js → dist-BQNQk-1M.js} +1 -1
- package/public/dist/assets/{dist-CCKktDoF.js → dist-BVpa_e6W.js} +1 -1
- package/public/dist/assets/dist-BkrbW_LS.js +1 -0
- package/public/dist/assets/{dist-CkMC2PPt.js → dist-C1VqWrYZ.js} +1 -1
- package/public/dist/assets/{dist-BA7sRne4.js → dist-C3vh7d65.js} +1 -1
- package/public/dist/assets/{dist-BhzKO6nt2.js → dist-CE4s7vg82.js} +1 -1
- package/public/dist/assets/{dist-BDMNMdPF.js → dist-CjPin7Mr.js} +1 -1
- package/public/dist/assets/{dist-W7IGn2ug.js → dist-Ck6PnIlo.js} +1 -1
- package/public/dist/assets/{dist-B1rKu9eP.js → dist-CnIrGAPx.js} +1 -1
- package/public/dist/assets/{dist-CEDX2HGI.js → dist-Cv8S3FhF.js} +1 -1
- package/public/dist/assets/{dist-55MYVjjj.js → dist-D0PYXGt2.js} +1 -1
- package/public/dist/assets/{dist-C0sOT_UM.js → dist-D5GUqT-6.js} +1 -1
- package/public/dist/assets/{dist-C5S-Rbvc.js → dist-D66X8iAn.js} +1 -1
- package/public/dist/assets/dist-D815C1Fv.js +1 -0
- package/public/dist/assets/{dist-Ch6JG5jE.js → dist-DDDFJ8jG.js} +1 -1
- package/public/dist/assets/{dist-2oDfqE98.js → dist-DHQI31dn.js} +1 -1
- package/public/dist/assets/{dist-BTp_Oy_x.js → dist-DTQW91xt.js} +1 -1
- package/public/dist/assets/{dist-BuaQLcgQ.js → dist-Dm7RAaUo.js} +1 -1
- package/public/dist/assets/{dist-BJyDhGpS.js → dist-DrIWh2fi.js} +1 -1
- package/public/dist/assets/{dist-BGzHP3f8.js → dist-DzT7frM2.js} +1 -1
- package/public/dist/assets/{dist-wdLr2dSH.js → dist-Qs7HHNCC.js} +1 -1
- package/public/dist/assets/{dist-BjqyutOM.js → dist-Rs_Khtjb.js} +1 -1
- package/public/dist/assets/{dist-DdhWu7OM.js → dist-fJAyK82z.js} +1 -1
- package/public/dist/assets/{dist-G7QUHtDS.js → dist-jcptfm_T.js} +1 -1
- package/public/dist/assets/dist-sOV2kBhQ.js +1 -0
- package/public/dist/assets/{dist-BoG5I6U5.js → dist-vQskrHxt.js} +1 -1
- package/public/dist/assets/{dockerfile-CrC2HXHP.js → dockerfile-DAfh5qoE.js} +1 -1
- package/public/dist/assets/{employees-CIkIyvtL.js → employees-DRmX2RDd.js} +2 -2
- package/public/dist/assets/{erDiagram-SMLLAGMA-BvtqhMsS.js → erDiagram-TEJ5UH35-CRvCbztR.js} +6 -6
- package/public/dist/assets/{error-normalize-CkhPeQYx.js → error-normalize-CNbPE4lO.js} +1 -1
- package/public/dist/assets/eventmodeling-FCH6USID-Cq0nylxO.js +1 -0
- package/public/dist/assets/{factor-1CttFx2G.js → factor-BpoYJieo.js} +1 -1
- package/public/dist/assets/fields-DUawAHWZ.js +1 -0
- package/public/dist/assets/flowDiagram-I6XJVG4X-CzvVnib_.js +162 -0
- package/public/dist/assets/ganttDiagram-6RSMTGT7-BbUYP6iv.js +292 -0
- package/public/dist/assets/gitGraph-WXDBUCRP-DDq6-3D3.js +1 -0
- package/public/dist/assets/gitGraphDiagram-PVQCEYII-CbKdM7nW.js +106 -0
- package/public/dist/assets/graphlib-BLOO0H5r.js +1 -0
- package/public/dist/assets/info-J43DQDTF-OUnqwpUV.js +1 -0
- package/public/dist/assets/infoDiagram-5YYISTIA-BrZmg1At.js +2 -0
- package/public/dist/assets/{ishikawaDiagram-UXIWVN3A-DZW-Nqsf.js → ishikawaDiagram-YF4QCWOH-BDWXqJi5.js} +2 -2
- package/public/dist/assets/javascript-CZjRNq5R.js +1 -0
- package/public/dist/assets/{journeyDiagram-VCZTEJTY-ByVRJxVF.js → journeyDiagram-JHISSGLW-CPFRd_M3.js} +6 -6
- package/public/dist/assets/{jsx-runtime-BjL7qHh8.js → jsx-runtime-BZmCptaP.js} +1 -1
- package/public/dist/assets/{kanban-definition-6JOO6SKY-xwN0YCW2.js → kanban-definition-UN3LZRKU-BcQbBplS.js} +10 -10
- package/public/dist/assets/katex-CF5bGce6.js +1 -0
- package/public/dist/assets/manager-B5OmizBL.css +1 -0
- package/public/dist/assets/manager-Cs3eMBcx.js +25 -0
- package/public/dist/assets/{memory-CnBc2_Va.js → memory-BA-ki3gn.js} +1 -1
- package/public/dist/assets/memory-DLQbyBA3.js +1 -0
- package/public/dist/assets/mermaid-loader-BVPsKrpr.js +1 -0
- package/public/dist/assets/mermaid-parser.core-C62NUJRb.js +3 -0
- package/public/dist/assets/mermaid.core-ArqR5iFa.js +9 -0
- package/public/dist/assets/mermaid.core-BAwu4U2Y.js +1 -0
- package/public/dist/assets/{mindmap-definition-QFDTVHPH-Chqgsh1N.js → mindmap-definition-RKZ34NQL-C35cGkNU.js} +29 -29
- package/public/dist/assets/{nsis-_CjIiUyF.js → nsis-Ch4QINLN.js} +1 -1
- package/public/dist/assets/packet-YPE3B663-Bb9hBQ06.js +1 -0
- package/public/dist/assets/{page-shell-CTxVDJ8Y.js → page-shell-CVAobxbP.js} +1 -1
- package/public/dist/assets/pie-LRSECV5Y-CNRQnRNZ.js +1 -0
- package/public/dist/assets/pieDiagram-4H26LBE5-B8C_hoqJ.js +30 -0
- package/public/dist/assets/provider-icons-dxT69zGg.js +8 -0
- package/public/dist/assets/{pug-CbR8lCtK.js → pug-CXYqmmpP.js} +1 -1
- package/public/dist/assets/quadrantDiagram-W4KKPZXB-BEPrine5.js +7 -0
- package/public/dist/assets/radar-GUYGQ44K-BxngU2v0.js +1 -0
- package/public/dist/assets/{render-lpTpN1El.js → render-C7_e0J_X.js} +3 -3
- package/public/dist/assets/{requirementDiagram-MS252O5E-wnPtv0LG.js → requirementDiagram-4Y6WPE33-ClDDon9c.js} +4 -4
- package/public/dist/assets/rolldown-runtime-XQCOJYun.js +1 -0
- package/public/dist/assets/sankeyDiagram-5OEKKPKP-Bjs3OE-1.js +40 -0
- package/public/dist/assets/sequenceDiagram-3UESZ5HK-BM8IAaEe.js +162 -0
- package/public/dist/assets/settings-DjyKdqev.js +1 -0
- package/public/dist/assets/settings-pUJzyeX2.js +42 -0
- package/public/dist/assets/{sidebar-Cwt0FxQl.js → sidebar-CO9Qjj6v.js} +2 -2
- package/public/dist/assets/skills-CX3qJ77s.js +1 -0
- package/public/dist/assets/{skills-DDmTyywh.js → skills-Dq7fD8I3.js} +1 -1
- package/public/dist/assets/{slash-commands-D5y5AVvS.js → slash-commands-DRsKtuGT.js} +1 -1
- package/public/dist/assets/slash-commands-UbS8w9ij.js +1 -0
- package/public/dist/assets/stateDiagram-AJRCARHV-BvNABuXE.js +1 -0
- package/public/dist/assets/stateDiagram-v2-BHNVJYJU-CCIo81qy.js +1 -0
- package/public/dist/assets/{timeline-definition-GMOUNBTQ-DUz1-iOx.js → timeline-definition-PNZ67QCA-CIvTvac3.js} +8 -8
- package/public/dist/assets/trace-drawer-DDFdU07_.js +15 -0
- package/public/dist/assets/treeView-BLDUP644-cXRzPGzz.js +1 -0
- package/public/dist/assets/treemap-LRROVOQU-BsZE5HPE.js +1 -0
- package/public/dist/assets/ui-CeBmBBZM.js +140 -0
- package/public/dist/assets/ui-TMXjvH0r.js +1 -0
- package/public/dist/assets/{vendor-render-DEStnpJ8.js → vendor-render-DCb9B75Q.js} +38 -37
- package/public/dist/assets/vendor-utils-BnxL60_-.js +1 -0
- package/public/dist/assets/vennDiagram-CIIHVFJN-C5cbS2KC.js +34 -0
- package/public/dist/assets/wardley-L42UT6IY-D_qm0cZD.js +1 -0
- package/public/dist/assets/{wardleyDiagram-NUSXRM2D-CLAhOzap.js → wardleyDiagram-YWT4CUSO-BsRBBGFP.js} +61 -3
- package/public/dist/assets/{wiki-link-suggestions-LQuYT22G.js → wiki-link-suggestions-BHwNQXT_.js} +2 -2
- package/public/dist/assets/{xychartDiagram-5P7HB3ND-DLnY9i8z.js → xychartDiagram-2RQKCTM6-B6rqui6F.js} +6 -6
- package/public/dist/index.html +102 -3
- package/public/dist/manager/index.html +2 -2
- package/public/index.html +101 -1
- package/public/js/constants.ts +72 -0
- package/public/js/diagram/iframe-renderer.ts +7 -0
- package/public/js/features/chat-scroll.ts +31 -0
- package/public/js/features/chat-search.ts +223 -0
- package/public/js/features/help-content.ts +20 -2
- package/public/js/features/help-dialog.ts +38 -2
- package/public/js/features/pending-queue.ts +6 -0
- package/public/js/features/process-block.ts +20 -0
- package/public/js/features/settings-channel.ts +3 -1
- package/public/js/features/settings-cli-status.ts +24 -3
- package/public/js/features/settings-core.ts +134 -21
- package/public/js/features/settings-types.ts +12 -1
- package/public/js/features/settings.ts +1 -1
- package/public/js/features/trace-drawer.ts +2 -1
- package/public/js/features/voice-recorder.ts +222 -42
- package/public/js/main.ts +58 -4
- package/public/js/provider-icons.ts +46 -27
- package/public/js/render/markdown.ts +6 -0
- package/public/js/ui.ts +33 -7
- package/public/js/ws.ts +5 -1
- package/public/locales/en.json +31 -7
- package/public/locales/ja.json +31 -7
- package/public/locales/ko.json +31 -7
- package/public/locales/zh.json +31 -7
- package/public/manager/src/App.tsx +19 -55
- package/public/manager/src/InstancePreview.tsx +46 -1
- package/public/manager/src/components/InstanceDetailPanel.tsx +7 -2
- package/public/manager/src/components/InstanceLogsPanel.tsx +138 -0
- package/public/manager/src/dashboard-settings/DashboardEmbeddingSection.tsx +37 -7
- package/public/manager/src/jaw-ceo/useJawCeoDashboardBridge.tsx +1 -0
- package/public/manager/src/manager-components.css +76 -0
- package/public/manager/src/preview.ts +26 -3
- package/public/manager/src/settings/fields/SelectField.tsx +51 -17
- package/public/manager/src/settings/pages/Agent.tsx +37 -2
- package/public/manager/src/settings/pages/Heartbeat.tsx +3 -2
- package/public/manager/src/settings/pages/Memory.tsx +3 -2
- package/public/manager/src/settings/pages/components/EmployeeRow.tsx +8 -4
- package/public/manager/src/settings/pages/components/PerCliRow.tsx +31 -5
- package/public/manager/src/settings/pages/components/agent/FlushAgentSection.tsx +4 -2
- package/public/manager/src/settings/pages/components/agent/RuntimeEmployeeRow.tsx +1 -1
- package/public/manager/src/settings/pages/components/agent/RuntimeHeader.tsx +23 -1
- package/public/manager/src/settings/pages/components/agent/agent-meta.ts +49 -0
- package/public/manager/src/settings/pages/components/employees-helpers.ts +6 -1
- package/public/manager/src/settings/pages/components/heartbeat-helpers.ts +11 -1
- package/public/manager/src/settings-controls.css +25 -0
- package/public/manager/src/usePreviewShortcutMessages.ts +30 -0
- package/public/manager/src/usePreviewSttLifecycle.ts +31 -0
- package/scripts/fresh-install-smoke.ts +1 -1
- package/scripts/install-officecli.ps1 +33 -5
- package/scripts/install-officecli.sh +52 -8
- package/scripts/install-wsl.sh +96 -24
- package/scripts/install.sh +82 -11
- package/scripts/postinstall-guard.cjs +57 -30
- package/public/dist/assets/Agent-DNpehKB2.js +0 -1
- package/public/dist/assets/DashboardEmbeddingSection-BYdGgqg7.js +0 -2
- package/public/dist/assets/Employees-CuYuTy0R.js +0 -1
- package/public/dist/assets/Heartbeat-C-vq02MW.js +0 -1
- package/public/dist/assets/Memory-BPKWJDXK.js +0 -1
- package/public/dist/assets/ModelProvider-Bd6vGkXT.js +0 -1
- package/public/dist/assets/agent-meta-C1pQzExf.js +0 -1
- package/public/dist/assets/app-BxsIleo0.js +0 -32
- package/public/dist/assets/app-CB9n5A77.css +0 -1
- package/public/dist/assets/architecture-YZFGNWBL-BRI-0IaU.js +0 -1
- package/public/dist/assets/architectureDiagram-Q4EWVU46-z0JCgZrJ.js +0 -36
- package/public/dist/assets/blockDiagram-DXYQGD6D-KaOz3aFS.js +0 -132
- package/public/dist/assets/channel-jLopKIgm.js +0 -1
- package/public/dist/assets/chunk-2KRD3SAO-C8hJZPJu.js +0 -1
- package/public/dist/assets/chunk-426QAEUC-atJRhvKN.js +0 -1
- package/public/dist/assets/chunk-4TB4RGXK-BD7UhIN8.js +0 -206
- package/public/dist/assets/chunk-55IACEB6-CAWcPDdr.js +0 -1
- package/public/dist/assets/chunk-5FUZZQ4R-Cg1pzs6p.js +0 -62
- package/public/dist/assets/chunk-5PVQY5BW-otv3HwE_.js +0 -2
- package/public/dist/assets/chunk-67CJDMHE-AU2iOKLT.js +0 -1
- package/public/dist/assets/chunk-7N4EOEYR-BTIS4jBw.js +0 -1
- package/public/dist/assets/chunk-AA7GKIK3-c9UUJO_T.js +0 -1
- package/public/dist/assets/chunk-CIAEETIT-Dwbln6rM.js +0 -1
- package/public/dist/assets/chunk-ENJZ2VHE-PT_jAckw.js +0 -10
- package/public/dist/assets/chunk-FOC6F5B3-BqDmFFeg.js +0 -1
- package/public/dist/assets/chunk-ICPOFSXX-P6V6jqiT.js +0 -122
- package/public/dist/assets/chunk-K5T4RW27-C42sOmZR.js +0 -27
- package/public/dist/assets/chunk-KGLVRYIC-K-BVa8b2.js +0 -1
- package/public/dist/assets/chunk-ORNJ4GCN-CEXU6WaD.js +0 -1
- package/public/dist/assets/chunk-OYMX7WX6-DmJG2z1S.js +0 -231
- package/public/dist/assets/chunk-QZHKN3VN-BkVLii_3.js +0 -1
- package/public/dist/assets/chunk-U2HBQHQK-Ny6UwUgK.js +0 -11
- package/public/dist/assets/chunk-YZCP3GAM-c7FYtZME.js +0 -1
- package/public/dist/assets/classDiagram-6PBFFD2Q-BgOyAynm.js +0 -1
- package/public/dist/assets/classDiagram-v2-HSJHXN6E-5gBdoVH9.js +0 -1
- package/public/dist/assets/constants-4A2GptQT.js +0 -1
- package/public/dist/assets/cose-bilkent-S5V4N54A-CvH6qY_r.js +0 -1
- package/public/dist/assets/dagre--20B2-ZQ.js +0 -1
- package/public/dist/assets/dagre-KV5264BT-CQ0wo0ma.js +0 -4
- package/public/dist/assets/diagram-G4DWMVQ6-_aP6kMTh.js +0 -24
- package/public/dist/assets/diagram-MMDJMWI5-J1l6Q0JG.js +0 -43
- package/public/dist/assets/dist-B1p80u1b.js +0 -1
- package/public/dist/assets/dist-BKyzWv22.js +0 -1
- package/public/dist/assets/dist-CxJpXP6s.js +0 -1
- package/public/dist/assets/dist-DNLFuTrS.js +0 -1
- package/public/dist/assets/fields-BISouxp2.js +0 -1
- package/public/dist/assets/flowDiagram-DWJPFMVM-C_F0rqqT.js +0 -162
- package/public/dist/assets/ganttDiagram-T4ZO3ILL-B5S8EZRg.js +0 -292
- package/public/dist/assets/gitGraph-7Q5UKJZL-DTTW6pxr.js +0 -1
- package/public/dist/assets/gitGraphDiagram-UUTBAWPF-DMGzYJeb.js +0 -106
- package/public/dist/assets/graphlib-CZk_Ii16.js +0 -1
- package/public/dist/assets/info-OMHHGYJF-BU-iuaSm.js +0 -1
- package/public/dist/assets/infoDiagram-42DDH7IO-dzSaYFFK.js +0 -2
- package/public/dist/assets/javascript-BhB45e0W.js +0 -1
- package/public/dist/assets/katex-DamPUmTE.js +0 -1
- package/public/dist/assets/manager-B84u-pcn.js +0 -25
- package/public/dist/assets/manager-DMg_sTEP.css +0 -1
- package/public/dist/assets/memory-BV62wlsG.js +0 -1
- package/public/dist/assets/mermaid-loader-DxFGz4EE.js +0 -1
- package/public/dist/assets/mermaid-parser.core-CMIZ0my_.js +0 -3
- package/public/dist/assets/mermaid.core-CicVBD9l.js +0 -1
- package/public/dist/assets/mermaid.core-Dj6viEzN.js +0 -11
- package/public/dist/assets/packet-4T2RLAQJ-DzmBsAf0.js +0 -1
- package/public/dist/assets/pie-ZZUOXDRM-DyG1KzTn.js +0 -1
- package/public/dist/assets/pieDiagram-DEJITSTG-DJLiSymi.js +0 -30
- package/public/dist/assets/quadrantDiagram-34T5L4WZ-qcnWmcRr.js +0 -7
- package/public/dist/assets/radar-PYXPWWZC-CEBZARUu.js +0 -1
- package/public/dist/assets/rolldown-runtime-DE9SaGGd.js +0 -1
- package/public/dist/assets/sankeyDiagram-XADWPNL6-Bn3pUd_K.js +0 -10
- package/public/dist/assets/sequenceDiagram-FGHM5R23-DfxcHSdj.js +0 -157
- package/public/dist/assets/settings-CfAXLa8a.js +0 -1
- package/public/dist/assets/settings-FWgmcubl.js +0 -40
- package/public/dist/assets/skills-D-qUVJ-e.js +0 -1
- package/public/dist/assets/slash-commands-BfI19vIz.js +0 -1
- package/public/dist/assets/stateDiagram-FHFEXIEX-CiR7P2OG.js +0 -1
- package/public/dist/assets/stateDiagram-v2-QKLJ7IA2-BaWWpysK.js +0 -1
- package/public/dist/assets/trace-drawer-DVF5F1df.js +0 -15
- package/public/dist/assets/treeView-SZITEDCU-D5-TP7Qp.js +0 -1
- package/public/dist/assets/treemap-W4RFUUIX-BQhm_ZSp.js +0 -1
- package/public/dist/assets/ui-BJXY16Dk.js +0 -140
- package/public/dist/assets/ui-BXm3OPPh.js +0 -1
- package/public/dist/assets/vendor-utils-IVTPs69f.js +0 -68
- package/public/dist/assets/vennDiagram-DHZGUBPP-CYu7SDdG.js +0 -34
- package/public/dist/assets/wardley-RL74JXVD-CpnBMRe0.js +0 -1
- package/public/manager/src/settings/pages/Embedding.tsx +0 -382
- /package/public/dist/assets/{apl-HYRstREL.js → apl-CieDeb7B.js} +0 -0
- /package/public/dist/assets/{asciiarmor-BDXCrhAK.js → asciiarmor-BRTyulZY.js} +0 -0
- /package/public/dist/assets/{asn1-CnSBhb0M.js → asn1-DoNAtQ5o.js} +0 -0
- /package/public/dist/assets/{asterisk-AqV7rnIi.js → asterisk-CR7oKPxi.js} +0 -0
- /package/public/dist/assets/{brainfuck-Dv46-iL9.js → brainfuck-abzPcrOz.js} +0 -0
- /package/public/dist/assets/{clike-GRffz5hY.js → clike-B71Zq38G.js} +0 -0
- /package/public/dist/assets/{clojure-DzgT_fqE.js → clojure-Zm0UzHPq.js} +0 -0
- /package/public/dist/assets/{cmake-Co1237r5.js → cmake-D3UNdg6L.js} +0 -0
- /package/public/dist/assets/{cobol-rUaLketb.js → cobol-4fYvwQR0.js} +0 -0
- /package/public/dist/assets/{coffeescript-DQyfHE86.js → coffeescript-Ct6bZdRU.js} +0 -0
- /package/public/dist/assets/{commonlisp-Buue1PGW.js → commonlisp-CrgXVPcd.js} +0 -0
- /package/public/dist/assets/{crystal-BMWO0kOJ.js → crystal-bGOl67VM.js} +0 -0
- /package/public/dist/assets/{css-DaxibPo5.js → css-B_EV3Xq2.js} +0 -0
- /package/public/dist/assets/{cypher-CmpGfiBR.js → cypher-DXDlHTYf.js} +0 -0
- /package/public/dist/assets/{cytoscape.esm-zT8GwLFm.js → cytoscape.esm-BK7ao2Ti.js} +0 -0
- /package/public/dist/assets/{d-qmdtoIzU.js → d-RL5ynsiz.js} +0 -0
- /package/public/dist/assets/{diff-B40m6u1h.js → diff-B5McBGjz.js} +0 -0
- /package/public/dist/assets/{dtd-569ynYVj.js → dtd-l3sK4p_C.js} +0 -0
- /package/public/dist/assets/{dylan-Dxolp30i.js → dylan-WjJGY-rW.js} +0 -0
- /package/public/dist/assets/{ebnf-BZiX9Iq3.js → ebnf-BGY79HOS.js} +0 -0
- /package/public/dist/assets/{ecl-B8F1Q0oZ.js → ecl-BKh7OE1d.js} +0 -0
- /package/public/dist/assets/{eiffel-Bv8Kvgh1.js → eiffel-Bzvlg3oK.js} +0 -0
- /package/public/dist/assets/{elm-QWXQaIis.js → elm-5_BqNmKu.js} +0 -0
- /package/public/dist/assets/{erlang-CuDGzTGm.js → erlang-BdVwz8I8.js} +0 -0
- /package/public/dist/assets/{fcl-BiFeqtHf.js → fcl-B9cnfODD.js} +0 -0
- /package/public/dist/assets/{forth-R7Uc2VcL.js → forth-wZbbnGzb.js} +0 -0
- /package/public/dist/assets/{fortran-kDRG6BzW.js → fortran-BAJZrRfU.js} +0 -0
- /package/public/dist/assets/{gas-CyRkuC5T.js → gas-D60ZhBat.js} +0 -0
- /package/public/dist/assets/{gherkin-BE0p00ey.js → gherkin-B8tKjAAi.js} +0 -0
- /package/public/dist/assets/{groovy-B_Sh3D1t.js → groovy-BAG9eJUD.js} +0 -0
- /package/public/dist/assets/{haskell-DWXgCy4o.js → haskell-Cj4TmWbg.js} +0 -0
- /package/public/dist/assets/{haxe-xGxZ54Hv.js → haxe-8chnvz-o.js} +0 -0
- /package/public/dist/assets/{http-CKv9cSBA.js → http-DDYeO71z.js} +0 -0
- /package/public/dist/assets/{idl-DmlI3XzS.js → idl-D1hY-Gp_.js} +0 -0
- /package/public/dist/assets/{javascript-j6r5uf_k.js → javascript-Sh0ZUMP2.js} +0 -0
- /package/public/dist/assets/{julia-CQSp9Qa0.js → julia-BibioBF2.js} +0 -0
- /package/public/dist/assets/{livescript-CqvtVTlb.js → livescript-CSZrB6F4.js} +0 -0
- /package/public/dist/assets/{lua-DazQKUZ0.js → lua-BvTlo5w3.js} +0 -0
- /package/public/dist/assets/{mathematica-DqhJVCs9.js → mathematica-Bexv8BWZ.js} +0 -0
- /package/public/dist/assets/{mbox-Dsyo1_UL.js → mbox-BAhbA8z2.js} +0 -0
- /package/public/dist/assets/{mirc-D7ThhoF-.js → mirc-BzT5Kh4S.js} +0 -0
- /package/public/dist/assets/{mllike-EPZ6pqQD.js → mllike-DeoJnUZQ.js} +0 -0
- /package/public/dist/assets/{modelica-PU45hbqg.js → modelica-FD_-Fxlc.js} +0 -0
- /package/public/dist/assets/{mscgen-DEnh2Ojr.js → mscgen-C-OyhbwB.js} +0 -0
- /package/public/dist/assets/{mumps-8GhR7rRa.js → mumps-BxkCDTK7.js} +0 -0
- /package/public/dist/assets/{nginx-CXwagpwp.js → nginx-2JaV__gC.js} +0 -0
- /package/public/dist/assets/{ntriples-BDQxxstw.js → ntriples--rhhCzqb.js} +0 -0
- /package/public/dist/assets/{octave-2c90WnyU.js → octave-rS4nMzRe.js} +0 -0
- /package/public/dist/assets/{oz-CO0rQ8EL.js → oz-I4fMb_NC.js} +0 -0
- /package/public/dist/assets/{pascal-CcVwOGeN.js → pascal-BEghJs8t.js} +0 -0
- /package/public/dist/assets/{path-utils-DySmCVZK.js → path-utils-r2bJIu28.js} +0 -0
- /package/public/dist/assets/{perl-B9UvGoAV.js → perl-BRO9ZFo9.js} +0 -0
- /package/public/dist/assets/{pig-Cd1f86ZJ.js → pig-L4Ii6KI0.js} +0 -0
- /package/public/dist/assets/{powershell-DV4cOnkJ.js → powershell-BBeqUCRp.js} +0 -0
- /package/public/dist/assets/{properties-DaSVPhrZ.js → properties-Boi0jF2J.js} +0 -0
- /package/public/dist/assets/{protobuf-CEtFnY22.js → protobuf-fB2aGypX.js} +0 -0
- /package/public/dist/assets/{puppet-Ca0DHfcW.js → puppet-BRmsErtO.js} +0 -0
- /package/public/dist/assets/{python-ydzCwWG-.js → python-Be4P9Dgp.js} +0 -0
- /package/public/dist/assets/{q-Cl8kzQmk.js → q-DZGhDLYt.js} +0 -0
- /package/public/dist/assets/{r-DKZPJFrD.js → r-B4NERjRM.js} +0 -0
- /package/public/dist/assets/{rough.esm-Dnk3WN4D.js → rough.esm-C0Gkx4O1.js} +0 -0
- /package/public/dist/assets/{rpm-D0lqeHoZ.js → rpm-e-QbHJ1q.js} +0 -0
- /package/public/dist/assets/{ruby-RVmtmNDw.js → ruby-BSVP_v59.js} +0 -0
- /package/public/dist/assets/{sas-CEzodAB7.js → sas-DHlU4v4g.js} +0 -0
- /package/public/dist/assets/{scheme-Pqmt6dh3.js → scheme-BGXbz5Hz.js} +0 -0
- /package/public/dist/assets/{settings-client-BN3XzwEo.js → settings-client-DPuJroyk.js} +0 -0
- /package/public/dist/assets/{shell-CLG3zy-u.js → shell-yonx6xY2.js} +0 -0
- /package/public/dist/assets/{sieve-C95IWC3O.js → sieve-ClPJUZyi.js} +0 -0
- /package/public/dist/assets/{simple-mode-B9ErAHMD.js → simple-mode-CjViblDK.js} +0 -0
- /package/public/dist/assets/{smalltalk-4cL-gRJb.js → smalltalk-CHXubeqS.js} +0 -0
- /package/public/dist/assets/{solr-CEA7oOx_.js → solr-C6q6YwPz.js} +0 -0
- /package/public/dist/assets/{sparql-w8kHjP6I.js → sparql-CcspZvEd.js} +0 -0
- /package/public/dist/assets/{spreadsheet-C8bDfTgC.js → spreadsheet-DH3a4LBS.js} +0 -0
- /package/public/dist/assets/{sql-BrKz8968.js → sql-meoY6gNi.js} +0 -0
- /package/public/dist/assets/{stex-xFw1nXeT.js → stex-D2bn6Zsh.js} +0 -0
- /package/public/dist/assets/{stylus-gS_68vPk.js → stylus-DbXGih0S.js} +0 -0
- /package/public/dist/assets/{swift-D5lXmY2d.js → swift-Ch391uOd.js} +0 -0
- /package/public/dist/assets/{tcl-D-41REtC.js → tcl-CQBgGWDP.js} +0 -0
- /package/public/dist/assets/{textile-D-Znao0j.js → textile-4i3oG3tg.js} +0 -0
- /package/public/dist/assets/{tiddlywiki-Co8lXJKd.js → tiddlywiki-CXG1-CcK.js} +0 -0
- /package/public/dist/assets/{tiki-DsiNRYMP.js → tiki-DJqKUhA-.js} +0 -0
- /package/public/dist/assets/{toml-CaVZGou4.js → toml-C1FnyICQ.js} +0 -0
- /package/public/dist/assets/{troff-DJvDVr-d.js → troff-Cp8NvRO0.js} +0 -0
- /package/public/dist/assets/{ttcn-DAC92l4d.js → ttcn-NlmW_fji.js} +0 -0
- /package/public/dist/assets/{ttcn-cfg-C0X-mYlr.js → ttcn-cfg-BVuxfGZf.js} +0 -0
- /package/public/dist/assets/{turtle-D6WHyCrL.js → turtle-Ba9ERlnm.js} +0 -0
- /package/public/dist/assets/{vb-CEo_ccq3.js → vb-DDs4gjJb.js} +0 -0
- /package/public/dist/assets/{vbscript-B_PKDV1v.js → vbscript-gOFmdMJN.js} +0 -0
- /package/public/dist/assets/{velocity-ClKnKBLH.js → velocity-DtSNZA7i.js} +0 -0
- /package/public/dist/assets/{verilog-Pnuspgw6.js → verilog-Pldmtxe7.js} +0 -0
- /package/public/dist/assets/{vhdl-CZnyY4fs.js → vhdl-BFfSgWGp.js} +0 -0
- /package/public/dist/assets/{w3c-keyname-DJlC6DTY.js → w3c-keyname-BggQEPNo.js} +0 -0
- /package/public/dist/assets/{webidl-DHr762Dm.js → webidl-B6ZFYE2L.js} +0 -0
- /package/public/dist/assets/{xquery-5-FiyUtN.js → xquery-DhxUT98N.js} +0 -0
- /package/public/dist/assets/{yacas-GlqsXIeT.js → yacas-jSkQeF1Q.js} +0 -0
- /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
|
-
###
|
|
5
|
+
### 나만의 AI 에이전트. 2줄이면 설치 끝. 7개 AI 엔진을 하나의 대시보드에서.
|
|
6
6
|
|
|
7
7
|
[](https://npmjs.com/package/cli-jaw)
|
|
8
|
+
[](https://github.com/lidge-jun/cli-jaw/releases)
|
|
8
9
|
[](https://typescriptlang.org)
|
|
9
10
|
[](https://nodejs.org)
|
|
10
11
|
[](LICENSE)
|
|
@@ -12,197 +13,108 @@
|
|
|
12
13
|
|
|
13
14
|
[English](README.md) / **한국어** / [中文](README.zh-CN.md) / [日本語](README.ja.md)
|
|
14
15
|
|
|
15
|
-

|
|
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
|
-
|
|
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
|
|
37
|
+
jaw dashboard
|
|
74
38
|
```
|
|
75
39
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
**필요한 것**: Node.js 22 이상, AI CLI 인증 하나 이상 (아래 참조)
|
|
40
|
+
끝입니다. **http://localhost:3457** 을 열면 나만의 AI 에이전트가 준비됩니다. [Node.js 22+](https://nodejs.org) 필요.
|
|
79
41
|
|
|
80
|
-
>
|
|
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 —
|
|
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 —
|
|
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
|
-
|
|
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
|
-
|
|
131
|
-
jaw serve # -> http://localhost:3457
|
|
67
|
+
jaw dashboard
|
|
132
68
|
```
|
|
133
69
|
|
|
134
|
-
|
|
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>
|
|
73
|
+
<summary><b>Docker</b></summary>
|
|
146
74
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
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
|
-
|
|
158
|
-
<summary><b>Linux</b></summary>
|
|
81
|
+
---
|
|
159
82
|
|
|
160
|
-
|
|
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
|
-
|
|
167
|
-
npm install -g cli-jaw
|
|
168
|
-
jaw serve
|
|
169
|
-
```
|
|
85
|
+
CLI-JAW는 여러분이 이미 사용하는 AI 코딩 CLI — Claude, Codex, Gemini, Grok, OpenCode, Copilot — 를 **하나의 비서, 하나의 메모리, 하나의 대시보드**로 통합하는 오픈소스 플랫폼입니다.
|
|
170
86
|
|
|
171
|
-
|
|
172
|
-
best-effort로 유지합니다. 통합 설치 보장이 필요하면 WSL 원클릭 스크립트를 쓰고,
|
|
173
|
-
일반 Linux에서는 아래 명령으로 직접 확인하세요.
|
|
87
|
+
메인 CLI(Boss)가 다른 CLI를 "직원"으로 부릅니다. 앱을 왔다 갔다 할 필요 없이 한 곳에서 지시하면 됩니다.
|
|
174
88
|
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
jaw doctor
|
|
179
|
-
```
|
|
89
|
+
- **API 키 불필요** — 이미 결제 중인 구독으로 라우팅
|
|
90
|
+
- **토큰당 과금 없음** — 기존 월정액 그대로
|
|
91
|
+
- **로컬 실행** — 코드가 외부로 나가지 않음
|
|
180
92
|
|
|
181
|
-
|
|
93
|
+
<div align="center">
|
|
94
|
+
|
|
95
|
+

|
|
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
|
|
221
|
-
✅ MCP
|
|
222
|
-
✅ Memory
|
|
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
|
-
|
|
144
|
+
대시보드는 `http://localhost:3457`에서 동작하는 로컬 웹앱 형태의 제어판입니다.
|
|
235
145
|
|
|
236
|
-
###
|
|
146
|
+
### 인스턴스 매니저
|
|
237
147
|
|
|
238
|
-
|
|
148
|
+
실행 중인 AI 인스턴스를 한 눈에 볼 수 있습니다. 시작, 정지, 재시작을 클릭 한 번으로 처리하고, Web UI를 대시보드 안에서 바로 프리뷰합니다.
|
|
239
149
|
|
|
240
|
-
|
|
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
|
+

|
|
249
153
|
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
154
|
+
</div>
|
|
155
|
+
|
|
156
|
+
### 칸반 보드
|
|
157
|
+
|
|
158
|
+
인스턴스 카드를 레인(Backlog → Ready → In Progress → Review → Done)에 드래그해서 배치합니다. 각 AI 세션이 무슨 작업을 하는지 추적할 수 있습니다.
|
|
159
|
+
|
|
160
|
+
<div align="center">
|
|
161
|
+
|
|
162
|
+

|
|
163
|
+
|
|
164
|
+
</div>
|
|
165
|
+
|
|
166
|
+
### 우선순위 매트릭스
|
|
167
|
+
|
|
168
|
+
할 일과 리마인더를 아이젠하워 매트릭스로 정리합니다. 중요한 것부터 처리하세요.
|
|
169
|
+
|
|
170
|
+
<div align="center">
|
|
171
|
+
|
|
172
|
+

|
|
173
|
+
|
|
174
|
+
</div>
|
|
175
|
+
|
|
176
|
+
### 노트
|
|
177
|
+
|
|
178
|
+
대시보드 안의 미니 옵시디언입니다. 폴더, 비주얼(WYSIWYG) + 원본 + 분할 편집, KaTeX(수식 렌더링), Mermaid(다이어그램), 구문 강조 코드 블록을 지원합니다.
|
|
179
|
+
|
|
180
|
+
<div align="center">
|
|
181
|
+
|
|
182
|
+

|
|
183
|
+
|
|
184
|
+
</div>
|
|
185
|
+
|
|
186
|
+
### 에이전트 상태
|
|
187
|
+
|
|
188
|
+
각 AI 엔진의 상태와 사용량을 한 눈에 모니터링합니다.
|
|
189
|
+
|
|
190
|
+
<div align="center">
|
|
191
|
+
|
|
192
|
+

|
|
193
|
+
|
|
194
|
+
</div>
|
|
256
195
|
|
|
257
196
|
---
|
|
258
197
|
|
|
259
198
|
## 직원(Employee) 시스템
|
|
260
199
|
|
|
261
|
-
|
|
200
|
+
핵심 아이디어: **메인 CLI가 다른 CLI를 워커로 부립니다.**
|
|
262
201
|
|
|
263
|
-
|
|
202
|
+
하나의 AI(Boss)에게 말하면, 전문 작업이 필요할 때 직원들에게 태스크를 배분합니다 — 각 직원은 자체 CLI와 자체 모델로 동작합니다:
|
|
264
203
|
|
|
265
204
|
```
|
|
266
|
-
|
|
267
|
-
├── 직접 응답 (간단한 작업)
|
|
268
|
-
└── 직원 디스패치
|
|
269
|
-
├── Frontend 직원 (OpenCode)
|
|
270
|
-
├── Backend 직원 (Codex)
|
|
271
|
-
└── Research 직원 (Codex)
|
|
272
|
-
└── 결과를 Boss가 취합해서 보고
|
|
273
|
-
```
|
|
205
|
+
나: "프론트엔드 스타일 고치고, API 엔드포인트도 업데이트해"
|
|
274
206
|
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
### 디스패치 방법
|
|
207
|
+
Boss (Claude) 판단 중...
|
|
208
|
+
├── Frontend 직원 (OpenCode)에게 디스패치 → "dashboard.tsx의 CSS 그리드 레이아웃 수정"
|
|
209
|
+
├── Backend 직원 (Codex)에게 디스패치 → "/api/users에서 페이지네이션 메타데이터 반환하도록 수정"
|
|
210
|
+
└── 양쪽 결과를 종합해서 보고
|
|
211
|
+
```
|
|
281
212
|
|
|
282
213
|
```bash
|
|
283
|
-
|
|
214
|
+
# 내부적으로는 이 명령어 하나:
|
|
215
|
+
jaw dispatch --agent "Frontend" --task "dashboard.tsx의 CSS 그리드 레이아웃 수정"
|
|
284
216
|
```
|
|
285
217
|
|
|
286
|
-
|
|
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
|
-
##
|
|
234
|
+
## AI 런타임
|
|
291
235
|
|
|
292
|
-
|
|
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 체인**: 한 엔진이
|
|
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
|
-
복잡한
|
|
258
|
+
복잡한 작업에 CLI-JAW는 5단계 워크플로를 사용합니다. 매 단계마다 사용자가 확인하고 승인합니다 — 승인 없이는 아무것도 진행되지 않습니다.
|
|
313
259
|
|
|
314
260
|
```
|
|
315
|
-
P (Plan)
|
|
316
|
-
⛔ ⛔
|
|
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
|
|
322
|
-
| **A
|
|
323
|
-
| **B
|
|
324
|
-
| **C
|
|
325
|
-
| **D
|
|
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
|
-
상태는
|
|
273
|
+
상태는 데이터베이스에 저장되므로 재시작해도 이어서 작업할 수 있습니다. 워커는 파일을 수정할 수 없습니다 — 검증만 합니다. `jaw orchestrate`, `/orchestrate`, `/pabcd`로 시작합니다.
|
|
328
274
|
|
|
329
275
|
---
|
|
330
276
|
|
|
331
|
-
## 메모리
|
|
277
|
+
## 메모리
|
|
332
278
|
|
|
333
|
-
|
|
279
|
+
세 개의 계층이 각기 다른 회상 범위를 담당합니다.
|
|
334
280
|
|
|
335
|
-
| 계층 |
|
|
281
|
+
| 계층 | 저장 대상 | 동작 방식 |
|
|
336
282
|
|---|---|---|
|
|
337
|
-
| **History Block** | 최근 세션 맥락 | 마지막 10개 세션(최대 8,000자)
|
|
338
|
-
| **Memory Flush** | 대화에서 추출한 지식 | 10
|
|
339
|
-
| **Soul + Task Snapshot** | 정체성과
|
|
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
|
-
## 스킬
|
|
295
|
+
## 스킬
|
|
354
296
|
|
|
355
|
-
|
|
297
|
+
230개 이상의 스킬이 개발 워크플로, 오피스 문서, 자동화, 미디어를 커버합니다.
|
|
356
298
|
|
|
357
299
|
| 분류 | 스킬 | 할 수 있는 것 |
|
|
358
300
|
|---|---|---|
|
|
359
|
-
| **오피스** | `pdf`, `docx`, `xlsx`, `pptx`, `hwp` | 문서 읽기, 생성, 편집.
|
|
360
|
-
| **자동화** | `browser`, `vision-click`, `screen-capture`, `desktop-control` | Chrome
|
|
361
|
-
| **미디어** | `video`, `imagegen`, `lecture-stt`, `tts` |
|
|
362
|
-
| **연동** | `github`, `notion`, `telegram-send`, `memory` |
|
|
363
|
-
| **시각화** | `diagram` |
|
|
364
|
-
| **개발 가이드** | `dev`, `dev-frontend`, `dev-backend`, `dev-data`, `dev-testing`, `dev-pabcd
|
|
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
|
-
|
|
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
|
|
379
|
-
| **Vision-click** |
|
|
380
|
-
| **
|
|
381
|
-
| **
|
|
382
|
-
| **Diagram 스킬** | SVG 다이어그램과 인터랙티브
|
|
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
|
-
## 메시징
|
|
331
|
+
## 메시징
|
|
387
332
|
|
|
388
333
|
### Telegram
|
|
389
334
|
|
|
390
335
|
```
|
|
391
|
-
📱 Telegram
|
|
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.
|
|
398
|
-
2.
|
|
399
|
-
3.
|
|
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과 동일한
|
|
352
|
+
Telegram과 동일한 기능 — 텍스트, 파일, 명령어. 채널/스레드 라우팅, `/api/channel/send` 정규 엔드포인트, 에이전트 결과 브로드캐스트 포워더 지원. Web UI 설정에서 세팅.
|
|
408
353
|
|
|
409
354
|
### 음성 & STT
|
|
410
355
|
|
|
411
|
-
Web(마이크 버튼), Telegram(음성 메시지), Discord에서 음성
|
|
356
|
+
Web(마이크 버튼), Telegram(음성 메시지), Discord에서 음성 입력 가능. 프로바이더: OpenAI 호환, Google Vertex AI, 커스텀 엔드포인트.
|
|
412
357
|
|
|
413
358
|
---
|
|
414
359
|
|
|
415
|
-
## MCP
|
|
360
|
+
## MCP (Model Context Protocol)
|
|
416
361
|
|
|
417
|
-
[
|
|
362
|
+
[MCP](https://modelcontextprotocol.io)는 AI 도구가 기능을 공유할 수 있게 해주는 표준입니다 — AI 에이전트용 플러그인이라고 생각하면 됩니다. CLI-JAW는 모든 엔진의 MCP 설정을 하나의 파일로 관리합니다.
|
|
418
363
|
|
|
419
364
|
```bash
|
|
420
365
|
jaw mcp install @anthropic/context7
|
|
421
|
-
#
|
|
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
|
-
|
|
436
|
-
jaw
|
|
437
|
-
jaw
|
|
438
|
-
jaw
|
|
439
|
-
jaw
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
jaw
|
|
443
|
-
jaw
|
|
444
|
-
jaw
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
jaw dispatch --agent Backend --task "..." # 직원 디스패치
|
|
448
|
-
jaw
|
|
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
|
-
## 멀티 인스턴스
|
|
454
|
-
|
|
455
|
-
### 멀티 인스턴스
|
|
417
|
+
## 멀티 인스턴스
|
|
456
418
|
|
|
457
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
| **모델 접근** |
|
|
529
|
-
|
|
|
530
|
-
| **메인 UI** |
|
|
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) +
|
|
533
|
-
|
|
|
534
|
-
|
|
|
535
|
-
| **실행 환경** | 로컬 + Docker | 로컬/Docker/SSH/Daytona/Modal
|
|
536
|
-
| **스킬** |
|
|
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
|
-
|
|
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>
|