cli-jaw 2.0.1 → 2.0.2
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.ko.md +3 -2
- package/README.md +41 -12
- package/dist/bin/_http-client.js +34 -0
- package/dist/bin/_http-client.js.map +1 -0
- package/dist/bin/cli-jaw.js +10 -5
- package/dist/bin/cli-jaw.js.map +1 -1
- package/dist/bin/commands/browser-web-ai.js +155 -38
- package/dist/bin/commands/browser-web-ai.js.map +1 -1
- package/dist/bin/commands/browser.js +265 -37
- package/dist/bin/commands/browser.js.map +1 -1
- package/dist/bin/commands/chat.js +18 -14
- package/dist/bin/commands/chat.js.map +1 -1
- package/dist/bin/commands/clone.js +3 -2
- package/dist/bin/commands/clone.js.map +1 -1
- package/dist/bin/commands/dashboard.js +22 -18
- package/dist/bin/commands/dashboard.js.map +1 -1
- package/dist/bin/commands/dispatch.js +9 -11
- package/dist/bin/commands/dispatch.js.map +1 -1
- package/dist/bin/commands/doctor.js +26 -14
- package/dist/bin/commands/doctor.js.map +1 -1
- package/dist/bin/commands/employee.js +12 -7
- package/dist/bin/commands/employee.js.map +1 -1
- package/dist/bin/commands/init.js +9 -9
- package/dist/bin/commands/init.js.map +1 -1
- package/dist/bin/commands/launchd.js +17 -7
- package/dist/bin/commands/launchd.js.map +1 -1
- package/dist/bin/commands/mcp.js +7 -4
- package/dist/bin/commands/mcp.js.map +1 -1
- package/dist/bin/commands/memory.js +7 -5
- package/dist/bin/commands/memory.js.map +1 -1
- package/dist/bin/commands/orchestrate.js +6 -3
- package/dist/bin/commands/orchestrate.js.map +1 -1
- package/dist/bin/commands/reset.js +4 -3
- package/dist/bin/commands/reset.js.map +1 -1
- package/dist/bin/commands/serve.js +3 -2
- package/dist/bin/commands/serve.js.map +1 -1
- package/dist/bin/commands/service.js +2 -2
- package/dist/bin/commands/service.js.map +1 -1
- package/dist/bin/commands/status.js +10 -9
- package/dist/bin/commands/status.js.map +1 -1
- package/dist/bin/commands/tui/api.js +26 -18
- package/dist/bin/commands/tui/api.js.map +1 -1
- package/dist/bin/commands/tui/overlays.js +3 -1
- package/dist/bin/commands/tui/overlays.js.map +1 -1
- package/dist/bin/commands/tui/simple-mode.js +1 -1
- package/dist/bin/commands/tui/simple-mode.js.map +1 -1
- package/dist/bin/commands/tui/types.js.map +1 -1
- package/dist/bin/postinstall.js +153 -65
- package/dist/bin/postinstall.js.map +1 -1
- package/dist/bin/star-prompt.js +4 -3
- package/dist/bin/star-prompt.js.map +1 -1
- package/dist/lib/mcp/format-converters.js +15 -10
- package/dist/lib/mcp/format-converters.js.map +1 -1
- package/dist/lib/mcp/mcp-install.js +2 -2
- package/dist/lib/mcp/mcp-install.js.map +1 -1
- package/dist/lib/mcp/skills-distribution.js +2 -2
- package/dist/lib/mcp/skills-distribution.js.map +1 -1
- package/dist/lib/mcp/skills-reset.js +5 -4
- package/dist/lib/mcp/skills-reset.js.map +1 -1
- package/dist/lib/mcp/skills-symlinks.js +9 -9
- package/dist/lib/mcp/skills-symlinks.js.map +1 -1
- package/dist/lib/mcp/skills-utils.js +5 -4
- package/dist/lib/mcp/skills-utils.js.map +1 -1
- package/dist/lib/mcp/unified-config.js +3 -2
- package/dist/lib/mcp/unified-config.js.map +1 -1
- package/dist/lib/mime-detect.js +65 -0
- package/dist/lib/mime-detect.js.map +1 -0
- package/dist/lib/quota-copilot.js +12 -10
- package/dist/lib/quota-copilot.js.map +1 -1
- package/dist/lib/stt.js +3 -3
- package/dist/lib/stt.js.map +1 -1
- package/dist/lib/upload.js +14 -5
- package/dist/lib/upload.js.map +1 -1
- package/dist/scripts/i18n-registry.js +4 -4
- package/dist/scripts/i18n-registry.js.map +1 -1
- package/dist/server.js +61 -57
- package/dist/server.js.map +1 -1
- package/dist/src/agent/alert-escalation.js +61 -0
- package/dist/src/agent/alert-escalation.js.map +1 -0
- package/dist/src/agent/args.js +71 -2
- package/dist/src/agent/args.js.map +1 -1
- package/dist/src/agent/error-classifier.js +9 -4
- package/dist/src/agent/error-classifier.js.map +1 -1
- package/dist/src/agent/events.js +130 -101
- package/dist/src/agent/events.js.map +1 -1
- package/dist/src/agent/lifecycle-handler.js +44 -19
- package/dist/src/agent/lifecycle-handler.js.map +1 -1
- package/dist/src/agent/live-run-state.js +7 -3
- package/dist/src/agent/live-run-state.js.map +1 -1
- package/dist/src/agent/memory-flush-controller.js +6 -4
- package/dist/src/agent/memory-flush-controller.js.map +1 -1
- package/dist/src/agent/opencode-diagnostics.js +7 -6
- package/dist/src/agent/opencode-diagnostics.js.map +1 -1
- package/dist/src/agent/session-persistence.js +1 -1
- package/dist/src/agent/session-persistence.js.map +1 -1
- package/dist/src/agent/spawn-env.js +33 -16
- package/dist/src/agent/spawn-env.js.map +1 -1
- package/dist/src/agent/spawn.js +176 -110
- package/dist/src/agent/spawn.js.map +1 -1
- package/dist/src/agent/watchdog.js +56 -0
- package/dist/src/agent/watchdog.js.map +1 -0
- package/dist/src/browser/actions.js +179 -70
- package/dist/src/browser/actions.js.map +1 -1
- package/dist/src/browser/connection.js +296 -19
- package/dist/src/browser/connection.js.map +1 -1
- package/dist/src/browser/index.js +4 -1
- package/dist/src/browser/index.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/primitives.js +11 -7
- package/dist/src/browser/primitives.js.map +1 -1
- package/dist/src/browser/runtime-diagnostics.js +45 -0
- package/dist/src/browser/runtime-diagnostics.js.map +1 -0
- package/dist/src/browser/runtime-orphans.js +127 -0
- package/dist/src/browser/runtime-orphans.js.map +1 -0
- package/dist/src/browser/runtime-owner-store.js +51 -0
- package/dist/src/browser/runtime-owner-store.js.map +1 -0
- package/dist/src/browser/runtime-owner.js +2 -2
- package/dist/src/browser/runtime-owner.js.map +1 -1
- package/dist/src/browser/tab-lifecycle.js +157 -0
- package/dist/src/browser/tab-lifecycle.js.map +1 -0
- package/dist/src/browser/vision.js +35 -11
- package/dist/src/browser/vision.js.map +1 -1
- package/dist/src/browser/web-ai/action-breadth.js +56 -0
- package/dist/src/browser/web-ai/action-breadth.js.map +1 -0
- package/dist/src/browser/web-ai/action-cache.js +9 -8
- package/dist/src/browser/web-ai/action-cache.js.map +1 -1
- package/dist/src/browser/web-ai/action-intent.js +64 -0
- package/dist/src/browser/web-ai/action-intent.js.map +1 -0
- package/dist/src/browser/web-ai/action-memory.js +82 -0
- package/dist/src/browser/web-ai/action-memory.js.map +1 -0
- package/dist/src/browser/web-ai/action-trace.js +11 -6
- package/dist/src/browser/web-ai/action-trace.js.map +1 -1
- package/dist/src/browser/web-ai/annotated-screenshot.js +2 -1
- package/dist/src/browser/web-ai/annotated-screenshot.js.map +1 -1
- package/dist/src/browser/web-ai/answer-artifact.js +97 -0
- package/dist/src/browser/web-ai/answer-artifact.js.map +1 -0
- package/dist/src/browser/web-ai/ax-snapshot.js +3 -2
- package/dist/src/browser/web-ai/ax-snapshot.js.map +1 -1
- package/dist/src/browser/web-ai/browser-primitives.js +10 -7
- package/dist/src/browser/web-ai/browser-primitives.js.map +1 -1
- package/dist/src/browser/web-ai/capability-registry.js +1 -1
- package/dist/src/browser/web-ai/capability-registry.js.map +1 -1
- package/dist/src/browser/web-ai/chatgpt-composer.js +12 -12
- package/dist/src/browser/web-ai/chatgpt-composer.js.map +1 -1
- package/dist/src/browser/web-ai/chatgpt-model.js +469 -50
- package/dist/src/browser/web-ai/chatgpt-model.js.map +1 -1
- package/dist/src/browser/web-ai/chatgpt-response.js +82 -10
- package/dist/src/browser/web-ai/chatgpt-response.js.map +1 -1
- package/dist/src/browser/web-ai/chatgpt.js +325 -49
- package/dist/src/browser/web-ai/chatgpt.js.map +1 -1
- package/dist/src/browser/web-ai/churn-log.js +1 -1
- package/dist/src/browser/web-ai/churn-log.js.map +1 -1
- package/dist/src/browser/web-ai/cli-sessions.js +42 -26
- package/dist/src/browser/web-ai/cli-sessions.js.map +1 -1
- package/dist/src/browser/web-ai/context-pack/builder.js +1 -1
- package/dist/src/browser/web-ai/context-pack/builder.js.map +1 -1
- package/dist/src/browser/web-ai/context-pack/file-selector.js +2 -2
- package/dist/src/browser/web-ai/context-pack/file-selector.js.map +1 -1
- package/dist/src/browser/web-ai/context-pack/report.js +1 -1
- package/dist/src/browser/web-ai/context-pack/report.js.map +1 -1
- package/dist/src/browser/web-ai/copy-markdown.js +25 -5
- package/dist/src/browser/web-ai/copy-markdown.js.map +1 -1
- package/dist/src/browser/web-ai/diagnostics.js +17 -14
- package/dist/src/browser/web-ai/diagnostics.js.map +1 -1
- package/dist/src/browser/web-ai/doctor.js +10 -6
- package/dist/src/browser/web-ai/doctor.js.map +1 -1
- package/dist/src/browser/web-ai/dom-hash.js.map +1 -1
- package/dist/src/browser/web-ai/errors.js +5 -22
- package/dist/src/browser/web-ai/errors.js.map +1 -1
- package/dist/src/browser/web-ai/gemini-live.js +7 -6
- package/dist/src/browser/web-ai/gemini-live.js.map +1 -1
- package/dist/src/browser/web-ai/grok-live.js +9 -5
- package/dist/src/browser/web-ai/grok-live.js.map +1 -1
- package/dist/src/browser/web-ai/index.js +5 -0
- package/dist/src/browser/web-ai/index.js.map +1 -1
- package/dist/src/browser/web-ai/observation-bundle.js +90 -0
- package/dist/src/browser/web-ai/observation-bundle.js.map +1 -0
- package/dist/src/browser/web-ai/observe-actions.js +186 -0
- package/dist/src/browser/web-ai/observe-actions.js.map +1 -0
- package/dist/src/browser/web-ai/observe-targets.js +6 -1
- package/dist/src/browser/web-ai/observe-targets.js.map +1 -1
- package/dist/src/browser/web-ai/planner-contract.js +18 -0
- package/dist/src/browser/web-ai/planner-contract.js.map +1 -0
- package/dist/src/browser/web-ai/post-action-assert.js +8 -7
- package/dist/src/browser/web-ai/post-action-assert.js.map +1 -1
- package/dist/src/browser/web-ai/product-surfaces.js +2 -1
- package/dist/src/browser/web-ai/product-surfaces.js.map +1 -1
- package/dist/src/browser/web-ai/provider-adapter.js.map +1 -1
- package/dist/src/browser/web-ai/question.js +14 -7
- package/dist/src/browser/web-ai/question.js.map +1 -1
- package/dist/src/browser/web-ai/ref-registry.js.map +1 -1
- package/dist/src/browser/web-ai/self-heal.js +20 -14
- package/dist/src/browser/web-ai/self-heal.js.map +1 -1
- package/dist/src/browser/web-ai/session-store.js +61 -1
- package/dist/src/browser/web-ai/session-store.js.map +1 -1
- package/dist/src/browser/web-ai/session.js +43 -2
- package/dist/src/browser/web-ai/session.js.map +1 -1
- package/dist/src/browser/web-ai/source-audit.js +116 -0
- package/dist/src/browser/web-ai/source-audit.js.map +1 -0
- package/dist/src/browser/web-ai/tab-finalizer.js +18 -0
- package/dist/src/browser/web-ai/tab-finalizer.js.map +1 -0
- package/dist/src/browser/web-ai/tab-lease-store.js +390 -0
- package/dist/src/browser/web-ai/tab-lease-store.js.map +1 -0
- package/dist/src/browser/web-ai/tab-pool.js +44 -0
- package/dist/src/browser/web-ai/tab-pool.js.map +1 -0
- package/dist/src/browser/web-ai/target-resolver.js +31 -0
- package/dist/src/browser/web-ai/target-resolver.js.map +1 -0
- package/dist/src/browser/web-ai/trace-persistence.js +4 -2
- package/dist/src/browser/web-ai/trace-persistence.js.map +1 -1
- package/dist/src/browser/web-ai/vendor-editor-contract.js.map +1 -1
- package/dist/src/browser/web-ai/watcher.js +8 -7
- package/dist/src/browser/web-ai/watcher.js.map +1 -1
- package/dist/src/cli/acp-client.js +40 -26
- package/dist/src/cli/acp-client.js.map +1 -1
- package/dist/src/cli/command-context.js +3 -3
- package/dist/src/cli/command-context.js.map +1 -1
- package/dist/src/cli/commands.js +25 -16
- package/dist/src/cli/commands.js.map +1 -1
- package/dist/src/cli/compact.js.map +1 -1
- package/dist/src/cli/handlers-completions.js +6 -4
- package/dist/src/cli/handlers-completions.js.map +1 -1
- package/dist/src/cli/handlers-runtime.js +45 -38
- package/dist/src/cli/handlers-runtime.js.map +1 -1
- package/dist/src/cli/handlers.js +44 -36
- package/dist/src/cli/handlers.js.map +1 -1
- package/dist/src/cli/readiness.js +3 -1
- package/dist/src/cli/readiness.js.map +1 -1
- package/dist/src/cli/registry.js +1 -1
- package/dist/src/cli/registry.js.map +1 -1
- package/dist/src/cli/tui/overlay.js +4 -1
- package/dist/src/cli/tui/overlay.js.map +1 -1
- package/dist/src/cli/types.js +4 -0
- package/dist/src/cli/types.js.map +1 -0
- package/dist/src/command-contract/catalog.js +1 -1
- package/dist/src/command-contract/catalog.js.map +1 -1
- package/dist/src/command-contract/help-renderer.js +1 -1
- package/dist/src/command-contract/help-renderer.js.map +1 -1
- package/dist/src/core/browser-open-default.js +13 -0
- package/dist/src/core/browser-open-default.js.map +1 -0
- package/dist/src/core/browser-open.js +41 -0
- package/dist/src/core/browser-open.js.map +1 -0
- package/dist/src/core/bus.js +13 -2
- package/dist/src/core/bus.js.map +1 -1
- package/dist/src/core/compact.js +5 -4
- package/dist/src/core/compact.js.map +1 -1
- package/dist/src/core/config.js +51 -52
- package/dist/src/core/config.js.map +1 -1
- package/dist/src/core/db.js +48 -6
- package/dist/src/core/db.js.map +1 -1
- package/dist/src/core/employees.js +9 -8
- package/dist/src/core/employees.js.map +1 -1
- package/dist/src/core/instance.js +7 -6
- package/dist/src/core/instance.js.map +1 -1
- package/dist/src/core/logger.js +1 -1
- package/dist/src/core/logger.js.map +1 -1
- package/dist/src/core/main-session.js +7 -7
- package/dist/src/core/main-session.js.map +1 -1
- package/dist/src/core/path-expand.js +10 -0
- package/dist/src/core/path-expand.js.map +1 -0
- package/dist/src/core/runtime-path.js +1 -1
- package/dist/src/core/runtime-path.js.map +1 -1
- package/dist/src/core/runtime-settings.js +13 -13
- package/dist/src/core/runtime-settings.js.map +1 -1
- package/dist/src/core/settings-merge.js +14 -14
- package/dist/src/core/settings-merge.js.map +1 -1
- package/dist/src/core/strip-undefined.js +13 -0
- package/dist/src/core/strip-undefined.js.map +1 -0
- package/dist/src/core/tcc.js +1 -1
- package/dist/src/core/tcc.js.map +1 -1
- package/dist/src/discord/bot.js +19 -18
- package/dist/src/discord/bot.js.map +1 -1
- package/dist/src/discord/channel-types.js +14 -0
- package/dist/src/discord/channel-types.js.map +1 -0
- package/dist/src/discord/commands.js +7 -6
- package/dist/src/discord/commands.js.map +1 -1
- package/dist/src/discord/discord-file.js.map +1 -1
- package/dist/src/discord/forwarder.js +3 -3
- package/dist/src/discord/forwarder.js.map +1 -1
- package/dist/src/http/error-middleware.js +3 -3
- package/dist/src/http/error-middleware.js.map +1 -1
- package/dist/src/http/response.js +2 -2
- package/dist/src/http/response.js.map +1 -1
- package/dist/src/ide/diff.js +7 -7
- package/dist/src/ide/diff.js.map +1 -1
- package/dist/src/manager/board/routes.js +28 -27
- package/dist/src/manager/board/routes.js.map +1 -1
- package/dist/src/manager/dashboard-home.js +3 -5
- package/dist/src/manager/dashboard-home.js.map +1 -1
- package/dist/src/manager/dashboard-service.js +2 -2
- package/dist/src/manager/dashboard-service.js.map +1 -1
- package/dist/src/manager/health-history.js +10 -9
- package/dist/src/manager/health-history.js.map +1 -1
- package/dist/src/manager/launchd-service.js +2 -2
- package/dist/src/manager/launchd-service.js.map +1 -1
- package/dist/src/manager/lifecycle-helpers.js +7 -6
- package/dist/src/manager/lifecycle-helpers.js.map +1 -1
- package/dist/src/manager/lifecycle.js +7 -6
- package/dist/src/manager/lifecycle.js.map +1 -1
- package/dist/src/manager/logs.js +18 -18
- package/dist/src/manager/logs.js.map +1 -1
- package/dist/src/manager/metadata.js +10 -2
- package/dist/src/manager/metadata.js.map +1 -1
- package/dist/src/manager/notes/assets.js +216 -0
- package/dist/src/manager/notes/assets.js.map +1 -0
- package/dist/src/manager/notes/capabilities.js +56 -0
- package/dist/src/manager/notes/capabilities.js.map +1 -0
- package/dist/src/manager/notes/constants.js +11 -0
- package/dist/src/manager/notes/constants.js.map +1 -0
- package/dist/src/manager/notes/frontmatter.js +120 -0
- package/dist/src/manager/notes/frontmatter.js.map +1 -0
- package/dist/src/manager/notes/link-resolver.js +96 -0
- package/dist/src/manager/notes/link-resolver.js.map +1 -0
- package/dist/src/manager/notes/path-guards.js +4 -0
- package/dist/src/manager/notes/path-guards.js.map +1 -1
- package/dist/src/manager/notes/remote-assets.js +128 -0
- package/dist/src/manager/notes/remote-assets.js.map +1 -0
- package/dist/src/manager/notes/routes.js +63 -13
- package/dist/src/manager/notes/routes.js.map +1 -1
- package/dist/src/manager/notes/store.js +3 -2
- package/dist/src/manager/notes/store.js.map +1 -1
- package/dist/src/manager/notes/system-trash.js +3 -3
- package/dist/src/manager/notes/system-trash.js.map +1 -1
- package/dist/src/manager/notes/vault-index.js +220 -0
- package/dist/src/manager/notes/vault-index.js.map +1 -0
- package/dist/src/manager/notes/watcher.js +27 -0
- package/dist/src/manager/notes/watcher.js.map +1 -0
- package/dist/src/manager/notes/wiki-links.js +109 -0
- package/dist/src/manager/notes/wiki-links.js.map +1 -0
- package/dist/src/manager/process-verify.js +29 -0
- package/dist/src/manager/process-verify.js.map +1 -1
- package/dist/src/manager/profiles.js +3 -2
- package/dist/src/manager/profiles.js.map +1 -1
- package/dist/src/manager/registry.js +60 -58
- package/dist/src/manager/registry.js.map +1 -1
- package/dist/src/manager/routes/electron-metrics.js +22 -22
- package/dist/src/manager/routes/electron-metrics.js.map +1 -1
- package/dist/src/manager/scan.js +2 -2
- package/dist/src/manager/scan.js.map +1 -1
- package/dist/src/manager/schedule/routes.js +24 -23
- package/dist/src/manager/schedule/routes.js.map +1 -1
- package/dist/src/manager/server.js +28 -28
- package/dist/src/manager/server.js.map +1 -1
- package/dist/src/manager/systemd-service.js +1 -1
- package/dist/src/manager/systemd-service.js.map +1 -1
- package/dist/src/memory/bootstrap.js +5 -4
- package/dist/src/memory/bootstrap.js.map +1 -1
- package/dist/src/memory/heartbeat-schedule.js +10 -10
- package/dist/src/memory/heartbeat-schedule.js.map +1 -1
- package/dist/src/memory/heartbeat.js +23 -22
- package/dist/src/memory/heartbeat.js.map +1 -1
- package/dist/src/memory/indexing.js.map +1 -1
- package/dist/src/memory/keyword-expand.js +1 -1
- package/dist/src/memory/keyword-expand.js.map +1 -1
- package/dist/src/memory/memory.js +2 -2
- package/dist/src/memory/memory.js.map +1 -1
- package/dist/src/memory/runtime.js +6 -5
- package/dist/src/memory/runtime.js.map +1 -1
- package/dist/src/memory/shared.js +2 -1
- package/dist/src/memory/shared.js.map +1 -1
- package/dist/src/memory/worklog.js +1 -1
- package/dist/src/memory/worklog.js.map +1 -1
- package/dist/src/messaging/runtime.js +13 -10
- package/dist/src/messaging/runtime.js.map +1 -1
- package/dist/src/messaging/send.js +16 -15
- package/dist/src/messaging/send.js.map +1 -1
- package/dist/src/orchestrator/collect.js +6 -6
- package/dist/src/orchestrator/collect.js.map +1 -1
- package/dist/src/orchestrator/distribute.js +112 -77
- package/dist/src/orchestrator/distribute.js.map +1 -1
- package/dist/src/orchestrator/gateway.js +6 -5
- package/dist/src/orchestrator/gateway.js.map +1 -1
- package/dist/src/orchestrator/pipeline.js +42 -42
- package/dist/src/orchestrator/pipeline.js.map +1 -1
- package/dist/src/orchestrator/state-machine.js +3 -3
- package/dist/src/orchestrator/state-machine.js.map +1 -1
- package/dist/src/orchestrator/worker-registry.js +4 -3
- package/dist/src/orchestrator/worker-registry.js.map +1 -1
- package/dist/src/prompt/builder.js +24 -19
- package/dist/src/prompt/builder.js.map +1 -1
- package/dist/src/prompt/templates/a1-system.md +15 -10
- package/dist/src/prompt/templates/control-system.md +9 -7
- package/dist/src/prompt/templates/employee.md +5 -4
- package/dist/src/prompt/templates/vision-click.md +1 -1
- package/dist/src/routes/_http-error.js +15 -0
- package/dist/src/routes/_http-error.js.map +1 -0
- package/dist/src/routes/avatar.js +6 -5
- package/dist/src/routes/avatar.js.map +1 -1
- package/dist/src/routes/browser.js +132 -45
- package/dist/src/routes/browser.js.map +1 -1
- package/dist/src/routes/employees.js +28 -21
- package/dist/src/routes/employees.js.map +1 -1
- package/dist/src/routes/heartbeat.js +12 -9
- package/dist/src/routes/heartbeat.js.map +1 -1
- package/dist/src/routes/i18n.js +13 -7
- package/dist/src/routes/i18n.js.map +1 -1
- package/dist/src/routes/jaw-memory.js +15 -11
- package/dist/src/routes/jaw-memory.js.map +1 -1
- package/dist/src/routes/memory.js +25 -20
- package/dist/src/routes/memory.js.map +1 -1
- package/dist/src/routes/messaging.js +50 -29
- package/dist/src/routes/messaging.js.map +1 -1
- package/dist/src/routes/orchestrate.js +38 -24
- package/dist/src/routes/orchestrate.js.map +1 -1
- package/dist/src/routes/quota.js +81 -17
- package/dist/src/routes/quota.js.map +1 -1
- package/dist/src/routes/settings.js +28 -18
- package/dist/src/routes/settings.js.map +1 -1
- package/dist/src/routes/skills.js +22 -13
- package/dist/src/routes/skills.js.map +1 -1
- package/dist/src/routes/traces.js +77 -0
- package/dist/src/routes/traces.js.map +1 -0
- package/dist/src/security/path-guards.js +2 -1
- package/dist/src/security/path-guards.js.map +1 -1
- package/dist/src/shared/tool-log-sanitize.js +191 -0
- package/dist/src/shared/tool-log-sanitize.js.map +1 -0
- package/dist/src/telegram/bot.js +65 -55
- package/dist/src/telegram/bot.js.map +1 -1
- package/dist/src/telegram/forwarder.js +5 -9
- package/dist/src/telegram/forwarder.js.map +1 -1
- package/dist/src/telegram/telegram-file.js +28 -24
- package/dist/src/telegram/telegram-file.js.map +1 -1
- package/dist/src/telegram/voice.js +4 -3
- package/dist/src/telegram/voice.js.map +1 -1
- package/dist/src/trace/redact.js +50 -0
- package/dist/src/trace/redact.js.map +1 -0
- package/dist/src/trace/store.js +162 -0
- package/dist/src/trace/store.js.map +1 -0
- package/dist/src/trace/types.js +2 -0
- package/dist/src/trace/types.js.map +1 -0
- package/dist/src/types/cli-engine.js +34 -0
- package/dist/src/types/cli-engine.js.map +1 -0
- package/dist/src/types/cli-events.js +31 -0
- package/dist/src/types/cli-events.js.map +1 -0
- package/package.json +22 -2
- package/public/css/tool-ui.css +3 -1
- package/public/css/trace-drawer.css +48 -0
- package/public/dist/assets/{AdvancedExport-3WAYIabE.js → AdvancedExport-DJZ2VmBR.js} +1 -1
- package/public/dist/assets/Agent-CgpLT8IY.js +1 -0
- package/public/dist/assets/Browser-CrkiQoB8.js +1 -0
- package/public/dist/assets/{ChannelsDiscord-UzFPlWT4.js → ChannelsDiscord-CVUC22D4.js} +1 -1
- package/public/dist/assets/{ChannelsTelegram-DNWtPX0w.js → ChannelsTelegram-DEatIQNM.js} +1 -1
- package/public/dist/assets/{DashboardMeta-Y_6nVeJO.js → DashboardMeta-BKoxRc7i.js} +1 -1
- package/public/dist/assets/{Display-D8vGOl4s.js → Display-DnNGV9Km.js} +1 -1
- package/public/dist/assets/{Employees-YR_sIRK4.js → Employees-DZ2iJYKy.js} +1 -1
- package/public/dist/assets/{HealthBadge-CPePajyU.js → HealthBadge-Cq2c7G9s.js} +1 -1
- package/public/dist/assets/{Heartbeat-DTpAULQR.js → Heartbeat-BML6eTXZ.js} +1 -1
- package/public/dist/assets/{Mcp-DM-PgG6z.js → Mcp-BlEviQ3h.js} +1 -1
- package/public/dist/assets/{Memory-C_LvJnkn.js → Memory-BRyH80He.js} +1 -1
- package/public/dist/assets/MilkdownWysiwygEditor-Cm3uXfWf.js +52 -0
- package/public/dist/assets/ModelProvider-DxyR7EL9.js +1 -0
- package/public/dist/assets/Network-DDOOESh1.js +1 -0
- package/public/dist/assets/{Permissions-B1naJjjw.js → Permissions-Br0eSbKb.js} +1 -1
- package/public/dist/assets/{Permissions-BKffrMJD.js → Permissions-QHkzStqQ.js} +1 -1
- package/public/dist/assets/{Profile-DIqjSe2C.js → Profile-C79NKumk.js} +1 -1
- package/public/dist/assets/{Prompts-BMfbV6Y4.js → Prompts-BmiIDiXW.js} +1 -1
- package/public/dist/assets/{SpeechKeys-DjiQTzSL.js → SpeechKeys-B8304XJK.js} +1 -1
- package/public/dist/assets/app-Be58Cs3Y.js +32 -0
- package/public/dist/assets/{app-BzvwJJiv.css → app-CphocJzo.css} +1 -1
- package/public/dist/assets/{dist-DTvxN3ux.js → dist-BD0UXfgF2.js} +1 -1
- package/public/dist/assets/{dist-CASeq-Tl.js → dist-BNfXO3Yr.js} +1 -1
- package/public/dist/assets/{dist-BMPiaUzF.js → dist-BUnPYbK3.js} +1 -1
- package/public/dist/assets/{dist-CT_X3hVT.js → dist-BZosRD2u.js} +1 -1
- package/public/dist/assets/{dist-4J6YbNXv.js → dist-Bd9PlnQm.js} +1 -1
- package/public/dist/assets/{dist-BcZjyn5g.js → dist-BsT5UdNP.js} +1 -1
- package/public/dist/assets/{dist-BfBhOPR-.js → dist-CIuXW-sc.js} +1 -1
- package/public/dist/assets/{dist-BMiCig3A2.js → dist-CL4PTYWf.js} +1 -1
- package/public/dist/assets/{dist-VyP6-HLb.js → dist-Ch5VAlV9.js} +1 -1
- package/public/dist/assets/dist-ClqO40BE.js +1 -0
- package/public/dist/assets/{dist-c98Tp7bP.js → dist-Cp42cMcI.js} +1 -1
- package/public/dist/assets/{dist-CIlYL1qe.js → dist-CpUK8ypo.js} +1 -1
- package/public/dist/assets/dist-CxeLAw2Y.js +1 -0
- package/public/dist/assets/dist-D2SH8nxa.js +1 -0
- package/public/dist/assets/{dist-84fwQ7bO.js → dist-D6cUXP7K.js} +1 -1
- package/public/dist/assets/{dist-BOCcQAyF.js → dist-D7bCuS3f.js} +1 -1
- package/public/dist/assets/{dist-DMmpfLVP.js → dist-DFYRUAjN.js} +1 -1
- package/public/dist/assets/{dist-DdY6pTJr.js → dist-DZsFVYF4.js} +1 -1
- package/public/dist/assets/{dist-B0p3Eyme.js → dist-Db16ogVk.js} +1 -1
- package/public/dist/assets/{dist-DlnNtr6L.js → dist-DfodGES_.js} +1 -1
- package/public/dist/assets/{dist-DO9so2a2.js → dist-SU-YTAIg.js} +1 -1
- package/public/dist/assets/{dist-DUjXiMLP.js → dist-UYn7T-GH.js} +1 -1
- package/public/dist/assets/{dist-BW1409rz.js → dist-W51oDoeA.js} +1 -1
- package/public/dist/assets/{dist-BimBQZx1.js → dist-eU7TyC86.js} +1 -1
- package/public/dist/assets/dist-l9HH00ip.js +1 -0
- package/public/dist/assets/{dist-BrOPNxdH.js → dist-urPTQzXL.js} +1 -1
- package/public/dist/assets/{dist-AloEV3J52.js → dist-yHP6L0Ty.js} +1 -1
- package/public/dist/assets/{employees-Bbabvbyx.js → employees-CxdghzoD.js} +7 -7
- package/public/dist/assets/{error-normalize-DdvKGLt_.js → error-normalize-5n-zlEQ3.js} +1 -1
- package/public/dist/assets/insert-image-markdown-DIEa-zjk.js +22 -0
- package/public/dist/assets/{manager-DyB2ZUr9.css → manager-DEiyrWDP.css} +1 -1
- package/public/dist/assets/manager-UEXd1_9T.js +25 -0
- package/public/dist/assets/{memory-B_plvcuQ.js → memory-CsMNkYtv.js} +9 -9
- package/public/dist/assets/memory-DXad_DPO.js +1 -0
- package/public/dist/assets/{page-shell-DML_HneX.js → page-shell-D5tbivHH.js} +1 -1
- package/public/dist/assets/{render-DEhbfUAW.js → render-DGQX46ei.js} +2 -2
- package/public/dist/assets/{settings-D7F-_kYG.js → settings-BH213Yv3.js} +14 -14
- package/public/dist/assets/settings-DXT87G2U.js +1 -0
- package/public/dist/assets/settings-client-ajlwI-oK.js +1 -0
- package/public/dist/assets/skills-5o_1v0nz.js +1 -0
- package/public/dist/assets/{skills-DoGJOc0D.js → skills-CQtCtHPA.js} +6 -6
- package/public/dist/assets/slash-commands-D4-hrrmh.js +1 -0
- package/public/dist/assets/{slash-commands-khNFPOyF.js → slash-commands-Dzk1xHWS.js} +1 -1
- package/public/dist/assets/trace-drawer-SRKcfm2S.js +15 -0
- package/public/dist/assets/ui-CdRKN2S6.js +141 -0
- package/public/dist/assets/ui-n43jmg_f.js +1 -0
- package/public/dist/assets/{ws-B2aJ-nD2.js → ws-CTHQFzM1.js} +8 -8
- package/public/dist/index.html +2 -2
- package/public/dist/manager/index.html +2 -2
- package/public/index.html +1 -0
- package/public/js/constants.ts +5 -5
- package/public/js/diagram/iframe-renderer.ts +11 -11
- package/public/js/features/chat.ts +1 -1
- package/public/js/features/memory.ts +10 -10
- package/public/js/features/pending-queue.ts +2 -2
- package/public/js/features/process-block.ts +257 -29
- package/public/js/features/process-step-match.ts +18 -0
- package/public/js/features/settings-cli-status.ts +1 -1
- package/public/js/features/settings-stt.ts +37 -11
- package/public/js/features/settings-templates.ts +2 -2
- package/public/js/features/slash-commands.ts +1 -1
- package/public/js/features/tool-ui.ts +13 -7
- package/public/js/features/trace-drawer.ts +122 -0
- package/public/js/icons.ts +1 -1
- package/public/js/main.ts +28 -28
- package/public/js/provider-icons.ts +1 -1
- package/public/js/render.ts +29 -27
- package/public/js/sanitizer.ts +4 -0
- package/public/js/ui.ts +234 -68
- package/public/js/virtual-scroll.ts +19 -33
- package/public/js/ws.ts +22 -10
- package/public/manager/src/App.tsx +34 -6
- package/public/manager/src/api.ts +55 -1
- package/public/manager/src/components/ActivityTimeline.tsx +1 -1
- package/public/manager/src/components/InstanceDetailPanel.tsx +2 -2
- package/public/manager/src/components/InstanceGroups.tsx +5 -5
- package/public/manager/src/components/InstanceListContent.tsx +1 -1
- package/public/manager/src/dashboard-features.ts +1 -1
- package/public/manager/src/manager-notes.css +49 -2
- package/public/manager/src/notes/MarkdownEditor.tsx +7 -3
- package/public/manager/src/notes/NotesFileTree.tsx +45 -6
- package/public/manager/src/notes/NotesSidebar.tsx +24 -55
- package/public/manager/src/notes/NotesWorkspace.tsx +50 -3
- package/public/manager/src/notes/image-assets/clipboard-images.ts +100 -0
- package/public/manager/src/notes/image-assets/insert-image-markdown.ts +85 -0
- package/public/manager/src/notes/notes-api.ts +2 -0
- package/public/manager/src/notes/notes-types.ts +8 -1
- package/public/manager/src/notes/rendering/MarkdownRenderer.tsx +6 -0
- package/public/manager/src/notes/rendering/markdown-render-security.ts +19 -1
- package/public/manager/src/notes/rich-markdown/paste-policy.ts +6 -2
- package/public/manager/src/notes/rich-markdown/rich-markdown-extension.ts +5 -5
- package/public/manager/src/notes/rich-markdown/rich-widget.ts +8 -8
- package/public/manager/src/notes/useNotesExternalSync.ts +37 -0
- package/public/manager/src/notes/useNotesModel.ts +91 -0
- package/public/manager/src/notes/wysiwyg/MilkdownWysiwygEditor.tsx +157 -17
- package/public/manager/src/notes/wysiwyg/milkdown-block-keymap.ts +14 -2
- package/public/manager/src/notes/wysiwyg/milkdown-code-block-view.ts +20 -20
- package/public/manager/src/notes/wysiwyg/milkdown-heading-source-view.ts +8 -8
- package/public/manager/src/notes/wysiwyg/milkdown-math.ts +25 -25
- package/public/manager/src/settings/pages/Browser.tsx +38 -20
- package/public/manager/src/settings/pages/ModelProvider.tsx +11 -9
- package/public/manager/src/settings/pages/Network.tsx +10 -10
- package/public/manager/src/settings/pages/components/HealthBadge.tsx +12 -12
- package/public/manager/src/settings/pages/components/agent/runtime-employees-helpers.ts +12 -10
- package/public/manager/src/settings/pages/components/employees-helpers.ts +9 -9
- package/public/manager/src/settings/pages/components/heartbeat-helpers.ts +13 -13
- package/public/manager/src/settings/pages/components/memory-helpers.ts +4 -4
- package/public/manager/src/settings/pages/mcp-helpers.ts +7 -7
- package/public/manager/src/settings/settings-client.ts +4 -3
- package/public/manager/src/sync/IframeBridge.tsx +29 -0
- package/public/manager/src/sync/VisibilityBridge.tsx +24 -0
- package/public/manager/src/sync/invalidation-bus.ts +30 -0
- package/public/manager/src/sync/useInvalidationSubscription.ts +19 -0
- package/public/manager/src/types.ts +101 -0
- package/scripts/check-strict-baseline.mjs +255 -0
- package/scripts/claim-audit.mjs +159 -0
- package/scripts/i18n-registry.ts +4 -4
- package/scripts/install-officecli.sh +2 -2
- package/scripts/install-wsl.sh +2 -1
- package/scripts/release-gates.mjs +347 -0
- package/scripts/release-preview.sh +3 -0
- package/scripts/release.sh +4 -0
- package/scripts/smoke/opencode-external-dir-smoke.ts +14 -5
- package/public/dist/assets/Agent-BYdzZwD0.js +0 -1
- package/public/dist/assets/Browser-CkGeczuN.js +0 -1
- package/public/dist/assets/MilkdownWysiwygEditor-B7k9bAey.js +0 -52
- package/public/dist/assets/ModelProvider-CX3Qhowu.js +0 -1
- package/public/dist/assets/Network-DfPLFAvw.js +0 -1
- package/public/dist/assets/app-DLYoRkU9.js +0 -32
- package/public/dist/assets/dist-8zNAQAIa.js +0 -1
- package/public/dist/assets/dist-BgeY6nvK.js +0 -1
- package/public/dist/assets/dist-BzDGGxHQ.js +0 -1
- package/public/dist/assets/dist-D3YKbVi-.js +0 -1
- package/public/dist/assets/manager-CUSgFbMO.js +0 -25
- package/public/dist/assets/markdown-render-security-DJfJPWO-.js +0 -22
- package/public/dist/assets/memory-DQ6dU0qs.js +0 -1
- package/public/dist/assets/settings-DxLPUbpj.js +0 -1
- package/public/dist/assets/settings-client-CGf3uPPf.js +0 -1
- package/public/dist/assets/skills-yMfNYJ8m.js +0 -1
- package/public/dist/assets/slash-commands-CZcwr1W6.js +0 -1
- package/public/dist/assets/ui-04YlOMgn.js +0 -136
- package/public/dist/assets/ui-D6hlMjRq.js +0 -1
- /package/public/dist/assets/{InlineWarn-CqgWEC41.js → InlineWarn-BooBRm7o.js} +0 -0
- /package/public/dist/assets/{agent-meta-puNn13DV.js → agent-meta-DHddpWHQ.js} +0 -0
- /package/public/dist/assets/{fields-DH9JS3mb.js → fields-BtncIZYA.js} +0 -0
- /package/public/dist/assets/{mermaid-loader-6XC0y10y.js → mermaid-loader-BEFIOoJn.js} +0 -0
- /package/public/dist/assets/{path-utils-CtsDDGZg.js → path-utils-BuEEtj9w.js} +0 -0
- /package/public/dist/assets/{w3c-keyname-VSld09PZ.js → w3c-keyname-IiiZScED.js} +0 -0
package/dist/src/core/db.js
CHANGED
|
@@ -123,27 +123,68 @@ db.exec(`
|
|
|
123
123
|
consumed_at INTEGER,
|
|
124
124
|
visible INTEGER NOT NULL DEFAULT 0
|
|
125
125
|
);
|
|
126
|
+
|
|
127
|
+
CREATE TABLE IF NOT EXISTS trace_runs (
|
|
128
|
+
id TEXT PRIMARY KEY,
|
|
129
|
+
message_id INTEGER,
|
|
130
|
+
parent_run_id TEXT,
|
|
131
|
+
cli TEXT NOT NULL,
|
|
132
|
+
model TEXT,
|
|
133
|
+
working_dir TEXT,
|
|
134
|
+
agent_label TEXT,
|
|
135
|
+
audience TEXT NOT NULL DEFAULT 'public',
|
|
136
|
+
status TEXT NOT NULL DEFAULT 'running',
|
|
137
|
+
raw_retention_status TEXT NOT NULL DEFAULT 'available',
|
|
138
|
+
event_count INTEGER NOT NULL DEFAULT 0,
|
|
139
|
+
byte_count INTEGER NOT NULL DEFAULT 0,
|
|
140
|
+
started_at INTEGER NOT NULL,
|
|
141
|
+
finished_at INTEGER,
|
|
142
|
+
last_event_at INTEGER,
|
|
143
|
+
error TEXT
|
|
144
|
+
);
|
|
145
|
+
CREATE INDEX IF NOT EXISTS idx_trace_runs_message ON trace_runs(message_id);
|
|
146
|
+
CREATE INDEX IF NOT EXISTS idx_trace_runs_started ON trace_runs(started_at);
|
|
147
|
+
|
|
148
|
+
CREATE TABLE IF NOT EXISTS trace_events (
|
|
149
|
+
run_id TEXT NOT NULL,
|
|
150
|
+
seq INTEGER NOT NULL,
|
|
151
|
+
source TEXT NOT NULL,
|
|
152
|
+
event_type TEXT NOT NULL,
|
|
153
|
+
preview TEXT,
|
|
154
|
+
raw_json TEXT,
|
|
155
|
+
raw_path TEXT,
|
|
156
|
+
bytes INTEGER NOT NULL DEFAULT 0,
|
|
157
|
+
retention_status TEXT NOT NULL DEFAULT 'available',
|
|
158
|
+
created_at INTEGER NOT NULL,
|
|
159
|
+
PRIMARY KEY (run_id, seq),
|
|
160
|
+
FOREIGN KEY (run_id) REFERENCES trace_runs(id) ON DELETE CASCADE
|
|
161
|
+
);
|
|
162
|
+
CREATE INDEX IF NOT EXISTS idx_trace_events_run_seq ON trace_events(run_id, seq);
|
|
126
163
|
`);
|
|
127
164
|
// Lightweight migration for existing DBs created before `trace` column existed.
|
|
128
165
|
const messageCols = db.prepare('PRAGMA table_info(messages)').all();
|
|
129
|
-
if (!messageCols.some(c => c
|
|
166
|
+
if (!messageCols.some(c => c["name"] === 'trace')) {
|
|
130
167
|
db.exec('ALTER TABLE messages ADD COLUMN trace TEXT DEFAULT NULL');
|
|
131
168
|
}
|
|
132
169
|
// Migration: add tool_log column for structured ProcessBlock data
|
|
133
|
-
if (!messageCols.some(c => c
|
|
170
|
+
if (!messageCols.some(c => c["name"] === 'tool_log')) {
|
|
134
171
|
db.exec('ALTER TABLE messages ADD COLUMN tool_log TEXT DEFAULT NULL');
|
|
135
172
|
}
|
|
136
173
|
// Migration: add working_dir column for project-scoped message isolation
|
|
137
|
-
if (!messageCols.some(c => c
|
|
174
|
+
if (!messageCols.some(c => c["name"] === 'working_dir')) {
|
|
138
175
|
db.exec('ALTER TABLE messages ADD COLUMN working_dir TEXT DEFAULT NULL');
|
|
139
176
|
}
|
|
177
|
+
if (!messageCols.some(c => c["name"] === 'trace_run_id')) {
|
|
178
|
+
db.exec('ALTER TABLE messages ADD COLUMN trace_run_id TEXT DEFAULT NULL');
|
|
179
|
+
}
|
|
140
180
|
db.exec('CREATE INDEX IF NOT EXISTS idx_messages_wd ON messages(working_dir)');
|
|
181
|
+
db.exec('CREATE INDEX IF NOT EXISTS idx_messages_trace_run ON messages(trace_run_id)');
|
|
141
182
|
const employeeSessionCols = db.prepare('PRAGMA table_info(employee_sessions)').all();
|
|
142
|
-
if (!employeeSessionCols.some(c => c
|
|
183
|
+
if (!employeeSessionCols.some(c => c["name"] === 'model')) {
|
|
143
184
|
db.exec("ALTER TABLE employee_sessions ADD COLUMN model TEXT DEFAULT ''");
|
|
144
185
|
}
|
|
145
186
|
const sessionBucketCols = db.prepare('PRAGMA table_info(session_buckets)').all();
|
|
146
|
-
if (!sessionBucketCols.some(c => c
|
|
187
|
+
if (!sessionBucketCols.some(c => c["name"] === 'resume_key')) {
|
|
147
188
|
db.exec('ALTER TABLE session_buckets ADD COLUMN resume_key TEXT DEFAULT NULL');
|
|
148
189
|
}
|
|
149
190
|
// ─── Prepared Statements ─────────────────────────────
|
|
@@ -154,7 +195,8 @@ export const updateSession = db.prepare(`
|
|
|
154
195
|
`);
|
|
155
196
|
export const insertMessage = db.prepare('INSERT INTO messages (role, content, cli, model, trace, working_dir) VALUES (?, ?, ?, ?, NULL, ?)');
|
|
156
197
|
export const insertMessageWithTrace = db.prepare('INSERT INTO messages (role, content, cli, model, trace, tool_log, working_dir) VALUES (?, ?, ?, ?, ?, ?, ?)');
|
|
157
|
-
export const
|
|
198
|
+
export const insertMessageWithTraceRun = db.prepare('INSERT INTO messages (role, content, cli, model, trace, tool_log, working_dir, trace_run_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?)');
|
|
199
|
+
export const getMessages = db.prepare('SELECT id, role, content, cli, model, tool_log, trace_run_id, cost_usd, duration_ms, working_dir, created_at FROM messages ORDER BY id ASC');
|
|
158
200
|
export const getMessagesWithTrace = db.prepare('SELECT * FROM messages ORDER BY id ASC');
|
|
159
201
|
export const getLatestAssistantMessage = db.prepare("SELECT id, role, created_at FROM messages WHERE role = 'assistant' ORDER BY id DESC LIMIT 1");
|
|
160
202
|
export const getLatestDashboardActivityMessage = db.prepare("SELECT id, role, substr(content, 1, 240) AS excerpt, created_at FROM messages WHERE role IN ('user', 'assistant') ORDER BY id DESC LIMIT 1");
|
package/dist/src/core/db.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db.js","sourceRoot":"","sources":["../../../src/core/db.ts"],"names":[],"mappings":"AAAA,wDAAwD;AAExD,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,SAAS,iBAAiB,CAAC,MAAc;IACrC,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9B,IAAI,CAAC,KAAK;QAAE,OAAO;IACnB,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAc;IACpC,MAAM,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IAChC,MAAM,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IAChC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QAC/E,OAAO,CAAC,KAAK,CAAC,iFAAiF,CAAC,CAAC;QACjG,IAAI,CAAC;YAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;QACtD,IAAI,CAAC;YAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IAC1D,CAAC;AACL,CAAC;AAED,iBAAiB,CAAC,OAAO,CAAC,CAAC;AAC3B,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAC1B,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC;AACjC,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;AAChC,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAEjC,EAAE,CAAC,IAAI,CAAC
|
|
1
|
+
{"version":3,"file":"db.js","sourceRoot":"","sources":["../../../src/core/db.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
import crypto from 'node:crypto';
|
|
4
4
|
import { getEmployees, deleteEmployee, insertEmployee, db } from './db.js';
|
|
5
5
|
import { settings } from './config.js';
|
|
6
|
+
import { stripUndefined } from './strip-undefined.js';
|
|
6
7
|
import { broadcast } from './bus.js';
|
|
7
8
|
import { getDefaultClaudeModel } from '../cli/claude-models.js';
|
|
8
9
|
import { regenerateB } from '../prompt/builder.js';
|
|
@@ -72,14 +73,14 @@ export function checkModelSupport(_cli, _model, _env = process.env) {
|
|
|
72
73
|
export function resolveDispatchableEmployee(name, dbRows = getEmployees.all()) {
|
|
73
74
|
const needle = name.trim().toLowerCase();
|
|
74
75
|
for (const r of dbRows) {
|
|
75
|
-
if ((r.name
|
|
76
|
+
if ((r.name ?? '').toLowerCase() === needle) {
|
|
76
77
|
return { row: r, source: 'db', spec: findStaticEmployee(r.name) };
|
|
77
78
|
}
|
|
78
79
|
}
|
|
79
80
|
const spec = findStaticEmployee(name);
|
|
80
81
|
if (!spec)
|
|
81
82
|
return null;
|
|
82
|
-
const override = settings
|
|
83
|
+
const override = settings["staticEmployees"]?.[spec.name];
|
|
83
84
|
return {
|
|
84
85
|
row: {
|
|
85
86
|
id: `static:${spec.name.toLowerCase()}`,
|
|
@@ -102,11 +103,11 @@ export function listEmployees() {
|
|
|
102
103
|
const seen = new Set();
|
|
103
104
|
const staticOut = [];
|
|
104
105
|
const dbOut = [];
|
|
105
|
-
const overrides = settings
|
|
106
|
+
const overrides = settings["staticEmployees"] || {};
|
|
106
107
|
// Static employees first (rendered at top of UI list, CLI-locked, model editable).
|
|
107
108
|
for (const s of STATIC_EMPLOYEES) {
|
|
108
109
|
const override = overrides[s.name];
|
|
109
|
-
staticOut.push({
|
|
110
|
+
staticOut.push(stripUndefined({
|
|
110
111
|
// Use synthetic id matching resolveDispatchableEmployee so the frontend
|
|
111
112
|
// can round-trip PUT /api/employees/:id to the override storage.
|
|
112
113
|
id: `static:${s.name.toLowerCase()}`,
|
|
@@ -120,7 +121,7 @@ export function listEmployees() {
|
|
|
120
121
|
systemPromptPatchFile: s.systemPromptPatchFile,
|
|
121
122
|
delegation: s.delegation,
|
|
122
123
|
defer: s.defer,
|
|
123
|
-
});
|
|
124
|
+
}));
|
|
124
125
|
seen.add(s.name.toLowerCase());
|
|
125
126
|
}
|
|
126
127
|
for (const r of dbRows) {
|
|
@@ -143,16 +144,16 @@ export function listEmployees() {
|
|
|
143
144
|
}
|
|
144
145
|
export function seedDefaultEmployees({ reset = false, notify = false } = {}) {
|
|
145
146
|
if (!db.open)
|
|
146
|
-
return { seeded: 0, cli: settings
|
|
147
|
+
return { seeded: 0, cli: settings["cli"], skipped: true };
|
|
147
148
|
const existing = getEmployees.all();
|
|
148
149
|
if (reset) {
|
|
149
150
|
for (const emp of existing)
|
|
150
151
|
deleteEmployee.run(emp.id);
|
|
151
152
|
}
|
|
152
153
|
else if (existing.length > 0) {
|
|
153
|
-
return { seeded: 0, cli: settings
|
|
154
|
+
return { seeded: 0, cli: settings["cli"], skipped: true };
|
|
154
155
|
}
|
|
155
|
-
const cli = settings
|
|
156
|
+
const cli = settings["cli"];
|
|
156
157
|
const defaultModel = cli === 'claude' ? getDefaultClaudeModel() : 'default';
|
|
157
158
|
for (const emp of DEFAULT_EMPLOYEES) {
|
|
158
159
|
insertEmployee.run(crypto.randomUUID(), emp.name, cli, defaultModel, emp.role);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"employees.js","sourceRoot":"","sources":["../../../src/core/employees.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,qEAAqE;AAErE,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"employees.js","sourceRoot":"","sources":["../../../src/core/employees.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,13 +21,14 @@ export function instanceId() {
|
|
|
21
21
|
}
|
|
22
22
|
export { buildServicePath } from './runtime-path.js';
|
|
23
23
|
function whichWithServicePath(binary) {
|
|
24
|
-
|
|
24
|
+
const lookup = process.platform === 'win32' ? 'where' : 'which';
|
|
25
|
+
return execFileSync(lookup, [binary], {
|
|
25
26
|
encoding: 'utf8',
|
|
26
27
|
env: {
|
|
27
28
|
...process.env,
|
|
28
|
-
PATH: buildServicePath(process.env
|
|
29
|
+
PATH: buildServicePath(process.env["PATH"] || ''),
|
|
29
30
|
},
|
|
30
|
-
}).trim();
|
|
31
|
+
}).trim().split(/\r?\n/)[0];
|
|
31
32
|
}
|
|
32
33
|
/** Resolve absolute path to node binary. */
|
|
33
34
|
export function getNodePath() {
|
|
@@ -40,10 +41,10 @@ export function getNodePath() {
|
|
|
40
41
|
}
|
|
41
42
|
/** Resolve absolute path to jaw binary. */
|
|
42
43
|
export function getJawPath() {
|
|
43
|
-
if (process.env
|
|
44
|
-
return process.env
|
|
44
|
+
if (process.env["CLI_JAW_BIN"])
|
|
45
|
+
return process.env["CLI_JAW_BIN"];
|
|
45
46
|
const argvPath = process.argv[1];
|
|
46
|
-
if (argvPath && /(
|
|
47
|
+
if (argvPath && /(?:^|[\\/])(?:cli-jaw|jaw)(?:\.js)?$/.test(argvPath))
|
|
47
48
|
return argvPath;
|
|
48
49
|
try {
|
|
49
50
|
return whichWithServicePath('jaw');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instance.js","sourceRoot":"","sources":["../../../src/core/instance.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD;;;;GAIG;AACH,MAAM,UAAU,UAAU;IACtB,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAChC,IAAI,IAAI,KAAK,UAAU;QAAE,OAAO,SAAS,CAAC;IAC1C,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1E,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;AAChD,CAAC;AAED,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,SAAS,oBAAoB,CAAC,MAAc;IACxC,OAAO,
|
|
1
|
+
{"version":3,"file":"instance.js","sourceRoot":"","sources":["../../../src/core/instance.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD;;;;GAIG;AACH,MAAM,UAAU,UAAU;IACtB,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAChC,IAAI,IAAI,KAAK,UAAU;QAAE,OAAO,SAAS,CAAC;IAC1C,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1E,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;AAChD,CAAC;AAED,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,SAAS,oBAAoB,CAAC,MAAc;IACxC,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IAChE,OAAO,YAAY,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE;QAClC,QAAQ,EAAE,MAAM;QAChB,GAAG,EAAE;YACD,GAAG,OAAO,CAAC,GAAG;YACd,IAAI,EAAE,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;SACpD;KACJ,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAE,CAAC;AACjC,CAAC;AAED,4CAA4C;AAC5C,MAAM,UAAU,WAAW;IACvB,IAAI,CAAC;QAAC,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAAC,CAAC;IAC5C,MAAM,CAAC;QAAC,OAAO,OAAO,CAAC,QAAQ,IAAI,qBAAqB,CAAC;IAAC,CAAC;AAC/D,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,UAAU;IACtB,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAClE,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjC,IAAI,QAAQ,IAAI,sCAAsC,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IACvF,IAAI,CAAC;QAAC,OAAO,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAAC,CAAC;IAC3C,MAAM,CAAC;QAAC,OAAO,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAAC,CAAC;AACrD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY;IACzC,OAAO,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;AAClD,CAAC"}
|
package/dist/src/core/logger.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// ─── Logger (level-aware console wrapper) ────────────
|
|
2
2
|
const LEVELS = { debug: 0, info: 1, warn: 2, error: 3 };
|
|
3
|
-
const current = LEVELS[process.env
|
|
3
|
+
const current = LEVELS[process.env["LOG_LEVEL"] || 'info'] ?? 1;
|
|
4
4
|
export const log = {
|
|
5
5
|
debug: (...args) => { if (current <= 0)
|
|
6
6
|
console.debug('[debug]', ...args); },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/core/logger.ts"],"names":[],"mappings":"AAAA,wDAAwD;AAExD,MAAM,MAAM,GAA2B,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AAChF,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/core/logger.ts"],"names":[],"mappings":"AAAA,wDAAwD;AAExD,MAAM,MAAM,GAA2B,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AAChF,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;AAEhE,MAAM,CAAC,MAAM,GAAG,GAAG;IACf,KAAK,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,GAAG,IAAI,OAAO,IAAI,CAAC;QAAE,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACvF,IAAI,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,GAAG,IAAI,OAAO,IAAI,CAAC;QAAE,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACzE,IAAI,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,GAAG,IAAI,OAAO,IAAI,CAAC;QAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1E,KAAK,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,GAAG,IAAI,OAAO,IAAI,CAAC;QAAE,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;CAC/E,CAAC"}
|
|
@@ -2,8 +2,8 @@ import { broadcast } from './bus.js';
|
|
|
2
2
|
import { settings } from './config.js';
|
|
3
3
|
import { db, clearMessages, clearMessagesScoped, getSession, updateSession } from './db.js';
|
|
4
4
|
export function getCliModelAndEffort(cli, currentSettings = settings) {
|
|
5
|
-
const ao = currentSettings
|
|
6
|
-
const pc = currentSettings
|
|
5
|
+
const ao = currentSettings["activeOverrides"]?.[cli] || {};
|
|
6
|
+
const pc = currentSettings["perCli"]?.[cli] || {};
|
|
7
7
|
return {
|
|
8
8
|
model: ao.model || pc.model || 'default',
|
|
9
9
|
effort: ao.effort || pc.effort || 'medium',
|
|
@@ -11,7 +11,7 @@ export function getCliModelAndEffort(cli, currentSettings = settings) {
|
|
|
11
11
|
}
|
|
12
12
|
export function resolveMainCli(requestedCli, currentSettings = settings, session = null) {
|
|
13
13
|
return requestedCli
|
|
14
|
-
|| currentSettings
|
|
14
|
+
|| currentSettings["cli"]
|
|
15
15
|
|| session?.active_cli
|
|
16
16
|
|| 'claude';
|
|
17
17
|
}
|
|
@@ -23,8 +23,8 @@ export function buildSelectedSessionRow(currentSettings = settings, session = nu
|
|
|
23
23
|
cli,
|
|
24
24
|
sessionId,
|
|
25
25
|
model,
|
|
26
|
-
permissions: currentSettings
|
|
27
|
-
workingDir: currentSettings
|
|
26
|
+
permissions: currentSettings["permissions"] || 'auto',
|
|
27
|
+
workingDir: currentSettings["workingDir"] || '~',
|
|
28
28
|
effort,
|
|
29
29
|
};
|
|
30
30
|
}
|
|
@@ -35,8 +35,8 @@ export function buildClearedSessionRow(currentSettings = settings, session = nul
|
|
|
35
35
|
cli,
|
|
36
36
|
sessionId: null,
|
|
37
37
|
model,
|
|
38
|
-
permissions: currentSettings
|
|
39
|
-
workingDir: currentSettings
|
|
38
|
+
permissions: currentSettings["permissions"] || 'auto',
|
|
39
|
+
workingDir: currentSettings["workingDir"] || '~',
|
|
40
40
|
effort,
|
|
41
41
|
};
|
|
42
42
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main-session.js","sourceRoot":"","sources":["../../../src/core/main-session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,EAAE,EAAE,aAAa,EAAE,mBAAmB,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAoB5F,MAAM,UAAU,oBAAoB,CAChC,GAAW,EACX,kBAAuC,QAAQ;IAE/C,MAAM,EAAE,GAAG,eAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"main-session.js","sourceRoot":"","sources":["../../../src/core/main-session.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { homedir } from 'node:os';
|
|
2
|
+
import { resolve } from 'node:path';
|
|
3
|
+
const HOME_PREFIX_RE = /^~(?=\/|\\|$)/;
|
|
4
|
+
export function expandHomePath(input, homeDir = homedir()) {
|
|
5
|
+
return input.replace(HOME_PREFIX_RE, homeDir);
|
|
6
|
+
}
|
|
7
|
+
export function resolveHomePath(input, homeDir = homedir()) {
|
|
8
|
+
return resolve(expandHomePath(input, homeDir));
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=path-expand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path-expand.js","sourceRoot":"","sources":["../../../src/core/path-expand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,cAAc,GAAG,eAAe,CAAC;AAEvC,MAAM,UAAU,cAAc,CAAC,KAAa,EAAE,OAAO,GAAG,OAAO,EAAE;IAC7D,OAAO,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAa,EAAE,OAAO,GAAG,OAAO,EAAE;IAC9D,OAAO,OAAO,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;AACnD,CAAC"}
|
|
@@ -33,7 +33,7 @@ function listManagedNodeBins(homeDir) {
|
|
|
33
33
|
}
|
|
34
34
|
return out;
|
|
35
35
|
}
|
|
36
|
-
export function buildServicePath(seedPath = process.env
|
|
36
|
+
export function buildServicePath(seedPath = process.env["PATH"] || '', extraDirs = [], homeDir = os.homedir()) {
|
|
37
37
|
const seeded = String(seedPath || '')
|
|
38
38
|
.split(delimiter)
|
|
39
39
|
.map((segment) => segment.trim())
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-path.js","sourceRoot":"","sources":["../../../src/core/runtime-path.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAErD,SAAS,WAAW,CAAC,KAAuC;IACxD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3C,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,SAAS;QAC5C,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClB,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtB,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAe;IACxC,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,IAAI,IAAI;QACf,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC;QACzC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,CAAC;QACxD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,eAAe,CAAC;KACzC,EAAE,CAAC;QACA,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;iBACzD,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;iBACtC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;iBAC7C,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;iBACzC,IAAI,EAAE;iBACN,OAAO,EAAE,CAAC;YACf,GAAG,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC,CAAC,6CAA6C,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC5B,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"runtime-path.js","sourceRoot":"","sources":["../../../src/core/runtime-path.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,16 +8,16 @@ import { restartMessagingRuntime, initActiveMessagingRuntime } from '../messagin
|
|
|
8
8
|
import { beginRuntimeSettingsMutation } from './runtime-settings-gate.js';
|
|
9
9
|
export async function applyRuntimeSettingsPatch(rawPatch = {}, opts = {}) {
|
|
10
10
|
const finishSettingsMutation = beginRuntimeSettingsMutation();
|
|
11
|
-
const prevCli = settings
|
|
12
|
-
const prevWorkingDir = settings
|
|
11
|
+
const prevCli = settings["cli"];
|
|
12
|
+
const prevWorkingDir = settings["workingDir"];
|
|
13
13
|
const prevSnapshot = { ...settings };
|
|
14
14
|
try {
|
|
15
15
|
const merged = mergeSettingsPatch(settings, rawPatch);
|
|
16
16
|
const migrated = migrateSettings(merged);
|
|
17
17
|
replaceSettings(migrated);
|
|
18
18
|
saveSettings(settings);
|
|
19
|
-
if (rawPatch
|
|
20
|
-
const codexCfg = settings
|
|
19
|
+
if (rawPatch["perCli"]?.codex && 'contextWindow' in rawPatch["perCli"].codex) {
|
|
20
|
+
const codexCfg = settings["perCli"]?.codex || {};
|
|
21
21
|
syncCodexContextWindow({
|
|
22
22
|
enabled: !!codexCfg.contextWindow,
|
|
23
23
|
contextWindow: codexCfg.contextWindowSize || 1000000,
|
|
@@ -29,17 +29,17 @@ export async function applyRuntimeSettingsPatch(rawPatch = {}, opts = {}) {
|
|
|
29
29
|
// (which writes a cleared row inside its DB transaction). On refresh failure
|
|
30
30
|
// we revert settings; the original session row is preserved because nothing
|
|
31
31
|
// touched it on this branch (no syncMainSessionToSettings call).
|
|
32
|
-
const cliChanged = !!(prevCli && settings
|
|
32
|
+
const cliChanged = !!(prevCli && settings["cli"] && prevCli !== settings["cli"]);
|
|
33
33
|
if (cliChanged) {
|
|
34
|
-
const toCli = settings
|
|
35
|
-
const toModel = settings
|
|
36
|
-
|| settings
|
|
34
|
+
const toCli = settings["cli"];
|
|
35
|
+
const toModel = settings["activeOverrides"]?.[toCli]?.model
|
|
36
|
+
|| settings["perCli"]?.[toCli]?.model
|
|
37
37
|
|| 'default';
|
|
38
38
|
try {
|
|
39
39
|
const { cliSwitchRefresh } = await import('./compact.js');
|
|
40
40
|
await cliSwitchRefresh({
|
|
41
41
|
sourceWorkDir: prevWorkingDir || '',
|
|
42
|
-
targetWorkDir: settings
|
|
42
|
+
targetWorkDir: settings["workingDir"] || '',
|
|
43
43
|
fromCli: prevCli,
|
|
44
44
|
toCli,
|
|
45
45
|
toModel,
|
|
@@ -55,13 +55,13 @@ export async function applyRuntimeSettingsPatch(rawPatch = {}, opts = {}) {
|
|
|
55
55
|
else {
|
|
56
56
|
syncMainSessionToSettings(prevCli);
|
|
57
57
|
}
|
|
58
|
-
if (settings
|
|
58
|
+
if (settings["workingDir"] !== prevWorkingDir) {
|
|
59
59
|
try {
|
|
60
|
-
initMcpConfig(settings
|
|
61
|
-
ensureWorkingDirSkillsLinks(settings
|
|
60
|
+
initMcpConfig(settings["workingDir"]);
|
|
61
|
+
ensureWorkingDirSkillsLinks(settings["workingDir"], { onConflict: 'skip', includeClaude: true, allowReplaceManaged: true });
|
|
62
62
|
syncToAll(loadUnifiedMcp());
|
|
63
63
|
regenerateB();
|
|
64
|
-
console.log(`[jaw:workingDir] artifacts regenerated for ${settings
|
|
64
|
+
console.log(`[jaw:workingDir] artifacts regenerated for ${settings["workingDir"]}`);
|
|
65
65
|
}
|
|
66
66
|
catch (e) {
|
|
67
67
|
console.error('[jaw:workingDir]', e.message);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-settings.js","sourceRoot":"","sources":["../../../src/core/runtime-settings.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,cAAc,EAAE,SAAS,EACzB,2BAA2B,EAAE,aAAa,GAC7C,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACvF,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAC9F,OAAO,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;AAM1E,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC3C,WAAgC,EAAE,EAClC,OAAoC,EAAE;IAEtC,MAAM,sBAAsB,GAAG,4BAA4B,EAAE,CAAC;IAC9D,MAAM,OAAO,GAAG,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"runtime-settings.js","sourceRoot":"","sources":["../../../src/core/runtime-settings.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,20 +11,20 @@ export function mergeSettingsPatch(current, patch) {
|
|
|
11
11
|
const result = { ...current };
|
|
12
12
|
const remaining = { ...patch };
|
|
13
13
|
// Deep merge perCli at per-CLI level
|
|
14
|
-
if (remaining
|
|
15
|
-
result
|
|
16
|
-
for (const [cli, cfg] of Object.entries(remaining
|
|
17
|
-
result
|
|
14
|
+
if (remaining["perCli"] && typeof remaining["perCli"] === 'object') {
|
|
15
|
+
result["perCli"] = result["perCli"] || {};
|
|
16
|
+
for (const [cli, cfg] of Object.entries(remaining["perCli"])) {
|
|
17
|
+
result["perCli"][cli] = { ...result["perCli"][cli], ...cfg };
|
|
18
18
|
}
|
|
19
|
-
delete remaining
|
|
19
|
+
delete remaining["perCli"];
|
|
20
20
|
}
|
|
21
21
|
// Deep merge activeOverrides at per-CLI level
|
|
22
|
-
if (remaining
|
|
23
|
-
result
|
|
24
|
-
for (const [cli, cfg] of Object.entries(remaining
|
|
25
|
-
result
|
|
22
|
+
if (remaining["activeOverrides"] && typeof remaining["activeOverrides"] === 'object') {
|
|
23
|
+
result["activeOverrides"] = result["activeOverrides"] || {};
|
|
24
|
+
for (const [cli, cfg] of Object.entries(remaining["activeOverrides"])) {
|
|
25
|
+
result["activeOverrides"][cli] = { ...result["activeOverrides"][cli], ...cfg };
|
|
26
26
|
}
|
|
27
|
-
delete remaining
|
|
27
|
+
delete remaining["activeOverrides"];
|
|
28
28
|
}
|
|
29
29
|
// Deep merge nested objects (heartbeat, telegram, memory, stt, tui, network)
|
|
30
30
|
for (const key of ['heartbeat', 'telegram', 'discord', 'memory', 'stt', 'tui', 'messaging', 'network']) {
|
|
@@ -34,10 +34,10 @@ export function mergeSettingsPatch(current, patch) {
|
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
// Deep merge nested network.remoteAccess
|
|
37
|
-
if (remaining
|
|
38
|
-
result
|
|
39
|
-
result
|
|
40
|
-
delete remaining
|
|
37
|
+
if (remaining["network"]?.remoteAccess && typeof remaining["network"].remoteAccess === 'object') {
|
|
38
|
+
result["network"] = result["network"] || {};
|
|
39
|
+
result["network"].remoteAccess = { ...result["network"].remoteAccess, ...remaining["network"].remoteAccess };
|
|
40
|
+
delete remaining["network"].remoteAccess;
|
|
41
41
|
}
|
|
42
42
|
// Top-level scalar fields
|
|
43
43
|
Object.assign(result, remaining);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-merge.js","sourceRoot":"","sources":["../../../src/core/settings-merge.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,gEAAgE;AAEhE;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAA4B,EAAE,KAA0B;IACvF,MAAM,MAAM,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;IAC9B,MAAM,SAAS,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC;IAE/B,qCAAqC;IACrC,IAAI,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"settings-merge.js","sourceRoot":"","sources":["../../../src/core/settings-merge.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,gEAAgE;AAEhE;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAA4B,EAAE,KAA0B;IACvF,MAAM,MAAM,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;IAC9B,MAAM,SAAS,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC;IAE/B,qCAAqC;IACrC,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,OAAO,SAAS,CAAC,QAAQ,CAAC,KAAK,QAAQ,EAAE,CAAC;QACjE,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC1C,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAoC,EAAE,CAAC;YAC9F,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC;QACjE,CAAC;QACD,OAAO,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAED,8CAA8C;IAC9C,IAAI,SAAS,CAAC,iBAAiB,CAAC,IAAI,OAAO,SAAS,CAAC,iBAAiB,CAAC,KAAK,QAAQ,EAAE,CAAC;QACnF,MAAM,CAAC,iBAAiB,CAAC,GAAG,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;QAC5D,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAoC,EAAE,CAAC;YACvG,MAAM,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC;QACnF,CAAC;QACD,OAAO,SAAS,CAAC,iBAAiB,CAAC,CAAC;IACxC,CAAC;IAED,6EAA6E;IAC7E,KAAK,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,CAAC;QACrG,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,OAAO,SAAS,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;YACvD,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YACpD,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;IACL,CAAC;IAED,yCAAyC;IACzC,IAAI,SAAS,CAAC,SAAS,CAAC,EAAE,YAAY,IAAI,OAAO,SAAS,CAAC,SAAS,CAAC,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;QAC9F,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAC5C,MAAM,CAAC,SAAS,CAAC,CAAC,YAAY,GAAG,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,CAAC;QAC7G,OAAO,SAAS,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC;IAC7C,CAAC;IAED,0BAA0B;IAC1B,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAEjC,OAAO,MAAM,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export function stripUndefined(input) {
|
|
2
|
+
const out = {};
|
|
3
|
+
for (const key of Object.keys(input)) {
|
|
4
|
+
const value = input[key];
|
|
5
|
+
if (value !== undefined)
|
|
6
|
+
out[key] = value;
|
|
7
|
+
}
|
|
8
|
+
return out;
|
|
9
|
+
}
|
|
10
|
+
export function stripUndefinedAll(arr) {
|
|
11
|
+
return arr.map(stripUndefined);
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=strip-undefined.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strip-undefined.js","sourceRoot":"","sources":["../../../src/core/strip-undefined.ts"],"names":[],"mappings":"AAIA,MAAM,UAAU,cAAc,CAAmB,KAAQ;IACrD,MAAM,GAAG,GAAG,EAA6B,CAAC;IAC1C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAA4B,EAAE,CAAC;QAC9D,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QACzB,IAAI,KAAK,KAAK,SAAS;YAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC9C,CAAC;IACD,OAAO,GAAwB,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAmB,GAAiB;IACjE,OAAO,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AACnC,CAAC"}
|
package/dist/src/core/tcc.js
CHANGED
|
@@ -33,7 +33,7 @@ export function readTccAppleEventsGrants() {
|
|
|
33
33
|
export function getLaunchdProcessType(label) {
|
|
34
34
|
if (process.platform !== 'darwin')
|
|
35
35
|
return null;
|
|
36
|
-
const uid = typeof process.getuid === 'function' ? process.getuid() : Number(process.env
|
|
36
|
+
const uid = typeof process.getuid === 'function' ? process.getuid() : Number(process.env["UID"] || 0);
|
|
37
37
|
try {
|
|
38
38
|
const out = execFileSync('launchctl', ['print', `gui/${uid}/${label}`], {
|
|
39
39
|
encoding: 'utf8', stdio: 'pipe', timeout: 5000,
|
package/dist/src/core/tcc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tcc.js","sourceRoot":"","sources":["../../../src/core/tcc.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;AAUjG,MAAM,UAAU,wBAAwB;IACpC,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,CAAC;IACzE,IAAI,CAAC;QACD,MAAM,GAAG,GAAG,YAAY,CAAC,SAAS,EAAE;YAChC,WAAW;YACX,kHAAkH;SACrH,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACvD,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACrD,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC7E,OAAO;gBACH,MAAM,EAAE,MAAM,IAAI,EAAE;gBACpB,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;gBAC9B,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC;gBAC5B,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;gBAC9B,OAAO,EAAE,OAAO,IAAI,EAAE;aACzB,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,EAAE,CAAC;IACd,CAAC;AACL,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAa;IAC/C,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC/C,MAAM,GAAG,GAAG,OAAO,OAAO,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"tcc.js","sourceRoot":"","sources":["../../../src/core/tcc.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;AAUjG,MAAM,UAAU,wBAAwB;IACpC,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,CAAC;IACzE,IAAI,CAAC;QACD,MAAM,GAAG,GAAG,YAAY,CAAC,SAAS,EAAE;YAChC,WAAW;YACX,kHAAkH;SACrH,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACvD,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACrD,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC7E,OAAO;gBACH,MAAM,EAAE,MAAM,IAAI,EAAE;gBACpB,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;gBAC9B,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC;gBAC5B,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;gBAC9B,OAAO,EAAE,OAAO,IAAI,EAAE;aACzB,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,EAAE,CAAC;IACd,CAAC;AACL,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAa;IAC/C,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC/C,MAAM,GAAG,GAAG,OAAO,OAAO,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACtG,IAAI,CAAC;QACD,MAAM,GAAG,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,KAAK,EAAE,CAAC,EAAE;YACpE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI;SACjD,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QACrD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,IAAI,CAAC;IAChB,CAAC;AACL,CAAC"}
|