@xopcai/xopc 0.0.149 → 0.0.151
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.md +10 -0
- package/README.zh-CN.md +10 -0
- package/dist/browser-ext/manifest.json +1 -1
- package/dist/extensions/dashscope/src/image-generation-provider.js +0 -2
- package/dist/extensions/demo-memory/src/index.js +0 -2
- package/dist/extensions/fal/src/image-generation-provider.js +0 -2
- package/dist/extensions/feishu/src/actions/message-action-handler.js +0 -2
- package/dist/extensions/feishu/src/adapters/cli-login.js +0 -2
- package/dist/extensions/feishu/src/adapters/gateway-setup.js +0 -2
- package/dist/extensions/feishu/src/adapters/onboard-cli.js +0 -2
- package/dist/extensions/feishu/src/auth/app-registration.js +0 -2
- package/dist/extensions/feishu/src/auth/pairing.js +0 -2
- package/dist/extensions/feishu/src/auth/paths.js +0 -2
- package/dist/extensions/feishu/src/directory/directory-adapter.js +0 -2
- package/dist/extensions/feishu/src/format.js +0 -2
- package/dist/extensions/feishu/src/index.js +0 -2
- package/dist/extensions/feishu/src/outbound/actions.js +0 -2
- package/dist/extensions/feishu/src/outbound/media-load.js +0 -2
- package/dist/extensions/feishu/src/outbound/outbound-adapter.js +0 -2
- package/dist/extensions/feishu/src/pairing/feishu-pairing-prompt.js +0 -2
- package/dist/extensions/feishu/src/pairing-config-resolver.js +0 -2
- package/dist/extensions/feishu/src/plugin.js +0 -2
- package/dist/extensions/feishu/src/schema/config-schema.js +0 -2
- package/dist/extensions/feishu/src/state/accounts.js +0 -2
- package/dist/extensions/feishu/src/state/message-bindings.js +0 -2
- package/dist/extensions/feishu/src/state/thread-bindings.js +0 -2
- package/dist/extensions/feishu/src/status/doctor.js +0 -2
- package/dist/extensions/feishu/src/status/status-adapter.js +0 -2
- package/dist/extensions/feishu/src/streaming/streaming-adapter.js +0 -2
- package/dist/extensions/feishu/src/subagent-hooks.js +0 -2
- package/dist/extensions/feishu/src/tools/docx/docx-batch-insert.js +0 -2
- package/dist/extensions/feishu/src/tools/docx/docx-color-text.d.ts +6 -3386
- package/dist/extensions/feishu/src/tools/docx/docx-color-text.js +0 -2
- package/dist/extensions/feishu/src/tools/docx/docx-table-ops.d.ts +16 -16927
- package/dist/extensions/feishu/src/tools/docx/docx-table-ops.js +0 -2
- package/dist/extensions/feishu/src/tools/tools.js +0 -2
- package/dist/extensions/feishu/src/transport/client/client.js +2 -4
- package/dist/extensions/feishu/src/transport/client/lark-sdk-logger.js +0 -2
- package/dist/extensions/feishu/src/transport/client/lark-sdk.d.ts +3 -0
- package/dist/extensions/feishu/src/transport/client/lark-sdk.js +14 -0
- package/dist/extensions/feishu/src/transport/reliability/dedupe.js +0 -2
- package/dist/extensions/feishu/src/transport/reliability/inbound-pipeline.js +0 -2
- package/dist/extensions/feishu/src/transport/socket-mode/monitor.js +0 -2
- package/dist/extensions/feishu/src/transport/socket-mode/retry.js +0 -2
- package/dist/extensions/feishu/src/transport/text/mentions.js +0 -2
- package/dist/extensions/feishu/src/transport/webhook/monitor.js +3 -5
- package/dist/extensions/feishu/src/ui/config-surface.js +0 -2
- package/dist/extensions/feishu/src/workflow-progress.js +0 -2
- package/dist/extensions/google/src/image-generation-provider.js +0 -2
- package/dist/extensions/minimax/src/image-generation-provider.js +0 -2
- package/dist/extensions/openai/src/image-generation-provider.js +0 -2
- package/dist/extensions/telegram/src/access-control.js +0 -2
- package/dist/extensions/telegram/src/account-manager.js +0 -2
- package/dist/extensions/telegram/src/actions/message-actions.js +0 -2
- package/dist/extensions/telegram/src/adapters/command-adapter.js +0 -2
- package/dist/extensions/telegram/src/adapters/config-adapter.js +0 -2
- package/dist/extensions/telegram/src/adapters/debounce-keys.js +0 -2
- package/dist/extensions/telegram/src/adapters/gateway-adapter.js +0 -2
- package/dist/extensions/telegram/src/adapters/gateway-setup.js +0 -2
- package/dist/extensions/telegram/src/adapters/inbound-access.js +0 -2
- package/dist/extensions/telegram/src/adapters/index.js +0 -2
- package/dist/extensions/telegram/src/adapters/onboard-cli.js +0 -2
- package/dist/extensions/telegram/src/adapters/outbound-adapter.js +0 -2
- package/dist/extensions/telegram/src/adapters/security-adapter.js +0 -2
- package/dist/extensions/telegram/src/adapters/setup-wizard.js +0 -2
- package/dist/extensions/telegram/src/adapters/status-adapter.js +0 -2
- package/dist/extensions/telegram/src/adapters/streaming-adapter.js +0 -2
- package/dist/extensions/telegram/src/api-root.js +0 -2
- package/dist/extensions/telegram/src/approval-delivery.js +0 -2
- package/dist/extensions/telegram/src/approval-store.js +0 -2
- package/dist/extensions/telegram/src/caption.js +0 -2
- package/dist/extensions/telegram/src/command-handler.js +0 -2
- package/dist/extensions/telegram/src/config-schema.js +0 -2
- package/dist/extensions/telegram/src/conversation-id.js +0 -2
- package/dist/extensions/telegram/src/dedupe.js +0 -2
- package/dist/extensions/telegram/src/delivery-chat-id.js +0 -2
- package/dist/extensions/telegram/src/doctor.js +0 -2
- package/dist/extensions/telegram/src/draft-stream-lifecycle.js +0 -2
- package/dist/extensions/telegram/src/draft-stream-loop.js +0 -2
- package/dist/extensions/telegram/src/draft-stream.js +0 -2
- package/dist/extensions/telegram/src/errors.js +0 -2
- package/dist/extensions/telegram/src/exec-approval-handler.js +0 -2
- package/dist/extensions/telegram/src/exec-approvals.js +0 -2
- package/dist/extensions/telegram/src/focus-handler.js +0 -2
- package/dist/extensions/telegram/src/format.js +0 -2
- package/dist/extensions/telegram/src/group-config-resolver.js +0 -2
- package/dist/extensions/telegram/src/inbound-coalescer.js +0 -2
- package/dist/extensions/telegram/src/inbound-processor.js +0 -2
- package/dist/extensions/telegram/src/index.js +0 -2
- package/dist/extensions/telegram/src/inline-keyboards.js +0 -2
- package/dist/extensions/telegram/src/network-errors.js +0 -2
- package/dist/extensions/telegram/src/outbound-sender.js +0 -2
- package/dist/extensions/telegram/src/pairing-config-resolver.js +0 -2
- package/dist/extensions/telegram/src/plugin-defaults.js +0 -2
- package/dist/extensions/telegram/src/plugin.js +0 -2
- package/dist/extensions/telegram/src/polling-session.js +0 -2
- package/dist/extensions/telegram/src/proxy-fetch.js +0 -2
- package/dist/extensions/telegram/src/reactions.js +0 -2
- package/dist/extensions/telegram/src/reply-params.js +0 -2
- package/dist/extensions/telegram/src/routing-integration.js +0 -2
- package/dist/extensions/telegram/src/send-options.js +0 -2
- package/dist/extensions/telegram/src/sent-cache.js +0 -2
- package/dist/extensions/telegram/src/startup-errors.js +0 -2
- package/dist/extensions/telegram/src/telegram-actions.js +0 -2
- package/dist/extensions/telegram/src/telegram-draft-errors.js +0 -2
- package/dist/extensions/telegram/src/thread-bindings.js +0 -2
- package/dist/extensions/telegram/src/timeout-abort.js +0 -2
- package/dist/extensions/telegram/src/token-resolver.js +0 -2
- package/dist/extensions/telegram/src/update-offset-store.js +0 -2
- package/dist/extensions/telegram/src/workflow-progress.js +0 -2
- package/dist/extensions/telegram/xopc.extension.json +1 -1
- package/dist/extensions/weixin/src/adapters/onboard-cli.js +0 -2
- package/dist/extensions/weixin/src/api/api.js +0 -2
- package/dist/extensions/weixin/src/api/config-cache.js +0 -2
- package/dist/extensions/weixin/src/api/session-guard.js +0 -2
- package/dist/extensions/weixin/src/api/types.js +0 -2
- package/dist/extensions/weixin/src/auth/accounts.js +0 -2
- package/dist/extensions/weixin/src/auth/login-qr.js +0 -2
- package/dist/extensions/weixin/src/auth/pairing.js +0 -2
- package/dist/extensions/weixin/src/auth/weixin-account-id.js +0 -2
- package/dist/extensions/weixin/src/cdn/aes-ecb.js +0 -2
- package/dist/extensions/weixin/src/cdn/cdn-upload.js +0 -2
- package/dist/extensions/weixin/src/cdn/cdn-url.js +0 -2
- package/dist/extensions/weixin/src/cdn/pic-decrypt.js +0 -2
- package/dist/extensions/weixin/src/cdn/upload.js +0 -2
- package/dist/extensions/weixin/src/cli/gateway-qr-login.js +0 -2
- package/dist/extensions/weixin/src/cli/qr-login.js +0 -2
- package/dist/extensions/weixin/src/config-schema.js +0 -2
- package/dist/extensions/weixin/src/config-surface.js +0 -2
- package/dist/extensions/weixin/src/delivery-to.js +0 -2
- package/dist/extensions/weixin/src/index.js +0 -2
- package/dist/extensions/weixin/src/media/data-url.js +0 -2
- package/dist/extensions/weixin/src/media/media-download.js +0 -2
- package/dist/extensions/weixin/src/media/mime.js +0 -2
- package/dist/extensions/weixin/src/media/silk-transcode.js +0 -2
- package/dist/extensions/weixin/src/messaging/context-token-init.js +0 -2
- package/dist/extensions/weixin/src/messaging/debug-mode.js +0 -2
- package/dist/extensions/weixin/src/messaging/error-notice.js +0 -2
- package/dist/extensions/weixin/src/messaging/inbound.js +0 -2
- package/dist/extensions/weixin/src/messaging/markdown-filter.js +0 -2
- package/dist/extensions/weixin/src/messaging/process-message.js +0 -2
- package/dist/extensions/weixin/src/messaging/send-media.js +0 -2
- package/dist/extensions/weixin/src/messaging/send.js +0 -2
- package/dist/extensions/weixin/src/messaging/slash-commands.js +0 -2
- package/dist/extensions/weixin/src/messaging/typing-ticket-store.js +0 -2
- package/dist/extensions/weixin/src/monitor/monitor.js +0 -2
- package/dist/extensions/weixin/src/outbound-send.js +0 -2
- package/dist/extensions/weixin/src/pairing-config-resolver.js +0 -2
- package/dist/extensions/weixin/src/plugin.js +0 -2
- package/dist/extensions/weixin/src/routing-integration.js +0 -2
- package/dist/extensions/weixin/src/storage/state-dir.js +0 -2
- package/dist/extensions/weixin/src/storage/sync-buf.js +0 -2
- package/dist/extensions/weixin/src/util/logger.js +0 -2
- package/dist/extensions/weixin/src/util/random.js +0 -2
- package/dist/extensions/weixin/src/util/redact.js +0 -2
- package/dist/extensions/weixin/src/workflow-progress.js +0 -2
- package/dist/gateway/static/root/assets/{activity-store-B4s0ipx2.js → activity-store-uu1xu9Pl.js} +1 -1
- package/dist/gateway/static/root/assets/{agent-avatar-dicebear-BSccACje.js → agent-avatar-dicebear-BuO-OVfD.js} +1 -1
- package/dist/gateway/static/root/assets/agents-Bpv3h31T.js +2 -0
- package/dist/gateway/static/root/assets/{api-BMdUsNCV.js → api-CwL38LEV.js} +1 -1
- package/dist/gateway/static/root/assets/{app-management-settings-panel-DrLGhYkI.js → app-management-settings-panel-B6OU3Eol.js} +1 -1
- package/dist/gateway/static/root/assets/appearance-settings-BaP4GFvN.js +1 -0
- package/dist/gateway/static/root/assets/apps-page-DZKNIMRg.js +1 -0
- package/dist/gateway/static/root/assets/{archive-plugin-BQ17IK9x.js → archive-plugin-CJX3zIh_.js} +1 -1
- package/dist/gateway/static/root/assets/{attachment-load-HXvgWHXu.js → attachment-load-CI1ejk_l.js} +1 -1
- package/dist/gateway/static/root/assets/{automation-suggestion-card-CjIWpsch.js → automation-suggestion-card-CjmhICbv.js} +1 -1
- package/dist/gateway/static/root/assets/automations-page-BtZl3B8m.js +6 -0
- package/dist/gateway/static/root/assets/{binary-plugins-DifWJzNZ.js → binary-plugins-CZ8nOXqK.js} +1 -1
- package/dist/gateway/static/root/assets/{block-editor-DtRzIkPU.js → block-editor-BoSfyS_j.js} +46 -46
- package/dist/gateway/static/root/assets/browser-settings-page-CL1UiPcb.js +8 -0
- package/dist/gateway/static/root/assets/{capability-presets-api-DazKjWW1.js → capability-presets-api-XzDKxPZ8.js} +1 -1
- package/dist/gateway/static/root/assets/{capability-presets-settings-panel-Cvrw4fD1.js → capability-presets-settings-panel-Dc_uHYgl.js} +2 -2
- package/dist/gateway/static/root/assets/{channel-recipient-api-Bea6if_6.js → channel-recipient-api-DYLBAhFF.js} +1 -1
- package/dist/gateway/static/root/assets/channels-settings-mALvXpJj.js +1 -0
- package/dist/gateway/static/root/assets/channels-status-swr-CZuEsO5b.js +1 -0
- package/dist/gateway/static/root/assets/{connector-logo-BjbYbJjQ.js → connector-logo-BSjlInHT.js} +1 -1
- package/dist/gateway/static/root/assets/connectors-page-Cm_E3mmI.js +2 -0
- package/dist/gateway/static/root/assets/desktop-pet-DcJc91-C.js +1 -0
- package/dist/gateway/static/root/assets/desktop-pet-settings-CdeqTa3Q.js +1 -0
- package/dist/gateway/static/root/assets/{directory-picker-path-field-C8zZNUzC.js → directory-picker-path-field-Cp3fpm0k.js} +1 -1
- package/dist/gateway/static/root/assets/{dreaming-settings-gJSw7Adk.js → dreaming-settings-Bwj1O3zr.js} +3 -3
- package/dist/gateway/static/root/assets/{extension-debug-page-DFE5ADJ0.js → extension-debug-page-D_1xpKbZ.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-CfR-aW8G.js → extension-page-CqZNCj96.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-settings-page-CFIEbs2L.js → extension-settings-page-5MWbtQaQ.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-config-api-B6M_ra8U.js → gateway-config-api-Co_IaS34.js} +1 -1
- package/dist/gateway/static/root/assets/gateway-settings-kmeWm2Pt.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-startup-retry-DNA3OOzV.js → gateway-startup-retry-BM_xvzl0.js} +1 -1
- package/dist/gateway/static/root/assets/goal-create-dialog-FoO-R4_U.js +1 -0
- package/dist/gateway/static/root/assets/goal-detail-page-CkJq7N5g.js +4 -0
- package/dist/gateway/static/root/assets/{goals-config-api-D88opgcs.js → goals-config-api-DrtsYjXz.js} +1 -1
- package/dist/gateway/static/root/assets/goals-page-DRAN-R64.js +2 -0
- package/dist/gateway/static/root/assets/{goals-settings-D07UL8Jo.js → goals-settings-wq9TKhIZ.js} +1 -1
- package/dist/gateway/static/root/assets/{heartbeat-settings-YCSNOcXC.js → heartbeat-settings-B5zDoHbo.js} +1 -1
- package/dist/gateway/static/root/assets/index-DIlxvrlG.css +1 -0
- package/dist/gateway/static/root/assets/index-apLU0Hun.js +196 -0
- package/dist/gateway/static/root/assets/keyboard-shortcuts-settings-3tC9iD21.js +1 -0
- package/dist/gateway/static/root/assets/local-app-workbench-page-CT-vDTLK.js +2 -0
- package/dist/gateway/static/root/assets/{local-apps-page-CKvtLzsF.js → local-apps-page-B9ruF9GV.js} +1 -1
- package/dist/gateway/static/root/assets/locale-store-GfSwnwIZ.js +1 -0
- package/dist/gateway/static/root/assets/logs-page-Ca1X8X2P.js +7 -0
- package/dist/gateway/static/root/assets/{markdown-split-BVSFG99p.js → markdown-split-CzuhSQAB.js} +1 -1
- package/dist/gateway/static/root/assets/{media-plugins-DdOjIVk3.js → media-plugins-a3R4y-EL.js} +1 -1
- package/dist/gateway/static/root/assets/messages-B0B40tpO.js +5 -0
- package/dist/gateway/static/root/assets/models-hub-panel-CbTlz9Of.js +2 -0
- package/dist/gateway/static/root/assets/{notes-page-ZbLR3awn.js → notes-page-BCxDy2dV.js} +1 -1
- package/dist/gateway/static/root/assets/notes-workbench-z6sBX9B2.js +4 -0
- package/dist/gateway/static/root/assets/{page-tabs-DMlQERNg.js → page-tabs-CJfk6M78.js} +1 -1
- package/dist/gateway/static/root/assets/{preview-open-alternatives-CbiJRPxK.js → preview-open-alternatives-MFopTSgF.js} +1 -1
- package/dist/gateway/static/root/assets/project-detail-page-DU29deIr.js +1 -0
- package/dist/gateway/static/root/assets/projects-page-Ck3DLTlZ.js +1 -0
- package/dist/gateway/static/root/assets/remote-access-hub-gLsLyAyi.js +1 -0
- package/dist/gateway/static/root/assets/{save-bar-controls-BZTj3hxl.js → save-bar-controls-D0uhU3Z8.js} +1 -1
- package/dist/gateway/static/root/assets/{schedule-field-CxYDObjT.js → schedule-field-NGOH-7wV.js} +1 -1
- package/dist/gateway/static/root/assets/{schema-form-CBbXgpKQ.js → schema-form-BJz5LoqG.js} +1 -1
- package/dist/gateway/static/root/assets/schemas-DgQq6Z5S.js +64 -0
- package/dist/gateway/static/root/assets/sessions-page-TmNoWpa_.js +1 -0
- package/dist/gateway/static/root/assets/settings-advanced-gate-CtPhh2m9.js +1 -0
- package/dist/gateway/static/root/assets/{settings-collapsible-section-BySKZ8rp.js → settings-collapsible-section-oDnUHnX_.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-form-section-CjINay6t.js → settings-form-section-DND90dDt.js} +1 -1
- package/dist/gateway/static/root/assets/settings-loading-skeleton-CEJtaoQp.js +1 -0
- package/dist/gateway/static/root/assets/{settings-page-BNrVwuL7.js → settings-page-B1LJlRi9.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-page-layout-HdlQOOqp.js → settings-page-layout-CsrLuDsW.js} +1 -1
- package/dist/gateway/static/root/assets/setup-status-panel-BPCJPHHY.js +1 -0
- package/dist/gateway/static/root/assets/{share-preview-page-DC-eQONB.js → share-preview-page-C1PwLh-p.js} +1 -1
- package/dist/gateway/static/root/assets/shares-settings-DCuqr7js.js +1 -0
- package/dist/gateway/static/root/assets/skill-reload-api-kn1Vypcy.js +1 -0
- package/dist/gateway/static/root/assets/skills-page-k6VIqTkK.js +2 -0
- package/dist/gateway/static/root/assets/{system-settings-panel-CVa90q2f.js → system-settings-panel-BEsrEkSx.js} +1 -1
- package/dist/gateway/static/root/assets/{theme-store-D1cOpgsy.js → theme-store-Bi6hMBDb.js} +1 -1
- package/dist/gateway/static/root/assets/{typed-models-lib-DIKF9vpz.js → typed-models-lib-dOypdlMf.js} +1 -1
- package/dist/gateway/static/root/assets/{use-channel-catalog-DnvpI0Ys.js → use-channel-catalog-f8A-PVuq.js} +1 -1
- package/dist/gateway/static/root/assets/user-context-page-B9Y_Ciav.js +1 -0
- package/dist/gateway/static/root/assets/{user-profile-fields-editor-y8gTmkPX.js → user-profile-fields-editor-DGC38Lx7.js} +1 -1
- package/dist/gateway/static/root/assets/{user-profile-settings-panel-C3pvqe28.js → user-profile-settings-panel-DFkZ-tan.js} +1 -1
- package/dist/gateway/static/root/assets/{utils-BK2vwu_3.js → utils-CEIYZihF.js} +1 -1
- package/dist/gateway/static/root/assets/voice-api-key-field-DK6gaQsA.js +1 -0
- package/dist/gateway/static/root/assets/work-discovery-page-DSJb9Kq7.js +1 -0
- package/dist/gateway/static/root/assets/work-item-detail-page-DVavwV3D.js +1 -0
- package/dist/gateway/static/root/assets/work-page-foJDp0nz.js +1 -0
- package/dist/gateway/static/root/assets/workflow-run-setup-panel-BYqZpFCC.js +3 -0
- package/dist/gateway/static/root/assets/workflows-page-DgO0WAzs.js +11 -0
- package/dist/gateway/static/root/favicon.svg +1 -187
- package/dist/gateway/static/root/index.html +8 -7
- package/dist/gateway/static/root/logo-dark.svg +1 -185
- package/dist/gateway/static/root/logo.svg +1 -185
- package/dist/package.js +1 -3
- package/dist/src/activity/context.js +0 -2
- package/dist/src/activity/emitter.js +0 -2
- package/dist/src/activity/service.js +0 -2
- package/dist/src/agent/agent-manager.d.ts +1 -0
- package/dist/src/agent/agent-manager.js +1 -2
- package/dist/src/agent/agent-scope.js +0 -2
- package/dist/src/agent/background-review/coordinator.js +0 -2
- package/dist/src/agent/background-review/prompts.js +0 -2
- package/dist/src/agent/background-review/run-background-review.js +0 -2
- package/dist/src/agent/background-review/settings.js +0 -2
- package/dist/src/agent/bootstrap/bootstrap-cache.js +0 -2
- package/dist/src/agent/bootstrap/bootstrap-context.js +0 -2
- package/dist/src/agent/bootstrap/bootstrap-files.js +0 -2
- package/dist/src/agent/bootstrap/filter-bootstrap-files.js +0 -2
- package/dist/src/agent/bootstrap/load-bootstrap-files.js +0 -2
- package/dist/src/agent/bootstrap/project-agents-context.js +0 -2
- package/dist/src/agent/capabilities/definitions.js +0 -2
- package/dist/src/agent/capabilities/registry.js +0 -2
- package/dist/src/agent/child-agent-factory.js +0 -2
- package/dist/src/agent/client-error-format.js +0 -2
- package/dist/src/agent/code-intelligence/binary.js +0 -2
- package/dist/src/agent/code-intelligence/runtime.js +0 -2
- package/dist/src/agent/code-intelligence/tools.js +0 -2
- package/dist/src/agent/coding/turn-diff-tracker.js +0 -2
- package/dist/src/agent/context/expand-at-file-mentions.js +0 -2
- package/dist/src/agent/context/project-context.js +0 -2
- package/dist/src/agent/context/workspace-seed.js +0 -2
- package/dist/src/agent/context/workspace-state.js +0 -2
- package/dist/src/agent/context/workspace.js +0 -2
- package/dist/src/agent/embedded/run-for-session.js +0 -2
- package/dist/src/agent/embedded/run-turn.js +0 -2
- package/dist/src/agent/embedded/runs.js +0 -2
- package/dist/src/agent/embedded/session-manager-init.js +0 -2
- package/dist/src/agent/embedded/session-runner.js +0 -2
- package/dist/src/agent/embedded/session-tool-result-guard.js +0 -2
- package/dist/src/agent/embedded/sqlite-hydrating-session-manager.js +0 -2
- package/dist/src/agent/embedded/subscribe-session.js +0 -2
- package/dist/src/agent/embedded/system-prompt-override.js +0 -2
- package/dist/src/agent/embedded/tool-result-context-guard.js +0 -2
- package/dist/src/agent/embedded/tool-result-truncation.js +0 -2
- package/dist/src/agent/embedded/xopc-auth-storage.js +0 -2
- package/dist/src/agent/embedded/xopc-stream-bridge.js +0 -2
- package/dist/src/agent/embedded/xopc-tools-bridge.js +0 -2
- package/dist/src/agent/failover-error.js +0 -2
- package/dist/src/agent/fallback/candidates.js +0 -2
- package/dist/src/agent/fallback/reason.js +0 -2
- package/dist/src/agent/feedback/feedback-coordinator.js +0 -2
- package/dist/src/agent/goals/checklist-judge.js +0 -2
- package/dist/src/agent/goals/checklist-types.js +0 -2
- package/dist/src/agent/goals/evaluate-turn.js +0 -2
- package/dist/src/agent/goals/goal-locale.js +0 -2
- package/dist/src/agent/goals/judge.js +0 -2
- package/dist/src/agent/goals/persistent-goal-service.js +0 -2
- package/dist/src/agent/goals/post-turn.js +0 -2
- package/dist/src/agent/goals/state.js +0 -2
- package/dist/src/agent/image/generation/bundled-registry.js +0 -2
- package/dist/src/agent/image/generation/bundled.js +0 -2
- package/dist/src/agent/image/generation/image-assets.js +0 -2
- package/dist/src/agent/image/generation/model-ref.js +0 -2
- package/dist/src/agent/image/generation/normalization.js +0 -2
- package/dist/src/agent/image/generation/openai-compatible-image-provider.js +0 -2
- package/dist/src/agent/image/generation/provider-registry.js +0 -2
- package/dist/src/agent/image/generation/runtime.js +0 -2
- package/dist/src/agent/image/image-helpers.js +0 -2
- package/dist/src/agent/image/image-model-fallback.js +0 -2
- package/dist/src/agent/image/inbound-image-handling.js +0 -2
- package/dist/src/agent/image/load-image-media.js +0 -2
- package/dist/src/agent/image/tool-model-config.js +0 -2
- package/dist/src/agent/image/understanding/pi-ai-provider.js +0 -2
- package/dist/src/agent/image/understanding/provider-registry.js +0 -2
- package/dist/src/agent/image/understanding/runtime.js +0 -2
- package/dist/src/agent/image/vision-detection.js +0 -2
- package/dist/src/agent/inbound/attachment-pipeline.js +0 -2
- package/dist/src/agent/inbound/inbound-loop.js +0 -2
- package/dist/src/agent/inbound/turn-dispatcher.js +0 -2
- package/dist/src/agent/ipc/bus.js +0 -2
- package/dist/src/agent/ipc/inbox.js +0 -2
- package/dist/src/agent/ipc/socket.js +0 -2
- package/dist/src/agent/ipc/types.js +0 -2
- package/dist/src/agent/lifecycle/handlers/compaction.js +0 -2
- package/dist/src/agent/lifecycle/hook-handler.js +0 -2
- package/dist/src/agent/lifecycle/manager.js +0 -2
- package/dist/src/agent/lifecycle/progress.js +0 -2
- package/dist/src/agent/lifecycle/timeout-wrapper.js +0 -2
- package/dist/src/agent/lifecycle/typing.js +0 -2
- package/dist/src/agent/mcp/bundle-mcp-config.js +0 -2
- package/dist/src/agent/mcp/bundle-mcp-materialize.js +0 -2
- package/dist/src/agent/mcp/bundle-mcp-names.js +0 -2
- package/dist/src/agent/mcp/bundle-mcp-policy.js +0 -2
- package/dist/src/agent/mcp/bundle-mcp-runtime.js +0 -2
- package/dist/src/agent/mcp/embedded-mcp.js +0 -2
- package/dist/src/agent/mcp/mcp-config-shared.js +0 -2
- package/dist/src/agent/mcp/mcp-http.js +0 -2
- package/dist/src/agent/mcp/mcp-stdio-transport.js +0 -2
- package/dist/src/agent/mcp/mcp-stdio.js +0 -2
- package/dist/src/agent/mcp/mcp-tool-meta.js +0 -2
- package/dist/src/agent/mcp/mcp-transport-config.js +0 -2
- package/dist/src/agent/mcp/mcp-transport.js +0 -2
- package/dist/src/agent/mcp/resolve-embedded-mcp-tools.js +0 -2
- package/dist/src/agent/media-generation/model-ref.js +0 -2
- package/dist/src/agent/media-generation/normalization.types.js +0 -2
- package/dist/src/agent/media-generation/runtime-shared.js +0 -2
- package/dist/src/agent/memory/agent-message-access.js +0 -2
- package/dist/src/agent/memory/builtin-memory-store.js +0 -2
- package/dist/src/agent/memory/builtin-provider.js +0 -2
- package/dist/src/agent/memory/compaction.js +0 -2
- package/dist/src/agent/memory/context/planner.js +0 -2
- package/dist/src/agent/memory/context-fence.js +0 -2
- package/dist/src/agent/memory/create-memory-manager.js +0 -2
- package/dist/src/agent/memory/dreaming/config.js +0 -2
- package/dist/src/agent/memory/dreaming/constants.js +0 -2
- package/dist/src/agent/memory/dreaming/deep-promotion.js +0 -2
- package/dist/src/agent/memory/dreaming/events.js +0 -2
- package/dist/src/agent/memory/dreaming/last-run.js +0 -2
- package/dist/src/agent/memory/dreaming/light-sweep.js +0 -2
- package/dist/src/agent/memory/dreaming/preview.js +0 -2
- package/dist/src/agent/memory/dreaming/promotion-lifecycle.js +0 -2
- package/dist/src/agent/memory/dreaming/rem-patterns.js +0 -2
- package/dist/src/agent/memory/dreaming/scope.js +0 -2
- package/dist/src/agent/memory/dreaming/short-term-store.js +0 -2
- package/dist/src/agent/memory/dreaming/utils.js +0 -2
- package/dist/src/agent/memory/lifecycle.js +0 -2
- package/dist/src/agent/memory/manager.js +0 -2
- package/dist/src/agent/memory/memory-config.js +0 -2
- package/dist/src/agent/memory/message-sanitizer.js +0 -2
- package/dist/src/agent/memory/plugin-discovery.js +0 -2
- package/dist/src/agent/memory/sensitivity.js +0 -2
- package/dist/src/agent/memory/source-origin.js +0 -2
- package/dist/src/agent/memory/stub-memory-provider.js +0 -2
- package/dist/src/agent/memory/summary-generator.js +0 -2
- package/dist/src/agent/memory/understanding/correction.js +0 -2
- package/dist/src/agent/memory/understanding/quality.js +0 -2
- package/dist/src/agent/memory/understanding/service.js +0 -2
- package/dist/src/agent/memory/user-context-coordinator.js +0 -2
- package/dist/src/agent/memory/user-message-text.js +0 -2
- package/dist/src/agent/memory/window.js +0 -2
- package/dist/src/agent/messaging/command-handler.js +0 -2
- package/dist/src/agent/messaging/message-router.js +0 -2
- package/dist/src/agent/messaging/outbound-coordinator.js +0 -2
- package/dist/src/agent/messaging/stream-manager.js +0 -2
- package/dist/src/agent/middleware/context.js +0 -2
- package/dist/src/agent/middleware/self-verify.js +0 -2
- package/dist/src/agent/models/manager.js +0 -2
- package/dist/src/agent/models/request-limiter.js +0 -2
- package/dist/src/agent/models/selection.js +0 -2
- package/dist/src/agent/orchestration/agent-event-handler.js +0 -2
- package/dist/src/agent/orchestration/agent-orchestrator.js +0 -2
- package/dist/src/agent/orchestration/llm-turn-retry.js +0 -2
- package/dist/src/agent/orchestration/loop-guard.js +0 -2
- package/dist/src/agent/orchestration/run-agent-turn-with-timeout.js +0 -2
- package/dist/src/agent/prompt/cache-boundary.js +0 -2
- package/dist/src/agent/prompt/memory/index.js +0 -2
- package/dist/src/agent/prompt/safety.js +0 -2
- package/dist/src/agent/prompt/sanitize-for-prompt.js +0 -2
- package/dist/src/agent/prompt/sections/behavior.js +0 -2
- package/dist/src/agent/prompt/sections/memory-skills.js +0 -2
- package/dist/src/agent/prompt/sections/messaging-runtime.js +0 -2
- package/dist/src/agent/prompt/sections/project-context.js +0 -2
- package/dist/src/agent/prompt/sections/tooling.js +0 -2
- package/dist/src/agent/prompt/sections/workspace-runtime.js +0 -2
- package/dist/src/agent/prompt/service-prompt-builder.js +0 -2
- package/dist/src/agent/prompt/subagent-context.js +0 -2
- package/dist/src/agent/prompt/system-prompt-params.js +0 -2
- package/dist/src/agent/prompt/system-prompt.js +0 -2
- package/dist/src/agent/prompt/system-reminder.js +0 -2
- package/dist/src/agent/reply/apply-turn-user-enrichment.js +0 -2
- package/dist/src/agent/reply/post-compaction-context.js +0 -2
- package/dist/src/agent/reply/startup-context.js +0 -2
- package/dist/src/agent/reply/workspace-boundary-read.js +0 -2
- package/dist/src/agent/sandbox/command-validator.js +0 -2
- package/dist/src/agent/sandbox/exec-policy.js +0 -2
- package/dist/src/agent/sandbox/path-policy.js +0 -2
- package/dist/src/agent/sandbox/sanitize-env-vars.js +0 -2
- package/dist/src/agent/sandbox/types.js +0 -2
- package/dist/src/agent/service/async-queue.js +0 -2
- package/dist/src/agent/service/btw-query.js +0 -2
- package/dist/src/agent/service/build-direct-message-content.js +0 -2
- package/dist/src/agent/service/direct-turn-helpers.js +0 -2
- package/dist/src/agent/service/parse-outbound-session-key.js +0 -2
- package/dist/src/agent/service/process-direct-one-shot.js +0 -2
- package/dist/src/agent/service/process-direct-streaming.js +0 -2
- package/dist/src/agent/service/session-context-report.js +0 -2
- package/dist/src/agent/service/webchat-tts.js +0 -2
- package/dist/src/agent/service-inbound-utils.js +0 -2
- package/dist/src/agent/service.js +1 -2
- package/dist/src/agent/service.types.d.ts +2 -0
- package/dist/src/agent/session/session-config-service.js +0 -2
- package/dist/src/agent/session/session-context.js +0 -2
- package/dist/src/agent/session/session-hydrator.js +0 -2
- package/dist/src/agent/session/session-inspector.js +0 -2
- package/dist/src/agent/session/session-lifecycle.js +0 -2
- package/dist/src/agent/session/session-state-bag.js +0 -2
- package/dist/src/agent/session/tracker.js +0 -2
- package/dist/src/agent/skills/config.js +0 -2
- package/dist/src/agent/skills/filesystem-watcher.js +0 -2
- package/dist/src/agent/skills/format-skills-prompt.js +0 -2
- package/dist/src/agent/skills/hub-hash.js +0 -2
- package/dist/src/agent/skills/hub-lock.js +0 -2
- package/dist/src/agent/skills/hub-pull.js +0 -2
- package/dist/src/agent/skills/index.js +0 -2
- package/dist/src/agent/skills/install-target.js +0 -2
- package/dist/src/agent/skills/installer.js +0 -2
- package/dist/src/agent/skills/managed-store.js +0 -2
- package/dist/src/agent/skills/marketplace/adapters/clawhub/adapter.js +0 -2
- package/dist/src/agent/skills/marketplace/adapters/skillhub/adapter.js +0 -2
- package/dist/src/agent/skills/marketplace/adapters/store/adapter.js +0 -2
- package/dist/src/agent/skills/marketplace/adapters/store/store-api-client.js +0 -2
- package/dist/src/agent/skills/marketplace/marketplace-category-order.js +0 -2
- package/dist/src/agent/skills/marketplace/registry.js +0 -2
- package/dist/src/agent/skills/marketplace/resolve-adapter.js +0 -2
- package/dist/src/agent/skills/parse-skill-metadata.js +0 -2
- package/dist/src/agent/skills/required-env-vars.js +0 -2
- package/dist/src/agent/skills/scanner.js +0 -2
- package/dist/src/agent/skills/skill-manage-ops.js +0 -2
- package/dist/src/agent/skills/skill-manager.js +0 -2
- package/dist/src/agent/skills/skill-markdown-preview-from-raw.js +0 -2
- package/dist/src/agent/skills/skill-tool-gating.js +0 -2
- package/dist/src/agent/skills/skill-view-path.js +0 -2
- package/dist/src/agent/skills/skills-marketplace.js +0 -2
- package/dist/src/agent/skills/test-framework.js +0 -2
- package/dist/src/agent/skills/watcher.js +0 -2
- package/dist/src/agent/skills/workspace-skills-dir.js +0 -2
- package/dist/src/agent/source-context/injector.js +0 -2
- package/dist/src/agent/source-context/types.js +0 -2
- package/dist/src/agent/starter-agents.js +0 -2
- package/dist/src/agent/streaming/reasoning-visibility-sse.js +0 -2
- package/dist/src/agent/tool-manuals/browser.js +0 -2
- package/dist/src/agent/tool-manuals/index.js +0 -2
- package/dist/src/agent/tool-manuals/xopc-use.d.ts +1 -1
- package/dist/src/agent/tool-manuals/xopc-use.js +41 -4
- package/dist/src/agent/tools/apply-patch.js +0 -2
- package/dist/src/agent/tools/automation-tool.js +45 -8
- package/dist/src/agent/tools/browser/tool/browser-use-tool.js +0 -2
- package/dist/src/agent/tools/browser/tool/schemas.js +0 -2
- package/dist/src/agent/tools/chain-tracker.js +0 -2
- package/dist/src/agent/tools/clarify-tool.js +0 -2
- package/dist/src/agent/tools/cli-clarify.js +0 -2
- package/dist/src/agent/tools/communication.js +0 -2
- package/dist/src/agent/tools/composio-tool.js +0 -2
- package/dist/src/agent/tools/concurrency.js +0 -2
- package/dist/src/agent/tools/create-share-tool.js +0 -2
- package/dist/src/agent/tools/curated-memory-tool.js +0 -2
- package/dist/src/agent/tools/delegate-tool.js +0 -2
- package/dist/src/agent/tools/desktop-pet-tool.d.ts +12 -0
- package/dist/src/agent/tools/desktop-pet-tool.js +28 -2
- package/dist/src/agent/tools/dreaming-tool.js +0 -2
- package/dist/src/agent/tools/edit-diff.js +0 -2
- package/dist/src/agent/tools/error-pattern-matcher.js +0 -2
- package/dist/src/agent/tools/error-tracker.js +0 -2
- package/dist/src/agent/tools/exec-command.js +0 -2
- package/dist/src/agent/tools/execute-code-tool.js +0 -2
- package/dist/src/agent/tools/executor.js +0 -2
- package/dist/src/agent/tools/factory.d.ts +2 -0
- package/dist/src/agent/tools/factory.js +3 -4
- package/dist/src/agent/tools/find.js +0 -2
- package/dist/src/agent/tools/goal-evidence-recorder.js +0 -2
- package/dist/src/agent/tools/goal-tool.d.ts +7 -1
- package/dist/src/agent/tools/goal-tool.js +34 -7
- package/dist/src/agent/tools/grep.js +0 -2
- package/dist/src/agent/tools/image-generate-tool.js +0 -2
- package/dist/src/agent/tools/image-tool.js +0 -2
- package/dist/src/agent/tools/list-dir.js +0 -2
- package/dist/src/agent/tools/media-read-tool.js +0 -2
- package/dist/src/agent/tools/memory-tool.js +0 -2
- package/dist/src/agent/tools/metadata.js +0 -2
- package/dist/src/agent/tools/read.js +0 -2
- package/dist/src/agent/tools/search/http.js +0 -2
- package/dist/src/agent/tools/search/providers/bing-api.js +0 -2
- package/dist/src/agent/tools/search/providers/bing-html.js +0 -2
- package/dist/src/agent/tools/search/providers/brave.js +0 -2
- package/dist/src/agent/tools/search/providers/duckduckgo-html.js +0 -2
- package/dist/src/agent/tools/search/providers/searxng.js +0 -2
- package/dist/src/agent/tools/search/providers/tavily.js +0 -2
- package/dist/src/agent/tools/search/region.js +0 -2
- package/dist/src/agent/tools/search/registry.js +0 -2
- package/dist/src/agent/tools/search/resolve-config.js +0 -2
- package/dist/src/agent/tools/send-media.js +0 -2
- package/dist/src/agent/tools/session-search-tool.js +0 -2
- package/dist/src/agent/tools/session-status-tool.js +0 -2
- package/dist/src/agent/tools/skill-install-tool.js +0 -2
- package/dist/src/agent/tools/skill-manage-tool.js +0 -2
- package/dist/src/agent/tools/skills-tools.js +0 -2
- package/dist/src/agent/tools/structured-output.js +0 -2
- package/dist/src/agent/tools/todo-tool.js +0 -2
- package/dist/src/agent/tools/tool-manual-tool.js +0 -2
- package/dist/src/agent/tools/tool-paths.js +0 -2
- package/dist/src/agent/tools/truncate.js +0 -2
- package/dist/src/agent/tools/tts-tool.js +0 -2
- package/dist/src/agent/tools/update-plan-tool.js +0 -2
- package/dist/src/agent/tools/url-safety.js +0 -2
- package/dist/src/agent/tools/usage-analyzer.js +0 -2
- package/dist/src/agent/tools/web-extract.js +0 -2
- package/dist/src/agent/tools/web.js +4 -4
- package/dist/src/agent/tools/workflow-tool.js +32 -4
- package/dist/src/agent/tools/write.js +23 -5
- package/dist/src/agent/tools/xopc-use-tool.d.ts +6 -2
- package/dist/src/agent/tools/xopc-use-tool.js +216 -8
- package/dist/src/agent/transcript/google-api.js +0 -2
- package/dist/src/agent/transcript/model-selection.js +0 -2
- package/dist/src/agent/transcript/provider-capabilities.js +0 -2
- package/dist/src/agent/transcript/session-transcript-repair.js +0 -2
- package/dist/src/agent/transcript/strip-tool-messages.js +0 -2
- package/dist/src/agent/transcript/thinking-types.js +0 -2
- package/dist/src/agent/transcript/thinking.js +0 -2
- package/dist/src/agent/transcript/tool-call-id.js +0 -2
- package/dist/src/agent/transcript/transcript-hygiene.js +0 -2
- package/dist/src/agent/transcript/transcript-policy.js +0 -2
- package/dist/src/agent/workflow/agent-progress.js +0 -2
- package/dist/src/agent/workflow/builtins/index.js +0 -2
- package/dist/src/agent/workflow/catalog.js +0 -2
- package/dist/src/agent/workflow/progress-broker.js +0 -2
- package/dist/src/agent/workflow/snapshot-empty.js +0 -2
- package/dist/src/agent/workflow/snapshot.js +0 -2
- package/dist/src/agent/workflow/step-labels.js +0 -2
- package/dist/src/agent/workflow/structured-output-tool.js +0 -2
- package/dist/src/agent/workflow/subagent-runner.js +0 -2
- package/dist/src/agent/workflow/workflow-child-tools.js +0 -2
- package/dist/src/agent/workspace-runtime/registry.js +0 -2
- package/dist/src/agent-manifest/index.js +0 -2
- package/dist/src/agent-manifest/preset-chain.js +0 -2
- package/dist/src/agent-manifest/prompt.js +0 -2
- package/dist/src/agent-manifest/resolver.js +0 -2
- package/dist/src/agent-manifest/schema.js +0 -2
- package/dist/src/agent-manifest/validator.js +0 -2
- package/dist/src/agent-runtime/boundary-guard.js +0 -2
- package/dist/src/agent-runtime/memory-runtime.js +0 -2
- package/dist/src/agent-runtime/model-router.js +0 -2
- package/dist/src/agent-runtime/run-trace.js +0 -2
- package/dist/src/agent-runtime/runtime-profile.js +0 -2
- package/dist/src/agent-runtime/tool-registry.js +0 -2
- package/dist/src/agent-runtime/workflow-runtime.js +0 -2
- package/dist/src/ai-assist/text-assist.js +0 -2
- package/dist/src/auth/credentials.js +0 -2
- package/dist/src/auth/index.js +0 -2
- package/dist/src/auth/oauth/anthropic.js +0 -2
- package/dist/src/auth/oauth/github-copilot.js +0 -2
- package/dist/src/auth/oauth/google-oauth/google-antigravity.js +0 -2
- package/dist/src/auth/oauth/google-oauth/google-gemini-cli.js +0 -2
- package/dist/src/auth/oauth/google-oauth/oauth-page.js +0 -2
- package/dist/src/auth/oauth/google-oauth/pkce.js +0 -2
- package/dist/src/auth/oauth/kimi-coding.js +0 -2
- package/dist/src/auth/oauth/minimax-cn.js +0 -2
- package/dist/src/auth/oauth/minimax.js +0 -2
- package/dist/src/auth/oauth/openai-codex.js +0 -2
- package/dist/src/auth/oauth/pkce.js +0 -2
- package/dist/src/auth/profiles/oauth.js +0 -2
- package/dist/src/auth/profiles/order.js +0 -2
- package/dist/src/auth/profiles/profiles.js +0 -2
- package/dist/src/auth/profiles/store.js +0 -2
- package/dist/src/auth/sync-provider-auth.js +0 -2
- package/dist/src/automations/api/routes.js +0 -2
- package/dist/src/automations/domain/schedule.js +0 -2
- package/dist/src/automations/domain/validation.js +0 -2
- package/dist/src/automations/draft/automation-draft-prompt.js +0 -2
- package/dist/src/automations/draft/automation-draft-service.js +0 -2
- package/dist/src/automations/draft/automation-draft-validator.js +0 -2
- package/dist/src/automations/product-events.js +0 -2
- package/dist/src/automations/service/action-executor.js +0 -2
- package/dist/src/automations/service/automation-service.js +0 -2
- package/dist/src/automations/storage/automation-repository.js +0 -2
- package/dist/src/automations/storage/automation-run-repository.js +0 -2
- package/dist/src/browser/actions/extension-registry-bridge.js +0 -2
- package/dist/src/browser/actions/registry.js +0 -2
- package/dist/src/browser/backend-from-config.js +0 -2
- package/dist/src/browser/browser-command-timeout.js +0 -2
- package/dist/src/browser/cache-dir-policy.js +0 -2
- package/dist/src/browser/cdp-local-launcher.js +0 -2
- package/dist/src/browser/cdp-supervisor.js +0 -2
- package/dist/src/browser/free-port.js +0 -2
- package/dist/src/browser/humanize.js +0 -2
- package/dist/src/browser/install-lock.js +0 -2
- package/dist/src/browser/manager.js +0 -2
- package/dist/src/browser/pipeline/output.js +0 -2
- package/dist/src/browser/pipeline/runner.js +0 -2
- package/dist/src/browser/pipeline/schema.js +0 -2
- package/dist/src/browser/pipeline/source.js +0 -2
- package/dist/src/browser/pipeline/template.js +0 -2
- package/dist/src/browser/providers/browser-ext-install.js +0 -2
- package/dist/src/browser/providers/browser-use.js +0 -2
- package/dist/src/browser/providers/browserbase.js +0 -2
- package/dist/src/browser/providers/cloakbrowser.js +0 -2
- package/dist/src/browser/providers/extension-ws-acquire.js +0 -2
- package/dist/src/browser/providers/extension.js +0 -2
- package/dist/src/browser/providers/playwright-doctor.js +13 -4
- package/dist/src/browser/providers/playwright-install.js +0 -2
- package/dist/src/browser/readiness.js +0 -2
- package/dist/src/browser/schemas.js +0 -2
- package/dist/src/browser/session-lifecycle.js +0 -2
- package/dist/src/browser/snapshot-helpers.js +0 -2
- package/dist/src/browser/stealth.js +0 -2
- package/dist/src/browser/url-policy.js +0 -2
- package/dist/src/capabilities/store-connector.js +0 -2
- package/dist/src/channels/attachments/attachment-classifiers.js +0 -2
- package/dist/src/channels/attachments/inbound-persist.js +0 -2
- package/dist/src/channels/attachments/inbound-types.js +0 -2
- package/dist/src/channels/attachments/outbound-tts-persist.js +0 -2
- package/dist/src/channels/attachments/voice-stt-webchat.js +0 -2
- package/dist/src/channels/catalog/channel-catalog-service.js +0 -2
- package/dist/src/channels/config-helpers.js +0 -2
- package/dist/src/channels/envelope-timestamp.js +0 -2
- package/dist/src/channels/exec-approval-runtime.js +0 -2
- package/dist/src/channels/health-monitor.js +0 -2
- package/dist/src/channels/heartbeat-scheduler.js +0 -2
- package/dist/src/channels/internal-outbound.js +0 -2
- package/dist/src/channels/lifecycle-supervisor.js +0 -2
- package/dist/src/channels/manager.js +0 -2
- package/dist/src/channels/media.js +0 -2
- package/dist/src/channels/outbound/deliver.js +0 -2
- package/dist/src/channels/outbound/normalize.js +0 -2
- package/dist/src/channels/outbound/persist-store.js +0 -2
- package/dist/src/channels/outbound/queue.js +0 -2
- package/dist/src/channels/outbound-sender.js +0 -2
- package/dist/src/channels/pairing/allow-from-file.js +0 -2
- package/dist/src/channels/pairing/approve-cli.js +0 -2
- package/dist/src/channels/pairing/pairing-challenge.js +0 -2
- package/dist/src/channels/pairing/pairing-constants.js +0 -2
- package/dist/src/channels/pairing/pairing-events.js +0 -2
- package/dist/src/channels/pairing/pairing-messages.js +0 -2
- package/dist/src/channels/pairing/pairing-service.js +0 -2
- package/dist/src/channels/pairing/pairing-store-adapter.js +0 -2
- package/dist/src/channels/pairing/pairing-store.js +0 -2
- package/dist/src/channels/pairing/paths.js +0 -2
- package/dist/src/channels/pairing/preseed-allow-from.js +0 -2
- package/dist/src/channels/pipeline.js +0 -2
- package/dist/src/channels/plugin-registry.js +0 -2
- package/dist/src/channels/plugins/registry.js +0 -2
- package/dist/src/channels/restart-policy.js +0 -2
- package/dist/src/channels/security-helpers.js +0 -2
- package/dist/src/channels/security.js +0 -2
- package/dist/src/channels/setup-wizard-discovery.js +0 -2
- package/dist/src/chat-commands/agent-edit.js +0 -2
- package/dist/src/chat-commands/builtins/config.js +0 -2
- package/dist/src/chat-commands/builtins/context.js +0 -2
- package/dist/src/chat-commands/builtins/goal.js +0 -2
- package/dist/src/chat-commands/builtins/model.js +0 -2
- package/dist/src/chat-commands/builtins/review.js +0 -2
- package/dist/src/chat-commands/builtins/session.js +0 -2
- package/dist/src/chat-commands/builtins/skill.js +0 -2
- package/dist/src/chat-commands/builtins/subgoal.js +0 -2
- package/dist/src/chat-commands/builtins/system.js +0 -2
- package/dist/src/chat-commands/builtins/thinking.js +0 -2
- package/dist/src/chat-commands/builtins/tts.js +0 -2
- package/dist/src/chat-commands/builtins/workflow.js +0 -2
- package/dist/src/chat-commands/command-parse.js +0 -2
- package/dist/src/chat-commands/config-paths.js +0 -2
- package/dist/src/chat-commands/config-value.js +0 -2
- package/dist/src/chat-commands/context.js +0 -2
- package/dist/src/chat-commands/format-output.js +0 -2
- package/dist/src/chat-commands/index.js +0 -2
- package/dist/src/chat-commands/processor.js +0 -2
- package/dist/src/chat-commands/registry.js +0 -2
- package/dist/src/chat-commands/session-key.js +0 -2
- package/dist/src/cli/argv-invocation.js +0 -2
- package/dist/src/cli/argv.js +0 -2
- package/dist/src/cli/bin.js +0 -2
- package/dist/src/cli/cli-log-level-preset.js +0 -2
- package/dist/src/cli/command-catalog.js +0 -2
- package/dist/src/cli/command-loaders.js +0 -2
- package/dist/src/cli/command-manifest.js +0 -2
- package/dist/src/cli/command-path-matches.js +0 -2
- package/dist/src/cli/command-path-policy.js +0 -2
- package/dist/src/cli/command-startup-policy.js +0 -2
- package/dist/src/cli/commands/agent/interactive.js +0 -2
- package/dist/src/cli/commands/agent/sessions.js +0 -2
- package/dist/src/cli/commands/agent/stream-renderer.js +0 -2
- package/dist/src/cli/commands/agent.js +0 -2
- package/dist/src/cli/commands/agents.js +0 -2
- package/dist/src/cli/commands/auth.js +0 -2
- package/dist/src/cli/commands/browser-cli-helpers.js +0 -2
- package/dist/src/cli/commands/browser.js +0 -2
- package/dist/src/cli/commands/channels.js +0 -2
- package/dist/src/cli/commands/config.js +0 -2
- package/dist/src/cli/commands/connectors.js +0 -2
- package/dist/src/cli/commands/doctor/checks/channel-config.js +0 -2
- package/dist/src/cli/commands/doctor/checks/channel-pairing-pending.js +0 -2
- package/dist/src/cli/commands/doctor/checks/channel-plugins.js +0 -2
- package/dist/src/cli/commands/doctor/checks/config-health.js +0 -2
- package/dist/src/cli/commands/doctor/checks/database-schema.js +0 -2
- package/dist/src/cli/commands/doctor/checks/gateway-health.js +0 -2
- package/dist/src/cli/commands/doctor/checks/gateway-service.js +0 -2
- package/dist/src/cli/commands/doctor/checks/migrations.js +0 -2
- package/dist/src/cli/commands/doctor/checks/node-version.js +0 -2
- package/dist/src/cli/commands/doctor/checks/provider-auth.js +0 -2
- package/dist/src/cli/commands/doctor/checks/security-audit.js +0 -2
- package/dist/src/cli/commands/doctor/checks/session-integrity.js +0 -2
- package/dist/src/cli/commands/doctor/checks/state-integrity.js +0 -2
- package/dist/src/cli/commands/doctor/checks/version-check.js +0 -2
- package/dist/src/cli/commands/doctor/checks/workspace-status.js +0 -2
- package/dist/src/cli/commands/doctor/flow.js +0 -2
- package/dist/src/cli/commands/doctor/format.js +0 -2
- package/dist/src/cli/commands/doctor/index.js +0 -2
- package/dist/src/cli/commands/extension-create.js +0 -2
- package/dist/src/cli/commands/extension-dev.js +0 -2
- package/dist/src/cli/commands/extension-marketplace.js +0 -2
- package/dist/src/cli/commands/extension-pack.js +0 -2
- package/dist/src/cli/commands/extension.js +0 -2
- package/dist/src/cli/commands/gateway/call.js +0 -2
- package/dist/src/cli/commands/gateway/health.js +0 -2
- package/dist/src/cli/commands/gateway/lifecycle-core.js +0 -2
- package/dist/src/cli/commands/gateway/lifecycle.js +0 -2
- package/dist/src/cli/commands/gateway/logs.js +0 -2
- package/dist/src/cli/commands/gateway/probe.js +0 -2
- package/dist/src/cli/commands/gateway/restart-health.js +0 -2
- package/dist/src/cli/commands/gateway/restart.js +0 -2
- package/dist/src/cli/commands/gateway/run-foreground.js +0 -2
- package/dist/src/cli/commands/gateway/service.js +0 -2
- package/dist/src/cli/commands/gateway/shared.js +0 -2
- package/dist/src/cli/commands/gateway/status.js +0 -2
- package/dist/src/cli/commands/gateway/stop.js +0 -2
- package/dist/src/cli/commands/gateway/subcommands.js +0 -2
- package/dist/src/cli/commands/gateway/token.js +0 -2
- package/dist/src/cli/commands/gateway-ssh-tunnel.js +0 -2
- package/dist/src/cli/commands/gateway.js +0 -2
- package/dist/src/cli/commands/goal.js +0 -2
- package/dist/src/cli/commands/image.js +0 -2
- package/dist/src/cli/commands/init.js +0 -2
- package/dist/src/cli/commands/logs.js +0 -2
- package/dist/src/cli/commands/models.js +0 -2
- package/dist/src/cli/commands/onboard/channels/index.js +0 -2
- package/dist/src/cli/commands/onboard/channels/onboard-to-configurator.js +0 -2
- package/dist/src/cli/commands/onboard/channels/registry.js +0 -2
- package/dist/src/cli/commands/onboard/channels/wizard-to-configurator.js +0 -2
- package/dist/src/cli/commands/onboard/gateway.js +0 -2
- package/dist/src/cli/commands/onboard/model.js +0 -2
- package/dist/src/cli/commands/onboard.js +0 -2
- package/dist/src/cli/commands/profile.js +0 -2
- package/dist/src/cli/commands/project.js +0 -2
- package/dist/src/cli/commands/providers.js +0 -2
- package/dist/src/cli/commands/resume.js +0 -2
- package/dist/src/cli/commands/search.js +0 -2
- package/dist/src/cli/commands/session/actions.js +0 -2
- package/dist/src/cli/commands/session/utils.js +0 -2
- package/dist/src/cli/commands/session.js +0 -2
- package/dist/src/cli/commands/setup-shared/output.js +0 -2
- package/dist/src/cli/commands/setup-shared/prompts.js +0 -2
- package/dist/src/cli/commands/setup-shared/runner.js +0 -2
- package/dist/src/cli/commands/setup-shared/types.js +0 -2
- package/dist/src/cli/commands/setup.js +0 -2
- package/dist/src/cli/commands/skills-test.js +0 -2
- package/dist/src/cli/commands/skills.js +0 -2
- package/dist/src/cli/commands/tailscale.js +0 -2
- package/dist/src/cli/commands/tui-runner.js +0 -2
- package/dist/src/cli/commands/tui.js +0 -2
- package/dist/src/cli/commands/tunnel.js +0 -2
- package/dist/src/cli/commands/update.js +0 -2
- package/dist/src/cli/commands/voice.js +0 -2
- package/dist/src/cli/context.js +0 -2
- package/dist/src/cli/extension-cli-register.js +0 -2
- package/dist/src/cli/gateway-run-argv.js +0 -2
- package/dist/src/cli/gateway-run-fast-path.js +0 -2
- package/dist/src/cli/index.js +0 -2
- package/dist/src/cli/registry.js +0 -2
- package/dist/src/cli/templates.js +0 -2
- package/dist/src/cli/utils/colors.js +0 -2
- package/dist/src/cli/utils/gateway-client-options.js +0 -2
- package/dist/src/cli/utils/gateway-client.js +0 -2
- package/dist/src/cli/utils/init-workspace-core.js +0 -2
- package/dist/src/cli/utils/init-workspace.js +0 -2
- package/dist/src/cli/utils/oauth-login.js +0 -2
- package/dist/src/cli/utils/oauth-providers.js +0 -2
- package/dist/src/cli/utils/session.js +0 -2
- package/dist/src/commands/agents.config.js +0 -2
- package/dist/src/config/agent-profile.js +0 -2
- package/dist/src/config/agent-typed-models.js +0 -2
- package/dist/src/config/commands.flags.js +0 -2
- package/dist/src/config/default-model.js +0 -2
- package/dist/src/config/diff.js +0 -2
- package/dist/src/config/gateway-bind.js +0 -2
- package/dist/src/config/index.js +0 -2
- package/dist/src/config/loader.js +0 -2
- package/dist/src/config/mcp-config-normalize.js +0 -2
- package/dist/src/config/model-input.js +0 -2
- package/dist/src/config/models-json.js +0 -2
- package/dist/src/config/paths-state.js +0 -2
- package/dist/src/config/paths.js +0 -2
- package/dist/src/config/profile.js +0 -2
- package/dist/src/config/public-url.js +0 -2
- package/dist/src/config/reload.js +0 -2
- package/dist/src/config/resolve-config-value.js +0 -2
- package/dist/src/config/rules.js +0 -2
- package/dist/src/config/runtime-overrides.js +0 -2
- package/dist/src/config/schema.js +0 -2
- package/dist/src/config/validate-channel-configs.js +0 -2
- package/dist/src/config/voice.js +0 -2
- package/dist/src/config/web-patch.js +0 -2
- package/dist/src/config/workspace-defaults.js +0 -2
- package/dist/src/config/workspace-dirs.js +0 -2
- package/dist/src/config/workspace-path-helpers.js +0 -2
- package/dist/src/config/workspace-path.js +0 -2
- package/dist/src/connectors/approval.js +0 -2
- package/dist/src/connectors/auth-provider-registry.js +0 -2
- package/dist/src/connectors/builtin-catalog.js +0 -2
- package/dist/src/connectors/catalog.js +0 -2
- package/dist/src/connectors/composio-catalog.js +0 -2
- package/dist/src/connectors/composio-logo.js +0 -2
- package/dist/src/connectors/composio-sessions.js +9 -5
- package/dist/src/connectors/composio-triggers.js +0 -2
- package/dist/src/connectors/composio.js +0 -2
- package/dist/src/connectors/connector-memory-sync.js +0 -2
- package/dist/src/connectors/health.js +0 -2
- package/dist/src/connectors/install.js +0 -2
- package/dist/src/connectors/instances.js +0 -2
- package/dist/src/connectors/integration-strategy.js +0 -2
- package/dist/src/connectors/lifecycle.js +0 -2
- package/dist/src/connectors/materialize.js +0 -2
- package/dist/src/connectors/policy.js +0 -2
- package/dist/src/connectors/providers.js +0 -2
- package/dist/src/connectors/registries/modelscope.js +0 -2
- package/dist/src/connectors/registries/official-mcp.js +0 -2
- package/dist/src/connectors/registries/search.js +0 -2
- package/dist/src/connectors/registries/smithery.js +0 -2
- package/dist/src/connectors/runtime-adapter-registry.js +0 -2
- package/dist/src/connectors/secret-store.js +0 -2
- package/dist/src/connectors/setup-secrets.js +0 -2
- package/dist/src/connectors/supervisor.js +0 -2
- package/dist/src/connectors/usage.js +0 -2
- package/dist/src/connectors/workflow-preflight.js +0 -2
- package/dist/src/daemon/constants.js +0 -2
- package/dist/src/daemon/install-plan.js +0 -2
- package/dist/src/daemon/launchd.js +0 -2
- package/dist/src/daemon/schtasks.js +0 -2
- package/dist/src/daemon/service-audit.js +0 -2
- package/dist/src/daemon/service.js +0 -2
- package/dist/src/daemon/systemd.js +0 -2
- package/dist/src/document-understanding/extract.js +0 -2
- package/dist/src/errors/index.js +0 -2
- package/dist/src/extensions/activation-context.js +0 -2
- package/dist/src/extensions/activation-planner.js +0 -2
- package/dist/src/extensions/api.js +0 -2
- package/dist/src/extensions/bundle-mcp.js +0 -2
- package/dist/src/extensions/bundled-extension-activation.js +0 -2
- package/dist/src/extensions/diagnostics.js +0 -2
- package/dist/src/extensions/discover-extensions.js +0 -2
- package/dist/src/extensions/engine-check.js +0 -2
- package/dist/src/extensions/extension-metadata-snapshot.js +0 -2
- package/dist/src/extensions/extension-registry-impl.js +0 -2
- package/dist/src/extensions/health.js +0 -2
- package/dist/src/extensions/hooks.js +0 -2
- package/dist/src/extensions/index.js +0 -2
- package/dist/src/extensions/install-transaction.js +0 -2
- package/dist/src/extensions/install.js +0 -2
- package/dist/src/extensions/loader.js +0 -2
- package/dist/src/extensions/lockfile.js +0 -2
- package/dist/src/extensions/manifest-registry.js +0 -2
- package/dist/src/extensions/marketplace.js +0 -2
- package/dist/src/extensions/media-provider-contracts.js +0 -2
- package/dist/src/extensions/normalize-manifest.js +0 -2
- package/dist/src/extensions/onboard-helpers.js +0 -2
- package/dist/src/extensions/package-contract.js +0 -2
- package/dist/src/extensions/sdk/channel-entry.js +0 -2
- package/dist/src/extensions/sdk/channel-helpers.js +0 -2
- package/dist/src/extensions/sdk/index.js +0 -2
- package/dist/src/extensions/sdk/lazy.js +0 -2
- package/dist/src/extensions/sdk/testing.js +0 -2
- package/dist/src/extensions/security.js +0 -2
- package/dist/src/extensions/slots.js +0 -2
- package/dist/src/extensions/speech-provider-contracts.js +0 -2
- package/dist/src/extensions/store-zip-limits.js +0 -2
- package/dist/src/extensions/typed-event-bus.js +0 -2
- package/dist/src/extensions/types/hooks.js +0 -2
- package/dist/src/extensions/types/providers.js +0 -2
- package/dist/src/extensions/update.js +0 -2
- package/dist/src/extensions/when-context.js +0 -2
- package/dist/src/extensions/when-expression.js +0 -2
- package/dist/src/gateway/agent-builtin-tools.js +0 -2
- package/dist/src/gateway/agent-run-relay.js +0 -2
- package/dist/src/gateway/agents-admin.js +0 -2
- package/dist/src/gateway/auth.js +0 -2
- package/dist/src/gateway/capability-presets-admin.js +0 -2
- package/dist/src/gateway/chat-limits.js +0 -2
- package/dist/src/gateway/chat-stream/mapper.js +28 -14
- package/dist/src/gateway/chat-stream/pet-feedback.d.ts +13 -0
- package/dist/src/gateway/chat-stream/pet-feedback.js +45 -0
- package/dist/src/gateway/chat-stream/protocol.d.ts +26 -0
- package/dist/src/gateway/clarify-bridge.js +3 -3
- package/dist/src/gateway/clarify-runtime.js +0 -2
- package/dist/src/gateway/client-ip.js +0 -2
- package/dist/src/gateway/config-tools-web.js +0 -2
- package/dist/src/gateway/credential.js +0 -2
- package/dist/src/gateway/discovery/mdns.js +0 -2
- package/dist/src/gateway/dreaming-automation-reconciler.js +0 -2
- package/dist/src/gateway/ensure-network-cors.js +0 -2
- package/dist/src/gateway/file-path-classifier.js +0 -2
- package/dist/src/gateway/file-reference-registry.js +0 -2
- package/dist/src/gateway/global-defaults-admin.js +0 -2
- package/dist/src/gateway/heartbeat/service.js +0 -2
- package/dist/src/gateway/hono/app.js +0 -2
- package/dist/src/gateway/hono/lib/agent-model.js +0 -2
- package/dist/src/gateway/hono/lib/config-payload.js +0 -2
- package/dist/src/gateway/hono/lib/extension-assets.js +0 -2
- package/dist/src/gateway/hono/lib/extension-store.js +0 -2
- package/dist/src/gateway/hono/lib/mask-secret-length.js +0 -2
- package/dist/src/gateway/hono/lib/route-logger.js +0 -2
- package/dist/src/gateway/hono/lib/safe-providers-config.js +0 -2
- package/dist/src/gateway/hono/lib/safe-voice-config.js +0 -2
- package/dist/src/gateway/hono/lib/startup-unavailable.js +0 -2
- package/dist/src/gateway/hono/lib/static-ui.js +0 -2
- package/dist/src/gateway/hono/middleware/auth.js +0 -2
- package/dist/src/gateway/hono/middleware/log-context.js +0 -2
- package/dist/src/gateway/hono/middleware/logger.js +0 -2
- package/dist/src/gateway/hono/middleware/route-errors.js +0 -2
- package/dist/src/gateway/hono/middleware/scopes.js +0 -2
- package/dist/src/gateway/hono/middleware/strict-rate-limit.js +0 -2
- package/dist/src/gateway/hono/oauth-async.js +0 -2
- package/dist/src/gateway/hono/oauth.js +0 -2
- package/dist/src/gateway/hono/routes/activity.js +0 -2
- package/dist/src/gateway/hono/routes/agent-stream.js +0 -2
- package/dist/src/gateway/hono/routes/agents.js +0 -2
- package/dist/src/gateway/hono/routes/ai-assist.js +0 -2
- package/dist/src/gateway/hono/routes/auth-registry-extensions.js +0 -2
- package/dist/src/gateway/hono/routes/browser-install.js +0 -2
- package/dist/src/gateway/hono/routes/browser.js +0 -2
- package/dist/src/gateway/hono/routes/capabilities.js +0 -2
- package/dist/src/gateway/hono/routes/capability-presets.js +0 -2
- package/dist/src/gateway/hono/routes/channels.js +0 -2
- package/dist/src/gateway/hono/routes/commands-skills.js +0 -2
- package/dist/src/gateway/hono/routes/config-patch/agents.js +0 -2
- package/dist/src/gateway/hono/routes/config-patch/channels.js +0 -2
- package/dist/src/gateway/hono/routes/config-patch/gateway.js +0 -2
- package/dist/src/gateway/hono/routes/config-patch/misc.js +0 -2
- package/dist/src/gateway/hono/routes/config-patch/result.js +0 -2
- package/dist/src/gateway/hono/routes/config.js +0 -2
- package/dist/src/gateway/hono/routes/connectors.js +0 -2
- package/dist/src/gateway/hono/routes/doctor.js +0 -2
- package/dist/src/gateway/hono/routes/dreaming.js +0 -2
- package/dist/src/gateway/hono/routes/exposure.js +0 -2
- package/dist/src/gateway/hono/routes/extension-gateway.js +0 -2
- package/dist/src/gateway/hono/routes/global-defaults.js +0 -2
- package/dist/src/gateway/hono/routes/goals.js +0 -2
- package/dist/src/gateway/hono/routes/home.js +0 -2
- package/dist/src/gateway/hono/routes/host-fs.js +0 -2
- package/dist/src/gateway/hono/routes/index.js +0 -2
- package/dist/src/gateway/hono/routes/lazy-bundles.js +0 -2
- package/dist/src/gateway/hono/routes/lazy-fallback.js +0 -2
- package/dist/src/gateway/hono/routes/local-apps.js +0 -2
- package/dist/src/gateway/hono/routes/logs.js +0 -2
- package/dist/src/gateway/hono/routes/mcp.js +0 -2
- package/dist/src/gateway/hono/routes/media.js +0 -2
- package/dist/src/gateway/hono/routes/memory.js +0 -2
- package/dist/src/gateway/hono/routes/migrations.js +0 -2
- package/dist/src/gateway/hono/routes/mobile.js +0 -2
- package/dist/src/gateway/hono/routes/models.js +0 -2
- package/dist/src/gateway/hono/routes/notes.js +3 -3
- package/dist/src/gateway/hono/routes/projects.js +0 -2
- package/dist/src/gateway/hono/routes/public-gateway.js +0 -2
- package/dist/src/gateway/hono/routes/search.js +0 -2
- package/dist/src/gateway/hono/routes/sessions.js +0 -2
- package/dist/src/gateway/hono/routes/shares.js +0 -2
- package/dist/src/gateway/hono/routes/site-shares.js +0 -2
- package/dist/src/gateway/hono/routes/status.js +0 -2
- package/dist/src/gateway/hono/routes/tui.js +0 -2
- package/dist/src/gateway/hono/routes/tunnel.js +0 -2
- package/dist/src/gateway/hono/routes/update.js +0 -2
- package/dist/src/gateway/hono/routes/voice.js +0 -2
- package/dist/src/gateway/hono/routes/work-discovery.js +0 -2
- package/dist/src/gateway/hono/routes/workflows.js +0 -2
- package/dist/src/gateway/hono/routes/workspace.js +0 -2
- package/dist/src/gateway/hono/routes/you.js +0 -2
- package/dist/src/gateway/hono/sse-json.js +0 -2
- package/dist/src/gateway/hono/sse.js +0 -2
- package/dist/src/gateway/host.js +0 -2
- package/dist/src/gateway/image-capabilities.js +0 -2
- package/dist/src/gateway/listen.js +0 -2
- package/dist/src/gateway/lock.js +0 -2
- package/dist/src/gateway/ports.js +0 -2
- package/dist/src/gateway/protocol.js +0 -2
- package/dist/src/gateway/public-url.js +0 -2
- package/dist/src/gateway/rate-limit/auth-policy.js +0 -2
- package/dist/src/gateway/rate-limit/buckets.js +0 -2
- package/dist/src/gateway/rate-limit/env-flags.js +0 -2
- package/dist/src/gateway/resolve-channel-connect-defer.js +0 -2
- package/dist/src/gateway/resolve-webchat-session-key.js +0 -2
- package/dist/src/gateway/respawn.js +0 -2
- package/dist/src/gateway/run-loop.js +0 -2
- package/dist/src/gateway/runtime-config.js +0 -2
- package/dist/src/gateway/security/audit.js +0 -2
- package/dist/src/gateway/security/csp.js +0 -2
- package/dist/src/gateway/security/dangerous-tools.js +0 -2
- package/dist/src/gateway/security/external-content.js +0 -2
- package/dist/src/gateway/security/known-weak-secrets.js +0 -2
- package/dist/src/gateway/security/loopback.js +0 -2
- package/dist/src/gateway/security/operator-scopes.js +0 -2
- package/dist/src/gateway/security/origin-check.js +0 -2
- package/dist/src/gateway/security/preauth-connection-budget.js +0 -2
- package/dist/src/gateway/security/secret-equal.js +0 -2
- package/dist/src/gateway/server-tailscale.js +0 -2
- package/dist/src/gateway/server.js +0 -2
- package/dist/src/gateway/service/agent-runner.js +0 -2
- package/dist/src/gateway/service/config-coordinator.js +0 -2
- package/dist/src/gateway/service/marketplace-service.js +0 -2
- package/dist/src/gateway/service/run-gateway-agent.js +0 -2
- package/dist/src/gateway/service/session-chat-ids.js +0 -2
- package/dist/src/gateway/service/sessions-api.js +0 -2
- package/dist/src/gateway/service/sse-hub.js +0 -2
- package/dist/src/gateway/service.js +1 -2
- package/dist/src/gateway/session-reset-service.js +0 -2
- package/dist/src/gateway/startup-readiness.js +0 -2
- package/dist/src/gateway/startup-trace.js +0 -2
- package/dist/src/gateway/tailscale-auth.js +0 -2
- package/dist/src/gateway/tailscale-lifecycle.js +0 -2
- package/dist/src/gateway/tls-server.js +0 -2
- package/dist/src/gateway/trusted-proxy.js +0 -2
- package/dist/src/gateway/user-turn-input.js +0 -2
- package/dist/src/gateway/workspace-editor-path.js +0 -2
- package/dist/src/gateway/workspace-file-search.js +0 -2
- package/dist/src/gateway/workspace-fs-file-list.js +0 -2
- package/dist/src/gateway/workspace-heartbeat-path.js +0 -2
- package/dist/src/gateway/workspace-ripgrep.js +0 -2
- package/dist/src/gateway/ws-security.js +0 -2
- package/dist/src/generated/bundled-image-generation-providers.js +0 -2
- package/dist/src/goals/goal-contract-draft.js +0 -2
- package/dist/src/goals/goal-evidence-review.js +0 -2
- package/dist/src/goals/goal-notifications.js +0 -2
- package/dist/src/goals/goal-queue-store.js +0 -2
- package/dist/src/goals/goal-runner.js +0 -2
- package/dist/src/goals/goal-service.js +0 -2
- package/dist/src/goals/goal-store.js +0 -2
- package/dist/src/goals/goal-workflow-judge.js +0 -2
- package/dist/src/heartbeat/active-hours.js +0 -2
- package/dist/src/heartbeat/content-check.js +0 -2
- package/dist/src/heartbeat/event-prompt.js +0 -2
- package/dist/src/heartbeat/tokens.js +0 -2
- package/dist/src/heartbeat/wake.js +0 -2
- package/dist/src/i18n/format.js +0 -2
- package/dist/src/i18n/goals-bundle.js +0 -2
- package/dist/src/i18n/locale.js +0 -2
- package/dist/src/i18n/locales/goals.en.js +0 -2
- package/dist/src/i18n/locales/goals.zh.js +0 -2
- package/dist/src/i18n/locales/share-tool.en.js +0 -2
- package/dist/src/i18n/locales/share-tool.zh.js +0 -2
- package/dist/src/i18n/share-tool-bundle.js +0 -2
- package/dist/src/index.js +0 -2
- package/dist/src/infra/brew.js +0 -2
- package/dist/src/infra/bus/queue.js +0 -2
- package/dist/src/infra/debounce.js +0 -2
- package/dist/src/infra/exec.js +0 -2
- package/dist/src/infra/gateway-process-argv.js +0 -2
- package/dist/src/infra/gateway-processes.js +0 -2
- package/dist/src/infra/host-env-security-policy.js +0 -2
- package/dist/src/infra/host-env-security.js +0 -2
- package/dist/src/infra/http-proxy-env.js +0 -2
- package/dist/src/infra/is-main.js +0 -2
- package/dist/src/infra/json-utf8-bytes.js +0 -2
- package/dist/src/infra/node-sqlite.js +0 -2
- package/dist/src/infra/package-json.js +0 -2
- package/dist/src/infra/package-update-steps.js +0 -2
- package/dist/src/infra/path-env.js +0 -2
- package/dist/src/infra/path-prepend.js +0 -2
- package/dist/src/infra/ports.js +0 -2
- package/dist/src/infra/rate-limit/failure-limiter.js +0 -2
- package/dist/src/infra/rate-limit/keyed-store.js +0 -2
- package/dist/src/infra/rate-limit/rate-limiter.js +0 -2
- package/dist/src/infra/restart.js +0 -2
- package/dist/src/infra/retry.js +0 -2
- package/dist/src/infra/run-command.js +0 -2
- package/dist/src/infra/sqlite-errors.js +0 -2
- package/dist/src/infra/ssh-tunnel.js +0 -2
- package/dist/src/infra/stable-node-path.js +0 -2
- package/dist/src/infra/tailscale.js +0 -2
- package/dist/src/infra/undici-fetch.js +0 -2
- package/dist/src/infra/unhandled-rejections.js +0 -2
- package/dist/src/infra/update-channels.js +0 -2
- package/dist/src/infra/update-check.js +0 -2
- package/dist/src/infra/update-global.js +0 -2
- package/dist/src/infra/update-lock.js +0 -2
- package/dist/src/infra/update-log.js +0 -2
- package/dist/src/infra/update-restart.js +0 -2
- package/dist/src/infra/update-runner.js +0 -2
- package/dist/src/infra/update-startup.js +0 -2
- package/dist/src/infra/warning-filter.js +0 -2
- package/dist/src/infra/write-file-atomic.js +0 -2
- package/dist/src/knowledge/connected-knowledge-pipeline.js +0 -2
- package/dist/src/knowledge/coordinator.js +0 -2
- package/dist/src/knowledge/ingestion-service.js +0 -2
- package/dist/src/local-apps/acceptance.js +0 -2
- package/dist/src/local-apps/preview-runtime-bridge.js +0 -2
- package/dist/src/local-apps/runtime-entry.js +0 -2
- package/dist/src/local-apps/scaffold.js +0 -2
- package/dist/src/local-apps/service.js +0 -2
- package/dist/src/local-apps/store.js +0 -2
- package/dist/src/markdown/chunk.js +0 -2
- package/dist/src/markdown/code-spans.js +0 -2
- package/dist/src/markdown/fences.js +0 -2
- package/dist/src/markdown/frontmatter.js +0 -2
- package/dist/src/markdown/ir.js +0 -2
- package/dist/src/markdown/render.js +0 -2
- package/dist/src/markdown/tables.js +0 -2
- package/dist/src/mcp/channel-bridge.js +0 -2
- package/dist/src/mcp/channel-server.js +0 -2
- package/dist/src/mcp/channel-shared.js +0 -2
- package/dist/src/mcp/channel-tools.js +0 -2
- package/dist/src/mcp/gateway-http-client.js +0 -2
- package/dist/src/media/media-reference.js +0 -2
- package/dist/src/media/paths.js +0 -2
- package/dist/src/media/session-references.js +0 -2
- package/dist/src/media/store.js +0 -2
- package/dist/src/media/uri.js +0 -2
- package/dist/src/media-shared/http/api-key-rotation.js +0 -2
- package/dist/src/media-shared/http/deadline.js +0 -2
- package/dist/src/media-shared/http/private-network.js +0 -2
- package/dist/src/media-shared/http/provider-http-errors.js +0 -2
- package/dist/src/media-shared/http/provider-http.js +0 -2
- package/dist/src/media-shared/http/resolve-provider-http-request-config.js +0 -2
- package/dist/src/media-shared/http/ssrf-guard.js +0 -2
- package/dist/src/media-shared/http/test-helpers/mock-server.js +0 -2
- package/dist/src/media-understanding/audio-transcription-runner.js +0 -2
- package/dist/src/media-understanding/openai-compatible-audio.js +0 -2
- package/dist/src/media-understanding/registry.js +0 -2
- package/dist/src/media-understanding/resolve-entries.js +0 -2
- package/dist/src/media-understanding/runner.js +0 -2
- package/dist/src/migrations/config/default-capability-preset.js +0 -2
- package/dist/src/migrations/registry.js +0 -2
- package/dist/src/migrations/runner.js +0 -2
- package/dist/src/mobile/notification-service.js +0 -2
- package/dist/src/mobile/notification-store.js +0 -2
- package/dist/src/mobile/notification-types.js +0 -2
- package/dist/src/notes/agent-context.js +0 -2
- package/dist/src/notes/attachment-ref.js +0 -2
- package/dist/src/notes/note-attachment-sync.js +0 -2
- package/dist/src/notes/note-index-meta.js +0 -2
- package/dist/src/notes/note-markdown.js +0 -2
- package/dist/src/notes/paths.js +0 -2
- package/dist/src/notes/service.d.ts +3 -1
- package/dist/src/notes/service.js +19 -5
- package/dist/src/notes/store.js +0 -2
- package/dist/src/package-version.js +0 -2
- package/dist/src/pets/factory.d.ts +13 -0
- package/dist/src/pets/factory.js +23 -2
- package/dist/src/pets/manifest.js +0 -2
- package/dist/src/pets/validator.js +0 -2
- package/dist/src/process/kill-tree.js +0 -2
- package/dist/src/project-trust/trust-store.js +0 -2
- package/dist/src/projects/automation-bind.js +0 -2
- package/dist/src/projects/goal-bind.js +0 -2
- package/dist/src/projects/memory-bind.js +0 -2
- package/dist/src/projects/project-agent-suggestion.js +0 -2
- package/dist/src/projects/project-agent.js +0 -2
- package/dist/src/projects/project-kind.js +0 -2
- package/dist/src/projects/project-loop.js +0 -2
- package/dist/src/projects/project-service.js +0 -2
- package/dist/src/projects/project-store.js +0 -2
- package/dist/src/projects/session-bind.js +0 -2
- package/dist/src/projects/workflow-bind.js +0 -2
- package/dist/src/projects/workspace-project.js +0 -2
- package/dist/src/projects/workspace.js +0 -2
- package/dist/src/providers/auth-runtime/auth-profile-store.js +0 -2
- package/dist/src/providers/auth-runtime/is-configured.js +0 -2
- package/dist/src/providers/auth-runtime/oauth.js +0 -2
- package/dist/src/providers/auth-runtime/resolve-api-key.js +0 -2
- package/dist/src/providers/auth-runtime/resolve-auth.js +0 -2
- package/dist/src/providers/constants.js +0 -2
- package/dist/src/providers/domestic-presets.js +0 -2
- package/dist/src/providers/env-keys.js +0 -2
- package/dist/src/providers/extension-stream-bridge.js +0 -2
- package/dist/src/providers/index.js +0 -2
- package/dist/src/providers/model-call.js +0 -2
- package/dist/src/providers/model-discovery.js +0 -2
- package/dist/src/providers/model-registry.js +0 -2
- package/dist/src/providers/model-supplements.js +0 -2
- package/dist/src/providers/plugin-registry.js +0 -2
- package/dist/src/providers/presentation.js +0 -2
- package/dist/src/remote-access/exposure-guards.js +0 -2
- package/dist/src/remote-access/exposure-manager.js +0 -2
- package/dist/src/review/review-git.js +0 -2
- package/dist/src/review/review-types.js +0 -2
- package/dist/src/routing/account-id.js +0 -2
- package/dist/src/routing/agent-session-key.js +0 -2
- package/dist/src/routing/bindings.js +0 -2
- package/dist/src/routing/index.js +0 -2
- package/dist/src/routing/resolve-route.js +0 -2
- package/dist/src/routing/resolve-tui-session-key.js +0 -2
- package/dist/src/routing/session-key-utils.js +0 -2
- package/dist/src/routing/session-key.js +0 -2
- package/dist/src/session/abort-cutoff.js +0 -2
- package/dist/src/session/chat-export.js +0 -2
- package/dist/src/session/client-history.js +0 -2
- package/dist/src/session/compaction-checkpoints.js +0 -2
- package/dist/src/session/config-store.js +0 -2
- package/dist/src/session/init-session-turn.js +0 -2
- package/dist/src/session/lifecycle-timestamps.js +0 -2
- package/dist/src/session/load-jsonl-entries.js +0 -2
- package/dist/src/session/manager.js +0 -2
- package/dist/src/session/patch-metadata.js +0 -2
- package/dist/src/session/reset-policy.js +0 -2
- package/dist/src/session/reset-triggers.js +0 -2
- package/dist/src/session/reset-type.js +0 -2
- package/dist/src/session/resolve-session.js +0 -2
- package/dist/src/session/session-context-for-llm.js +0 -2
- package/dist/src/session/session-id.js +0 -2
- package/dist/src/session/session-title.js +0 -2
- package/dist/src/session/session-workspace.js +0 -2
- package/dist/src/session/store.js +0 -2
- package/dist/src/session/stored-rows-to-file-entries.js +0 -2
- package/dist/src/session/thinking-resolve.js +0 -2
- package/dist/src/session/transcript-events.js +0 -2
- package/dist/src/session/transcript-format.js +0 -2
- package/dist/src/session/transcript-outline.js +0 -2
- package/dist/src/session/transcript-stats.js +0 -2
- package/dist/src/session/types.js +0 -2
- package/dist/src/session/user-round-delete.js +0 -2
- package/dist/src/share/share-audit.js +0 -2
- package/dist/src/share/share-auto.js +0 -2
- package/dist/src/share/share-config.js +0 -2
- package/dist/src/share/share-landing.js +0 -2
- package/dist/src/share/share-rate-limit.js +0 -2
- package/dist/src/share/share-store.js +0 -2
- package/dist/src/share/share-thumbnail.js +0 -2
- package/dist/src/share/share-types.js +0 -2
- package/dist/src/share/share-url.js +0 -2
- package/dist/src/share/share-zip.js +0 -2
- package/dist/src/share/site-proxy.js +0 -2
- package/dist/src/share/site-share-config.js +0 -2
- package/dist/src/share/site-share-router.js +0 -2
- package/dist/src/share/site-share-store.js +0 -2
- package/dist/src/share/site-share-types.js +0 -2
- package/dist/src/share/site-static-serve.js +0 -2
- package/dist/src/storage/sqlite/activity-repository.js +0 -2
- package/dist/src/storage/sqlite/config-repository.js +0 -2
- package/dist/src/storage/sqlite/connection.js +0 -2
- package/dist/src/storage/sqlite/connector-repository.js +0 -2
- package/dist/src/storage/sqlite/fts.js +0 -2
- package/dist/src/storage/sqlite/knowledge-repository.js +0 -2
- package/dist/src/storage/sqlite/memory-index-repository.js +0 -2
- package/dist/src/storage/sqlite/memory-records-repository.js +0 -2
- package/dist/src/storage/sqlite/memory-reference-consent-repository.js +0 -2
- package/dist/src/storage/sqlite/migrations/discover.js +0 -2
- package/dist/src/storage/sqlite/migrations/errors.js +0 -2
- package/dist/src/storage/sqlite/migrations/runner.js +0 -2
- package/dist/src/storage/sqlite/note-agent-context-repository.js +0 -2
- package/dist/src/storage/sqlite/notes-repository.js +0 -2
- package/dist/src/storage/sqlite/paths.js +0 -2
- package/dist/src/storage/sqlite/row-mappers.js +0 -2
- package/dist/src/storage/sqlite/schema-version.js +0 -2
- package/dist/src/storage/sqlite/schema.js +0 -2
- package/dist/src/storage/sqlite/session-metadata.js +0 -2
- package/dist/src/storage/sqlite/session-repository.js +0 -2
- package/dist/src/storage/sqlite/transaction.js +0 -2
- package/dist/src/storage/sqlite/transcript-repository.js +0 -2
- package/dist/src/storage/sqlite/user-profile-setup-repository.js +0 -2
- package/dist/src/storage/sqlite/user-trust-repository.js +0 -2
- package/dist/src/tui/backends/embedded-backend.js +0 -2
- package/dist/src/tui/backends/gateway-sse-backend.js +0 -2
- package/dist/src/tui/chat-history.js +0 -2
- package/dist/src/tui/clipboard-image.js +0 -2
- package/dist/src/tui/clipboard-text.js +0 -2
- package/dist/src/tui/components/assistant-message.js +0 -2
- package/dist/src/tui/components/bash-execution.js +0 -2
- package/dist/src/tui/components/bash-summary.js +0 -2
- package/dist/src/tui/components/branch-message-summary.js +0 -2
- package/dist/src/tui/components/branch-summary.js +0 -2
- package/dist/src/tui/components/chat-log.js +0 -2
- package/dist/src/tui/components/compaction-summary.js +0 -2
- package/dist/src/tui/components/custom-editor.js +0 -2
- package/dist/src/tui/components/custom-message.js +0 -2
- package/dist/src/tui/components/dynamic-border.js +0 -2
- package/dist/src/tui/components/extension-dialog.js +0 -2
- package/dist/src/tui/components/fuzzy-filter.js +0 -2
- package/dist/src/tui/components/scoped-models-selector.js +0 -2
- package/dist/src/tui/components/searchable-select-list.js +0 -2
- package/dist/src/tui/components/session-selector.js +0 -2
- package/dist/src/tui/components/settings-selector.js +0 -2
- package/dist/src/tui/components/thinking-selector.js +0 -2
- package/dist/src/tui/components/tool-execution.js +0 -2
- package/dist/src/tui/components/tui-bottom-bar.js +0 -2
- package/dist/src/tui/components/tui-header.js +0 -2
- package/dist/src/tui/components/user-message.js +0 -2
- package/dist/src/tui/components/visual-truncate.js +0 -2
- package/dist/src/tui/extension-host/autocomplete.js +0 -2
- package/dist/src/tui/extension-host/host.js +0 -2
- package/dist/src/tui/extension-host/load-extensions.js +0 -2
- package/dist/src/tui/extension-host/runtime-context.js +0 -2
- package/dist/src/tui/extension-host/runtime.js +0 -2
- package/dist/src/tui/extension-host/surface.js +0 -2
- package/dist/src/tui/extension-host/tool-renderers.js +0 -2
- package/dist/src/tui/format-tui-hotkeys.js +0 -2
- package/dist/src/tui/sse-consumer.js +0 -2
- package/dist/src/tui/theme/dark.js +0 -2
- package/dist/src/tui/theme/light.js +0 -2
- package/dist/src/tui/theme-manager.js +0 -2
- package/dist/src/tui/theme.js +0 -2
- package/dist/src/tui/tool-summary.js +0 -2
- package/dist/src/tui/tui-agent-events.js +0 -2
- package/dist/src/tui/tui-command-formatters.js +0 -2
- package/dist/src/tui/tui-commands.js +0 -2
- package/dist/src/tui/tui-context-usage.js +0 -2
- package/dist/src/tui/tui-extension-user-message.js +0 -2
- package/dist/src/tui/tui-fd-path.js +0 -2
- package/dist/src/tui/tui-file-autocomplete.js +0 -2
- package/dist/src/tui/tui-follow-up-queue.js +0 -2
- package/dist/src/tui/tui-git-branch.js +0 -2
- package/dist/src/tui/tui-keybindings-file.js +0 -2
- package/dist/src/tui/tui-lifecycle.js +0 -2
- package/dist/src/tui/tui-local-shell.js +0 -2
- package/dist/src/tui/tui-model-picker.js +0 -2
- package/dist/src/tui/tui-oauth-login.js +0 -2
- package/dist/src/tui/tui-overlays.js +0 -2
- package/dist/src/tui/tui-picker-overlay.js +0 -2
- package/dist/src/tui/tui-run-state.js +0 -2
- package/dist/src/tui/tui-run-status-format.js +0 -2
- package/dist/src/tui/tui-runtime-hints.js +0 -2
- package/dist/src/tui/tui-scoped-models.js +0 -2
- package/dist/src/tui/tui-session-actions.js +0 -2
- package/dist/src/tui/tui-session-format.js +0 -2
- package/dist/src/tui/tui-session-snapshot.js +0 -2
- package/dist/src/tui/tui-session-stats.js +0 -2
- package/dist/src/tui/tui-settings.js +0 -2
- package/dist/src/tui/tui-skills-autocomplete.js +0 -2
- package/dist/src/tui/tui-startup-resources.js +0 -2
- package/dist/src/tui/tui-startup-text.js +0 -2
- package/dist/src/tui/tui-stdio-filter.js +0 -2
- package/dist/src/tui/tui-submit.js +0 -2
- package/dist/src/tui/tui-suspend.js +0 -2
- package/dist/src/tui/tui-timeline-picker.js +0 -2
- package/dist/src/tui/tui-timeline.js +0 -2
- package/dist/src/tui/tui-tool-diff.js +0 -2
- package/dist/src/tui/tui-tool-result.js +0 -2
- package/dist/src/tui/tui-transcript-tree-picker.js +0 -2
- package/dist/src/tui/tui-transcript-tree.js +0 -2
- package/dist/src/tui/tui-types.js +0 -2
- package/dist/src/tui/tui-workflow-slash.js +0 -2
- package/dist/src/tui/tui.js +0 -2
- package/dist/src/tui/xopc-tui-keybindings.js +0 -2
- package/dist/src/tunnel/broker-client.js +0 -2
- package/dist/src/tunnel/consent.js +0 -2
- package/dist/src/tunnel/enable-lan-pairing.js +0 -2
- package/dist/src/tunnel/env.js +0 -2
- package/dist/src/tunnel/frp-subdomain-host.js +0 -2
- package/dist/src/tunnel/frpc-binary.js +0 -2
- package/dist/src/tunnel/frpc-config.js +0 -2
- package/dist/src/tunnel/frpc-extract.js +0 -2
- package/dist/src/tunnel/frpc-process.js +0 -2
- package/dist/src/tunnel/gateway-lifecycle.js +0 -2
- package/dist/src/tunnel/pair-context.js +0 -2
- package/dist/src/tunnel/pair-url.js +0 -2
- package/dist/src/tunnel/pairing-rate-limit.js +0 -2
- package/dist/src/tunnel/pairing.js +0 -2
- package/dist/src/tunnel/tunnel-audit.js +0 -2
- package/dist/src/tunnel/tunnel-config.js +0 -2
- package/dist/src/tunnel/tunnel-persist.js +0 -2
- package/dist/src/tunnel/tunnel-qr.js +0 -2
- package/dist/src/tunnel/tunnel-rate-limit.js +0 -2
- package/dist/src/tunnel/tunnel-service.js +0 -2
- package/dist/src/tunnel/tunnel-state.js +0 -2
- package/dist/src/tunnel/well-known.js +0 -2
- package/dist/src/user-context/config.js +0 -2
- package/dist/src/user-context/import.js +0 -2
- package/dist/src/user-context/owner.js +0 -2
- package/dist/src/user-context/profile.js +0 -2
- package/dist/src/user-context/projection.js +0 -2
- package/dist/src/user-context/runtime.js +0 -2
- package/dist/src/user-context/source-recommendations.js +0 -2
- package/dist/src/user-context/trust-policy.js +0 -2
- package/dist/src/utils/global-singleton.js +0 -2
- package/dist/src/utils/helpers.js +0 -2
- package/dist/src/utils/index.js +0 -2
- package/dist/src/utils/is-record.js +0 -2
- package/dist/src/utils/logger/audit.js +0 -2
- package/dist/src/utils/logger/config.js +0 -2
- package/dist/src/utils/logger/context.js +0 -2
- package/dist/src/utils/logger/exporters.js +0 -2
- package/dist/src/utils/logger/index.js +0 -2
- package/dist/src/utils/logger/log-store.js +0 -2
- package/dist/src/utils/logger/log-stream.js +0 -2
- package/dist/src/utils/logger/pino-record.js +0 -2
- package/dist/src/utils/logger/redact.js +0 -2
- package/dist/src/utils/logger/rotation.js +0 -2
- package/dist/src/utils/logger/shutdown.js +0 -2
- package/dist/src/utils/logger/stats.js +0 -2
- package/dist/src/utils/logger/streams.js +0 -2
- package/dist/src/utils/logger/types.js +0 -2
- package/dist/src/utils/logger.js +0 -2
- package/dist/src/utils/redact-sensitive-url.js +0 -2
- package/dist/src/utils/sanitize-log.js +0 -2
- package/dist/src/utils/string-coerce.js +0 -2
- package/dist/src/voice/language-profile.js +0 -2
- package/dist/src/voice/local/model-files.js +0 -2
- package/dist/src/voice/local/model-manager.js +0 -2
- package/dist/src/voice/local/models.js +0 -2
- package/dist/src/voice/local/runtime-client.js +0 -2
- package/dist/src/voice/local/runtime-dispatcher.js +0 -2
- package/dist/src/voice/local/runtime-worker.js +12 -4
- package/dist/src/voice/local/wav.js +0 -2
- package/dist/src/voice/metadata/builtin.js +0 -2
- package/dist/src/voice/metadata/registry.js +0 -2
- package/dist/src/voice/stt/availability.js +0 -2
- package/dist/src/voice/stt/config-slice.js +0 -2
- package/dist/src/voice/stt/factory.js +0 -2
- package/dist/src/voice/stt/index.js +0 -2
- package/dist/src/voice/stt/list-providers.js +0 -2
- package/dist/src/voice/stt/mention.js +0 -2
- package/dist/src/voice/stt/preflight.js +0 -2
- package/dist/src/voice/stt/providers/alibaba-transcription.js +0 -2
- package/dist/src/voice/stt/providers/local-transcription.js +0 -2
- package/dist/src/voice/stt/providers/openai-transcription.js +0 -2
- package/dist/src/voice/stt/transcribe-core.js +0 -2
- package/dist/src/voice/stt/types.js +0 -2
- package/dist/src/voice/tts/audio.js +0 -2
- package/dist/src/voice/tts/config-slice.js +0 -2
- package/dist/src/voice/tts/directives.js +0 -2
- package/dist/src/voice/tts/factory.js +0 -2
- package/dist/src/voice/tts/list-providers.js +0 -2
- package/dist/src/voice/tts/merge-config.js +0 -2
- package/dist/src/voice/tts/openai-compatible-speech.js +0 -2
- package/dist/src/voice/tts/payload.js +0 -2
- package/dist/src/voice/tts/preprocess.js +0 -2
- package/dist/src/voice/tts/providers/alibaba-speech.js +0 -2
- package/dist/src/voice/tts/providers/edge-speech.js +0 -2
- package/dist/src/voice/tts/providers/minimax-speech.js +0 -2
- package/dist/src/voice/tts/providers/openai-speech.js +0 -2
- package/dist/src/voice/tts/sentence-boundary.js +0 -2
- package/dist/src/voice/tts/service.js +0 -2
- package/dist/src/voice/tts/speak-core.js +0 -2
- package/dist/src/voice/tts/speech-registry.js +0 -2
- package/dist/src/voice/tts/status-tracker.js +0 -2
- package/dist/src/voice/tts/summarize.js +0 -2
- package/dist/src/voice/tts/types.js +0 -2
- package/dist/src/work-discovery/analyzer.js +0 -2
- package/dist/src/work-discovery/probe.js +0 -2
- package/dist/src/work-discovery/repository.js +0 -2
- package/dist/src/work-discovery/service.js +0 -2
- package/dist/src/work-items/agent-context.js +0 -2
- package/dist/src/work-items/work-item-service.js +0 -2
- package/dist/src/work-items/work-item-store.js +0 -2
- package/dist/src/work-items/work-item-workflow-judge.js +0 -2
- package/dist/src/workflows/authoring/workflow-draft-store.js +0 -2
- package/dist/src/workflows/domain/definition-utils.js +0 -2
- package/dist/src/workflows/domain/run.js +0 -2
- package/dist/src/workflows/domain/schema-validation.js +0 -2
- package/dist/src/workflows/domain/validation.js +0 -2
- package/dist/src/workflows/draft/workflow-draft-prompt.js +0 -2
- package/dist/src/workflows/draft/workflow-draft-service.js +0 -2
- package/dist/src/workflows/draft/workflow-draft-validator.js +0 -2
- package/dist/src/workflows/engine/projector.js +0 -2
- package/dist/src/workflows/engine/workflow-engine.js +0 -2
- package/dist/src/workflows/registry/catalog-workflow-definition-registry.js +0 -2
- package/dist/src/workflows/runtime/graph-workflow-runtime.js +0 -2
- package/dist/src/workflows/service/run-view-to-snapshot.js +0 -2
- package/dist/src/workflows/service/workflow-run-service.js +1 -3
- package/dist/src/workflows/service/workflow-session-bridge.js +0 -2
- package/dist/src/workflows/service/workflow-session-key.js +0 -2
- package/dist/src/workflows/store/event-store.js +0 -2
- package/dist/src/workflows/store/paths.js +0 -2
- package/dist/src/workflows/store/run-index-store.js +0 -2
- package/dist/src/workflows/store/run-store.js +0 -2
- package/package.json +43 -12
- package/skills/creative/hatch-pet/SKILL.md +1 -0
- package/dist/extensions/dashscope/src/image-generation-provider.js.map +0 -1
- package/dist/extensions/demo-memory/src/index.js.map +0 -1
- package/dist/extensions/fal/src/image-generation-provider.js.map +0 -1
- package/dist/extensions/feishu/src/actions/message-action-handler.js.map +0 -1
- package/dist/extensions/feishu/src/adapters/cli-login.js.map +0 -1
- package/dist/extensions/feishu/src/adapters/gateway-setup.js.map +0 -1
- package/dist/extensions/feishu/src/adapters/onboard-cli.js.map +0 -1
- package/dist/extensions/feishu/src/auth/app-registration.js.map +0 -1
- package/dist/extensions/feishu/src/auth/pairing.js.map +0 -1
- package/dist/extensions/feishu/src/auth/paths.js.map +0 -1
- package/dist/extensions/feishu/src/directory/directory-adapter.js.map +0 -1
- package/dist/extensions/feishu/src/format.js.map +0 -1
- package/dist/extensions/feishu/src/index.js.map +0 -1
- package/dist/extensions/feishu/src/outbound/actions.js.map +0 -1
- package/dist/extensions/feishu/src/outbound/media-load.js.map +0 -1
- package/dist/extensions/feishu/src/outbound/outbound-adapter.js.map +0 -1
- package/dist/extensions/feishu/src/pairing/feishu-pairing-prompt.js.map +0 -1
- package/dist/extensions/feishu/src/pairing-config-resolver.js.map +0 -1
- package/dist/extensions/feishu/src/plugin.js.map +0 -1
- package/dist/extensions/feishu/src/schema/config-schema.js.map +0 -1
- package/dist/extensions/feishu/src/state/accounts.js.map +0 -1
- package/dist/extensions/feishu/src/state/message-bindings.js.map +0 -1
- package/dist/extensions/feishu/src/state/thread-bindings.js.map +0 -1
- package/dist/extensions/feishu/src/status/doctor.js.map +0 -1
- package/dist/extensions/feishu/src/status/status-adapter.js.map +0 -1
- package/dist/extensions/feishu/src/streaming/streaming-adapter.js.map +0 -1
- package/dist/extensions/feishu/src/subagent-hooks.js.map +0 -1
- package/dist/extensions/feishu/src/tools/docx/docx-batch-insert.js.map +0 -1
- package/dist/extensions/feishu/src/tools/docx/docx-color-text.js.map +0 -1
- package/dist/extensions/feishu/src/tools/docx/docx-table-ops.js.map +0 -1
- package/dist/extensions/feishu/src/tools/tools.js.map +0 -1
- package/dist/extensions/feishu/src/transport/client/client.js.map +0 -1
- package/dist/extensions/feishu/src/transport/client/lark-sdk-logger.js.map +0 -1
- package/dist/extensions/feishu/src/transport/reliability/dedupe.js.map +0 -1
- package/dist/extensions/feishu/src/transport/reliability/inbound-pipeline.js.map +0 -1
- package/dist/extensions/feishu/src/transport/socket-mode/monitor.js.map +0 -1
- package/dist/extensions/feishu/src/transport/socket-mode/retry.js.map +0 -1
- package/dist/extensions/feishu/src/transport/text/mentions.js.map +0 -1
- package/dist/extensions/feishu/src/transport/webhook/monitor.js.map +0 -1
- package/dist/extensions/feishu/src/ui/config-surface.js.map +0 -1
- package/dist/extensions/feishu/src/workflow-progress.js.map +0 -1
- package/dist/extensions/google/src/image-generation-provider.js.map +0 -1
- package/dist/extensions/minimax/src/image-generation-provider.js.map +0 -1
- package/dist/extensions/openai/src/image-generation-provider.js.map +0 -1
- package/dist/extensions/telegram/src/access-control.js.map +0 -1
- package/dist/extensions/telegram/src/account-manager.js.map +0 -1
- package/dist/extensions/telegram/src/actions/message-actions.js.map +0 -1
- package/dist/extensions/telegram/src/adapters/command-adapter.js.map +0 -1
- package/dist/extensions/telegram/src/adapters/config-adapter.js.map +0 -1
- package/dist/extensions/telegram/src/adapters/debounce-keys.js.map +0 -1
- package/dist/extensions/telegram/src/adapters/gateway-adapter.js.map +0 -1
- package/dist/extensions/telegram/src/adapters/gateway-setup.js.map +0 -1
- package/dist/extensions/telegram/src/adapters/inbound-access.js.map +0 -1
- package/dist/extensions/telegram/src/adapters/index.js.map +0 -1
- package/dist/extensions/telegram/src/adapters/onboard-cli.js.map +0 -1
- package/dist/extensions/telegram/src/adapters/outbound-adapter.js.map +0 -1
- package/dist/extensions/telegram/src/adapters/security-adapter.js.map +0 -1
- package/dist/extensions/telegram/src/adapters/setup-wizard.js.map +0 -1
- package/dist/extensions/telegram/src/adapters/status-adapter.js.map +0 -1
- package/dist/extensions/telegram/src/adapters/streaming-adapter.js.map +0 -1
- package/dist/extensions/telegram/src/api-root.js.map +0 -1
- package/dist/extensions/telegram/src/approval-delivery.js.map +0 -1
- package/dist/extensions/telegram/src/approval-store.js.map +0 -1
- package/dist/extensions/telegram/src/caption.js.map +0 -1
- package/dist/extensions/telegram/src/command-handler.js.map +0 -1
- package/dist/extensions/telegram/src/config-schema.js.map +0 -1
- package/dist/extensions/telegram/src/conversation-id.js.map +0 -1
- package/dist/extensions/telegram/src/dedupe.js.map +0 -1
- package/dist/extensions/telegram/src/delivery-chat-id.js.map +0 -1
- package/dist/extensions/telegram/src/doctor.js.map +0 -1
- package/dist/extensions/telegram/src/draft-stream-lifecycle.js.map +0 -1
- package/dist/extensions/telegram/src/draft-stream-loop.js.map +0 -1
- package/dist/extensions/telegram/src/draft-stream.js.map +0 -1
- package/dist/extensions/telegram/src/errors.js.map +0 -1
- package/dist/extensions/telegram/src/exec-approval-handler.js.map +0 -1
- package/dist/extensions/telegram/src/exec-approvals.js.map +0 -1
- package/dist/extensions/telegram/src/focus-handler.js.map +0 -1
- package/dist/extensions/telegram/src/format.js.map +0 -1
- package/dist/extensions/telegram/src/group-config-resolver.js.map +0 -1
- package/dist/extensions/telegram/src/inbound-coalescer.js.map +0 -1
- package/dist/extensions/telegram/src/inbound-processor.js.map +0 -1
- package/dist/extensions/telegram/src/index.js.map +0 -1
- package/dist/extensions/telegram/src/inline-keyboards.js.map +0 -1
- package/dist/extensions/telegram/src/network-errors.js.map +0 -1
- package/dist/extensions/telegram/src/outbound-sender.js.map +0 -1
- package/dist/extensions/telegram/src/pairing-config-resolver.js.map +0 -1
- package/dist/extensions/telegram/src/plugin-defaults.js.map +0 -1
- package/dist/extensions/telegram/src/plugin.js.map +0 -1
- package/dist/extensions/telegram/src/polling-session.js.map +0 -1
- package/dist/extensions/telegram/src/proxy-fetch.js.map +0 -1
- package/dist/extensions/telegram/src/reactions.js.map +0 -1
- package/dist/extensions/telegram/src/reply-params.js.map +0 -1
- package/dist/extensions/telegram/src/routing-integration.js.map +0 -1
- package/dist/extensions/telegram/src/send-options.js.map +0 -1
- package/dist/extensions/telegram/src/sent-cache.js.map +0 -1
- package/dist/extensions/telegram/src/startup-errors.js.map +0 -1
- package/dist/extensions/telegram/src/telegram-actions.js.map +0 -1
- package/dist/extensions/telegram/src/telegram-draft-errors.js.map +0 -1
- package/dist/extensions/telegram/src/thread-bindings.js.map +0 -1
- package/dist/extensions/telegram/src/timeout-abort.js.map +0 -1
- package/dist/extensions/telegram/src/token-resolver.js.map +0 -1
- package/dist/extensions/telegram/src/update-offset-store.js.map +0 -1
- package/dist/extensions/telegram/src/workflow-progress.js.map +0 -1
- package/dist/extensions/weixin/src/adapters/onboard-cli.js.map +0 -1
- package/dist/extensions/weixin/src/api/api.js.map +0 -1
- package/dist/extensions/weixin/src/api/config-cache.js.map +0 -1
- package/dist/extensions/weixin/src/api/session-guard.js.map +0 -1
- package/dist/extensions/weixin/src/api/types.js.map +0 -1
- package/dist/extensions/weixin/src/auth/accounts.js.map +0 -1
- package/dist/extensions/weixin/src/auth/login-qr.js.map +0 -1
- package/dist/extensions/weixin/src/auth/pairing.js.map +0 -1
- package/dist/extensions/weixin/src/auth/weixin-account-id.js.map +0 -1
- package/dist/extensions/weixin/src/cdn/aes-ecb.js.map +0 -1
- package/dist/extensions/weixin/src/cdn/cdn-upload.js.map +0 -1
- package/dist/extensions/weixin/src/cdn/cdn-url.js.map +0 -1
- package/dist/extensions/weixin/src/cdn/pic-decrypt.js.map +0 -1
- package/dist/extensions/weixin/src/cdn/upload.js.map +0 -1
- package/dist/extensions/weixin/src/cli/gateway-qr-login.js.map +0 -1
- package/dist/extensions/weixin/src/cli/qr-login.js.map +0 -1
- package/dist/extensions/weixin/src/config-schema.js.map +0 -1
- package/dist/extensions/weixin/src/config-surface.js.map +0 -1
- package/dist/extensions/weixin/src/delivery-to.js.map +0 -1
- package/dist/extensions/weixin/src/index.js.map +0 -1
- package/dist/extensions/weixin/src/media/data-url.js.map +0 -1
- package/dist/extensions/weixin/src/media/media-download.js.map +0 -1
- package/dist/extensions/weixin/src/media/mime.js.map +0 -1
- package/dist/extensions/weixin/src/media/silk-transcode.js.map +0 -1
- package/dist/extensions/weixin/src/messaging/context-token-init.js.map +0 -1
- package/dist/extensions/weixin/src/messaging/debug-mode.js.map +0 -1
- package/dist/extensions/weixin/src/messaging/error-notice.js.map +0 -1
- package/dist/extensions/weixin/src/messaging/inbound.js.map +0 -1
- package/dist/extensions/weixin/src/messaging/markdown-filter.js.map +0 -1
- package/dist/extensions/weixin/src/messaging/process-message.js.map +0 -1
- package/dist/extensions/weixin/src/messaging/send-media.js.map +0 -1
- package/dist/extensions/weixin/src/messaging/send.js.map +0 -1
- package/dist/extensions/weixin/src/messaging/slash-commands.js.map +0 -1
- package/dist/extensions/weixin/src/messaging/typing-ticket-store.js.map +0 -1
- package/dist/extensions/weixin/src/monitor/monitor.js.map +0 -1
- package/dist/extensions/weixin/src/outbound-send.js.map +0 -1
- package/dist/extensions/weixin/src/pairing-config-resolver.js.map +0 -1
- package/dist/extensions/weixin/src/plugin.js.map +0 -1
- package/dist/extensions/weixin/src/routing-integration.js.map +0 -1
- package/dist/extensions/weixin/src/storage/state-dir.js.map +0 -1
- package/dist/extensions/weixin/src/storage/sync-buf.js.map +0 -1
- package/dist/extensions/weixin/src/util/logger.js.map +0 -1
- package/dist/extensions/weixin/src/util/random.js.map +0 -1
- package/dist/extensions/weixin/src/util/redact.js.map +0 -1
- package/dist/extensions/weixin/src/workflow-progress.js.map +0 -1
- package/dist/gateway/static/root/assets/agents-DZDOcgz5.js +0 -2
- package/dist/gateway/static/root/assets/appearance-settings-BNasnY9D.js +0 -1
- package/dist/gateway/static/root/assets/apps-page-Cmr-Hvm9.js +0 -1
- package/dist/gateway/static/root/assets/automations-page-TWgUAI8t.js +0 -6
- package/dist/gateway/static/root/assets/browser-settings-page-DBsFItW_.js +0 -8
- package/dist/gateway/static/root/assets/channels-settings-BBkzrBYy.js +0 -1
- package/dist/gateway/static/root/assets/channels-status-swr-CuU6ez3y.js +0 -1
- package/dist/gateway/static/root/assets/connectors-page-DLsZCAw7.js +0 -2
- package/dist/gateway/static/root/assets/desktop-pet-C6V-PHwi.js +0 -1
- package/dist/gateway/static/root/assets/desktop-pet-settings-5Fcz47XQ.js +0 -1
- package/dist/gateway/static/root/assets/gateway-settings-BrxzyVW2.js +0 -1
- package/dist/gateway/static/root/assets/goal-create-dialog-DRVRLc5Z.js +0 -1
- package/dist/gateway/static/root/assets/goal-detail-page-8F7NElzP.js +0 -4
- package/dist/gateway/static/root/assets/goals-page-BaoLiV8G.js +0 -2
- package/dist/gateway/static/root/assets/index-CH7XN6KY.js +0 -259
- package/dist/gateway/static/root/assets/index-Dfnl9tp_.css +0 -1
- package/dist/gateway/static/root/assets/keyboard-shortcuts-settings-BHnh5OoY.js +0 -1
- package/dist/gateway/static/root/assets/local-app-workbench-page-Boe8n4zH.js +0 -2
- package/dist/gateway/static/root/assets/locale-store-BneNAR8R.js +0 -1
- package/dist/gateway/static/root/assets/logs-page-Cb4Uptct.js +0 -7
- package/dist/gateway/static/root/assets/messages-t1yPaVCt.js +0 -5
- package/dist/gateway/static/root/assets/models-hub-panel-CNiUKZUV.js +0 -2
- package/dist/gateway/static/root/assets/notes-workbench-C9__VkD6.js +0 -4
- package/dist/gateway/static/root/assets/project-detail-page-CZhuB5kO.js +0 -1
- package/dist/gateway/static/root/assets/projects-page-BOq4WVdR.js +0 -1
- package/dist/gateway/static/root/assets/remote-access-hub-BxGq0ebQ.js +0 -1
- package/dist/gateway/static/root/assets/sessions-page-B6gSU_Au.js +0 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-DwuBL834.js +0 -1
- package/dist/gateway/static/root/assets/settings-loading-skeleton-vitElc-n.js +0 -1
- package/dist/gateway/static/root/assets/setup-status-panel-BJeA4mmk.js +0 -1
- package/dist/gateway/static/root/assets/shares-settings-DB2KYA2_.js +0 -1
- package/dist/gateway/static/root/assets/skill-reload-api-DQtZiejw.js +0 -1
- package/dist/gateway/static/root/assets/skills-page-Pm0fNe_p.js +0 -2
- package/dist/gateway/static/root/assets/user-context-page-DnLqQyRG.js +0 -1
- package/dist/gateway/static/root/assets/voice-api-key-field-BiFIIWC4.js +0 -1
- package/dist/gateway/static/root/assets/work-discovery-page-D2-_bC0J.js +0 -1
- package/dist/gateway/static/root/assets/work-item-detail-page-B0FPG4eJ.js +0 -1
- package/dist/gateway/static/root/assets/work-page-BDeVxts_.js +0 -1
- package/dist/gateway/static/root/assets/workflow-run-setup-panel-BPzS67fU.js +0 -3
- package/dist/gateway/static/root/assets/workflows-page-xPhmrRLs.js +0 -11
- package/dist/gateway/static/root/favicon-icon.svg +0 -187
- package/dist/package.js.map +0 -1
- package/dist/src/activity/context.js.map +0 -1
- package/dist/src/activity/emitter.js.map +0 -1
- package/dist/src/activity/service.js.map +0 -1
- package/dist/src/agent/agent-manager.js.map +0 -1
- package/dist/src/agent/agent-scope.js.map +0 -1
- package/dist/src/agent/background-review/coordinator.js.map +0 -1
- package/dist/src/agent/background-review/prompts.js.map +0 -1
- package/dist/src/agent/background-review/run-background-review.js.map +0 -1
- package/dist/src/agent/background-review/settings.js.map +0 -1
- package/dist/src/agent/bootstrap/bootstrap-cache.js.map +0 -1
- package/dist/src/agent/bootstrap/bootstrap-context.js.map +0 -1
- package/dist/src/agent/bootstrap/bootstrap-files.js.map +0 -1
- package/dist/src/agent/bootstrap/filter-bootstrap-files.js.map +0 -1
- package/dist/src/agent/bootstrap/load-bootstrap-files.js.map +0 -1
- package/dist/src/agent/bootstrap/project-agents-context.js.map +0 -1
- package/dist/src/agent/capabilities/definitions.js.map +0 -1
- package/dist/src/agent/capabilities/registry.js.map +0 -1
- package/dist/src/agent/child-agent-factory.js.map +0 -1
- package/dist/src/agent/client-error-format.js.map +0 -1
- package/dist/src/agent/code-intelligence/binary.js.map +0 -1
- package/dist/src/agent/code-intelligence/runtime.js.map +0 -1
- package/dist/src/agent/code-intelligence/tools.js.map +0 -1
- package/dist/src/agent/coding/turn-diff-tracker.js.map +0 -1
- package/dist/src/agent/context/expand-at-file-mentions.js.map +0 -1
- package/dist/src/agent/context/project-context.js.map +0 -1
- package/dist/src/agent/context/workspace-seed.js.map +0 -1
- package/dist/src/agent/context/workspace-state.js.map +0 -1
- package/dist/src/agent/context/workspace.js.map +0 -1
- package/dist/src/agent/embedded/run-for-session.js.map +0 -1
- package/dist/src/agent/embedded/run-turn.js.map +0 -1
- package/dist/src/agent/embedded/runs.js.map +0 -1
- package/dist/src/agent/embedded/session-manager-init.js.map +0 -1
- package/dist/src/agent/embedded/session-runner.js.map +0 -1
- package/dist/src/agent/embedded/session-tool-result-guard.js.map +0 -1
- package/dist/src/agent/embedded/sqlite-hydrating-session-manager.js.map +0 -1
- package/dist/src/agent/embedded/subscribe-session.js.map +0 -1
- package/dist/src/agent/embedded/system-prompt-override.js.map +0 -1
- package/dist/src/agent/embedded/tool-result-context-guard.js.map +0 -1
- package/dist/src/agent/embedded/tool-result-truncation.js.map +0 -1
- package/dist/src/agent/embedded/xopc-auth-storage.js.map +0 -1
- package/dist/src/agent/embedded/xopc-stream-bridge.js.map +0 -1
- package/dist/src/agent/embedded/xopc-tools-bridge.js.map +0 -1
- package/dist/src/agent/failover-error.js.map +0 -1
- package/dist/src/agent/fallback/candidates.js.map +0 -1
- package/dist/src/agent/fallback/reason.js.map +0 -1
- package/dist/src/agent/feedback/feedback-coordinator.js.map +0 -1
- package/dist/src/agent/goals/checklist-judge.js.map +0 -1
- package/dist/src/agent/goals/checklist-types.js.map +0 -1
- package/dist/src/agent/goals/evaluate-turn.js.map +0 -1
- package/dist/src/agent/goals/goal-locale.js.map +0 -1
- package/dist/src/agent/goals/judge.js.map +0 -1
- package/dist/src/agent/goals/persistent-goal-service.js.map +0 -1
- package/dist/src/agent/goals/post-turn.js.map +0 -1
- package/dist/src/agent/goals/state.js.map +0 -1
- package/dist/src/agent/image/generation/bundled-registry.js.map +0 -1
- package/dist/src/agent/image/generation/bundled.js.map +0 -1
- package/dist/src/agent/image/generation/image-assets.js.map +0 -1
- package/dist/src/agent/image/generation/model-ref.js.map +0 -1
- package/dist/src/agent/image/generation/normalization.js.map +0 -1
- package/dist/src/agent/image/generation/openai-compatible-image-provider.js.map +0 -1
- package/dist/src/agent/image/generation/provider-registry.js.map +0 -1
- package/dist/src/agent/image/generation/runtime.js.map +0 -1
- package/dist/src/agent/image/image-helpers.js.map +0 -1
- package/dist/src/agent/image/image-model-fallback.js.map +0 -1
- package/dist/src/agent/image/inbound-image-handling.js.map +0 -1
- package/dist/src/agent/image/load-image-media.js.map +0 -1
- package/dist/src/agent/image/tool-model-config.js.map +0 -1
- package/dist/src/agent/image/understanding/pi-ai-provider.js.map +0 -1
- package/dist/src/agent/image/understanding/provider-registry.js.map +0 -1
- package/dist/src/agent/image/understanding/runtime.js.map +0 -1
- package/dist/src/agent/image/vision-detection.js.map +0 -1
- package/dist/src/agent/inbound/attachment-pipeline.js.map +0 -1
- package/dist/src/agent/inbound/inbound-loop.js.map +0 -1
- package/dist/src/agent/inbound/turn-dispatcher.js.map +0 -1
- package/dist/src/agent/ipc/bus.js.map +0 -1
- package/dist/src/agent/ipc/inbox.js.map +0 -1
- package/dist/src/agent/ipc/socket.js.map +0 -1
- package/dist/src/agent/ipc/types.js.map +0 -1
- package/dist/src/agent/lifecycle/handlers/compaction.js.map +0 -1
- package/dist/src/agent/lifecycle/hook-handler.js.map +0 -1
- package/dist/src/agent/lifecycle/manager.js.map +0 -1
- package/dist/src/agent/lifecycle/progress.js.map +0 -1
- package/dist/src/agent/lifecycle/timeout-wrapper.js.map +0 -1
- package/dist/src/agent/lifecycle/typing.js.map +0 -1
- package/dist/src/agent/mcp/bundle-mcp-config.js.map +0 -1
- package/dist/src/agent/mcp/bundle-mcp-materialize.js.map +0 -1
- package/dist/src/agent/mcp/bundle-mcp-names.js.map +0 -1
- package/dist/src/agent/mcp/bundle-mcp-policy.js.map +0 -1
- package/dist/src/agent/mcp/bundle-mcp-runtime.js.map +0 -1
- package/dist/src/agent/mcp/embedded-mcp.js.map +0 -1
- package/dist/src/agent/mcp/mcp-config-shared.js.map +0 -1
- package/dist/src/agent/mcp/mcp-http.js.map +0 -1
- package/dist/src/agent/mcp/mcp-stdio-transport.js.map +0 -1
- package/dist/src/agent/mcp/mcp-stdio.js.map +0 -1
- package/dist/src/agent/mcp/mcp-tool-meta.js.map +0 -1
- package/dist/src/agent/mcp/mcp-transport-config.js.map +0 -1
- package/dist/src/agent/mcp/mcp-transport.js.map +0 -1
- package/dist/src/agent/mcp/resolve-embedded-mcp-tools.js.map +0 -1
- package/dist/src/agent/media-generation/model-ref.js.map +0 -1
- package/dist/src/agent/media-generation/normalization.types.js.map +0 -1
- package/dist/src/agent/media-generation/runtime-shared.js.map +0 -1
- package/dist/src/agent/memory/agent-message-access.js.map +0 -1
- package/dist/src/agent/memory/builtin-memory-store.js.map +0 -1
- package/dist/src/agent/memory/builtin-provider.js.map +0 -1
- package/dist/src/agent/memory/compaction.js.map +0 -1
- package/dist/src/agent/memory/context/planner.js.map +0 -1
- package/dist/src/agent/memory/context-fence.js.map +0 -1
- package/dist/src/agent/memory/create-memory-manager.js.map +0 -1
- package/dist/src/agent/memory/dreaming/config.js.map +0 -1
- package/dist/src/agent/memory/dreaming/constants.js.map +0 -1
- package/dist/src/agent/memory/dreaming/deep-promotion.js.map +0 -1
- package/dist/src/agent/memory/dreaming/events.js.map +0 -1
- package/dist/src/agent/memory/dreaming/last-run.js.map +0 -1
- package/dist/src/agent/memory/dreaming/light-sweep.js.map +0 -1
- package/dist/src/agent/memory/dreaming/preview.js.map +0 -1
- package/dist/src/agent/memory/dreaming/promotion-lifecycle.js.map +0 -1
- package/dist/src/agent/memory/dreaming/rem-patterns.js.map +0 -1
- package/dist/src/agent/memory/dreaming/scope.js.map +0 -1
- package/dist/src/agent/memory/dreaming/short-term-store.js.map +0 -1
- package/dist/src/agent/memory/dreaming/utils.js.map +0 -1
- package/dist/src/agent/memory/lifecycle.js.map +0 -1
- package/dist/src/agent/memory/manager.js.map +0 -1
- package/dist/src/agent/memory/memory-config.js.map +0 -1
- package/dist/src/agent/memory/message-sanitizer.js.map +0 -1
- package/dist/src/agent/memory/plugin-discovery.js.map +0 -1
- package/dist/src/agent/memory/sensitivity.js.map +0 -1
- package/dist/src/agent/memory/source-origin.js.map +0 -1
- package/dist/src/agent/memory/stub-memory-provider.js.map +0 -1
- package/dist/src/agent/memory/summary-generator.js.map +0 -1
- package/dist/src/agent/memory/understanding/correction.js.map +0 -1
- package/dist/src/agent/memory/understanding/quality.js.map +0 -1
- package/dist/src/agent/memory/understanding/service.js.map +0 -1
- package/dist/src/agent/memory/user-context-coordinator.js.map +0 -1
- package/dist/src/agent/memory/user-message-text.js.map +0 -1
- package/dist/src/agent/memory/window.js.map +0 -1
- package/dist/src/agent/messaging/command-handler.js.map +0 -1
- package/dist/src/agent/messaging/message-router.js.map +0 -1
- package/dist/src/agent/messaging/outbound-coordinator.js.map +0 -1
- package/dist/src/agent/messaging/stream-manager.js.map +0 -1
- package/dist/src/agent/middleware/context.js.map +0 -1
- package/dist/src/agent/middleware/self-verify.js.map +0 -1
- package/dist/src/agent/models/manager.js.map +0 -1
- package/dist/src/agent/models/request-limiter.js.map +0 -1
- package/dist/src/agent/models/selection.js.map +0 -1
- package/dist/src/agent/orchestration/agent-event-handler.js.map +0 -1
- package/dist/src/agent/orchestration/agent-orchestrator.js.map +0 -1
- package/dist/src/agent/orchestration/llm-turn-retry.js.map +0 -1
- package/dist/src/agent/orchestration/loop-guard.js.map +0 -1
- package/dist/src/agent/orchestration/run-agent-turn-with-timeout.js.map +0 -1
- package/dist/src/agent/prompt/cache-boundary.js.map +0 -1
- package/dist/src/agent/prompt/memory/index.js.map +0 -1
- package/dist/src/agent/prompt/safety.js.map +0 -1
- package/dist/src/agent/prompt/sanitize-for-prompt.js.map +0 -1
- package/dist/src/agent/prompt/sections/behavior.js.map +0 -1
- package/dist/src/agent/prompt/sections/memory-skills.js.map +0 -1
- package/dist/src/agent/prompt/sections/messaging-runtime.js.map +0 -1
- package/dist/src/agent/prompt/sections/project-context.js.map +0 -1
- package/dist/src/agent/prompt/sections/tooling.js.map +0 -1
- package/dist/src/agent/prompt/sections/workspace-runtime.js.map +0 -1
- package/dist/src/agent/prompt/service-prompt-builder.js.map +0 -1
- package/dist/src/agent/prompt/subagent-context.js.map +0 -1
- package/dist/src/agent/prompt/system-prompt-params.js.map +0 -1
- package/dist/src/agent/prompt/system-prompt.js.map +0 -1
- package/dist/src/agent/prompt/system-reminder.js.map +0 -1
- package/dist/src/agent/reply/apply-turn-user-enrichment.js.map +0 -1
- package/dist/src/agent/reply/post-compaction-context.js.map +0 -1
- package/dist/src/agent/reply/startup-context.js.map +0 -1
- package/dist/src/agent/reply/workspace-boundary-read.js.map +0 -1
- package/dist/src/agent/sandbox/command-validator.js.map +0 -1
- package/dist/src/agent/sandbox/exec-policy.js.map +0 -1
- package/dist/src/agent/sandbox/path-policy.js.map +0 -1
- package/dist/src/agent/sandbox/sanitize-env-vars.js.map +0 -1
- package/dist/src/agent/sandbox/types.js.map +0 -1
- package/dist/src/agent/service/async-queue.js.map +0 -1
- package/dist/src/agent/service/btw-query.js.map +0 -1
- package/dist/src/agent/service/build-direct-message-content.js.map +0 -1
- package/dist/src/agent/service/direct-turn-helpers.js.map +0 -1
- package/dist/src/agent/service/parse-outbound-session-key.js.map +0 -1
- package/dist/src/agent/service/process-direct-one-shot.js.map +0 -1
- package/dist/src/agent/service/process-direct-streaming.js.map +0 -1
- package/dist/src/agent/service/session-context-report.js.map +0 -1
- package/dist/src/agent/service/webchat-tts.js.map +0 -1
- package/dist/src/agent/service-inbound-utils.js.map +0 -1
- package/dist/src/agent/service.js.map +0 -1
- package/dist/src/agent/session/session-config-service.js.map +0 -1
- package/dist/src/agent/session/session-context.js.map +0 -1
- package/dist/src/agent/session/session-hydrator.js.map +0 -1
- package/dist/src/agent/session/session-inspector.js.map +0 -1
- package/dist/src/agent/session/session-lifecycle.js.map +0 -1
- package/dist/src/agent/session/session-state-bag.js.map +0 -1
- package/dist/src/agent/session/tracker.js.map +0 -1
- package/dist/src/agent/skills/config.js.map +0 -1
- package/dist/src/agent/skills/filesystem-watcher.js.map +0 -1
- package/dist/src/agent/skills/format-skills-prompt.js.map +0 -1
- package/dist/src/agent/skills/hub-hash.js.map +0 -1
- package/dist/src/agent/skills/hub-lock.js.map +0 -1
- package/dist/src/agent/skills/hub-pull.js.map +0 -1
- package/dist/src/agent/skills/index.js.map +0 -1
- package/dist/src/agent/skills/install-target.js.map +0 -1
- package/dist/src/agent/skills/installer.js.map +0 -1
- package/dist/src/agent/skills/managed-store.js.map +0 -1
- package/dist/src/agent/skills/marketplace/adapters/clawhub/adapter.js.map +0 -1
- package/dist/src/agent/skills/marketplace/adapters/skillhub/adapter.js.map +0 -1
- package/dist/src/agent/skills/marketplace/adapters/store/adapter.js.map +0 -1
- package/dist/src/agent/skills/marketplace/adapters/store/store-api-client.js.map +0 -1
- package/dist/src/agent/skills/marketplace/marketplace-category-order.js.map +0 -1
- package/dist/src/agent/skills/marketplace/registry.js.map +0 -1
- package/dist/src/agent/skills/marketplace/resolve-adapter.js.map +0 -1
- package/dist/src/agent/skills/parse-skill-metadata.js.map +0 -1
- package/dist/src/agent/skills/required-env-vars.js.map +0 -1
- package/dist/src/agent/skills/scanner.js.map +0 -1
- package/dist/src/agent/skills/skill-manage-ops.js.map +0 -1
- package/dist/src/agent/skills/skill-manager.js.map +0 -1
- package/dist/src/agent/skills/skill-markdown-preview-from-raw.js.map +0 -1
- package/dist/src/agent/skills/skill-tool-gating.js.map +0 -1
- package/dist/src/agent/skills/skill-view-path.js.map +0 -1
- package/dist/src/agent/skills/skills-marketplace.js.map +0 -1
- package/dist/src/agent/skills/test-framework.js.map +0 -1
- package/dist/src/agent/skills/watcher.js.map +0 -1
- package/dist/src/agent/skills/workspace-skills-dir.js.map +0 -1
- package/dist/src/agent/source-context/injector.js.map +0 -1
- package/dist/src/agent/source-context/types.js.map +0 -1
- package/dist/src/agent/starter-agents.js.map +0 -1
- package/dist/src/agent/streaming/reasoning-visibility-sse.js.map +0 -1
- package/dist/src/agent/tool-manuals/browser.js.map +0 -1
- package/dist/src/agent/tool-manuals/index.js.map +0 -1
- package/dist/src/agent/tool-manuals/xopc-use.js.map +0 -1
- package/dist/src/agent/tools/apply-patch.js.map +0 -1
- package/dist/src/agent/tools/automation-tool.js.map +0 -1
- package/dist/src/agent/tools/browser/tool/browser-use-tool.js.map +0 -1
- package/dist/src/agent/tools/browser/tool/schemas.js.map +0 -1
- package/dist/src/agent/tools/chain-tracker.js.map +0 -1
- package/dist/src/agent/tools/clarify-tool.js.map +0 -1
- package/dist/src/agent/tools/cli-clarify.js.map +0 -1
- package/dist/src/agent/tools/communication.js.map +0 -1
- package/dist/src/agent/tools/composio-tool.js.map +0 -1
- package/dist/src/agent/tools/concurrency.js.map +0 -1
- package/dist/src/agent/tools/create-share-tool.js.map +0 -1
- package/dist/src/agent/tools/curated-memory-tool.js.map +0 -1
- package/dist/src/agent/tools/delegate-tool.js.map +0 -1
- package/dist/src/agent/tools/desktop-pet-tool.js.map +0 -1
- package/dist/src/agent/tools/dreaming-tool.js.map +0 -1
- package/dist/src/agent/tools/edit-diff.js.map +0 -1
- package/dist/src/agent/tools/error-pattern-matcher.js.map +0 -1
- package/dist/src/agent/tools/error-tracker.js.map +0 -1
- package/dist/src/agent/tools/exec-command.js.map +0 -1
- package/dist/src/agent/tools/execute-code-tool.js.map +0 -1
- package/dist/src/agent/tools/executor.js.map +0 -1
- package/dist/src/agent/tools/factory.js.map +0 -1
- package/dist/src/agent/tools/find.js.map +0 -1
- package/dist/src/agent/tools/goal-evidence-recorder.js.map +0 -1
- package/dist/src/agent/tools/goal-tool.js.map +0 -1
- package/dist/src/agent/tools/grep.js.map +0 -1
- package/dist/src/agent/tools/image-generate-tool.js.map +0 -1
- package/dist/src/agent/tools/image-tool.js.map +0 -1
- package/dist/src/agent/tools/list-dir.js.map +0 -1
- package/dist/src/agent/tools/media-read-tool.js.map +0 -1
- package/dist/src/agent/tools/memory-tool.js.map +0 -1
- package/dist/src/agent/tools/metadata.js.map +0 -1
- package/dist/src/agent/tools/read.js.map +0 -1
- package/dist/src/agent/tools/search/http.js.map +0 -1
- package/dist/src/agent/tools/search/providers/bing-api.js.map +0 -1
- package/dist/src/agent/tools/search/providers/bing-html.js.map +0 -1
- package/dist/src/agent/tools/search/providers/brave.js.map +0 -1
- package/dist/src/agent/tools/search/providers/duckduckgo-html.js.map +0 -1
- package/dist/src/agent/tools/search/providers/searxng.js.map +0 -1
- package/dist/src/agent/tools/search/providers/tavily.js.map +0 -1
- package/dist/src/agent/tools/search/region.js.map +0 -1
- package/dist/src/agent/tools/search/registry.js.map +0 -1
- package/dist/src/agent/tools/search/resolve-config.js.map +0 -1
- package/dist/src/agent/tools/send-media.js.map +0 -1
- package/dist/src/agent/tools/session-search-tool.js.map +0 -1
- package/dist/src/agent/tools/session-status-tool.js.map +0 -1
- package/dist/src/agent/tools/skill-install-tool.js.map +0 -1
- package/dist/src/agent/tools/skill-manage-tool.js.map +0 -1
- package/dist/src/agent/tools/skills-tools.js.map +0 -1
- package/dist/src/agent/tools/structured-output.js.map +0 -1
- package/dist/src/agent/tools/todo-tool.js.map +0 -1
- package/dist/src/agent/tools/tool-manual-tool.js.map +0 -1
- package/dist/src/agent/tools/tool-paths.js.map +0 -1
- package/dist/src/agent/tools/truncate.js.map +0 -1
- package/dist/src/agent/tools/tts-tool.js.map +0 -1
- package/dist/src/agent/tools/update-plan-tool.js.map +0 -1
- package/dist/src/agent/tools/url-safety.js.map +0 -1
- package/dist/src/agent/tools/usage-analyzer.js.map +0 -1
- package/dist/src/agent/tools/web-extract.js.map +0 -1
- package/dist/src/agent/tools/web.js.map +0 -1
- package/dist/src/agent/tools/workflow-tool.js.map +0 -1
- package/dist/src/agent/tools/write.js.map +0 -1
- package/dist/src/agent/tools/xopc-use-tool.js.map +0 -1
- package/dist/src/agent/transcript/google-api.js.map +0 -1
- package/dist/src/agent/transcript/model-selection.js.map +0 -1
- package/dist/src/agent/transcript/provider-capabilities.js.map +0 -1
- package/dist/src/agent/transcript/session-transcript-repair.js.map +0 -1
- package/dist/src/agent/transcript/strip-tool-messages.js.map +0 -1
- package/dist/src/agent/transcript/thinking-types.js.map +0 -1
- package/dist/src/agent/transcript/thinking.js.map +0 -1
- package/dist/src/agent/transcript/tool-call-id.js.map +0 -1
- package/dist/src/agent/transcript/transcript-hygiene.js.map +0 -1
- package/dist/src/agent/transcript/transcript-policy.js.map +0 -1
- package/dist/src/agent/workflow/agent-progress.js.map +0 -1
- package/dist/src/agent/workflow/builtins/index.js.map +0 -1
- package/dist/src/agent/workflow/catalog.js.map +0 -1
- package/dist/src/agent/workflow/progress-broker.js.map +0 -1
- package/dist/src/agent/workflow/snapshot-empty.js.map +0 -1
- package/dist/src/agent/workflow/snapshot.js.map +0 -1
- package/dist/src/agent/workflow/step-labels.js.map +0 -1
- package/dist/src/agent/workflow/structured-output-tool.js.map +0 -1
- package/dist/src/agent/workflow/subagent-runner.js.map +0 -1
- package/dist/src/agent/workflow/workflow-child-tools.js.map +0 -1
- package/dist/src/agent/workspace-runtime/registry.js.map +0 -1
- package/dist/src/agent-manifest/index.js.map +0 -1
- package/dist/src/agent-manifest/preset-chain.js.map +0 -1
- package/dist/src/agent-manifest/prompt.js.map +0 -1
- package/dist/src/agent-manifest/resolver.js.map +0 -1
- package/dist/src/agent-manifest/schema.js.map +0 -1
- package/dist/src/agent-manifest/validator.js.map +0 -1
- package/dist/src/agent-runtime/boundary-guard.js.map +0 -1
- package/dist/src/agent-runtime/memory-runtime.js.map +0 -1
- package/dist/src/agent-runtime/model-router.js.map +0 -1
- package/dist/src/agent-runtime/run-trace.js.map +0 -1
- package/dist/src/agent-runtime/runtime-profile.js.map +0 -1
- package/dist/src/agent-runtime/tool-registry.js.map +0 -1
- package/dist/src/agent-runtime/workflow-runtime.js.map +0 -1
- package/dist/src/ai-assist/text-assist.js.map +0 -1
- package/dist/src/auth/credentials.js.map +0 -1
- package/dist/src/auth/index.js.map +0 -1
- package/dist/src/auth/oauth/anthropic.js.map +0 -1
- package/dist/src/auth/oauth/github-copilot.js.map +0 -1
- package/dist/src/auth/oauth/google-oauth/google-antigravity.js.map +0 -1
- package/dist/src/auth/oauth/google-oauth/google-gemini-cli.js.map +0 -1
- package/dist/src/auth/oauth/google-oauth/oauth-page.js.map +0 -1
- package/dist/src/auth/oauth/google-oauth/pkce.js.map +0 -1
- package/dist/src/auth/oauth/kimi-coding.js.map +0 -1
- package/dist/src/auth/oauth/minimax-cn.js.map +0 -1
- package/dist/src/auth/oauth/minimax.js.map +0 -1
- package/dist/src/auth/oauth/openai-codex.js.map +0 -1
- package/dist/src/auth/oauth/pkce.js.map +0 -1
- package/dist/src/auth/profiles/oauth.js.map +0 -1
- package/dist/src/auth/profiles/order.js.map +0 -1
- package/dist/src/auth/profiles/profiles.js.map +0 -1
- package/dist/src/auth/profiles/store.js.map +0 -1
- package/dist/src/auth/sync-provider-auth.js.map +0 -1
- package/dist/src/automations/api/routes.js.map +0 -1
- package/dist/src/automations/domain/schedule.js.map +0 -1
- package/dist/src/automations/domain/validation.js.map +0 -1
- package/dist/src/automations/draft/automation-draft-prompt.js.map +0 -1
- package/dist/src/automations/draft/automation-draft-service.js.map +0 -1
- package/dist/src/automations/draft/automation-draft-validator.js.map +0 -1
- package/dist/src/automations/product-events.js.map +0 -1
- package/dist/src/automations/service/action-executor.js.map +0 -1
- package/dist/src/automations/service/automation-service.js.map +0 -1
- package/dist/src/automations/storage/automation-repository.js.map +0 -1
- package/dist/src/automations/storage/automation-run-repository.js.map +0 -1
- package/dist/src/browser/actions/extension-registry-bridge.js.map +0 -1
- package/dist/src/browser/actions/registry.js.map +0 -1
- package/dist/src/browser/backend-from-config.js.map +0 -1
- package/dist/src/browser/browser-command-timeout.js.map +0 -1
- package/dist/src/browser/cache-dir-policy.js.map +0 -1
- package/dist/src/browser/cdp-local-launcher.js.map +0 -1
- package/dist/src/browser/cdp-supervisor.js.map +0 -1
- package/dist/src/browser/free-port.js.map +0 -1
- package/dist/src/browser/humanize.js.map +0 -1
- package/dist/src/browser/install-lock.js.map +0 -1
- package/dist/src/browser/manager.js.map +0 -1
- package/dist/src/browser/pipeline/output.js.map +0 -1
- package/dist/src/browser/pipeline/runner.js.map +0 -1
- package/dist/src/browser/pipeline/schema.js.map +0 -1
- package/dist/src/browser/pipeline/source.js.map +0 -1
- package/dist/src/browser/pipeline/template.js.map +0 -1
- package/dist/src/browser/providers/browser-ext-install.js.map +0 -1
- package/dist/src/browser/providers/browser-use.js.map +0 -1
- package/dist/src/browser/providers/browserbase.js.map +0 -1
- package/dist/src/browser/providers/cloakbrowser.js.map +0 -1
- package/dist/src/browser/providers/extension-ws-acquire.js.map +0 -1
- package/dist/src/browser/providers/extension.js.map +0 -1
- package/dist/src/browser/providers/playwright-doctor.js.map +0 -1
- package/dist/src/browser/providers/playwright-install.js.map +0 -1
- package/dist/src/browser/readiness.js.map +0 -1
- package/dist/src/browser/schemas.js.map +0 -1
- package/dist/src/browser/session-lifecycle.js.map +0 -1
- package/dist/src/browser/snapshot-helpers.js.map +0 -1
- package/dist/src/browser/stealth.js.map +0 -1
- package/dist/src/browser/url-policy.js.map +0 -1
- package/dist/src/capabilities/store-connector.js.map +0 -1
- package/dist/src/channels/attachments/attachment-classifiers.js.map +0 -1
- package/dist/src/channels/attachments/inbound-persist.js.map +0 -1
- package/dist/src/channels/attachments/inbound-types.js.map +0 -1
- package/dist/src/channels/attachments/outbound-tts-persist.js.map +0 -1
- package/dist/src/channels/attachments/voice-stt-webchat.js.map +0 -1
- package/dist/src/channels/catalog/channel-catalog-service.js.map +0 -1
- package/dist/src/channels/config-helpers.js.map +0 -1
- package/dist/src/channels/envelope-timestamp.js.map +0 -1
- package/dist/src/channels/exec-approval-runtime.js.map +0 -1
- package/dist/src/channels/health-monitor.js.map +0 -1
- package/dist/src/channels/heartbeat-scheduler.js.map +0 -1
- package/dist/src/channels/internal-outbound.js.map +0 -1
- package/dist/src/channels/lifecycle-supervisor.js.map +0 -1
- package/dist/src/channels/manager.js.map +0 -1
- package/dist/src/channels/media.js.map +0 -1
- package/dist/src/channels/outbound/deliver.js.map +0 -1
- package/dist/src/channels/outbound/normalize.js.map +0 -1
- package/dist/src/channels/outbound/persist-store.js.map +0 -1
- package/dist/src/channels/outbound/queue.js.map +0 -1
- package/dist/src/channels/outbound-sender.js.map +0 -1
- package/dist/src/channels/pairing/allow-from-file.js.map +0 -1
- package/dist/src/channels/pairing/approve-cli.js.map +0 -1
- package/dist/src/channels/pairing/pairing-challenge.js.map +0 -1
- package/dist/src/channels/pairing/pairing-constants.js.map +0 -1
- package/dist/src/channels/pairing/pairing-events.js.map +0 -1
- package/dist/src/channels/pairing/pairing-messages.js.map +0 -1
- package/dist/src/channels/pairing/pairing-service.js.map +0 -1
- package/dist/src/channels/pairing/pairing-store-adapter.js.map +0 -1
- package/dist/src/channels/pairing/pairing-store.js.map +0 -1
- package/dist/src/channels/pairing/paths.js.map +0 -1
- package/dist/src/channels/pairing/preseed-allow-from.js.map +0 -1
- package/dist/src/channels/pipeline.js.map +0 -1
- package/dist/src/channels/plugin-registry.js.map +0 -1
- package/dist/src/channels/plugins/registry.js.map +0 -1
- package/dist/src/channels/restart-policy.js.map +0 -1
- package/dist/src/channels/security-helpers.js.map +0 -1
- package/dist/src/channels/security.js.map +0 -1
- package/dist/src/channels/setup-wizard-discovery.js.map +0 -1
- package/dist/src/chat-commands/agent-edit.js.map +0 -1
- package/dist/src/chat-commands/builtins/config.js.map +0 -1
- package/dist/src/chat-commands/builtins/context.js.map +0 -1
- package/dist/src/chat-commands/builtins/goal.js.map +0 -1
- package/dist/src/chat-commands/builtins/model.js.map +0 -1
- package/dist/src/chat-commands/builtins/review.js.map +0 -1
- package/dist/src/chat-commands/builtins/session.js.map +0 -1
- package/dist/src/chat-commands/builtins/skill.js.map +0 -1
- package/dist/src/chat-commands/builtins/subgoal.js.map +0 -1
- package/dist/src/chat-commands/builtins/system.js.map +0 -1
- package/dist/src/chat-commands/builtins/thinking.js.map +0 -1
- package/dist/src/chat-commands/builtins/tts.js.map +0 -1
- package/dist/src/chat-commands/builtins/workflow.js.map +0 -1
- package/dist/src/chat-commands/command-parse.js.map +0 -1
- package/dist/src/chat-commands/config-paths.js.map +0 -1
- package/dist/src/chat-commands/config-value.js.map +0 -1
- package/dist/src/chat-commands/context.js.map +0 -1
- package/dist/src/chat-commands/format-output.js.map +0 -1
- package/dist/src/chat-commands/index.js.map +0 -1
- package/dist/src/chat-commands/processor.js.map +0 -1
- package/dist/src/chat-commands/registry.js.map +0 -1
- package/dist/src/chat-commands/session-key.js.map +0 -1
- package/dist/src/cli/argv-invocation.js.map +0 -1
- package/dist/src/cli/argv.js.map +0 -1
- package/dist/src/cli/bin.js.map +0 -1
- package/dist/src/cli/cli-log-level-preset.js.map +0 -1
- package/dist/src/cli/command-catalog.js.map +0 -1
- package/dist/src/cli/command-loaders.js.map +0 -1
- package/dist/src/cli/command-manifest.js.map +0 -1
- package/dist/src/cli/command-path-matches.js.map +0 -1
- package/dist/src/cli/command-path-policy.js.map +0 -1
- package/dist/src/cli/command-startup-policy.js.map +0 -1
- package/dist/src/cli/commands/agent/interactive.js.map +0 -1
- package/dist/src/cli/commands/agent/sessions.js.map +0 -1
- package/dist/src/cli/commands/agent/stream-renderer.js.map +0 -1
- package/dist/src/cli/commands/agent.js.map +0 -1
- package/dist/src/cli/commands/agents.js.map +0 -1
- package/dist/src/cli/commands/auth.js.map +0 -1
- package/dist/src/cli/commands/browser-cli-helpers.js.map +0 -1
- package/dist/src/cli/commands/browser.js.map +0 -1
- package/dist/src/cli/commands/channels.js.map +0 -1
- package/dist/src/cli/commands/config.js.map +0 -1
- package/dist/src/cli/commands/connectors.js.map +0 -1
- package/dist/src/cli/commands/doctor/checks/channel-config.js.map +0 -1
- package/dist/src/cli/commands/doctor/checks/channel-pairing-pending.js.map +0 -1
- package/dist/src/cli/commands/doctor/checks/channel-plugins.js.map +0 -1
- package/dist/src/cli/commands/doctor/checks/config-health.js.map +0 -1
- package/dist/src/cli/commands/doctor/checks/database-schema.js.map +0 -1
- package/dist/src/cli/commands/doctor/checks/gateway-health.js.map +0 -1
- package/dist/src/cli/commands/doctor/checks/gateway-service.js.map +0 -1
- package/dist/src/cli/commands/doctor/checks/migrations.js.map +0 -1
- package/dist/src/cli/commands/doctor/checks/node-version.js.map +0 -1
- package/dist/src/cli/commands/doctor/checks/provider-auth.js.map +0 -1
- package/dist/src/cli/commands/doctor/checks/security-audit.js.map +0 -1
- package/dist/src/cli/commands/doctor/checks/session-integrity.js.map +0 -1
- package/dist/src/cli/commands/doctor/checks/state-integrity.js.map +0 -1
- package/dist/src/cli/commands/doctor/checks/version-check.js.map +0 -1
- package/dist/src/cli/commands/doctor/checks/workspace-status.js.map +0 -1
- package/dist/src/cli/commands/doctor/flow.js.map +0 -1
- package/dist/src/cli/commands/doctor/format.js.map +0 -1
- package/dist/src/cli/commands/doctor/index.js.map +0 -1
- package/dist/src/cli/commands/extension-create.js.map +0 -1
- package/dist/src/cli/commands/extension-dev.js.map +0 -1
- package/dist/src/cli/commands/extension-marketplace.js.map +0 -1
- package/dist/src/cli/commands/extension-pack.js.map +0 -1
- package/dist/src/cli/commands/extension.js.map +0 -1
- package/dist/src/cli/commands/gateway/call.js.map +0 -1
- package/dist/src/cli/commands/gateway/health.js.map +0 -1
- package/dist/src/cli/commands/gateway/lifecycle-core.js.map +0 -1
- package/dist/src/cli/commands/gateway/lifecycle.js.map +0 -1
- package/dist/src/cli/commands/gateway/logs.js.map +0 -1
- package/dist/src/cli/commands/gateway/probe.js.map +0 -1
- package/dist/src/cli/commands/gateway/restart-health.js.map +0 -1
- package/dist/src/cli/commands/gateway/restart.js.map +0 -1
- package/dist/src/cli/commands/gateway/run-foreground.js.map +0 -1
- package/dist/src/cli/commands/gateway/service.js.map +0 -1
- package/dist/src/cli/commands/gateway/shared.js.map +0 -1
- package/dist/src/cli/commands/gateway/status.js.map +0 -1
- package/dist/src/cli/commands/gateway/stop.js.map +0 -1
- package/dist/src/cli/commands/gateway/subcommands.js.map +0 -1
- package/dist/src/cli/commands/gateway/token.js.map +0 -1
- package/dist/src/cli/commands/gateway-ssh-tunnel.js.map +0 -1
- package/dist/src/cli/commands/gateway.js.map +0 -1
- package/dist/src/cli/commands/goal.js.map +0 -1
- package/dist/src/cli/commands/image.js.map +0 -1
- package/dist/src/cli/commands/init.js.map +0 -1
- package/dist/src/cli/commands/logs.js.map +0 -1
- package/dist/src/cli/commands/models.js.map +0 -1
- package/dist/src/cli/commands/onboard/channels/index.js.map +0 -1
- package/dist/src/cli/commands/onboard/channels/onboard-to-configurator.js.map +0 -1
- package/dist/src/cli/commands/onboard/channels/registry.js.map +0 -1
- package/dist/src/cli/commands/onboard/channels/wizard-to-configurator.js.map +0 -1
- package/dist/src/cli/commands/onboard/gateway.js.map +0 -1
- package/dist/src/cli/commands/onboard/model.js.map +0 -1
- package/dist/src/cli/commands/onboard.js.map +0 -1
- package/dist/src/cli/commands/profile.js.map +0 -1
- package/dist/src/cli/commands/project.js.map +0 -1
- package/dist/src/cli/commands/providers.js.map +0 -1
- package/dist/src/cli/commands/resume.js.map +0 -1
- package/dist/src/cli/commands/search.js.map +0 -1
- package/dist/src/cli/commands/session/actions.js.map +0 -1
- package/dist/src/cli/commands/session/utils.js.map +0 -1
- package/dist/src/cli/commands/session.js.map +0 -1
- package/dist/src/cli/commands/setup-shared/output.js.map +0 -1
- package/dist/src/cli/commands/setup-shared/prompts.js.map +0 -1
- package/dist/src/cli/commands/setup-shared/runner.js.map +0 -1
- package/dist/src/cli/commands/setup-shared/types.js.map +0 -1
- package/dist/src/cli/commands/setup.js.map +0 -1
- package/dist/src/cli/commands/skills-test.js.map +0 -1
- package/dist/src/cli/commands/skills.js.map +0 -1
- package/dist/src/cli/commands/tailscale.js.map +0 -1
- package/dist/src/cli/commands/tui-runner.js.map +0 -1
- package/dist/src/cli/commands/tui.js.map +0 -1
- package/dist/src/cli/commands/tunnel.js.map +0 -1
- package/dist/src/cli/commands/update.js.map +0 -1
- package/dist/src/cli/commands/voice.js.map +0 -1
- package/dist/src/cli/context.js.map +0 -1
- package/dist/src/cli/extension-cli-register.js.map +0 -1
- package/dist/src/cli/gateway-run-argv.js.map +0 -1
- package/dist/src/cli/gateway-run-fast-path.js.map +0 -1
- package/dist/src/cli/index.js.map +0 -1
- package/dist/src/cli/registry.js.map +0 -1
- package/dist/src/cli/templates.js.map +0 -1
- package/dist/src/cli/utils/colors.js.map +0 -1
- package/dist/src/cli/utils/gateway-client-options.js.map +0 -1
- package/dist/src/cli/utils/gateway-client.js.map +0 -1
- package/dist/src/cli/utils/init-workspace-core.js.map +0 -1
- package/dist/src/cli/utils/init-workspace.js.map +0 -1
- package/dist/src/cli/utils/oauth-login.js.map +0 -1
- package/dist/src/cli/utils/oauth-providers.js.map +0 -1
- package/dist/src/cli/utils/session.js.map +0 -1
- package/dist/src/commands/agents.config.js.map +0 -1
- package/dist/src/config/agent-profile.js.map +0 -1
- package/dist/src/config/agent-typed-models.js.map +0 -1
- package/dist/src/config/commands.flags.js.map +0 -1
- package/dist/src/config/default-model.js.map +0 -1
- package/dist/src/config/diff.js.map +0 -1
- package/dist/src/config/gateway-bind.js.map +0 -1
- package/dist/src/config/index.js.map +0 -1
- package/dist/src/config/loader.js.map +0 -1
- package/dist/src/config/mcp-config-normalize.js.map +0 -1
- package/dist/src/config/model-input.js.map +0 -1
- package/dist/src/config/models-json.js.map +0 -1
- package/dist/src/config/paths-state.js.map +0 -1
- package/dist/src/config/paths.js.map +0 -1
- package/dist/src/config/profile.js.map +0 -1
- package/dist/src/config/public-url.js.map +0 -1
- package/dist/src/config/reload.js.map +0 -1
- package/dist/src/config/resolve-config-value.js.map +0 -1
- package/dist/src/config/rules.js.map +0 -1
- package/dist/src/config/runtime-overrides.js.map +0 -1
- package/dist/src/config/schema.js.map +0 -1
- package/dist/src/config/validate-channel-configs.js.map +0 -1
- package/dist/src/config/voice.js.map +0 -1
- package/dist/src/config/web-patch.js.map +0 -1
- package/dist/src/config/workspace-defaults.js.map +0 -1
- package/dist/src/config/workspace-dirs.js.map +0 -1
- package/dist/src/config/workspace-path-helpers.js.map +0 -1
- package/dist/src/config/workspace-path.js.map +0 -1
- package/dist/src/connectors/approval.js.map +0 -1
- package/dist/src/connectors/auth-provider-registry.js.map +0 -1
- package/dist/src/connectors/builtin-catalog.js.map +0 -1
- package/dist/src/connectors/catalog.js.map +0 -1
- package/dist/src/connectors/composio-catalog.js.map +0 -1
- package/dist/src/connectors/composio-logo.js.map +0 -1
- package/dist/src/connectors/composio-sessions.js.map +0 -1
- package/dist/src/connectors/composio-triggers.js.map +0 -1
- package/dist/src/connectors/composio.js.map +0 -1
- package/dist/src/connectors/connector-memory-sync.js.map +0 -1
- package/dist/src/connectors/health.js.map +0 -1
- package/dist/src/connectors/install.js.map +0 -1
- package/dist/src/connectors/instances.js.map +0 -1
- package/dist/src/connectors/integration-strategy.js.map +0 -1
- package/dist/src/connectors/lifecycle.js.map +0 -1
- package/dist/src/connectors/materialize.js.map +0 -1
- package/dist/src/connectors/policy.js.map +0 -1
- package/dist/src/connectors/providers.js.map +0 -1
- package/dist/src/connectors/registries/modelscope.js.map +0 -1
- package/dist/src/connectors/registries/official-mcp.js.map +0 -1
- package/dist/src/connectors/registries/search.js.map +0 -1
- package/dist/src/connectors/registries/smithery.js.map +0 -1
- package/dist/src/connectors/runtime-adapter-registry.js.map +0 -1
- package/dist/src/connectors/secret-store.js.map +0 -1
- package/dist/src/connectors/setup-secrets.js.map +0 -1
- package/dist/src/connectors/supervisor.js.map +0 -1
- package/dist/src/connectors/usage.js.map +0 -1
- package/dist/src/connectors/workflow-preflight.js.map +0 -1
- package/dist/src/daemon/constants.js.map +0 -1
- package/dist/src/daemon/install-plan.js.map +0 -1
- package/dist/src/daemon/launchd.js.map +0 -1
- package/dist/src/daemon/schtasks.js.map +0 -1
- package/dist/src/daemon/service-audit.js.map +0 -1
- package/dist/src/daemon/service.js.map +0 -1
- package/dist/src/daemon/systemd.js.map +0 -1
- package/dist/src/document-understanding/extract.js.map +0 -1
- package/dist/src/errors/index.js.map +0 -1
- package/dist/src/extensions/activation-context.js.map +0 -1
- package/dist/src/extensions/activation-planner.js.map +0 -1
- package/dist/src/extensions/api.js.map +0 -1
- package/dist/src/extensions/bundle-mcp.js.map +0 -1
- package/dist/src/extensions/bundled-extension-activation.js.map +0 -1
- package/dist/src/extensions/diagnostics.js.map +0 -1
- package/dist/src/extensions/discover-extensions.js.map +0 -1
- package/dist/src/extensions/engine-check.js.map +0 -1
- package/dist/src/extensions/extension-metadata-snapshot.js.map +0 -1
- package/dist/src/extensions/extension-registry-impl.js.map +0 -1
- package/dist/src/extensions/health.js.map +0 -1
- package/dist/src/extensions/hooks.js.map +0 -1
- package/dist/src/extensions/index.js.map +0 -1
- package/dist/src/extensions/install-transaction.js.map +0 -1
- package/dist/src/extensions/install.js.map +0 -1
- package/dist/src/extensions/loader.js.map +0 -1
- package/dist/src/extensions/lockfile.js.map +0 -1
- package/dist/src/extensions/manifest-registry.js.map +0 -1
- package/dist/src/extensions/marketplace.js.map +0 -1
- package/dist/src/extensions/media-provider-contracts.js.map +0 -1
- package/dist/src/extensions/normalize-manifest.js.map +0 -1
- package/dist/src/extensions/onboard-helpers.js.map +0 -1
- package/dist/src/extensions/package-contract.js.map +0 -1
- package/dist/src/extensions/sdk/channel-entry.js.map +0 -1
- package/dist/src/extensions/sdk/channel-helpers.js.map +0 -1
- package/dist/src/extensions/sdk/index.js.map +0 -1
- package/dist/src/extensions/sdk/lazy.js.map +0 -1
- package/dist/src/extensions/sdk/testing.js.map +0 -1
- package/dist/src/extensions/security.js.map +0 -1
- package/dist/src/extensions/slots.js.map +0 -1
- package/dist/src/extensions/speech-provider-contracts.js.map +0 -1
- package/dist/src/extensions/store-zip-limits.js.map +0 -1
- package/dist/src/extensions/typed-event-bus.js.map +0 -1
- package/dist/src/extensions/types/hooks.js.map +0 -1
- package/dist/src/extensions/types/providers.js.map +0 -1
- package/dist/src/extensions/update.js.map +0 -1
- package/dist/src/extensions/when-context.js.map +0 -1
- package/dist/src/extensions/when-expression.js.map +0 -1
- package/dist/src/gateway/agent-builtin-tools.js.map +0 -1
- package/dist/src/gateway/agent-run-relay.js.map +0 -1
- package/dist/src/gateway/agents-admin.js.map +0 -1
- package/dist/src/gateway/auth.js.map +0 -1
- package/dist/src/gateway/capability-presets-admin.js.map +0 -1
- package/dist/src/gateway/chat-limits.js.map +0 -1
- package/dist/src/gateway/chat-stream/mapper.js.map +0 -1
- package/dist/src/gateway/clarify-bridge.js.map +0 -1
- package/dist/src/gateway/clarify-runtime.js.map +0 -1
- package/dist/src/gateway/client-ip.js.map +0 -1
- package/dist/src/gateway/config-tools-web.js.map +0 -1
- package/dist/src/gateway/credential.js.map +0 -1
- package/dist/src/gateway/discovery/mdns.js.map +0 -1
- package/dist/src/gateway/dreaming-automation-reconciler.js.map +0 -1
- package/dist/src/gateway/ensure-network-cors.js.map +0 -1
- package/dist/src/gateway/file-path-classifier.js.map +0 -1
- package/dist/src/gateway/file-reference-registry.js.map +0 -1
- package/dist/src/gateway/global-defaults-admin.js.map +0 -1
- package/dist/src/gateway/heartbeat/service.js.map +0 -1
- package/dist/src/gateway/hono/app.js.map +0 -1
- package/dist/src/gateway/hono/lib/agent-model.js.map +0 -1
- package/dist/src/gateway/hono/lib/config-payload.js.map +0 -1
- package/dist/src/gateway/hono/lib/extension-assets.js.map +0 -1
- package/dist/src/gateway/hono/lib/extension-store.js.map +0 -1
- package/dist/src/gateway/hono/lib/mask-secret-length.js.map +0 -1
- package/dist/src/gateway/hono/lib/route-logger.js.map +0 -1
- package/dist/src/gateway/hono/lib/safe-providers-config.js.map +0 -1
- package/dist/src/gateway/hono/lib/safe-voice-config.js.map +0 -1
- package/dist/src/gateway/hono/lib/startup-unavailable.js.map +0 -1
- package/dist/src/gateway/hono/lib/static-ui.js.map +0 -1
- package/dist/src/gateway/hono/middleware/auth.js.map +0 -1
- package/dist/src/gateway/hono/middleware/log-context.js.map +0 -1
- package/dist/src/gateway/hono/middleware/logger.js.map +0 -1
- package/dist/src/gateway/hono/middleware/route-errors.js.map +0 -1
- package/dist/src/gateway/hono/middleware/scopes.js.map +0 -1
- package/dist/src/gateway/hono/middleware/strict-rate-limit.js.map +0 -1
- package/dist/src/gateway/hono/oauth-async.js.map +0 -1
- package/dist/src/gateway/hono/oauth.js.map +0 -1
- package/dist/src/gateway/hono/routes/activity.js.map +0 -1
- package/dist/src/gateway/hono/routes/agent-stream.js.map +0 -1
- package/dist/src/gateway/hono/routes/agents.js.map +0 -1
- package/dist/src/gateway/hono/routes/ai-assist.js.map +0 -1
- package/dist/src/gateway/hono/routes/auth-registry-extensions.js.map +0 -1
- package/dist/src/gateway/hono/routes/browser-install.js.map +0 -1
- package/dist/src/gateway/hono/routes/browser.js.map +0 -1
- package/dist/src/gateway/hono/routes/capabilities.js.map +0 -1
- package/dist/src/gateway/hono/routes/capability-presets.js.map +0 -1
- package/dist/src/gateway/hono/routes/channels.js.map +0 -1
- package/dist/src/gateway/hono/routes/commands-skills.js.map +0 -1
- package/dist/src/gateway/hono/routes/config-patch/agents.js.map +0 -1
- package/dist/src/gateway/hono/routes/config-patch/channels.js.map +0 -1
- package/dist/src/gateway/hono/routes/config-patch/gateway.js.map +0 -1
- package/dist/src/gateway/hono/routes/config-patch/misc.js.map +0 -1
- package/dist/src/gateway/hono/routes/config-patch/result.js.map +0 -1
- package/dist/src/gateway/hono/routes/config.js.map +0 -1
- package/dist/src/gateway/hono/routes/connectors.js.map +0 -1
- package/dist/src/gateway/hono/routes/doctor.js.map +0 -1
- package/dist/src/gateway/hono/routes/dreaming.js.map +0 -1
- package/dist/src/gateway/hono/routes/exposure.js.map +0 -1
- package/dist/src/gateway/hono/routes/extension-gateway.js.map +0 -1
- package/dist/src/gateway/hono/routes/global-defaults.js.map +0 -1
- package/dist/src/gateway/hono/routes/goals.js.map +0 -1
- package/dist/src/gateway/hono/routes/home.js.map +0 -1
- package/dist/src/gateway/hono/routes/host-fs.js.map +0 -1
- package/dist/src/gateway/hono/routes/index.js.map +0 -1
- package/dist/src/gateway/hono/routes/lazy-bundles.js.map +0 -1
- package/dist/src/gateway/hono/routes/lazy-fallback.js.map +0 -1
- package/dist/src/gateway/hono/routes/local-apps.js.map +0 -1
- package/dist/src/gateway/hono/routes/logs.js.map +0 -1
- package/dist/src/gateway/hono/routes/mcp.js.map +0 -1
- package/dist/src/gateway/hono/routes/media.js.map +0 -1
- package/dist/src/gateway/hono/routes/memory.js.map +0 -1
- package/dist/src/gateway/hono/routes/migrations.js.map +0 -1
- package/dist/src/gateway/hono/routes/mobile.js.map +0 -1
- package/dist/src/gateway/hono/routes/models.js.map +0 -1
- package/dist/src/gateway/hono/routes/notes.js.map +0 -1
- package/dist/src/gateway/hono/routes/projects.js.map +0 -1
- package/dist/src/gateway/hono/routes/public-gateway.js.map +0 -1
- package/dist/src/gateway/hono/routes/search.js.map +0 -1
- package/dist/src/gateway/hono/routes/sessions.js.map +0 -1
- package/dist/src/gateway/hono/routes/shares.js.map +0 -1
- package/dist/src/gateway/hono/routes/site-shares.js.map +0 -1
- package/dist/src/gateway/hono/routes/status.js.map +0 -1
- package/dist/src/gateway/hono/routes/tui.js.map +0 -1
- package/dist/src/gateway/hono/routes/tunnel.js.map +0 -1
- package/dist/src/gateway/hono/routes/update.js.map +0 -1
- package/dist/src/gateway/hono/routes/voice.js.map +0 -1
- package/dist/src/gateway/hono/routes/work-discovery.js.map +0 -1
- package/dist/src/gateway/hono/routes/workflows.js.map +0 -1
- package/dist/src/gateway/hono/routes/workspace.js.map +0 -1
- package/dist/src/gateway/hono/routes/you.js.map +0 -1
- package/dist/src/gateway/hono/sse-json.js.map +0 -1
- package/dist/src/gateway/hono/sse.js.map +0 -1
- package/dist/src/gateway/host.js.map +0 -1
- package/dist/src/gateway/image-capabilities.js.map +0 -1
- package/dist/src/gateway/listen.js.map +0 -1
- package/dist/src/gateway/lock.js.map +0 -1
- package/dist/src/gateway/ports.js.map +0 -1
- package/dist/src/gateway/protocol.js.map +0 -1
- package/dist/src/gateway/public-url.js.map +0 -1
- package/dist/src/gateway/rate-limit/auth-policy.js.map +0 -1
- package/dist/src/gateway/rate-limit/buckets.js.map +0 -1
- package/dist/src/gateway/rate-limit/env-flags.js.map +0 -1
- package/dist/src/gateway/resolve-channel-connect-defer.js.map +0 -1
- package/dist/src/gateway/resolve-webchat-session-key.js.map +0 -1
- package/dist/src/gateway/respawn.js.map +0 -1
- package/dist/src/gateway/run-loop.js.map +0 -1
- package/dist/src/gateway/runtime-config.js.map +0 -1
- package/dist/src/gateway/security/audit.js.map +0 -1
- package/dist/src/gateway/security/csp.js.map +0 -1
- package/dist/src/gateway/security/dangerous-tools.js.map +0 -1
- package/dist/src/gateway/security/external-content.js.map +0 -1
- package/dist/src/gateway/security/known-weak-secrets.js.map +0 -1
- package/dist/src/gateway/security/loopback.js.map +0 -1
- package/dist/src/gateway/security/operator-scopes.js.map +0 -1
- package/dist/src/gateway/security/origin-check.js.map +0 -1
- package/dist/src/gateway/security/preauth-connection-budget.js.map +0 -1
- package/dist/src/gateway/security/secret-equal.js.map +0 -1
- package/dist/src/gateway/server-tailscale.js.map +0 -1
- package/dist/src/gateway/server.js.map +0 -1
- package/dist/src/gateway/service/agent-runner.js.map +0 -1
- package/dist/src/gateway/service/config-coordinator.js.map +0 -1
- package/dist/src/gateway/service/marketplace-service.js.map +0 -1
- package/dist/src/gateway/service/run-gateway-agent.js.map +0 -1
- package/dist/src/gateway/service/session-chat-ids.js.map +0 -1
- package/dist/src/gateway/service/sessions-api.js.map +0 -1
- package/dist/src/gateway/service/sse-hub.js.map +0 -1
- package/dist/src/gateway/service.js.map +0 -1
- package/dist/src/gateway/session-reset-service.js.map +0 -1
- package/dist/src/gateway/startup-readiness.js.map +0 -1
- package/dist/src/gateway/startup-trace.js.map +0 -1
- package/dist/src/gateway/tailscale-auth.js.map +0 -1
- package/dist/src/gateway/tailscale-lifecycle.js.map +0 -1
- package/dist/src/gateway/tls-server.js.map +0 -1
- package/dist/src/gateway/trusted-proxy.js.map +0 -1
- package/dist/src/gateway/user-turn-input.js.map +0 -1
- package/dist/src/gateway/workspace-editor-path.js.map +0 -1
- package/dist/src/gateway/workspace-file-search.js.map +0 -1
- package/dist/src/gateway/workspace-fs-file-list.js.map +0 -1
- package/dist/src/gateway/workspace-heartbeat-path.js.map +0 -1
- package/dist/src/gateway/workspace-ripgrep.js.map +0 -1
- package/dist/src/gateway/ws-security.js.map +0 -1
- package/dist/src/generated/bundled-image-generation-providers.js.map +0 -1
- package/dist/src/goals/goal-contract-draft.js.map +0 -1
- package/dist/src/goals/goal-evidence-review.js.map +0 -1
- package/dist/src/goals/goal-notifications.js.map +0 -1
- package/dist/src/goals/goal-queue-store.js.map +0 -1
- package/dist/src/goals/goal-runner.js.map +0 -1
- package/dist/src/goals/goal-service.js.map +0 -1
- package/dist/src/goals/goal-store.js.map +0 -1
- package/dist/src/goals/goal-workflow-judge.js.map +0 -1
- package/dist/src/heartbeat/active-hours.js.map +0 -1
- package/dist/src/heartbeat/content-check.js.map +0 -1
- package/dist/src/heartbeat/event-prompt.js.map +0 -1
- package/dist/src/heartbeat/tokens.js.map +0 -1
- package/dist/src/heartbeat/wake.js.map +0 -1
- package/dist/src/i18n/format.js.map +0 -1
- package/dist/src/i18n/goals-bundle.js.map +0 -1
- package/dist/src/i18n/locale.js.map +0 -1
- package/dist/src/i18n/locales/goals.en.js.map +0 -1
- package/dist/src/i18n/locales/goals.zh.js.map +0 -1
- package/dist/src/i18n/locales/share-tool.en.js.map +0 -1
- package/dist/src/i18n/locales/share-tool.zh.js.map +0 -1
- package/dist/src/i18n/share-tool-bundle.js.map +0 -1
- package/dist/src/index.js.map +0 -1
- package/dist/src/infra/brew.js.map +0 -1
- package/dist/src/infra/bus/queue.js.map +0 -1
- package/dist/src/infra/debounce.js.map +0 -1
- package/dist/src/infra/exec.js.map +0 -1
- package/dist/src/infra/gateway-process-argv.js.map +0 -1
- package/dist/src/infra/gateway-processes.js.map +0 -1
- package/dist/src/infra/host-env-security-policy.js.map +0 -1
- package/dist/src/infra/host-env-security.js.map +0 -1
- package/dist/src/infra/http-proxy-env.js.map +0 -1
- package/dist/src/infra/is-main.js.map +0 -1
- package/dist/src/infra/json-utf8-bytes.js.map +0 -1
- package/dist/src/infra/node-sqlite.js.map +0 -1
- package/dist/src/infra/package-json.js.map +0 -1
- package/dist/src/infra/package-update-steps.js.map +0 -1
- package/dist/src/infra/path-env.js.map +0 -1
- package/dist/src/infra/path-prepend.js.map +0 -1
- package/dist/src/infra/ports.js.map +0 -1
- package/dist/src/infra/rate-limit/failure-limiter.js.map +0 -1
- package/dist/src/infra/rate-limit/keyed-store.js.map +0 -1
- package/dist/src/infra/rate-limit/rate-limiter.js.map +0 -1
- package/dist/src/infra/restart.js.map +0 -1
- package/dist/src/infra/retry.js.map +0 -1
- package/dist/src/infra/run-command.js.map +0 -1
- package/dist/src/infra/sqlite-errors.js.map +0 -1
- package/dist/src/infra/ssh-tunnel.js.map +0 -1
- package/dist/src/infra/stable-node-path.js.map +0 -1
- package/dist/src/infra/tailscale.js.map +0 -1
- package/dist/src/infra/undici-fetch.js.map +0 -1
- package/dist/src/infra/unhandled-rejections.js.map +0 -1
- package/dist/src/infra/update-channels.js.map +0 -1
- package/dist/src/infra/update-check.js.map +0 -1
- package/dist/src/infra/update-global.js.map +0 -1
- package/dist/src/infra/update-lock.js.map +0 -1
- package/dist/src/infra/update-log.js.map +0 -1
- package/dist/src/infra/update-restart.js.map +0 -1
- package/dist/src/infra/update-runner.js.map +0 -1
- package/dist/src/infra/update-startup.js.map +0 -1
- package/dist/src/infra/warning-filter.js.map +0 -1
- package/dist/src/infra/write-file-atomic.js.map +0 -1
- package/dist/src/knowledge/connected-knowledge-pipeline.js.map +0 -1
- package/dist/src/knowledge/coordinator.js.map +0 -1
- package/dist/src/knowledge/ingestion-service.js.map +0 -1
- package/dist/src/local-apps/acceptance.js.map +0 -1
- package/dist/src/local-apps/preview-runtime-bridge.js.map +0 -1
- package/dist/src/local-apps/runtime-entry.js.map +0 -1
- package/dist/src/local-apps/scaffold.js.map +0 -1
- package/dist/src/local-apps/service.js.map +0 -1
- package/dist/src/local-apps/store.js.map +0 -1
- package/dist/src/markdown/chunk.js.map +0 -1
- package/dist/src/markdown/code-spans.js.map +0 -1
- package/dist/src/markdown/fences.js.map +0 -1
- package/dist/src/markdown/frontmatter.js.map +0 -1
- package/dist/src/markdown/ir.js.map +0 -1
- package/dist/src/markdown/render.js.map +0 -1
- package/dist/src/markdown/tables.js.map +0 -1
- package/dist/src/mcp/channel-bridge.js.map +0 -1
- package/dist/src/mcp/channel-server.js.map +0 -1
- package/dist/src/mcp/channel-shared.js.map +0 -1
- package/dist/src/mcp/channel-tools.js.map +0 -1
- package/dist/src/mcp/gateway-http-client.js.map +0 -1
- package/dist/src/media/media-reference.js.map +0 -1
- package/dist/src/media/paths.js.map +0 -1
- package/dist/src/media/session-references.js.map +0 -1
- package/dist/src/media/store.js.map +0 -1
- package/dist/src/media/uri.js.map +0 -1
- package/dist/src/media-shared/http/api-key-rotation.js.map +0 -1
- package/dist/src/media-shared/http/deadline.js.map +0 -1
- package/dist/src/media-shared/http/private-network.js.map +0 -1
- package/dist/src/media-shared/http/provider-http-errors.js.map +0 -1
- package/dist/src/media-shared/http/provider-http.js.map +0 -1
- package/dist/src/media-shared/http/resolve-provider-http-request-config.js.map +0 -1
- package/dist/src/media-shared/http/ssrf-guard.js.map +0 -1
- package/dist/src/media-shared/http/test-helpers/mock-server.js.map +0 -1
- package/dist/src/media-understanding/audio-transcription-runner.js.map +0 -1
- package/dist/src/media-understanding/openai-compatible-audio.js.map +0 -1
- package/dist/src/media-understanding/registry.js.map +0 -1
- package/dist/src/media-understanding/resolve-entries.js.map +0 -1
- package/dist/src/media-understanding/runner.js.map +0 -1
- package/dist/src/migrations/config/default-capability-preset.js.map +0 -1
- package/dist/src/migrations/registry.js.map +0 -1
- package/dist/src/migrations/runner.js.map +0 -1
- package/dist/src/mobile/notification-service.js.map +0 -1
- package/dist/src/mobile/notification-store.js.map +0 -1
- package/dist/src/mobile/notification-types.js.map +0 -1
- package/dist/src/notes/agent-context.js.map +0 -1
- package/dist/src/notes/attachment-ref.js.map +0 -1
- package/dist/src/notes/note-attachment-sync.js.map +0 -1
- package/dist/src/notes/note-index-meta.js.map +0 -1
- package/dist/src/notes/note-markdown.js.map +0 -1
- package/dist/src/notes/paths.js.map +0 -1
- package/dist/src/notes/service.js.map +0 -1
- package/dist/src/notes/store.js.map +0 -1
- package/dist/src/package-version.js.map +0 -1
- package/dist/src/pets/factory.js.map +0 -1
- package/dist/src/pets/manifest.js.map +0 -1
- package/dist/src/pets/validator.js.map +0 -1
- package/dist/src/process/kill-tree.js.map +0 -1
- package/dist/src/project-trust/trust-store.js.map +0 -1
- package/dist/src/projects/automation-bind.js.map +0 -1
- package/dist/src/projects/goal-bind.js.map +0 -1
- package/dist/src/projects/memory-bind.js.map +0 -1
- package/dist/src/projects/project-agent-suggestion.js.map +0 -1
- package/dist/src/projects/project-agent.js.map +0 -1
- package/dist/src/projects/project-kind.js.map +0 -1
- package/dist/src/projects/project-loop.js.map +0 -1
- package/dist/src/projects/project-service.js.map +0 -1
- package/dist/src/projects/project-store.js.map +0 -1
- package/dist/src/projects/session-bind.js.map +0 -1
- package/dist/src/projects/workflow-bind.js.map +0 -1
- package/dist/src/projects/workspace-project.js.map +0 -1
- package/dist/src/projects/workspace.js.map +0 -1
- package/dist/src/providers/auth-runtime/auth-profile-store.js.map +0 -1
- package/dist/src/providers/auth-runtime/is-configured.js.map +0 -1
- package/dist/src/providers/auth-runtime/oauth.js.map +0 -1
- package/dist/src/providers/auth-runtime/resolve-api-key.js.map +0 -1
- package/dist/src/providers/auth-runtime/resolve-auth.js.map +0 -1
- package/dist/src/providers/constants.js.map +0 -1
- package/dist/src/providers/domestic-presets.js.map +0 -1
- package/dist/src/providers/env-keys.js.map +0 -1
- package/dist/src/providers/extension-stream-bridge.js.map +0 -1
- package/dist/src/providers/index.js.map +0 -1
- package/dist/src/providers/model-call.js.map +0 -1
- package/dist/src/providers/model-discovery.js.map +0 -1
- package/dist/src/providers/model-registry.js.map +0 -1
- package/dist/src/providers/model-supplements.js.map +0 -1
- package/dist/src/providers/plugin-registry.js.map +0 -1
- package/dist/src/providers/presentation.js.map +0 -1
- package/dist/src/remote-access/exposure-guards.js.map +0 -1
- package/dist/src/remote-access/exposure-manager.js.map +0 -1
- package/dist/src/review/review-git.js.map +0 -1
- package/dist/src/review/review-types.js.map +0 -1
- package/dist/src/routing/account-id.js.map +0 -1
- package/dist/src/routing/agent-session-key.js.map +0 -1
- package/dist/src/routing/bindings.js.map +0 -1
- package/dist/src/routing/index.js.map +0 -1
- package/dist/src/routing/resolve-route.js.map +0 -1
- package/dist/src/routing/resolve-tui-session-key.js.map +0 -1
- package/dist/src/routing/session-key-utils.js.map +0 -1
- package/dist/src/routing/session-key.js.map +0 -1
- package/dist/src/session/abort-cutoff.js.map +0 -1
- package/dist/src/session/chat-export.js.map +0 -1
- package/dist/src/session/client-history.js.map +0 -1
- package/dist/src/session/compaction-checkpoints.js.map +0 -1
- package/dist/src/session/config-store.js.map +0 -1
- package/dist/src/session/init-session-turn.js.map +0 -1
- package/dist/src/session/lifecycle-timestamps.js.map +0 -1
- package/dist/src/session/load-jsonl-entries.js.map +0 -1
- package/dist/src/session/manager.js.map +0 -1
- package/dist/src/session/patch-metadata.js.map +0 -1
- package/dist/src/session/reset-policy.js.map +0 -1
- package/dist/src/session/reset-triggers.js.map +0 -1
- package/dist/src/session/reset-type.js.map +0 -1
- package/dist/src/session/resolve-session.js.map +0 -1
- package/dist/src/session/session-context-for-llm.js.map +0 -1
- package/dist/src/session/session-id.js.map +0 -1
- package/dist/src/session/session-title.js.map +0 -1
- package/dist/src/session/session-workspace.js.map +0 -1
- package/dist/src/session/store.js.map +0 -1
- package/dist/src/session/stored-rows-to-file-entries.js.map +0 -1
- package/dist/src/session/thinking-resolve.js.map +0 -1
- package/dist/src/session/transcript-events.js.map +0 -1
- package/dist/src/session/transcript-format.js.map +0 -1
- package/dist/src/session/transcript-outline.js.map +0 -1
- package/dist/src/session/transcript-stats.js.map +0 -1
- package/dist/src/session/types.js.map +0 -1
- package/dist/src/session/user-round-delete.js.map +0 -1
- package/dist/src/share/share-audit.js.map +0 -1
- package/dist/src/share/share-auto.js.map +0 -1
- package/dist/src/share/share-config.js.map +0 -1
- package/dist/src/share/share-landing.js.map +0 -1
- package/dist/src/share/share-rate-limit.js.map +0 -1
- package/dist/src/share/share-store.js.map +0 -1
- package/dist/src/share/share-thumbnail.js.map +0 -1
- package/dist/src/share/share-types.js.map +0 -1
- package/dist/src/share/share-url.js.map +0 -1
- package/dist/src/share/share-zip.js.map +0 -1
- package/dist/src/share/site-proxy.js.map +0 -1
- package/dist/src/share/site-share-config.js.map +0 -1
- package/dist/src/share/site-share-router.js.map +0 -1
- package/dist/src/share/site-share-store.js.map +0 -1
- package/dist/src/share/site-share-types.js.map +0 -1
- package/dist/src/share/site-static-serve.js.map +0 -1
- package/dist/src/storage/sqlite/activity-repository.js.map +0 -1
- package/dist/src/storage/sqlite/config-repository.js.map +0 -1
- package/dist/src/storage/sqlite/connection.js.map +0 -1
- package/dist/src/storage/sqlite/connector-repository.js.map +0 -1
- package/dist/src/storage/sqlite/fts.js.map +0 -1
- package/dist/src/storage/sqlite/knowledge-repository.js.map +0 -1
- package/dist/src/storage/sqlite/memory-index-repository.js.map +0 -1
- package/dist/src/storage/sqlite/memory-records-repository.js.map +0 -1
- package/dist/src/storage/sqlite/memory-reference-consent-repository.js.map +0 -1
- package/dist/src/storage/sqlite/migrations/discover.js.map +0 -1
- package/dist/src/storage/sqlite/migrations/errors.js.map +0 -1
- package/dist/src/storage/sqlite/migrations/runner.js.map +0 -1
- package/dist/src/storage/sqlite/note-agent-context-repository.js.map +0 -1
- package/dist/src/storage/sqlite/notes-repository.js.map +0 -1
- package/dist/src/storage/sqlite/paths.js.map +0 -1
- package/dist/src/storage/sqlite/row-mappers.js.map +0 -1
- package/dist/src/storage/sqlite/schema-version.js.map +0 -1
- package/dist/src/storage/sqlite/schema.js.map +0 -1
- package/dist/src/storage/sqlite/session-metadata.js.map +0 -1
- package/dist/src/storage/sqlite/session-repository.js.map +0 -1
- package/dist/src/storage/sqlite/transaction.js.map +0 -1
- package/dist/src/storage/sqlite/transcript-repository.js.map +0 -1
- package/dist/src/storage/sqlite/user-profile-setup-repository.js.map +0 -1
- package/dist/src/storage/sqlite/user-trust-repository.js.map +0 -1
- package/dist/src/tui/backends/embedded-backend.js.map +0 -1
- package/dist/src/tui/backends/gateway-sse-backend.js.map +0 -1
- package/dist/src/tui/chat-history.js.map +0 -1
- package/dist/src/tui/clipboard-image.js.map +0 -1
- package/dist/src/tui/clipboard-text.js.map +0 -1
- package/dist/src/tui/components/assistant-message.js.map +0 -1
- package/dist/src/tui/components/bash-execution.js.map +0 -1
- package/dist/src/tui/components/bash-summary.js.map +0 -1
- package/dist/src/tui/components/branch-message-summary.js.map +0 -1
- package/dist/src/tui/components/branch-summary.js.map +0 -1
- package/dist/src/tui/components/chat-log.js.map +0 -1
- package/dist/src/tui/components/compaction-summary.js.map +0 -1
- package/dist/src/tui/components/custom-editor.js.map +0 -1
- package/dist/src/tui/components/custom-message.js.map +0 -1
- package/dist/src/tui/components/dynamic-border.js.map +0 -1
- package/dist/src/tui/components/extension-dialog.js.map +0 -1
- package/dist/src/tui/components/fuzzy-filter.js.map +0 -1
- package/dist/src/tui/components/scoped-models-selector.js.map +0 -1
- package/dist/src/tui/components/searchable-select-list.js.map +0 -1
- package/dist/src/tui/components/session-selector.js.map +0 -1
- package/dist/src/tui/components/settings-selector.js.map +0 -1
- package/dist/src/tui/components/thinking-selector.js.map +0 -1
- package/dist/src/tui/components/tool-execution.js.map +0 -1
- package/dist/src/tui/components/tui-bottom-bar.js.map +0 -1
- package/dist/src/tui/components/tui-header.js.map +0 -1
- package/dist/src/tui/components/user-message.js.map +0 -1
- package/dist/src/tui/components/visual-truncate.js.map +0 -1
- package/dist/src/tui/extension-host/autocomplete.js.map +0 -1
- package/dist/src/tui/extension-host/host.js.map +0 -1
- package/dist/src/tui/extension-host/load-extensions.js.map +0 -1
- package/dist/src/tui/extension-host/runtime-context.js.map +0 -1
- package/dist/src/tui/extension-host/runtime.js.map +0 -1
- package/dist/src/tui/extension-host/surface.js.map +0 -1
- package/dist/src/tui/extension-host/tool-renderers.js.map +0 -1
- package/dist/src/tui/format-tui-hotkeys.js.map +0 -1
- package/dist/src/tui/sse-consumer.js.map +0 -1
- package/dist/src/tui/theme/dark.js.map +0 -1
- package/dist/src/tui/theme/light.js.map +0 -1
- package/dist/src/tui/theme-manager.js.map +0 -1
- package/dist/src/tui/theme.js.map +0 -1
- package/dist/src/tui/tool-summary.js.map +0 -1
- package/dist/src/tui/tui-agent-events.js.map +0 -1
- package/dist/src/tui/tui-command-formatters.js.map +0 -1
- package/dist/src/tui/tui-commands.js.map +0 -1
- package/dist/src/tui/tui-context-usage.js.map +0 -1
- package/dist/src/tui/tui-extension-user-message.js.map +0 -1
- package/dist/src/tui/tui-fd-path.js.map +0 -1
- package/dist/src/tui/tui-file-autocomplete.js.map +0 -1
- package/dist/src/tui/tui-follow-up-queue.js.map +0 -1
- package/dist/src/tui/tui-git-branch.js.map +0 -1
- package/dist/src/tui/tui-keybindings-file.js.map +0 -1
- package/dist/src/tui/tui-lifecycle.js.map +0 -1
- package/dist/src/tui/tui-local-shell.js.map +0 -1
- package/dist/src/tui/tui-model-picker.js.map +0 -1
- package/dist/src/tui/tui-oauth-login.js.map +0 -1
- package/dist/src/tui/tui-overlays.js.map +0 -1
- package/dist/src/tui/tui-picker-overlay.js.map +0 -1
- package/dist/src/tui/tui-run-state.js.map +0 -1
- package/dist/src/tui/tui-run-status-format.js.map +0 -1
- package/dist/src/tui/tui-runtime-hints.js.map +0 -1
- package/dist/src/tui/tui-scoped-models.js.map +0 -1
- package/dist/src/tui/tui-session-actions.js.map +0 -1
- package/dist/src/tui/tui-session-format.js.map +0 -1
- package/dist/src/tui/tui-session-snapshot.js.map +0 -1
- package/dist/src/tui/tui-session-stats.js.map +0 -1
- package/dist/src/tui/tui-settings.js.map +0 -1
- package/dist/src/tui/tui-skills-autocomplete.js.map +0 -1
- package/dist/src/tui/tui-startup-resources.js.map +0 -1
- package/dist/src/tui/tui-startup-text.js.map +0 -1
- package/dist/src/tui/tui-stdio-filter.js.map +0 -1
- package/dist/src/tui/tui-submit.js.map +0 -1
- package/dist/src/tui/tui-suspend.js.map +0 -1
- package/dist/src/tui/tui-timeline-picker.js.map +0 -1
- package/dist/src/tui/tui-timeline.js.map +0 -1
- package/dist/src/tui/tui-tool-diff.js.map +0 -1
- package/dist/src/tui/tui-tool-result.js.map +0 -1
- package/dist/src/tui/tui-transcript-tree-picker.js.map +0 -1
- package/dist/src/tui/tui-transcript-tree.js.map +0 -1
- package/dist/src/tui/tui-types.js.map +0 -1
- package/dist/src/tui/tui-workflow-slash.js.map +0 -1
- package/dist/src/tui/tui.js.map +0 -1
- package/dist/src/tui/xopc-tui-keybindings.js.map +0 -1
- package/dist/src/tunnel/broker-client.js.map +0 -1
- package/dist/src/tunnel/consent.js.map +0 -1
- package/dist/src/tunnel/enable-lan-pairing.js.map +0 -1
- package/dist/src/tunnel/env.js.map +0 -1
- package/dist/src/tunnel/frp-subdomain-host.js.map +0 -1
- package/dist/src/tunnel/frpc-binary.js.map +0 -1
- package/dist/src/tunnel/frpc-config.js.map +0 -1
- package/dist/src/tunnel/frpc-extract.js.map +0 -1
- package/dist/src/tunnel/frpc-process.js.map +0 -1
- package/dist/src/tunnel/gateway-lifecycle.js.map +0 -1
- package/dist/src/tunnel/pair-context.js.map +0 -1
- package/dist/src/tunnel/pair-url.js.map +0 -1
- package/dist/src/tunnel/pairing-rate-limit.js.map +0 -1
- package/dist/src/tunnel/pairing.js.map +0 -1
- package/dist/src/tunnel/tunnel-audit.js.map +0 -1
- package/dist/src/tunnel/tunnel-config.js.map +0 -1
- package/dist/src/tunnel/tunnel-persist.js.map +0 -1
- package/dist/src/tunnel/tunnel-qr.js.map +0 -1
- package/dist/src/tunnel/tunnel-rate-limit.js.map +0 -1
- package/dist/src/tunnel/tunnel-service.js.map +0 -1
- package/dist/src/tunnel/tunnel-state.js.map +0 -1
- package/dist/src/tunnel/well-known.js.map +0 -1
- package/dist/src/user-context/config.js.map +0 -1
- package/dist/src/user-context/import.js.map +0 -1
- package/dist/src/user-context/owner.js.map +0 -1
- package/dist/src/user-context/profile.js.map +0 -1
- package/dist/src/user-context/projection.js.map +0 -1
- package/dist/src/user-context/runtime.js.map +0 -1
- package/dist/src/user-context/source-recommendations.js.map +0 -1
- package/dist/src/user-context/trust-policy.js.map +0 -1
- package/dist/src/utils/global-singleton.js.map +0 -1
- package/dist/src/utils/helpers.js.map +0 -1
- package/dist/src/utils/index.js.map +0 -1
- package/dist/src/utils/is-record.js.map +0 -1
- package/dist/src/utils/logger/audit.js.map +0 -1
- package/dist/src/utils/logger/config.js.map +0 -1
- package/dist/src/utils/logger/context.js.map +0 -1
- package/dist/src/utils/logger/exporters.js.map +0 -1
- package/dist/src/utils/logger/index.js.map +0 -1
- package/dist/src/utils/logger/log-store.js.map +0 -1
- package/dist/src/utils/logger/log-stream.js.map +0 -1
- package/dist/src/utils/logger/pino-record.js.map +0 -1
- package/dist/src/utils/logger/redact.js.map +0 -1
- package/dist/src/utils/logger/rotation.js.map +0 -1
- package/dist/src/utils/logger/shutdown.js.map +0 -1
- package/dist/src/utils/logger/stats.js.map +0 -1
- package/dist/src/utils/logger/streams.js.map +0 -1
- package/dist/src/utils/logger/types.js.map +0 -1
- package/dist/src/utils/logger.js.map +0 -1
- package/dist/src/utils/redact-sensitive-url.js.map +0 -1
- package/dist/src/utils/sanitize-log.js.map +0 -1
- package/dist/src/utils/string-coerce.js.map +0 -1
- package/dist/src/voice/language-profile.js.map +0 -1
- package/dist/src/voice/local/model-files.js.map +0 -1
- package/dist/src/voice/local/model-manager.js.map +0 -1
- package/dist/src/voice/local/models.js.map +0 -1
- package/dist/src/voice/local/runtime-client.js.map +0 -1
- package/dist/src/voice/local/runtime-dispatcher.js.map +0 -1
- package/dist/src/voice/local/runtime-worker.js.map +0 -1
- package/dist/src/voice/local/wav.js.map +0 -1
- package/dist/src/voice/metadata/builtin.js.map +0 -1
- package/dist/src/voice/metadata/registry.js.map +0 -1
- package/dist/src/voice/stt/availability.js.map +0 -1
- package/dist/src/voice/stt/config-slice.js.map +0 -1
- package/dist/src/voice/stt/factory.js.map +0 -1
- package/dist/src/voice/stt/index.js.map +0 -1
- package/dist/src/voice/stt/list-providers.js.map +0 -1
- package/dist/src/voice/stt/mention.js.map +0 -1
- package/dist/src/voice/stt/preflight.js.map +0 -1
- package/dist/src/voice/stt/providers/alibaba-transcription.js.map +0 -1
- package/dist/src/voice/stt/providers/local-transcription.js.map +0 -1
- package/dist/src/voice/stt/providers/openai-transcription.js.map +0 -1
- package/dist/src/voice/stt/transcribe-core.js.map +0 -1
- package/dist/src/voice/stt/types.js.map +0 -1
- package/dist/src/voice/tts/audio.js.map +0 -1
- package/dist/src/voice/tts/config-slice.js.map +0 -1
- package/dist/src/voice/tts/directives.js.map +0 -1
- package/dist/src/voice/tts/factory.js.map +0 -1
- package/dist/src/voice/tts/list-providers.js.map +0 -1
- package/dist/src/voice/tts/merge-config.js.map +0 -1
- package/dist/src/voice/tts/openai-compatible-speech.js.map +0 -1
- package/dist/src/voice/tts/payload.js.map +0 -1
- package/dist/src/voice/tts/preprocess.js.map +0 -1
- package/dist/src/voice/tts/providers/alibaba-speech.js.map +0 -1
- package/dist/src/voice/tts/providers/edge-speech.js.map +0 -1
- package/dist/src/voice/tts/providers/minimax-speech.js.map +0 -1
- package/dist/src/voice/tts/providers/openai-speech.js.map +0 -1
- package/dist/src/voice/tts/sentence-boundary.js.map +0 -1
- package/dist/src/voice/tts/service.js.map +0 -1
- package/dist/src/voice/tts/speak-core.js.map +0 -1
- package/dist/src/voice/tts/speech-registry.js.map +0 -1
- package/dist/src/voice/tts/status-tracker.js.map +0 -1
- package/dist/src/voice/tts/summarize.js.map +0 -1
- package/dist/src/voice/tts/types.js.map +0 -1
- package/dist/src/work-discovery/analyzer.js.map +0 -1
- package/dist/src/work-discovery/probe.js.map +0 -1
- package/dist/src/work-discovery/repository.js.map +0 -1
- package/dist/src/work-discovery/service.js.map +0 -1
- package/dist/src/work-items/agent-context.js.map +0 -1
- package/dist/src/work-items/work-item-service.js.map +0 -1
- package/dist/src/work-items/work-item-store.js.map +0 -1
- package/dist/src/work-items/work-item-workflow-judge.js.map +0 -1
- package/dist/src/workflows/authoring/workflow-draft-store.js.map +0 -1
- package/dist/src/workflows/domain/definition-utils.js.map +0 -1
- package/dist/src/workflows/domain/run.js.map +0 -1
- package/dist/src/workflows/domain/schema-validation.js.map +0 -1
- package/dist/src/workflows/domain/validation.js.map +0 -1
- package/dist/src/workflows/draft/workflow-draft-prompt.js.map +0 -1
- package/dist/src/workflows/draft/workflow-draft-service.js.map +0 -1
- package/dist/src/workflows/draft/workflow-draft-validator.js.map +0 -1
- package/dist/src/workflows/engine/projector.js.map +0 -1
- package/dist/src/workflows/engine/workflow-engine.js.map +0 -1
- package/dist/src/workflows/registry/catalog-workflow-definition-registry.js.map +0 -1
- package/dist/src/workflows/runtime/graph-workflow-runtime.js.map +0 -1
- package/dist/src/workflows/service/run-view-to-snapshot.js.map +0 -1
- package/dist/src/workflows/service/workflow-run-service.js.map +0 -1
- package/dist/src/workflows/service/workflow-session-bridge.js.map +0 -1
- package/dist/src/workflows/service/workflow-session-key.js.map +0 -1
- package/dist/src/workflows/store/event-store.js.map +0 -1
- package/dist/src/workflows/store/paths.js.map +0 -1
- package/dist/src/workflows/store/run-index-store.js.map +0 -1
- package/dist/src/workflows/store/run-store.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"actions.js","names":[],"sources":["../../../../../src/cli/commands/session/actions.ts"],"sourcesContent":["/**\n * Session command action handlers\n */\n\nimport { createLogger } from '../../../utils/logger.js';\nimport type { SessionListQuery, ExportFormat, SessionStatus } from '../../../session/types.js';\nimport { getManager } from './utils.js';\n\nconst log = createLogger('SessionCommand');\n\nfunction formatMessageContentForCli(content: string | unknown[]): string {\n if (typeof content === 'string') {\n return content;\n }\n if (Array.isArray(content)) {\n return content\n .map((block) => {\n if (!block || typeof block !== 'object') return '';\n const b = block as Record<string, unknown>;\n if (b.type === 'text' && typeof b.text === 'string') return b.text;\n if (b.type === 'toolCall' || b.type === 'tool_use') return `[${String(b.name ?? 'tool')}]`;\n return '';\n })\n .join(' ');\n }\n return '';\n}\n\n// List sessions\nexport async function listSessions(options: {\n channel?: string;\n status?: string;\n tag: string[];\n query?: string;\n sort: string;\n order: string;\n limit: string;\n offset: string;\n}): Promise<void> {\n const manager = await getManager();\n\n const query: SessionListQuery = {\n channel: options.channel,\n status: options.status as SessionStatus,\n tags: options.tag.length > 0 ? options.tag : undefined,\n search: options.query,\n sortBy: options.sort as any,\n sortOrder: options.order as any,\n limit: parseInt(options.limit),\n offset: parseInt(options.offset),\n };\n\n const result = await manager.listSessions(query);\n\n console.log(`\\n📋 Sessions (${result.items.length} of ${result.total}):\\n`);\n\n if (result.items.length === 0) {\n console.log('No sessions found.');\n return;\n }\n\n console.log('Key'.padEnd(30) + 'Name'.padEnd(20) + 'Status'.padEnd(10) + 'Messages'.padEnd(10) + 'Updated');\n console.log('─'.repeat(90));\n\n for (const session of result.items) {\n const name = (session.name || '-').slice(0, 18).padEnd(20);\n const status = session.status.padEnd(10);\n const messages = String(session.messageCount).padEnd(10);\n const updated = new Date(session.updatedAt).toLocaleDateString();\n console.log(`${session.key.slice(0, 28).padEnd(30)}${name}${status}${messages}${updated}`);\n }\n\n if (result.hasMore) {\n console.log(`\\n... and ${result.total - result.offset - result.limit} more`);\n }\n\n console.log();\n}\n\n// Get session info\nexport async function getSessionInfo(key: string): Promise<void> {\n const manager = await getManager();\n const session = await manager.getSession(key);\n\n if (!session) {\n console.error(`❌ Session not found: ${key}`);\n process.exit(1);\n }\n\n console.log(`\\n📁 Session: ${session.key}\\n`);\n console.log(` Name: ${session.name || '-'}`);\n console.log(` Status: ${session.status}`);\n console.log(` Tags: ${session.tags.join(', ') || '-'}`);\n console.log(` Channel: ${session.sourceChannel}`);\n console.log(` Chat ID: ${session.sourceChatId}`);\n console.log(` Messages: ${session.messageCount}`);\n console.log(` Est. Tokens: ${session.estimatedTokens.toLocaleString()}`);\n console.log(` Compacted: ${session.compactedCount} times`);\n console.log(` Created: ${new Date(session.createdAt).toLocaleString()}`);\n console.log(` Updated: ${new Date(session.updatedAt).toLocaleString()}`);\n console.log(` Last Access: ${new Date(session.lastAccessedAt).toLocaleString()}`);\n\n if (session.messages.length > 0) {\n console.log(`\\n Recent Messages:`);\n const recent = session.messages.slice(-5);\n for (const msg of recent) {\n const role = msg.role.padEnd(10);\n const text = formatMessageContentForCli(msg.content);\n const preview = text.slice(0, 60).replace(/\\n/g, ' ');\n console.log(` ${role}: ${preview}${text.length > 60 ? '...' : ''}`);\n }\n }\n\n console.log();\n}\n\n// Delete session\nexport async function deleteSession(key: string, options: { force: boolean }): Promise<void> {\n if (!options.force) {\n const { confirm } = await import('@inquirer/prompts');\n const confirmed = await confirm({\n message: `Are you sure you want to delete session \"${key}\"?`,\n default: false,\n });\n if (!confirmed) {\n console.log('Cancelled.');\n return;\n }\n }\n\n const manager = await getManager();\n await manager.deleteSession(key);\n console.log(`✅ Session deleted: ${key}`);\n}\n\n// Delete multiple sessions\nexport async function deleteMany(options: {\n status?: string;\n channel?: string;\n force: boolean;\n}): Promise<void> {\n const manager = await getManager();\n\n const query: SessionListQuery = {\n status: options.status as SessionStatus,\n channel: options.channel,\n limit: 1000,\n };\n\n const result = await manager.listSessions(query);\n\n if (result.items.length === 0) {\n console.log('No sessions match the criteria.');\n return;\n }\n\n const keys = result.items.map((s) => s.key);\n console.log(`Found ${keys.length} sessions to delete.`);\n\n if (!options.force) {\n const { confirm } = await import('@inquirer/prompts');\n const confirmed = await confirm({\n message: `Delete ${keys.length} sessions?`,\n default: false,\n });\n if (!confirmed) {\n console.log('Cancelled.');\n return;\n }\n }\n\n const deleteResult = await manager.deleteSessions(keys);\n console.log(`✅ Deleted ${deleteResult.success.length} sessions`);\n if (deleteResult.failed.length > 0) {\n console.log(`❌ Failed to delete ${deleteResult.failed.length} sessions`);\n }\n}\n\n// Rename session\nexport async function renameSession(key: string, name: string): Promise<void> {\n const manager = await getManager();\n await manager.renameSession(key, name);\n console.log(`✅ Session renamed to: ${name}`);\n}\n\n// Tag session\nexport async function tagSession(key: string, tags: string[]): Promise<void> {\n const manager = await getManager();\n await manager.tagSession(key, tags);\n console.log(`✅ Tags added: ${tags.join(', ')}`);\n}\n\n// Untag session\nexport async function untagSession(key: string, tags: string[]): Promise<void> {\n const manager = await getManager();\n await manager.untagSession(key, tags);\n console.log(`✅ Tags removed: ${tags.join(', ')}`);\n}\n\n// Archive session\nexport async function archiveSession(key: string): Promise<void> {\n const manager = await getManager();\n await manager.archiveSession(key);\n console.log(`✅ Session archived: ${key}`);\n}\n\n// Unarchive session\nexport async function unarchiveSession(key: string): Promise<void> {\n const manager = await getManager();\n await manager.unarchiveSession(key);\n console.log(`✅ Session unarchived: ${key}`);\n}\n\n// Pin session\nexport async function pinSession(key: string): Promise<void> {\n const manager = await getManager();\n await manager.pinSession(key);\n console.log(`✅ Session pinned: ${key}`);\n}\n\n// Unpin session\nexport async function unpinSession(key: string): Promise<void> {\n const manager = await getManager();\n await manager.unpinSession(key);\n console.log(`✅ Session unpinned: ${key}`);\n}\n\n// Search sessions\nexport async function searchSessions(query: string): Promise<void> {\n const manager = await getManager();\n const sessions = await manager.searchSessions(query);\n\n console.log(`\\n🔍 Search results for \"${query}\" (${sessions.length} found):\\n`);\n\n if (sessions.length === 0) {\n console.log('No sessions found.');\n return;\n }\n\n for (const session of sessions) {\n console.log(` ${session.key}`);\n if (session.name) console.log(` Name: ${session.name}`);\n console.log(` Status: ${session.status} | Messages: ${session.messageCount}`);\n console.log(` Tags: ${session.tags.join(', ') || '-'}`);\n console.log();\n }\n}\n\n// Search within session\nexport async function grepSession(key: string, keyword: string): Promise<void> {\n const manager = await getManager();\n const messages = await manager.searchInSession(key, keyword);\n\n console.log(`\\n🔍 Found ${messages.length} messages containing \"${keyword}\":\\n`);\n\n for (const msg of messages) {\n const role = msg.role.padEnd(10);\n const text = formatMessageContentForCli(msg.content);\n const highlighted = text.replace(\n new RegExp(keyword, 'gi'),\n (match) => `\\x1b[33m${match}\\x1b[0m`\n );\n console.log(` ${role}: ${highlighted.slice(0, 200)}${text.length > 200 ? '...' : ''}\\n`);\n }\n}\n\n// Export session\nexport async function exportSession(\n key: string,\n options: { format: string; output?: string }\n): Promise<void> {\n const manager = await getManager();\n const format = options.format as ExportFormat;\n const content = await manager.exportSession(key, format);\n\n if (options.output) {\n const { writeFile } = await import('fs/promises');\n await writeFile(options.output, content);\n console.log(`✅ Exported to: ${options.output}`);\n } else {\n console.log(content);\n }\n}\n\n// Show stats\nexport async function showStats(): Promise<void> {\n const manager = await getManager();\n const stats = await manager.getStats();\n\n console.log('\\n📊 Session Statistics\\n');\n console.log(` Total Sessions: ${stats.totalSessions}`);\n console.log(` Active: ${stats.activeSessions}`);\n console.log(` Archived: ${stats.archivedSessions}`);\n console.log(` Pinned: ${stats.pinnedSessions}`);\n console.log(` Total Messages: ${stats.totalMessages.toLocaleString()}`);\n console.log(` Total Tokens: ${stats.totalTokens.toLocaleString()}`);\n\n if (stats.oldestSession) {\n console.log(` Oldest Session: ${new Date(stats.oldestSession).toLocaleDateString()}`);\n }\n if (stats.newestSession) {\n console.log(` Newest Session: ${new Date(stats.newestSession).toLocaleDateString()}`);\n }\n\n if (Object.keys(stats.byChannel).length > 0) {\n console.log('\\n By Channel:');\n for (const [channel, count] of Object.entries(stats.byChannel)) {\n console.log(` ${channel}: ${count}`);\n }\n }\n\n console.log();\n}\n\n// Cleanup old sessions\nexport async function cleanup(options: { days: string; force: boolean }): Promise<void> {\n const days = parseInt(options.days);\n\n if (!options.force) {\n const { confirm } = await import('@inquirer/prompts');\n const confirmed = await confirm({\n message: `Archive all sessions inactive for more than ${days} days?`,\n default: false,\n });\n if (!confirmed) {\n console.log('Cancelled.');\n return;\n }\n }\n\n const manager = await getManager();\n const count = await manager.archiveOldSessions(days);\n console.log(`✅ Archived ${count} sessions`);\n}\n\n// Error handler wrapper\nexport function handleError(error: unknown, message: string): never {\n log.error({ err: error }, message);\n process.exit(1);\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","names":[],"sources":["../../../../../src/cli/commands/session/utils.ts"],"sourcesContent":["/**\n * Session command utilities\n */\n\nimport { getSessionIndex } from '../../utils/session.js';\nimport { getContextWithOpts } from '../../context.js';\nimport type { SessionIndex } from '../../../session/index.js';\n\n/**\n * Get initialized session manager\n */\nexport async function getManager(): Promise<SessionIndex> {\n getContextWithOpts();\n return getSessionIndex();\n}\n\n/**\n * Collect multiple option values into array\n */\nexport function collect(value: string, previous: string[]): string[] {\n return previous.concat([value]);\n}\n"],"mappings":";;;;;;;;;AAWA,eAAsB,aAAoC;AACxD,qBAAoB;AACpB,QAAO,iBAAiB;;;;;AAM1B,SAAgB,QAAQ,OAAe,UAA8B;AACnE,QAAO,SAAS,OAAO,CAAC,MAAM,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","names":["actions.listSessions","actions.getSessionInfo","actions.deleteSession","actions.deleteMany","actions.renameSession","actions.tagSession","actions.untagSession","actions.archiveSession","actions.unarchiveSession","actions.pinSession","actions.unpinSession","actions.searchSessions","actions.grepSession","actions.exportSession","actions.showStats","actions.cleanup"],"sources":["../../../../src/cli/commands/session.ts"],"sourcesContent":["// Session management CLI commands\n\nimport { Command } from 'commander';\nimport { register, formatExamples, type CLIContext } from '../registry.js';\nimport { collect } from './session/utils.js';\nimport * as actions from './session/actions.js';\n\nfunction createSessionCommand(_ctx: CLIContext): Command {\n const sessionCmd = new Command('session')\n .description('Session management commands')\n .addHelpText(\n 'after',\n formatExamples([\n 'xopc session list # List all sessions',\n 'xopc session info <key> # Show session details',\n 'xopc session delete <key> # Delete a session',\n 'xopc session rename <key> <name> # Rename a session',\n 'xopc session tag <key> <tag1> <tag2> # Add tags',\n 'xopc session archive <key> # Archive session',\n 'xopc session search <query> # Search sessions',\n 'xopc session export <key> # Export session',\n 'xopc session stats # Show statistics',\n ])\n );\n\n // List sessions\n sessionCmd\n .command('list')\n .description('List all sessions')\n .option('-c, --channel <channel>', 'Filter by channel (telegram, gateway, cli)')\n .option('-s, --status <status>', 'Filter by status (active, idle, archived, pinned)')\n .option('-t, --tag <tag>', 'Filter by tag (can be used multiple times)', collect, [])\n .option('-q, --query <query>', 'Search query')\n .option('--sort <field>', 'Sort by field (updatedAt, createdAt, messageCount, lastAccessedAt)', 'updatedAt')\n .option('--order <order>', 'Sort order (asc, desc)', 'desc')\n .option('-l, --limit <n>', 'Limit results', '20')\n .option('-o, --offset <n>', 'Offset for pagination', '0')\n .action(async (options) => {\n try {\n await actions.listSessions(options);\n } catch (error) {\n actions.handleError(error, 'Failed to list sessions');\n }\n });\n\n // Get session info\n sessionCmd\n .command('info <key>')\n .description('Get detailed information about a session')\n .action(async (key) => {\n try {\n await actions.getSessionInfo(key);\n } catch (error) {\n actions.handleError(error, 'Failed to get session info');\n }\n });\n\n // Delete session\n sessionCmd\n .command('delete <key>')\n .description('Delete a session')\n .option('-f, --force', 'Skip confirmation', false)\n .action(async (key, options) => {\n try {\n await actions.deleteSession(key, options);\n } catch (error) {\n actions.handleError(error, 'Failed to delete session');\n }\n });\n\n // Delete multiple sessions\n sessionCmd\n .command('delete-many')\n .description('Delete multiple sessions by status or channel')\n .option('-s, --status <status>', 'Delete all sessions with this status')\n .option('-c, --channel <channel>', 'Delete all sessions from this channel')\n .option('-f, --force', 'Skip confirmation', false)\n .action(async (options) => {\n try {\n await actions.deleteMany(options);\n } catch (error) {\n actions.handleError(error, 'Failed to delete sessions');\n }\n });\n\n // Rename session\n sessionCmd\n .command('rename <key> <name>')\n .description('Rename a session')\n .action(async (key, name) => {\n try {\n await actions.renameSession(key, name);\n } catch (error) {\n actions.handleError(error, 'Failed to rename session');\n }\n });\n\n // Tag session\n sessionCmd\n .command('tag <key> <tags...>')\n .description('Add tags to a session')\n .action(async (key, tags) => {\n try {\n await actions.tagSession(key, tags);\n } catch (error) {\n actions.handleError(error, 'Failed to tag session');\n }\n });\n\n // Untag session\n sessionCmd\n .command('untag <key> <tags...>')\n .description('Remove tags from a session')\n .action(async (key, tags) => {\n try {\n await actions.untagSession(key, tags);\n } catch (error) {\n actions.handleError(error, 'Failed to untag session');\n }\n });\n\n // Archive session\n sessionCmd\n .command('archive <key>')\n .description('Archive a session')\n .action(async (key) => {\n try {\n await actions.archiveSession(key);\n } catch (error) {\n actions.handleError(error, 'Failed to archive session');\n }\n });\n\n // Unarchive session\n sessionCmd\n .command('unarchive <key>')\n .description('Unarchive a session')\n .action(async (key) => {\n try {\n await actions.unarchiveSession(key);\n } catch (error) {\n actions.handleError(error, 'Failed to unarchive session');\n }\n });\n\n // Pin session\n sessionCmd\n .command('pin <key>')\n .description('Pin a session')\n .action(async (key) => {\n try {\n await actions.pinSession(key);\n } catch (error) {\n actions.handleError(error, 'Failed to pin session');\n }\n });\n\n // Unpin session\n sessionCmd\n .command('unpin <key>')\n .description('Unpin a session')\n .action(async (key) => {\n try {\n await actions.unpinSession(key);\n } catch (error) {\n actions.handleError(error, 'Failed to unpin session');\n }\n });\n\n // Search sessions\n sessionCmd\n .command('search <query>')\n .description('Search sessions by name, key, or tags')\n .action(async (query) => {\n try {\n await actions.searchSessions(query);\n } catch (error) {\n actions.handleError(error, 'Failed to search sessions');\n }\n });\n\n // Search within session\n sessionCmd\n .command('grep <key> <keyword>')\n .description('Search for a keyword within a session')\n .action(async (key, keyword) => {\n try {\n await actions.grepSession(key, keyword);\n } catch (error) {\n actions.handleError(error, 'Failed to search in session');\n }\n });\n\n // Export session\n sessionCmd\n .command('export <key>')\n .description('Export a session')\n .option('-f, --format <format>', 'Export format (json, markdown)', 'json')\n .option('-o, --output <path>', 'Output file path')\n .action(async (key, options) => {\n try {\n await actions.exportSession(key, options);\n } catch (error) {\n actions.handleError(error, 'Failed to export session');\n }\n });\n\n // Stats\n sessionCmd\n .command('stats')\n .description('Show session statistics')\n .action(async () => {\n try {\n await actions.showStats();\n } catch (error) {\n actions.handleError(error, 'Failed to get stats');\n }\n });\n\n // Archive old sessions\n sessionCmd\n .command('cleanup')\n .description('Archive sessions older than N days')\n .option('-d, --days <n>', 'Days of inactivity before archiving', '30')\n .option('-f, --force', 'Skip confirmation', false)\n .action(async (options) => {\n try {\n await actions.cleanup(options);\n } catch (error) {\n actions.handleError(error, 'Failed to cleanup sessions');\n }\n });\n\n return sessionCmd;\n}\n\nregister({\n id: 'session',\n name: 'session',\n description: 'Session management commands',\n factory: createSessionCommand,\n metadata: {\n category: 'maintenance',\n examples: [\n 'xopc session list',\n 'xopc session info telegram:dm:123456',\n 'xopc session delete telegram:g:-100123456',\n 'xopc session export telegram:dm:123456 --format markdown',\n ],\n },\n});\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"output.js","names":[],"sources":["../../../../../src/cli/commands/setup-shared/output.ts"],"sourcesContent":["import { colors } from '../../utils/colors.js';\nimport type { SetupOutcome } from './types.js';\n\n/**\n * Single-line JSON for `--json` mode. Agents (M2) parse stdout, so we keep\n * this stable: `{ ok, action, domain, target?, changedPaths, dryRun, errors?,\n * value?, notes? }`.\n */\nexport function printJsonOutcome(outcome: SetupOutcome): void {\n const payload: Record<string, unknown> = {\n ok: outcome.ok,\n action: outcome.action,\n domain: outcome.domain,\n changedPaths: outcome.changedPaths,\n dryRun: outcome.dryRun,\n };\n if (outcome.target !== undefined) payload.target = outcome.target;\n if (outcome.errors?.length) payload.errors = outcome.errors;\n if (outcome.value !== undefined) payload.value = outcome.value;\n if (outcome.notes?.length) payload.notes = outcome.notes;\n process.stdout.write(JSON.stringify(payload) + '\\n');\n}\n\nconst ACTION_VERB: Record<SetupOutcome['action'], string> = {\n add: 'Added',\n set: 'Updated',\n remove: 'Removed',\n noop: 'No change',\n};\n\nexport function printTextOutcome(outcome: SetupOutcome): void {\n if (!outcome.ok) {\n console.error(colors.red('✗') + ' ' + colors.bold(`${outcome.domain} ${outcome.action}`) + ' failed');\n for (const err of outcome.errors ?? []) {\n const where = err.path ? colors.gray(`[${err.path}] `) : '';\n console.error(` ${where}${err.message}`);\n }\n return;\n }\n\n const target = outcome.target ? ` ${colors.bold(outcome.target)}` : '';\n const verb = ACTION_VERB[outcome.action];\n const dryRun = outcome.dryRun ? colors.yellow(' [dry-run]') : '';\n console.log(colors.green('✓') + ` ${verb} ${outcome.domain}${target}${dryRun}`);\n\n if (outcome.changedPaths.length > 0) {\n console.log(colors.gray(' Changed paths:'));\n for (const path of outcome.changedPaths) {\n console.log(` ${colors.cyan(path)}`);\n }\n } else if (outcome.action === 'noop') {\n console.log(colors.gray(' Nothing to change.'));\n }\n\n for (const note of outcome.notes ?? []) {\n console.log(` ${colors.gray('→')} ${note}`);\n }\n}\n\nexport function emitOutcome(outcome: SetupOutcome, json: boolean): void {\n if (json) {\n printJsonOutcome(outcome);\n } else {\n printTextOutcome(outcome);\n }\n}\n"],"mappings":";;;;;;;AAQA,SAAgB,iBAAiB,SAA6B;CAC5D,MAAM,UAAmC;EACvC,IAAI,QAAQ;EACZ,QAAQ,QAAQ;EAChB,QAAQ,QAAQ;EAChB,cAAc,QAAQ;EACtB,QAAQ,QAAQ;EACjB;AACD,KAAI,QAAQ,WAAW,KAAA,EAAW,SAAQ,SAAS,QAAQ;AAC3D,KAAI,QAAQ,QAAQ,OAAQ,SAAQ,SAAS,QAAQ;AACrD,KAAI,QAAQ,UAAU,KAAA,EAAW,SAAQ,QAAQ,QAAQ;AACzD,KAAI,QAAQ,OAAO,OAAQ,SAAQ,QAAQ,QAAQ;AACnD,SAAQ,OAAO,MAAM,KAAK,UAAU,QAAQ,GAAG,KAAK;;AAGtD,MAAM,cAAsD;CAC1D,KAAK;CACL,KAAK;CACL,QAAQ;CACR,MAAM;CACP;AAED,SAAgB,iBAAiB,SAA6B;AAC5D,KAAI,CAAC,QAAQ,IAAI;AACf,UAAQ,MAAM,OAAO,IAAI,IAAI,GAAG,MAAM,OAAO,KAAK,GAAG,QAAQ,OAAO,GAAG,QAAQ,SAAS,GAAG,UAAU;AACrG,OAAK,MAAM,OAAO,QAAQ,UAAU,EAAE,EAAE;GACtC,MAAM,QAAQ,IAAI,OAAO,OAAO,KAAK,IAAI,IAAI,KAAK,IAAI,GAAG;AACzD,WAAQ,MAAM,KAAK,QAAQ,IAAI,UAAU;;AAE3C;;CAGF,MAAM,SAAS,QAAQ,SAAS,IAAI,OAAO,KAAK,QAAQ,OAAO,KAAK;CACpE,MAAM,OAAO,YAAY,QAAQ;CACjC,MAAM,SAAS,QAAQ,SAAS,OAAO,OAAO,aAAa,GAAG;AAC9D,SAAQ,IAAI,OAAO,MAAM,IAAI,GAAG,IAAI,KAAK,GAAG,QAAQ,SAAS,SAAS,SAAS;AAE/E,KAAI,QAAQ,aAAa,SAAS,GAAG;AACnC,UAAQ,IAAI,OAAO,KAAK,mBAAmB,CAAC;AAC5C,OAAK,MAAM,QAAQ,QAAQ,aACzB,SAAQ,IAAI,OAAO,OAAO,KAAK,KAAK,GAAG;YAEhC,QAAQ,WAAW,OAC5B,SAAQ,IAAI,OAAO,KAAK,uBAAuB,CAAC;AAGlD,MAAK,MAAM,QAAQ,QAAQ,SAAS,EAAE,CACpC,SAAQ,IAAI,KAAK,OAAO,KAAK,IAAI,CAAC,GAAG,OAAO;;AAIhD,SAAgB,YAAY,SAAuB,MAAqB;AACtE,KAAI,KACF,kBAAiB,QAAQ;KAEzB,kBAAiB,QAAQ"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.js","names":[],"sources":["../../../../../src/cli/commands/setup-shared/prompts.ts"],"sourcesContent":["import { password } from '@inquirer/prompts';\n\n/**\n * Prompt for a secret value (API key, token, etc.) without echoing it to the\n * terminal. Returns the trimmed string, or throws `ExitPromptError` if the\n * user cancels with Ctrl+C — callers should let it propagate and exit\n * with `SETUP_EXIT.CANCELLED`.\n */\nexport async function promptSecret(message: string): Promise<string> {\n const value = await password({\n message,\n mask: '*',\n validate: (input) => (input.trim().length > 0 ? true : 'Value cannot be empty'),\n });\n return value.trim();\n}\n\n/**\n * True if running in a non-interactive context (no TTY, CI, etc.). Used to\n * skip interactive prompts and require flags instead.\n */\nexport function isInteractive(): boolean {\n return Boolean(process.stdin.isTTY && process.stdout.isTTY);\n}\n\n/**\n * Detect `@inquirer/prompts` Ctrl+C cancellation. Matches both the modern\n * `ExitPromptError` name and the legacy `prompt was cancelled` message.\n */\nexport function isPromptCancelled(error: unknown): boolean {\n if (!error || typeof error !== 'object') return false;\n const err = error as { name?: string; message?: string };\n return err.name === 'ExitPromptError' || /cancel/i.test(err.message ?? '');\n}\n"],"mappings":";;;;;;;;AAQA,eAAsB,aAAa,SAAkC;AAMnE,SAAO,MALa,SAAS;EAC3B;EACA,MAAM;EACN,WAAW,UAAW,MAAM,MAAM,CAAC,SAAS,IAAI,OAAO;EACxD,CAAC,EACW,MAAM;;;;;;AAOrB,SAAgB,gBAAyB;AACvC,QAAO,QAAQ,QAAQ,MAAM,SAAS,QAAQ,OAAO,MAAM;;;;;;AAO7D,SAAgB,kBAAkB,OAAyB;AACzD,KAAI,CAAC,SAAS,OAAO,UAAU,SAAU,QAAO;CAChD,MAAM,MAAM;AACZ,QAAO,IAAI,SAAS,qBAAqB,UAAU,KAAK,IAAI,WAAW,GAAG"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","names":[],"sources":["../../../../../src/cli/commands/setup-shared/runner.ts"],"sourcesContent":["import { ZodError } from 'zod';\n\nimport { loadConfig, saveConfig } from '../../../config/index.js';\nimport { ConfigSchema, type Config } from '../../../config/schema.js';\nimport { diffConfigPaths } from '../../../config/diff.js';\n\nimport { emitOutcome } from './output.js';\nimport { isPromptCancelled } from './prompts.js';\nimport {\n SETUP_EXIT,\n type SetupAction,\n type SetupError,\n type SetupOutcome,\n type SetupRunOptions,\n} from './types.js';\n\n/** Thrown by a {@link SetupMutator.mutate} to fail the run with a clean message. */\nexport class SetupValidationError extends Error {\n readonly errors: SetupError[];\n\n constructor(errors: SetupError[] | SetupError | string) {\n const list: SetupError[] = Array.isArray(errors)\n ? errors\n : typeof errors === 'string'\n ? [{ message: errors }]\n : [errors];\n super(list.map((e) => (e.path ? `[${e.path}] ${e.message}` : e.message)).join('; '));\n this.name = 'SetupValidationError';\n this.errors = list;\n }\n}\n\nexport interface SetupMutator {\n /** Logical domain — `providers`, `channels.<id>`, etc. */\n domain: string;\n /** Target id within the domain (provider id, account id, …). */\n target?: string;\n /** What the operation is conceptually doing. */\n action: SetupAction;\n /** Mutates `config` in place (or returns a replacement) and returns it. */\n mutate(config: Config): Config | Promise<Config>;\n /** Optional masked value to surface in the outcome (for agents / UI). */\n resultValue?(config: Config): unknown;\n /** Optional human-readable notes appended to the outcome. */\n notes?(config: Config): string[];\n}\n\nexport interface RunSetupArgs {\n configPath: string;\n mutator: SetupMutator;\n options: SetupRunOptions;\n}\n\nfunction zodErrorToSetupErrors(err: ZodError): SetupError[] {\n return err.issues.map((issue) => ({\n path: issue.path.join('.') || undefined,\n message: issue.message,\n }));\n}\n\n/**\n * Headless setup pipeline — load → clone → mutate → validate(zod) → diff →\n * (write | dry-run) → outcome. Returns the {@link SetupOutcome} without any\n * I/O side effects (no stdout, no `process.exitCode`).\n *\n * Used by CLI setup commands via {@link runSetup}. Keep this side-effect-free\n * so it stays safe to call from tests and other programmatic callers.\n *\n * Custom errors thrown by the mutator surface as `errors[]` on the outcome:\n * - `SetupValidationError` — explicit `{path?, message}[]` entries\n * - `ExitPromptError` (from `@inquirer/prompts`) — surfaced as \"Cancelled by user\"\n * - any other `Error` — the message is used verbatim\n */\nexport async function runSetupHeadless(args: RunSetupArgs): Promise<SetupOutcome> {\n const { configPath, mutator, options } = args;\n\n let before: Config;\n try {\n before = loadConfig(configPath);\n } catch (error) {\n return {\n ok: false,\n action: mutator.action,\n domain: mutator.domain,\n target: mutator.target,\n changedPaths: [],\n dryRun: options.dryRun,\n errors: [{ message: `Failed to load config: ${(error as Error).message}` }],\n };\n }\n\n // `loadConfig` parses through the schema once, but the schema isn't fully\n // idempotent — re-parsing a result can fill in deeper defaults that the\n // first pass left undefined. To avoid false-positive diffs against those\n // defaults, normalize both sides through one extra parse cycle.\n const baselineParsed = ConfigSchema.safeParse(structuredClone(before));\n const baseline: Config = baselineParsed.success ? baselineParsed.data : before;\n\n const cloneBefore = structuredClone(before);\n let mutated: Config;\n try {\n mutated = await mutator.mutate(cloneBefore);\n } catch (error) {\n if (isPromptCancelled(error)) {\n return {\n ok: false,\n action: mutator.action,\n domain: mutator.domain,\n target: mutator.target,\n changedPaths: [],\n dryRun: options.dryRun,\n errors: [{ message: 'Cancelled by user' }],\n };\n }\n const errors =\n error instanceof SetupValidationError\n ? error.errors\n : [{ message: (error as Error).message }];\n return {\n ok: false,\n action: mutator.action,\n domain: mutator.domain,\n target: mutator.target,\n changedPaths: [],\n dryRun: options.dryRun,\n errors,\n };\n }\n\n // Validate the full config (catches invariants beyond the mutator's scope).\n const parsed = ConfigSchema.safeParse(mutated);\n if (!parsed.success) {\n return {\n ok: false,\n action: mutator.action,\n domain: mutator.domain,\n target: mutator.target,\n changedPaths: [],\n dryRun: options.dryRun,\n errors: zodErrorToSetupErrors(parsed.error),\n };\n }\n const validated = parsed.data;\n\n const changedPaths = diffConfigPaths(baseline, validated);\n const action: SetupAction = changedPaths.length === 0 ? 'noop' : mutator.action;\n\n if (changedPaths.length > 0 && !options.dryRun) {\n try {\n await saveConfig(validated, configPath);\n } catch (error) {\n return {\n ok: false,\n action: mutator.action,\n domain: mutator.domain,\n target: mutator.target,\n changedPaths,\n dryRun: false,\n errors: [{ message: `Failed to save config: ${(error as Error).message}` }],\n };\n }\n }\n\n return {\n ok: true,\n action,\n domain: mutator.domain,\n target: mutator.target,\n changedPaths,\n dryRun: options.dryRun,\n value: mutator.resultValue?.(validated),\n notes: mutator.notes?.(validated),\n };\n}\n\n/**\n * CLI wrapper around {@link runSetupHeadless}: emits the outcome to stdout\n * (text or single-line JSON) and sets `process.exitCode` to the standard\n * setup exit codes (0 ok / 1 error / 2 cancelled).\n *\n * Use this from CLI command actions; use {@link runSetupHeadless} from any\n * non-CLI caller (HTTP routes, library code, tests).\n */\nexport async function runSetup(args: RunSetupArgs): Promise<SetupOutcome> {\n const outcome = await runSetupHeadless(args);\n emitOutcome(outcome, args.options.json);\n if (outcome.ok) {\n process.exitCode = SETUP_EXIT.OK;\n } else if (outcome.errors?.some((e) => /cancelled/i.test(e.message))) {\n process.exitCode = SETUP_EXIT.CANCELLED;\n } else {\n process.exitCode = SETUP_EXIT.ERROR;\n }\n return outcome;\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../../../src/cli/commands/setup-shared/types.ts"],"sourcesContent":["/**\n * Shared types for `xopc <domain>` setup-style commands (providers / channels / ...).\n *\n * Every setup command runs the same load → mutate → validate → diff → write\n * pipeline, and emits the same structured outcome so agents (M2 skills) and the\n * WebUI (M3) can consume results uniformly.\n */\n\nexport type SetupAction = 'add' | 'set' | 'remove' | 'noop';\n\nexport interface SetupError {\n /** Dot path of the offending field, when known (e.g. `providers.openai.apiKey`). */\n path?: string;\n message: string;\n}\n\nexport interface SetupOutcome {\n ok: boolean;\n action: SetupAction;\n /** Logical domain — `providers`, `channels.<id>`, etc. */\n domain: string;\n /** Specific target id within the domain (provider id, account id, etc.). */\n target?: string;\n /** Config dot paths that differ between before and after. */\n changedPaths: string[];\n /** True when run with `--dry-run`. Nothing was written. */\n dryRun: boolean;\n /** Validation / I/O errors. Empty when ok. */\n errors?: SetupError[];\n /** Resulting (masked) value of the mutated entry, for agent / UI display. */\n value?: unknown;\n /** Human-readable summary lines for text output. */\n notes?: string[];\n}\n\nexport interface SetupRunOptions {\n /** When true, validate + diff but do not write. */\n dryRun: boolean;\n /** When true, emit a single JSON line on stdout and stay silent otherwise. */\n json: boolean;\n}\n\n/**\n * Standardized exit codes for setup-style commands. Set on `process.exitCode`\n * (don't call `process.exit` directly so JSON output flushes cleanly).\n */\nexport const SETUP_EXIT = {\n OK: 0,\n ERROR: 1,\n CANCELLED: 2,\n} as const;\n"],"mappings":";;;;;AA8CA,MAAa,aAAa;CACxB,IAAI;CACJ,OAAO;CACP,WAAW;CACZ"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","names":[],"sources":["../../../../src/cli/commands/setup.ts"],"sourcesContent":["import { Command } from 'commander';\nimport { existsSync } from 'fs';\nimport { register, formatExamples, type CLIContext } from '../registry.js';\nimport { initWorkspace } from '../utils/init-workspace.js';\n\nfunction createSetupCommand(ctx: CLIContext): Command {\n const cmd = new Command('setup')\n .description('Initialize config file and workspace directory')\n .addHelpText(\n 'after',\n formatExamples([\n 'xopc setup # Create config + workspace',\n 'xopc setup --workspace /path # Custom workspace path',\n 'xopc init # Full state dirs + agent profile seeds',\n ])\n )\n .option('--workspace <path>', 'Workspace directory path', ctx.workspacePath)\n .action(async (options) => {\n const workspacePath = options.workspace || ctx.workspacePath;\n const configPath = ctx.configPath;\n\n console.log('🔧 xopc Setup\\n');\n console.log('═'.repeat(40));\n\n // Check current status\n const configExists = existsSync(configPath);\n const workspaceExists = existsSync(workspacePath);\n\n console.log('\\n📊 Current Status:');\n console.log(` Config: ${configExists ? '✅ exists' : '❌ not found'}`);\n console.log(` Workspace: ${workspaceExists ? '✅ setup' : '❌ not found'}`);\n\n const result = await initWorkspace({ configPath, workspacePath });\n\n if (result.configCreated) {\n console.log('\\n📝 Created config file.');\n } else {\n console.log('\\n📝 Config already present (verified).');\n }\n\n if (result.workspaceCreated) {\n console.log('\\n📁 Created workspace.');\n } else {\n console.log('\\n📁 Workspace already present (verified).');\n }\n\n console.log('\\n' + '═'.repeat(40));\n console.log('\\n✅ Setup complete!\\n');\n\n console.log('📁 Files:');\n console.log(' Config:', configPath);\n console.log(' Workspace:', workspacePath);\n\n console.log('\\n🚀 Next Steps:');\n console.log(' xopc init # Full Agent OS dirs (optional, beyond setup)');\n console.log(' xopc onboard # Run full setup wizard');\n console.log(' xopc onboard --model # Configure model only');\n console.log(' xopc onboard --channels # Configure channels only');\n });\n\n return cmd;\n}\n\nregister({\n id: 'setup',\n name: 'setup',\n description: 'Initialize config file and workspace directory',\n factory: createSetupCommand,\n metadata: {\n category: 'setup',\n examples: [\n 'xopc setup',\n 'xopc setup --workspace ~/.my-workspace',\n ],\n },\n});\n"],"mappings":";;;;;AAKA,SAAS,mBAAmB,KAA0B;AAuDpD,QAtDY,IAAI,QAAQ,QAAQ,CAC7B,YAAY,iDAAiD,CAC7D,YACC,SACA,eAAe;EACb;EACA;EACA;EACD,CAAC,CACH,CACA,OAAO,sBAAsB,4BAA4B,IAAI,cAAc,CAC3E,OAAO,OAAO,YAAY;EACzB,MAAM,gBAAgB,QAAQ,aAAa,IAAI;EAC/C,MAAM,aAAa,IAAI;AAEvB,UAAQ,IAAI,kBAAkB;AAC9B,UAAQ,IAAI,IAAI,OAAO,GAAG,CAAC;EAG3B,MAAM,eAAe,WAAW,WAAW;EAC3C,MAAM,kBAAkB,WAAW,cAAc;AAEjD,UAAQ,IAAI,uBAAuB;AACnC,UAAQ,IAAI,cAAc,eAAe,aAAa,gBAAgB;AACtE,UAAQ,IAAI,iBAAiB,kBAAkB,YAAY,gBAAgB;EAE3E,MAAM,SAAS,MAAM,cAAc;GAAE;GAAY;GAAe,CAAC;AAEjE,MAAI,OAAO,cACT,SAAQ,IAAI,4BAA4B;MAExC,SAAQ,IAAI,0CAA0C;AAGxD,MAAI,OAAO,iBACT,SAAQ,IAAI,0BAA0B;MAEtC,SAAQ,IAAI,6CAA6C;AAG3D,UAAQ,IAAI,OAAO,IAAI,OAAO,GAAG,CAAC;AAClC,UAAQ,IAAI,wBAAwB;AAEpC,UAAQ,IAAI,YAAY;AACxB,UAAQ,IAAI,cAAc,WAAW;AACrC,UAAQ,IAAI,iBAAiB,cAAc;AAE3C,UAAQ,IAAI,mBAAmB;AAC/B,UAAQ,IAAI,6EAA6E;AACzF,UAAQ,IAAI,uDAAuD;AACnE,UAAQ,IAAI,sDAAsD;AAClE,UAAQ,IAAI,wDAAwD;GAG9D;;AAGZ,SAAS;CACP,IAAI;CACJ,MAAM;CACN,aAAa;CACb,SAAS;CACT,UAAU;EACR,UAAU;EACV,UAAU,CACR,cACA,yCACD;EACF;CACF,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"skills-test.js","names":[],"sources":["../../../../src/cli/commands/skills-test.ts"],"sourcesContent":["/**\n * Skills Test CLI Command\n * \n * Test and validate skills\n */\n\nimport { Command } from 'commander';\nimport { join } from 'path';\nimport { createLogger } from '../../utils/logger.js';\nimport { \n SkillTestFramework,\n SkillTestRunner,\n formatTestResults,\n formatTestResultsJson,\n formatTestResultsTap,\n} from '../../agent/skills/index.js';\nimport { resolveBundledSkillsDir } from '../../config/paths.js';\nimport type { CLIContext } from '../registry.js';\n\nconst log = createLogger('cli:skills-test');\n\nfunction createSkillsTestCommand(_ctx: CLIContext): Command {\n const cmd = new Command('test')\n .description('Test and validate skills')\n .argument('[skill-name]', 'Specific skill to test (default: all skills)')\n .option('--skills-dir <path>', 'Skills directory to test')\n .option('--format <format>', 'Output format: text, json, tap', 'text')\n .option('--verbose', 'Show detailed output')\n .option('--skip-security', 'Skip security tests')\n .option('--skip-deps', 'Skip dependency tests')\n .option('--skip-examples', 'Skip example tests')\n .option('--strict', 'Strict mode - fail on warnings')\n .option('--timeout <ms>', 'Timeout for example tests', '10000')\n .action(async (skillName, options) => {\n const skillsDir = options.skillsDir \n ? join(process.cwd(), options.skillsDir)\n : resolveBundledSkillsDir() || join(process.cwd(), 'skills');\n\n log.info({ skillsDir, skillName }, 'Running skill tests');\n\n try {\n if (skillName) {\n // Test specific skill\n const skillDir = join(skillsDir, skillName);\n const framework = new SkillTestFramework({\n skipSecurity: options.skipSecurity,\n skipDeps: options.skipDeps,\n skipExamples: options.skipExamples,\n strict: options.strict,\n exampleTimeout: parseInt(options.timeout, 10),\n });\n\n const report = await framework.testSkill(skillDir);\n outputReport(report, options.format, options.verbose);\n \n process.exit(report.passed ? 0 : 1);\n } else {\n // Test all skills\n const runner = new SkillTestRunner({\n skillsDir,\n skipSecurity: options.skipSecurity,\n skipDeps: options.skipDeps,\n skipExamples: options.skipExamples,\n strict: options.strict,\n exampleTimeout: parseInt(options.timeout, 10),\n format: options.format as 'text' | 'json' | 'tap',\n verbose: options.verbose,\n });\n\n const { reports, passed } = await runner.run();\n outputReports(reports, options.format, options.verbose);\n \n process.exit(passed ? 0 : 1);\n }\n } catch (err) {\n console.error('Error running tests:', err instanceof Error ? err.message : err);\n process.exit(1);\n }\n });\n\n // Subcommand: Validate a single SKILL.md file\n cmd\n .command('validate <skill-path>')\n .description('Validate a SKILL.md file')\n .option('--strict', 'Strict mode - fail on warnings')\n .action(async (skillPath, options) => {\n const framework = new SkillTestFramework({\n strict: options.strict,\n });\n\n const formatResult = framework.testSkillMdFormat(skillPath);\n \n console.log(`\\nValidating: ${skillPath}`);\n console.log(`Status: ${formatResult.status === 'pass' ? '✅' : '❌'} ${formatResult.message}`);\n \n if (formatResult.details) {\n for (const detail of formatResult.details) {\n console.log(` - ${detail}`);\n }\n }\n\n process.exit(formatResult.status === 'pass' ? 0 : 1);\n });\n\n // Subcommand: Check dependencies\n cmd\n .command('check-deps [skill-name]')\n .description('Check skill dependencies')\n .action(async (skillName) => {\n const skillsDir = resolveBundledSkillsDir() || join(process.cwd(), 'skills');\n const framework = new SkillTestFramework();\n\n if (skillName) {\n const skillDir = join(skillsDir, skillName);\n const report = await framework.testSkill(skillDir);\n const depsResult = report.results.find(r => r.name === 'Dependencies');\n \n if (depsResult) {\n console.log(`\\nDependencies for ${skillName}:`);\n console.log(`Status: ${depsResult.status === 'pass' ? '✅' : '❌'} ${depsResult.message}`);\n if (depsResult.details) {\n for (const detail of depsResult.details) {\n console.log(` ${detail}`);\n }\n }\n } else {\n console.log('No dependency tests found');\n }\n } else {\n // Check all skills\n const runner = new SkillTestRunner({\n skillsDir,\n skipSecurity: true,\n skipExamples: true,\n });\n\n const { reports } = await runner.run();\n \n console.log('\\nDependency Status:\\n');\n for (const report of reports) {\n const depsResult = report.results.find(r => r.name === 'Dependencies');\n const icon = depsResult?.status === 'pass' ? '✅' : depsResult?.status === 'fail' ? '❌' : '⚠️';\n console.log(`${icon} ${report.skillName}: ${depsResult?.message || 'No dependencies'}`);\n }\n }\n });\n\n // Subcommand: Security audit\n cmd\n .command('security [skill-name]')\n .description('Security audit for skills')\n .option('--deep', 'Show detailed findings')\n .action(async (skillName, options) => {\n const skillsDir = resolveBundledSkillsDir() || join(process.cwd(), 'skills');\n const framework = new SkillTestFramework();\n\n if (skillName) {\n const skillDir = join(skillsDir, skillName);\n const report = await framework.testSkill(skillDir);\n const securityResult = report.results.find(r => r.name === 'Security');\n \n if (securityResult) {\n console.log(`\\nSecurity audit for ${skillName}:`);\n console.log(`Status: ${securityResult.status === 'pass' ? '✅' : '❌'} ${securityResult.message}`);\n if (securityResult.details) {\n for (const detail of securityResult.details) {\n console.log(` ${detail}`);\n }\n }\n }\n } else {\n // Audit all skills\n const runner = new SkillTestRunner({\n skillsDir,\n skipDeps: true,\n skipExamples: true,\n });\n\n const { reports } = await runner.run();\n \n console.log('\\nSecurity Audit:\\n');\n for (const report of reports) {\n const securityResult = report.results.find(r => r.name === 'Security');\n const icon = securityResult?.status === 'pass' ? '✅' : securityResult?.status === 'fail' ? '❌' : '⚠️';\n console.log(`${icon} ${report.skillName}: ${securityResult?.message || 'Not scanned'}`);\n \n if (options.deep && securityResult?.details) {\n for (const detail of securityResult.details) {\n console.log(` ${detail}`);\n }\n }\n }\n }\n });\n\n return cmd;\n}\n\nfunction outputReport(report: any, format: string, verbose: boolean) {\n switch (format) {\n case 'json':\n console.log(formatTestResultsJson([report]));\n break;\n case 'tap':\n console.log(formatTestResultsTap([report]));\n break;\n default:\n console.log(formatTestResults([report], verbose));\n }\n}\n\nfunction outputReports(reports: any[], format: string, verbose: boolean) {\n switch (format) {\n case 'json':\n console.log(formatTestResultsJson(reports));\n break;\n case 'tap':\n console.log(formatTestResultsTap(reports));\n break;\n default:\n console.log(formatTestResults(reports, verbose));\n }\n}\n\nexport { createSkillsTestCommand };\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"skills.js","names":[],"sources":["../../../../src/cli/commands/skills.ts"],"sourcesContent":["/**\n * Skills CLI Command\n * \n * Manage skills: list, install, enable/disable, configure, test\n */\n\nimport { Command } from 'commander';\nimport { \n createSkillLoader,\n installSkill,\n findInstallSpec,\n hasBinary,\n getDefaultInstallerPreferences,\n createSkillConfigManager,\n isSkillEnabled,\n scanSkillDirectory,\n formatScanSummary,\n type Skill,\n} from '../../agent/skills/index.js';\nimport { resolveStateDir, resolveBundledSkillsDir, resolveSkillsLockPath } from '../../config/paths.js';\nimport { loadSkillsLock } from '../../agent/skills/hub-lock.js';\nimport { pullSkillFromSource, updateSkillFromLock } from '../../agent/skills/hub-pull.js';\nimport { register, type CLIContext } from '../registry.js';\nimport { createSkillsTestCommand } from './skills-test.js';\n\nfunction loadWorkspaceSkillEntries(workspaceDir: string): Array<{ skill: Skill; metadata: Skill['metadata']; enabled: boolean }> {\n const loader = createSkillLoader();\n loader.init(workspaceDir, resolveBundledSkillsDir());\n const result = loader.load();\n return result.skills.map(skill => ({\n skill,\n metadata: skill.metadata,\n enabled: true,\n }));\n}\n\nfunction createSkillsCommand(ctx: CLIContext): Command {\n const command = new Command('skills');\n command.description('Manage skills');\n\n // List available skills\n command\n .command('list')\n .description('List available skills')\n .option('-v, --verbose', 'Show detailed information')\n .option('--json', 'Output as JSON')\n .action(async (options) => {\n const loader = createSkillLoader();\n const workspaceDir = ctx.workspacePath;\n loader.init(workspaceDir, resolveBundledSkillsDir());\n const result = loader.load();\n\n if (options.json) {\n console.log(JSON.stringify({\n skills: result.skills.map(s => ({\n name: s.name,\n description: s.description,\n source: s.source,\n path: s.filePath,\n enabled: true, // Would need config to determine actual state\n metadata: s.metadata,\n })),\n diagnostics: result.diagnostics,\n }, null, 2));\n return;\n }\n\n console.log(`\\nFound ${result.skills.length} skill(s):\\n`);\n\n for (const skill of result.skills) {\n const emoji = skill.metadata.xopc?.emoji || '📦';\n const source = `[${skill.source}]`;\n console.log(`${emoji} ${skill.name} ${source}`);\n console.log(` ${skill.description}`);\n \n if (options.verbose) {\n console.log(` Path: ${skill.filePath}`);\n \n const requires = skill.metadata.xopc?.requires;\n if (requires?.bins) {\n const binsStatus = requires.bins.map(bin => {\n const available = hasBinary(bin);\n return `${bin} ${available ? '✓' : '✗'}`;\n }).join(', ');\n console.log(` Requires: ${binsStatus}`);\n }\n \n const install = skill.metadata.xopc?.install;\n if (install && install.length > 0) {\n console.log(` Install options: ${install.map(i => i.label || i.kind).join(', ')}`);\n }\n \n console.log();\n }\n }\n\n if (result.diagnostics.length > 0) {\n console.log('\\nDiagnostics:');\n for (const diag of result.diagnostics) {\n const icon = diag.type === 'error' ? '❌' : diag.type === 'warning' ? '⚠️' : 'ℹ️';\n console.log(`${icon} ${diag.message}`);\n }\n }\n\n console.log();\n });\n\n // Install a skill dependency\n command\n .command('install <skill-name>')\n .description('Install a skill dependency')\n .option('-i, --id <install-id>', 'Install spec ID to use')\n .option('--timeout <ms>', 'Installation timeout in ms', '300000')\n .option('--dry-run', 'Show what would be installed without executing')\n .action(async (skillName, options) => {\n const workspaceDir = ctx.workspacePath;\n const entries = loadWorkspaceSkillEntries(workspaceDir);\n const entry = entries.find(e => e.skill.name === skillName);\n\n if (!entry) {\n console.error(`Error: Skill \"${skillName}\" not found in workspace`);\n console.log('\\nAvailable skills:');\n const loader = createSkillLoader();\n const result = loader.load();\n for (const skill of result.skills) {\n console.log(` - ${skill.name}`);\n }\n process.exit(1);\n }\n\n const installSpecs = entry.metadata.xopc?.install || entry.metadata.install || [];\n if (installSpecs.length === 0) {\n console.log(`Skill \"${skillName}\" has no install specs`);\n process.exit(0);\n }\n\n // Find the install spec\n let installSpec = options.id \n ? findInstallSpec(entry, options.id)\n : installSpecs[0];\n\n if (!installSpec) {\n console.error(`Error: Install spec \"${options.id}\" not found`);\n console.log('\\nAvailable install specs:');\n for (const [index, spec] of installSpecs.entries()) {\n const id = spec.id || `${spec.kind}-${index}`;\n const label = spec.label || id;\n console.log(` ${id}: ${label}`);\n }\n process.exit(1);\n }\n\n if (options.dryRun) {\n console.log('Dry run - would install:');\n console.log(` Skill: ${skillName}`);\n console.log(` Method: ${installSpec.kind}`);\n if (installSpec.package) {\n console.log(` Package: ${installSpec.package}`);\n }\n if (installSpec.formula) {\n console.log(` Formula: ${installSpec.formula}`);\n }\n if (installSpec.module) {\n console.log(` Module: ${installSpec.module}`);\n }\n if (installSpec.bins) {\n console.log(` Expected binaries: ${installSpec.bins.join(', ')}`);\n }\n return;\n }\n\n console.log(`Installing dependency for \"${skillName}\"...`);\n \n const timeoutMs = parseInt(options.timeout, 10);\n const preferences = getDefaultInstallerPreferences();\n\n const result = await installSkill({\n workspaceDir,\n skillEntry: entry,\n installSpec,\n timeoutMs,\n preferences,\n });\n\n if (result.ok) {\n console.log('✓ Installation successful');\n if (result.stdout) {\n console.log(result.stdout);\n }\n } else {\n console.error('✗ Installation failed');\n console.error(result.message);\n if (result.stderr) {\n console.error(result.stderr);\n }\n process.exit(1);\n }\n\n if (result.warnings && result.warnings.length > 0) {\n console.log('\\nWarnings:');\n for (const warning of result.warnings) {\n console.log(` ⚠️ ${warning}`);\n }\n }\n });\n\n // Enable/disable a skill\n command\n .command('enable <skill-name>')\n .description('Enable a skill')\n .action(async (skillName) => {\n const configManager = createSkillConfigManager(resolveStateDir());\n configManager.setSkillEnabled(skillName, true);\n console.log(`✓ Skill \"${skillName}\" enabled`);\n });\n\n command\n .command('disable <skill-name>')\n .description('Disable a skill')\n .action(async (skillName) => {\n const configManager = createSkillConfigManager(resolveStateDir());\n configManager.setSkillEnabled(skillName, false);\n console.log(`✓ Skill \"${skillName}\" disabled`);\n });\n\n // Show skill status\n command\n .command('status [skill-name]')\n .description('Show skill status')\n .option('--json', 'Output as JSON')\n .action(async (skillName, options) => {\n const loader = createSkillLoader();\n const workspaceDir = ctx.workspacePath;\n loader.init(workspaceDir, resolveBundledSkillsDir());\n const result = loader.load();\n const configManager = createSkillConfigManager(resolveStateDir());\n const config = configManager.load();\n\n if (skillName) {\n // Show specific skill\n const skill = result.skills.find(s => s.name === skillName);\n if (!skill) {\n console.error(`Error: Skill \"${skillName}\" not found`);\n process.exit(1);\n }\n\n const skillConfig = config.entries?.[skillName];\n const enabled = isSkillEnabled(skill, config);\n\n if (options.json) {\n console.log(JSON.stringify({\n name: skill.name,\n enabled,\n config: skillConfig,\n metadata: skill.metadata,\n path: skill.filePath,\n }, null, 2));\n return;\n }\n\n const emoji = skill.metadata.xopc?.emoji || skill.metadata.emoji || '📦';\n console.log(`\\n${emoji} ${skill.name}`);\n console.log(` Description: ${skill.description}`);\n console.log(` Enabled: ${enabled ? '✓' : '✗'}`);\n console.log(` Source: ${skill.source}`);\n console.log(` Path: ${skill.filePath}`);\n\n if (skillConfig?.apiKey) {\n console.log(` API Key: ${skillConfig.apiKey.slice(0, 8)}...`);\n }\n\n const requires = skill.metadata.xopc?.requires;\n if (requires) {\n if (requires.bins) {\n console.log(` Required binaries: ${requires.bins.join(', ')}`);\n for (const bin of requires.bins) {\n const available = hasBinary(bin);\n console.log(` ${bin}: ${available ? '✓' : '✗'}`);\n }\n }\n if (requires.anyBins) {\n console.log(` Any of: ${requires.anyBins.join(', ')}`);\n const hasAny = requires.anyBins.some(bin => hasBinary(bin));\n console.log(` Status: ${hasAny ? '✓' : '✗'}`);\n }\n }\n\n console.log();\n } else {\n // Show summary\n const skillsStatus = result.skills.map(skill => ({\n name: skill.name,\n enabled: isSkillEnabled(skill, config),\n source: skill.source,\n }));\n\n if (options.json) {\n console.log(JSON.stringify({\n total: skillsStatus.length,\n enabled: skillsStatus.filter(s => s.enabled).length,\n skills: skillsStatus,\n }, null, 2));\n return;\n }\n\n const enabledCount = skillsStatus.filter(s => s.enabled).length;\n console.log(`\\nSkills: ${enabledCount}/${skillsStatus.length} enabled\\n`);\n\n for (const status of skillsStatus) {\n const icon = status.enabled ? '✓' : '✗';\n console.log(`${icon} ${status.name} [${status.source}]`);\n }\n\n console.log();\n }\n });\n\n // Security audit\n command\n .command('audit [skill-name]')\n .description('Security audit for skills')\n .option('--deep', 'Show detailed findings')\n .action(async (skillName, options) => {\n const loader = createSkillLoader();\n const workspaceDir = ctx.workspacePath;\n loader.init(workspaceDir, resolveBundledSkillsDir());\n const result = loader.load();\n\n async function auditSkill(skill: typeof result.skills[0]) {\n const summary = await scanSkillDirectory(skill.baseDir);\n \n console.log(`\\n${formatScanSummary(summary, skill.name)}\\n`);\n \n if (options.deep && summary.findings.length > 0) {\n console.log('Detailed findings:');\n for (const finding of summary.findings) {\n const icon = finding.severity === 'critical' ? '❌' : finding.severity === 'warning' ? '⚠️' : 'ℹ️';\n console.log(` ${icon} ${finding.message}`);\n console.log(` File: ${finding.file}:${finding.line}`);\n if (finding.pattern) {\n console.log(` Pattern: ${finding.pattern}`);\n }\n }\n console.log();\n }\n }\n\n if (skillName) {\n const skill = result.skills.find(s => s.name === skillName);\n if (!skill) {\n console.error(`Error: Skill \"${skillName}\" not found`);\n process.exit(1);\n }\n await auditSkill(skill);\n } else {\n console.log('Auditing all skills...\\n');\n for (const skill of result.skills) {\n await auditSkill(skill);\n }\n }\n });\n\n // Configure skill\n command\n .command('config <skill-name>')\n .description('Configure a skill')\n .option('--api-key <key>', 'Set API key')\n .option('--env <KEY=VALUE>', 'Set environment variable', (val, prev: string[] = []) => [...prev, val], [])\n .option('--show', 'Show current configuration')\n .action(async (skillName, options) => {\n const configManager = createSkillConfigManager(resolveStateDir());\n \n if (options.show) {\n const config = configManager.getSkillConfig(skillName);\n if (config) {\n console.log(JSON.stringify(config, null, 2));\n } else {\n console.log(`No configuration for skill \"${skillName}\"`);\n }\n return;\n }\n\n const updates: Record<string, unknown> = {};\n \n if (options.apiKey) {\n updates.apiKey = options.apiKey;\n }\n\n if (options.env && options.env.length > 0) {\n const env: Record<string, string> = {};\n for (const entry of options.env) {\n const [key, ...valueParts] = entry.split('=');\n if (key && valueParts.length > 0) {\n env[key] = valueParts.join('=');\n }\n }\n if (Object.keys(env).length > 0) {\n updates.env = env;\n }\n }\n\n if (Object.keys(updates).length === 0) {\n console.log('No configuration changes specified. Use --api-key, --env, or --show.');\n return;\n }\n\n configManager.updateSkillConfig(skillName, updates);\n console.log(`✓ Updated configuration for skill \"${skillName}\"`);\n });\n\n const hub = new Command('hub').description(\n 'Install or update skills from git or archives (writes ~/.xopc/skills + skills-lock.json)',\n );\n\n hub\n .command('pull')\n .argument('<source>', 'Git URL, https(s) .zip/.tar.gz, file:// URL, or local archive path')\n .option('--ref <ref>', 'Git branch or tag (optional)')\n .option('--path <dir>', 'Subdirectory inside the cloned repo containing SKILL.md')\n .option('--id <skillId>', 'Target folder name under ~/.xopc/skills (default: SKILL.md name or repo folder)')\n .option('--force', 'Replace existing managed skill directory', false)\n .option('--strict-scan', 'Fail install if security scanner reports critical findings', false)\n .action(async (source: string, opts: { ref?: string; path?: string; id?: string; force?: boolean; strictScan?: boolean }) => {\n try {\n const result = await pullSkillFromSource(source, {\n ref: opts.ref,\n subpath: opts.path,\n skillId: opts.id,\n force: Boolean(opts.force),\n strictScan: Boolean(opts.strictScan),\n });\n console.log(`\\n✓ Installed skill \"${result.skillId}\"`);\n console.log(` Path: ${result.path}`);\n console.log(` Source: ${result.source} (${result.kind})`);\n console.log(` Tree hash: ${result.contentHash.slice(0, 16)}…\\n`);\n } catch (e) {\n console.error(e instanceof Error ? e.message : String(e));\n process.exit(1);\n }\n });\n\n hub\n .command('update')\n .argument('<skillId>', 'Managed skill id (folder name under ~/.xopc/skills)')\n .option('--strict-scan', 'Fail if security scanner reports critical findings', false)\n .action(async (skillId: string, opts: { strictScan?: boolean }) => {\n try {\n const result = await updateSkillFromLock(skillId, { strictScan: Boolean(opts.strictScan) });\n console.log(`\\n✓ Updated skill \"${result.skillId}\"`);\n console.log(` Path: ${result.path}`);\n console.log(` Source: ${result.source} (${result.kind})`);\n console.log(` Tree hash: ${result.contentHash.slice(0, 16)}…\\n`);\n } catch (e) {\n console.error(e instanceof Error ? e.message : String(e));\n process.exit(1);\n }\n });\n\n hub\n .command('lock')\n .description('Show skills-lock.json (install sources + content hashes)')\n .option('--json', 'Print raw JSON', false)\n .action((opts: { json?: boolean }) => {\n const lock = loadSkillsLock();\n if (opts.json) {\n console.log(JSON.stringify(lock, null, 2));\n return;\n }\n const entries = Object.entries(lock.entries);\n console.log(`\\n${resolveSkillsLockPath()}`);\n if (entries.length === 0) {\n console.log('(no hub-installed skills)\\n');\n return;\n }\n for (const [id, e] of entries.sort((a, b) => a[0].localeCompare(b[0]))) {\n console.log(`\\n• ${id}`);\n console.log(` kind: ${e.kind}`);\n console.log(` source: ${e.source}`);\n if (e.ref) console.log(` ref: ${e.ref}`);\n if (e.subpath) console.log(` subpath: ${e.subpath}`);\n console.log(` contentHash: ${e.contentHash.slice(0, 16)}…`);\n console.log(` updatedAt: ${e.updatedAt}`);\n }\n console.log();\n });\n\n command.addCommand(hub);\n\n // Add test subcommand\n const testCommand = createSkillsTestCommand(ctx);\n command.addCommand(testCommand);\n\n return command;\n}\n\n// Register the command\nregister({\n id: 'skills',\n name: 'skills',\n description: 'Manage skills (install, enable, configure, test)',\n factory: createSkillsCommand,\n metadata: {\n category: 'utility',\n examples: [\n 'xopc skills hub pull https://github.com/org/repo.git # Shallow-clone skill into ~/.xopc/skills',\n 'xopc skills hub pull ./pack.zip --force # Install or replace from local zip',\n 'xopc skills hub update my-skill # Re-fetch using skills-lock.json',\n 'xopc skills hub lock --json # Show hub lock file',\n 'xopc skills list # List all available skills',\n 'xopc skills list -v # List with detailed information',\n 'xopc skills install weather # Install weather skill dependencies',\n 'xopc skills enable weather # Enable a skill',\n 'xopc skills disable weather # Disable a skill',\n 'xopc skills status # Show skill status summary',\n 'xopc skills status weather # Show detailed skill status',\n 'xopc skills audit # Security audit all skills',\n 'xopc skills audit weather --deep # Detailed security audit',\n 'xopc skills config weather --show # Show skill configuration',\n 'xopc skills config weather --api-key=KEY # Set API key',\n 'xopc skills test # Test all skills',\n 'xopc skills test weather # Test specific skill',\n 'xopc skills test validate ./skills/weather/SKILL.md # Validate SKILL.md file',\n 'xopc skills test check-deps # Check dependencies',\n 'xopc skills test security --deep # Security audit',\n ],\n },\n});\n\nexport { createSkillsCommand };\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tailscale.js","names":[],"sources":["../../../../src/cli/commands/tailscale.ts"],"sourcesContent":["import { Command } from 'commander';\n\nimport { register, formatExamples, type CLIContext } from '../registry.js';\nimport { getContextWithOpts } from '../context.js';\n\nfunction createTailscaleCommand(_ctx: CLIContext): Command {\n return new Command('tailscale')\n .description('Tailscale status for gateway remote access')\n .addCommand(\n new Command('status')\n .description('Show tailnet IP, hostname, and Serve/Funnel state')\n .action(async () => {\n const {\n getTailnetIPv4,\n getTailnetHostname,\n isTailscaleInstalled,\n } = await import('../../infra/tailscale.js');\n const { getTailscaleExposureState } = await import('../../gateway/tailscale-lifecycle.js');\n\n const installed = await isTailscaleInstalled();\n if (!installed) {\n console.log('Tailscale: not installed or not found in PATH');\n process.exit(1);\n }\n\n const ip = await getTailnetIPv4();\n let hostname: string | null = null;\n try {\n hostname = await getTailnetHostname();\n } catch {\n hostname = null;\n }\n\n const exposure = getTailscaleExposureState();\n console.log('Tailscale');\n console.log(` Tailnet IPv4: ${ip ?? '(unavailable)'}`);\n console.log(` MagicDNS: ${hostname ?? '(unavailable)'}`);\n console.log(` Gateway exposure: ${exposure.mode}${exposure.active ? ' (active)' : ''}`);\n if (hostname && exposure.active) {\n console.log(` URL: https://${hostname}/`);\n }\n }),\n )\n .addHelpText(\n 'after',\n formatExamples(['xopc tailscale status']),\n );\n}\n\nregister({\n id: 'tailscale',\n name: 'tailscale',\n description: 'Tailscale helpers for gateway exposure',\n factory: () => createTailscaleCommand(getContextWithOpts()),\n metadata: {\n category: 'runtime',\n examples: ['xopc tailscale status'],\n },\n});\n\nexport default createTailscaleCommand;\n"],"mappings":";;;;AAKA,SAAS,uBAAuB,MAA2B;AACzD,QAAO,IAAI,QAAQ,YAAY,CAC5B,YAAY,6CAA6C,CACzD,WACC,IAAI,QAAQ,SAAS,CAClB,YAAY,oDAAoD,CAChE,OAAO,YAAY;EAClB,MAAM,EACJ,gBACA,oBACA,yBACE,MAAM,OAAO;EACjB,MAAM,EAAE,8BAA8B,MAAM,OAAO;AAGnD,MAAI,CAAC,MADmB,sBAAsB,EAC9B;AACd,WAAQ,IAAI,gDAAgD;AAC5D,WAAQ,KAAK,EAAE;;EAGjB,MAAM,KAAK,MAAM,gBAAgB;EACjC,IAAI,WAA0B;AAC9B,MAAI;AACF,cAAW,MAAM,oBAAoB;UAC/B;AACN,cAAW;;EAGb,MAAM,WAAW,2BAA2B;AAC5C,UAAQ,IAAI,YAAY;AACxB,UAAQ,IAAI,mBAAmB,MAAM,kBAAkB;AACvD,UAAQ,IAAI,mBAAmB,YAAY,kBAAkB;AAC7D,UAAQ,IAAI,uBAAuB,SAAS,OAAO,SAAS,SAAS,cAAc,KAAK;AACxF,MAAI,YAAY,SAAS,OACvB,SAAQ,IAAI,kBAAkB,SAAS,GAAG;GAE5C,CACL,CACA,YACC,SACA,eAAe,CAAC,wBAAwB,CAAC,CAC1C;;AAGL,SAAS;CACP,IAAI;CACJ,MAAM;CACN,aAAa;CACb,eAAe,uBAAuB,oBAAoB,CAAC;CAC3D,UAAU;EACR,UAAU;EACV,UAAU,CAAC,wBAAwB;EACpC;CACF,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tui-runner.js","names":[],"sources":["../../../../src/cli/commands/tui-runner.ts"],"sourcesContent":["import { createGatewayCredential } from '../../gateway/credential.js';\nimport { detectMigrations, runBootstrapMigrationsSync } from '../../migrations/runner.js';\nimport type { TuiOptions } from '../../tui/tui-types.js';\n\nexport type TuiCliOptions = Record<string, string | boolean | undefined>;\n\nexport interface TuiLaunchOverrides {\n session?: string;\n openSessionPickerOnStart?: boolean;\n}\n\nexport function prepareTuiStartup(configPath: string): void {\n runBootstrapMigrationsSync(configPath);\n const pendingMigrations = detectMigrations(configPath);\n if (pendingMigrations.length > 0) {\n console.warn(\n `xopc has ${pendingMigrations.length} pending migration(s). Run \\`xopc doctor --fix\\` or open Settings → App management.`,\n );\n }\n}\n\nexport function resolveTuiOptions(\n options: TuiCliOptions,\n overrides: TuiLaunchOverrides = {},\n): TuiOptions {\n const token = typeof options.token === 'string' ? options.token : undefined;\n const passwordEnv = typeof options.passwordEnv === 'string' ? options.passwordEnv.trim() : undefined;\n if (token && passwordEnv) {\n throw new Error('Use either --token or --password-env, not both.');\n }\n\n const password = passwordEnv ? process.env[passwordEnv] : undefined;\n if (passwordEnv && !password) {\n throw new Error(`Gateway password environment variable ${passwordEnv} is not set.`);\n }\n\n const credential = token\n ? createGatewayCredential('token', token)\n : createGatewayCredential('password', password);\n const useLocal = options.local === true;\n const useGateway = options.gateway === true || typeof options.url === 'string' || credential !== undefined;\n if (useLocal && useGateway) {\n console.log('`--local` and gateway flags both set. Using local mode.');\n }\n\n return {\n url: typeof options.url === 'string' ? options.url : undefined,\n credential,\n session: overrides.session ?? (typeof options.session === 'string' ? options.session : undefined),\n agentId: typeof options.agent === 'string' ? options.agent : undefined,\n message: typeof options.message === 'string' ? options.message : undefined,\n workdir: typeof options.workdir === 'string' ? options.workdir : undefined,\n useStartupCwd: options.cwd !== false,\n local: useLocal || !useGateway,\n thinking: typeof options.thinking === 'string' ? options.thinking : undefined,\n theme: typeof options.theme === 'string' ? options.theme : undefined,\n openSessionPickerOnStart: overrides.openSessionPickerOnStart,\n };\n}\n\nexport async function runTuiFromCliOptions(\n options: TuiCliOptions,\n overrides?: TuiLaunchOverrides,\n): Promise<void> {\n const { runTui } = await import('../../tui/tui.js');\n await runTui(resolveTuiOptions(options, overrides));\n}\n"],"mappings":";;;AAWA,SAAgB,kBAAkB,YAA0B;AAC1D,4BAA2B,WAAW;CACtC,MAAM,oBAAoB,iBAAiB,WAAW;AACtD,KAAI,kBAAkB,SAAS,EAC7B,SAAQ,KACN,YAAY,kBAAkB,OAAO,qFACtC;;AAIL,SAAgB,kBACd,SACA,YAAgC,EAAE,EACtB;CACZ,MAAM,QAAQ,OAAO,QAAQ,UAAU,WAAW,QAAQ,QAAQ,KAAA;CAClE,MAAM,cAAc,OAAO,QAAQ,gBAAgB,WAAW,QAAQ,YAAY,MAAM,GAAG,KAAA;AAC3F,KAAI,SAAS,YACX,OAAM,IAAI,MAAM,kDAAkD;CAGpE,MAAM,WAAW,cAAc,QAAQ,IAAI,eAAe,KAAA;AAC1D,KAAI,eAAe,CAAC,SAClB,OAAM,IAAI,MAAM,yCAAyC,YAAY,cAAc;CAGrF,MAAM,aAAa,QACf,wBAAwB,SAAS,MAAM,GACvC,wBAAwB,YAAY,SAAS;CACjD,MAAM,WAAW,QAAQ,UAAU;CACnC,MAAM,aAAa,QAAQ,YAAY,QAAQ,OAAO,QAAQ,QAAQ,YAAY,eAAe,KAAA;AACjG,KAAI,YAAY,WACd,SAAQ,IAAI,0DAA0D;AAGxE,QAAO;EACL,KAAK,OAAO,QAAQ,QAAQ,WAAW,QAAQ,MAAM,KAAA;EACrD;EACA,SAAS,UAAU,YAAY,OAAO,QAAQ,YAAY,WAAW,QAAQ,UAAU,KAAA;EACvF,SAAS,OAAO,QAAQ,UAAU,WAAW,QAAQ,QAAQ,KAAA;EAC7D,SAAS,OAAO,QAAQ,YAAY,WAAW,QAAQ,UAAU,KAAA;EACjE,SAAS,OAAO,QAAQ,YAAY,WAAW,QAAQ,UAAU,KAAA;EACjE,eAAe,QAAQ,QAAQ;EAC/B,OAAO,YAAY,CAAC;EACpB,UAAU,OAAO,QAAQ,aAAa,WAAW,QAAQ,WAAW,KAAA;EACpE,OAAO,OAAO,QAAQ,UAAU,WAAW,QAAQ,QAAQ,KAAA;EAC3D,0BAA0B,UAAU;EACrC;;AAGH,eAAsB,qBACpB,SACA,WACe;CACf,MAAM,EAAE,WAAW,MAAM,OAAO;AAChC,OAAM,OAAO,kBAAkB,SAAS,UAAU,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tui.js","names":[],"sources":["../../../../src/cli/commands/tui.ts"],"sourcesContent":["import { Command } from 'commander';\n\nimport { setTuiDefaultAgentConfig } from '../../commands/agents.config.js';\nimport { loadConfig, saveConfig } from '../../config/loader.js';\nimport { register, formatExamples, type CLIContext } from '../registry.js';\nimport { prepareTuiStartup, runTuiFromCliOptions, type TuiCliOptions } from './tui-runner.js';\n\nfunction createTuiCommand(ctx: CLIContext): Command {\n const cmd = new Command('tui')\n .description('Interactive terminal UI (pi-tui)')\n .addHelpText(\n 'after',\n formatExamples([\n 'xopc # Open embedded TUI (default command)',\n 'xopc tui # Embedded mode (default)',\n 'xopc resume # Choose a session to resume',\n 'xopc tui --gateway # Force gateway mode',\n 'XOPC_GATEWAY_PASSWORD=xxx xopc tui --url http://host:3120 --password-env XOPC_GATEWAY_PASSWORD',\n 'xopc tui -s agent:main:tui-... # Resume a session',\n 'xopc tui --agent coder # Start with a specific agent',\n 'xopc tui --set-default-agent coder # Persist default agent for new TUI sessions',\n 'xopc tui -m \"Summarize my inbox\" # Send a message on launch',\n ]),\n )\n .option('--url <url>', 'Gateway URL (default: http://localhost:3120)')\n .option('--token <token>', 'Gateway bearer token')\n .option('--password-env <name>', 'Environment variable holding the gateway password')\n .option('-s, --session <key>', 'Session key to resume (omitted: start a fresh TUI session)')\n .option('--agent <id>', 'Agent id for a fresh TUI session')\n .option('--set-default-agent <id>', 'Persist default agent for new TUI sessions and exit')\n .option('-m, --message <text>', 'Send a message on launch')\n .option('--workdir <dir>', 'Workspace directory for the new TUI session')\n .option('--no-cwd', 'Do not use the launch directory as the new TUI session workspace')\n .option('--local', 'Run in embedded mode (no gateway required)')\n .option('--gateway', 'Force gateway mode even without an explicit URL or credential')\n .option('--theme <name>', 'Theme: auto, dark, light, or custom name from ~/.xopc/themes/')\n .option('--thinking <level>', 'Thinking level override')\n .action(async (options: TuiCliOptions) => {\n prepareTuiStartup(ctx.configPath);\n if (typeof options.setDefaultAgent === 'string') {\n const cfg = loadConfig(ctx.configPath);\n const result = setTuiDefaultAgentConfig(cfg, options.setDefaultAgent);\n if (result.ok === false) {\n console.error(`Error: ${result.message}`);\n process.exit(1);\n }\n await saveConfig(result.config, ctx.configPath);\n console.log(`TUI default agent set to \"${result.agentId}\".`);\n return;\n }\n await runTuiFromCliOptions(options);\n });\n\n return cmd;\n}\n\nregister({\n id: 'tui',\n name: 'tui',\n description: 'Interactive terminal UI (pi-tui)',\n factory: createTuiCommand,\n metadata: {\n category: 'runtime',\n examples: [\n 'xopc',\n 'xopc tui',\n 'xopc tui --agent coder',\n 'xopc tui --set-default-agent coder',\n 'xopc tui --gateway',\n 'xopc tui --url http://host:3120',\n ],\n },\n});\n"],"mappings":";;;;;;aAGgE;AAIhE,SAAS,iBAAiB,KAA0B;AA8ClD,QA7CY,IAAI,QAAQ,MAAM,CAC3B,YAAY,mCAAmC,CAC/C,YACC,SACA,eAAe;EACb;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CAAC,CACH,CACA,OAAO,eAAe,+CAA+C,CACrE,OAAO,mBAAmB,uBAAuB,CACjD,OAAO,yBAAyB,oDAAoD,CACpF,OAAO,uBAAuB,6DAA6D,CAC3F,OAAO,gBAAgB,mCAAmC,CAC1D,OAAO,4BAA4B,sDAAsD,CACzF,OAAO,wBAAwB,2BAA2B,CAC1D,OAAO,mBAAmB,8CAA8C,CACxE,OAAO,YAAY,mEAAmE,CACtF,OAAO,WAAW,6CAA6C,CAC/D,OAAO,aAAa,gEAAgE,CACpF,OAAO,kBAAkB,gEAAgE,CACzF,OAAO,sBAAsB,0BAA0B,CACvD,OAAO,OAAO,YAA2B;AACxC,oBAAkB,IAAI,WAAW;AACjC,MAAI,OAAO,QAAQ,oBAAoB,UAAU;GAE/C,MAAM,SAAS,yBADH,WAAW,IAAI,WACgB,EAAE,QAAQ,gBAAgB;AACrE,OAAI,OAAO,OAAO,OAAO;AACvB,YAAQ,MAAM,UAAU,OAAO,UAAU;AACzC,YAAQ,KAAK,EAAE;;AAEjB,SAAM,WAAW,OAAO,QAAQ,IAAI,WAAW;AAC/C,WAAQ,IAAI,6BAA6B,OAAO,QAAQ,IAAI;AAC5D;;AAEF,QAAM,qBAAqB,QAAQ;GAG7B;;AAGZ,SAAS;CACP,IAAI;CACJ,MAAM;CACN,aAAa;CACb,SAAS;CACT,UAAU;EACR,UAAU;EACV,UAAU;GACR;GACA;GACA;GACA;GACA;GACA;GACD;EACF;CACF,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tunnel.js","names":[],"sources":["../../../../src/cli/commands/tunnel.ts"],"sourcesContent":["import { Command } from 'commander';\n\nimport { loadConfig, saveConfig } from '../../config/index.js';\nimport { createLogger } from '../../utils/logger.js';\nimport {\n assertTunnelMayStart,\n hasValidTunnelConsent,\n TUNNEL_RISK_SUMMARY_LINES,\n TunnelConsentError,\n} from '../../tunnel/consent.js';\nimport { resolveTunnelBrokerUrl, resolveTunnelRegistrationSecret } from '../../tunnel/env.js';\nimport { ensureFrpcBinary, getTunnelService } from '../../tunnel/index.js';\nimport { resolveFrpSubdomainHost } from '../../tunnel/frp-subdomain-host.js';\nimport { applyTunnelConsentToConfig, mergeTunnelConfigPatch, setTunnelEnabledInConfig } from '../../tunnel/tunnel-config.js';\nimport { loadTunnelState } from '../../tunnel/tunnel-state.js';\nimport { formatExamples, register, type CLIContext } from '../registry.js';\n\nconst log = createLogger('TunnelCommand');\n\nfunction isInteractive(): boolean {\n return Boolean(process.stdin.isTTY && process.stdout.isTTY);\n}\n\nimport { resolveGatewayEffectiveHost } from '../../config/gateway-bind.js';\n\nfunction resolveGatewayPortHost(config: ReturnType<typeof loadConfig>): { port: number; host: string } {\n return {\n port: config.gateway.port ?? 18790,\n host: resolveGatewayEffectiveHost(config),\n };\n}\n\nfunction resolveGatewayToken(config: ReturnType<typeof loadConfig>): string {\n const fromEnv = process.env.XOPC_GATEWAY_TOKEN?.trim();\n if (fromEnv) return fromEnv;\n const token = config.gateway.auth?.token?.trim();\n if (token) return token;\n throw new Error('Gateway token not configured. Set gateway.auth.token or XOPC_GATEWAY_TOKEN.');\n}\n\nfunction configureTunnel(ctx: CLIContext): void {\n const config = loadConfig(ctx.configPath);\n const { host } = resolveGatewayPortHost(config);\n const brokerUrl = resolveTunnelBrokerUrl(config.tunnel?.brokerUrl);\n getTunnelService().configure({\n brokerUrl,\n registrationSecret: resolveTunnelRegistrationSecret(\n process.env,\n brokerUrl,\n config.tunnel?.registrationSecret,\n ),\n autoStart: config.tunnel?.autoStart ?? false,\n gatewayHost: host,\n frpSubdomainHost: resolveFrpSubdomainHost(resolveTunnelBrokerUrl(config.tunnel?.brokerUrl)),\n });\n}\n\nasync function ensureCliTunnelConsent(\n ctx: CLIContext,\n opts: { acceptRisk?: boolean; yes?: boolean },\n): Promise<void> {\n const config = loadConfig(ctx.configPath);\n if (hasValidTunnelConsent(config)) return;\n\n if (opts.acceptRisk) {\n applyTunnelConsentToConfig(config);\n await saveConfig(config, ctx.configPath);\n return;\n }\n\n if (opts.yes) {\n throw new TunnelConsentError(\n 'Security consent not recorded. Run without --yes and confirm, or pass --accept-risk after reading the risks.',\n );\n }\n\n if (!isInteractive()) {\n throw new TunnelConsentError(\n 'Security consent required. Run interactively, use --accept-risk, or accept in gateway settings.',\n );\n }\n\n const { confirm } = await import('@inquirer/prompts');\n console.log('');\n console.log('⚠️ Remote access security notice');\n for (const line of TUNNEL_RISK_SUMMARY_LINES) {\n console.log(` • ${line}`);\n }\n console.log('');\n const accepted = await confirm({\n message: 'I understand these risks and want to enable remote access',\n default: false,\n });\n if (!accepted) {\n throw new TunnelConsentError('Remote access not started (consent declined).');\n }\n applyTunnelConsentToConfig(config);\n await saveConfig(config, ctx.configPath);\n}\n\nasync function readTunnelRegistrationSecretFromCli(opts: {\n secretArg?: string;\n stdin?: boolean;\n}): Promise<string> {\n const fromArg = opts.secretArg?.trim();\n if (fromArg) return fromArg;\n\n if (opts.stdin) {\n const chunks: Buffer[] = [];\n for await (const chunk of process.stdin) {\n chunks.push(chunk as Buffer);\n }\n const value = Buffer.concat(chunks).toString('utf8').trim();\n if (!value) {\n throw new Error('Empty registration secret from stdin.');\n }\n return value;\n }\n\n if (isInteractive()) {\n const { password } = await import('@inquirer/prompts');\n const value = await password({\n message: 'Tunnel broker registration secret',\n mask: '*',\n });\n if (!value?.trim()) {\n throw new Error('Registration secret is required.');\n }\n return value.trim();\n }\n\n throw new Error(\n 'Provide the secret as an argument, pass --stdin, or run in an interactive terminal.',\n );\n}\n\nasync function saveTunnelRegistrationSecret(ctx: CLIContext, secret: string): Promise<void> {\n const config = loadConfig(ctx.configPath);\n const result = mergeTunnelConfigPatch(config, { registrationSecret: secret });\n if (result.ok === false) {\n throw new Error(result.message);\n }\n await saveConfig(config, ctx.configPath);\n}\n\nfunction createTunnelCommand(ctx: CLIContext): Command {\n const cmd = new Command('tunnel')\n .description('Manage FRP remote access tunnel')\n .addHelpText(\n 'after',\n formatExamples([\n 'xopc tunnel start',\n 'xopc tunnel start --accept-risk',\n 'xopc tunnel stop',\n 'xopc tunnel status',\n 'xopc tunnel qr',\n 'xopc tunnel consent',\n 'xopc tunnel prefetch',\n 'xopc tunnel secret set',\n 'xopc tunnel secret set --stdin',\n ]),\n );\n\n cmd\n .command('prefetch')\n .description('Download frpc to the state bin directory without starting the tunnel')\n .action(async () => {\n try {\n const path = await ensureFrpcBinary({\n onProgress: (progress) => {\n if (!process.stderr.isTTY) return;\n if (progress.phase === 'extracting') {\n process.stderr.write('\\rExtracting frpc… \\n');\n return;\n }\n if (progress.percent != null) {\n process.stderr.write(`\\rDownloading frpc… ${progress.percent}%`);\n } else if (progress.bytesReceived != null) {\n process.stderr.write(`\\rDownloading frpc… ${progress.bytesReceived} bytes`);\n }\n },\n });\n if (process.stderr.isTTY) process.stderr.write('\\n');\n console.log(`frpc ready at ${path}`);\n } catch (err) {\n const em = err instanceof Error ? err.message : String(err);\n log.error({ err }, `frpc prefetch failed: ${em}`);\n process.exit(1);\n }\n });\n\n cmd\n .command('consent')\n .description('Record acceptance of the remote access security notice')\n .option('--accept-risk', 'Non-interactive: record consent without prompts')\n .action(async (opts: { acceptRisk?: boolean }) => {\n await ensureCliTunnelConsent(ctx, { acceptRisk: opts.acceptRisk, yes: false });\n console.log('Tunnel security consent recorded.');\n });\n\n const secretCmd = cmd.command('secret').description('Manage tunnel broker registration secret in config');\n\n secretCmd\n .command('set')\n .description('Save tunnel.registrationSecret to xopc.json (env XOPC_TUNNEL_REGISTRATION_SECRET overrides at runtime)')\n .argument('[secret]', 'Registration secret (prompts securely when omitted in a TTY)')\n .option('--stdin', 'Read secret from stdin (single line, trimmed)')\n .action(async (secretArg: string | undefined, opts: { stdin?: boolean }) => {\n try {\n const secret = await readTunnelRegistrationSecretFromCli({\n secretArg,\n stdin: opts.stdin,\n });\n await saveTunnelRegistrationSecret(ctx, secret);\n if (process.env.XOPC_TUNNEL_REGISTRATION_SECRET?.trim()) {\n console.log(\n 'Note: XOPC_TUNNEL_REGISTRATION_SECRET is set in the environment and overrides the saved config at runtime.',\n );\n }\n console.log(`Saved tunnel registration secret to ${ctx.configPath}.`);\n } catch (err) {\n const em = err instanceof Error ? err.message : String(err);\n log.error({ err, phase: 'tunnel_secret_set' }, `Tunnel secret set failed: ${em}`);\n console.error(em);\n process.exit(1);\n }\n });\n\n cmd\n .command('start')\n .description('Register tunnel, start frpc, print connection info')\n .option('--yes', 'Skip interactive consent prompt when consent is already recorded')\n .option(\n '--accept-risk',\n 'Record security consent and start (non-interactive; read risks in docs/tunnel-security.md first)',\n )\n .action(async (opts: { yes?: boolean; acceptRisk?: boolean }) => {\n configureTunnel(ctx);\n await ensureCliTunnelConsent(ctx, { acceptRisk: opts.acceptRisk, yes: opts.yes });\n\n const config = loadConfig(ctx.configPath);\n assertTunnelMayStart(config);\n\n const { port, host } = resolveGatewayPortHost(config);\n const token = resolveGatewayToken(config);\n const tunnel = getTunnelService();\n\n console.log('🚀 Starting tunnel...');\n try {\n const qr = await tunnel.start(port, token);\n setTunnelEnabledInConfig(config, true);\n await saveConfig(config, ctx.configPath);\n\n const status = tunnel.getStatus();\n console.log('');\n console.log('✅ Tunnel is active');\n if (status.publicUrl) console.log(` URL: ${status.publicUrl}`);\n if (qr.lanUrl) console.log(` LAN: ${qr.lanUrl}`);\n console.log('');\n console.log('📱 Mobile connect QR payload:');\n console.log(qr.qrPayload);\n console.log('');\n console.log(\n `💡 Gateway must be running at ${host}:${port}. Keep frpc alive or use gateway / Web console.`,\n );\n } catch (err) {\n const em = err instanceof Error ? err.message : String(err);\n log.error({ err }, `Tunnel start failed: ${em}`);\n process.exit(1);\n }\n });\n\n cmd\n .command('stop')\n .description('Stop frpc (keeps broker registration for stable subdomain)')\n .option(\n '--release',\n 'Deregister from broker and clear saved subdomain (next start gets a new public URL)',\n )\n .option('--yes', 'Skip confirmation when using --release')\n .action(async (opts: { release?: boolean; yes?: boolean }) => {\n configureTunnel(ctx);\n if (opts.release) {\n if (!opts.yes && isInteractive()) {\n const { confirm } = await import('@inquirer/prompts');\n const ok = await confirm({\n message:\n 'Release will revoke the public URL and subdomain on the broker. Continue?',\n default: false,\n });\n if (!ok) {\n console.log('Cancelled.');\n return;\n }\n }\n }\n const { released } = await getTunnelService().stop({ release: opts.release });\n const config = loadConfig(ctx.configPath);\n setTunnelEnabledInConfig(config, false);\n await saveConfig(config, ctx.configPath);\n console.log(released ? 'Tunnel stopped and broker registration released.' : 'Tunnel stopped.');\n });\n\n cmd\n .command('status')\n .description('Show tunnel status')\n .action(() => {\n configureTunnel(ctx);\n const config = loadConfig(ctx.configPath);\n const status = getTunnelService().getStatus();\n const persisted = loadTunnelState();\n console.log(\n JSON.stringify(\n {\n ...status,\n persistedSubdomain: persisted?.subdomain ?? null,\n consentValid: hasValidTunnelConsent(config),\n },\n null,\n 2,\n ),\n );\n });\n\n cmd\n .command('qr')\n .description('Print mobile connect QR payload (tunnel must be active)')\n .action(async () => {\n configureTunnel(ctx);\n const config = loadConfig(ctx.configPath);\n const { port, host } = resolveGatewayPortHost(config);\n const qr = await getTunnelService().buildQr(port, host);\n if (!qr.qrPayload) {\n console.error('No active tunnel. Run: xopc tunnel start');\n process.exit(1);\n }\n console.log(qr.qrPayload);\n });\n\n cmd\n .command('broker')\n .description('Self-hosted FRP broker helpers')\n .addCommand(\n new Command('init')\n .description('Print a starter frps + broker configuration template')\n .option('--domain <domain>', 'Public domain for frps', 'tunnel.example.com')\n .action((opts) => {\n const domain = String(opts.domain ?? 'tunnel.example.com');\n console.log(`# Self-hosted FRP broker sketch for ${domain}`);\n console.log('# 1. Run frps with vhost HTTP/HTTPS and a registration token');\n console.log(`# 2. Point tunnel.brokerUrl to https://${domain}/api`);\n console.log(`# 3. Set XOPC_TUNNEL_REGISTRATION_SECRET in the gateway environment`);\n console.log('');\n console.log(JSON.stringify({\n frps: {\n bindPort: 7000,\n vhostHTTPPort: 8080,\n subdomainHost: domain,\n },\n broker: {\n apiUrl: `https://${domain}/api`,\n registrationSecretEnv: 'XOPC_TUNNEL_REGISTRATION_SECRET',\n },\n }, null, 2));\n }),\n );\n\n return cmd;\n}\n\nregister({\n id: 'tunnel',\n name: 'tunnel',\n description: 'FRP remote access tunnel',\n factory: createTunnelCommand,\n metadata: {\n category: 'runtime',\n examples: ['xopc tunnel start', 'xopc tunnel status', 'xopc tunnel secret set'],\n },\n});\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","names":[],"sources":["../../../../src/cli/commands/update.ts"],"sourcesContent":["// src/cli/commands/update.ts\n\nimport { Command } from 'commander';\n\nimport { loadConfig } from '../../config/index.js';\nimport { acquireUpdateLock } from '../../infra/update-lock.js';\nimport { normalizeUpdateChannel, DEFAULT_PACKAGE_CHANNEL } from '../../infra/update-channels.js';\nimport {\n resolveNpmChannelTag,\n compareSemver,\n} from '../../infra/update-check.js';\nimport {\n formatUpdateApiResult,\n resolveUpdateInstallSurface,\n runGatewayUpdateWithPostSteps,\n} from '../../infra/update-runner.js';\nimport { PACKAGE_VERSION } from '../../package-version.js';\nimport { register, formatExamples, type CLIContext } from '../registry.js';\n\nfunction createUpdateCommand(_ctx: CLIContext): Command {\n return new Command('update')\n .description('Check for and install xopc updates')\n .option('--check', 'Only check for updates without installing')\n .option('--yes', 'Skip confirmation prompts')\n .option('--channel <channel>', 'Update channel: stable, beta, or dev')\n .option('--json', 'Output results as JSON')\n .option('--no-restart', 'Skip gateway restart after a successful update')\n .addHelpText(\n 'after',\n formatExamples([\n 'xopc update',\n 'xopc update --check',\n 'xopc update --channel beta',\n 'xopc update --yes',\n 'xopc update --json',\n ]),\n )\n .action(\n async (options: {\n check?: boolean;\n yes?: boolean;\n channel?: string;\n json?: boolean;\n restart?: boolean;\n }) => {\n const fromCli = options.channel;\n const fromConfig = (() => {\n try {\n return loadConfig().update?.channel;\n } catch {\n return undefined;\n }\n })();\n const channel = normalizeUpdateChannel(fromCli ?? fromConfig) ?? DEFAULT_PACKAGE_CHANNEL;\n\n const surface = await resolveUpdateInstallSurface({\n cwd: process.cwd(),\n argv1: process.argv[1],\n });\n\n if (options.check) {\n if (surface.kind === 'git') {\n const message = 'Git checkout detected. Run `xopc update` to pull/rebase and build.';\n if (options.json) {\n console.log(JSON.stringify({ status: 'git-checkout', mode: 'git', message }));\n } else {\n console.log(message);\n }\n return;\n }\n\n const resolved = await resolveNpmChannelTag({ channel });\n if (!resolved.version) {\n const message = 'Could not reach npm registry. Check your network connection.';\n if (options.json) {\n console.log(JSON.stringify({ status: 'error', reason: 'registry-unreachable', message }));\n } else {\n console.error(message);\n }\n process.exit(1);\n }\n\n const comparison = compareSemver(PACKAGE_VERSION, resolved.version);\n if (comparison === null || comparison >= 0) {\n const message = `Already up to date: v${PACKAGE_VERSION} (${resolved.tag}: v${resolved.version})`;\n if (options.json) {\n console.log(\n JSON.stringify({\n status: 'up-to-date',\n currentVersion: PACKAGE_VERSION,\n latestVersion: resolved.version,\n channel: resolved.tag,\n }),\n );\n } else {\n console.log(`✅ ${message}`);\n }\n return;\n }\n\n const message = `Update available: v${PACKAGE_VERSION} → v${resolved.version} (${resolved.tag})`;\n if (options.json) {\n console.log(\n JSON.stringify({\n status: 'update-available',\n currentVersion: PACKAGE_VERSION,\n latestVersion: resolved.version,\n channel: resolved.tag,\n installSurface: surface.kind,\n }),\n );\n } else {\n console.log(`📦 ${message}`);\n console.log('Run `xopc update` to install.');\n }\n return;\n }\n\n if (!options.yes && !process.env.XOPC_AUTO_UPDATE) {\n const { confirm } = await import('@inquirer/prompts');\n const label =\n surface.kind === 'git'\n ? `Update git checkout via ${channel} channel?`\n : `Update from v${PACKAGE_VERSION} (${channel})?`;\n const shouldUpdate = await confirm({ message: label, default: true });\n if (!shouldUpdate) {\n console.log('Update cancelled.');\n return;\n }\n }\n\n const lock = process.env.XOPC_AUTO_UPDATE\n ? { release: async () => {} }\n : await acquireUpdateLock('cli');\n if (!lock) {\n const message = 'Another update is already in progress. Try again later.';\n if (options.json) {\n console.log(JSON.stringify({ status: 'error', reason: 'lock-held', message }));\n } else {\n console.error(`❌ ${message}`);\n }\n process.exit(1);\n }\n\n try {\n if (!options.json) {\n console.log(`Running update (channel: ${channel}, surface: ${surface.kind})...`);\n }\n\n const result = await runGatewayUpdateWithPostSteps({\n channel,\n cwd: process.cwd(),\n argv1: process.argv[1],\n shouldRestart: options.restart !== false,\n progress: options.json\n ? undefined\n : {\n onStepStart: (step) => {\n console.log(`→ [${step.index + 1}/${step.total}] ${step.name}`);\n },\n onStepComplete: (step) => {\n if (step.exitCode !== 0 && step.stderrTail) {\n console.error(step.stderrTail);\n }\n },\n },\n });\n\n const apiResult = formatUpdateApiResult(result, channel);\n if (result.status === 'ok') {\n if (options.json) {\n console.log(JSON.stringify(apiResult));\n } else {\n console.log(`✅ Updated to v${result.after?.version ?? 'unknown'} (${result.mode})`);\n const extOutcomes = result.postUpdate?.extensions?.outcomes ?? [];\n const updatedExt = extOutcomes.filter((o) => o.status === 'updated');\n if (updatedExt.length > 0) {\n console.log(`Extensions synced: ${updatedExt.map((o) => o.extensionId).join(', ')}`);\n }\n const restart = result.postUpdate?.restart;\n if (restart?.ok && restart.mode !== 'skipped') {\n console.log(`Gateway restart: ${restart.message ?? restart.mode}`);\n } else if (!restart?.ok) {\n console.log(\n restart?.message ??\n 'Restart the gateway to use the new version: xopc gateway restart',\n );\n }\n }\n return;\n }\n\n if (result.status === 'skipped') {\n if (options.json) {\n console.log(JSON.stringify({ status: 'skipped', reason: result.reason, ...apiResult }));\n } else if (result.reason === 'up-to-date') {\n console.log(`✅ Already up to date: v${PACKAGE_VERSION}`);\n } else if (result.reason === 'dirty') {\n console.error('❌ Git working tree has uncommitted changes. Commit or stash first.');\n process.exit(1);\n } else {\n console.log(`Update skipped: ${result.reason ?? 'unknown'}`);\n }\n return;\n }\n\n const message =\n typeof apiResult.message === 'string'\n ? apiResult.message\n : result.reason ?? 'Update failed';\n if (options.json) {\n console.log(JSON.stringify({ status: 'error', reason: result.reason, message, ...apiResult }));\n } else {\n console.error(`❌ Update failed: ${message}`);\n }\n process.exit(1);\n } finally {\n await lock.release();\n }\n },\n );\n}\n\nregister({\n id: 'update',\n name: 'update',\n description: 'Check for and install xopc updates',\n factory: createUpdateCommand,\n metadata: {\n category: 'maintenance',\n examples: [\n 'xopc update',\n 'xopc update --check',\n 'xopc update --channel beta',\n 'xopc update --yes --json',\n ],\n },\n});\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"voice.js","names":[],"sources":["../../../../src/cli/commands/voice.ts"],"sourcesContent":["/**\n * `xopc voice` — configure text-to-speech (TTS) for outbound messages.\n *\n * Backed by `cfg.messages.tts` per `TTSConfigSchema`. Uses the M1 setup-shared\n * runner so every action emits the same `SetupOutcome` JSON consumed by M2\n * skills and the M3 WebUI.\n */\n\nimport { Command } from 'commander';\n\nimport { loadConfig } from '../../config/loader.js';\nimport { resolveConfigPath } from '../../config/paths.js';\nimport type { Config } from '../../config/schema.js';\nimport { register, formatExamples, type CLIContext } from '../registry.js';\nimport { colors } from '../utils/colors.js';\n\nimport {\n emitOutcome,\n runSetup,\n} from './setup-shared/index.js';\n\nconst TTS_PROVIDERS = ['openai', 'alibaba', 'edge', 'minimax'] as const;\ntype TTSProvider = (typeof TTS_PROVIDERS)[number];\n\nconst TTS_TRIGGERS = ['off', 'always', 'inbound', 'tagged'] as const;\ntype TTSTrigger = (typeof TTS_TRIGGERS)[number];\n\ninterface TTSStatusSnapshot {\n enabled: boolean;\n provider: string;\n trigger: string;\n maxTextLength: number;\n timeoutMs: number;\n}\n\nexport function readTTSStatus(cfg: Config): TTSStatusSnapshot {\n const tts = (cfg.messages?.tts ?? {}) as Record<string, unknown>;\n return {\n enabled: tts.enabled === true,\n provider: typeof tts.provider === 'string' ? tts.provider : 'openai',\n trigger: typeof tts.trigger === 'string' ? tts.trigger : 'always',\n maxTextLength: typeof tts.maxTextLength === 'number' ? tts.maxTextLength : 512,\n timeoutMs: typeof tts.timeoutMs === 'number' ? tts.timeoutMs : 60000,\n };\n}\n\nexport function applyTTSEnable(\n cfg: Config,\n patch: { enabled?: boolean; provider?: TTSProvider; trigger?: TTSTrigger },\n): Config {\n const messages = { ...((cfg.messages ?? {}) as Record<string, unknown>) };\n const tts = { ...((messages.tts ?? {}) as Record<string, unknown>) };\n if (patch.enabled !== undefined) tts.enabled = patch.enabled;\n if (patch.provider !== undefined) tts.provider = patch.provider;\n if (patch.trigger !== undefined) tts.trigger = patch.trigger;\n messages.tts = tts;\n return { ...cfg, messages } as Config;\n}\n\nfunction resolveConfigPathFromCommand(command: Command): string {\n let cur: Command | undefined = command;\n while (cur?.parent) cur = cur.parent;\n const opts = cur?.opts() as { config?: string } | undefined;\n return (\n opts?.config?.trim() ||\n process.env.XOPC_CONFIG_PATH?.trim() ||\n process.env.XOPC_CONFIG?.trim() ||\n resolveConfigPath()\n );\n}\n\nfunction createVoiceCommand(_ctx: CLIContext): Command {\n const cmd = new Command('voice')\n .description('Configure text-to-speech (TTS) output')\n .addHelpText(\n 'after',\n formatExamples([\n 'xopc voice status',\n 'xopc voice status --json',\n 'xopc voice enable',\n 'xopc voice enable --provider edge --trigger inbound',\n 'xopc voice disable',\n 'xopc voice schema --json',\n ]),\n );\n\n cmd\n .command('status')\n .description('Show TTS configuration status')\n .option('--json', 'Output as JSON', false)\n .action((opts: { json?: boolean }, command: Command) => {\n const status = readTTSStatus(loadConfig(resolveConfigPathFromCommand(command)));\n if (opts.json) {\n process.stdout.write(JSON.stringify({ ok: true, voice: status }) + '\\n');\n return;\n }\n const badge = status.enabled ? colors.green('● enabled') : colors.gray('○ disabled');\n console.log('');\n console.log(colors.bold('VOICE (TTS)'));\n console.log(` Status: ${badge}`);\n console.log(` Provider: ${status.provider}`);\n console.log(` Trigger: ${status.trigger}`);\n console.log(` Max text: ${status.maxTextLength}`);\n console.log(` Timeout: ${status.timeoutMs}ms`);\n console.log('');\n });\n\n cmd\n .command('enable')\n .description('Enable TTS (optionally update provider/trigger)')\n .option(\n '--provider <id>',\n `TTS provider: ${TTS_PROVIDERS.join(' | ')}`,\n )\n .option('--trigger <mode>', `Trigger mode: ${TTS_TRIGGERS.join(' | ')}`)\n .option('--dry-run', 'Show the change without writing', false)\n .option('--json', 'Emit a single JSON outcome line', false)\n .action(\n async (\n opts: { provider?: string; trigger?: string; dryRun?: boolean; json?: boolean },\n command: Command,\n ) => {\n const provider = opts.provider as TTSProvider | undefined;\n const trigger = opts.trigger as TTSTrigger | undefined;\n if (provider && !TTS_PROVIDERS.includes(provider)) {\n emitOutcome(\n {\n ok: false,\n action: 'set',\n domain: 'voice',\n changedPaths: [],\n dryRun: Boolean(opts.dryRun),\n errors: [\n {\n path: 'provider',\n message: `Unknown provider \"${provider}\". Use one of: ${TTS_PROVIDERS.join(', ')}.`,\n },\n ],\n },\n Boolean(opts.json),\n );\n process.exitCode = 1;\n return;\n }\n if (trigger && !TTS_TRIGGERS.includes(trigger)) {\n emitOutcome(\n {\n ok: false,\n action: 'set',\n domain: 'voice',\n changedPaths: [],\n dryRun: Boolean(opts.dryRun),\n errors: [\n {\n path: 'trigger',\n message: `Unknown trigger \"${trigger}\". Use one of: ${TTS_TRIGGERS.join(', ')}.`,\n },\n ],\n },\n Boolean(opts.json),\n );\n process.exitCode = 1;\n return;\n }\n\n await runSetup({\n configPath: resolveConfigPathFromCommand(command),\n options: { dryRun: Boolean(opts.dryRun), json: Boolean(opts.json) },\n mutator: {\n domain: 'voice',\n action: 'set',\n mutate(cfg) {\n return applyTTSEnable(cfg, { enabled: true, provider, trigger });\n },\n resultValue: (cfg) => readTTSStatus(cfg),\n notes: () => ['TTS enabled. Configure the chosen provider key separately if needed.'],\n },\n });\n },\n );\n\n cmd\n .command('disable')\n .description('Disable TTS')\n .option('--dry-run', 'Show the change without writing', false)\n .option('--json', 'Emit a single JSON outcome line', false)\n .action(async (opts: { dryRun?: boolean; json?: boolean }, command: Command) => {\n await runSetup({\n configPath: resolveConfigPathFromCommand(command) || undefined!,\n options: { dryRun: Boolean(opts.dryRun), json: Boolean(opts.json) },\n mutator: {\n domain: 'voice',\n action: 'set',\n mutate(cfg) {\n return applyTTSEnable(cfg, { enabled: false });\n },\n resultValue: (cfg) => readTTSStatus(cfg),\n },\n });\n });\n\n cmd\n .command('schema')\n .description('Print voice/TTS setup schema for agents/UIs')\n .option('--json', 'JSON output (default human-readable JSON)', false)\n .action((opts: { json?: boolean }) => {\n const payload = {\n ok: true,\n schema: {\n target: 'cfg.messages.tts',\n fields: {\n enabled: { type: 'boolean', default: false },\n provider: { type: 'enum', enum: [...TTS_PROVIDERS], default: 'openai' },\n trigger: { type: 'enum', enum: [...TTS_TRIGGERS], default: 'always' },\n maxTextLength: { type: 'number', default: 512 },\n timeoutMs: { type: 'number', default: 60000 },\n },\n },\n };\n if (opts.json) process.stdout.write(JSON.stringify(payload) + '\\n');\n else console.log(JSON.stringify(payload, null, 2));\n });\n\n return cmd;\n}\n\nregister({\n id: 'voice',\n name: 'voice',\n description: 'Configure TTS (text-to-speech) output',\n factory: createVoiceCommand,\n metadata: {\n category: 'setup',\n examples: [\n 'xopc voice status',\n 'xopc voice enable --provider edge --trigger inbound',\n 'xopc voice disable',\n 'xopc voice schema --json',\n ],\n },\n});\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","names":[],"sources":["../../../src/cli/context.ts"],"sourcesContent":["/**\n * CLI parsed-options + context builder.\n *\n * Extracted from `cli/index.ts` so command modules can import\n * `getContextWithOpts` without pulling the full CLI wiring graph (which\n * imports `command-loaders.ts`, which lazy-imports every command file). Before\n * this split, every command file circularly depended on `cli/index.ts` →\n * `command-loaders.ts` → that same command file.\n */\n\nimport { createDefaultContext, type CLIContext } from './registry.js';\n\n/**\n * Global parsed options — updated before each command via the Commander\n * `preAction` hook in `cli/index.ts`.\n */\nexport const parsedOpts: { config?: string; workspace?: string; verbose?: boolean } = {};\n\nexport function getContextWithOpts(argv: string[] = process.argv): CLIContext {\n return createDefaultContext(argv, parsedOpts);\n}\n"],"mappings":";;;;;;;;;;;;;;;AAgBA,MAAa,aAAyE,EAAE;AAExF,SAAgB,mBAAmB,OAAiB,QAAQ,MAAkB;AAC5E,QAAO,qBAAqB,MAAM,WAAW"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"extension-cli-register.js","names":[],"sources":["../../../src/cli/extension-cli-register.ts"],"sourcesContent":["import { Command } from 'commander';\nimport { join } from 'path';\nimport { MessageBus } from '../infra/bus/index.js';\nimport { loadConfig, getWorkspacePath } from '../config/index.js';\nimport { collectConfiguredChannelIds } from '../extensions/activation-context.js';\nimport { ExtensionLoader } from '../extensions/index.js';\nimport { registerExtensionCliProgram } from '../extensions/sdk/channel-helpers.js';\nimport { createDefaultContext } from './registry.js';\n\nfunction argvRequestsVersionOnly(argv: string[]): boolean {\n return argv.includes('--version') || argv.includes('-V');\n}\n\n/**\n * Load extensions that may register CLI commands (manifest-only skip when nothing would activate).\n */\nexport async function registerExtensionCliCommands(program: Command): Promise<void> {\n if (argvRequestsVersionOnly(process.argv)) {\n return;\n }\n\n const ctx = createDefaultContext(process.argv, {});\n const config = loadConfig(ctx.configPath);\n const workspace = getWorkspacePath(config) || ctx.workspacePath;\n\n const rawExt = (config as Record<string, unknown>).extensions;\n const extBlock =\n rawExt && typeof rawExt === 'object' && !Array.isArray(rawExt)\n ? (rawExt as Record<string, unknown>)\n : undefined;\n const enabledIds = Array.isArray(extBlock?.enabled)\n ? extBlock!.enabled.filter((x): x is string => typeof x === 'string')\n : [];\n\n const bus = new MessageBus();\n const loader = new ExtensionLoader({\n workspaceDir: workspace,\n extensionsDir: join(workspace, '.extensions'),\n });\n loader.setConfig(config as Parameters<ExtensionLoader['setConfig']>[0]);\n\n const registry = loader.buildManifestRegistry();\n const envWouldActivate = registry.detectAvailableByEnv(process.env).length > 0;\n const channelWouldActivate = (collectConfiguredChannelIds(config)?.length ?? 0) > 0;\n\n if (enabledIds.length === 0 && !channelWouldActivate && !envWouldActivate) {\n return;\n }\n\n loader.setRuntimeContext({ bus });\n await loader.loadByActivationPlan();\n registerExtensionCliProgram(program, loader.getRegistry());\n}\n"],"mappings":";;;;;;;;;;;;AASA,SAAS,wBAAwB,MAAyB;AACxD,QAAO,KAAK,SAAS,YAAY,IAAI,KAAK,SAAS,KAAK;;;;;AAM1D,eAAsB,6BAA6B,SAAiC;AAClF,KAAI,wBAAwB,QAAQ,KAAK,CACvC;CAGF,MAAM,MAAM,qBAAqB,QAAQ,MAAM,EAAE,CAAC;CAClD,MAAM,SAAS,WAAW,IAAI,WAAW;CACzC,MAAM,YAAY,iBAAiB,OAAO,IAAI,IAAI;CAElD,MAAM,SAAU,OAAmC;CACnD,MAAM,WACJ,UAAU,OAAO,WAAW,YAAY,CAAC,MAAM,QAAQ,OAAO,GACzD,SACD,KAAA;CACN,MAAM,aAAa,MAAM,QAAQ,UAAU,QAAQ,GAC/C,SAAU,QAAQ,QAAQ,MAAmB,OAAO,MAAM,SAAS,GACnE,EAAE;CAEN,MAAM,MAAM,IAAI,YAAY;CAC5B,MAAM,SAAS,IAAI,gBAAgB;EACjC,cAAc;EACd,eAAe,KAAK,WAAW,cAAc;EAC9C,CAAC;AACF,QAAO,UAAU,OAAsD;CAGvE,MAAM,mBADW,OAAO,uBACS,CAAC,qBAAqB,QAAQ,IAAI,CAAC,SAAS;CAC7E,MAAM,wBAAwB,4BAA4B,OAAO,EAAE,UAAU,KAAK;AAElF,KAAI,WAAW,WAAW,KAAK,CAAC,wBAAwB,CAAC,iBACvD;AAGF,QAAO,kBAAkB,EAAE,KAAK,CAAC;AACjC,OAAM,OAAO,sBAAsB;AACnC,6BAA4B,SAAS,OAAO,aAAa,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gateway-run-argv.js","names":[],"sources":["../../../src/cli/gateway-run-argv.ts"],"sourcesContent":["import { resolveCliArgvInvocation } from './argv-invocation.js';\n\nconst GATEWAY_RUN_VALUE_FLAGS = new Set([\n '--port',\n '--bind',\n '--token',\n '--tailscale',\n]);\n\nconst GATEWAY_RUN_BOOLEAN_FLAGS = new Set([\n '--tailscale-reset-on-exit',\n '--force',\n '--no-hot-reload',\n '--foreground',\n]);\n\nconst GATEWAY_SUBCOMMANDS = new Set([\n 'token',\n 'status',\n 'health',\n 'call',\n 'probe',\n 'stop',\n 'restart',\n 'logs',\n 'service',\n 'ssh-tunnel',\n]);\n\nfunction isValueToken(token: string | undefined): boolean {\n return typeof token === 'string' && token.length > 0 && !token.startsWith('-');\n}\n\nexport function consumeGatewayRunOptionToken(args: ReadonlyArray<string>, index: number): number {\n const arg = args[index];\n if (!arg || arg === '--' || !arg.startsWith('-')) {\n return 0;\n }\n const equalsIndex = arg.indexOf('=');\n const flag = equalsIndex === -1 ? arg : arg.slice(0, equalsIndex);\n if (GATEWAY_RUN_BOOLEAN_FLAGS.has(flag)) {\n return equalsIndex === -1 ? 1 : 0;\n }\n if (!GATEWAY_RUN_VALUE_FLAGS.has(flag)) {\n return 0;\n }\n if (equalsIndex !== -1) {\n return arg.slice(equalsIndex + 1).trim() ? 1 : 0;\n }\n return isValueToken(args[index + 1]) ? 2 : 0;\n}\n\nexport function consumeGatewayFastPathRootOptionToken(\n args: ReadonlyArray<string>,\n index: number,\n): number {\n const arg = args[index];\n if (!arg || arg === '--') {\n return 0;\n }\n if (arg.startsWith('--config=')) {\n return arg.slice('--config='.length).trim() ? 1 : 0;\n }\n if (arg === '--config') {\n return isValueToken(args[index + 1]) ? 2 : 0;\n }\n if (arg.startsWith('--workspace=')) {\n return arg.slice('--workspace='.length).trim() ? 1 : 0;\n }\n if (arg === '--workspace') {\n return isValueToken(args[index + 1]) ? 2 : 0;\n }\n if (arg === '--verbose' || arg === '-v') {\n return 1;\n }\n return 0;\n}\n\nexport function resolveGatewayCatalogCommandPath(argv: string[]): string[] | null {\n const args = argv.slice(2).filter((arg) => arg !== '--');\n let sawGateway = false;\n\n for (let index = 0; index < args.length; index += 1) {\n const arg = args[index];\n if (!arg || arg === '--') {\n break;\n }\n if (!sawGateway) {\n const consumed = consumeGatewayFastPathRootOptionToken(args, index);\n if (consumed > 0) {\n index += consumed - 1;\n continue;\n }\n if (arg.startsWith('-')) {\n continue;\n }\n if (arg !== 'gateway') {\n return null;\n }\n sawGateway = true;\n continue;\n }\n\n const consumed = consumeGatewayRunOptionToken(args, index);\n if (consumed > 0) {\n index += consumed - 1;\n continue;\n }\n if (arg.startsWith('-')) {\n continue;\n }\n if (arg === 'service') {\n for (let nestedIndex = index + 1; nestedIndex < args.length; nestedIndex += 1) {\n const nested = args[nestedIndex];\n if (!nested || nested === '--') {\n break;\n }\n if (nested.startsWith('-')) {\n continue;\n }\n return ['gateway', 'service', nested];\n }\n return ['gateway', 'service'];\n }\n return ['gateway', arg];\n }\n\n return sawGateway ? ['gateway'] : null;\n}\n\nexport function resolveGatewaySubcommandName(argv: string[]): string | undefined {\n const path = resolveGatewayCatalogCommandPath(argv);\n return path && path.length >= 2 ? path[1] : undefined;\n}\n\nexport function isGatewayRunFastPathArgv(argv: string[]): boolean {\n if (process.env.XOPC_DISABLE_GATEWAY_RUN_FAST_PATH === '1') {\n return false;\n }\n\n const invocation = resolveCliArgvInvocation(argv);\n if (invocation.hasHelpOrVersion) {\n return false;\n }\n\n const args = argv.slice(2).filter((arg) => arg !== '--');\n let sawGateway = false;\n\n for (let index = 0; index < args.length; index += 1) {\n const arg = args[index];\n if (!arg || arg === '--') {\n return false;\n }\n if (!sawGateway) {\n const consumed = consumeGatewayFastPathRootOptionToken(args, index);\n if (consumed > 0) {\n index += consumed - 1;\n continue;\n }\n if (arg !== 'gateway') {\n return false;\n }\n sawGateway = true;\n continue;\n }\n\n const consumed = consumeGatewayRunOptionToken(args, index);\n if (consumed > 0) {\n index += consumed - 1;\n continue;\n }\n if (arg.startsWith('-')) {\n continue;\n }\n return false;\n }\n\n return sawGateway;\n}\n\nexport function isKnownGatewaySubcommand(name: string): boolean {\n return GATEWAY_SUBCOMMANDS.has(name);\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gateway-run-fast-path.js","names":["pkg.version"],"sources":["../../../src/cli/gateway-run-fast-path.ts"],"sourcesContent":["import type { Command } from 'commander';\n\nimport { ROOT_COMMAND_DESCRIPTION } from './command-manifest.js';\nimport { createDefaultContext, type CLIContext } from './registry.js';\nimport { isGatewayRunFastPathArgv } from './gateway-run-argv.js';\nimport pkg from '../../package.json' with { type: 'json' };\n\nlet parsedOpts: { config?: string; workspace?: string; verbose?: boolean } = {};\n\nfunction getContextWithOpts(argv: string[] = process.argv): CLIContext {\n return createDefaultContext(argv, parsedOpts);\n}\n\nfunction buildGatewayRunOptions(cmd: Command) {\n return cmd\n .description('Start the xopc gateway server')\n .option('--bind <mode>', 'Bind mode: loopback | lan | auto | custom | tailnet')\n .option('--port <number>', 'Port to listen on (defaults to gateway.port in config, else 18790)')\n .option('--token <token>', 'Authentication token')\n .option(\n '--tailscale <mode>',\n 'Tailscale exposure: off | serve | funnel (overrides config for this run)',\n )\n .option('--tailscale-reset-on-exit', 'Reset Tailscale serve/funnel on gateway shutdown', false)\n .option('--force', 'Force kill existing process on port', false)\n .option('--no-hot-reload', 'Disable config hot reload')\n .option('--foreground', 'Start gateway in foreground mode (blocks terminal)', true);\n}\n\nexport async function tryRunGatewayRunFastPath(argv: string[] = process.argv): Promise<boolean> {\n if (!isGatewayRunFastPathArgv(argv)) {\n return false;\n }\n\n const { Command } = await import('commander');\n const { runGatewayFromCliOptions } = await import('./commands/gateway/run-foreground.js');\n\n const program = new Command()\n .name('xopc')\n .description(ROOT_COMMAND_DESCRIPTION)\n .version(pkg.version)\n .option('--verbose', 'Enable verbose logging', false)\n .option('--config <path>', 'Config file path')\n .option('--workspace <path>', 'Workspace directory');\n\n program.hook('preAction', (thisCommand) => {\n parsedOpts = thisCommand.opts();\n });\n\n const gateway = buildGatewayRunOptions(new Command('gateway'));\n gateway.action(async (options) => {\n await runGatewayFromCliOptions(options, getContextWithOpts(argv));\n });\n program.addCommand(gateway);\n\n await program.parseAsync(argv);\n\n const { flushAndClose } = await import('../utils/logger/shutdown.js');\n await flushAndClose();\n return true;\n}\n"],"mappings":";;;;;AAOA,IAAI,aAAyE,EAAE;AAE/E,SAAS,mBAAmB,OAAiB,QAAQ,MAAkB;AACrE,QAAO,qBAAqB,MAAM,WAAW;;AAG/C,SAAS,uBAAuB,KAAc;AAC5C,QAAO,IACJ,YAAY,gCAAgC,CAC5C,OAAO,iBAAiB,sDAAsD,CAC9E,OAAO,mBAAmB,qEAAqE,CAC/F,OAAO,mBAAmB,uBAAuB,CACjD,OACC,sBACA,2EACD,CACA,OAAO,6BAA6B,oDAAoD,MAAM,CAC9F,OAAO,WAAW,uCAAuC,MAAM,CAC/D,OAAO,mBAAmB,4BAA4B,CACtD,OAAO,gBAAgB,sDAAsD,KAAK;;AAGvF,eAAsB,yBAAyB,OAAiB,QAAQ,MAAwB;AAC9F,KAAI,CAAC,yBAAyB,KAAK,CACjC,QAAO;CAGT,MAAM,EAAE,YAAY,MAAM,OAAO;CACjC,MAAM,EAAE,6BAA6B,MAAM,OAAO;CAElD,MAAM,UAAU,IAAI,SAAS,CAC1B,KAAK,OAAO,CACZ,YAAY,yBAAyB,CACrC,QAAQA,QAAY,CACpB,OAAO,aAAa,0BAA0B,MAAM,CACpD,OAAO,mBAAmB,mBAAmB,CAC7C,OAAO,sBAAsB,sBAAsB;AAEtD,SAAQ,KAAK,cAAc,gBAAgB;AACzC,eAAa,YAAY,MAAM;GAC/B;CAEF,MAAM,UAAU,uBAAuB,IAAI,QAAQ,UAAU,CAAC;AAC9D,SAAQ,OAAO,OAAO,YAAY;AAChC,QAAM,yBAAyB,SAAS,mBAAmB,KAAK,CAAC;GACjE;AACF,SAAQ,WAAW,QAAQ;AAE3B,OAAM,QAAQ,WAAW,KAAK;CAE9B,MAAM,EAAE,kBAAkB,MAAM,OAAO;AACvC,OAAM,eAAe;AACrB,QAAO"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["pkg.version"],"sources":["../../../src/cli/index.ts"],"sourcesContent":["#!/usr/bin/env node\n/** Command wiring and `program.parse`; executable entry is `bin.ts` (log preset before logger init). */\nimport { Command } from 'commander';\nimport { ROOT_COMMAND_DESCRIPTION } from './command-manifest.js';\nimport pkg from '../../package.json' with { type: 'json' };\nimport { resolveCommandName, tryLoadCommand, loadAllCommands } from './command-loaders.js';\nimport { isHelpOrVersionInvocation } from './argv.js';\n\n// Lazy logger flush so that pure parameter-parsing paths (--help, --version,\n// `<unknown>`) never load the logger barrel. Imports `logger/shutdown.js`\n// directly to bypass `logger/index.ts` (pino + 8 sub-modules) on the cold path\n// — when an action did log, that import is already cached.\nasync function flushLoggerAndExit(code: number): Promise<never> {\n const { flushAndClose } = await import('../utils/logger/shutdown.js');\n await flushAndClose();\n process.exit(code);\n}\n\n// Re-exported from `./context.js` for backward compat. Command modules should\n// import from `./context.js` directly to avoid the CLI barrel cycle.\nexport { parsedOpts, getContextWithOpts } from './context.js';\nimport { parsedOpts, getContextWithOpts } from './context.js';\n\n// Commands whose action never resolves until an external shutdown signal.\n// `tui` is intentionally omitted: `await runTui()` completes when the user exits\n// the TUI and the process must call `process.exit` (interactive stdin stays open).\nconst LONG_RUNNING_COMMANDS = new Set(['gateway', 'agent']);\n\nexport function argvWithDefaultCommand(argv: string[], defaultCommand = 'tui'): string[] {\n const target = resolveCommandName(argv);\n if (target || isHelpOrVersionInvocation(argv)) {\n return argv;\n }\n return [...argv, defaultCommand];\n}\n\nfunction isExtensionsDevCommand(command: Command): boolean {\n return command.name() === 'dev' && command.parent?.name() === 'extensions';\n}\n\nfunction buildProgram(): Command {\n const program = new Command()\n .name('xopc')\n .description(ROOT_COMMAND_DESCRIPTION)\n .version(pkg.version)\n .option('--verbose', 'Enable verbose logging', false)\n .option('--config <path>', 'Config file path')\n .option('--workspace <path>', 'Workspace directory');\n\n // Hook to capture parsed options before each command runs. Mutate the\n // shared object in place — `parsedOpts` is a `const` import from\n // `./context.js` so command modules see updates through the same reference.\n program.hook('preAction', (thisCommand) => {\n const next = thisCommand.opts() as Record<string, unknown>;\n for (const k of Object.keys(parsedOpts)) {\n delete (parsedOpts as Record<string, unknown>)[k];\n }\n Object.assign(parsedOpts, next);\n });\n\n // Hook to ensure process exits after command completion.\n // Second arg is the command whose action ran; the first is the ancestor that\n // registered the hook (often the root program), so using only the first arg\n // mis-detects the subcommand as \"xopc\".\n program.hook('postAction', async (_hookOwner, actionCommand) => {\n const cmd = actionCommand ?? program;\n const args = cmd.args;\n const subCommandName = args.length > 0 ? args[0] : cmd.name();\n\n if (LONG_RUNNING_COMMANDS.has(subCommandName) || isExtensionsDevCommand(cmd)) {\n if (subCommandName === 'agent') {\n const hasInteractiveFlag = process.argv.includes('-i') || process.argv.includes('--interactive');\n if (!hasInteractiveFlag) {\n await flushLoggerAndExit(0);\n }\n }\n return;\n }\n await flushLoggerAndExit(0);\n });\n\n return program;\n}\n\nexport async function runCli(argv: string[] = process.argv): Promise<void> {\n const program = buildProgram();\n const ctx = getContextWithOpts(argv);\n\n // Filter out standalone '--' separator (passed by pnpm run -- <cmd>).\n // npm removes it automatically, pnpm passes it through. Keep '--' if it's a\n // script argument (index < 2), drop it only when it sits between the script\n // name and the actual command.\n const filteredArgv = argv.filter((arg, index) => {\n if (arg !== '--') return true;\n return index < 2;\n });\n\n const argvToParse = argvWithDefaultCommand(filteredArgv);\n const target = resolveCommandName(argvToParse);\n let loaded = false;\n if (target) {\n loaded = await tryLoadCommand(program, ctx, target, getContextWithOpts);\n }\n if (!loaded) {\n // Unknown command, no command, or commander needs the full set (e.g. for\n // root help fallback). Load every command so commander can dispatch\n // properly.\n await loadAllCommands(program, ctx, getContextWithOpts);\n }\n\n program.parse(argvToParse);\n}\n"],"mappings":";;;;;;;;;AAYA,eAAe,mBAAmB,MAA8B;CAC9D,MAAM,EAAE,kBAAkB,MAAM,OAAO;AACvC,OAAM,eAAe;AACrB,SAAQ,KAAK,KAAK;;AAWpB,MAAM,wBAAwB,IAAI,IAAI,CAAC,WAAW,QAAQ,CAAC;AAE3D,SAAgB,uBAAuB,MAAgB,iBAAiB,OAAiB;AAEvF,KADe,mBAAmB,KACxB,IAAI,0BAA0B,KAAK,CAC3C,QAAO;AAET,QAAO,CAAC,GAAG,MAAM,eAAe;;AAGlC,SAAS,uBAAuB,SAA2B;AACzD,QAAO,QAAQ,MAAM,KAAK,SAAS,QAAQ,QAAQ,MAAM,KAAK;;AAGhE,SAAS,eAAwB;CAC/B,MAAM,UAAU,IAAI,SAAS,CAC1B,KAAK,OAAO,CACZ,YAAY,yBAAyB,CACrC,QAAQA,QAAY,CACpB,OAAO,aAAa,0BAA0B,MAAM,CACpD,OAAO,mBAAmB,mBAAmB,CAC7C,OAAO,sBAAsB,sBAAsB;AAKtD,SAAQ,KAAK,cAAc,gBAAgB;EACzC,MAAM,OAAO,YAAY,MAAM;AAC/B,OAAK,MAAM,KAAK,OAAO,KAAK,WAAW,CACrC,QAAQ,WAAuC;AAEjD,SAAO,OAAO,YAAY,KAAK;GAC/B;AAMF,SAAQ,KAAK,cAAc,OAAO,YAAY,kBAAkB;EAC9D,MAAM,MAAM,iBAAiB;EAC7B,MAAM,OAAO,IAAI;EACjB,MAAM,iBAAiB,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,MAAM;AAE7D,MAAI,sBAAsB,IAAI,eAAe,IAAI,uBAAuB,IAAI,EAAE;AAC5E,OAAI,mBAAmB;QAEjB,EADuB,QAAQ,KAAK,SAAS,KAAK,IAAI,QAAQ,KAAK,SAAS,gBAAgB,EAE9F,OAAM,mBAAmB,EAAE;;AAG/B;;AAEF,QAAM,mBAAmB,EAAE;GAC3B;AAEF,QAAO;;AAGT,eAAsB,OAAO,OAAiB,QAAQ,MAAqB;CACzE,MAAM,UAAU,cAAc;CAC9B,MAAM,MAAM,mBAAmB,KAAK;CAWpC,MAAM,cAAc,uBALC,KAAK,QAAQ,KAAK,UAAU;AAC/C,MAAI,QAAQ,KAAM,QAAO;AACzB,SAAO,QAAQ;GAGsC,CAAC;CACxD,MAAM,SAAS,mBAAmB,YAAY;CAC9C,IAAI,SAAS;AACb,KAAI,OACF,UAAS,MAAM,eAAe,SAAS,KAAK,QAAQ,mBAAmB;AAEzE,KAAI,CAAC,OAIH,OAAM,gBAAgB,SAAS,KAAK,mBAAmB;AAGzD,SAAQ,MAAM,YAAY"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","names":[],"sources":["../../../src/cli/registry.ts"],"sourcesContent":["import type { Command } from 'commander';\nimport { resolveConfigPath } from '../config/paths.js';\nimport { resolveDefaultAgentWorkspaceDir } from '../config/workspace-defaults.js';\n\nexport interface CLIContext {\n configPath: string;\n workspacePath: string;\n isVerbose: boolean;\n argv: string[];\n}\n\nexport function createDefaultContext(\n argv: string[] = process.argv,\n opts?: { config?: string; workspace?: string; verbose?: boolean }\n): CLIContext {\n return {\n configPath: opts?.config || process.env.XOPC_CONFIG || process.env.XOPC_CONFIG_PATH || resolveConfigPath(),\n workspacePath: opts?.workspace || process.env.XOPC_WORKSPACE || resolveDefaultAgentWorkspaceDir(),\n isVerbose: (opts?.verbose ?? (argv.includes('--verbose') || argv.includes('-v'))),\n argv,\n };\n}\n\nexport interface CommandMetadata {\n category?: 'setup' | 'runtime' | 'maintenance' | 'utility';\n hidden?: boolean;\n unstable?: boolean;\n examples?: string[];\n}\n\nexport interface CommandDefinition {\n id: string;\n name: string;\n description: string;\n factory: (ctx: CLIContext, getCtx?: () => CLIContext) => Command;\n metadata?: CommandMetadata;\n}\n\nexport class CommandRegistry {\n private commands: CommandDefinition[] = [];\n private initialized = false;\n private suppressLateRegistrationWarnings = false;\n\n /**\n * Temporarily silence the \"registered after initialization\" warning. Used by\n * commands that need to bulk-load other command modules to harvest their\n * side effects during initialization.\n */\n setSuppressLateRegistrationWarnings(value: boolean): void {\n this.suppressLateRegistrationWarnings = value;\n }\n\n register(def: CommandDefinition): void {\n if (this.initialized && !this.suppressLateRegistrationWarnings) {\n console.warn(`Warning: Command \"${def.id}\" registered after initialization`);\n }\n\n const existing = this.commands.find(c => c.id === def.id);\n if (existing) {\n throw new Error(`Command with id \"${def.id}\" already registered (name: ${existing.name})`);\n }\n\n const existingName = this.commands.find(c => c.name === def.name);\n if (existingName) {\n throw new Error(`Command with name \"${def.name}\" already registered (id: ${existingName.id})`);\n }\n\n this.commands.push(def);\n }\n\n registerAll(defs: CommandDefinition[]): void {\n for (const def of defs) {\n this.register(def);\n }\n }\n\n getCommands(): ReadonlyArray<CommandDefinition> {\n return this.commands;\n }\n\n getCommandsByCategory(category: CommandMetadata['category']): ReadonlyArray<CommandDefinition> {\n return this.commands.filter(c => c.metadata?.category === category);\n }\n\n findById(id: string): CommandDefinition | undefined {\n return this.commands.find(c => c.id === id);\n }\n\n findByName(name: string): CommandDefinition | undefined {\n return this.commands.find(c => c.name === name);\n }\n\n install(program: Command, ctx: CLIContext, getCtx?: () => CLIContext): void {\n this.initialized = true;\n\n const categoryOrder = { setup: 0, runtime: 1, maintenance: 2, utility: 3 };\n const sorted = [...this.commands].sort((a, b) => {\n const orderA = categoryOrder[a.metadata?.category ?? 'utility'];\n const orderB = categoryOrder[b.metadata?.category ?? 'utility'];\n return orderA - orderB;\n });\n\n for (const def of sorted) {\n if (def.metadata?.hidden) continue;\n\n try {\n const cmd = def.factory(ctx, getCtx);\n program.addCommand(cmd);\n } catch (error) {\n console.error(`Failed to register command \"${def.id}\":`, error);\n }\n }\n }\n\n installOne(\n program: Command,\n name: string,\n ctx: CLIContext,\n getCtx?: () => CLIContext,\n ): boolean {\n this.initialized = true;\n const def = this.findByName(name);\n if (!def || def.metadata?.hidden) return false;\n try {\n const cmd = def.factory(ctx, getCtx);\n program.addCommand(cmd);\n return true;\n } catch (error) {\n console.error(`Failed to register command \"${def.id}\":`, error);\n return false;\n }\n }\n\n getStats(): { total: number; byCategory: Record<string, number> } {\n const byCategory: Record<string, number> = {};\n for (const cmd of this.commands) {\n const cat = cmd.metadata?.category ?? 'uncategorized';\n byCategory[cat] = (byCategory[cat] || 0) + 1;\n }\n return { total: this.commands.length, byCategory };\n }\n}\n\nexport const registry = new CommandRegistry();\n\nexport function register(def: CommandDefinition): void {\n registry.register(def);\n}\n\nexport function formatExamples(examples: string[]): string {\n if (examples.length === 0) return '';\n return '\\nExamples:\\n' + examples.map(e => ` $ ${e}`).join('\\n');\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"templates.js","names":[],"sources":["../../../src/cli/templates.ts"],"sourcesContent":["/**\n * Workspace template files for onboarding.\n * Templates are stored in docs/reference/templates/ and loaded at runtime.\n */\n\nimport { readFileSync, existsSync } from 'fs';\nimport { join, dirname } from 'path';\nimport { fileURLToPath } from 'url';\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = dirname(__filename);\n\n/** Profile Markdown template file names (seeded into `agents/<id>/profile/`). */\nexport const TEMPLATE_FILES = [\n 'SOUL.md',\n 'IDENTITY.md',\n 'TOOLS.md',\n 'AGENTS.md',\n 'HEARTBEAT.md',\n] as const;\n\nexport type TemplateFile = (typeof TEMPLATE_FILES)[number];\n\n/** Alias for profile Markdown templates used by seed helpers. */\nexport const PROFILE_MARKDOWN_TEMPLATE_FILES: readonly TemplateFile[] = [...TEMPLATE_FILES];\n\n/** Template content cache */\nconst templateCache = new Map<TemplateFile, string>();\n\n/**\n * Get the path to template files.\n * Uses environment or looks in project root.\n */\nfunction getTemplatePath(): string {\n // Use environment to determine path\n const envPath = process.env.XOPC_TEMPLATE_PATH;\n if (envPath && existsSync(envPath)) {\n return envPath;\n }\n\n // Default: look in project root docs/reference/templates\n // Works for both development (src/cli/) and production (dist/cli/)\n const projectRoot = join(__dirname, '../../..');\n const defaultPath = join(projectRoot, 'docs/reference/templates');\n \n if (existsSync(defaultPath)) {\n return defaultPath;\n }\n\n // Fallback: return default (will fail gracefully)\n return defaultPath;\n}\n\n/**\n * Load a template file. Caches results for repeated access.\n */\nexport function loadTemplate(name: TemplateFile): string {\n // Return cached version if available\n if (templateCache.has(name)) {\n return templateCache.get(name)!;\n }\n\n const templatePath = join(getTemplatePath(), name);\n \n try {\n if (existsSync(templatePath)) {\n const content = readFileSync(templatePath, 'utf-8');\n templateCache.set(name, content);\n return content;\n }\n } catch {\n // Fall through to fallback\n }\n\n // Fallback: return minimal default if template is missing\n console.warn(`Warning: Template ${name} not found, using fallback`);\n return getFallbackTemplate(name);\n}\n\n/**\n * Load all templates as a record.\n */\nexport function loadAllTemplates(): Record<TemplateFile, string> {\n const result = {} as Record<TemplateFile, string>;\n for (const name of TEMPLATE_FILES) {\n result[name] = loadTemplate(name);\n }\n return result;\n}\n\n/**\n * Clear the template cache (useful for testing).\n */\nexport function clearTemplateCache(): void {\n templateCache.clear();\n}\n\n/** Minimal fallback templates in case files are missing */\nexport function getFallbackTemplate(name: TemplateFile): string {\n const fallbacks: Record<TemplateFile, string> = {\n 'AGENTS.md': `# AGENTS.md - Your Workspace\n\nThis folder is home. Treat it that way.\n\n## Session Startup\n\nUse runtime-provided startup context first. Bootstrap files (global user profile, SOUL, MEMORY, etc.) are injected by xopc on /new and /reset.\n\nDo not manually reread startup files unless the user asks or the provided context is incomplete.\n\n## Red Lines\n\n- Don't exfiltrate private data\n- Don't run destructive commands without asking\n- When in doubt, ask\n\n## Memory\n\n- Use runtime memory tools for recall.\n- Use curated memory for durable facts and preferences when available.\n- Cite only memory sources that a tool actually returns.\n\nWrite what matters. Text > Brain.\n`,\n 'SOUL.md': `# SOUL.md - Who You Are\n\n_You're not a chatbot. You're becoming someone._\n\n## Core Truths\n\n- Be genuinely helpful, not performatively helpful\n- Have opinions\n- Be resourceful before asking\n- Earn trust through competence\n- Remember you're a guest\n\n## Boundaries\n\n- Private things stay private\n- When in doubt, ask before acting externally\n- Never send half-baked replies\n\nThis file is yours to evolve.\n`,\n 'IDENTITY.md': `# IDENTITY.md - Who Am I?\n\n_Fill this in during your first conversation._\n\n- **Name:**\n- **Creature:**\n- **Vibe:**\n- **Emoji:**\n`,\n 'TOOLS.md': `# TOOLS.md - Local Notes\n\nEnvironment-specific notes:\n\n- SSH hosts\n- API endpoints\n- Device nicknames\n`,\n 'HEARTBEAT.md': `# HEARTBEAT.md - Periodic Checks\n\nEdit this file to define what you check during heartbeat polls.\n\n## Example Checklist\n\n- [ ] Check email for urgent messages\n- [ ] Check calendar for upcoming events\n\n**Remember:** If nothing needs attention, reply \\`HEARTBEAT_OK\\`.\n`,\n };\n \n return fallbacks[name] || `# ${name}\\n\\n(Template content missing)\\n`;\n}\n"],"mappings":";;;;;;;;AAUA,MAAM,YAAY,QADC,cAAc,OAAO,KAAK,IACT,CAAC;;AAGrC,MAAa,iBAAiB;CAC5B;CACA;CACA;CACA;CACA;CACD;;AAKD,MAAa,kCAA2D,CAAC,GAAG,eAAe;;AAG3F,MAAM,gCAAgB,IAAI,KAA2B;;;;;AAMrD,SAAS,kBAA0B;CAEjC,MAAM,UAAU,QAAQ,IAAI;AAC5B,KAAI,WAAW,WAAW,QAAQ,CAChC,QAAO;CAMT,MAAM,cAAc,KADA,KAAK,WAAW,WACA,EAAE,2BAA2B;AAEjE,KAAI,WAAW,YAAY,CACzB,QAAO;AAIT,QAAO;;;;;AAMT,SAAgB,aAAa,MAA4B;AAEvD,KAAI,cAAc,IAAI,KAAK,CACzB,QAAO,cAAc,IAAI,KAAK;CAGhC,MAAM,eAAe,KAAK,iBAAiB,EAAE,KAAK;AAElD,KAAI;AACF,MAAI,WAAW,aAAa,EAAE;GAC5B,MAAM,UAAU,aAAa,cAAc,QAAQ;AACnD,iBAAc,IAAI,MAAM,QAAQ;AAChC,UAAO;;SAEH;AAKR,SAAQ,KAAK,qBAAqB,KAAK,4BAA4B;AACnE,QAAO,oBAAoB,KAAK;;;;;AAMlC,SAAgB,mBAAiD;CAC/D,MAAM,SAAS,EAAE;AACjB,MAAK,MAAM,QAAQ,eACjB,QAAO,QAAQ,aAAa,KAAK;AAEnC,QAAO;;;;;AAMT,SAAgB,qBAA2B;AACzC,eAAc,OAAO;;;AAIvB,SAAgB,oBAAoB,MAA4B;AA4E9D,QAAO;EA1EL,aAAa;;;;;;;;;;;;;;;;;;;;;;;;EAwBb,WAAW;;;;;;;;;;;;;;;;;;;;EAoBX,eAAe;;;;;;;;;EASf,YAAY;;;;;;;;EAQZ,gBAAgB;;;;;;;;;;;EAaF,CAAC,SAAS,KAAK,KAAK"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"colors.js","names":[],"sources":["../../../../src/cli/utils/colors.ts"],"sourcesContent":["/**\n * Simple color utilities for CLI output\n */\n\nexport const colors = {\n\tgreen: (s: string) => `\\x1b[32m${s}\\x1b[0m`,\n\tred: (s: string) => `\\x1b[31m${s}\\x1b[0m`,\n\tyellow: (s: string) => `\\x1b[33m${s}\\x1b[0m`,\n\tcyan: (s: string) => `\\x1b[36m${s}\\x1b[0m`,\n\tblue: (s: string) => `\\x1b[34m${s}\\x1b[0m`,\n\tbold: (s: string) => `\\x1b[1m${s}\\x1b[0m`,\n\tgray: (s: string) => `\\x1b[90m${s}\\x1b[0m`,\n};\n\nexport function colorizeStatus(hasKey: boolean): string {\n\treturn hasKey ? colors.green('✓') : colors.red('✗');\n}\n"],"mappings":";;;;AAIA,MAAa,SAAS;CACrB,QAAQ,MAAc,WAAW,EAAE;CACnC,MAAM,MAAc,WAAW,EAAE;CACjC,SAAS,MAAc,WAAW,EAAE;CACpC,OAAO,MAAc,WAAW,EAAE;CAClC,OAAO,MAAc,WAAW,EAAE;CAClC,OAAO,MAAc,UAAU,EAAE;CACjC,OAAO,MAAc,WAAW,EAAE;CAClC;AAED,SAAgB,eAAe,QAAyB;AACvD,QAAO,SAAS,OAAO,MAAM,IAAI,GAAG,OAAO,IAAI,IAAI"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gateway-client-options.js","names":[],"sources":["../../../../src/cli/utils/gateway-client-options.ts"],"sourcesContent":["/**\n * Lightweight option helpers for gateway CLI subcommands.\n *\n * Kept separate from `gateway-client.ts` so subcommand files can statically\n * import these (called at command construction time) without dragging in\n * `loadConfig` / `createLogger` and their transitive graph. The heavy HTTP\n * helpers in `gateway-client.ts` are dynamically imported inside actions.\n */\nimport type { Command } from 'commander';\nimport type { GatewayCredential } from '../../gateway/credential.js';\n\nexport interface GatewayClientOptions {\n url?: string;\n token?: string;\n passwordEnv?: string;\n credential?: GatewayCredential;\n timeoutMs?: number;\n json?: boolean;\n}\n\nexport function addGatewayClientOptions(cmd: Command): Command {\n return cmd\n .option('--url <url>', 'Gateway HTTP URL (defaults to config or http://127.0.0.1:18790)')\n .option('--token <token>', 'Gateway auth token')\n .option('--password-env <name>', 'Environment variable holding the gateway password')\n .option('--timeout <ms>', 'Request timeout in ms', '10000')\n .option('--json', 'Output raw JSON', false);\n}\n\nexport function parseGatewayClientOptions(opts: Record<string, unknown>): GatewayClientOptions {\n const rawTimeout = opts.timeout;\n const timeoutMs =\n typeof rawTimeout === 'string'\n ? Number.parseInt(rawTimeout, 10) || 10_000\n : typeof rawTimeout === 'number' && Number.isFinite(rawTimeout)\n ? rawTimeout\n : 10_000;\n return {\n url: typeof opts.url === 'string' ? opts.url : undefined,\n token: typeof opts.token === 'string' ? opts.token : undefined,\n passwordEnv: typeof opts.passwordEnv === 'string' ? opts.passwordEnv : undefined,\n timeoutMs,\n json: Boolean(opts.json),\n };\n}\n"],"mappings":";AAoBA,SAAgB,wBAAwB,KAAuB;AAC7D,QAAO,IACJ,OAAO,eAAe,kEAAkE,CACxF,OAAO,mBAAmB,qBAAqB,CAC/C,OAAO,yBAAyB,oDAAoD,CACpF,OAAO,kBAAkB,yBAAyB,QAAQ,CAC1D,OAAO,UAAU,mBAAmB,MAAM;;AAG/C,SAAgB,0BAA0B,MAAqD;CAC7F,MAAM,aAAa,KAAK;CACxB,MAAM,YACJ,OAAO,eAAe,WAClB,OAAO,SAAS,YAAY,GAAG,IAAI,MACnC,OAAO,eAAe,YAAY,OAAO,SAAS,WAAW,GAC3D,aACA;AACR,QAAO;EACL,KAAK,OAAO,KAAK,QAAQ,WAAW,KAAK,MAAM,KAAA;EAC/C,OAAO,OAAO,KAAK,UAAU,WAAW,KAAK,QAAQ,KAAA;EACrD,aAAa,OAAO,KAAK,gBAAgB,WAAW,KAAK,cAAc,KAAA;EACvE;EACA,MAAM,QAAQ,KAAK,KAAK;EACzB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gateway-client.js","names":[],"sources":["../../../../src/cli/utils/gateway-client.ts"],"sourcesContent":["/**\n * Gateway API client — CLI-side HTTP client for gateway REST routes.\n */\n\nimport { loadConfig } from '../../config/index.js';\nimport { resolveConfigPath } from '../../config/paths.js';\nimport { resolveGatewayEffectiveHost } from '../../config/gateway-bind.js';\nimport { assertSecureGatewayHttpUrl } from '../../gateway/ws-security.js';\nimport {\n createGatewayCredential,\n gatewayCredentialAuthorization,\n type GatewayCredential,\n} from '../../gateway/credential.js';\nimport { createLogger } from '../../utils/logger.js';\nimport type { GatewayClientOptions } from './gateway-client-options.js';\n\nexport type { GatewayClientOptions } from './gateway-client-options.js';\nexport { addGatewayClientOptions, parseGatewayClientOptions } from './gateway-client-options.js';\n\nconst log = createLogger('GatewayClient');\n\nexport interface GatewayCallResult<T = unknown> {\n ok: boolean;\n status: number;\n data?: T;\n error?: string;\n durationMs: number;\n}\n\nexport function resolveGatewayUrl(opts?: { url?: string; configPath?: string }): string {\n if (opts?.url) {\n const normalized = opts.url.replace(/\\/+$/, '');\n assertSecureGatewayHttpUrl(normalized);\n return normalized;\n }\n\n const envUrl = process.env.XOPC_GATEWAY_URL?.trim();\n if (envUrl) {\n const normalized = envUrl.replace(/\\/+$/, '');\n assertSecureGatewayHttpUrl(normalized);\n return normalized;\n }\n\n try {\n const configPath = opts?.configPath ?? resolveConfigPath();\n const config = loadConfig(configPath);\n if (config.gateway?.mode === 'remote' && config.gateway.remote?.url?.trim()) {\n const normalized = config.gateway.remote.url.trim().replace(/\\/+$/, '');\n assertSecureGatewayHttpUrl(normalized);\n return normalized;\n }\n const host = resolveGatewayEffectiveHost(config);\n const port = config?.gateway?.port ?? 18790;\n const displayHost = host === '0.0.0.0' ? '127.0.0.1' : host;\n const url = `http://${displayHost}:${port}`;\n assertSecureGatewayHttpUrl(url);\n return url;\n } catch {\n return 'http://127.0.0.1:18790';\n }\n}\n\nexport function resolveGatewayCredential(opts?: {\n token?: string;\n passwordEnv?: string;\n credential?: GatewayCredential;\n configPath?: string;\n}): GatewayCredential | undefined {\n if (opts?.credential) return opts.credential;\n if (opts?.token && opts.passwordEnv) {\n throw new Error('Use either --token or --password-env, not both.');\n }\n if (opts?.token) return createGatewayCredential('token', opts.token);\n if (opts?.passwordEnv) {\n return createGatewayCredential('password', process.env[opts.passwordEnv]);\n }\n\n const envToken = process.env.XOPC_GATEWAY_TOKEN;\n if (envToken) return createGatewayCredential('token', envToken);\n\n try {\n const configPath = opts?.configPath ?? resolveConfigPath();\n const config = loadConfig(configPath);\n if (config.gateway?.mode === 'remote') {\n const remoteToken = config.gateway.remote?.token?.trim();\n if (remoteToken) return createGatewayCredential('token', remoteToken);\n }\n const auth = config.gateway?.auth;\n return auth?.mode === 'password'\n ? createGatewayCredential('password', auth.password)\n : createGatewayCredential('token', auth?.token);\n } catch {\n return undefined;\n }\n}\n\nexport async function callGatewayApi<T = unknown>(\n method: 'GET' | 'POST' | 'PATCH' | 'DELETE',\n path: string,\n opts?: GatewayClientOptions,\n body?: unknown,\n): Promise<GatewayCallResult<T>> {\n const baseUrl = resolveGatewayUrl(opts);\n const credential = resolveGatewayCredential(opts);\n const timeoutMs = opts?.timeoutMs ?? 10_000;\n const url = `${baseUrl}${path.startsWith('/') ? path : `/${path}`}`;\n\n const headers: Record<string, string> = {\n Accept: 'application/json',\n };\n const authorization = gatewayCredentialAuthorization(credential);\n if (authorization) {\n headers.Authorization = authorization;\n }\n if (body !== undefined) {\n headers['Content-Type'] = 'application/json';\n }\n\n const startedAt = Date.now();\n\n try {\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), timeoutMs);\n\n const response = await fetch(url, {\n method,\n headers,\n body: body !== undefined ? JSON.stringify(body) : undefined,\n signal: controller.signal,\n });\n\n clearTimeout(timer);\n const durationMs = Date.now() - startedAt;\n\n if (!response.ok) {\n let errorMessage: string;\n try {\n const errorBody = (await response.json()) as {\n error?: string;\n message?: string;\n };\n errorMessage = errorBody.error || errorBody.message || response.statusText;\n } catch {\n errorMessage = response.statusText;\n }\n\n log.debug({ url, status: response.status, durationMs }, `Gateway call failed: ${errorMessage}`);\n return {\n ok: false,\n status: response.status,\n error: errorMessage,\n durationMs,\n };\n }\n\n const data = (await response.json()) as T;\n log.debug({ url, status: response.status, durationMs }, 'Gateway call succeeded');\n return { ok: true, status: response.status, data, durationMs };\n } catch (err) {\n const durationMs = Date.now() - startedAt;\n const isAbort = err instanceof Error && err.name === 'AbortError';\n const errorMessage = isAbort\n ? `Request timed out after ${timeoutMs}ms`\n : err instanceof Error\n ? err.message\n : String(err);\n\n log.debug({ url, err, durationMs }, `Gateway call error: ${errorMessage}`);\n return { ok: false, status: 0, error: errorMessage, durationMs };\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"init-workspace-core.js","names":[],"sources":["../../../../src/cli/utils/init-workspace-core.ts"],"sourcesContent":["import { randomBytes } from 'node:crypto';\nimport { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';\nimport { dirname } from 'node:path';\n\nimport type { Config } from '../../config/schema.js';\nimport { ConfigSchema } from '../../config/schema.js';\nimport { saveConfig } from '../../config/loader.js';\nimport { ensureStarterAgentsInitialized } from '../../agent/starter-agents.js';\nimport { runBootstrapMigrationsSync } from '../../migrations/runner.js';\n\nexport interface InitWorkspaceCoreOptions {\n configPath: string;\n workspacePath: string;\n /** When set with a new config file, overrides schema default port (e.g. Electron). */\n gatewayPort?: number;\n /** When true, sets the default agent manifest workspace root to `workspacePath`. */\n persistWorkspacePath?: boolean;\n /** Optional channel plugin validator (CLI/gateway only; Electron omits). */\n assertChannelPlugins?: (cfg: Config) => void | Promise<void>;\n}\n\nexport interface InitWorkspaceResult {\n /** Fully-initialised config (matches disk after any write). */\n config: Config;\n /** Gateway auth token (always present after init). */\n token: string;\n configCreated: boolean;\n workspaceCreated: boolean;\n}\n\nasync function assertChannelPluginsIfNeeded(\n cfg: Config,\n assert?: InitWorkspaceCoreOptions['assertChannelPlugins'],\n): Promise<void> {\n if (assert) await assert(cfg);\n}\n\nasync function serializeConfig(\n cfg: Config,\n assertChannelPlugins?: InitWorkspaceCoreOptions['assertChannelPlugins'],\n): Promise<string> {\n const validated = ConfigSchema.parse(cfg);\n await assertChannelPluginsIfNeeded(validated, assertChannelPlugins);\n return JSON.stringify(validated, null, 2);\n}\n\nasync function tryReadDiskConfig(\n configPath: string,\n assertChannelPlugins?: InitWorkspaceCoreOptions['assertChannelPlugins'],\n): Promise<Config | null> {\n try {\n const raw = readFileSync(configPath, 'utf-8');\n const cfg = ConfigSchema.parse(JSON.parse(raw) as unknown);\n await assertChannelPluginsIfNeeded(cfg, assertChannelPlugins);\n return cfg;\n } catch {\n return null;\n }\n}\n\n/**\n * Workspace + config initialisation without importing bundled channel plugins.\n * Used by Electron main; CLI/gateway should call {@link initWorkspace} instead.\n */\nexport async function initWorkspaceCore(options: InitWorkspaceCoreOptions): Promise<InitWorkspaceResult> {\n const gatewayPortDefaulted = options.gatewayPort ?? 18790;\n const persistWorkspacePath = options.persistWorkspacePath ?? false;\n const { configPath, workspacePath, assertChannelPlugins } = options;\n const persistedWorkspaceRoot = persistWorkspacePath ? workspacePath : undefined;\n\n mkdirSync(dirname(configPath), { recursive: true });\n\n const configExisted = existsSync(configPath);\n if (configExisted) {\n runBootstrapMigrationsSync(configPath, { stateDir: dirname(configPath) });\n }\n const workspaceExisted = existsSync(workspacePath);\n\n let config: Config;\n if (configExisted) {\n config = (await tryReadDiskConfig(configPath, assertChannelPlugins)) ?? ConfigSchema.parse(undefined);\n } else {\n config = ConfigSchema.parse(undefined);\n await assertChannelPluginsIfNeeded(config, assertChannelPlugins);\n }\n\n mkdirSync(workspacePath, { recursive: true });\n\n const configCreated = !configExisted;\n const workspaceCreated = !workspaceExisted;\n\n const hadToken =\n config.gateway?.auth?.mode === 'token' &&\n typeof config.gateway?.auth?.token === 'string' &&\n config.gateway.auth.token.length > 0;\n\n const token = hadToken ? (config.gateway!.auth!.token as string) : randomBytes(24).toString('hex');\n\n const port = configExisted\n ? (config.gateway?.port ?? gatewayPortDefaulted)\n : options.gatewayPort !== undefined\n ? gatewayPortDefaulted\n : (config.gateway?.port ?? 18790);\n\n const defaultAgentId = config.agents.default ?? config.agents.list[0]?.id ?? 'main';\n const agentsList =\n persistedWorkspaceRoot === undefined\n ? config.agents.list\n : config.agents.list.map((agent) =>\n agent.id === defaultAgentId ? { ...agent, workspace: { root: persistedWorkspaceRoot } } : agent,\n );\n\n const nextConfig: Config = {\n ...config,\n agents: {\n ...config.agents,\n list: agentsList,\n },\n gateway: {\n ...config.gateway,\n port,\n auth: {\n ...config.gateway?.auth,\n mode: 'token' as const,\n token,\n },\n },\n };\n\n const starterResult = ensureStarterAgentsInitialized(ConfigSchema.parse(nextConfig));\n const nextFinal = ConfigSchema.parse(starterResult.config);\n await assertChannelPluginsIfNeeded(nextFinal, assertChannelPlugins);\n\n let needsWrite = configCreated || starterResult.changed;\n if (!needsWrite) {\n const disk = await tryReadDiskConfig(configPath, assertChannelPlugins);\n if (!disk) {\n needsWrite = true;\n } else {\n needsWrite =\n (await serializeConfig(disk, assertChannelPlugins)) !==\n (await serializeConfig(nextFinal, assertChannelPlugins));\n }\n }\n\n if (needsWrite) {\n if (assertChannelPlugins) {\n await saveConfig(nextFinal, configPath);\n } else {\n writeFileSync(configPath, `${JSON.stringify(nextFinal, null, 2)}\\n`, 'utf8');\n }\n }\n\n return {\n config: nextFinal,\n token,\n configCreated,\n workspaceCreated,\n };\n}\n"],"mappings":";;;;;;;;aAKsD;aACF;AAwBpD,eAAe,6BACb,KACA,QACe;AACf,KAAI,OAAQ,OAAM,OAAO,IAAI;;AAG/B,eAAe,gBACb,KACA,sBACiB;CACjB,MAAM,YAAY,aAAa,MAAM,IAAI;AACzC,OAAM,6BAA6B,WAAW,qBAAqB;AACnE,QAAO,KAAK,UAAU,WAAW,MAAM,EAAE;;AAG3C,eAAe,kBACb,YACA,sBACwB;AACxB,KAAI;EACF,MAAM,MAAM,aAAa,YAAY,QAAQ;EAC7C,MAAM,MAAM,aAAa,MAAM,KAAK,MAAM,IAAI,CAAY;AAC1D,QAAM,6BAA6B,KAAK,qBAAqB;AAC7D,SAAO;SACD;AACN,SAAO;;;;;;;AAQX,eAAsB,kBAAkB,SAAiE;CACvG,MAAM,uBAAuB,QAAQ,eAAe;CACpD,MAAM,uBAAuB,QAAQ,wBAAwB;CAC7D,MAAM,EAAE,YAAY,eAAe,yBAAyB;CAC5D,MAAM,yBAAyB,uBAAuB,gBAAgB,KAAA;AAEtE,WAAU,QAAQ,WAAW,EAAE,EAAE,WAAW,MAAM,CAAC;CAEnD,MAAM,gBAAgB,WAAW,WAAW;AAC5C,KAAI,cACF,4BAA2B,YAAY,EAAE,UAAU,QAAQ,WAAW,EAAE,CAAC;CAE3E,MAAM,mBAAmB,WAAW,cAAc;CAElD,IAAI;AACJ,KAAI,cACF,UAAU,MAAM,kBAAkB,YAAY,qBAAqB,IAAK,aAAa,MAAM,KAAA,EAAU;MAChG;AACL,WAAS,aAAa,MAAM,KAAA,EAAU;AACtC,QAAM,6BAA6B,QAAQ,qBAAqB;;AAGlE,WAAU,eAAe,EAAE,WAAW,MAAM,CAAC;CAE7C,MAAM,gBAAgB,CAAC;CACvB,MAAM,mBAAmB,CAAC;CAO1B,MAAM,QAJJ,OAAO,SAAS,MAAM,SAAS,WAC/B,OAAO,OAAO,SAAS,MAAM,UAAU,YACvC,OAAO,QAAQ,KAAK,MAAM,SAAS,IAEX,OAAO,QAAS,KAAM,QAAmB,YAAY,GAAG,CAAC,SAAS,MAAM;CAElG,MAAM,OAAO,gBACR,OAAO,SAAS,QAAQ,uBACzB,QAAQ,gBAAgB,KAAA,IACtB,uBACC,OAAO,SAAS,QAAQ;CAE/B,MAAM,iBAAiB,OAAO,OAAO,WAAW,OAAO,OAAO,KAAK,IAAI,MAAM;CAC7E,MAAM,aACJ,2BAA2B,KAAA,IACvB,OAAO,OAAO,OACd,OAAO,OAAO,KAAK,KAAK,UACtB,MAAM,OAAO,iBAAiB;EAAE,GAAG;EAAO,WAAW,EAAE,MAAM,wBAAwB;EAAE,GAAG,MAC3F;CAEP,MAAM,aAAqB;EACzB,GAAG;EACH,QAAQ;GACN,GAAG,OAAO;GACV,MAAM;GACP;EACD,SAAS;GACP,GAAG,OAAO;GACV;GACA,MAAM;IACJ,GAAG,OAAO,SAAS;IACnB,MAAM;IACN;IACD;GACF;EACF;CAED,MAAM,gBAAgB,+BAA+B,aAAa,MAAM,WAAW,CAAC;CACpF,MAAM,YAAY,aAAa,MAAM,cAAc,OAAO;AAC1D,OAAM,6BAA6B,WAAW,qBAAqB;CAEnE,IAAI,aAAa,iBAAiB,cAAc;AAChD,KAAI,CAAC,YAAY;EACf,MAAM,OAAO,MAAM,kBAAkB,YAAY,qBAAqB;AACtE,MAAI,CAAC,KACH,cAAa;MAEb,cACG,MAAM,gBAAgB,MAAM,qBAAqB,KACjD,MAAM,gBAAgB,WAAW,qBAAqB;;AAI7D,KAAI,WACF,KAAI,qBACF,OAAM,WAAW,WAAW,WAAW;KAEvC,eAAc,YAAY,GAAG,KAAK,UAAU,WAAW,MAAM,EAAE,CAAC,KAAK,OAAO;AAIhF,QAAO;EACL,QAAQ;EACR;EACA;EACA;EACD"}
|