cli-jaw 2.0.3 → 2.0.5
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 +23 -2
- package/README.ko.md +23 -2
- package/README.md +23 -2
- package/README.zh-CN.md +16 -1
- package/dist/bin/cli-jaw.js +7 -1
- package/dist/bin/cli-jaw.js.map +1 -1
- package/dist/bin/commands/browser.js +5 -0
- package/dist/bin/commands/browser.js.map +1 -1
- package/dist/bin/commands/connector.js +227 -0
- package/dist/bin/commands/connector.js.map +1 -0
- package/dist/bin/commands/dashboard-memory.js +243 -0
- package/dist/bin/commands/dashboard-memory.js.map +1 -0
- package/dist/bin/commands/dashboard.js +5 -0
- package/dist/bin/commands/dashboard.js.map +1 -1
- package/dist/bin/commands/dispatch-helpers.js +17 -0
- package/dist/bin/commands/dispatch-helpers.js.map +1 -0
- package/dist/bin/commands/dispatch.js +8 -3
- package/dist/bin/commands/dispatch.js.map +1 -1
- package/dist/bin/commands/doctor.js +34 -8
- package/dist/bin/commands/doctor.js.map +1 -1
- package/dist/bin/commands/reminders.js +105 -0
- package/dist/bin/commands/reminders.js.map +1 -0
- package/dist/bin/postinstall.js +26 -0
- package/dist/bin/postinstall.js.map +1 -1
- package/dist/server.js +71 -9
- package/dist/server.js.map +1 -1
- package/dist/src/agent/alert-escalation.js +12 -1
- package/dist/src/agent/alert-escalation.js.map +1 -1
- package/dist/src/agent/error-classifier.js +14 -8
- package/dist/src/agent/error-classifier.js.map +1 -1
- package/dist/src/agent/events.js +58 -30
- package/dist/src/agent/events.js.map +1 -1
- package/dist/src/agent/lifecycle-handler.js +81 -4
- package/dist/src/agent/lifecycle-handler.js.map +1 -1
- package/dist/src/agent/session-persistence.js +2 -0
- package/dist/src/agent/session-persistence.js.map +1 -1
- package/dist/src/agent/spawn.js +90 -12
- package/dist/src/agent/spawn.js.map +1 -1
- package/dist/src/agent/tool-timeout.js +27 -0
- package/dist/src/agent/tool-timeout.js.map +1 -0
- package/dist/src/agent/watchdog.js +20 -3
- package/dist/src/agent/watchdog.js.map +1 -1
- package/dist/src/browser/connection.js +69 -15
- package/dist/src/browser/connection.js.map +1 -1
- package/dist/src/browser/launch-policy.js +1 -1
- package/dist/src/browser/launch-policy.js.map +1 -1
- package/dist/src/browser/runtime-diagnostics.js +39 -0
- package/dist/src/browser/runtime-diagnostics.js.map +1 -1
- package/dist/src/browser/web-ai/chatgpt-model.js +102 -19
- package/dist/src/browser/web-ai/chatgpt-model.js.map +1 -1
- package/dist/src/browser/web-ai/chatgpt-response.js +30 -1
- package/dist/src/browser/web-ai/chatgpt-response.js.map +1 -1
- package/dist/src/browser/web-ai/chatgpt.js +55 -8
- package/dist/src/browser/web-ai/chatgpt.js.map +1 -1
- package/dist/src/browser/web-ai/diagnostics.js +1 -0
- package/dist/src/browser/web-ai/diagnostics.js.map +1 -1
- package/dist/src/browser/web-ai/gemini-live.js +24 -3
- package/dist/src/browser/web-ai/gemini-live.js.map +1 -1
- package/dist/src/browser/web-ai/interstitial.js +64 -0
- package/dist/src/browser/web-ai/interstitial.js.map +1 -0
- package/dist/src/browser/web-ai/session.js +12 -0
- package/dist/src/browser/web-ai/session.js.map +1 -1
- package/dist/src/browser/web-ai/watcher.js +25 -7
- package/dist/src/browser/web-ai/watcher.js.map +1 -1
- package/dist/src/cli/compact.js +5 -1
- package/dist/src/cli/compact.js.map +1 -1
- package/dist/src/cli/connector.js +60 -0
- package/dist/src/cli/connector.js.map +1 -0
- package/dist/src/cli/handlers-runtime.js +39 -0
- package/dist/src/cli/handlers-runtime.js.map +1 -1
- package/dist/src/cli/reminders.js +29 -0
- package/dist/src/cli/reminders.js.map +1 -0
- package/dist/src/core/cli-detect.js +161 -0
- package/dist/src/core/cli-detect.js.map +1 -0
- package/dist/src/core/compact.js +5 -1
- package/dist/src/core/compact.js.map +1 -1
- package/dist/src/core/config.js +9 -22
- package/dist/src/core/config.js.map +1 -1
- package/dist/src/core/db.js +14 -1
- package/dist/src/core/db.js.map +1 -1
- package/dist/src/core/settings-merge.js +2 -2
- package/dist/src/core/settings-merge.js.map +1 -1
- package/dist/src/jaw-ceo/completion.js +101 -0
- package/dist/src/jaw-ceo/completion.js.map +1 -0
- package/dist/src/jaw-ceo/confirmations.js +39 -0
- package/dist/src/jaw-ceo/confirmations.js.map +1 -0
- package/dist/src/jaw-ceo/coordinator-admin.js +295 -0
- package/dist/src/jaw-ceo/coordinator-admin.js.map +1 -0
- package/dist/src/jaw-ceo/coordinator-completions.js +201 -0
- package/dist/src/jaw-ceo/coordinator-completions.js.map +1 -0
- package/dist/src/jaw-ceo/coordinator-realtime-tools.js +108 -0
- package/dist/src/jaw-ceo/coordinator-realtime-tools.js.map +1 -0
- package/dist/src/jaw-ceo/coordinator-types.js +2 -0
- package/dist/src/jaw-ceo/coordinator-types.js.map +1 -0
- package/dist/src/jaw-ceo/coordinator-utils.js +86 -0
- package/dist/src/jaw-ceo/coordinator-utils.js.map +1 -0
- package/dist/src/jaw-ceo/coordinator-workers.js +234 -0
- package/dist/src/jaw-ceo/coordinator-workers.js.map +1 -0
- package/dist/src/jaw-ceo/coordinator.js +116 -0
- package/dist/src/jaw-ceo/coordinator.js.map +1 -0
- package/dist/src/jaw-ceo/docs-edit.js +142 -0
- package/dist/src/jaw-ceo/docs-edit.js.map +1 -0
- package/dist/src/jaw-ceo/openai-key.js +22 -0
- package/dist/src/jaw-ceo/openai-key.js.map +1 -0
- package/dist/src/jaw-ceo/policy.js +92 -0
- package/dist/src/jaw-ceo/policy.js.map +1 -0
- package/dist/src/jaw-ceo/realtime-sideband.js +372 -0
- package/dist/src/jaw-ceo/realtime-sideband.js.map +1 -0
- package/dist/src/jaw-ceo/store.js +206 -0
- package/dist/src/jaw-ceo/store.js.map +1 -0
- package/dist/src/jaw-ceo/transcript-persistence.js +28 -0
- package/dist/src/jaw-ceo/transcript-persistence.js.map +1 -0
- package/dist/src/jaw-ceo/types.js +2 -0
- package/dist/src/jaw-ceo/types.js.map +1 -0
- package/dist/src/manager/connector/audit-log.js +95 -0
- package/dist/src/manager/connector/audit-log.js.map +1 -0
- package/dist/src/manager/connector/routes.js +251 -0
- package/dist/src/manager/connector/routes.js.map +1 -0
- package/dist/src/manager/connector/types.js +2 -0
- package/dist/src/manager/connector/types.js.map +1 -0
- package/dist/src/manager/lifecycle.js +1 -1
- package/dist/src/manager/lifecycle.js.map +1 -1
- package/dist/src/manager/memory/embedding/hybrid-search.js +61 -0
- package/dist/src/manager/memory/embedding/hybrid-search.js.map +1 -0
- package/dist/src/manager/memory/embedding/index.js +6 -0
- package/dist/src/manager/memory/embedding/index.js.map +1 -0
- package/dist/src/manager/memory/embedding/provider.js +187 -0
- package/dist/src/manager/memory/embedding/provider.js.map +1 -0
- package/dist/src/manager/memory/embedding/state-machine.js +68 -0
- package/dist/src/manager/memory/embedding/state-machine.js.map +1 -0
- package/dist/src/manager/memory/embedding/sync.js +156 -0
- package/dist/src/manager/memory/embedding/sync.js.map +1 -0
- package/dist/src/manager/memory/embedding/vec-store.js +166 -0
- package/dist/src/manager/memory/embedding/vec-store.js.map +1 -0
- package/dist/src/manager/memory/federation.js +56 -0
- package/dist/src/manager/memory/federation.js.map +1 -0
- package/dist/src/manager/memory/index.js +5 -0
- package/dist/src/manager/memory/index.js.map +1 -0
- package/dist/src/manager/memory/instance-discovery.js +83 -0
- package/dist/src/manager/memory/instance-discovery.js.map +1 -0
- package/dist/src/manager/memory/result-rerank.js +28 -0
- package/dist/src/manager/memory/result-rerank.js.map +1 -0
- package/dist/src/manager/memory/types.js +2 -0
- package/dist/src/manager/memory/types.js.map +1 -0
- package/dist/src/manager/notes/routes.js +7 -0
- package/dist/src/manager/notes/routes.js.map +1 -1
- package/dist/src/manager/notes/search.js +282 -0
- package/dist/src/manager/notes/search.js.map +1 -0
- package/dist/src/manager/observability.js.map +1 -1
- package/dist/src/manager/preview-origin-proxy.js +12 -2
- package/dist/src/manager/preview-origin-proxy.js.map +1 -1
- package/dist/src/manager/process-verify.js +4 -1
- package/dist/src/manager/process-verify.js.map +1 -1
- package/dist/src/manager/registry.js +59 -1
- package/dist/src/manager/registry.js.map +1 -1
- package/dist/src/manager/reminders/api.js +16 -0
- package/dist/src/manager/reminders/api.js.map +1 -0
- package/dist/src/manager/reminders/dispatcher.js +40 -0
- package/dist/src/manager/reminders/dispatcher.js.map +1 -0
- package/dist/src/manager/reminders/due-time.js +16 -0
- package/dist/src/manager/reminders/due-time.js.map +1 -0
- package/dist/src/manager/reminders/instance-link.js +22 -0
- package/dist/src/manager/reminders/instance-link.js.map +1 -0
- package/dist/src/manager/reminders/routes.js +170 -0
- package/dist/src/manager/reminders/routes.js.map +1 -0
- package/dist/src/manager/reminders/scheduler.js +67 -0
- package/dist/src/manager/reminders/scheduler.js.map +1 -0
- package/dist/src/manager/reminders/store.js +311 -0
- package/dist/src/manager/reminders/store.js.map +1 -0
- package/dist/src/manager/routes/dashboard-memory.js +380 -0
- package/dist/src/manager/routes/dashboard-memory.js.map +1 -0
- package/dist/src/manager/server.js +209 -4
- package/dist/src/manager/server.js.map +1 -1
- package/dist/src/manager/worker-messages.js +60 -0
- package/dist/src/manager/worker-messages.js.map +1 -0
- package/dist/src/manager/workspace/routes.js +240 -0
- package/dist/src/manager/workspace/routes.js.map +1 -0
- package/dist/src/manager/workspace/store.js +369 -0
- package/dist/src/manager/workspace/store.js.map +1 -0
- package/dist/src/manager/workspace/types.js +5 -0
- package/dist/src/manager/workspace/types.js.map +1 -0
- package/dist/src/memory/bootstrap.js +8 -1
- package/dist/src/memory/bootstrap.js.map +1 -1
- package/dist/src/memory/indexing.js +245 -131
- package/dist/src/memory/indexing.js.map +1 -1
- package/dist/src/memory/keyword-expand.js +26 -4
- package/dist/src/memory/keyword-expand.js.map +1 -1
- package/dist/src/memory/reflect.js +119 -8
- package/dist/src/memory/reflect.js.map +1 -1
- package/dist/src/memory/shared.js +6 -0
- package/dist/src/memory/shared.js.map +1 -1
- package/dist/src/memory/synonyms.js +60 -0
- package/dist/src/memory/synonyms.js.map +1 -0
- package/dist/src/orchestrator/gateway.js +1 -1
- package/dist/src/orchestrator/gateway.js.map +1 -1
- package/dist/src/orchestrator/parser.js +3 -8
- package/dist/src/orchestrator/parser.js.map +1 -1
- package/dist/src/orchestrator/pipeline.js +8 -3
- package/dist/src/orchestrator/pipeline.js.map +1 -1
- package/dist/src/orchestrator/state-machine.js +12 -2
- package/dist/src/orchestrator/state-machine.js.map +1 -1
- package/dist/src/prompt/builder.js +35 -16
- package/dist/src/prompt/builder.js.map +1 -1
- package/dist/src/prompt/templates/a1-system.md +23 -1
- package/dist/src/reminders/jaw-reminders-bridge.js +313 -0
- package/dist/src/reminders/jaw-reminders-bridge.js.map +1 -0
- package/dist/src/reminders/types.js +7 -0
- package/dist/src/reminders/types.js.map +1 -0
- package/dist/src/routes/jaw-ceo.js +290 -0
- package/dist/src/routes/jaw-ceo.js.map +1 -0
- package/dist/src/routes/jaw-memory.js +37 -1
- package/dist/src/routes/jaw-memory.js.map +1 -1
- package/dist/src/routes/settings.js +47 -12
- package/dist/src/routes/settings.js.map +1 -1
- package/package.json +4 -1
- package/public/css/chat.css +90 -12
- package/public/css/diagram.css +9 -9
- package/public/css/modals.css +60 -1
- package/public/css/sidebar.css +18 -0
- package/public/dist/assets/{AdvancedExport-DJZ2VmBR.js → AdvancedExport-BAdZUC-6.js} +1 -1
- package/public/dist/assets/{Agent-CgpLT8IY.js → Agent-DNpehKB2.js} +1 -1
- package/public/dist/assets/{Browser-CrkiQoB8.js → Browser-BsdxDVgM.js} +1 -1
- package/public/dist/assets/{ChannelsDiscord-CVUC22D4.js → ChannelsDiscord-Dg_jto6l.js} +1 -1
- package/public/dist/assets/{ChannelsTelegram-DEatIQNM.js → ChannelsTelegram-DGyZfJGS.js} +1 -1
- package/public/dist/assets/DashboardEmbeddingSection-BYdGgqg7.js +2 -0
- package/public/dist/assets/{DashboardMeta-BKoxRc7i.js → DashboardMeta-CAH9ONTb.js} +1 -1
- package/public/dist/assets/{Display-DnNGV9Km.js → Display-DM_yvyKL.js} +1 -1
- package/public/dist/assets/{Employees-DZ2iJYKy.js → Employees-CuYuTy0R.js} +1 -1
- package/public/dist/assets/{HealthBadge-Cq2c7G9s.js → HealthBadge-Dtr-dDnw.js} +1 -1
- package/public/dist/assets/{Heartbeat-BML6eTXZ.js → Heartbeat-C-vq02MW.js} +1 -1
- package/public/dist/assets/{InlineWarn-BooBRm7o.js → InlineWarn-E64UaKFh.js} +1 -1
- package/public/dist/assets/{Mcp-BlEviQ3h.js → Mcp-Dlp2X7X7.js} +1 -1
- package/public/dist/assets/{Memory-BRyH80He.js → Memory-BPKWJDXK.js} +1 -1
- package/public/dist/assets/MilkdownWysiwygEditor-Ctww8i0L.js +160 -0
- package/public/dist/assets/{ModelProvider-DxyR7EL9.js → ModelProvider-Bd6vGkXT.js} +1 -1
- package/public/dist/assets/{Network-DDOOESh1.js → Network-Df1R2YcQ.js} +1 -1
- package/public/dist/assets/{Permissions-Br0eSbKb.js → Permissions-BKJ5K6EL.js} +1 -1
- package/public/dist/assets/{Permissions-QHkzStqQ.js → Permissions-CcWZoOVP.js} +1 -1
- package/public/dist/assets/{Profile-C79NKumk.js → Profile-DZ7xf1WZ.js} +1 -1
- package/public/dist/assets/{Prompts-BmiIDiXW.js → Prompts-Bh5DYt8e.js} +1 -1
- package/public/dist/assets/{SpeechKeys-B8304XJK.js → SpeechKeys-CQwtVxOP.js} +1 -1
- package/public/dist/assets/app-BxsIleo0.js +32 -0
- package/public/dist/assets/app-CB9n5A77.css +1 -0
- package/public/dist/assets/architecture-YZFGNWBL-BRI-0IaU.js +1 -0
- package/public/dist/assets/{architectureDiagram-Q4EWVU46-D0VjH4Hz.js → architectureDiagram-Q4EWVU46-z0JCgZrJ.js} +1 -1
- package/public/dist/assets/{blockDiagram-DXYQGD6D-CY4ROZPD.js → blockDiagram-DXYQGD6D-KaOz3aFS.js} +1 -1
- package/public/dist/assets/{c4Diagram-AHTNJAMY-CXSKBhA5.js → c4Diagram-AHTNJAMY-Bp2QLC-s.js} +1 -1
- package/public/dist/assets/channel-jLopKIgm.js +1 -0
- package/public/dist/assets/{chunk-2KRD3SAO-DKaML5Aw.js → chunk-2KRD3SAO-C8hJZPJu.js} +1 -1
- package/public/dist/assets/{chunk-336JU56O-CU3sZss9.js → chunk-336JU56O-CAt5aBOe.js} +1 -1
- package/public/dist/assets/chunk-426QAEUC-atJRhvKN.js +1 -0
- package/public/dist/assets/{chunk-4BX2VUAB-X0ZSlark.js → chunk-4BX2VUAB-Cm3KqBkS.js} +1 -1
- package/public/dist/assets/{chunk-4TB4RGXK-DxI0GIVy.js → chunk-4TB4RGXK-BD7UhIN8.js} +1 -1
- package/public/dist/assets/chunk-55IACEB6-CAWcPDdr.js +1 -0
- package/public/dist/assets/{chunk-5FUZZQ4R-BqlA0aLQ.js → chunk-5FUZZQ4R-Cg1pzs6p.js} +1 -1
- package/public/dist/assets/{chunk-5PVQY5BW-BVW1DG4s.js → chunk-5PVQY5BW-otv3HwE_.js} +1 -1
- package/public/dist/assets/{chunk-67CJDMHE-Blm2TZ-J.js → chunk-67CJDMHE-AU2iOKLT.js} +1 -1
- package/public/dist/assets/{chunk-7N4EOEYR-BoIOnnji.js → chunk-7N4EOEYR-BTIS4jBw.js} +1 -1
- package/public/dist/assets/{chunk-AA7GKIK3-Dsfi7oEW.js → chunk-AA7GKIK3-c9UUJO_T.js} +1 -1
- package/public/dist/assets/{chunk-BSJP7CBP-DMGz9IOn.js → chunk-BSJP7CBP-DnSYKjii.js} +1 -1
- package/public/dist/assets/{chunk-CIAEETIT-T5_zEp7h.js → chunk-CIAEETIT-Dwbln6rM.js} +1 -1
- package/public/dist/assets/{chunk-EDXVE4YY-DjfvQwok.js → chunk-EDXVE4YY-COudQKkJ.js} +1 -1
- package/public/dist/assets/{chunk-ENJZ2VHE-LawplD1x.js → chunk-ENJZ2VHE-PT_jAckw.js} +1 -1
- package/public/dist/assets/{chunk-FMBD7UC4-C7tckXtF.js → chunk-FMBD7UC4-6yXYicjw.js} +1 -1
- package/public/dist/assets/{chunk-FOC6F5B3-xPGbUzqY.js → chunk-FOC6F5B3-BqDmFFeg.js} +1 -1
- package/public/dist/assets/{chunk-ICPOFSXX-Cdp_Bt1o.js → chunk-ICPOFSXX-P6V6jqiT.js} +2 -2
- package/public/dist/assets/{chunk-K5T4RW27-BwIFil23.js → chunk-K5T4RW27-C42sOmZR.js} +1 -1
- package/public/dist/assets/{chunk-KGLVRYIC-BsNQ1OkZ.js → chunk-KGLVRYIC-K-BVa8b2.js} +1 -1
- package/public/dist/assets/{chunk-LIHQZDEY-DbaX7k3n.js → chunk-LIHQZDEY-Xw9ZX8of.js} +1 -1
- package/public/dist/assets/{chunk-ORNJ4GCN-C6D0ZHHr.js → chunk-ORNJ4GCN-CEXU6WaD.js} +1 -1
- package/public/dist/assets/{chunk-OYMX7WX6-C1WV9uUT.js → chunk-OYMX7WX6-DmJG2z1S.js} +1 -1
- package/public/dist/assets/chunk-QZHKN3VN-BkVLii_3.js +1 -0
- package/public/dist/assets/{chunk-U2HBQHQK-B-5yzlzA.js → chunk-U2HBQHQK-Ny6UwUgK.js} +1 -1
- package/public/dist/assets/{chunk-X2U36JSP-yL0Tpsl1.js → chunk-X2U36JSP-CoMFMVNF.js} +1 -1
- package/public/dist/assets/{chunk-XPW4576I-CeaUaSCU.js → chunk-XPW4576I-CmAz5C-j.js} +1 -1
- package/public/dist/assets/{chunk-YZCP3GAM-CASMOrQq.js → chunk-YZCP3GAM-c7FYtZME.js} +1 -1
- package/public/dist/assets/{chunk-ZZ45TVLE-B4c7TOr9.js → chunk-ZZ45TVLE-D5oxCC1O.js} +1 -1
- package/public/dist/assets/classDiagram-6PBFFD2Q-BgOyAynm.js +1 -0
- package/public/dist/assets/classDiagram-v2-HSJHXN6E-5gBdoVH9.js +1 -0
- package/public/dist/assets/{cose-bilkent-S5V4N54A-B21AcnwY.js → cose-bilkent-S5V4N54A-CvH6qY_r.js} +1 -1
- package/public/dist/assets/{dagre-DzTKkA3a.js → dagre--20B2-ZQ.js} +1 -1
- package/public/dist/assets/{dagre-KV5264BT-fAyzMxIJ.js → dagre-KV5264BT-CQ0wo0ma.js} +1 -1
- package/public/dist/assets/{diagram-5BDNPKRD-O30SB9_x.js → diagram-5BDNPKRD-Cl4PzCD0.js} +1 -1
- package/public/dist/assets/{diagram-G4DWMVQ6-DZ1S54sq.js → diagram-G4DWMVQ6-_aP6kMTh.js} +1 -1
- package/public/dist/assets/{diagram-MMDJMWI5-DRO_GSWW.js → diagram-MMDJMWI5-J1l6Q0JG.js} +1 -1
- package/public/dist/assets/{diagram-TYMM5635-BxWgQj5r.js → diagram-TYMM5635-B_Xoa1Gp.js} +1 -1
- package/public/dist/assets/{dist-W51oDoeA.js → dist-2oDfqE98.js} +1 -1
- package/public/dist/assets/{dist-BZosRD2u.js → dist-55MYVjjj.js} +1 -1
- package/public/dist/assets/dist-B1p80u1b.js +1 -0
- package/public/dist/assets/{dist-Bd9PlnQm.js → dist-B1rKu9eP.js} +1 -1
- package/public/dist/assets/{dist-Ch5VAlV9.js → dist-B6G8pbap.js} +1 -1
- package/public/dist/assets/{dist-CpUK8ypo.js → dist-BA7sRne4.js} +1 -1
- package/public/dist/assets/{dist-eU7TyC86.js → dist-BDMNMdPF.js} +1 -1
- package/public/dist/assets/{dist-DFYRUAjN.js → dist-BGzHP3f8.js} +1 -1
- package/public/dist/assets/dist-BKyzWv22.js +1 -0
- package/public/dist/assets/{dist-BNfXO3Yr.js → dist-BTp_Oy_x.js} +1 -1
- package/public/dist/assets/{dist-BD0UXfgF2.js → dist-BhzKO6nt2.js} +1 -1
- package/public/dist/assets/{dist-BUnPYbK3.js → dist-BjqyutOM.js} +1 -1
- package/public/dist/assets/dist-BoG5I6U5.js +1 -0
- package/public/dist/assets/{dist-yHP6L0Ty.js → dist-BuaQLcgQ.js} +1 -1
- package/public/dist/assets/{dist-DZsFVYF4.js → dist-C0sOT_UM.js} +5 -5
- package/public/dist/assets/{dist-CIuXW-sc.js → dist-C5S-Rbvc.js} +1 -1
- package/public/dist/assets/{dist-Db16ogVk.js → dist-C9LWf2uC.js} +1 -1
- package/public/dist/assets/{dist-urPTQzXL.js → dist-CCKktDoF.js} +1 -1
- package/public/dist/assets/{dist-D7bCuS3f.js → dist-CEDX2HGI.js} +1 -1
- package/public/dist/assets/dist-Ch6JG5jE.js +23 -0
- package/public/dist/assets/{dist-SU-YTAIg.js → dist-CkMC2PPt.js} +1 -1
- package/public/dist/assets/dist-CxJpXP6s.js +1 -0
- package/public/dist/assets/dist-DNLFuTrS.js +1 -0
- package/public/dist/assets/{dist-CL4PTYWf.js → dist-DdhWu7OM.js} +1 -1
- package/public/dist/assets/{dist-D6cUXP7K.js → dist-G7QUHtDS.js} +1 -1
- package/public/dist/assets/{dist-UYn7T-GH.js → dist-W7IGn2ug.js} +1 -1
- package/public/dist/assets/{dist-Cp42cMcI.js → dist-wdLr2dSH.js} +1 -1
- package/public/dist/assets/{dockerfile-zC7EsydA.js → dockerfile-CrC2HXHP.js} +1 -1
- package/public/dist/assets/employees-CIkIyvtL.js +33 -0
- package/public/dist/assets/{erDiagram-SMLLAGMA-oYlCN-2d.js → erDiagram-SMLLAGMA-BvtqhMsS.js} +1 -1
- package/public/dist/assets/{error-normalize-5n-zlEQ3.js → error-normalize-CkhPeQYx.js} +1 -1
- package/public/dist/assets/esm-BmJkIat2.js +4 -0
- package/public/dist/assets/{factor-DSufIRGh.js → factor-1CttFx2G.js} +1 -1
- package/public/dist/assets/{fields-BtncIZYA.js → fields-BISouxp2.js} +1 -1
- package/public/dist/assets/{flowDiagram-DWJPFMVM-er6Wfb34.js → flowDiagram-DWJPFMVM-C_F0rqqT.js} +1 -1
- package/public/dist/assets/{ganttDiagram-T4ZO3ILL-Co2j1qn3.js → ganttDiagram-T4ZO3ILL-B5S8EZRg.js} +1 -1
- package/public/dist/assets/gitGraph-7Q5UKJZL-DTTW6pxr.js +1 -0
- package/public/dist/assets/{gitGraphDiagram-UUTBAWPF-clYndUgV.js → gitGraphDiagram-UUTBAWPF-DMGzYJeb.js} +1 -1
- package/public/dist/assets/{graphlib-BjOif-SH.js → graphlib-CZk_Ii16.js} +1 -1
- package/public/dist/assets/idb-cache-BnZfG5FD.js +1 -0
- package/public/dist/assets/info-OMHHGYJF-BU-iuaSm.js +1 -0
- package/public/dist/assets/{infoDiagram-42DDH7IO-uYs7OoSA.js → infoDiagram-42DDH7IO-dzSaYFFK.js} +1 -1
- package/public/dist/assets/{ishikawaDiagram-UXIWVN3A-32bIEtCb.js → ishikawaDiagram-UXIWVN3A-DZW-Nqsf.js} +1 -1
- package/public/dist/assets/javascript-BhB45e0W.js +1 -0
- package/public/dist/assets/{journeyDiagram-VCZTEJTY-hBNsU7mK.js → journeyDiagram-VCZTEJTY-ByVRJxVF.js} +1 -1
- package/public/dist/assets/{kanban-definition-6JOO6SKY-DoepMHBI.js → kanban-definition-6JOO6SKY-xwN0YCW2.js} +1 -1
- package/public/dist/assets/katex-DamPUmTE.js +1 -0
- package/public/dist/assets/manager-B84u-pcn.js +25 -0
- package/public/dist/assets/manager-DMg_sTEP.css +1 -0
- package/public/dist/assets/memory-BV62wlsG.js +1 -0
- package/public/dist/assets/{memory-CsMNkYtv.js → memory-CnBc2_Va.js} +1 -1
- package/public/dist/assets/mermaid-loader-DxFGz4EE.js +1 -0
- package/public/dist/assets/{mermaid-parser.core-CrXy-45O.js → mermaid-parser.core-CMIZ0my_.js} +1 -1
- package/public/dist/assets/mermaid-preprocess-p7OIpOon.js +5 -0
- package/public/dist/assets/mermaid.core-CicVBD9l.js +1 -0
- package/public/dist/assets/{mermaid.core-DYApH8sc.js → mermaid.core-Dj6viEzN.js} +2 -2
- package/public/dist/assets/{mindmap-definition-QFDTVHPH-C-QWWjaf.js → mindmap-definition-QFDTVHPH-Chqgsh1N.js} +1 -1
- package/public/dist/assets/{nsis-DLskXEqR.js → nsis-_CjIiUyF.js} +1 -1
- package/public/dist/assets/packet-4T2RLAQJ-DzmBsAf0.js +1 -0
- package/public/dist/assets/{page-shell-D5tbivHH.js → page-shell-CTxVDJ8Y.js} +1 -1
- package/public/dist/assets/pie-ZZUOXDRM-DyG1KzTn.js +1 -0
- package/public/dist/assets/{pieDiagram-DEJITSTG-DvMWxH5R.js → pieDiagram-DEJITSTG-DJLiSymi.js} +1 -1
- package/public/dist/assets/{pug-B2rz0Rz1.js → pug-CbR8lCtK.js} +1 -1
- package/public/dist/assets/{quadrantDiagram-34T5L4WZ-DjoQDyzO.js → quadrantDiagram-34T5L4WZ-qcnWmcRr.js} +1 -1
- package/public/dist/assets/radar-PYXPWWZC-CEBZARUu.js +1 -0
- package/public/dist/assets/render-lpTpN1El.js +28 -0
- package/public/dist/assets/{requirementDiagram-MS252O5E-sQav3xIA.js → requirementDiagram-MS252O5E-wnPtv0LG.js} +1 -1
- package/public/dist/assets/{sankeyDiagram-XADWPNL6-DkdEFMeo.js → sankeyDiagram-XADWPNL6-Bn3pUd_K.js} +1 -1
- package/public/dist/assets/{sequenceDiagram-FGHM5R23-kaplo282.js → sequenceDiagram-FGHM5R23-DfxcHSdj.js} +1 -1
- package/public/dist/assets/settings-CfAXLa8a.js +1 -0
- package/public/dist/assets/{settings-BH213Yv3.js → settings-FWgmcubl.js} +8 -8
- package/public/dist/assets/sidebar-Cwt0FxQl.js +14 -0
- package/public/dist/assets/skills-D-qUVJ-e.js +1 -0
- package/public/dist/assets/{skills-CQtCtHPA.js → skills-DDmTyywh.js} +2 -2
- package/public/dist/assets/slash-commands-BfI19vIz.js +1 -0
- package/public/dist/assets/{slash-commands-Dzk1xHWS.js → slash-commands-D5y5AVvS.js} +1 -1
- package/public/dist/assets/{stateDiagram-FHFEXIEX-B2L3h2aE.js → stateDiagram-FHFEXIEX-CiR7P2OG.js} +1 -1
- package/public/dist/assets/stateDiagram-v2-QKLJ7IA2-BaWWpysK.js +1 -0
- package/public/dist/assets/{timeline-definition-GMOUNBTQ-_Nnp2LU-.js → timeline-definition-GMOUNBTQ-DUz1-iOx.js} +1 -1
- package/public/dist/assets/{trace-drawer-SRKcfm2S.js → trace-drawer-DVF5F1df.js} +1 -1
- package/public/dist/assets/treeView-SZITEDCU-D5-TP7Qp.js +1 -0
- package/public/dist/assets/treemap-W4RFUUIX-BQhm_ZSp.js +1 -0
- package/public/dist/assets/ui-BJXY16Dk.js +140 -0
- package/public/dist/assets/ui-BXm3OPPh.js +1 -0
- package/public/dist/assets/{vendor-render-984tPmpy.js → vendor-render-DEStnpJ8.js} +22 -22
- package/public/dist/assets/{vennDiagram-DHZGUBPP-vNU8EDoW.js → vennDiagram-DHZGUBPP-CYu7SDdG.js} +1 -1
- package/public/dist/assets/wardley-RL74JXVD-CpnBMRe0.js +1 -0
- package/public/dist/assets/{wardleyDiagram-NUSXRM2D-DB2wK0zr.js → wardleyDiagram-NUSXRM2D-CLAhOzap.js} +1 -1
- package/public/dist/assets/wiki-link-suggestions-LQuYT22G.js +23 -0
- package/public/dist/assets/{xychartDiagram-5P7HB3ND-CisgDiJM.js → xychartDiagram-5P7HB3ND-DLnY9i8z.js} +1 -1
- package/public/dist/index.html +36 -12
- package/public/dist/manager/index.html +2 -2
- package/public/index.html +34 -10
- package/public/js/features/chat-messages.ts +132 -0
- package/public/js/features/chat-scroll.ts +226 -0
- package/public/js/features/chat.ts +6 -1
- package/public/js/features/employees.ts +4 -1
- package/public/js/features/help-content.ts +11 -1
- package/public/js/features/help-dialog.ts +78 -17
- package/public/js/features/message-actions.ts +157 -0
- package/public/js/features/message-history.ts +138 -0
- package/public/js/features/message-item-html.ts +34 -0
- package/public/js/features/preview-shortcut-bridge.ts +29 -0
- package/public/js/features/process-block-dom.ts +175 -0
- package/public/js/features/process-block.ts +34 -6
- package/public/js/features/process-log-adapter.ts +104 -0
- package/public/js/features/process-step-match.ts +2 -1
- package/public/js/features/settings-cli-status.ts +52 -1
- package/public/js/features/settings.ts +1 -0
- package/public/js/features/sidebar.ts +7 -1
- package/public/js/features/ui-status.ts +47 -0
- package/public/js/main.ts +10 -3
- package/public/js/render/code-copy.ts +47 -0
- package/public/js/render/delegations.ts +10 -0
- package/public/js/render/file-links.ts +150 -0
- package/public/js/render/highlight.ts +83 -0
- package/public/js/render/html.ts +26 -0
- package/public/js/render/markdown.ts +84 -0
- package/public/js/render/math.ts +76 -0
- package/public/js/render/mermaid-preprocess.ts +77 -0
- package/public/js/render/mermaid.ts +267 -0
- package/public/js/render/post-render.ts +35 -0
- package/public/js/render/sanitize.ts +51 -0
- package/public/js/render/svg-actions.ts +291 -0
- package/public/js/render.ts +17 -1081
- package/public/js/ui.ts +24 -755
- package/public/js/virtual-scroll-bootstrap.ts +23 -3
- package/public/js/virtual-scroll.ts +100 -13
- package/public/js/ws.ts +8 -3
- package/public/locales/en.json +78 -2
- package/public/locales/ja.json +76 -2
- package/public/locales/ko.json +78 -2
- package/public/locales/zh.json +76 -2
- package/public/manager/src/App.tsx +150 -258
- package/public/manager/src/AppChrome.tsx +144 -0
- package/public/manager/src/InstancePreview.tsx +18 -0
- package/public/manager/src/SidebarRailRouter.tsx +229 -0
- package/public/manager/src/api.ts +17 -0
- package/public/manager/src/components/ActivityTimeline.tsx +9 -1
- package/public/manager/src/components/ProcessControlPanel.tsx +3 -0
- package/public/manager/src/components/SidebarRail.tsx +22 -0
- package/public/manager/src/components/Workbench.tsx +17 -13
- package/public/manager/src/components/WorkbenchHeader.tsx +44 -33
- package/public/manager/src/components/WorkspaceLayout.tsx +3 -0
- package/public/manager/src/dashboard-board/DashboardBoardSidebar.tsx +1 -1
- package/public/manager/src/dashboard-board/DashboardBoardWorkspace.tsx +6 -0
- package/public/manager/src/dashboard-features.ts +4 -1
- package/public/manager/src/dashboard-reminders/DashboardRemindersSidebar.tsx +157 -0
- package/public/manager/src/dashboard-reminders/DashboardRemindersWorkspace.tsx +502 -0
- package/public/manager/src/dashboard-reminders/InlineReminderTitle.tsx +78 -0
- package/public/manager/src/dashboard-reminders/ReminderDetailPopover.tsx +118 -0
- package/public/manager/src/dashboard-reminders/reminder-order.ts +45 -0
- package/public/manager/src/dashboard-reminders/reminders-api.ts +126 -0
- package/public/manager/src/dashboard-reminders/reminders-view-model.ts +63 -0
- package/public/manager/src/dashboard-reminders/useDashboardReminderDrag.ts +55 -0
- package/public/manager/src/dashboard-reminders/useRemindersFeed.ts +72 -0
- package/public/manager/src/dashboard-schedule/DashboardScheduleWorkspace.tsx +10 -4
- package/public/manager/src/dashboard-settings/DashboardEmbeddingSection.tsx +350 -0
- package/public/manager/src/dashboard-settings/DashboardSettingsSidebar.tsx +6 -2
- package/public/manager/src/dashboard-settings/DashboardSettingsWorkspace.tsx +217 -6
- package/public/manager/src/dashboard-settings/dashboard-settings-ui.ts +2 -0
- package/public/manager/src/dashboard-url-state.ts +15 -0
- package/public/manager/src/help/HelpDrawer.tsx +5 -6
- package/public/manager/src/help/HelpTopicButton.tsx +23 -0
- package/public/manager/src/help/help-shortcuts.ts +7 -0
- package/public/manager/src/help/helpContent.tsx +155 -5
- package/public/manager/src/hooks/useDashboardView.ts +12 -1
- package/public/manager/src/hooks/useInstanceMessageEvents.ts +3 -1
- package/public/manager/src/jaw-ceo/JawCeoConsole.tsx +108 -0
- package/public/manager/src/jaw-ceo/JawCeoConsolePanels.tsx +331 -0
- package/public/manager/src/jaw-ceo/JawCeoSettingsPanel.tsx +94 -0
- package/public/manager/src/jaw-ceo/JawCeoTabs.tsx +28 -0
- package/public/manager/src/jaw-ceo/JawCeoVoiceOverlay.tsx +34 -0
- package/public/manager/src/jaw-ceo/JawCeoWorkbenchButton.tsx +61 -0
- package/public/manager/src/jaw-ceo/api.ts +169 -0
- package/public/manager/src/jaw-ceo/jaw-ceo-console.css +481 -0
- package/public/manager/src/jaw-ceo/jaw-ceo-virtual.css +24 -0
- package/public/manager/src/jaw-ceo/jaw-ceo.css +429 -0
- package/public/manager/src/jaw-ceo/types.ts +164 -0
- package/public/manager/src/jaw-ceo/useJawCeo.ts +235 -0
- package/public/manager/src/jaw-ceo/useJawCeoConsoleModel.ts +67 -0
- package/public/manager/src/jaw-ceo/useJawCeoDashboardBridge.tsx +76 -0
- package/public/manager/src/jaw-ceo/useJawCeoVirtualTimeline.ts +109 -0
- package/public/manager/src/jaw-ceo/useJawCeoVoice.ts +219 -0
- package/public/manager/src/jaw-ceo/voice-cues.ts +34 -0
- package/public/manager/src/jaw-ceo/voice-session.ts +87 -0
- package/public/manager/src/main.tsx +11 -0
- package/public/manager/src/manager-components.css +7 -0
- package/public/manager/src/manager-dashboard-board-sidebar-scroll.css +64 -0
- package/public/manager/src/manager-dashboard-reminders-parity.css +156 -0
- package/public/manager/src/manager-dashboard-reminders-priority.css +164 -0
- package/public/manager/src/manager-dashboard-reminders.css +482 -0
- package/public/manager/src/manager-dashboard-schedule.css +12 -0
- package/public/manager/src/manager-dashboard-settings.css +16 -2
- package/public/manager/src/manager-help.css +27 -0
- package/public/manager/src/manager-layout.css +19 -0
- package/public/manager/src/manager-notes.css +13 -4
- package/public/manager/src/manager-p0-1-1.css +3 -3
- package/public/manager/src/manager-polish.css +7 -3
- package/public/manager/src/manager-shortcuts.ts +116 -0
- package/public/manager/src/notes/MarkdownEditor.tsx +20 -3
- package/public/manager/src/notes/MarkdownPreview.tsx +10 -1
- package/public/manager/src/notes/NotesFileTree.tsx +14 -22
- package/public/manager/src/notes/NotesFrontmatterStrip.tsx +61 -0
- package/public/manager/src/notes/NotesQuickSwitcher.tsx +187 -0
- package/public/manager/src/notes/NotesSearchSidebar.tsx +118 -0
- package/public/manager/src/notes/NotesSidebar.tsx +87 -23
- package/public/manager/src/notes/NotesWorkspace.tsx +76 -4
- package/public/manager/src/notes/frontmatter-preview.ts +16 -0
- package/public/manager/src/notes/notes-api.ts +1 -0
- package/public/manager/src/notes/notes-quick-switcher.css +151 -0
- package/public/manager/src/notes/notes-search.css +90 -0
- package/public/manager/src/notes/notes-tags.css +292 -0
- package/public/manager/src/notes/notes-types.ts +6 -0
- package/public/manager/src/notes/rendering/MarkdownRenderer.tsx +67 -3
- package/public/manager/src/notes/rendering/MermaidBlock.tsx +11 -1
- package/public/manager/src/notes/useNoteDocument.ts +14 -2
- package/public/manager/src/notes/useNotesModel.ts +39 -2
- package/public/manager/src/notes/wiki-link-codemirror-completion.ts +55 -0
- package/public/manager/src/notes/wiki-link-rendering.ts +129 -0
- package/public/manager/src/notes/wiki-link-resolver.ts +220 -0
- package/public/manager/src/notes/wiki-link-suggestions.ts +153 -0
- package/public/manager/src/notes/wysiwyg/MilkdownWysiwygEditor.tsx +126 -79
- package/public/manager/src/notes/wysiwyg/WysiwygFrontmatterPanel.tsx +93 -0
- package/public/manager/src/notes/wysiwyg/milkdown-code-block-view.ts +11 -0
- package/public/manager/src/notes/wysiwyg/milkdown-editor-utils.ts +32 -0
- package/public/manager/src/notes/wysiwyg/milkdown-math.ts +9 -0
- package/public/manager/src/notes/wysiwyg/milkdown-wikilink-completion.ts +195 -0
- package/public/manager/src/notes/wysiwyg/milkdown-wikilink-plugin.ts +152 -0
- package/public/manager/src/notes/wysiwyg/milkdown-wysiwyg-types.ts +13 -0
- package/public/manager/src/notes/wysiwyg/wysiwyg-fixtures.ts +4 -0
- package/public/manager/src/notes/wysiwyg/wysiwyg-frontmatter.ts +155 -0
- package/public/manager/src/preview.ts +20 -1
- package/public/manager/src/settings/pages/Embedding.tsx +382 -0
- package/public/manager/src/settings-embedding.css +168 -0
- package/public/manager/src/types.ts +20 -2
- package/scripts/install-officecli.sh +3 -1
- package/scripts/install-wsl.sh +107 -19
- package/public/dist/assets/MilkdownWysiwygEditor-Cm3uXfWf.js +0 -52
- package/public/dist/assets/app-Be58Cs3Y.js +0 -32
- package/public/dist/assets/app-CphocJzo.css +0 -1
- package/public/dist/assets/architecture-YZFGNWBL-VpdnYwVC.js +0 -1
- package/public/dist/assets/channel-xhp7drfS.js +0 -1
- package/public/dist/assets/chunk-426QAEUC-DadS7Aoc.js +0 -1
- package/public/dist/assets/chunk-55IACEB6-Cr281urY.js +0 -1
- package/public/dist/assets/chunk-QZHKN3VN-BYRU3VjK.js +0 -1
- package/public/dist/assets/classDiagram-6PBFFD2Q-Brk35lpl.js +0 -1
- package/public/dist/assets/classDiagram-v2-HSJHXN6E-CVZHK0Hg.js +0 -1
- package/public/dist/assets/dist-BsT5UdNP.js +0 -1
- package/public/dist/assets/dist-ClqO40BE.js +0 -1
- package/public/dist/assets/dist-CxeLAw2Y.js +0 -1
- package/public/dist/assets/dist-D2SH8nxa.js +0 -1
- package/public/dist/assets/dist-DfodGES_.js +0 -23
- package/public/dist/assets/dist-l9HH00ip.js +0 -1
- package/public/dist/assets/employees-CxdghzoD.js +0 -33
- package/public/dist/assets/gitGraph-7Q5UKJZL-CBKRRUZJ.js +0 -1
- package/public/dist/assets/idb-cache-C5ilDI6r.js +0 -1
- package/public/dist/assets/info-OMHHGYJF-BqzRlF_E.js +0 -1
- package/public/dist/assets/insert-image-markdown-DIEa-zjk.js +0 -22
- package/public/dist/assets/javascript-DT-6B2IU.js +0 -1
- package/public/dist/assets/katex-CS4w7U2j.js +0 -1
- package/public/dist/assets/manager-DEiyrWDP.css +0 -1
- package/public/dist/assets/manager-UEXd1_9T.js +0 -25
- package/public/dist/assets/memory-DXad_DPO.js +0 -1
- package/public/dist/assets/mermaid-loader-BEFIOoJn.js +0 -1
- package/public/dist/assets/mermaid.core-D0tXHgVC.js +0 -1
- package/public/dist/assets/packet-4T2RLAQJ-D7VqJs5z.js +0 -1
- package/public/dist/assets/pie-ZZUOXDRM-FbISwuBg.js +0 -1
- package/public/dist/assets/radar-PYXPWWZC-CLzM3m4R.js +0 -1
- package/public/dist/assets/render-DGQX46ei.js +0 -31
- package/public/dist/assets/settings-DXT87G2U.js +0 -1
- package/public/dist/assets/skills-5o_1v0nz.js +0 -1
- package/public/dist/assets/slash-commands-D4-hrrmh.js +0 -1
- package/public/dist/assets/stateDiagram-v2-QKLJ7IA2-DScAhoyh.js +0 -1
- package/public/dist/assets/treeView-SZITEDCU-HJajkeQK.js +0 -1
- package/public/dist/assets/treemap-W4RFUUIX-CsRQ896G.js +0 -1
- package/public/dist/assets/ui-CdRKN2S6.js +0 -141
- package/public/dist/assets/ui-n43jmg_f.js +0 -1
- package/public/dist/assets/wardley-RL74JXVD-DMQFnlJp.js +0 -1
- package/public/dist/assets/ws-CTHQFzM1.js +0 -14
- /package/public/dist/assets/{agent-meta-DHddpWHQ.js → agent-meta-C1pQzExf.js} +0 -0
- /package/public/dist/assets/{apl-1H3fJ-n9.js → apl-HYRstREL.js} +0 -0
- /package/public/dist/assets/{asciiarmor-_1f4lqIZ.js → asciiarmor-BDXCrhAK.js} +0 -0
- /package/public/dist/assets/{asn1-B_wp1Pdt.js → asn1-CnSBhb0M.js} +0 -0
- /package/public/dist/assets/{asterisk-9Hxmlnbz.js → asterisk-AqV7rnIi.js} +0 -0
- /package/public/dist/assets/{brainfuck-C-PAVNT8.js → brainfuck-Dv46-iL9.js} +0 -0
- /package/public/dist/assets/{chunk-AGHRB4JF-EroDCcEL.js → chunk-AGHRB4JF-DIMn8T3_.js} +0 -0
- /package/public/dist/assets/{clike-DAVXDhrz.js → clike-GRffz5hY.js} +0 -0
- /package/public/dist/assets/{clojure-BIpQu4v4.js → clojure-DzgT_fqE.js} +0 -0
- /package/public/dist/assets/{cmake-YlOBEvgc.js → cmake-Co1237r5.js} +0 -0
- /package/public/dist/assets/{cobol-CU8lw6mH.js → cobol-rUaLketb.js} +0 -0
- /package/public/dist/assets/{coffeescript-DKG8mABL.js → coffeescript-DQyfHE86.js} +0 -0
- /package/public/dist/assets/{commonlisp-CbWboHR_.js → commonlisp-Buue1PGW.js} +0 -0
- /package/public/dist/assets/{constants-CYjOMbjf.js → constants-4A2GptQT.js} +0 -0
- /package/public/dist/assets/{crystal-WWs3Njra.js → crystal-BMWO0kOJ.js} +0 -0
- /package/public/dist/assets/{css-C9qNtc8P.js → css-DaxibPo5.js} +0 -0
- /package/public/dist/assets/{cypher-DglnWVZO.js → cypher-CmpGfiBR.js} +0 -0
- /package/public/dist/assets/{cytoscape.esm-BH6rhG9A.js → cytoscape.esm-zT8GwLFm.js} +0 -0
- /package/public/dist/assets/{d-DiNW6jcC.js → d-qmdtoIzU.js} +0 -0
- /package/public/dist/assets/{diff-PxsoX0eK.js → diff-B40m6u1h.js} +0 -0
- /package/public/dist/assets/{dist-BRFvH5ne.js → dist-BJyDhGpS.js} +0 -0
- /package/public/dist/assets/{dtd-BSiaE0hE.js → dtd-569ynYVj.js} +0 -0
- /package/public/dist/assets/{dylan-GcUJt0a5.js → dylan-Dxolp30i.js} +0 -0
- /package/public/dist/assets/{ebnf-DSIN9Ycp.js → ebnf-BZiX9Iq3.js} +0 -0
- /package/public/dist/assets/{ecl-LP9l5g0J.js → ecl-B8F1Q0oZ.js} +0 -0
- /package/public/dist/assets/{eiffel-CqpH5qaY.js → eiffel-Bv8Kvgh1.js} +0 -0
- /package/public/dist/assets/{elm-Dw3cJ7hz.js → elm-QWXQaIis.js} +0 -0
- /package/public/dist/assets/{erlang-DL9rpJep.js → erlang-CuDGzTGm.js} +0 -0
- /package/public/dist/assets/{fcl-DUmfTiJ7.js → fcl-BiFeqtHf.js} +0 -0
- /package/public/dist/assets/{forth-BSp-YOKj.js → forth-R7Uc2VcL.js} +0 -0
- /package/public/dist/assets/{fortran-BtIRmo6s.js → fortran-kDRG6BzW.js} +0 -0
- /package/public/dist/assets/{gas-okqIRy8I.js → gas-CyRkuC5T.js} +0 -0
- /package/public/dist/assets/{gherkin-DIlSAX9i.js → gherkin-BE0p00ey.js} +0 -0
- /package/public/dist/assets/{groovy-Dn6VQ7le.js → groovy-B_Sh3D1t.js} +0 -0
- /package/public/dist/assets/{haskell-DxXJRRAf.js → haskell-DWXgCy4o.js} +0 -0
- /package/public/dist/assets/{haxe-Cf0nItU4.js → haxe-xGxZ54Hv.js} +0 -0
- /package/public/dist/assets/{http-C3zQeWFV.js → http-CKv9cSBA.js} +0 -0
- /package/public/dist/assets/{idb-cache-CjnC_K0x.js → idb-cache-CZ3JdK8r.js} +0 -0
- /package/public/dist/assets/{idl-BvqkcZq5.js → idl-DmlI3XzS.js} +0 -0
- /package/public/dist/assets/{javascript-D1nkUbtD.js → javascript-j6r5uf_k.js} +0 -0
- /package/public/dist/assets/{jsx-runtime-DOs-BiPY.js → jsx-runtime-BjL7qHh8.js} +0 -0
- /package/public/dist/assets/{julia-CCUCEuMJ.js → julia-CQSp9Qa0.js} +0 -0
- /package/public/dist/assets/{livescript-DJ-6Zja2.js → livescript-CqvtVTlb.js} +0 -0
- /package/public/dist/assets/{locale-f397XJgr.js → locale-BHMJIzyw.js} +0 -0
- /package/public/dist/assets/{lua-CxE7YJaJ.js → lua-DazQKUZ0.js} +0 -0
- /package/public/dist/assets/{mathematica-oNEp3xtK.js → mathematica-DqhJVCs9.js} +0 -0
- /package/public/dist/assets/{mbox-AvjHxuWl.js → mbox-Dsyo1_UL.js} +0 -0
- /package/public/dist/assets/{mirc-CiJGiXcS.js → mirc-D7ThhoF-.js} +0 -0
- /package/public/dist/assets/{mllike-CV8oQtvy.js → mllike-EPZ6pqQD.js} +0 -0
- /package/public/dist/assets/{modelica-M4BAagfL.js → modelica-PU45hbqg.js} +0 -0
- /package/public/dist/assets/{mscgen-3QXoaqEl.js → mscgen-DEnh2Ojr.js} +0 -0
- /package/public/dist/assets/{mumps-BZoVj2VG.js → mumps-8GhR7rRa.js} +0 -0
- /package/public/dist/assets/{nginx-CBycrar_.js → nginx-CXwagpwp.js} +0 -0
- /package/public/dist/assets/{ntriples-BzBBWYSl.js → ntriples-BDQxxstw.js} +0 -0
- /package/public/dist/assets/{octave-BeIsGSMy.js → octave-2c90WnyU.js} +0 -0
- /package/public/dist/assets/{oz-DdNR63iD.js → oz-CO0rQ8EL.js} +0 -0
- /package/public/dist/assets/{pascal-BvmM4Y7z.js → pascal-CcVwOGeN.js} +0 -0
- /package/public/dist/assets/{path-utils-BuEEtj9w.js → path-utils-DySmCVZK.js} +0 -0
- /package/public/dist/assets/{perl-DFibaVbf.js → perl-B9UvGoAV.js} +0 -0
- /package/public/dist/assets/{pig-DyLcrln-.js → pig-Cd1f86ZJ.js} +0 -0
- /package/public/dist/assets/{powershell-CDOpEwhN.js → powershell-DV4cOnkJ.js} +0 -0
- /package/public/dist/assets/{preload-helper-CMqhPRCH.js → preload-helper-DuH3-WbD.js} +0 -0
- /package/public/dist/assets/{properties-Ju2yMwi3.js → properties-DaSVPhrZ.js} +0 -0
- /package/public/dist/assets/{protobuf-CfKx2SfO.js → protobuf-CEtFnY22.js} +0 -0
- /package/public/dist/assets/{puppet-dmjzqANu.js → puppet-Ca0DHfcW.js} +0 -0
- /package/public/dist/assets/{python-D9BZyYi1.js → python-ydzCwWG-.js} +0 -0
- /package/public/dist/assets/{q-C68SC4ma.js → q-Cl8kzQmk.js} +0 -0
- /package/public/dist/assets/{r-DP6KYC7N.js → r-DKZPJFrD.js} +0 -0
- /package/public/dist/assets/{rough.esm-BRGGwqOp.js → rough.esm-Dnk3WN4D.js} +0 -0
- /package/public/dist/assets/{rpm-DH2Z4z_v.js → rpm-D0lqeHoZ.js} +0 -0
- /package/public/dist/assets/{ruby-CwiqsW2a.js → ruby-RVmtmNDw.js} +0 -0
- /package/public/dist/assets/{sas-Btq5K1IU.js → sas-CEzodAB7.js} +0 -0
- /package/public/dist/assets/{scheme-BvG_RNGf.js → scheme-Pqmt6dh3.js} +0 -0
- /package/public/dist/assets/{settings-client-ajlwI-oK.js → settings-client-BN3XzwEo.js} +0 -0
- /package/public/dist/assets/{shell-waWIPbLL.js → shell-CLG3zy-u.js} +0 -0
- /package/public/dist/assets/{sieve-wIycBENd.js → sieve-C95IWC3O.js} +0 -0
- /package/public/dist/assets/{simple-mode-lHvrAolQ.js → simple-mode-B9ErAHMD.js} +0 -0
- /package/public/dist/assets/{smalltalk-SHoYQOtw.js → smalltalk-4cL-gRJb.js} +0 -0
- /package/public/dist/assets/{solr-D1Apesak.js → solr-CEA7oOx_.js} +0 -0
- /package/public/dist/assets/{sparql-BJozOrmN.js → sparql-w8kHjP6I.js} +0 -0
- /package/public/dist/assets/{spreadsheet-71jLW2fq.js → spreadsheet-C8bDfTgC.js} +0 -0
- /package/public/dist/assets/{sql-BaHU6gLz.js → sql-BrKz8968.js} +0 -0
- /package/public/dist/assets/{stex-BuVGLRtt.js → stex-xFw1nXeT.js} +0 -0
- /package/public/dist/assets/{stylus-Cqweyusm.js → stylus-gS_68vPk.js} +0 -0
- /package/public/dist/assets/{swift-Dx3m4XfV.js → swift-D5lXmY2d.js} +0 -0
- /package/public/dist/assets/{tcl-5yXjCZ8e.js → tcl-D-41REtC.js} +0 -0
- /package/public/dist/assets/{textile-9HVfsYV6.js → textile-D-Znao0j.js} +0 -0
- /package/public/dist/assets/{tiddlywiki-DlSf8L__.js → tiddlywiki-Co8lXJKd.js} +0 -0
- /package/public/dist/assets/{tiki-CDZRH0A4.js → tiki-DsiNRYMP.js} +0 -0
- /package/public/dist/assets/{toml-BgjfE0Y7.js → toml-CaVZGou4.js} +0 -0
- /package/public/dist/assets/{troff-B4ZrJIrZ.js → troff-DJvDVr-d.js} +0 -0
- /package/public/dist/assets/{ttcn-BJIiaYhP.js → ttcn-DAC92l4d.js} +0 -0
- /package/public/dist/assets/{ttcn-cfg-PZp_QKQg.js → ttcn-cfg-C0X-mYlr.js} +0 -0
- /package/public/dist/assets/{turtle--ft5y7IN.js → turtle-D6WHyCrL.js} +0 -0
- /package/public/dist/assets/{vb-DL6cecZs.js → vb-CEo_ccq3.js} +0 -0
- /package/public/dist/assets/{vbscript-Bb1xiv7E.js → vbscript-B_PKDV1v.js} +0 -0
- /package/public/dist/assets/{velocity-DKS9ZfbJ.js → velocity-ClKnKBLH.js} +0 -0
- /package/public/dist/assets/{vendor-utils-CWelFt6C.js → vendor-utils-IVTPs69f.js} +0 -0
- /package/public/dist/assets/{verilog-DSfhYFaT.js → verilog-Pnuspgw6.js} +0 -0
- /package/public/dist/assets/{vhdl-CFTSUmh9.js → vhdl-CZnyY4fs.js} +0 -0
- /package/public/dist/assets/{w3c-keyname-IiiZScED.js → w3c-keyname-DJlC6DTY.js} +0 -0
- /package/public/dist/assets/{webidl-C-IpKmuN.js → webidl-DHr762Dm.js} +0 -0
- /package/public/dist/assets/{xquery-9pXYEith.js → xquery-5-FiyUtN.js} +0 -0
- /package/public/dist/assets/{yacas-CqSYoSTv.js → yacas-GlqsXIeT.js} +0 -0
- /package/public/dist/assets/{z80-BltHQfm4.js → z80-CI7N40Oo.js} +0 -0
|
@@ -1,12 +1,18 @@
|
|
|
1
|
-
import { useEffect, type ReactNode } from 'react';
|
|
2
|
-
import
|
|
1
|
+
import { Suspense, lazy, useEffect, type ReactNode } from 'react';
|
|
2
|
+
import { formatShortcut, MANAGER_SHORTCUT_ACTIONS } from '../manager-shortcuts';
|
|
3
|
+
|
|
4
|
+
const LazyEmbedding = lazy(() => import('./DashboardEmbeddingSection').then(m => ({ default: m.DashboardEmbeddingSection })));
|
|
5
|
+
import { HelpTopicButton } from '../help/HelpTopicButton';
|
|
6
|
+
import type { HelpTopicId } from '../help/helpContent';
|
|
7
|
+
import type { DashboardLocale, DashboardRegistryUi, DashboardShortcutAction } from '../types';
|
|
3
8
|
import type { DashboardActivityTitleSupport } from './activity-title-support';
|
|
4
9
|
|
|
5
10
|
type DashboardSettingsWorkspaceProps = {
|
|
6
|
-
activeSection: 'display' | 'activity';
|
|
11
|
+
activeSection: 'display' | 'activity' | 'embedding';
|
|
7
12
|
ui: DashboardRegistryUi;
|
|
8
13
|
titleSupport: DashboardActivityTitleSupport;
|
|
9
14
|
onUiPatch: (patch: Partial<DashboardRegistryUi>) => void;
|
|
15
|
+
onOpenHelpTopic: (topic: HelpTopicId) => void;
|
|
10
16
|
};
|
|
11
17
|
|
|
12
18
|
const LOCALE_OPTIONS = [
|
|
@@ -30,6 +36,8 @@ const COPY = {
|
|
|
30
36
|
displayDescription: '이 설정은 왼쪽 인스턴스 목록과 저장된 매니저 UI 환경설정에만 적용됩니다.',
|
|
31
37
|
activityTitle: '미리보기와 활동',
|
|
32
38
|
activityDescription: '최근 작업 제목은 각 인스턴스 서버의 endpoint 버전에 따라 달라집니다.',
|
|
39
|
+
embeddingTitle: '임베딩 검색',
|
|
40
|
+
embeddingDescription: '벡터 임베딩 provider를 설정하고 메모리 인덱스를 관리합니다.',
|
|
33
41
|
fields: {
|
|
34
42
|
activity: {
|
|
35
43
|
label: '최근 작업 미리보기',
|
|
@@ -56,6 +64,36 @@ const COPY = {
|
|
|
56
64
|
scope: '전체 Jaw UI',
|
|
57
65
|
description: 'i18n을 지원하는 매니저 대시보드 화면에 사용할 언어를 저장합니다.',
|
|
58
66
|
},
|
|
67
|
+
shortcuts: {
|
|
68
|
+
label: '전역 단축키',
|
|
69
|
+
scope: 'Manager dashboard',
|
|
70
|
+
description: '입력창과 에디터 바깥에서만 작동하는 Manager 이동 단축키를 켭니다.',
|
|
71
|
+
},
|
|
72
|
+
shortcutFocusInstances: {
|
|
73
|
+
label: '인스턴스 목록',
|
|
74
|
+
scope: '단축키',
|
|
75
|
+
description: 'Instances workspace로 이동합니다.',
|
|
76
|
+
},
|
|
77
|
+
shortcutFocusActiveSession: {
|
|
78
|
+
label: '활성 세션',
|
|
79
|
+
scope: '단축키',
|
|
80
|
+
description: '선택된 인스턴스의 Preview 탭으로 이동합니다.',
|
|
81
|
+
},
|
|
82
|
+
shortcutFocusNotes: {
|
|
83
|
+
label: '노트',
|
|
84
|
+
scope: '단축키',
|
|
85
|
+
description: 'Notes workspace로 이동합니다.',
|
|
86
|
+
},
|
|
87
|
+
shortcutPreviousInstance: {
|
|
88
|
+
label: '이전 인스턴스',
|
|
89
|
+
scope: '단축키',
|
|
90
|
+
description: '현재 필터 목록에서 이전 인스턴스를 선택합니다.',
|
|
91
|
+
},
|
|
92
|
+
shortcutNextInstance: {
|
|
93
|
+
label: '다음 인스턴스',
|
|
94
|
+
scope: '단축키',
|
|
95
|
+
description: '현재 필터 목록에서 다음 인스턴스를 선택합니다.',
|
|
96
|
+
},
|
|
59
97
|
},
|
|
60
98
|
support: {
|
|
61
99
|
ariaLabel: '작업 제목 출처 준비 상태',
|
|
@@ -74,6 +112,8 @@ const COPY = {
|
|
|
74
112
|
displayDescription: 'These controls only affect the left instance list and saved manager UI preferences.',
|
|
75
113
|
activityTitle: 'Preview & activity',
|
|
76
114
|
activityDescription: 'Latest activity titles depend on each instance server endpoint version.',
|
|
115
|
+
embeddingTitle: 'Embedding search',
|
|
116
|
+
embeddingDescription: 'Configure a vector embedding provider and manage the memory index.',
|
|
77
117
|
fields: {
|
|
78
118
|
activity: {
|
|
79
119
|
label: 'Recent activity preview',
|
|
@@ -100,6 +140,36 @@ const COPY = {
|
|
|
100
140
|
scope: 'Global Jaw UI',
|
|
101
141
|
description: 'Sets the saved manager dashboard locale for i18n-aware surfaces.',
|
|
102
142
|
},
|
|
143
|
+
shortcuts: {
|
|
144
|
+
label: 'Global shortcuts',
|
|
145
|
+
scope: 'Manager dashboard',
|
|
146
|
+
description: 'Enable Manager navigation shortcuts outside inputs and editors.',
|
|
147
|
+
},
|
|
148
|
+
shortcutFocusInstances: {
|
|
149
|
+
label: 'Instance list',
|
|
150
|
+
scope: 'Shortcut',
|
|
151
|
+
description: 'Move to the Instances workspace.',
|
|
152
|
+
},
|
|
153
|
+
shortcutFocusActiveSession: {
|
|
154
|
+
label: 'Active session',
|
|
155
|
+
scope: 'Shortcut',
|
|
156
|
+
description: 'Move to the selected instance Preview tab.',
|
|
157
|
+
},
|
|
158
|
+
shortcutFocusNotes: {
|
|
159
|
+
label: 'Notes',
|
|
160
|
+
scope: 'Shortcut',
|
|
161
|
+
description: 'Move to the Notes workspace.',
|
|
162
|
+
},
|
|
163
|
+
shortcutPreviousInstance: {
|
|
164
|
+
label: 'Previous instance',
|
|
165
|
+
scope: 'Shortcut',
|
|
166
|
+
description: 'Select the previous instance in the current filtered list.',
|
|
167
|
+
},
|
|
168
|
+
shortcutNextInstance: {
|
|
169
|
+
label: 'Next instance',
|
|
170
|
+
scope: 'Shortcut',
|
|
171
|
+
description: 'Select the next instance in the current filtered list.',
|
|
172
|
+
},
|
|
103
173
|
},
|
|
104
174
|
support: {
|
|
105
175
|
ariaLabel: 'Activity title source readiness',
|
|
@@ -118,6 +188,8 @@ const COPY = {
|
|
|
118
188
|
displayDescription: '这些设置只影响左侧实例列表与已保存的管理器界面偏好。',
|
|
119
189
|
activityTitle: '预览与活动',
|
|
120
190
|
activityDescription: '最近活动标题取决于各实例服务器的 endpoint 版本。',
|
|
191
|
+
embeddingTitle: '嵌入搜索',
|
|
192
|
+
embeddingDescription: '向量嵌入 Provider 设置与内存索引管理。',
|
|
121
193
|
fields: {
|
|
122
194
|
activity: {
|
|
123
195
|
label: '最近活动预览',
|
|
@@ -144,6 +216,36 @@ const COPY = {
|
|
|
144
216
|
scope: '整个 Jaw 界面',
|
|
145
217
|
description: '为支持 i18n 的管理器仪表盘界面设置已保存的语言。',
|
|
146
218
|
},
|
|
219
|
+
shortcuts: {
|
|
220
|
+
label: '全局快捷键',
|
|
221
|
+
scope: 'Manager dashboard',
|
|
222
|
+
description: '在输入框和编辑器外启用 Manager 导航快捷键。',
|
|
223
|
+
},
|
|
224
|
+
shortcutFocusInstances: {
|
|
225
|
+
label: '实例列表',
|
|
226
|
+
scope: '快捷键',
|
|
227
|
+
description: '切换到 Instances 工作区。',
|
|
228
|
+
},
|
|
229
|
+
shortcutFocusActiveSession: {
|
|
230
|
+
label: '活动会话',
|
|
231
|
+
scope: '快捷键',
|
|
232
|
+
description: '切换到已选实例的 Preview 标签。',
|
|
233
|
+
},
|
|
234
|
+
shortcutFocusNotes: {
|
|
235
|
+
label: 'Notes',
|
|
236
|
+
scope: '快捷键',
|
|
237
|
+
description: '切换到 Notes 工作区。',
|
|
238
|
+
},
|
|
239
|
+
shortcutPreviousInstance: {
|
|
240
|
+
label: '上一个实例',
|
|
241
|
+
scope: '快捷键',
|
|
242
|
+
description: '选择当前筛选列表中的上一个实例。',
|
|
243
|
+
},
|
|
244
|
+
shortcutNextInstance: {
|
|
245
|
+
label: '下一个实例',
|
|
246
|
+
scope: '快捷键',
|
|
247
|
+
description: '选择当前筛选列表中的下一个实例。',
|
|
248
|
+
},
|
|
147
249
|
},
|
|
148
250
|
support: {
|
|
149
251
|
ariaLabel: '活动标题来源就绪状态',
|
|
@@ -162,6 +264,8 @@ const COPY = {
|
|
|
162
264
|
displayDescription: 'これらの設定は左側のインスタンス一覧と保存済みのマネージャー UI 設定にのみ反映されます。',
|
|
163
265
|
activityTitle: 'プレビューとアクティビティ',
|
|
164
266
|
activityDescription: '最近のアクティビティタイトルは各インスタンスサーバーの endpoint バージョンによって変わります。',
|
|
267
|
+
embeddingTitle: 'エンベディング検索',
|
|
268
|
+
embeddingDescription: 'ベクトルエンベディング Provider の設定とメモリインデックスの管理。',
|
|
165
269
|
fields: {
|
|
166
270
|
activity: {
|
|
167
271
|
label: '最近のアクティビティのプレビュー',
|
|
@@ -188,6 +292,36 @@ const COPY = {
|
|
|
188
292
|
scope: 'Jaw UI 全体',
|
|
189
293
|
description: 'i18n 対応のマネージャーダッシュボード画面で使用する言語を保存します。',
|
|
190
294
|
},
|
|
295
|
+
shortcuts: {
|
|
296
|
+
label: 'グローバルショートカット',
|
|
297
|
+
scope: 'Manager dashboard',
|
|
298
|
+
description: '入力欄とエディタ外で Manager ナビゲーションショートカットを有効にします。',
|
|
299
|
+
},
|
|
300
|
+
shortcutFocusInstances: {
|
|
301
|
+
label: 'インスタンス一覧',
|
|
302
|
+
scope: 'ショートカット',
|
|
303
|
+
description: 'Instances ワークスペースへ移動します。',
|
|
304
|
+
},
|
|
305
|
+
shortcutFocusActiveSession: {
|
|
306
|
+
label: 'アクティブセッション',
|
|
307
|
+
scope: 'ショートカット',
|
|
308
|
+
description: '選択中インスタンスの Preview タブへ移動します。',
|
|
309
|
+
},
|
|
310
|
+
shortcutFocusNotes: {
|
|
311
|
+
label: 'Notes',
|
|
312
|
+
scope: 'ショートカット',
|
|
313
|
+
description: 'Notes ワークスペースへ移動します。',
|
|
314
|
+
},
|
|
315
|
+
shortcutPreviousInstance: {
|
|
316
|
+
label: '前のインスタンス',
|
|
317
|
+
scope: 'ショートカット',
|
|
318
|
+
description: '現在のフィルタ一覧で前のインスタンスを選択します。',
|
|
319
|
+
},
|
|
320
|
+
shortcutNextInstance: {
|
|
321
|
+
label: '次のインスタンス',
|
|
322
|
+
scope: 'ショートカット',
|
|
323
|
+
description: '現在のフィルタ一覧で次のインスタンスを選択します。',
|
|
324
|
+
},
|
|
191
325
|
},
|
|
192
326
|
support: {
|
|
193
327
|
ariaLabel: 'アクティビティタイトル取得元の準備状態',
|
|
@@ -258,6 +392,15 @@ type DashboardSettingSelectProps = {
|
|
|
258
392
|
onChange: (value: DashboardLocale) => void;
|
|
259
393
|
};
|
|
260
394
|
|
|
395
|
+
type DashboardShortcutInputProps = {
|
|
396
|
+
action: DashboardShortcutAction;
|
|
397
|
+
label: string;
|
|
398
|
+
scope: string;
|
|
399
|
+
description: string;
|
|
400
|
+
value: string;
|
|
401
|
+
onChange: (action: DashboardShortcutAction, value: string) => void;
|
|
402
|
+
};
|
|
403
|
+
|
|
261
404
|
function DashboardSettingSelect(props: DashboardSettingSelectProps) {
|
|
262
405
|
return (
|
|
263
406
|
<DashboardSettingRow id={props.id} label={props.label} scope={props.scope} description={props.description}>
|
|
@@ -275,6 +418,30 @@ function DashboardSettingSelect(props: DashboardSettingSelectProps) {
|
|
|
275
418
|
);
|
|
276
419
|
}
|
|
277
420
|
|
|
421
|
+
function DashboardShortcutInput(props: DashboardShortcutInputProps) {
|
|
422
|
+
return (
|
|
423
|
+
<DashboardSettingRow id={`dashboard-shortcut-${props.action}`} label={props.label} scope={props.scope} description={props.description}>
|
|
424
|
+
<input
|
|
425
|
+
id={`dashboard-shortcut-${props.action}`}
|
|
426
|
+
className="dashboard-settings-shortcut-input"
|
|
427
|
+
type="text"
|
|
428
|
+
value={props.value}
|
|
429
|
+
aria-label={`${props.label} shortcut`}
|
|
430
|
+
placeholder="Alt+I"
|
|
431
|
+
onChange={(event) => props.onChange(props.action, event.currentTarget.value)}
|
|
432
|
+
/>
|
|
433
|
+
</DashboardSettingRow>
|
|
434
|
+
);
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
function shortcutCopyKey(action: DashboardShortcutAction): keyof typeof COPY.ko.fields {
|
|
438
|
+
if (action === 'focusInstances') return 'shortcutFocusInstances';
|
|
439
|
+
if (action === 'focusActiveSession') return 'shortcutFocusActiveSession';
|
|
440
|
+
if (action === 'focusNotes') return 'shortcutFocusNotes';
|
|
441
|
+
if (action === 'previousInstance') return 'shortcutPreviousInstance';
|
|
442
|
+
return 'shortcutNextInstance';
|
|
443
|
+
}
|
|
444
|
+
|
|
278
445
|
function TitleSupportSummary({ support, locale }: { support: DashboardActivityTitleSupport; locale: DashboardLocale }) {
|
|
279
446
|
const total = support.ready + support.legacy + support.offline;
|
|
280
447
|
const copy = COPY[locale].support;
|
|
@@ -305,11 +472,23 @@ export function DashboardSettingsWorkspace(props: DashboardSettingsWorkspaceProp
|
|
|
305
472
|
document.documentElement.lang = locale;
|
|
306
473
|
}, [locale]);
|
|
307
474
|
|
|
475
|
+
function patchShortcut(action: DashboardShortcutAction, value: string): void {
|
|
476
|
+
props.onUiPatch({
|
|
477
|
+
dashboardShortcutKeymap: {
|
|
478
|
+
...props.ui.dashboardShortcutKeymap,
|
|
479
|
+
[action]: value,
|
|
480
|
+
},
|
|
481
|
+
});
|
|
482
|
+
}
|
|
483
|
+
|
|
308
484
|
return (
|
|
309
485
|
<main className="dashboard-settings-workspace" aria-label={copy.ariaLabel}>
|
|
310
486
|
<header className="dashboard-settings-header">
|
|
311
|
-
<
|
|
312
|
-
|
|
487
|
+
<div>
|
|
488
|
+
<span className="eyebrow">{copy.eyebrow}</span>
|
|
489
|
+
<h2>{copy.title}</h2>
|
|
490
|
+
</div>
|
|
491
|
+
<HelpTopicButton topic="settings" label="Open Settings help" onOpen={props.onOpenHelpTopic} />
|
|
313
492
|
</header>
|
|
314
493
|
{props.activeSection === 'display' ? (
|
|
315
494
|
<section className="dashboard-settings-section">
|
|
@@ -359,9 +538,31 @@ export function DashboardSettingsWorkspace(props: DashboardSettingsWorkspaceProp
|
|
|
359
538
|
description={copy.fields.language.description}
|
|
360
539
|
onChange={(next) => props.onUiPatch({ locale: next })}
|
|
361
540
|
/>
|
|
541
|
+
<DashboardSettingToggle
|
|
542
|
+
id="dashboard-shortcuts-enabled"
|
|
543
|
+
label={copy.fields.shortcuts.label}
|
|
544
|
+
scope={copy.fields.shortcuts.scope}
|
|
545
|
+
value={props.ui.dashboardShortcutsEnabled}
|
|
546
|
+
description={copy.fields.shortcuts.description}
|
|
547
|
+
onChange={(next) => props.onUiPatch({ dashboardShortcutsEnabled: next })}
|
|
548
|
+
/>
|
|
549
|
+
{MANAGER_SHORTCUT_ACTIONS.map(action => {
|
|
550
|
+
const field = copy.fields[shortcutCopyKey(action)];
|
|
551
|
+
return (
|
|
552
|
+
<DashboardShortcutInput
|
|
553
|
+
key={action}
|
|
554
|
+
action={action}
|
|
555
|
+
label={field.label}
|
|
556
|
+
scope={field.scope}
|
|
557
|
+
value={props.ui.dashboardShortcutKeymap[action]}
|
|
558
|
+
description={`${field.description} Current: ${formatShortcut(props.ui.dashboardShortcutKeymap[action])}`}
|
|
559
|
+
onChange={patchShortcut}
|
|
560
|
+
/>
|
|
561
|
+
);
|
|
562
|
+
})}
|
|
362
563
|
</div>
|
|
363
564
|
</section>
|
|
364
|
-
) : (
|
|
565
|
+
) : props.activeSection === 'activity' ? (
|
|
365
566
|
<section className="dashboard-settings-section">
|
|
366
567
|
<header>
|
|
367
568
|
<h3>{copy.activityTitle}</h3>
|
|
@@ -369,6 +570,16 @@ export function DashboardSettingsWorkspace(props: DashboardSettingsWorkspaceProp
|
|
|
369
570
|
</header>
|
|
370
571
|
<TitleSupportSummary support={props.titleSupport} locale={locale} />
|
|
371
572
|
</section>
|
|
573
|
+
) : (
|
|
574
|
+
<section className="dashboard-settings-section">
|
|
575
|
+
<header>
|
|
576
|
+
<h3>{copy.embeddingTitle}</h3>
|
|
577
|
+
<p>{copy.embeddingDescription}</p>
|
|
578
|
+
</header>
|
|
579
|
+
<Suspense fallback={<p>Loading...</p>}>
|
|
580
|
+
<LazyEmbedding />
|
|
581
|
+
</Suspense>
|
|
582
|
+
</section>
|
|
372
583
|
)}
|
|
373
584
|
</main>
|
|
374
585
|
);
|
|
@@ -27,5 +27,7 @@ export function dashboardSettingsUiFromView(
|
|
|
27
27
|
showInlineLabelEditor: view.showInlineLabelEditor,
|
|
28
28
|
showSidebarRuntimeLine: view.showSidebarRuntimeLine,
|
|
29
29
|
showSelectedRowActions: view.showSelectedRowActions,
|
|
30
|
+
dashboardShortcutsEnabled: view.dashboardShortcutsEnabled,
|
|
31
|
+
dashboardShortcutKeymap: view.dashboardShortcutKeymap,
|
|
30
32
|
};
|
|
31
33
|
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { DashboardSidebarMode } from './types';
|
|
2
|
+
|
|
3
|
+
const SIDEBAR_MODES = new Set<DashboardSidebarMode>([
|
|
4
|
+
'instances',
|
|
5
|
+
'board',
|
|
6
|
+
'schedule',
|
|
7
|
+
'reminders',
|
|
8
|
+
'notes',
|
|
9
|
+
'settings',
|
|
10
|
+
]);
|
|
11
|
+
|
|
12
|
+
export function readInitialSidebarMode(search: string): DashboardSidebarMode | null {
|
|
13
|
+
const mode = new URLSearchParams(search).get('sidebar');
|
|
14
|
+
return SIDEBAR_MODES.has(mode as DashboardSidebarMode) ? mode as DashboardSidebarMode : null;
|
|
15
|
+
}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import { useEffect, useRef } from 'react';
|
|
2
|
-
import type
|
|
3
|
-
import { HELP_CONTENT } from './helpContent';
|
|
2
|
+
import { HELP_CONTENT, type HelpTopicId } from './helpContent';
|
|
4
3
|
|
|
5
4
|
type HelpDrawerProps = {
|
|
6
5
|
open: boolean;
|
|
7
|
-
|
|
6
|
+
topic: HelpTopicId;
|
|
8
7
|
onClose: () => void;
|
|
9
8
|
};
|
|
10
9
|
|
|
11
|
-
export function HelpDrawer({ open,
|
|
10
|
+
export function HelpDrawer({ open, topic, onClose }: HelpDrawerProps) {
|
|
12
11
|
const closeRef = useRef<HTMLButtonElement | null>(null);
|
|
13
12
|
|
|
14
13
|
useEffect(() => {
|
|
@@ -22,7 +21,7 @@ export function HelpDrawer({ open, mode, onClose }: HelpDrawerProps) {
|
|
|
22
21
|
}, [open, onClose]);
|
|
23
22
|
|
|
24
23
|
if (!open) return null;
|
|
25
|
-
const entry = HELP_CONTENT[
|
|
24
|
+
const entry = HELP_CONTENT[topic];
|
|
26
25
|
return (
|
|
27
26
|
<>
|
|
28
27
|
<div className="help-drawer-overlay" onClick={onClose} aria-hidden="true" />
|
|
@@ -43,7 +42,7 @@ export function HelpDrawer({ open, mode, onClose }: HelpDrawerProps) {
|
|
|
43
42
|
</header>
|
|
44
43
|
<div className="help-drawer-body">{entry.body}</div>
|
|
45
44
|
<footer className="help-drawer-footer">
|
|
46
|
-
<span
|
|
45
|
+
<span>사이드바 도움말은 현재 모드를 따르고, ? 키는 단축키 도움말을 열어요.</span>
|
|
47
46
|
</footer>
|
|
48
47
|
</aside>
|
|
49
48
|
</>
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { HelpTopicId } from './helpContent';
|
|
2
|
+
|
|
3
|
+
type HelpTopicButtonProps = {
|
|
4
|
+
topic: HelpTopicId;
|
|
5
|
+
label: string;
|
|
6
|
+
onOpen: (topic: HelpTopicId) => void;
|
|
7
|
+
className?: string;
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
export function HelpTopicButton(props: HelpTopicButtonProps) {
|
|
11
|
+
const className = props.className ? `help-topic-button ${props.className}` : 'help-topic-button';
|
|
12
|
+
return (
|
|
13
|
+
<button
|
|
14
|
+
type="button"
|
|
15
|
+
className={className}
|
|
16
|
+
aria-label={props.label}
|
|
17
|
+
title={props.label}
|
|
18
|
+
onClick={() => props.onOpen(props.topic)}
|
|
19
|
+
>
|
|
20
|
+
?
|
|
21
|
+
</button>
|
|
22
|
+
);
|
|
23
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export function isHelpShortcutEditableTarget(target: EventTarget | null): boolean {
|
|
2
|
+
if (!(target instanceof HTMLElement)) return false;
|
|
3
|
+
if (target.isContentEditable) return true;
|
|
4
|
+
const tag = target.tagName.toLowerCase();
|
|
5
|
+
if (tag === 'input' || tag === 'textarea' || tag === 'select') return true;
|
|
6
|
+
return Boolean(target.closest('[contenteditable="true"], .cm-editor, .ProseMirror, [data-milkdown-root]'));
|
|
7
|
+
}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import type { ReactNode } from 'react';
|
|
2
|
+
import { DEFAULT_MANAGER_SHORTCUT_KEYMAP, formatShortcut } from '../manager-shortcuts';
|
|
2
3
|
import type { DashboardSidebarMode } from '../types';
|
|
3
4
|
|
|
5
|
+
export type HelpTopicId = DashboardSidebarMode | 'shortcuts' | 'routing' | 'processLifecycle' | 'dangerousActions';
|
|
6
|
+
|
|
4
7
|
export type HelpEntry = {
|
|
5
8
|
title: string;
|
|
6
9
|
subtitle: string;
|
|
@@ -15,7 +18,17 @@ const InstancesHelp = (
|
|
|
15
18
|
<li>우측 상단 상태 점이 초록이면 온라인, 회색이면 오프라인이에요.</li>
|
|
16
19
|
<li>인스턴스에 직접 메시지를 보내실 땐 Preview 탭의 채팅 입력을 쓰세요.</li>
|
|
17
20
|
</ul>
|
|
18
|
-
<
|
|
21
|
+
<div className="help-deep">
|
|
22
|
+
<h4>빠른 판단 기준</h4>
|
|
23
|
+
<table className="help-table">
|
|
24
|
+
<tbody>
|
|
25
|
+
<tr><th>Preview</th><td>실제 인스턴스 화면을 보거나 메시지를 보낼 때</td></tr>
|
|
26
|
+
<tr><th>Logs</th><td>응답이 멈췄거나 dispatch 실패 원인을 확인할 때</td></tr>
|
|
27
|
+
<tr><th>Settings</th><td>해당 인스턴스의 CLI, 모델, 권한을 조정할 때</td></tr>
|
|
28
|
+
</tbody>
|
|
29
|
+
</table>
|
|
30
|
+
</div>
|
|
31
|
+
<p className="help-tip">인스턴스가 안 보이시면 터미널에서 <code>cli-jaw start</code>로 새 jaw를 띄워보세요. 자동으로 목록에 떠요.</p>
|
|
19
32
|
</>
|
|
20
33
|
);
|
|
21
34
|
|
|
@@ -31,7 +44,17 @@ const BoardHelp = (
|
|
|
31
44
|
<li>인스턴스 블럭을 일반 칸반 블럭 안의 드롭 영역으로 끌어 넣으면 내부 자식 블럭으로 병합돼요. 인스턴스 실행에는 영향 없어요.</li>
|
|
32
45
|
<li>일반 칸반 블럭은 직접 드래그해서 다른 레인으로 옮길 수 있고, <strong>Move</strong> / <strong>Delete</strong>도 유지돼요.</li>
|
|
33
46
|
</ul>
|
|
34
|
-
<
|
|
47
|
+
<div className="help-deep">
|
|
48
|
+
<h4>상태를 나눠 쓰는 법</h4>
|
|
49
|
+
<table className="help-table">
|
|
50
|
+
<tbody>
|
|
51
|
+
<tr><th>Ready</th><td>바로 구현하거나 검증할 수 있는 작업</td></tr>
|
|
52
|
+
<tr><th>Review</th><td>직원 감사, Pro 검증, 수동 smoke가 필요한 작업</td></tr>
|
|
53
|
+
<tr><th>Done</th><td>커밋, 푸시, 이슈 close까지 끝난 작업</td></tr>
|
|
54
|
+
</tbody>
|
|
55
|
+
</table>
|
|
56
|
+
</div>
|
|
57
|
+
<p className="help-tip">인스턴스가 없어도 일반 칸반 블럭은 계속 남아요. 쿼리·아이디어·작업 단위를 먼저 적고, 필요할 때만 실행 인스턴스를 붙이면 돼요.</p>
|
|
35
58
|
</>
|
|
36
59
|
);
|
|
37
60
|
|
|
@@ -43,7 +66,17 @@ const ScheduleHelp = (
|
|
|
43
66
|
<li>Run 버튼으로 즉시 dispatch, 대상 인스턴스가 바쁘면 자동 큐잉이에요. last/next 컬럼으로 실행 이력이 보여요.</li>
|
|
44
67
|
<li>예전엔 인스턴스마다 자기 <code>heartbeat.json</code>을 setInterval로 돌리던 구조였는데, 지금은 <strong>매니저가 단일 ticker</strong>로 돌려요. heartbeat.json은 legacy로만 표시되고 자동 실행은 안 돼요.</li>
|
|
45
68
|
</ul>
|
|
46
|
-
<
|
|
69
|
+
<div className="help-deep">
|
|
70
|
+
<h4>실패를 볼 때</h4>
|
|
71
|
+
<table className="help-table">
|
|
72
|
+
<tbody>
|
|
73
|
+
<tr><th>queued</th><td>대상 인스턴스가 바빠서 대기 중</td></tr>
|
|
74
|
+
<tr><th>blocked</th><td>비활성화했거나 실행 조건이 아직 맞지 않음</td></tr>
|
|
75
|
+
<tr><th>last/next</th><td>최근 실행 결과와 다음 실행 예측을 확인하는 기준</td></tr>
|
|
76
|
+
</tbody>
|
|
77
|
+
</table>
|
|
78
|
+
</div>
|
|
79
|
+
<p className="help-tip">새 작업은 여기서 만들고, 기존 heartbeat job은 같은 cron으로 옮겨 등록하시면 돼요. 마이그레이션 자동화는 추후 추가됩니다.</p>
|
|
47
80
|
</>
|
|
48
81
|
);
|
|
49
82
|
|
|
@@ -59,6 +92,28 @@ const NotesHelp = (
|
|
|
59
92
|
</>
|
|
60
93
|
);
|
|
61
94
|
|
|
95
|
+
const RemindersHelp = (
|
|
96
|
+
<>
|
|
97
|
+
<p className="help-lead">Jaw Reminders 스냅샷을 대시보드에서 읽고 확인하는 미러 화면이에요.</p>
|
|
98
|
+
<ul className="help-bullets">
|
|
99
|
+
<li><strong>All / Focused / Scheduled / High / Done</strong> 보기로 현재 reminder 상태를 훑어볼 수 있어요.</li>
|
|
100
|
+
<li>Refresh는 외부 Jaw Reminders 스냅샷을 다시 읽어서 대시보드용 row로 반영해요.</li>
|
|
101
|
+
<li>원본 reminder 저장소가 없거나 형식이 맞지 않아도 대시보드는 기존 미러 데이터를 유지하고 상태 메시지만 보여줘요.</li>
|
|
102
|
+
</ul>
|
|
103
|
+
<div className="help-deep">
|
|
104
|
+
<h4>Matrix 보기</h4>
|
|
105
|
+
<table className="help-table">
|
|
106
|
+
<tbody>
|
|
107
|
+
<tr><th>Top Priority</th><td>지금 먼저 처리할 3개를 따로 고정</td></tr>
|
|
108
|
+
<tr><th>Important</th><td>중요하지만 급하지 않은 장기 작업</td></tr>
|
|
109
|
+
<tr><th>Waiting</th><td>다른 사람, 직원, 외부 검증을 기다리는 작업</td></tr>
|
|
110
|
+
</tbody>
|
|
111
|
+
</table>
|
|
112
|
+
</div>
|
|
113
|
+
<p className="help-tip">Reminders는 실험 기능이라 개발 모드 또는 실험 플래그가 켜진 빌드에서만 보여요.</p>
|
|
114
|
+
</>
|
|
115
|
+
);
|
|
116
|
+
|
|
62
117
|
const SettingsHelp = (
|
|
63
118
|
<>
|
|
64
119
|
<p className="help-lead">대시보드 외형과 동작 옵션을 조정하는 곳이에요.</p>
|
|
@@ -67,14 +122,109 @@ const SettingsHelp = (
|
|
|
67
122
|
<li>인스턴스 자체 설정이 아니라 <strong>이 대시보드 UI의 환경설정</strong>이에요.</li>
|
|
68
123
|
<li>변경 사항은 즉시 저장돼요.</li>
|
|
69
124
|
</ul>
|
|
70
|
-
<
|
|
125
|
+
<div className="help-deep">
|
|
126
|
+
<h4>설정 범위</h4>
|
|
127
|
+
<table className="help-table">
|
|
128
|
+
<tbody>
|
|
129
|
+
<tr><th>Display</th><td>목록, 언어, 단축키 같은 dashboard UI 선호도</td></tr>
|
|
130
|
+
<tr><th>Activity</th><td>최근 작업 제목이 어떤 인스턴스에서 준비됐는지 확인</td></tr>
|
|
131
|
+
<tr><th>Instance settings</th><td>개별 인스턴스 동작은 Instances workspace에서 수정</td></tr>
|
|
132
|
+
</tbody>
|
|
133
|
+
</table>
|
|
134
|
+
</div>
|
|
135
|
+
<p className="help-tip">인스턴스 동작을 바꾸시려면 여기가 아니라 <strong>Instances → 해당 인스턴스 → Settings 탭</strong>으로 가세요.</p>
|
|
136
|
+
</>
|
|
137
|
+
);
|
|
138
|
+
|
|
139
|
+
const ShortcutsHelp = (
|
|
140
|
+
<>
|
|
141
|
+
<p className="help-lead">반복 작업을 줄이는 Manager 전역 단축키예요.</p>
|
|
142
|
+
<ul className="help-bullets">
|
|
143
|
+
<li><kbd>?</kbd>는 이 도움말을 열어요. 입력창, 노트 에디터, WYSIWYG 편집 중에는 글자 입력을 방해하지 않아요.</li>
|
|
144
|
+
<li><kbd>{formatShortcut(DEFAULT_MANAGER_SHORTCUT_KEYMAP.focusInstances)}</kbd>는 Instances workspace로 이동해요.</li>
|
|
145
|
+
<li><kbd>{formatShortcut(DEFAULT_MANAGER_SHORTCUT_KEYMAP.focusActiveSession)}</kbd>는 선택된 인스턴스의 Preview 탭으로 이동해요.</li>
|
|
146
|
+
<li><kbd>{formatShortcut(DEFAULT_MANAGER_SHORTCUT_KEYMAP.focusNotes)}</kbd>는 Notes workspace로 이동해요.</li>
|
|
147
|
+
<li><kbd>{formatShortcut(DEFAULT_MANAGER_SHORTCUT_KEYMAP.previousInstance)}</kbd> / <kbd>{formatShortcut(DEFAULT_MANAGER_SHORTCUT_KEYMAP.nextInstance)}</kbd>는 현재 필터된 인스턴스 목록에서 이전/다음 행을 선택해요.</li>
|
|
148
|
+
<li><kbd>⌘/Ctrl + S</kbd>는 Notes와 Settings처럼 저장 가능한 화면에서 현재 편집 내용을 저장해요.</li>
|
|
149
|
+
<li><kbd>⌘/Ctrl + E</kbd>는 Notes 편집 모드를 순환해요.</li>
|
|
150
|
+
<li>Manager 단축키는 Dashboard settings에서 켜고 끄거나 keymap을 바꿀 수 있어요.</li>
|
|
151
|
+
<li>Preview 탭을 보는 동안 새 activity는 읽음으로 처리되고, 다른 탭에 있을 때는 Activity Dock에 쌓여요.</li>
|
|
152
|
+
</ul>
|
|
153
|
+
<div className="help-deep">
|
|
154
|
+
<h4>충돌이 날 때</h4>
|
|
155
|
+
<table className="help-table">
|
|
156
|
+
<tbody>
|
|
157
|
+
<tr><th>입력 중</th><td>글자 입력을 우선하고 전역 shortcut은 실행하지 않음</td></tr>
|
|
158
|
+
<tr><th>브라우저 충돌</th><td>Dashboard settings에서 keymap을 바꾸는 것이 안전함</td></tr>
|
|
159
|
+
<tr><th>도움말</th><td><kbd>?</kbd>는 현재 workspace 도움말과 shortcut 도움말의 진입점</td></tr>
|
|
160
|
+
</tbody>
|
|
161
|
+
</table>
|
|
162
|
+
</div>
|
|
163
|
+
<p className="help-tip">단축키는 브라우저 기본 단축키와 에디터 입력을 우선합니다.</p>
|
|
164
|
+
</>
|
|
165
|
+
);
|
|
166
|
+
|
|
167
|
+
const RoutingHelp = (
|
|
168
|
+
<>
|
|
169
|
+
<p className="help-lead">jaw는 Boss가 직접 처리할지, Employee에게 보낼지 상황에 따라 나눠요.</p>
|
|
170
|
+
<ul className="help-bullets">
|
|
171
|
+
<li><strong>Boss</strong>는 현재 대화의 주 작업자예요. 단일 파일 수정, 상태 확인, GitHub 정리는 보통 Boss가 직접 처리해요.</li>
|
|
172
|
+
<li><strong>Employee</strong>는 <code>cli-jaw dispatch</code>로 보내는 독립 작업자예요. Backend, Frontend, Docs 같은 역할별 검증에 씁니다.</li>
|
|
173
|
+
<li><strong>PABCD</strong>에서는 A phase가 plan audit, B phase가 read-only verification 중심이에요. 구현은 Boss가 직접 합니다.</li>
|
|
174
|
+
<li><strong>$computer-use</strong> 요청은 desktop-control 규칙을 따라 real desktop 또는 browser automation 경로로 라우팅돼요.</li>
|
|
175
|
+
</ul>
|
|
176
|
+
<p className="help-tip">직원이 다른 repo로 착각하지 않도록 dispatch task에는 현재 repo 절대경로를 함께 넣는 게 원칙이에요.</p>
|
|
177
|
+
</>
|
|
178
|
+
);
|
|
179
|
+
|
|
180
|
+
const ProcessLifecycleHelp = (
|
|
181
|
+
<>
|
|
182
|
+
<p className="help-lead">Process 상태는 인스턴스 실행과 Manager가 관리하는 preview/runtime 상태를 구분해서 봐야 해요.</p>
|
|
183
|
+
<ul className="help-bullets">
|
|
184
|
+
<li><strong>online</strong>은 인스턴스 health check가 통과한 상태예요.</li>
|
|
185
|
+
<li><strong>offline / timeout / error</strong>는 프로세스가 없거나, 응답이 늦거나, health check가 실패한 상태예요.</li>
|
|
186
|
+
<li><strong>managed</strong>는 Manager가 띄우거나 복구 대상으로 추적하는 서버예요.</li>
|
|
187
|
+
<li>탭 전환 후 Preview가 다시 붙을 수 있지만, 인스턴스의 실제 실행 여부는 health/status 쪽을 기준으로 보세요.</li>
|
|
188
|
+
</ul>
|
|
189
|
+
<p className="help-tip">Process UI가 비어 보이면 먼저 Refresh로 registry와 health 상태를 다시 읽어보세요.</p>
|
|
190
|
+
</>
|
|
191
|
+
);
|
|
192
|
+
|
|
193
|
+
const DangerousActionsHelp = (
|
|
194
|
+
<>
|
|
195
|
+
<p className="help-lead">실행 상태를 바꾸는 버튼은 현재 선택한 인스턴스나 Manager-managed 프로세스에 영향을 줘요.</p>
|
|
196
|
+
<ul className="help-bullets">
|
|
197
|
+
<li><strong>Stop</strong>은 대상 인스턴스를 중지해요. service-owned 인스턴스는 persistent service 제거까지 포함될 수 있어요.</li>
|
|
198
|
+
<li><strong>Restart</strong>는 새 실행으로 바뀌므로 uptime과 elapsed time 판단 기준이 다시 시작돼요.</li>
|
|
199
|
+
<li><strong>Stop all managed</strong>는 Manager가 추적 중인 서버들을 한 번에 중지해요. 외부에서 직접 띄운 프로세스는 대상으로 삼지 않아요.</li>
|
|
200
|
+
<li><strong>Adopt/recover</strong>는 남아 있는 managed process 기록을 다시 연결하려는 복구 작업이에요.</li>
|
|
201
|
+
</ul>
|
|
202
|
+
<p className="help-tip">위험 작업은 가능한 한 확인창을 거치며, 진행 후 상태가 애매하면 Refresh로 실제 health를 확인하세요.</p>
|
|
71
203
|
</>
|
|
72
204
|
);
|
|
73
205
|
|
|
74
|
-
export const
|
|
206
|
+
export const DASHBOARD_HELP_TOPIC_IDS: HelpTopicId[] = [
|
|
207
|
+
'instances',
|
|
208
|
+
'board',
|
|
209
|
+
'schedule',
|
|
210
|
+
'reminders',
|
|
211
|
+
'notes',
|
|
212
|
+
'settings',
|
|
213
|
+
'shortcuts',
|
|
214
|
+
'routing',
|
|
215
|
+
'processLifecycle',
|
|
216
|
+
'dangerousActions',
|
|
217
|
+
];
|
|
218
|
+
|
|
219
|
+
export const HELP_CONTENT: Record<HelpTopicId, HelpEntry> = {
|
|
75
220
|
instances: { title: 'Instances', subtitle: '인스턴스 운영', body: InstancesHelp },
|
|
76
221
|
board: { title: 'Board', subtitle: 'Cross-instance Kanban', body: BoardHelp },
|
|
77
222
|
schedule: { title: 'Schedule', subtitle: '시간 기반 작업', body: ScheduleHelp },
|
|
223
|
+
reminders: { title: 'Reminders', subtitle: 'Jaw Reminders mirror', body: RemindersHelp },
|
|
78
224
|
notes: { title: 'Notes', subtitle: '마크다운 노트', body: NotesHelp },
|
|
79
225
|
settings: { title: 'Settings', subtitle: '대시보드 설정', body: SettingsHelp },
|
|
226
|
+
shortcuts: { title: 'Shortcuts', subtitle: '전역 키보드 도움말', body: ShortcutsHelp },
|
|
227
|
+
routing: { title: 'Routing', subtitle: 'Boss / Employee 작업 흐름', body: RoutingHelp },
|
|
228
|
+
processLifecycle: { title: 'Process lifecycle', subtitle: '인스턴스와 managed process 상태', body: ProcessLifecycleHelp },
|
|
229
|
+
dangerousActions: { title: 'Dangerous actions', subtitle: '중지·재시작·복구 작업 영향', body: DangerousActionsHelp },
|
|
80
230
|
};
|