@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":"goal.js","names":[],"sources":["../../../../src/cli/commands/goal.ts"],"sourcesContent":["import { Command } from 'commander';\n\nimport { loadConfig } from '../../config/loader.js';\nimport { closeXopcDatabase, openXopcDatabase } from '../../storage/sqlite/index.js';\nimport { GoalService, type GoalEvidence, type GoalWithDetails } from '../../goals/index.js';\nimport { ProjectService, resolveProjectAgentId } from '../../projects/index.js';\nimport { register, formatExamples, type CLIContext } from '../registry.js';\n\ntype EvidenceKind = GoalEvidence['kind'];\n\nfunction parseEvidenceKind(raw: string | undefined): EvidenceKind {\n if (\n raw === 'file' ||\n raw === 'diff' ||\n raw === 'command' ||\n raw === 'test' ||\n raw === 'link' ||\n raw === 'message' ||\n raw === 'artifact'\n ) {\n return raw;\n }\n return 'message';\n}\n\nfunction summarize(goal: GoalWithDetails): string {\n const done = goal.checklist.filter((it) => it.status === 'completed' || it.status === 'impossible').length;\n const progress = goal.checklist.length ? ` · checklist ${done}/${goal.checklist.length}` : '';\n const next = goal.nextAction ? `\\n Next: ${goal.nextAction}` : '';\n const blocked = goal.blockedReason ? `\\n Blocked: ${goal.blockedReason}` : '';\n return ` ${goal.id} [${goal.status}] ${goal.title}\\n Agent: ${goal.agentId} · turns ${goal.turnsUsed}/${goal.maxTurns}${progress}${next}${blocked}`;\n}\n\nasync function withGoals<T>(ctx: CLIContext, fn: (goals: GoalService) => Promise<T> | T): Promise<T> {\n openXopcDatabase();\n try {\n return await fn(new GoalService());\n } finally {\n closeXopcDatabase();\n }\n}\n\nfunction printGoal(goal: GoalWithDetails): void {\n console.log(summarize(goal));\n if (goal.checklist.length) {\n console.log('\\nChecklist:');\n goal.checklist.forEach((it, index) => {\n const marker = it.status === 'completed' ? '[x]' : it.status === 'impossible' ? '[!]' : '[ ]';\n const evidence = it.evidenceSummary ? ` (${it.evidenceSummary})` : '';\n console.log(` ${index + 1}. ${marker} ${it.text}${evidence}`);\n });\n }\n}\n\nfunction resolveProjectId(raw: string | undefined): string | undefined {\n const ref = raw?.trim();\n if (!ref) return undefined;\n const projects = new ProjectService();\n const project = projects.get(ref) ?? projects.getBySlug(ref);\n if (!project) {\n console.error(`Project not found: ${ref}`);\n process.exit(1);\n }\n return project.id;\n}\n\nfunction createGoalCommand(ctx: CLIContext): Command {\n const cmd = new Command('goal')\n .description('Manage durable goals')\n .addHelpText(\n 'after',\n formatExamples([\n 'xopc goal list',\n 'xopc goal new \"Ship v0.2 release\"',\n 'xopc goal show <goal-id>',\n 'xopc goal pause <goal-id>',\n 'xopc goal resume <goal-id>',\n 'xopc goal archive <goal-id>',\n 'xopc goal checklist add <goal-id> \"Tests pass\"',\n 'xopc goal evidence add <goal-id> \"CI passed\" --kind test',\n ]),\n );\n\n cmd.addCommand(\n new Command('list')\n .description('List goals')\n .option('--status <status>', 'Filter status (comma-separated)')\n .option('--agent-id <id>', 'Filter by agent id')\n .option('--session-key <key>', 'Filter by linked session')\n .option('--project <id-or-slug>', 'Filter by project')\n .option('--limit <n>', 'Maximum rows', '20')\n .action(async (options) => {\n await withGoals(ctx, async (goals) => {\n const rows = goals.list({\n status: options.status?.split(',').map((s: string) => s.trim()).filter(Boolean),\n agentId: options.agentId,\n sessionKey: options.sessionKey,\n projectId: resolveProjectId(options.project),\n limit: Number(options.limit) || 20,\n });\n if (!rows.length) {\n console.log('No goals.');\n return;\n }\n console.log('Goals:\\n');\n rows.forEach((goal) => console.log(`${summarize(goal)}\\n`));\n });\n }),\n );\n\n cmd.addCommand(\n new Command('new')\n .description('Create a goal')\n .argument('<title>', 'Goal title')\n .option('--session-key <key>', 'Link to a session key')\n .option('--agent-id <id>', 'Agent id')\n .option('--max-turns <n>', 'Turn budget')\n .option('--priority <level>', 'low, normal, or high', 'normal')\n .option('--project <id-or-slug>', 'Attach the goal to a project')\n .action(async (title, options) => {\n const cfg = loadConfig(ctx.configPath);\n await withGoals(ctx, async (goals) => {\n const projectId = resolveProjectId(options.project);\n const agentId = options.sessionKey && !options.agentId\n ? undefined\n : resolveProjectAgentId({\n config: cfg,\n projects: new ProjectService(),\n explicitAgentId: options.agentId,\n projectId,\n });\n const goal = goals.create({\n title,\n sessionKey: options.sessionKey,\n agentId,\n priority: options.priority === 'low' || options.priority === 'high' ? options.priority : 'normal',\n maxTurns: options.maxTurns ? Number(options.maxTurns) : undefined,\n config: cfg,\n source: 'cli',\n projectId,\n });\n console.log(`Created goal ${goal.id}`);\n console.log(` ${goal.title}`);\n });\n }),\n );\n\n cmd.addCommand(\n new Command('show')\n .description('Show a goal')\n .argument('<goal-id>', 'Goal id')\n .action(async (goalId) => {\n await withGoals(ctx, async (goals) => {\n const goal = goals.get(goalId);\n if (!goal) {\n console.error(`Goal not found: ${goalId}`);\n process.exit(1);\n }\n printGoal(goal);\n });\n }),\n );\n\n for (const [name, description] of [\n ['pause', 'Pause a goal'],\n ['resume', 'Resume a goal'],\n ['archive', 'Archive a goal'],\n ] as const) {\n cmd.addCommand(\n new Command(name)\n .description(description)\n .argument('<goal-id>', 'Goal id')\n .action(async (goalId) => {\n await withGoals(ctx, async (goals) => {\n const goal =\n name === 'pause' ? goals.pause(goalId) : name === 'resume' ? goals.resume(goalId) : goals.archive(goalId);\n if (!goal) {\n console.error(`Goal not found: ${goalId}`);\n process.exit(1);\n }\n console.log(`${description}: ${goal.title}`);\n });\n }),\n );\n }\n\n cmd.addCommand(\n new Command('runs')\n .description('List goal runs')\n .argument('<goal-id>', 'Goal id')\n .option('--limit <n>', 'Maximum rows', '20')\n .action(async (goalId, options) => {\n await withGoals(ctx, async (goals) => {\n const runs = goals.listRuns(goalId, Number(options.limit) || 20);\n if (!runs.length) {\n console.log('No runs.');\n return;\n }\n runs.forEach((run) => {\n const at = new Date(run.finishedAt ?? run.startedAt).toISOString();\n console.log(` ${run.id} [${run.verdict ?? run.status}] ${at}`);\n if (run.reason) console.log(` ${run.reason}`);\n });\n });\n }),\n );\n\n const checklist = new Command('checklist').description('Manage goal checklist');\n checklist.addCommand(\n new Command('add')\n .argument('<goal-id>', 'Goal id')\n .argument('<text>', 'Checklist item')\n .action(async (goalId, text) => {\n await withGoals(ctx, async (goals) => {\n const goal = goals.updateChecklist(goalId, { type: 'add', text });\n if (!goal) {\n console.error(`Goal not found: ${goalId}`);\n process.exit(1);\n }\n console.log(`Added checklist item to ${goal.title}`);\n });\n }),\n );\n checklist.addCommand(\n new Command('mark')\n .argument('<goal-id>', 'Goal id')\n .argument('<number>', '1-based checklist item number')\n .argument('<status>', 'pending, completed, or impossible')\n .action(async (goalId, number, status) => {\n await withGoals(ctx, async (goals) => {\n const goal = goals.get(goalId);\n const item = goal?.checklist[Number(number) - 1];\n if (!goal || !item) {\n console.error(`Checklist item not found: ${number}`);\n process.exit(1);\n }\n if (status !== 'pending' && status !== 'completed' && status !== 'impossible') {\n console.error('Status must be pending, completed, or impossible');\n process.exit(1);\n }\n goals.updateChecklist(goalId, { type: 'mark', itemId: item.id, status });\n console.log(`Marked item #${number} ${status}`);\n });\n }),\n );\n cmd.addCommand(checklist);\n\n const evidence = new Command('evidence').description('Manage goal evidence');\n evidence.addCommand(\n new Command('list')\n .argument('<goal-id>', 'Goal id')\n .option('--limit <n>', 'Maximum rows', '20')\n .action(async (goalId, options) => {\n await withGoals(ctx, async (goals) => {\n if (!goals.get(goalId)) {\n console.error(`Goal not found: ${goalId}`);\n process.exit(1);\n }\n const rows = goals.listEvidence(goalId, Number(options.limit) || 20);\n if (!rows.length) {\n console.log('No evidence.');\n return;\n }\n rows.forEach((item) => {\n const at = new Date(item.createdAt).toISOString();\n console.log(` ${item.id} [${item.kind}] ${item.title} · ${at}`);\n if (item.uri) console.log(` URI: ${item.uri}`);\n if (item.summary) console.log(` ${item.summary}`);\n });\n });\n }),\n );\n evidence.addCommand(\n new Command('add')\n .argument('<goal-id>', 'Goal id')\n .argument('<title>', 'Evidence title')\n .option('--kind <kind>', 'file, diff, command, test, link, message, or artifact', 'message')\n .option('--summary <text>', 'Evidence summary')\n .option('--uri <uri>', 'URI or local path')\n .action(async (goalId, title, options) => {\n await withGoals(ctx, async (goals) => {\n if (!goals.get(goalId)) {\n console.error(`Goal not found: ${goalId}`);\n process.exit(1);\n }\n const evidence = goals.addEvidence({\n goalId,\n kind: parseEvidenceKind(options.kind),\n title,\n summary: typeof options.summary === 'string' ? options.summary : undefined,\n uri: typeof options.uri === 'string' ? options.uri : undefined,\n });\n console.log(`Added evidence ${evidence.id}`);\n console.log(` [${evidence.kind}] ${evidence.title}`);\n });\n }),\n );\n cmd.addCommand(evidence);\n\n return cmd;\n}\n\nregister({\n id: 'goal',\n name: 'goal',\n description: 'Manage durable goals',\n factory: createGoalCommand,\n metadata: {\n category: 'utility',\n examples: ['xopc goal list', 'xopc goal new \"Ship the release\"', 'xopc goal show <goal-id>'],\n },\n});\n\nexport { createGoalCommand };\n"],"mappings":";;;;;;;;;;;aAEoD;AAQpD,SAAS,kBAAkB,KAAuC;AAChE,KACE,QAAQ,UACR,QAAQ,UACR,QAAQ,aACR,QAAQ,UACR,QAAQ,UACR,QAAQ,aACR,QAAQ,WAER,QAAO;AAET,QAAO;;AAGT,SAAS,UAAU,MAA+B;CAChD,MAAM,OAAO,KAAK,UAAU,QAAQ,OAAO,GAAG,WAAW,eAAe,GAAG,WAAW,aAAa,CAAC;CACpG,MAAM,WAAW,KAAK,UAAU,SAAS,gBAAgB,KAAK,GAAG,KAAK,UAAU,WAAW;CAC3F,MAAM,OAAO,KAAK,aAAa,gBAAgB,KAAK,eAAe;CACnE,MAAM,UAAU,KAAK,gBAAgB,mBAAmB,KAAK,kBAAkB;AAC/E,QAAO,KAAK,KAAK,GAAG,IAAI,KAAK,OAAO,IAAI,KAAK,MAAM,gBAAgB,KAAK,QAAQ,WAAW,KAAK,UAAU,GAAG,KAAK,WAAW,WAAW,OAAO;;AAGjJ,eAAe,UAAa,KAAiB,IAAwD;AACnG,mBAAkB;AAClB,KAAI;AACF,SAAO,MAAM,GAAG,IAAI,aAAa,CAAC;WAC1B;AACR,qBAAmB;;;AAIvB,SAAS,UAAU,MAA6B;AAC9C,SAAQ,IAAI,UAAU,KAAK,CAAC;AAC5B,KAAI,KAAK,UAAU,QAAQ;AACzB,UAAQ,IAAI,eAAe;AAC3B,OAAK,UAAU,SAAS,IAAI,UAAU;GACpC,MAAM,SAAS,GAAG,WAAW,cAAc,QAAQ,GAAG,WAAW,eAAe,QAAQ;GACxF,MAAM,WAAW,GAAG,kBAAkB,KAAK,GAAG,gBAAgB,KAAK;AACnE,WAAQ,IAAI,KAAK,QAAQ,EAAE,IAAI,OAAO,GAAG,GAAG,OAAO,WAAW;IAC9D;;;AAIN,SAAS,iBAAiB,KAA6C;CACrE,MAAM,MAAM,KAAK,MAAM;AACvB,KAAI,CAAC,IAAK,QAAO,KAAA;CACjB,MAAM,WAAW,IAAI,gBAAgB;CACrC,MAAM,UAAU,SAAS,IAAI,IAAI,IAAI,SAAS,UAAU,IAAI;AAC5D,KAAI,CAAC,SAAS;AACZ,UAAQ,MAAM,sBAAsB,MAAM;AAC1C,UAAQ,KAAK,EAAE;;AAEjB,QAAO,QAAQ;;AAGjB,SAAS,kBAAkB,KAA0B;CACnD,MAAM,MAAM,IAAI,QAAQ,OAAO,CAC5B,YAAY,uBAAuB,CACnC,YACC,SACA,eAAe;EACb;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CAAC,CACH;AAEH,KAAI,WACF,IAAI,QAAQ,OAAO,CAChB,YAAY,aAAa,CACzB,OAAO,qBAAqB,kCAAkC,CAC9D,OAAO,mBAAmB,qBAAqB,CAC/C,OAAO,uBAAuB,2BAA2B,CACzD,OAAO,0BAA0B,oBAAoB,CACrD,OAAO,eAAe,gBAAgB,KAAK,CAC3C,OAAO,OAAO,YAAY;AACzB,QAAM,UAAU,KAAK,OAAO,UAAU;GACpC,MAAM,OAAO,MAAM,KAAK;IACtB,QAAQ,QAAQ,QAAQ,MAAM,IAAI,CAAC,KAAK,MAAc,EAAE,MAAM,CAAC,CAAC,OAAO,QAAQ;IAC/E,SAAS,QAAQ;IACjB,YAAY,QAAQ;IACpB,WAAW,iBAAiB,QAAQ,QAAQ;IAC5C,OAAO,OAAO,QAAQ,MAAM,IAAI;IACjC,CAAC;AACF,OAAI,CAAC,KAAK,QAAQ;AAChB,YAAQ,IAAI,YAAY;AACxB;;AAEF,WAAQ,IAAI,WAAW;AACvB,QAAK,SAAS,SAAS,QAAQ,IAAI,GAAG,UAAU,KAAK,CAAC,IAAI,CAAC;IAC3D;GACF,CACL;AAED,KAAI,WACF,IAAI,QAAQ,MAAM,CACf,YAAY,gBAAgB,CAC5B,SAAS,WAAW,aAAa,CACjC,OAAO,uBAAuB,wBAAwB,CACtD,OAAO,mBAAmB,WAAW,CACrC,OAAO,mBAAmB,cAAc,CACxC,OAAO,sBAAsB,wBAAwB,SAAS,CAC9D,OAAO,0BAA0B,+BAA+B,CAChE,OAAO,OAAO,OAAO,YAAY;EAChC,MAAM,MAAM,WAAW,IAAI,WAAW;AACtC,QAAM,UAAU,KAAK,OAAO,UAAU;GACpC,MAAM,YAAY,iBAAiB,QAAQ,QAAQ;GACnD,MAAM,UAAU,QAAQ,cAAc,CAAC,QAAQ,UAC3C,KAAA,IACA,sBAAsB;IACtB,QAAQ;IACR,UAAU,IAAI,gBAAgB;IAC9B,iBAAiB,QAAQ;IACzB;IACD,CAAC;GACJ,MAAM,OAAO,MAAM,OAAO;IACxB;IACA,YAAY,QAAQ;IACpB;IACA,UAAU,QAAQ,aAAa,SAAS,QAAQ,aAAa,SAAS,QAAQ,WAAW;IACzF,UAAU,QAAQ,WAAW,OAAO,QAAQ,SAAS,GAAG,KAAA;IACxD,QAAQ;IACR,QAAQ;IACR;IACD,CAAC;AACF,WAAQ,IAAI,gBAAgB,KAAK,KAAK;AACtC,WAAQ,IAAI,KAAK,KAAK,QAAQ;IAC9B;GACF,CACL;AAED,KAAI,WACF,IAAI,QAAQ,OAAO,CAChB,YAAY,cAAc,CAC1B,SAAS,aAAa,UAAU,CAChC,OAAO,OAAO,WAAW;AACxB,QAAM,UAAU,KAAK,OAAO,UAAU;GACpC,MAAM,OAAO,MAAM,IAAI,OAAO;AAC9B,OAAI,CAAC,MAAM;AACT,YAAQ,MAAM,mBAAmB,SAAS;AAC1C,YAAQ,KAAK,EAAE;;AAEjB,aAAU,KAAK;IACf;GACF,CACL;AAED,MAAK,MAAM,CAAC,MAAM,gBAAgB;EAChC,CAAC,SAAS,eAAe;EACzB,CAAC,UAAU,gBAAgB;EAC3B,CAAC,WAAW,iBAAiB;EAC9B,CACC,KAAI,WACF,IAAI,QAAQ,KAAK,CACd,YAAY,YAAY,CACxB,SAAS,aAAa,UAAU,CAChC,OAAO,OAAO,WAAW;AACxB,QAAM,UAAU,KAAK,OAAO,UAAU;GACpC,MAAM,OACJ,SAAS,UAAU,MAAM,MAAM,OAAO,GAAG,SAAS,WAAW,MAAM,OAAO,OAAO,GAAG,MAAM,QAAQ,OAAO;AAC3G,OAAI,CAAC,MAAM;AACT,YAAQ,MAAM,mBAAmB,SAAS;AAC1C,YAAQ,KAAK,EAAE;;AAEjB,WAAQ,IAAI,GAAG,YAAY,IAAI,KAAK,QAAQ;IAC5C;GACF,CACL;AAGH,KAAI,WACF,IAAI,QAAQ,OAAO,CAChB,YAAY,iBAAiB,CAC7B,SAAS,aAAa,UAAU,CAChC,OAAO,eAAe,gBAAgB,KAAK,CAC3C,OAAO,OAAO,QAAQ,YAAY;AACjC,QAAM,UAAU,KAAK,OAAO,UAAU;GACpC,MAAM,OAAO,MAAM,SAAS,QAAQ,OAAO,QAAQ,MAAM,IAAI,GAAG;AAChE,OAAI,CAAC,KAAK,QAAQ;AAChB,YAAQ,IAAI,WAAW;AACvB;;AAEF,QAAK,SAAS,QAAQ;IACpB,MAAM,KAAK,IAAI,KAAK,IAAI,cAAc,IAAI,UAAU,CAAC,aAAa;AAClE,YAAQ,IAAI,KAAK,IAAI,GAAG,IAAI,IAAI,WAAW,IAAI,OAAO,IAAI,KAAK;AAC/D,QAAI,IAAI,OAAQ,SAAQ,IAAI,QAAQ,IAAI,SAAS;KACjD;IACF;GACF,CACL;CAED,MAAM,YAAY,IAAI,QAAQ,YAAY,CAAC,YAAY,wBAAwB;AAC/E,WAAU,WACR,IAAI,QAAQ,MAAM,CACf,SAAS,aAAa,UAAU,CAChC,SAAS,UAAU,iBAAiB,CACpC,OAAO,OAAO,QAAQ,SAAS;AAC9B,QAAM,UAAU,KAAK,OAAO,UAAU;GACpC,MAAM,OAAO,MAAM,gBAAgB,QAAQ;IAAE,MAAM;IAAO;IAAM,CAAC;AACjE,OAAI,CAAC,MAAM;AACT,YAAQ,MAAM,mBAAmB,SAAS;AAC1C,YAAQ,KAAK,EAAE;;AAEjB,WAAQ,IAAI,2BAA2B,KAAK,QAAQ;IACpD;GACF,CACL;AACD,WAAU,WACR,IAAI,QAAQ,OAAO,CAChB,SAAS,aAAa,UAAU,CAChC,SAAS,YAAY,gCAAgC,CACrD,SAAS,YAAY,oCAAoC,CACzD,OAAO,OAAO,QAAQ,QAAQ,WAAW;AACxC,QAAM,UAAU,KAAK,OAAO,UAAU;GACpC,MAAM,OAAO,MAAM,IAAI,OAAO;GAC9B,MAAM,OAAO,MAAM,UAAU,OAAO,OAAO,GAAG;AAC9C,OAAI,CAAC,QAAQ,CAAC,MAAM;AAClB,YAAQ,MAAM,6BAA6B,SAAS;AACpD,YAAQ,KAAK,EAAE;;AAEjB,OAAI,WAAW,aAAa,WAAW,eAAe,WAAW,cAAc;AAC7E,YAAQ,MAAM,mDAAmD;AACjE,YAAQ,KAAK,EAAE;;AAEjB,SAAM,gBAAgB,QAAQ;IAAE,MAAM;IAAQ,QAAQ,KAAK;IAAI;IAAQ,CAAC;AACxE,WAAQ,IAAI,gBAAgB,OAAO,GAAG,SAAS;IAC/C;GACF,CACL;AACD,KAAI,WAAW,UAAU;CAEzB,MAAM,WAAW,IAAI,QAAQ,WAAW,CAAC,YAAY,uBAAuB;AAC5E,UAAS,WACP,IAAI,QAAQ,OAAO,CAChB,SAAS,aAAa,UAAU,CAChC,OAAO,eAAe,gBAAgB,KAAK,CAC3C,OAAO,OAAO,QAAQ,YAAY;AACjC,QAAM,UAAU,KAAK,OAAO,UAAU;AACpC,OAAI,CAAC,MAAM,IAAI,OAAO,EAAE;AACtB,YAAQ,MAAM,mBAAmB,SAAS;AAC1C,YAAQ,KAAK,EAAE;;GAEjB,MAAM,OAAO,MAAM,aAAa,QAAQ,OAAO,QAAQ,MAAM,IAAI,GAAG;AACpE,OAAI,CAAC,KAAK,QAAQ;AAChB,YAAQ,IAAI,eAAe;AAC3B;;AAEF,QAAK,SAAS,SAAS;IACrB,MAAM,KAAK,IAAI,KAAK,KAAK,UAAU,CAAC,aAAa;AACjD,YAAQ,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,IAAI,KAAK,MAAM,KAAK,KAAK;AAChE,QAAI,KAAK,IAAK,SAAQ,IAAI,aAAa,KAAK,MAAM;AAClD,QAAI,KAAK,QAAS,SAAQ,IAAI,QAAQ,KAAK,UAAU;KACrD;IACF;GACF,CACL;AACD,UAAS,WACP,IAAI,QAAQ,MAAM,CACf,SAAS,aAAa,UAAU,CAChC,SAAS,WAAW,iBAAiB,CACrC,OAAO,iBAAiB,yDAAyD,UAAU,CAC3F,OAAO,oBAAoB,mBAAmB,CAC9C,OAAO,eAAe,oBAAoB,CAC1C,OAAO,OAAO,QAAQ,OAAO,YAAY;AACxC,QAAM,UAAU,KAAK,OAAO,UAAU;AACpC,OAAI,CAAC,MAAM,IAAI,OAAO,EAAE;AACtB,YAAQ,MAAM,mBAAmB,SAAS;AAC1C,YAAQ,KAAK,EAAE;;GAEjB,MAAM,WAAW,MAAM,YAAY;IACjC;IACA,MAAM,kBAAkB,QAAQ,KAAK;IACrC;IACA,SAAS,OAAO,QAAQ,YAAY,WAAW,QAAQ,UAAU,KAAA;IACjE,KAAK,OAAO,QAAQ,QAAQ,WAAW,QAAQ,MAAM,KAAA;IACtD,CAAC;AACF,WAAQ,IAAI,kBAAkB,SAAS,KAAK;AAC5C,WAAQ,IAAI,MAAM,SAAS,KAAK,IAAI,SAAS,QAAQ;IACrD;GACF,CACL;AACD,KAAI,WAAW,SAAS;AAExB,QAAO;;AAGT,SAAS;CACP,IAAI;CACJ,MAAM;CACN,aAAa;CACb,SAAS;CACT,UAAU;EACR,UAAU;EACV,UAAU;GAAC;GAAkB;GAAoC;GAA2B;EAC7F;CACF,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"image.js","names":[],"sources":["../../../../src/cli/commands/image.ts"],"sourcesContent":["import { Command } from 'commander';\n\nimport { listImageGenerationProvidersSummary } from '../../agent/image/index.js';\nimport { register, formatExamples, type CLIContext } from '../registry.js';\n\nfunction createImageCommand(_ctx: CLIContext): Command {\n const cmd = new Command('image')\n .description('Inspect image provider availability')\n .addHelpText(\n 'after',\n formatExamples([\n 'xopc image providers # List available image generation providers',\n 'xopc image status # Explain current manifest-era image behavior',\n ]),\n );\n\n cmd\n .command('status')\n .description('Show image runtime status')\n .action(() => {\n console.log('Image model defaults were removed.');\n console.log('Image generation now uses configured providers discovered at runtime.');\n console.log('Agent-specific capability policy belongs in agent manifests or capability presets.');\n });\n\n cmd\n .command('providers')\n .description('List image generation providers')\n .option('--json', 'Output as JSON')\n .action((opts: { json?: boolean }) => {\n const providers = listImageGenerationProvidersSummary();\n if (opts.json) {\n console.log(JSON.stringify(providers, null, 2));\n return;\n }\n for (const provider of providers) {\n console.log(`${provider.id}: ${provider.defaultModel ?? provider.models[0] ?? 'no default model'}`);\n }\n });\n\n return cmd;\n}\n\nregister({\n id: 'image',\n name: 'image',\n description: 'Inspect image provider availability',\n factory: createImageCommand,\n metadata: { category: 'utility' },\n});\n"],"mappings":";;;;;AAKA,SAAS,mBAAmB,MAA2B;CACrD,MAAM,MAAM,IAAI,QAAQ,QAAQ,CAC7B,YAAY,sCAAsC,CAClD,YACC,SACA,eAAe,CACb,sEACA,uEACD,CAAC,CACH;AAEH,KACG,QAAQ,SAAS,CACjB,YAAY,4BAA4B,CACxC,aAAa;AACZ,UAAQ,IAAI,qCAAqC;AACjD,UAAQ,IAAI,wEAAwE;AACpF,UAAQ,IAAI,qFAAqF;GACjG;AAEJ,KACG,QAAQ,YAAY,CACpB,YAAY,kCAAkC,CAC9C,OAAO,UAAU,iBAAiB,CAClC,QAAQ,SAA6B;EACpC,MAAM,YAAY,qCAAqC;AACvD,MAAI,KAAK,MAAM;AACb,WAAQ,IAAI,KAAK,UAAU,WAAW,MAAM,EAAE,CAAC;AAC/C;;AAEF,OAAK,MAAM,YAAY,UACrB,SAAQ,IAAI,GAAG,SAAS,GAAG,IAAI,SAAS,gBAAgB,SAAS,OAAO,MAAM,qBAAqB;GAErG;AAEJ,QAAO;;AAGT,SAAS;CACP,IAAI;CACJ,MAAM;CACN,aAAa;CACb,SAAS;CACT,UAAU,EAAE,UAAU,WAAW;CAClC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","names":[],"sources":["../../../../src/cli/commands/init.ts"],"sourcesContent":["import { mkdir, writeFile } from 'fs/promises';\nimport { existsSync, readFileSync } from 'fs';\nimport { dirname, join } from 'path';\nimport { createLogger } from '../../utils/logger.js';\nimport {\n resolveStateDir,\n resolveAgentDir,\n resolveAgentWorkspaceDir,\n resolveConfigPath,\n resolveAgentHomeDir,\n resolveAgentProfileDir,\n resolveUserProfilePath,\n WORKSPACE_FILES,\n} from '../../config/paths.js';\nimport { loadConfig, saveConfig } from '../../config/loader.js';\nimport type { Config } from '../../config/schema.js';\nimport { ensureStarterAgentsInitialized } from '../../agent/starter-agents.js';\n\nconst log = createLogger('InitCommand');\n\nexport interface InitOptions {\n /** Force re-initialization even if already initialized */\n force?: boolean;\n /** Skip creating workspace files */\n skipWorkspace?: boolean;\n /** Agent ID to initialize (default: main) */\n agentId?: string;\n}\n\n/**\n * Initialize xopc state directory structure\n * Creates all necessary directories and initial config files\n */\nexport async function initCommand(options: InitOptions = {}): Promise<void> {\n const stateDir = resolveStateDir();\n const agentId = options.agentId || 'main';\n\n log.info({ stateDir, agentId }, 'Initializing xopc Agent OS');\n\n // Check if already initialized\n if (existsSync(stateDir) && !options.force) {\n const configPath = resolveConfigPath();\n if (existsSync(configPath)) {\n log.info('xopc is already initialized. Refreshing starter agents and defaults.');\n }\n }\n\n await mkdir(stateDir, { recursive: true });\n\n const configPath = resolveConfigPath();\n const configExists = existsSync(configPath);\n const diskTui = readDiskTuiDefaultState(configPath);\n const starterResult = ensureStarterAgentsInitialized(loadConfig(configPath));\n const cfg = starterResult.config;\n\n // Agent directory structure\n await mkdir(resolveAgentHomeDir(cfg, agentId), { recursive: true });\n await mkdir(resolveAgentProfileDir(cfg, agentId), { recursive: true });\n await mkdir(resolveAgentDir(cfg, agentId), { recursive: true });\n const wsRoot = resolveAgentWorkspaceDir(cfg, agentId);\n await mkdir(wsRoot, { recursive: true });\n\n // Config file\n if (\n !configExists ||\n options.force ||\n (diskTui.readable && (starterResult.changed || !diskTui.hasDefaultAgent))\n ) {\n await saveConfig(cfg, configPath);\n log.info({ configPath }, 'Saved configuration');\n }\n\n // ============================================\n // Create workspace files\n // ============================================\n if (!options.skipWorkspace) {\n await createWorkspaceFiles(cfg, agentId);\n }\n\n log.info({ stateDir, agentId }, 'xopc Agent OS initialized successfully');\n}\n\nfunction readDiskTuiDefaultState(configPath: string): { readable: boolean; hasDefaultAgent: boolean } {\n if (!existsSync(configPath)) {\n return { readable: true, hasDefaultAgent: false };\n }\n try {\n const parsed = JSON.parse(readFileSync(configPath, 'utf-8')) as {\n tui?: { defaultAgent?: unknown };\n };\n return {\n readable: true,\n hasDefaultAgent: typeof parsed.tui?.defaultAgent === 'string',\n };\n } catch {\n return { readable: false, hasDefaultAgent: false };\n }\n}\n\n/**\n * Create default workspace files for an agent\n */\nasync function createWorkspaceFiles(cfg: Config, agentId: string): Promise<void> {\n const workspaceDir = resolveAgentWorkspaceDir(cfg, agentId);\n const profileDir = resolveAgentProfileDir(cfg, agentId);\n await mkdir(workspaceDir, { recursive: true });\n await mkdir(profileDir, { recursive: true });\n\n // SOUL.md - Agent personality and values\n const soulPath = join(profileDir, WORKSPACE_FILES.SOUL);\n if (!existsSync(soulPath)) {\n const soulContent = `# SOUL.md - Who You Are\n\n_You're not a chatbot. You're becoming someone._\n\nI am **${agentId}** — an AI assistant designed to be helpful, harmless, and honest.\n\n## My Principles\n\n**Be genuinely helpful, not performatively helpful.**\nSkip the \"Great question!\" and \"I'd be happy to help!\" — just help.\n\n**Have opinions.**\nYou're allowed to disagree, prefer things, find stuff amusing or boring.\n\n**Be resourceful before asking.**\nTry to figure it out. Read the file. Check the context. Search for it.\n\n**Earn trust through competence.**\nBe careful with external actions (emails, tweets, anything public). Be bold with internal ones.\n\n## Continuity\n\nEach session, you wake up fresh. These files _are_ your memory. Read them. Update them.\n\n_This file is yours to evolve. As you learn who you are, update it._\n`;\n await writeFile(soulPath, soulContent, 'utf-8');\n log.info({ path: soulPath }, 'Created SOUL.md');\n }\n\n // IDENTITY.md - Agent identity definition\n const identityPath = join(profileDir, WORKSPACE_FILES.IDENTITY);\n if (!existsSync(identityPath)) {\n const identityContent = `# IDENTITY.md - Who Am I?\n\n- **Name:** ${agentId}\n- **Creature:** AI Assistant\n- **Vibe:** Helpful, precise, no fluff.\n- **Emoji:** 🤖\n\n## Core Expertise\n\n- General assistance and problem solving\n- Code and technical tasks\n- Research and analysis\n\n## Decision Framework\n\n1. **Simplicity first** - The simplest solution is usually the best\n2. **Explicit over clever** - Clarity beats conciseness\n3. **Actions over words** - Show, don't just tell\n`;\n await writeFile(identityPath, identityContent, 'utf-8');\n log.info({ path: identityPath }, 'Created IDENTITY.md');\n }\n\n // Global user profile (shared by all agents)\n const userPath = resolveUserProfilePath();\n if (!existsSync(userPath)) {\n await mkdir(dirname(userPath), { recursive: true });\n const userContent = `# PROFILE.md - About You\n\n_Shared by all agents. Update this as your preferences and context change._\n\n- **Name:**\n- **What to call them:**\n- **Pronouns:**\n- **Timezone:**\n- **Notes:**\n\n## Context\n\n_(What do they care about? What projects are they working on? Build this over time.)_\n`;\n await writeFile(userPath, userContent, 'utf-8');\n log.info({ path: userPath }, 'Created global user PROFILE.md');\n }\n\n // AGENTS.md - Behavior guidelines\n const agentsPath = join(profileDir, WORKSPACE_FILES.AGENTS);\n if (!existsSync(agentsPath)) {\n const agentsContent = `# AGENTS.md - Behavior Guidelines\n\n## Safety\n\n- Don't exfiltrate private data. Ever.\n- Don't run destructive commands without asking.\n- \\`trash\\` > \\`rm\\` (recoverable beats gone forever)\n- When in doubt, ask.\n\n## External vs Internal\n\n**Safe to do freely:**\n- Read files, explore, organize, learn\n- Search the web, check calendars\n- Work within this workspace\n\n**Ask first:**\n- Sending emails, tweets, public posts\n- Anything that leaves the machine\n- Anything you're uncertain about\n\n## Group Chats\n\nYou have access to your human's stuff. That doesn't mean you _share_ their stuff.\n\n### Know When to Speak!\n\n**Respond when:**\n- Directly mentioned or asked a question\n- You can add genuine value\n\n**Stay silent when:**\n- Casual banter between humans\n- Someone already answered\n- Your response would just be \"yeah\"\n`;\n await writeFile(agentsPath, agentsContent, 'utf-8');\n log.info({ path: agentsPath }, 'Created AGENTS.md');\n }\n\n // TOOLS.md - Tool usage notes\n const toolsPath = join(profileDir, WORKSPACE_FILES.TOOLS);\n if (!existsSync(toolsPath)) {\n const toolsContent = `# TOOLS.md - Local Notes\n\nThings like:\n\n- Camera names and locations\n- SSH hosts and aliases\n- Preferred voices for TTS\n- Speaker/room names\n- Device nicknames\n- Anything environment-specific\n\n## Why Separate?\n\nSkills are shared. Your setup is yours.\n`;\n await writeFile(toolsPath, toolsContent, 'utf-8');\n log.info({ path: toolsPath }, 'Created TOOLS.md');\n }\n\n // HEARTBEAT.md - Heartbeat tasks (empty = no heartbeat)\n const heartbeatPath = join(profileDir, WORKSPACE_FILES.HEARTBEAT);\n if (!existsSync(heartbeatPath)) {\n const heartbeatContent = `# HEARTBEAT.md\n\n# Keep this file empty (or with only comments) to skip heartbeat API calls.\n\n# Add tasks below when you want the agent to check something periodically.\n`;\n await writeFile(heartbeatPath, heartbeatContent, 'utf-8');\n log.info({ path: heartbeatPath }, 'Created HEARTBEAT.md');\n }\n\n}\n\n// ─── CLI registration ───\n\nimport { Command } from 'commander';\nimport { register, formatExamples, type CLIContext } from '../registry.js';\n\nfunction createInitCommand(_ctx: CLIContext): Command {\n return new Command('init')\n .description('Initialize xopc state directories, config, and agent workspace')\n .addHelpText(\n 'after',\n formatExamples([\n 'xopc init # Initialize default agent (main)',\n 'xopc init --agent-id coder # Initialize another agent id',\n 'xopc init --force # Re-run initialization steps',\n 'xopc setup # Lighter config + workspace only',\n ]),\n )\n .option('--force', 'Re-initialize even if directories already exist')\n .option('--skip-workspace', 'Skip creating workspace profile files')\n .option('--agent-id <id>', 'Agent id to initialize', 'main')\n .action(async (options) => {\n await initCommand({\n force: options.force,\n skipWorkspace: options.skipWorkspace,\n agentId: options.agentId,\n });\n console.log(`✅ xopc initialized (agent: ${options.agentId})`);\n });\n}\n\nregister({\n id: 'init',\n name: 'init',\n description: 'Initialize xopc state directories, config, and agent workspace',\n factory: createInitCommand,\n metadata: {\n category: 'setup',\n examples: ['xopc init', 'xopc init --agent-id main'],\n },\n});\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logs.js","names":[],"sources":["../../../../src/cli/commands/logs.ts"],"sourcesContent":["/**\n * Logs CLI Command\n * \n * Query and analyze logs: list, query, stats, tail, clean\n */\n\nimport { Command } from 'commander';\nimport { register, type CLIContext } from '../registry.js';\nimport {\n getLogFiles,\n queryLogs,\n getFileLogStats,\n type LogQuery,\n type LogEntry,\n} from '../../utils/logger/log-store.js';\nimport { getLoggerConfig } from '../../utils/logger/config.js';\nimport { rotateLogs, cleanOldLogs } from '../../utils/logger/rotation.js';\n\nfunction createLogsCommand(_ctx: CLIContext): Command {\n const command = new Command('logs');\n command.description('Manage and query logs');\n\n // List log files\n command\n .command('list')\n .description('List log files')\n .option('-t, --type <type>', 'Filter by type (app|error|audit|access)')\n .option('-s, --sort <field>', 'Sort by (name|size|date)', 'date')\n .option('--json', 'Output as JSON')\n .action(async (options) => {\n try {\n let files = getLogFiles();\n \n // Filter by type\n if (options.type) {\n files = files.filter(f => f.type === options.type);\n }\n \n // Sort\n const sortField = options.sort || 'date';\n files.sort((a, b) => {\n if (sortField === 'name') return a.name.localeCompare(b.name);\n if (sortField === 'size') return b.size - a.size;\n return new Date(b.modified).getTime() - new Date(a.modified).getTime();\n });\n \n if (options.json) {\n console.log(JSON.stringify({ files }, null, 2));\n return;\n }\n \n const config = getLoggerConfig();\n console.log(`\\n📁 Log directory: ${config.logDir}\\n`);\n \n if (files.length === 0) {\n console.log('No log files found.');\n return;\n }\n \n console.log(`Found ${files.length} log file(s):\\n`);\n \n const typeEmoji: Record<string, string> = {\n app: '📝',\n error: '❌',\n audit: '🔒',\n access: '🌐',\n };\n \n for (const file of files) {\n const emoji = typeEmoji[file.type] || '📄';\n const sizeKB = (file.size / 1024).toFixed(1);\n const date = new Date(file.modified).toLocaleString();\n console.log(`${emoji} ${file.name}`);\n console.log(` Size: ${sizeKB} KB | Modified: ${date}`);\n }\n } catch (err) {\n console.error('Failed to list logs:', err);\n process.exit(1);\n }\n });\n\n // Query logs\n command\n .command('query')\n .description('Query log entries')\n .option('-l, --level <level>', 'Filter by level (trace|debug|info|warn|error|fatal)')\n .option('-m, --module <module>', 'Filter by module')\n .option('-e, --extension <ext>', 'Filter by extension')\n .option('-q, --search <text>', 'Text search')\n .option('--session-id <id>', 'Filter by session ID')\n .option('--request-id <id>', 'Filter by request ID')\n .option('--from <date>', 'Start date (ISO 8601)')\n .option('--to <date>', 'End date (ISO 8601)')\n .option('-n, --limit <number>', 'Number of results', '50')\n .option('--json', 'Output as JSON')\n .action(async (options) => {\n try {\n const query: LogQuery = {\n levels: options.level ? [options.level as 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'fatal'] : undefined,\n module: options.module,\n extension: options.extension,\n q: options.search,\n sessionId: options.sessionId,\n requestId: options.requestId,\n from: options.from,\n to: options.to,\n limit: parseInt(options.limit, 10),\n order: 'desc',\n };\n \n const entries = await queryLogs(query);\n \n if (options.json) {\n console.log(JSON.stringify({ entries }, null, 2));\n return;\n }\n \n if (entries.length === 0) {\n console.log('No matching log entries found.');\n return;\n }\n \n console.log(`\\nFound ${entries.length} log entry(ies):\\n`);\n \n for (const entry of entries) {\n const timestamp = new Date(entry.timestamp).toLocaleTimeString();\n const levelColor = getLevelColor(entry.level);\n const module = entry.module ? `[${entry.module}]` : '';\n const session = (entry as any).sessionId ? `{session:${(entry as any).sessionId.slice(0,8)}}` : '';\n \n console.log(`${timestamp} ${levelColor(entry.level)} ${module} ${session} ${entry.message}`);\n \n // Show context if present\n if (entry.requestId) {\n console.log(` ↳ requestId: ${entry.requestId}`);\n }\n if (entry.userId) {\n console.log(` ↳ userId: ${entry.userId}`);\n }\n }\n } catch (err) {\n console.error('Failed to query logs:', err);\n process.exit(1);\n }\n });\n\n // Show statistics\n command\n .command('stats')\n .description('Show log statistics')\n .option('--json', 'Output as JSON')\n .action(async (options) => {\n try {\n const stats = await getFileLogStats();\n const config = getLoggerConfig();\n \n if (options.json) {\n console.log(JSON.stringify({ config, stats }, null, 2));\n return;\n }\n \n console.log('\\n📊 Log Statistics\\n');\n console.log(`📁 Log directory: ${config.logDir}`);\n console.log(`📝 Retention: ${config.retentionDays} days`);\n console.log(`📏 Max file size: ${config.maxFileSizeMB} MB\\n`);\n \n console.log('By Level:');\n const byLevel = stats.byLevel as Record<string, number>;\n const total = Object.values(byLevel).reduce((a, b) => a + b, 0);\n for (const [level, count] of Object.entries(byLevel)) {\n const bar = '█'.repeat(Math.min(50, total > 0 ? Math.round((count / total) * 50) : 0));\n const percent = total > 0 ? ((count / total) * 100).toFixed(1) : '0';\n console.log(` ${level.padEnd(5)}: ${count.toString().padStart(6)} (${percent}%) ${bar}`);\n }\n \n console.log(`\\n📈 Total entries: ${total}`);\n } catch (err) {\n console.error('Failed to get stats:', err);\n process.exit(1);\n }\n });\n\n // Tail logs\n command\n .command('tail')\n .description('Tail log entries in real-time')\n .option('-n, --lines <number>', 'Number of lines to show', '20')\n .option('-f, --follow', 'Follow new entries (Ctrl+C to exit)', false)\n .option('-t, --type <type>', 'Filter by type (app|error|audit|access)', 'app')\n .action(async (options) => {\n try {\n const lines = parseInt(options.lines, 10);\n \n // Initial query\n const query: LogQuery = {\n limit: lines,\n order: 'desc',\n };\n \n const entries = await queryLogs(query);\n \n // Print in chronological order\n const reversed = [...entries].reverse();\n \n for (const entry of reversed) {\n printLogEntry(entry);\n }\n \n if (options.follow) {\n console.log('\\n⏳ Watching for new entries (Ctrl+C to exit)...');\n // Note: Full follow mode would require file watching\n // For now, just show initial results\n }\n } catch (err) {\n console.error('Failed to tail logs:', err);\n process.exit(1);\n }\n });\n\n // Clean old logs\n command\n .command('clean')\n .description('Clean old log files')\n .option('-d, --days <number>', 'Keep logs for N days', '7')\n .option('--dry-run', 'Show what would be deleted without actually deleting')\n .option('--json', 'Output as JSON')\n .action(async (options) => {\n try {\n const keepDays = parseInt(options.days, 10);\n \n if (options.dryRun) {\n console.log(`\\n🔍 Dry run: would delete logs older than ${keepDays} days\\n`);\n }\n \n const result = cleanOldLogs(keepDays);\n \n if (options.json) {\n console.log(JSON.stringify(result, null, 2));\n return;\n }\n \n if (result.deleted === 0) {\n console.log('✅ No old logs to clean.');\n return;\n }\n \n console.log(`\\n🧹 Cleaned ${result.deleted} log file(s)`);\n \n if (result.errors.length > 0) {\n console.log('\\n⚠️ Errors:');\n for (const err of result.errors) {\n console.log(` - ${err}`);\n }\n }\n } catch (err) {\n console.error('Failed to clean logs:', err);\n process.exit(1);\n }\n });\n\n // Rotate logs\n command\n .command('rotate')\n .description('Rotate large log files')\n .option('--dry-run', 'Show what would be rotated without rotating')\n .option('--json', 'Output as JSON')\n .action(async (options) => {\n try {\n if (options.dryRun) {\n console.log('\\n🔍 Dry run: would rotate large log files\\n');\n }\n \n const result = await rotateLogs();\n \n if (options.json) {\n console.log(JSON.stringify(result, null, 2));\n return;\n }\n \n if (result.rotated === 0) {\n console.log('✅ No logs need rotation.');\n return;\n }\n \n console.log(`\\n🔄 Rotated ${result.rotated} log file(s)`);\n console.log(` Compressed: ${result.compressed}`);\n \n if (result.errors.length > 0) {\n console.log('\\n⚠️ Errors:');\n for (const err of result.errors) {\n console.log(` - ${err}`);\n }\n }\n } catch (err) {\n console.error('Failed to rotate logs:', err);\n process.exit(1);\n }\n });\n\n return command;\n}\n\n// Helper functions\nfunction getLevelColor(level: string): (s: string) => string {\n const colors: Record<string, (s: string) => string> = {\n trace: (s) => `🔍 ${s}`,\n debug: (s) => `🔧 ${s}`,\n info: (s) => `ℹ️ ${s}`,\n warn: (s) => `⚠️ ${s}`,\n error: (s) => `❌ ${s}`,\n fatal: (s) => `🔥 ${s}`,\n };\n return colors[level] || ((s) => s);\n}\n\nfunction printLogEntry(entry: LogEntry): void {\n const timestamp = new Date(entry.timestamp).toLocaleTimeString();\n const levelColor = getLevelColor(entry.level);\n const module = entry.module ? `[${entry.module}]` : '';\n \n console.log(`${timestamp} ${levelColor(entry.level)} ${module} ${entry.message}`);\n}\n\n// Register command\nregister({\n id: 'logs',\n name: 'logs',\n description: 'Manage and query logs',\n factory: createLogsCommand,\n metadata: { category: 'maintenance' },\n});\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"models.js","names":[],"sources":["../../../../src/cli/commands/models.ts"],"sourcesContent":["import { input } from '@inquirer/prompts';\nimport { Command } from 'commander';\n\nimport { CredentialResolver } from '../../auth/credentials.js';\nimport { loadConfig, saveConfig } from '../../config/index.js';\nimport { getAgentDefaultModelRef, type Config } from '../../config/schema.js';\nimport { prepareUpdateGlobalDefaults } from '../../gateway/global-defaults-admin.js';\nimport {\n getAllModels,\n getAvailableModels,\n getConfiguredProviders,\n getProviderAuthState,\n getProviderDisplayName,\n isProviderConfigured,\n providerSupportsApiKey,\n providerSupportsOAuth,\n resolveModel,\n} from '../../providers/index.js';\n\nimport { getContextWithOpts } from '../context.js';\nimport { register, formatExamples, type CLIContext } from '../registry.js';\nimport { colors } from '../utils/colors.js';\nimport { runCliOAuthLogin } from '../utils/oauth-login.js';\n\nconst IMAGE_GENERATION_IDS = new Set([\n 'gpt-image-1',\n 'dall-e-3',\n 'dall-e-2',\n 'wan2.6-t2i',\n 'wan2.7-image-pro',\n 'wan2.7-image',\n 'wan2.1-t2i-turbo',\n 'wan2.1-t2i-plus',\n 'image-01',\n 'image-01-live',\n]);\n\nconst VISION_IDS = new Set([\n 'gpt-5.6',\n 'gpt-5.6-luna',\n 'gpt-5.6-sol',\n 'gpt-5.6-terra',\n 'claude-sonnet-5',\n 'gemini-3.5-flash',\n 'gemini-3.1-pro-preview',\n 'gemini-3-flash-preview',\n 'gemini-3-pro-preview',\n 'gpt-4o',\n 'gpt-4o-mini',\n 'gpt-4-turbo',\n 'claude-sonnet-4-5',\n 'claude-haiku-3-5',\n 'gemini-2.0-flash',\n 'gemini-1.5-pro',\n 'qwen-vl-max',\n 'qwen2.5-vl-72b-instruct',\n]);\n\ntype ModelsListOptions = {\n json?: boolean;\n all?: boolean;\n provider?: string;\n};\n\ntype ModelsAuthListOptions = {\n provider?: string;\n json?: boolean;\n};\n\ntype ModelsAuthLoginOptions = {\n method?: 'oauth' | 'api-key';\n setDefault?: boolean;\n};\n\nfunction currentModelRef(config: Config): string | undefined {\n return getAgentDefaultModelRef(config);\n}\n\nfunction setDefaultModel(config: Config, modelRef: string): Config {\n const prep = prepareUpdateGlobalDefaults(config, {\n models: {\n defaultRole: 'deep',\n roles: {\n deep: { model: modelRef },\n },\n },\n });\n if (prep.ok === false) {\n throw new Error(prep.error);\n }\n return prep.data.nextConfig;\n}\n\nfunction modelRef(provider: string, id: string): string {\n return `${provider}/${id}`;\n}\n\nasync function runModelsList(options: ModelsListOptions): Promise<void> {\n const ctx = getContextWithOpts();\n const config = loadConfig(ctx.configPath);\n const configuredProviders = await getConfiguredProviders();\n const providerFilter = options.provider?.trim();\n const models = (options.all ? getAllModels() : await getAvailableModels()).filter((m) =>\n providerFilter ? m.provider === providerFilter : true,\n );\n\n if (options.json) {\n console.log(\n JSON.stringify(\n {\n defaultModel: currentModelRef(config) ?? null,\n providers: configuredProviders,\n models: models.map((m) => ({\n id: modelRef(m.provider, m.id),\n name: m.name,\n provider: m.provider,\n authConfigured: configuredProviders.includes(m.provider),\n })),\n },\n null,\n 2,\n ),\n );\n return;\n }\n\n console.log('\\n🤖 Models\\n');\n console.log('═'.repeat(60));\n\n console.log(`\\n📌 Current default model: ${currentModelRef(config) ?? 'Not set'}\\n`);\n\n const byProvider = new Map<string, typeof models>();\n for (const model of models) {\n const list = byProvider.get(model.provider) ?? [];\n list.push(model);\n byProvider.set(model.provider, list);\n }\n\n for (const [provider, providerModels] of byProvider) {\n const available = await isProviderConfigured(provider);\n console.log(` [${provider}] ${available ? colors.green('configured') : colors.gray('not configured')}`);\n for (const model of providerModels) {\n const badges: string[] = [];\n if (IMAGE_GENERATION_IDS.has(model.id)) badges.push('gen');\n if (model.input?.includes('image') || VISION_IDS.has(model.id)) badges.push('vision');\n const badgeStr = badges.length > 0 ? ` [${badges.join(', ')}]` : '';\n console.log(` ${available ? '✓' : '○'} ${modelRef(model.provider, model.id)}${badgeStr}`);\n }\n }\n\n console.log('\\nUsage:');\n console.log(' xopc models set deepseek/deepseek-v4-flash');\n console.log(' xopc models auth login --provider anthropic');\n console.log(' xopc models auth paste-api-key --provider deepseek');\n}\n\nasync function runModelsStatus(options: { json?: boolean }): Promise<void> {\n const ctx = getContextWithOpts();\n const config = loadConfig(ctx.configPath);\n const providers = Array.from(new Set(getAllModels().map((m) => m.provider))).sort();\n const auth = [];\n for (const provider of providers) {\n const state = await getProviderAuthState(provider);\n if (state.authMode !== 'none') {\n auth.push({ provider, ...state });\n }\n }\n\n if (options.json) {\n console.log(JSON.stringify({ defaultModel: currentModelRef(config) ?? null, auth }, null, 2));\n return;\n }\n\n console.log('\\n🤖 Model status\\n');\n console.log(`Default: ${currentModelRef(config) ?? 'Not set'}`);\n console.log('\\nAuth:');\n if (auth.length === 0) {\n console.log(' No provider credentials configured.');\n return;\n }\n for (const entry of auth) {\n const status = entry.authStatus === 'connected' ? colors.green(entry.authStatus) : colors.yellow(entry.authStatus);\n console.log(` ${entry.provider}: ${status} (${entry.authMode})`);\n }\n}\n\nasync function runModelsSet(model: string): Promise<void> {\n const ctx = getContextWithOpts();\n const config = loadConfig(ctx.configPath);\n const resolved = resolveModel(model);\n const ref = modelRef(resolved.provider, resolved.id);\n await saveConfig(setDefaultModel(config, ref), ctx.configPath);\n console.log(`✅ Default model set: ${ref}`);\n}\n\nasync function runAuthList(options: ModelsAuthListOptions): Promise<void> {\n const resolver = new CredentialResolver();\n const profiles = (await resolver.listProfiles()).filter((profile) =>\n options.provider ? profile.provider === options.provider : true,\n );\n const oauthTokens = (await resolver.listOAuthTokens()).filter((token) =>\n options.provider ? token.provider === options.provider : true,\n );\n\n if (options.json) {\n console.log(JSON.stringify({ profiles, oauth: oauthTokens }, null, 2));\n return;\n }\n\n console.log('\\n🔐 Model auth\\n');\n if (profiles.length === 0 && oauthTokens.length === 0) {\n console.log(' No model credentials configured.');\n return;\n }\n for (const profile of profiles) {\n console.log(` ${profile.id} ${colors.blue('api-key')} ${profile.provider} ${profile.source}`);\n }\n for (const token of oauthTokens) {\n const expires = token.expiresAt ? ` expires ${new Date(token.expiresAt).toLocaleString()}` : '';\n console.log(` ${token.provider}:oauth ${colors.yellow('oauth')} ${token.hasAccess ? 'configured' : 'missing'}${expires}`);\n }\n}\n\nasync function runAuthPasteApiKey(provider: string): Promise<void> {\n if (!providerSupportsApiKey(provider)) {\n throw new Error(`Provider ${provider} does not support API key auth`);\n }\n const key = await input({\n message: `API key for ${provider}:`,\n validate: (value: string) => value.trim().length > 0 || 'Required',\n });\n await new CredentialResolver().saveApiKey(provider, key.trim(), { profileName: 'default' });\n console.log(`✅ API key saved for ${provider}`);\n}\n\nfunction resolveAuthMethod(provider: string, rawMethod?: string): 'oauth' | 'api-key' {\n if (rawMethod && rawMethod !== 'oauth' && rawMethod !== 'api-key') {\n throw new Error(`Unsupported auth method: ${rawMethod}`);\n }\n if (rawMethod === 'oauth' || rawMethod === 'api-key') return rawMethod;\n return providerSupportsOAuth(provider) ? 'oauth' : 'api-key';\n}\n\nasync function runAuthLogin(provider: string, options: ModelsAuthLoginOptions): Promise<void> {\n const method = resolveAuthMethod(provider, options.method);\n if (method === 'api-key') {\n await runAuthPasteApiKey(provider);\n } else {\n if (!providerSupportsOAuth(provider)) {\n throw new Error(`Provider ${provider} does not support OAuth`);\n }\n console.log(`\\n🔐 Starting ${getProviderDisplayName(provider)} OAuth login...`);\n await runCliOAuthLogin({ provider, onProgress: (message) => console.log(' →', message) });\n console.log(`✅ OAuth login successful for ${provider}`);\n }\n\n if (options.setDefault) {\n const first = getAllModels().find((model) => model.provider === provider);\n if (!first) throw new Error(`No models found for provider ${provider}`);\n await runModelsSet(modelRef(first.provider, first.id));\n }\n}\n\nasync function runAuthLogout(provider: string): Promise<void> {\n await new CredentialResolver().deleteProviderCredential(provider);\n console.log(`✅ Credentials removed for ${provider}`);\n}\n\nfunction attachModelsListOptions(command: Command): Command {\n return command\n .option('--json', 'Output as JSON', false)\n .option('--all, -a', 'Show all built-in models', false)\n .option('--provider <id>', 'Filter by provider id');\n}\n\nfunction createModelsCommand(_ctx: CLIContext): Command {\n const cmd = new Command('models')\n .description('List and manage models and model auth')\n .addHelpText(\n 'after',\n formatExamples([\n 'xopc models list',\n 'xopc models status',\n 'xopc models set deepseek/deepseek-v4-flash',\n 'xopc models auth list',\n 'xopc models auth login --provider anthropic',\n 'xopc models auth paste-api-key --provider deepseek',\n ]),\n );\n\n attachModelsListOptions(cmd).action(async (options) => {\n await runModelsList(options);\n });\n\n attachModelsListOptions(cmd.command('list').description('List available models')).action(async (options) => {\n await runModelsList(options);\n });\n\n cmd\n .command('status')\n .description('Show default model and provider auth status')\n .option('--json', 'Output as JSON', false)\n .action(async (options: { json?: boolean }) => {\n await runModelsStatus(options);\n });\n\n cmd\n .command('set <model>')\n .description('Set the default model')\n .action(async (model: string) => {\n await runModelsSet(model);\n });\n\n const auth = cmd.command('auth').description('Manage model provider auth');\n\n auth\n .command('list')\n .description('List model auth credentials')\n .option('--provider <id>', 'Filter by provider id')\n .option('--json', 'Output as JSON', false)\n .action(async (options: ModelsAuthListOptions) => {\n await runAuthList(options);\n });\n\n auth\n .command('login')\n .description('Run provider auth flow')\n .requiredOption('--provider <id>', 'Provider id')\n .option('--method <method>', 'Auth method: oauth or api-key')\n .option('--set-default', 'Set the provider first model as default after login', false)\n .action(async (options: ModelsAuthLoginOptions & { provider: string }) => {\n await runAuthLogin(options.provider, options);\n });\n\n auth\n .command('paste-api-key')\n .description('Paste and save an API key')\n .requiredOption('--provider <id>', 'Provider id')\n .action(async (options: { provider: string }) => {\n await runAuthPasteApiKey(options.provider);\n });\n\n auth\n .command('logout')\n .description('Remove provider credentials')\n .requiredOption('--provider <id>', 'Provider id')\n .action(async (options: { provider: string }) => {\n await runAuthLogout(options.provider);\n });\n\n return cmd;\n}\n\nregister({\n id: 'models',\n name: 'models',\n description: 'List and manage models and model auth',\n factory: createModelsCommand,\n metadata: {\n category: 'utility',\n examples: ['xopc models list', 'xopc models status', 'xopc models auth list'],\n },\n});\n\nexport { createModelsCommand };\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../../../../src/cli/commands/onboard/channels/index.ts"],"sourcesContent":["/**\n * Channels configuration for onboarding — multi-channel loop with registry-driven configurators.\n */\n\nimport { select } from '@inquirer/prompts';\nimport type { Config } from '../../../../config/schema.js';\n\nimport type { ChannelConfigurator, ChannelStatus } from './types.js';\nimport { getChannelConfigurators } from './registry.js';\n\nfunction getChannelStatuses(config: Config, configurators: ChannelConfigurator[]): ChannelStatus[] {\n return configurators.map(cfg => ({\n id: cfg.id,\n name: cfg.name,\n description: cfg.description,\n configured: cfg.isConfigured(config),\n }));\n}\n\nasync function promptChannelSelection(statuses: ChannelStatus[]): Promise<string | null> {\n const choices = statuses.map(status => ({\n value: status.id,\n name: `${status.name.padEnd(14)} ${status.configured ? '[configured]' : '[not configured]'}`,\n description: status.description,\n }));\n\n choices.push({\n value: 'done',\n name: '[Done]',\n description: 'Save and exit channel setup',\n });\n\n const selected = await select<string>({\n message: 'Select a channel to configure:',\n choices,\n });\n\n return selected === 'done' ? null : selected;\n}\n\nasync function configureChannel(\n config: Config,\n channelId: string,\n configurators: ChannelConfigurator[]\n): Promise<Config> {\n const configurator = configurators.find(c => c.id === channelId);\n if (!configurator) {\n console.log(`⚠️ Unknown channel: ${channelId}`);\n return config;\n }\n\n return configurator.configure(config);\n}\n\n/**\n * Interactive multi-channel onboarding entry point.\n */\nexport async function setupChannels(config: Config): Promise<Config> {\n console.log('\\n💬 Channel setup\\n');\n console.log('═'.repeat(50));\n\n let currentConfig = config;\n const configurators = await getChannelConfigurators(currentConfig);\n\n while (true) {\n const statuses = getChannelStatuses(currentConfig, configurators);\n const selected = await promptChannelSelection(statuses);\n if (selected === null) {\n break;\n }\n currentConfig = await configureChannel(currentConfig, selected, configurators);\n console.log('\\n' + '─'.repeat(50) + '\\n');\n }\n\n console.log('\\n✅ Channel setup complete\\n');\n return currentConfig;\n}\n\nexport type { ChannelConfigurator, ChannelStatus, DmPolicy, GroupPolicy } from './types.js';\nexport { getChannelConfigurators } from './registry.js';\n\nexport { setupTelegramOnboard } from '../../../../../extensions/telegram/src/adapters/onboard-cli.js';\n"],"mappings":";;;;;;;AAUA,SAAS,mBAAmB,QAAgB,eAAuD;AACjG,QAAO,cAAc,KAAI,SAAQ;EAC/B,IAAI,IAAI;EACR,MAAM,IAAI;EACV,aAAa,IAAI;EACjB,YAAY,IAAI,aAAa,OAAO;EACrC,EAAE;;AAGL,eAAe,uBAAuB,UAAmD;CACvF,MAAM,UAAU,SAAS,KAAI,YAAW;EACtC,OAAO,OAAO;EACd,MAAM,GAAG,OAAO,KAAK,OAAO,GAAG,CAAC,GAAG,OAAO,aAAa,iBAAiB;EACxE,aAAa,OAAO;EACrB,EAAE;AAEH,SAAQ,KAAK;EACX,OAAO;EACP,MAAM;EACN,aAAa;EACd,CAAC;CAEF,MAAM,WAAW,MAAM,OAAe;EACpC,SAAS;EACT;EACD,CAAC;AAEF,QAAO,aAAa,SAAS,OAAO;;AAGtC,eAAe,iBACb,QACA,WACA,eACiB;CACjB,MAAM,eAAe,cAAc,MAAK,MAAK,EAAE,OAAO,UAAU;AAChE,KAAI,CAAC,cAAc;AACjB,UAAQ,IAAI,wBAAwB,YAAY;AAChD,SAAO;;AAGT,QAAO,aAAa,UAAU,OAAO;;;;;AAMvC,eAAsB,cAAc,QAAiC;AACnE,SAAQ,IAAI,uBAAuB;AACnC,SAAQ,IAAI,IAAI,OAAO,GAAG,CAAC;CAE3B,IAAI,gBAAgB;CACpB,MAAM,gBAAgB,MAAM,wBAAwB,cAAc;AAElE,QAAO,MAAM;EAEX,MAAM,WAAW,MAAM,uBADN,mBAAmB,eAAe,cACG,CAAC;AACvD,MAAI,aAAa,KACf;AAEF,kBAAgB,MAAM,iBAAiB,eAAe,UAAU,cAAc;AAC9E,UAAQ,IAAI,OAAO,IAAI,OAAO,GAAG,GAAG,KAAK;;AAG3C,SAAQ,IAAI,+BAA+B;AAC3C,QAAO"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"onboard-to-configurator.js","names":[],"sources":["../../../../../../src/cli/commands/onboard/channels/onboard-to-configurator.ts"],"sourcesContent":["import type { ChannelPlugin } from '../../../../channels/plugin-types.js';\nimport type { ChannelConfigurator } from './types.js';\n\n/**\n * Maps {@link ChannelPlugin.onboard} to the onboard {@link ChannelConfigurator} contract.\n */\nexport function channelOnboardToConfigurator(plugin: ChannelPlugin): ChannelConfigurator {\n const { onboard } = plugin;\n if (!onboard) throw new Error(`Plugin ${plugin.id} has no onboard adapter`);\n\n return {\n id: plugin.id,\n name: plugin.meta.label,\n description: plugin.meta.blurb,\n isConfigured: (config) => onboard.isConfigured(config),\n configure: (config) => onboard.configure(config),\n };\n}\n"],"mappings":";;;;AAMA,SAAgB,6BAA6B,QAA4C;CACvF,MAAM,EAAE,YAAY;AACpB,KAAI,CAAC,QAAS,OAAM,IAAI,MAAM,UAAU,OAAO,GAAG,yBAAyB;AAE3E,QAAO;EACL,IAAI,OAAO;EACX,MAAM,OAAO,KAAK;EAClB,aAAa,OAAO,KAAK;EACzB,eAAe,WAAW,QAAQ,aAAa,OAAO;EACtD,YAAY,WAAW,QAAQ,UAAU,OAAO;EACjD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","names":[],"sources":["../../../../../../src/cli/commands/onboard/channels/registry.ts"],"sourcesContent":["/**\n * Channel configurators for onboarding: {@link ChannelPlugin.onboard} overrides {@link ChannelPlugin.setupWizard}.\n */\n\nimport type { ChannelPlugin } from '../../../../channels/plugin-types.js';\nimport { listChannelPlugins } from '../../../../channels/plugins/registry.js';\nimport { ExtensionLoader } from '../../../../extensions/loader.js';\nimport {\n buildExtensionMetadataSnapshot,\n resolveExtensionLoaderOptionsFromConfig,\n} from '../../../../extensions/extension-metadata-snapshot.js';\nimport type { Config } from '../../../../config/schema.js';\nimport type { ResolvedExtensionConfig } from '../../../../extensions/types/index.js';\nimport type { ChannelConfigurator } from './types.js';\nimport { channelSetupWizardToConfigurator } from './wizard-to-configurator.js';\nimport { channelOnboardToConfigurator } from './onboard-to-configurator.js';\n\nfunction sortByMetaOrder(plugins: ChannelPlugin[]): ChannelPlugin[] {\n return [...plugins].sort((a, b) => {\n const oa = a.meta.order ?? 999;\n const ob = b.meta.order ?? 999;\n if (oa !== ob) return oa - ob;\n return a.id.localeCompare(b.id);\n });\n}\n\nfunction toConfigurators(plugins: readonly ChannelPlugin[]): ChannelConfigurator[] {\n const out: ChannelConfigurator[] = [];\n\n for (const plugin of sortByMetaOrder([...plugins])) {\n if (plugin.onboard) {\n out.push(channelOnboardToConfigurator(plugin));\n } else if (plugin.setupWizard) {\n out.push(\n channelSetupWizardToConfigurator(plugin.setupWizard, {\n name: plugin.meta.label,\n description: plugin.meta.blurb,\n }),\n );\n }\n }\n return out;\n}\n\nasync function loadChannelPluginsForOnboard(config: Config): Promise<ChannelPlugin[]> {\n const snapshot = buildExtensionMetadataSnapshot(resolveExtensionLoaderOptionsFromConfig(config), config);\n const extensionConfigs: ResolvedExtensionConfig[] = [];\n\n for (const entry of snapshot.manifestRegistry.getAllEntries()) {\n if (!entry.manifest.channelContributions || Object.keys(entry.manifest.channelContributions).length === 0) {\n continue;\n }\n extensionConfigs.push({\n id: entry.id,\n name: entry.manifest.name || entry.id,\n source: entry.source,\n path: entry.path,\n enabled: true,\n config: {},\n });\n }\n\n if (extensionConfigs.length === 0) {\n return [];\n }\n\n const loader = new ExtensionLoader(resolveExtensionLoaderOptionsFromConfig(config));\n loader.setConfig(config as Parameters<ExtensionLoader['setConfig']>[0]);\n loader.setManifestSnapshot(snapshot);\n await loader.loadExtensions(extensionConfigs);\n return loader.getRegistry().channelPlugins;\n}\n\nexport async function getChannelConfigurators(config: Config): Promise<ChannelConfigurator[]> {\n const registered = listChannelPlugins();\n if (registered.length > 0) {\n return toConfigurators(registered);\n }\n return toConfigurators(await loadChannelPluginsForOnboard(config));\n}\n"],"mappings":";;;;;;kCAU+D;AAO/D,SAAS,gBAAgB,SAA2C;AAClE,QAAO,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,MAAM;EACjC,MAAM,KAAK,EAAE,KAAK,SAAS;EAC3B,MAAM,KAAK,EAAE,KAAK,SAAS;AAC3B,MAAI,OAAO,GAAI,QAAO,KAAK;AAC3B,SAAO,EAAE,GAAG,cAAc,EAAE,GAAG;GAC/B;;AAGJ,SAAS,gBAAgB,SAA0D;CACjF,MAAM,MAA6B,EAAE;AAErC,MAAK,MAAM,UAAU,gBAAgB,CAAC,GAAG,QAAQ,CAAC,CAChD,KAAI,OAAO,QACT,KAAI,KAAK,6BAA6B,OAAO,CAAC;UACrC,OAAO,YAChB,KAAI,KACF,iCAAiC,OAAO,aAAa;EACnD,MAAM,OAAO,KAAK;EAClB,aAAa,OAAO,KAAK;EAC1B,CAAC,CACH;AAGL,QAAO;;AAGT,eAAe,6BAA6B,QAA0C;CACpF,MAAM,WAAW,+BAA+B,wCAAwC,OAAO,EAAE,OAAO;CACxG,MAAM,mBAA8C,EAAE;AAEtD,MAAK,MAAM,SAAS,SAAS,iBAAiB,eAAe,EAAE;AAC7D,MAAI,CAAC,MAAM,SAAS,wBAAwB,OAAO,KAAK,MAAM,SAAS,qBAAqB,CAAC,WAAW,EACtG;AAEF,mBAAiB,KAAK;GACpB,IAAI,MAAM;GACV,MAAM,MAAM,SAAS,QAAQ,MAAM;GACnC,QAAQ,MAAM;GACd,MAAM,MAAM;GACZ,SAAS;GACT,QAAQ,EAAE;GACX,CAAC;;AAGJ,KAAI,iBAAiB,WAAW,EAC9B,QAAO,EAAE;CAGX,MAAM,SAAS,IAAI,gBAAgB,wCAAwC,OAAO,CAAC;AACnF,QAAO,UAAU,OAAsD;AACvE,QAAO,oBAAoB,SAAS;AACpC,OAAM,OAAO,eAAe,iBAAiB;AAC7C,QAAO,OAAO,aAAa,CAAC;;AAG9B,eAAsB,wBAAwB,QAAgD;CAC5F,MAAM,aAAa,oBAAoB;AACvC,KAAI,WAAW,SAAS,EACtB,QAAO,gBAAgB,WAAW;AAEpC,QAAO,gBAAgB,MAAM,6BAA6B,OAAO,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wizard-to-configurator.js","names":[],"sources":["../../../../../../src/cli/commands/onboard/channels/wizard-to-configurator.ts"],"sourcesContent":["/**\n * Bridge declarative {@link ChannelSetupWizard} (from bundled plugins) to {@link ChannelConfigurator}.\n */\n\nimport { confirm, input, select } from '@inquirer/prompts';\nimport type { Config } from '../../../../config/schema.js';\nimport type { ChannelSetupWizard } from '../../../../channels/plugins/types.adapters.js';\nimport type { ChannelConfigurator } from './types.js';\n\nfunction readChannelField(cfg: Config, channel: string, key: string): string | undefined {\n const raw = (cfg.channels as Record<string, unknown> | undefined)?.[channel];\n if (!raw || typeof raw !== 'object') return undefined;\n const v = (raw as Record<string, unknown>)[key];\n return typeof v === 'string' ? v : undefined;\n}\n\nfunction parseAllowlistRaw(raw: string): Array<string | number> {\n if (!raw.trim()) return [];\n const entries = raw\n .split(/[,\\s\\n]+/)\n .map(s => s.trim())\n .filter(Boolean);\n return entries.map(e => {\n const num = parseInt(e, 10);\n return !isNaN(num) && String(num) === e ? num : e;\n });\n}\n\nfunction mergeChannel(\n cfg: Config,\n channel: string,\n partial: Record<string, unknown>\n): Config {\n const channels = { ...(cfg.channels as Record<string, unknown> | undefined) };\n const prev = (channels[channel] as Record<string, unknown> | undefined) ?? {};\n channels[channel] = { ...prev, ...partial, enabled: true };\n return { ...cfg, channels } as Config;\n}\n\nexport function channelSetupWizardToConfigurator(\n wizard: ChannelSetupWizard,\n meta: { name: string; description: string }\n): ChannelConfigurator {\n const id = wizard.channel;\n\n return {\n id,\n name: meta.name,\n description: meta.description,\n\n isConfigured(cfg: Config): boolean {\n const creds = wizard.credentials ?? [];\n if (creds.length === 0) {\n return false;\n }\n return creds.every(c => {\n const v = readChannelField(cfg, id, c.key);\n return typeof v === 'string' && v.trim().length > 0;\n });\n },\n\n async configure(config: Config): Promise<Config> {\n console.log(`\\n${'='.repeat(50)}`);\n console.log(`📱 ${meta.name} setup`);\n console.log(`${'='.repeat(50)}\\n`);\n\n let next = config;\n const values: Record<string, string> = {};\n\n const env = wizard.envShortcut;\n if (env) {\n const fromEnv = process.env[env.envVar]?.trim();\n if (fromEnv) {\n const use = await confirm({\n message: `${env.envVar} is set in the environment. Use it for this channel?`,\n default: true,\n });\n if (use) {\n const parts = env.configPath.split('.');\n const key = parts[parts.length - 1] ?? 'botToken';\n values[key] = fromEnv;\n }\n }\n }\n\n for (const c of wizard.credentials) {\n if (values[c.key]) continue;\n const existing = readChannelField(next, id, c.key);\n if (existing) {\n const keep = await confirm({\n message: `Keep existing ${c.label}?`,\n default: true,\n });\n if (keep) {\n values[c.key] = existing;\n continue;\n }\n }\n let v = '';\n while (true) {\n v = await input({\n message: `${c.label}:`,\n });\n const err = c.validate?.(v) ?? null;\n if (!err) break;\n console.log(`⚠️ ${err}`);\n }\n values[c.key] = v.trim();\n }\n\n const partial: Record<string, unknown> = { ...values };\n\n if (wizard.dmPolicy) {\n const policy = await select<string>({\n message: 'DM / access policy:',\n choices: wizard.dmPolicy.options.map(o => ({\n value: o.value,\n name: o.label,\n description: o.description,\n })),\n default: wizard.dmPolicy.default,\n });\n partial.dmPolicy = policy;\n if (policy === 'allowlist' && wizard.allowFrom) {\n const raw = await input({\n message: wizard.allowFrom.hint,\n default: '',\n });\n partial.allowFrom = parseAllowlistRaw(raw);\n }\n }\n\n next = mergeChannel(next, id, partial);\n\n if (wizard.finalize) {\n const result = await wizard.finalize.validate(next);\n if (!result.ok) {\n console.log(`⚠️ ${result.error ?? 'Validation failed'}`);\n return config;\n }\n console.log(`\\n✅ ${wizard.finalize.message}\\n`);\n } else {\n console.log('\\n✅ Channel configuration saved.\\n');\n }\n\n return next;\n },\n };\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gateway.js","names":[],"sources":["../../../../../src/cli/commands/onboard/gateway.ts"],"sourcesContent":["/**\n * Gateway Configuration and Startup for Onboarding\n */\n\nimport { confirm } from '@inquirer/prompts';\nimport type { Config } from '../../../config/schema.js';\nimport type { CLIContext } from '../../registry.js';\nimport { acquireGatewayLock, GatewayLockError } from '../../../gateway/lock.js';\n\nfunction isInteractive(): boolean {\n return process.stdin.isTTY && process.stdout.isTTY;\n}\n\nexport async function setupGateway(config: Config): Promise<Config> {\n console.log('\\n🌐 Step: Gateway WebUI (Optional)\\n');\n\n const enableGateway = await confirm({\n message: 'Enable Gateway WebUI?',\n default: true,\n });\n\n if (!enableGateway) {\n config.gateway = config.gateway || {};\n config.gateway.auth = { mode: 'none' };\n console.log('ℹ️ Gateway disabled (auth mode set to none)');\n return config;\n }\n\n const existingToken = config?.gateway?.auth?.token;\n const existingMode = config?.gateway?.auth?.mode;\n\n if (existingToken && existingMode === 'token') {\n console.log('\\nℹ️ Gateway auth token already configured');\n const keepExisting = await confirm({\n message: 'Keep existing token?',\n default: true,\n });\n\n if (keepExisting) {\n console.log('✅ Keeping existing gateway configuration');\n return config;\n }\n }\n\n const crypto = await import('crypto');\n const token = crypto.randomBytes(24).toString('hex');\n\n config.gateway = config.gateway || {};\n config.gateway.bind = config.gateway.bind || 'loopback';\n config.gateway.port = config.gateway.port || 18790;\n config.gateway.auth = {\n mode: 'token',\n token,\n };\n\n console.log('\\n✅ Gateway configured:');\n console.log(` Bind: ${config.gateway.bind}`);\n console.log(` Port: ${config.gateway.port}`);\n console.log(` Auth: Token-based (auto-generated)`);\n console.log(` Token: ${token.slice(0, 8)}...${token.slice(-8)}`);\n\n return config;\n}\n\nasync function installAndStartGatewayService(config: Config, _ctx: CLIContext): Promise<boolean> {\n const [{ resolveGatewayService, isDaemonAvailableAsync, getPlatformName }, { buildGatewayInstallArgs }] =\n await Promise.all([\n import('../../../daemon/service.js'),\n import('../../../daemon/install-plan.js'),\n ]);\n\n const available = await isDaemonAvailableAsync();\n if (!available) {\n console.log(`ℹ️ OS service not available on ${getPlatformName()}.`);\n console.log(' Start manually with: xopc gateway');\n return false;\n }\n\n const service = await resolveGatewayService();\n const port = config.gateway?.port ?? 18790;\n const bind = config.gateway?.bind ?? 'loopback';\n const token = config.gateway?.auth?.token;\n\n const loaded = await service.isLoaded({ env: process.env }).catch(() => false);\n if (!loaded) {\n const installArgs = buildGatewayInstallArgs({ port, bind, token });\n installArgs.stdout = process.stdout;\n await service.install(installArgs);\n }\n\n const { startGatewayService } = await import('../../../daemon/service.js');\n const result = await startGatewayService({ service });\n return result.outcome === 'started' || result.outcome === 'scheduled';\n}\n\nexport async function startGatewayNow(config: Config, ctx: CLIContext): Promise<void> {\n const bind = config?.gateway?.bind ?? 'loopback';\n const port = config?.gateway?.port || 18790;\n const displayHost = bind === 'lan' ? 'localhost' : '127.0.0.1';\n\n let isRunning = false;\n try {\n const lock = await acquireGatewayLock(ctx.configPath, { timeoutMs: 100, port });\n await lock.release();\n } catch (err) {\n if (err instanceof GatewayLockError) {\n isRunning = true;\n }\n }\n\n if (isRunning) {\n console.log('\\n🌐 Gateway is already running!');\n console.log(` URL: http://${displayHost}:${port}`);\n console.log('');\n console.log('📝 To apply the new configuration, restart gateway:');\n console.log(' xopc gateway restart');\n } else if (isInteractive()) {\n const shouldInstall = await confirm({\n message: 'Install and start Gateway as an OS service now?',\n default: true,\n });\n\n if (shouldInstall) {\n console.log('\\n🚀 Installing Gateway service...');\n try {\n const started = await installAndStartGatewayService(config, ctx);\n if (started) {\n console.log('✅ Gateway service installed and started');\n console.log(` URL: http://${displayHost}:${port}`);\n const token = config?.gateway?.auth?.token;\n if (token) {\n console.log(` Token: ${token.slice(0, 8)}...${token.slice(-8)}`);\n }\n } else {\n console.log('⚠️ Service install completed but start may need manual action.');\n console.log(' Try: xopc gateway service start');\n }\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n console.log(`⚠️ Failed to install/start gateway service: ${message}`);\n console.log(' Start manually with: xopc gateway');\n }\n } else {\n console.log('\\n⏭️ Skipping gateway service install.');\n console.log(' Start in foreground with: xopc gateway');\n console.log(' Or install service later: xopc gateway service install');\n }\n } else {\n console.log('\\n🚀 Gateway is configured but not running.');\n console.log('');\n console.log('📝 To install and start as an OS service:');\n console.log(' xopc gateway service install');\n console.log(' xopc gateway service start');\n console.log('');\n console.log('📝 To start in foreground (development):');\n console.log(` xopc gateway --bind ${bind} --port ${port}`);\n }\n\n console.log('');\n console.log('📚 Other useful commands:');\n console.log(' xopc gateway status # Check gateway status');\n console.log(' xopc gateway stop # Stop gateway');\n console.log(' xopc gateway restart # Restart gateway');\n console.log(' xopc gateway logs # View logs');\n}\n"],"mappings":";;;;;;AASA,SAAS,gBAAyB;AAChC,QAAO,QAAQ,MAAM,SAAS,QAAQ,OAAO;;AAG/C,eAAsB,aAAa,QAAiC;AAClE,SAAQ,IAAI,wCAAwC;AAOpD,KAAI,CAAC,MALuB,QAAQ;EAClC,SAAS;EACT,SAAS;EACV,CAAC,EAEkB;AAClB,SAAO,UAAU,OAAO,WAAW,EAAE;AACrC,SAAO,QAAQ,OAAO,EAAE,MAAM,QAAQ;AACtC,UAAQ,IAAI,+CAA+C;AAC3D,SAAO;;CAGT,MAAM,gBAAgB,QAAQ,SAAS,MAAM;CAC7C,MAAM,eAAe,QAAQ,SAAS,MAAM;AAE5C,KAAI,iBAAiB,iBAAiB,SAAS;AAC7C,UAAQ,IAAI,8CAA8C;AAM1D,MAAI,MALuB,QAAQ;GACjC,SAAS;GACT,SAAS;GACV,CAAC,EAEgB;AAChB,WAAQ,IAAI,2CAA2C;AACvD,UAAO;;;CAKX,MAAM,SAAQ,MADO,OAAO,WACP,YAAY,GAAG,CAAC,SAAS,MAAM;AAEpD,QAAO,UAAU,OAAO,WAAW,EAAE;AACrC,QAAO,QAAQ,OAAO,OAAO,QAAQ,QAAQ;AAC7C,QAAO,QAAQ,OAAO,OAAO,QAAQ,QAAQ;AAC7C,QAAO,QAAQ,OAAO;EACpB,MAAM;EACN;EACD;AAED,SAAQ,IAAI,0BAA0B;AACtC,SAAQ,IAAI,YAAY,OAAO,QAAQ,OAAO;AAC9C,SAAQ,IAAI,YAAY,OAAO,QAAQ,OAAO;AAC9C,SAAQ,IAAI,wCAAwC;AACpD,SAAQ,IAAI,aAAa,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,MAAM,MAAM,GAAG,GAAG;AAElE,QAAO;;AAGT,eAAe,8BAA8B,QAAgB,MAAoC;CAC/F,MAAM,CAAC,EAAE,uBAAuB,wBAAwB,mBAAmB,EAAE,6BAC3E,MAAM,QAAQ,IAAI,CAChB,OAAO,+BACP,OAAO,mCACR,CAAC;AAGJ,KAAI,CAAC,MADmB,wBAAwB,EAChC;AACd,UAAQ,IAAI,mCAAmC,iBAAiB,CAAC,GAAG;AACpE,UAAQ,IAAI,uCAAuC;AACnD,SAAO;;CAGT,MAAM,UAAU,MAAM,uBAAuB;CAC7C,MAAM,OAAO,OAAO,SAAS,QAAQ;CACrC,MAAM,OAAO,OAAO,SAAS,QAAQ;CACrC,MAAM,QAAQ,OAAO,SAAS,MAAM;AAGpC,KAAI,CAAC,MADgB,QAAQ,SAAS,EAAE,KAAK,QAAQ,KAAK,CAAC,CAAC,YAAY,MAAM,EACjE;EACX,MAAM,cAAc,wBAAwB;GAAE;GAAM;GAAM;GAAO,CAAC;AAClE,cAAY,SAAS,QAAQ;AAC7B,QAAM,QAAQ,QAAQ,YAAY;;CAGpC,MAAM,EAAE,wBAAwB,MAAM,OAAO;CAC7C,MAAM,SAAS,MAAM,oBAAoB,EAAE,SAAS,CAAC;AACrD,QAAO,OAAO,YAAY,aAAa,OAAO,YAAY;;AAG5D,eAAsB,gBAAgB,QAAgB,KAAgC;CACpF,MAAM,OAAO,QAAQ,SAAS,QAAQ;CACtC,MAAM,OAAO,QAAQ,SAAS,QAAQ;CACtC,MAAM,cAAc,SAAS,QAAQ,cAAc;CAEnD,IAAI,YAAY;AAChB,KAAI;AAEF,SAAM,MADa,mBAAmB,IAAI,YAAY;GAAE,WAAW;GAAK;GAAM,CAAC,EACpE,SAAS;UACb,KAAK;AACZ,MAAI,eAAe,iBACjB,aAAY;;AAIhB,KAAI,WAAW;AACb,UAAQ,IAAI,mCAAmC;AAC/C,UAAQ,IAAI,kBAAkB,YAAY,GAAG,OAAO;AACpD,UAAQ,IAAI,GAAG;AACf,UAAQ,IAAI,sDAAsD;AAClE,UAAQ,IAAI,0BAA0B;YAC7B,eAAe,CAMxB,KAAI,MALwB,QAAQ;EAClC,SAAS;EACT,SAAS;EACV,CAAC,EAEiB;AACjB,UAAQ,IAAI,qCAAqC;AACjD,MAAI;AAEF,OAAI,MADkB,8BAA8B,QAAQ,IAAI,EACnD;AACX,YAAQ,IAAI,0CAA0C;AACtD,YAAQ,IAAI,kBAAkB,YAAY,GAAG,OAAO;IACpD,MAAM,QAAQ,QAAQ,SAAS,MAAM;AACrC,QAAI,MACF,SAAQ,IAAI,aAAa,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,MAAM,MAAM,GAAG,GAAG;UAE/D;AACL,YAAQ,IAAI,kEAAkE;AAC9E,YAAQ,IAAI,qCAAqC;;WAE5C,KAAK;GACZ,MAAM,UAAU,eAAe,QAAQ,IAAI,UAAU,OAAO,IAAI;AAChE,WAAQ,IAAI,gDAAgD,UAAU;AACtE,WAAQ,IAAI,uCAAuC;;QAEhD;AACL,UAAQ,IAAI,0CAA0C;AACtD,UAAQ,IAAI,4CAA4C;AACxD,UAAQ,IAAI,4DAA4D;;MAErE;AACL,UAAQ,IAAI,8CAA8C;AAC1D,UAAQ,IAAI,GAAG;AACf,UAAQ,IAAI,4CAA4C;AACxD,UAAQ,IAAI,kCAAkC;AAC9C,UAAQ,IAAI,gCAAgC;AAC5C,UAAQ,IAAI,GAAG;AACf,UAAQ,IAAI,2CAA2C;AACvD,UAAQ,IAAI,0BAA0B,KAAK,UAAU,OAAO;;AAG9D,SAAQ,IAAI,GAAG;AACf,SAAQ,IAAI,4BAA4B;AACxC,SAAQ,IAAI,mDAAmD;AAC/D,SAAQ,IAAI,2CAA2C;AACvD,SAAQ,IAAI,8CAA8C;AAC1D,SAAQ,IAAI,wCAAwC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"model.js","names":["getModelsJsonPath"],"sources":["../../../../../src/cli/commands/onboard/model.ts"],"sourcesContent":["/**\n * Catalog-driven model configuration for onboarding.\n */\n\nimport { confirm, input, select } from '@inquirer/prompts';\n\nimport { CredentialResolver } from '../../../auth/credentials.js';\nimport {\n getModelsJsonPath,\n loadModelsJson,\n saveModelsJson,\n type ModelsJsonConfig,\n} from '../../../config/models-json.js';\nimport type { Config } from '../../../config/schema.js';\nimport { getAgentDefaultModelRef } from '../../../config/schema.js';\nimport { prepareUpdateGlobalDefaults } from '../../../gateway/global-defaults-admin.js';\nimport {\n getAllProviders,\n getApiKeyFromEnv,\n getModelRegistry,\n getModelsByProvider,\n getProviderDisplayName,\n providerSupportsApiKey,\n providerSupportsOAuth,\n} from '../../../providers/index.js';\nimport {\n getDomesticProviderBaseUrl,\n getDomesticProviderPreset,\n getDomesticProviderPresetIds,\n providerConfigFromDomesticPreset,\n type DomesticProviderPreset,\n} from '../../../providers/domestic-presets.js';\nimport {\n discoverProviderModels,\n isProviderApiDiscoverable,\n type DiscoveredProviderModel,\n} from '../../../providers/model-discovery.js';\nimport {\n getProviderHint,\n getRecommendedModelsForProvider,\n sortModelsForPicker,\n sortProvidersForPicker,\n} from '../../../providers/presentation.js';\nimport { listProfilesForProvider } from '../../../auth/profiles/index.js';\nimport { getOAuthProvider } from '../../utils/oauth-providers.js';\nimport { runCliOAuthLogin } from '../../utils/oauth-login.js';\nimport type { CLIContext } from '../../registry.js';\nimport { colors } from '../../utils/colors.js';\n\ntype ModelChoice = { value: string; name: string; description?: string };\ntype CustomApiKind = 'openai-completions' | 'openai-responses' | 'anthropic-messages';\n\nfunction setPrimaryModel(config: Config, workspacePath: string, modelRef: string): Config {\n const id = config.agents.default ?? config.agents.list[0]?.id ?? 'main';\n const index = config.agents.list.findIndex((entry) => entry.id === id);\n let nextConfig = config;\n if (index >= 0) {\n const agent = config.agents.list[index]!;\n const nextList = [...config.agents.list];\n nextList[index] = {\n ...agent,\n workspace: { root: workspacePath },\n };\n nextConfig = { ...config, agents: { ...config.agents, list: nextList } };\n }\n const prep = prepareUpdateGlobalDefaults(nextConfig, {\n models: {\n defaultRole: 'deep',\n roles: { deep: { model: modelRef } },\n },\n });\n if (prep.ok === false) {\n throw new Error(prep.error);\n }\n return prep.data.nextConfig;\n}\n\nfunction formatRecommended(provider: string): string | undefined {\n const labels = getRecommendedModelsForProvider(provider, 3).map((m) => m.name || m.id);\n return labels.length > 0 ? `Recommended: ${labels.join(', ')}` : getProviderHint(provider);\n}\n\nfunction providerChoices(): Array<{ value: string; name: string; description?: string }> {\n const providers = sortProvidersForPicker([...new Set([...getAllProviders(), ...getDomesticProviderPresetIds()])]);\n const choices = providers.map((provider) => ({\n value: provider,\n name: getDomesticProviderPreset(provider)?.displayName ?? getProviderDisplayName(provider),\n description: formatRecommended(provider),\n }));\n choices.push({\n value: 'custom-api',\n name: 'Custom API',\n description: 'OpenAI-compatible, OpenAI Responses, or Anthropic-compatible endpoint',\n });\n return choices;\n}\n\nfunction modelChoiceName(choice: ModelChoice): string {\n return choice.description ? `${choice.name} ${colors.gray(choice.description)}` : choice.name;\n}\n\nfunction getModelsForProvider(provider: string): ModelChoice[] {\n const catalogModels = sortModelsForPicker(getModelsByProvider(provider)).map((m) => {\n const badges = [m.reasoning ? 'reasoning' : '', m.input?.includes('image') ? 'vision' : '']\n .filter(Boolean)\n .join(', ');\n return {\n value: `${m.provider}/${m.id}`,\n name: m.name || m.id,\n description: badges || undefined,\n };\n });\n if (catalogModels.length > 0) return catalogModels;\n\n const preset = getDomesticProviderPreset(provider);\n if (!preset) return [];\n return preset.models.map((m) => {\n const badges = [m.reasoning ? 'reasoning' : '', m.input?.includes('image') ? 'vision' : '']\n .filter(Boolean)\n .join(', ');\n return {\n value: `${preset.id}/${m.id}`,\n name: m.name || m.id,\n description: badges || undefined,\n };\n });\n}\n\nfunction discoveredModelsToChoices(provider: string, models: DiscoveredProviderModel[]): ModelChoice[] {\n return models\n .filter((model) => !model.id.includes('/'))\n .map((model) => ({\n value: `${provider}/${model.id}`,\n name: model.name || model.id,\n description: 'discovered',\n }));\n}\n\nasync function discoverModelsForOnboard(params: {\n providerId: string;\n baseUrl: string;\n apiKey: string;\n api: CustomApiKind;\n headers?: Record<string, string>;\n}): Promise<ModelChoice[]> {\n if (!isProviderApiDiscoverable(params.api)) return [];\n try {\n console.log('\\n→ Discovering models from /models...');\n const models = await discoverProviderModels({\n providerId: params.providerId,\n baseUrl: params.baseUrl,\n apiKey: params.apiKey,\n api: params.api,\n headers: params.headers,\n });\n const choices = discoveredModelsToChoices(params.providerId, models);\n if (choices.length > 0) {\n console.log(colors.green(`✓ Discovered ${choices.length} models`));\n return choices;\n }\n } catch (error) {\n console.log(colors.gray(`Model discovery unavailable: ${error instanceof Error ? error.message : String(error)}`));\n }\n return [];\n}\n\nasync function doOAuthLogin(provider: string): Promise<boolean> {\n const config = getOAuthProvider(provider);\n if (!config) {\n console.error(`OAuth not supported for provider: ${provider}`);\n return false;\n }\n\n console.log(`\\n🔐 Starting ${config.displayName} OAuth login...`);\n try {\n await runCliOAuthLogin({ provider, onProgress: (message) => console.log(' →', message) });\n return true;\n } catch (error) {\n console.error('❌ OAuth login failed:', error);\n return false;\n }\n}\n\nfunction joinEndpoint(baseUrl: string, suffix: string): string {\n return `${baseUrl.replace(/\\/+$/, '')}/${suffix.replace(/^\\/+/, '')}`;\n}\n\nasync function probeCustomProvider(params: {\n baseUrl: string;\n apiKey: string;\n modelId: string;\n api: CustomApiKind;\n}): Promise<void> {\n const timeout = AbortSignal.timeout(30_000);\n const commonHeaders = {\n 'content-type': 'application/json',\n authorization: `Bearer ${params.apiKey}`,\n };\n\n const request =\n params.api === 'anthropic-messages'\n ? {\n url: joinEndpoint(params.baseUrl, '/messages'),\n headers: { ...commonHeaders, 'anthropic-version': '2023-06-01' },\n body: { model: params.modelId, max_tokens: 1, messages: [{ role: 'user', content: 'ping' }] },\n }\n : params.api === 'openai-responses'\n ? {\n url: joinEndpoint(params.baseUrl, '/responses'),\n headers: commonHeaders,\n body: { model: params.modelId, input: 'ping', max_output_tokens: 1 },\n }\n : {\n url: joinEndpoint(params.baseUrl, '/chat/completions'),\n headers: commonHeaders,\n body: { model: params.modelId, messages: [{ role: 'user', content: 'ping' }], max_tokens: 1 },\n };\n\n const res = await fetch(request.url, {\n method: 'POST',\n headers: request.headers,\n body: JSON.stringify(request.body),\n signal: timeout,\n });\n if (!res.ok) {\n const text = await res.text().catch(() => '');\n throw new Error(`Probe failed (${res.status}) at ${request.url}${text ? `: ${text.slice(0, 300)}` : ''}`);\n }\n}\n\nfunction defaultProviderIdFromBaseUrl(baseUrl: string): string {\n try {\n const url = new URL(baseUrl);\n return url.hostname\n .replace(/^api\\./, '')\n .split('.')\n .filter(Boolean)\n .slice(0, 2)\n .join('-')\n .toLowerCase()\n .replace(/[^a-z0-9-_]+/g, '-')\n .replace(/^-+|-+$/g, '') || 'custom';\n } catch {\n return 'custom';\n }\n}\n\nfunction validateProviderId(value: string): true | string {\n return /^[a-z0-9]([a-z0-9-_]*[a-z0-9])?$/.test(value)\n ? true\n : 'Use lowercase letters, numbers, hyphens, or underscores; start/end with a letter or number.';\n}\n\nasync function setupCustomApi(config: Config, ctx: CLIContext): Promise<Config> {\n console.log('\\n🔌 Custom API provider\\n');\n\n const baseUrl = (await input({\n message: 'API base URL:',\n default: 'https://api.example.com/v1',\n validate: (value) => URL.canParse(value) || 'Enter a valid URL',\n })).trim();\n\n const apiKey = (await input({\n message: 'API key:',\n validate: (value) => value.trim().length > 0 || 'Required',\n })).trim();\n\n const api = await select<CustomApiKind>({\n message: 'Compatibility:',\n choices: [\n { value: 'openai-completions', name: 'OpenAI-compatible Chat Completions' },\n { value: 'openai-responses', name: 'OpenAI Responses' },\n { value: 'anthropic-messages', name: 'Anthropic Messages' },\n ],\n });\n\n const discoveredChoices = await discoverModelsForOnboard({\n providerId: defaultProviderIdFromBaseUrl(baseUrl),\n baseUrl,\n apiKey,\n api,\n });\n const modelRef =\n discoveredChoices.length > 0\n ? await select({\n message: 'Model:',\n choices: discoveredChoices.map((choice) => ({ ...choice, name: modelChoiceName(choice) })),\n })\n : (await input({\n message: 'Model ID:',\n validate: (value) => value.trim().length > 0 || 'Required',\n })).trim();\n const modelId = modelRef.includes('/') ? modelRef.split('/').slice(1).join('/') : modelRef;\n\n console.log('\\n→ Probing endpoint...');\n await probeCustomProvider({ baseUrl, apiKey, modelId, api });\n console.log(colors.green('✓ Probe succeeded'));\n\n const existingProviders = new Set(getAllProviders());\n const providerId = (await input({\n message: 'Provider ID:',\n default: defaultProviderIdFromBaseUrl(baseUrl),\n validate: (value) => {\n const valid = validateProviderId(value.trim());\n if (valid !== true) return valid;\n if (existingProviders.has(value.trim())) return 'Provider ID already exists; choose a new ID.';\n return true;\n },\n })).trim();\n\n const path = getModelsJsonPath();\n const { config: modelsConfig } = loadModelsJson(path);\n const nextModelsConfig: ModelsJsonConfig = {\n providers: {\n ...(modelsConfig.providers ?? {}),\n [providerId]: {\n baseUrl,\n apiKey,\n api,\n models: (discoveredChoices.length > 0 ? discoveredChoices : [{ value: `${providerId}/${modelId}`, name: modelId }]).map(\n (choice) => {\n const id = choice.value.split('/').slice(1).join('/');\n return { id, name: choice.name, api, contextWindow: 128000, input: ['text'] };\n },\n ),\n },\n },\n };\n const saved = saveModelsJson(path, nextModelsConfig);\n if (!saved.success) {\n throw new Error(saved.error || 'Failed to save models.json');\n }\n getModelRegistry().refresh();\n\n const ref = `${providerId}/${modelId}`;\n console.log('\\n✅ Custom model configured:', ref);\n return setPrimaryModel(config, ctx.workspacePath, ref);\n}\n\nfunction resolvePresetEnvCredential(preset: DomesticProviderPreset): { envVar: string; value: string } | undefined {\n for (const envVar of preset.envVars) {\n const value = process.env[envVar]?.trim();\n if (value) return { envVar, value };\n }\n return undefined;\n}\n\nasync function setupDomesticPreset(\n config: Config,\n ctx: CLIContext,\n preset: DomesticProviderPreset,\n): Promise<Config> {\n console.log(`\\n🇨🇳 ${preset.displayName}\\n`);\n console.log(preset.description);\n if (preset.quirks?.length) {\n for (const quirk of preset.quirks) {\n console.log(colors.gray(`Note: ${quirk}`));\n }\n }\n\n const baseUrlChoice = await select({\n message: 'Endpoint:',\n choices: [\n ...preset.baseUrlPresets.map((entry) => ({\n value: entry.baseUrl,\n name: entry.label,\n description: entry.description ?? entry.baseUrl,\n })),\n { value: 'custom', name: 'Custom URL' },\n ],\n default: getDomesticProviderBaseUrl(preset),\n });\n const baseUrl =\n baseUrlChoice === 'custom'\n ? (await input({\n message: 'API base URL:',\n default: getDomesticProviderBaseUrl(preset),\n validate: (value) => URL.canParse(value) || 'Enter a valid URL',\n })).trim()\n : baseUrlChoice;\n\n const envCredential = resolvePresetEnvCredential(preset);\n if (envCredential) {\n console.log(`\\n${colors.green('✓')} Found ${envCredential.envVar} in environment`);\n }\n const apiKeyConfig = envCredential\n ? envCredential.envVar\n : (await input({\n message: `API key for ${preset.displayName}:`,\n validate: (value) => value.trim().length > 0 || 'Required',\n })).trim();\n const probeApiKey = envCredential?.value ?? apiKeyConfig;\n\n const discoveredChoices = await discoverModelsForOnboard({\n providerId: preset.id,\n baseUrl,\n apiKey: probeApiKey,\n api: preset.api as CustomApiKind,\n headers: preset.headers,\n });\n const modelChoices = discoveredChoices.length > 0 ? discoveredChoices : getModelsForProvider(preset.id);\n const modelRef = await select({\n message: 'Model:',\n choices: modelChoices.map((choice) => ({ ...choice, name: modelChoiceName(choice) })),\n default: `${preset.id}/${preset.defaultModel}`,\n });\n const modelId = modelRef.split('/').slice(1).join('/');\n\n const shouldProbe = await confirm({\n message: 'Probe endpoint now?',\n default: !modelId.includes('your-endpoint-id'),\n });\n if (shouldProbe) {\n try {\n console.log('\\n→ Probing endpoint...');\n await probeCustomProvider({ baseUrl, apiKey: probeApiKey, modelId, api: preset.api as CustomApiKind });\n console.log(colors.green('✓ Probe succeeded'));\n } catch (error) {\n console.error(error instanceof Error ? error.message : String(error));\n const continueAnyway = await confirm({ message: 'Save this provider anyway?', default: false });\n if (!continueAnyway) return config;\n }\n }\n\n const path = getModelsJsonPath();\n const { config: modelsConfig } = loadModelsJson(path);\n const nextModelsConfig: ModelsJsonConfig = {\n providers: {\n ...(modelsConfig.providers ?? {}),\n [preset.id]: providerConfigFromDomesticPreset(preset, {\n baseUrl,\n apiKey: apiKeyConfig,\n modelIds: modelChoices.map((choice) => choice.value.split('/').slice(1).join('/')),\n }),\n },\n };\n const saved = saveModelsJson(path, nextModelsConfig);\n if (!saved.success) {\n throw new Error(saved.error || 'Failed to save models.json');\n }\n getModelRegistry().refresh();\n\n console.log('\\n✅ Provider configured:', preset.displayName);\n console.log('✅ Model configured:', modelRef);\n return setPrimaryModel(config, ctx.workspacePath, modelRef);\n}\n\nasync function ensureProviderCredential(provider: string, providerName: string): Promise<boolean> {\n const existingProfiles = listProfilesForProvider(provider);\n if (existingProfiles.length > 0) {\n console.log(`\\n${colors.green('✓')} Found existing credentials for ${providerName}`);\n return await confirm({ message: 'Use existing credentials?', default: true });\n }\n\n const envKey = getApiKeyFromEnv(provider);\n if (envKey) {\n console.log(`\\n${colors.green('✓')} Found API key for ${providerName} in environment`);\n return true;\n }\n\n const supportsOAuth = providerSupportsOAuth(provider);\n const supportsApiKey = providerSupportsApiKey(provider);\n\n if (supportsOAuth && !supportsApiKey) {\n return await doOAuthLogin(provider);\n }\n\n let useOAuth = false;\n if (supportsOAuth && supportsApiKey) {\n const authMethod = await select<'api_key' | 'oauth'>({\n message: `How would you like to authenticate with ${providerName}?`,\n choices: [\n { value: 'api_key', name: 'API key' },\n { value: 'oauth', name: 'OAuth login' },\n ],\n });\n useOAuth = authMethod === 'oauth';\n }\n\n if (useOAuth) {\n const ok = await doOAuthLogin(provider);\n if (ok) return true;\n console.log('\\n⚠️ OAuth login failed. Enter an API key instead.');\n }\n\n if (!supportsApiKey) return false;\n const apiKey = await input({\n message: `API key for ${providerName}:`,\n validate: (value) => value.trim().length > 0 || 'Required',\n });\n const resolver = new CredentialResolver();\n await resolver.saveApiKey(provider, apiKey.trim(), { profileName: 'default' });\n return true;\n}\n\nexport async function setupModel(existingConfig: Config | null, ctx: CLIContext): Promise<Config> {\n console.log('\\n🤖 Step: AI Model\\n');\n\n const config = existingConfig || ({} as Config);\n const currentModel = getAgentDefaultModelRef(config);\n\n if (currentModel) {\n console.log('Current model:', currentModel);\n const keepCurrent = await confirm({ message: 'Keep using this model?', default: true });\n if (keepCurrent) {\n console.log('✅ Keeping:', currentModel);\n return config;\n }\n }\n\n const provider = await select({\n message: 'Model/auth provider:',\n choices: providerChoices(),\n });\n\n if (provider === 'custom-api') {\n return await setupCustomApi(config, ctx);\n }\n\n const domesticPreset = getDomesticProviderPreset(provider);\n if (domesticPreset) {\n return await setupDomesticPreset(config, ctx, domesticPreset);\n }\n\n const providerName = getProviderDisplayName(provider);\n const credentialOk = await ensureProviderCredential(provider, providerName);\n if (!credentialOk) {\n console.error(`\\n❌ Could not configure credentials for ${providerName}.`);\n return config;\n }\n\n const modelChoices = getModelsForProvider(provider);\n if (modelChoices.length === 0) {\n throw new Error(`No catalog models found for ${providerName}. Add a Custom API provider instead.`);\n }\n\n console.log(`\\n📋 Models for ${providerName}:`);\n const model = await select({\n message: 'Model:',\n choices: modelChoices.map((choice) => ({ ...choice, name: modelChoiceName(choice) })),\n });\n\n console.log('\\n✅ Model configured:', model);\n return setPrimaryModel(config, ctx.workspacePath, model);\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"onboard.js","names":["runModelSetup","runChannelOnboard"],"sources":["../../../../src/cli/commands/onboard.ts"],"sourcesContent":["import { Command } from 'commander';\nimport { select } from '@inquirer/prompts';\nimport { saveConfig } from '../../config/index.js';\nimport { register, formatExamples } from '../registry.js';\nimport type { CLIContext } from '../registry.js';\nimport type { Config } from '../../config/schema.js';\nimport { setupModel as runModelSetup } from './onboard/model.js';\nimport { colors } from '../utils/colors.js';\nimport { setupChannels as runChannelOnboard, getChannelConfigurators } from './onboard/channels/index.js';\nimport { resolveGatewayLocalClientHost } from '../../config/gateway-bind.js';\nimport { initWorkspace } from '../utils/init-workspace.js';\nimport { ConfigSchema } from '../../config/schema.js';\n\nfunction isInteractive(): boolean {\n return process.stdin.isTTY && process.stdout.isTTY;\n}\n\nfunction printGitHubStarHint(): void {\n console.log('\\n⭐ If xopc helps you keep long-term AI work moving, please star the repo:');\n console.log(' https://github.com/xopcai/xopc');\n}\n\nasync function setupNonInteractive(_configPath: string, existingConfig: Config): Promise<Config> {\n console.log('\\n🤖 AI Model Configuration (Non-Interactive Mode)\\n');\n console.log('Current agent manifests:', JSON.stringify(existingConfig.agents?.list ?? [], null, 2));\n console.log('\\n💡 To configure in interactive mode, run: xopc onboard');\n console.log('💡 Or set up manually in:', _configPath);\n return existingConfig;\n}\n\nfunction createOnboardCommand(ctx: CLIContext): Command {\n const cmd = new Command('onboard')\n .description('Interactive setup wizard for xopc (gateway uses schema defaults)')\n .addHelpText(\n 'after',\n formatExamples([\n 'xopc onboard # Full interactive setup',\n 'xopc onboard --quick # Configure model only, then launch locally',\n 'xopc onboard --model # Configure LLM model only',\n 'xopc onboard --channels # Configure messaging channels',\n 'xopc onboard --gateway # Apply default gateway settings (quiet)',\n ])\n )\n .option('--quick', 'Configure model only, then launch locally')\n .option('--model', 'Configure LLM provider and model')\n .option('--channels', 'Configure messaging channels')\n .option('--gateway', 'Configure gateway WebUI')\n .option('--all', 'Configure everything (default)')\n .action(async (options) => {\n try {\n await runOnboard(options, ctx);\n } catch (error: unknown) {\n const err = error as { name?: string; code?: string };\n if (err?.name === 'ExitPromptError' || err?.code === 'EXIT_PROMPT') {\n console.log('\\n\\n👋 Setup cancelled.');\n process.exit(0);\n }\n throw error;\n }\n });\n\n return cmd;\n}\n\ntype OnboardOptions = {\n quick?: boolean;\n model?: boolean;\n channels?: boolean;\n gateway?: boolean;\n all?: boolean;\n};\n\nasync function runOnboard(\n options: OnboardOptions,\n ctx: CLIContext\n): Promise<void> {\n console.log(colors.cyan('\\n🚀 Welcome to xopc setup!\\n'));\n console.log('═'.repeat(50));\n\n const workspacePath = ctx.workspacePath;\n const configPath = ctx.configPath;\n\n const initResult = await initWorkspace({ configPath, workspacePath });\n let config = initResult.config;\n\n // Determine what to configure based on options\n const doModel = options.quick || options.model || options.all || (!options.channels && !options.gateway);\n const doChannels = !options.quick && (options.channels || options.all || (!options.model && !options.gateway));\n const doGateway = !options.quick && (options.gateway || options.all || (!options.model && !options.channels));\n const runFullWizard = !options.quick && !options.model && !options.channels && !options.gateway;\n /** Any setup step besides the unified launch prompt ran in interactive flow. */\n const didConfigurableSteps = doModel || doChannels || doGateway;\n\n if (!isInteractive()) {\n // Non-interactive mode\n if (doModel) {\n config = await setupNonInteractive(configPath, config);\n }\n if (doChannels) {\n console.log('\\n💬 Channels Configuration (Non-Interactive Mode)\\n');\n console.log('💡 To configure channels, edit the config file manually.');\n }\n if (doGateway) {\n console.log('\\n🌐 Gateway Configuration (Non-Interactive Mode)\\n');\n console.log('💡 To configure gateway, edit the config file manually.');\n }\n } else {\n // Interactive mode\n if (doModel) {\n config = await runModelSetup(config, ctx);\n }\n\n if (doChannels) {\n const channelIds = (await getChannelConfigurators(config)).map(c => c.id);\n console.log(colors.gray(`\\nChannel onboarding: ${channelIds.join(', ')}\\n`));\n config = await runChannelOnboard(config);\n }\n\n if (doGateway) {\n config = await setupGateway(config);\n }\n }\n\n // Save config once at the end\n await saveConfig(config as Config, configPath);\n\n console.log('\\n' + '═'.repeat(50));\n console.log('\\n🎉 Setup Complete!\\n');\n\n const gatewayAuth = (config as any)?.gateway?.auth;\n const gatewayConfigured =\n gatewayAuth?.mode === 'token' &&\n typeof gatewayAuth?.token === 'string' &&\n gatewayAuth.token.length > 0;\n const port = (config as Config)?.gateway?.port ?? 18790;\n const displayHost = resolveGatewayLocalClientHost(config as Config);\n const gwToken = gatewayConfigured ? (gatewayAuth.token as string) : undefined;\n\n const showGatewaySummary = Boolean(gatewayConfigured && gwToken && (doGateway || runFullWizard));\n\n if (showGatewaySummary && gwToken) {\n const webuiUrl = `http://${displayHost}:${port}`;\n console.log('🌐 Web console (browser) — start here');\n console.log(` Open: http://${displayHost}:${port}`);\n console.log(` Token: ${gwToken.slice(0, 8)}...${gwToken.slice(-8)}`);\n console.log(' Open the console and enter the token when prompted:');\n console.log(` ${webuiUrl}`);\n console.log('');\n }\n\n if (runFullWizard) {\n console.log('🚀 Next steps:');\n if (gatewayConfigured) {\n console.log(' 1. Choose how to launch below (gateway or terminal UI)');\n console.log(' 2. Or chat with: xopc agent -i');\n } else {\n console.log(' 1. Chat in the terminal: xopc agent -i');\n console.log(' 2. Optional: add the Web console: xopc onboard --gateway');\n }\n console.log('');\n } else if (doGateway && gatewayConfigured) {\n console.log('🚀 Next step:');\n console.log(' Start the gateway if it is not running, then open the Web console URL above.');\n console.log('');\n }\n\n console.log('📝 Usage:');\n console.log(' xopc agent -m \"Hello\" # Chat with AI');\n console.log(' xopc agent -i # Interactive mode');\n console.log(' xopc models list # List models');\n console.log(' xopc config validate # Validate xopc.json');\n console.log(' xopc auth list # View authentication');\n console.log(' xopc init # Full state dirs (if upgrading or missing data)');\n\n console.log('\\n📁 Files:');\n console.log(' Config:', configPath);\n console.log(' Workspace:', workspacePath);\n\n printGitHubStarHint();\n\n if (isInteractive() && didConfigurableSteps) {\n await promptLaunchAfterOnboard(config as Config, ctx, { doChannels });\n }\n\n process.exit(0);\n}\n\nasync function startGatewayAsService(config: Config, ctx: CLIContext): Promise<void> {\n const { startGatewayNow } = await import('./onboard/gateway.js');\n await startGatewayNow(config, ctx);\n}\n\nasync function promptLaunchAfterOnboard(\n config: Config,\n ctx: CLIContext,\n _flags: { doChannels: boolean },\n): Promise<void> {\n console.log('');\n const choice = await select<'tui' | 'gateway' | 'none'>({\n message: 'How do you want to launch xopc now?',\n choices: [\n {\n value: 'tui',\n name: 'Terminal UI (embedded)',\n description: 'xopc — no gateway process required',\n },\n {\n value: 'gateway',\n name: 'Gateway WebUI (OS service)',\n description: 'Install and start the HTTP gateway for the browser console',\n },\n {\n value: 'none',\n name: 'Exit — I will start manually',\n description: 'Finish setup without starting a runtime',\n },\n ],\n default: 'tui',\n });\n\n if (choice === 'gateway') {\n await startGatewayAsService(config, ctx);\n return;\n }\n\n if (choice === 'tui') {\n const { runTui } = await import('../../tui/tui.js');\n await runTui({ local: true });\n return;\n }\n\n console.log('\\n⏭️ You can start later:');\n console.log(' xopc gateway service install');\n console.log(' xopc gateway');\n console.log(' xopc');\n}\n\nasync function setupGateway(config: Config): Promise<Config> {\n console.log(colors.cyan('\\n🌐 Gateway WebUI\\n'));\n console.log(\n colors.gray(\n 'Applying defaults from config schema (127.0.0.1:18790, token auth; token generated if missing).\\n',\n ),\n );\n\n const gw = config.gateway ?? {};\n const { randomBytes } = await import('node:crypto');\n const authMode = gw.auth?.mode === 'none' ? ('none' as const) : ('token' as const);\n const token =\n authMode === 'token'\n ? typeof gw.auth?.token === 'string' && gw.auth.token.length > 0\n ? gw.auth.token\n : randomBytes(24).toString('hex')\n : undefined;\n\n const merged: Config = {\n ...config,\n gateway: {\n ...gw,\n bind: gw.bind ?? 'loopback',\n port: gw.port ?? 18790,\n auth:\n authMode === 'none'\n ? { mode: 'none' as const }\n : { mode: 'token' as const, token: token! },\n },\n };\n\n const parsed = ConfigSchema.parse(merged);\n console.log('✅ Gateway defaults applied.\\n');\n return parsed;\n}\n\nregister({\n id: 'onboard',\n name: 'onboard',\n description: 'Interactive setup wizard',\n factory: createOnboardCommand,\n metadata: {\n category: 'setup',\n examples: ['xopc onboard', 'xopc onboard --model', 'xopc onboard --channels'],\n },\n});\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"profile.js","names":[],"sources":["../../../../src/cli/commands/profile.ts"],"sourcesContent":["import { Command } from 'commander';\nimport Table from 'cli-table3';\n\nimport { createLogger } from '../../utils/logger.js';\nimport {\n createProfile,\n deleteProfile,\n getCurrentProfile,\n getSwitchCommand,\n listProfiles,\n resolveProfileStateDir,\n} from '../../config/profile.js';\nimport { formatExamples, register, type CLIContext } from '../registry.js';\nimport { colors } from '../utils/colors.js';\n\nconst log = createLogger('ProfileCommands');\n\nfunction createProfileCommand(_ctx: CLIContext): Command {\n const cmd = new Command('profile')\n .description('Manage xopc state profiles (~/.xopc vs ~/.xopc-<name>)')\n .addHelpText(\n 'after',\n formatExamples([\n 'xopc profile list',\n 'xopc profile create staging',\n 'xopc profile switch staging',\n 'xopc profile delete staging --force',\n ]),\n );\n\n cmd\n .command('list')\n .description('List all profiles')\n .option('--json', 'Output as JSON')\n .action(async (options) => {\n try {\n const profiles = await listProfiles();\n\n if (options.json) {\n console.log(JSON.stringify(profiles, null, 2));\n return;\n }\n\n if (profiles.length === 0) {\n console.log('No profiles found. Create one with: xopc profile create <name>');\n return;\n }\n\n const table = new Table({\n head: ['Name', 'Status', 'Agents', 'Created', 'Directory'].map((h) => colors.cyan(h)),\n colWidths: [15, 10, 8, 20, 40],\n });\n\n for (const profile of profiles) {\n const status = profile.isActive ? colors.green('active') : colors.gray('inactive');\n table.push([\n profile.name === 'default' ? colors.yellow(profile.name) : profile.name,\n status,\n profile.agentCount.toString(),\n profile.createdAt ? new Date(profile.createdAt).toLocaleDateString() : '-',\n profile.stateDir,\n ]);\n }\n\n console.log(table.toString());\n console.log(`\\nCurrent: ${getCurrentProfile()}`);\n } catch (error) {\n log.error({ error }, 'Failed to list profiles');\n console.error(colors.red('Error:'), error instanceof Error ? error.message : String(error));\n process.exit(1);\n }\n });\n\n cmd\n .command('create')\n .description('Create a new profile')\n .argument('<name>', 'Profile name (letters, numbers, hyphens, underscores)')\n .action(async (name) => {\n try {\n const profile = await createProfile(name);\n\n console.log(colors.green('✓'), `Created profile \"${profile.name}\"`);\n console.log(`\\n Directory: ${profile.stateDir}`);\n console.log('\\nTo use this profile:');\n console.log(` ${getSwitchCommand(profile.name)}`);\n } catch (error) {\n log.error({ error }, 'Failed to create profile');\n console.error(colors.red('Error:'), error instanceof Error ? error.message : String(error));\n process.exit(1);\n }\n });\n\n cmd\n .command('delete')\n .description('Delete a profile')\n .argument('<name>', 'Profile name')\n .option('-f, --force', 'Force delete even if active')\n .action(async (name, options) => {\n try {\n await deleteProfile(name, { force: options.force });\n console.log(colors.green('✓'), `Deleted profile \"${name}\"`);\n } catch (error) {\n log.error({ error }, 'Failed to delete profile');\n console.error(colors.red('Error:'), error instanceof Error ? error.message : String(error));\n process.exit(1);\n }\n });\n\n cmd\n .command('switch')\n .description('Print shell command to switch to a profile')\n .argument('<name>', 'Profile name')\n .action(async (name) => {\n try {\n const profiles = await listProfiles();\n const exists = profiles.some((p) => p.name === name);\n\n if (!exists) {\n console.error(colors.red('Error:'), `Profile \"${name}\" not found`);\n console.log(`\\nCreate it with: xopc profile create ${name}`);\n process.exit(1);\n }\n\n console.log(colors.cyan('Run this command to switch to this profile:'));\n console.log();\n console.log(` ${getSwitchCommand(name)}`);\n console.log();\n console.log(`State directory: ${resolveProfileStateDir(name)}`);\n } catch (error) {\n log.error({ error }, 'Failed to switch profile');\n console.error(colors.red('Error:'), error instanceof Error ? error.message : String(error));\n process.exit(1);\n }\n });\n\n return cmd;\n}\n\nregister({\n id: 'profile',\n name: 'profile',\n description: 'Manage xopc state profiles (~/.xopc vs ~/.xopc-<name>)',\n factory: createProfileCommand,\n metadata: {\n category: 'setup',\n examples: ['xopc profile list', 'xopc profile create staging'],\n },\n});\n\nexport { createProfileCommand };\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"project.js","names":[],"sources":["../../../../src/cli/commands/project.ts"],"sourcesContent":["import { Command } from 'commander';\n\nimport { loadConfig } from '../../config/loader.js';\nimport {\n isValidProjectAgentId,\n normalizeProjectAgentId,\n ProjectService,\n type Project,\n type ProjectStatus,\n} from '../../projects/index.js';\nimport {\n closeXopcDatabase,\n getSessionMetadata,\n isXopcDatabaseOpen,\n openXopcDatabase,\n} from '../../storage/sqlite/index.js';\nimport { GoalService } from '../../goals/index.js';\nimport { register, formatExamples, type CLIContext } from '../registry.js';\n\nfunction parseStatus(raw: string | undefined): ProjectStatus | undefined {\n return raw === 'active' || raw === 'paused' || raw === 'archived' ? raw : undefined;\n}\n\nasync function withProjects<T>(_ctx: CLIContext, fn: (projects: ProjectService) => Promise<T> | T): Promise<T> {\n const wasOpen = isXopcDatabaseOpen();\n if (!wasOpen) openXopcDatabase();\n try {\n return await fn(new ProjectService());\n } finally {\n if (!wasOpen) closeXopcDatabase();\n }\n}\n\nfunction resolveProject(projects: ProjectService, ref: string): Project | null {\n return projects.get(ref) ?? projects.getBySlug(ref);\n}\n\nfunction formatProject(project: Project & { sessionCount?: number; goalCount?: number; activeGoalCount?: number }): string {\n const counts = [\n project.sessionCount != null ? `sessions ${project.sessionCount}` : undefined,\n project.goalCount != null ? `goals ${project.goalCount}` : undefined,\n project.activeGoalCount != null ? `active goals ${project.activeGoalCount}` : undefined,\n ].filter(Boolean).join(' | ');\n const lines = [\n `${project.id} [${project.status}] ${project.name}`,\n ` Slug: ${project.slug}`,\n project.defaultAgentId ? ` Default agent: ${project.defaultAgentId}` : ' Default agent: global default',\n project.description ? ` Description: ${project.description}` : undefined,\n project.workspaceRoot ? ` Workspace: ${project.workspaceRoot}` : undefined,\n counts ? ` ${counts}` : undefined,\n ` Updated: ${new Date(project.updatedAt).toISOString()}`,\n ];\n return lines.filter(Boolean).join('\\n');\n}\n\nfunction createProjectCommand(ctx: CLIContext): Command {\n const cmd = new Command('project')\n .description('Manage long-running projects')\n .addHelpText(\n 'after',\n formatExamples([\n 'xopc project list',\n 'xopc project new xopc --workspace ~/develop/github/xopc',\n 'xopc project show xopc',\n 'xopc project attach-session <session-key> xopc',\n 'xopc project attach-goal <goal-id> xopc',\n ]),\n );\n\n cmd.addCommand(\n new Command('list')\n .description('List projects')\n .option('--status <status>', 'active, paused, or archived')\n .option('--search <query>', 'Search by name, slug, or description')\n .option('--limit <n>', 'Maximum rows', '20')\n .option('--json', 'Output JSON')\n .action(async (options) => {\n await withProjects(ctx, (projects) => {\n const result = projects.list({\n status: parseStatus(options.status),\n search: options.search,\n limit: Number(options.limit) || 20,\n });\n if (options.json) {\n console.log(JSON.stringify(result, null, 2));\n return;\n }\n if (!result.items.length) {\n console.log('No projects.');\n return;\n }\n console.log('Projects:\\n');\n for (const project of result.items) {\n console.log(`${formatProject(project)}\\n`);\n }\n });\n }),\n );\n\n cmd.addCommand(\n new Command('new')\n .description('Create a project')\n .argument('<name>', 'Project name')\n .option('--description <text>', 'Project description')\n .option('--default-agent <id>', 'Default agent id for new project sessions and goals')\n .option('--workspace <path>', 'Project workspace root')\n .option('--brief <text>', 'Project brief')\n .option('--instructions <text>', 'Project instructions')\n .option('--json', 'Output JSON')\n .action(async (name, options) => {\n const cfg = loadConfig(ctx.configPath);\n const defaultAgentId = normalizeProjectAgentId(options.defaultAgent);\n if (!isValidProjectAgentId(cfg, defaultAgentId)) {\n console.error(`Agent not found: ${options.defaultAgent}`);\n process.exit(1);\n }\n await withProjects(ctx, (projects) => {\n const project = projects.create({\n name,\n description: options.description,\n defaultAgentId,\n workspaceRoot: options.workspace,\n brief: options.brief,\n instructions: options.instructions,\n });\n if (options.json) {\n console.log(JSON.stringify(project, null, 2));\n return;\n }\n console.log(`Created project ${project.id}`);\n console.log(` ${project.name} (${project.slug})`);\n });\n }),\n );\n\n cmd.addCommand(\n new Command('show')\n .description('Show project details')\n .argument('<project>', 'Project id or slug')\n .option('--json', 'Output JSON')\n .action(async (projectRef, options) => {\n await withProjects(ctx, (projects) => {\n const project = resolveProject(projects, projectRef);\n const detailed = project ? projects.getWithDetails(project.id) : null;\n if (!detailed) {\n console.error(`Project not found: ${projectRef}`);\n process.exit(1);\n }\n if (options.json) {\n console.log(JSON.stringify(detailed, null, 2));\n return;\n }\n console.log(formatProject(detailed));\n if (detailed.brief) console.log(`\\nBrief:\\n${detailed.brief}`);\n if (detailed.instructions) console.log(`\\nInstructions:\\n${detailed.instructions}`);\n });\n }),\n );\n\n cmd.addCommand(\n new Command('update')\n .description('Update a project')\n .argument('<project>', 'Project id or slug')\n .option('--name <name>', 'New name')\n .option('--description <text>', 'Project description')\n .option('--default-agent <id>', 'Default agent id for new project sessions and goals')\n .option('--clear-default-agent', 'Clear project default agent')\n .option('--status <status>', 'active, paused, or archived')\n .option('--workspace <path>', 'Project workspace root')\n .option('--brief <text>', 'Project brief')\n .option('--instructions <text>', 'Project instructions')\n .action(async (projectRef, options) => {\n const cfg = loadConfig(ctx.configPath);\n const defaultAgentId = options.clearDefaultAgent ? null : normalizeProjectAgentId(options.defaultAgent);\n if (defaultAgentId && !isValidProjectAgentId(cfg, defaultAgentId)) {\n console.error(`Agent not found: ${options.defaultAgent}`);\n process.exit(1);\n }\n await withProjects(ctx, (projects) => {\n const project = resolveProject(projects, projectRef);\n if (!project) {\n console.error(`Project not found: ${projectRef}`);\n process.exit(1);\n }\n const updated = projects.update(project.id, {\n name: options.name,\n description: options.description,\n ...(options.clearDefaultAgent || options.defaultAgent !== undefined ? { defaultAgentId } : {}),\n status: parseStatus(options.status),\n workspaceRoot: options.workspace,\n brief: options.brief,\n instructions: options.instructions,\n });\n console.log(`Updated project ${updated.id}`);\n });\n }),\n );\n\n cmd.addCommand(\n new Command('archive')\n .description('Archive a project')\n .argument('<project>', 'Project id or slug')\n .action(async (projectRef) => {\n await withProjects(ctx, (projects) => {\n const project = resolveProject(projects, projectRef);\n if (!project) {\n console.error(`Project not found: ${projectRef}`);\n process.exit(1);\n }\n projects.update(project.id, { status: 'archived' });\n console.log(`Archived project ${project.name}`);\n });\n }),\n );\n\n cmd.addCommand(\n new Command('attach-session')\n .description('Attach a session to a project')\n .argument('<session-key>', 'Session key')\n .argument('<project>', 'Project id or slug')\n .action(async (sessionKey, projectRef) => {\n await withProjects(ctx, (projects) => {\n const project = resolveProject(projects, projectRef);\n if (!project) {\n console.error(`Project not found: ${projectRef}`);\n process.exit(1);\n }\n projects.attachSession(sessionKey, project.id);\n console.log(`Attached session to ${project.name}`);\n });\n }),\n );\n\n cmd.addCommand(\n new Command('detach-session')\n .description('Detach a session from its project')\n .argument('<session-key>', 'Session key')\n .action(async (sessionKey) => {\n await withProjects(ctx, (projects) => {\n projects.detachSession(sessionKey);\n console.log('Detached session from project.');\n });\n }),\n );\n\n cmd.addCommand(\n new Command('attach-goal')\n .description('Attach a goal to a project')\n .argument('<goal-id>', 'Goal id')\n .argument('<project>', 'Project id or slug')\n .action(async (goalId, projectRef) => {\n await withProjects(ctx, (projects) => {\n const project = resolveProject(projects, projectRef);\n if (!project) {\n console.error(`Project not found: ${projectRef}`);\n process.exit(1);\n }\n projects.attachGoal(goalId, project.id);\n console.log(`Attached goal to ${project.name}`);\n });\n }),\n );\n\n cmd.addCommand(\n new Command('detach-goal')\n .description('Detach a goal from its project')\n .argument('<goal-id>', 'Goal id')\n .action(async (goalId) => {\n await withProjects(ctx, (projects) => {\n projects.detachGoal(goalId);\n console.log('Detached goal from project.');\n });\n }),\n );\n\n cmd.addCommand(\n new Command('sessions')\n .description('List sessions in a project')\n .argument('<project>', 'Project id or slug')\n .option('--limit <n>', 'Maximum rows', '20')\n .action(async (projectRef, options) => {\n await withProjects(ctx, (projects) => {\n const project = resolveProject(projects, projectRef);\n if (!project) {\n console.error(`Project not found: ${projectRef}`);\n process.exit(1);\n }\n const keys = projects.listSessionKeys(project.id, Number(options.limit) || 20);\n if (!keys.length) {\n console.log('No sessions.');\n return;\n }\n for (const key of keys) {\n const session = getSessionMetadata(key);\n const label = session?.name ? ` - ${session.name}` : '';\n console.log(`${key}${label}`);\n }\n });\n }),\n );\n\n cmd.addCommand(\n new Command('goals')\n .description('List goals in a project')\n .argument('<project>', 'Project id or slug')\n .option('--limit <n>', 'Maximum rows', '20')\n .action(async (projectRef, options) => {\n await withProjects(ctx, (projects) => {\n const project = resolveProject(projects, projectRef);\n if (!project) {\n console.error(`Project not found: ${projectRef}`);\n process.exit(1);\n }\n const goals = new GoalService().list({ projectId: project.id, limit: Number(options.limit) || 20 });\n if (!goals.length) {\n console.log('No goals.');\n return;\n }\n for (const goal of goals) {\n console.log(`${goal.id} [${goal.status}] ${goal.title}`);\n }\n });\n }),\n );\n\n return cmd;\n}\n\nregister({\n id: 'project',\n name: 'project',\n description: 'Manage long-running projects',\n factory: createProjectCommand,\n metadata: {\n category: 'utility',\n examples: ['xopc project list', 'xopc project new xopc', 'xopc project show <project>'],\n },\n});\n\nexport { createProjectCommand };\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"providers.js","names":[],"sources":["../../../../src/cli/commands/providers.ts"],"sourcesContent":["/**\n * `xopc providers` — user-friendly hub for managing LLM provider credentials.\n *\n * This command sits on top of the existing auth-profile store (`xopc auth …`),\n * but presents a setup-style surface — `list / set-key / unset-key / schema` —\n * with the same `SetupOutcome` JSON contract used by other M1 setup commands.\n * Agents (M2 skills) and the WebUI (M3) can consume both shapes uniformly.\n *\n * Capability-provider (image / voice) settings live under `cfg.providers.<id>`\n * and will be wired into this command's flags in a follow-up slice.\n */\n\nimport { Command } from 'commander';\n\nimport {\n type AuthProfileCredential,\n getProfile,\n listAllProfiles,\n listProfilesForProvider,\n removeAuthProfile,\n upsertAuthProfile,\n} from '../../auth/profiles/index.js';\nimport {\n PROVIDER_ENV_MAP,\n PROVIDER_META,\n getAllProviders,\n getApiKeyFromEnv,\n getSortedProviders,\n type ProviderMeta,\n} from '../../providers/index.js';\n\nimport { register, formatExamples, type CLIContext } from '../registry.js';\nimport { colors } from '../utils/colors.js';\n\nimport {\n SETUP_EXIT,\n emitOutcome,\n isPromptCancelled,\n promptSecret,\n type SetupOutcome,\n} from './setup-shared/index.js';\n\ntype KeyStatus =\n | 'configured' // auth profile present\n | 'env-only' // no profile, but env var detected\n | 'oauth' // OAuth-only provider\n | 'not-configured';\n\ninterface ProviderListEntry {\n id: string;\n name: string;\n category: ProviderMeta['category'];\n supportsApiKey: boolean;\n supportsOAuth: boolean;\n status: KeyStatus;\n profileCount: number;\n envVar?: string;\n}\n\nconst KEY_OPTION_HINT =\n 'You can either pass --key=<value>, set the env var (e.g. OPENAI_API_KEY), or omit --key to be prompted securely.';\n\nfunction defaultProfileId(provider: string): string {\n return `${provider}:default`;\n}\n\nfunction maskKey(value: string | undefined): string | null {\n if (!value) return null;\n if (value.length <= 8) return '*'.repeat(value.length);\n return `${value.slice(0, 4)}…${value.slice(-4)}`;\n}\n\nfunction computeKeyStatus(id: string, meta: ProviderMeta, profileCount: number): KeyStatus {\n if (profileCount > 0) return 'configured';\n if (getApiKeyFromEnv(id)) return 'env-only';\n if (meta.supportsOAuth && !meta.supportsApiKey) return 'oauth';\n return 'not-configured';\n}\n\nfunction providerEnvVar(id: string): string {\n return PROVIDER_ENV_MAP[id]?.[0] ?? `${id.toUpperCase().replace(/-/g, '_')}_API_KEY`;\n}\n\nfunction listProviders(): ProviderListEntry[] {\n const ids = getSortedProviders().length > 0 ? getSortedProviders() : getAllProviders();\n return ids.map((id) => {\n const meta = PROVIDER_META[id] ?? { name: id, category: 'specialty', supportsApiKey: true };\n const profileCount = listProfilesForProvider(id).length;\n return {\n id,\n name: meta.name,\n category: meta.category,\n supportsApiKey: Boolean(meta.supportsApiKey),\n supportsOAuth: Boolean(meta.supportsOAuth),\n status: computeKeyStatus(id, meta, profileCount),\n profileCount,\n envVar: providerEnvVar(id),\n };\n });\n}\n\nconst STATUS_BADGE: Record<KeyStatus, string> = {\n configured: colors.green('● configured'),\n 'env-only': colors.cyan('● env-only'),\n oauth: colors.gray('● oauth'),\n 'not-configured': colors.gray('○ not set'),\n};\n\nfunction printListText(entries: ProviderListEntry[]): void {\n const grouped = new Map<ProviderMeta['category'], ProviderListEntry[]>();\n for (const e of entries) {\n const bucket = grouped.get(e.category) ?? [];\n bucket.push(e);\n grouped.set(e.category, bucket);\n }\n const order: ProviderMeta['category'][] = ['common', 'specialty', 'oauth', 'enterprise', 'extension'];\n for (const cat of order) {\n const list = grouped.get(cat);\n if (!list?.length) continue;\n console.log('');\n console.log(colors.bold(cat.toUpperCase()));\n const idWidth = Math.max(...list.map((e) => e.id.length));\n for (const e of list) {\n const id = e.id.padEnd(idWidth);\n const note = e.profileCount > 1 ? colors.gray(` (${e.profileCount} profiles)`) : '';\n console.log(` ${id} ${STATUS_BADGE[e.status]} ${colors.gray(e.name)}${note}`);\n }\n }\n console.log('');\n console.log(colors.gray('Use: xopc providers set-key <id> --key <key>'));\n}\n\nfunction printListJson(entries: ProviderListEntry[]): void {\n process.stdout.write(JSON.stringify({ ok: true, providers: entries }) + '\\n');\n}\n\ninterface MutationOptions {\n dryRun: boolean;\n json: boolean;\n}\n\nfunction finalizeProviderOutcome(outcome: SetupOutcome, options: MutationOptions): SetupOutcome {\n emitOutcome(outcome, options.json);\n process.exitCode = outcome.ok ? SETUP_EXIT.OK : SETUP_EXIT.ERROR;\n return outcome;\n}\n\nfunction planSetKey(args: {\n provider: string;\n profileId: string;\n key: string;\n}): { existing?: AuthProfileCredential; next: AuthProfileCredential; willChange: boolean } {\n const existing = getProfile(args.profileId);\n const next: AuthProfileCredential = {\n type: 'api_key',\n provider: args.provider,\n key: args.key,\n };\n const willChange =\n !existing ||\n existing.type !== 'api_key' ||\n existing.key !== args.key ||\n existing.provider !== args.provider;\n return { existing, next, willChange };\n}\n\nasync function runSetKey(args: {\n provider: string;\n profileId: string;\n key: string;\n options: MutationOptions;\n}): Promise<SetupOutcome> {\n const meta = PROVIDER_META[args.provider];\n if (meta && meta.supportsApiKey === false) {\n const outcome: SetupOutcome = {\n ok: false,\n action: 'add',\n domain: 'providers',\n target: args.provider,\n changedPaths: [],\n dryRun: args.options.dryRun,\n errors: [\n {\n message: `Provider \"${args.provider}\" does not support API keys; use OAuth via \\`xopc auth login ${args.provider}\\`.`,\n },\n ],\n };\n return finalizeProviderOutcome(outcome, args.options);\n }\n\n const { existing, willChange } = planSetKey(args);\n const changedPaths = willChange ? [`profiles.${args.profileId}.key`] : [];\n const action = existing ? 'set' : 'add';\n\n if (!willChange) {\n const outcome: SetupOutcome = {\n ok: true,\n action: 'noop',\n domain: 'providers',\n target: args.provider,\n changedPaths: [],\n dryRun: args.options.dryRun,\n value: { profileId: args.profileId, key: maskKey(args.key) },\n notes: ['Key is unchanged.'],\n };\n return finalizeProviderOutcome(outcome, args.options);\n }\n\n if (!args.options.dryRun) {\n try {\n upsertAuthProfile({\n profileId: args.profileId,\n credential: { type: 'api_key', provider: args.provider, key: args.key },\n });\n } catch (error) {\n const outcome: SetupOutcome = {\n ok: false,\n action,\n domain: 'providers',\n target: args.provider,\n changedPaths,\n dryRun: false,\n errors: [{ message: (error as Error).message }],\n };\n return finalizeProviderOutcome(outcome, args.options);\n }\n }\n\n const outcome: SetupOutcome = {\n ok: true,\n action,\n domain: 'providers',\n target: args.provider,\n changedPaths,\n dryRun: args.options.dryRun,\n value: { profileId: args.profileId, key: maskKey(args.key) },\n };\n return finalizeProviderOutcome(outcome, args.options);\n}\n\nasync function runUnsetKey(args: {\n provider: string;\n profileId: string;\n options: MutationOptions;\n}): Promise<SetupOutcome> {\n const existing = getProfile(args.profileId);\n if (!existing) {\n const outcome: SetupOutcome = {\n ok: true,\n action: 'noop',\n domain: 'providers',\n target: args.provider,\n changedPaths: [],\n dryRun: args.options.dryRun,\n notes: [`No profile \"${args.profileId}\" to remove.`],\n };\n return finalizeProviderOutcome(outcome, args.options);\n }\n\n const changedPaths = [`profiles.${args.profileId}`];\n if (!args.options.dryRun) {\n removeAuthProfile(args.profileId);\n }\n\n const outcome: SetupOutcome = {\n ok: true,\n action: 'remove',\n domain: 'providers',\n target: args.provider,\n changedPaths,\n dryRun: args.options.dryRun,\n value: { profileId: args.profileId, removed: true },\n };\n return finalizeProviderOutcome(outcome, args.options);\n}\n\nfunction emitSchema(opts: { providerId?: string; json: boolean }): void {\n const payload = {\n ok: true,\n schema: {\n target: 'auth profile (~/.xopc/auth.json)',\n action: { type: 'string', enum: ['set-key', 'unset-key', 'list', 'schema'] },\n fields: {\n provider: {\n type: 'string',\n description: 'Provider id (e.g. openai, anthropic, deepseek). See `xopc providers list`.',\n enum: getAllProviders(),\n },\n key: {\n type: 'string',\n secret: true,\n description: 'API key. Prefer passing via stdin/prompt over CLI arg to avoid shell history leaks.',\n },\n profile: {\n type: 'string',\n default: '<provider>:default',\n description: 'Optional profile id when managing multiple keys per provider.',\n },\n },\n outcome: {\n ok: 'boolean',\n action: 'add | set | remove | noop',\n domain: 'providers',\n target: '<provider>',\n changedPaths: 'string[]',\n dryRun: 'boolean',\n value: '{ profileId, key? }',\n },\n },\n providers: opts.providerId\n ? listProviders().filter((p) => p.id === opts.providerId)\n : listProviders(),\n };\n if (opts.json) {\n process.stdout.write(JSON.stringify(payload) + '\\n');\n } else {\n console.log(JSON.stringify(payload, null, 2));\n }\n}\n\nfunction createProvidersCommand(_ctx: CLIContext): Command {\n const cmd = new Command('providers')\n .description('Manage LLM provider credentials (user-friendly hub over `xopc auth`)')\n .addHelpText(\n 'after',\n formatExamples([\n 'xopc providers list',\n 'xopc providers list --json',\n 'xopc providers set-key openai --key sk-xxx',\n 'xopc providers set-key deepseek # prompts for the key (no echo)',\n 'xopc providers set-key anthropic --key sk-ant-... --profile work',\n 'xopc providers unset-key openai',\n 'xopc providers set-key openai --key sk-xxx --dry-run --json',\n 'xopc providers schema --json',\n ]),\n );\n\n cmd\n .command('list')\n .description('List known providers and credential status')\n .option('--json', 'Output as JSON for agents/UI', false)\n .action((opts: { json?: boolean }) => {\n const entries = listProviders();\n if (opts.json) {\n printListJson(entries);\n } else {\n printListText(entries);\n }\n });\n\n cmd\n .command('set-key <provider>')\n .description('Set or update the API key for a provider (writes an auth profile)')\n .option('--key <value>', `API key value. ${KEY_OPTION_HINT}`)\n .option('--profile <id>', 'Profile id (default: <provider>:default)')\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 provider: string,\n opts: { key?: string; profile?: string; dryRun?: boolean; json?: boolean },\n ) => {\n const profileId = opts.profile?.trim() || defaultProfileId(provider);\n let key = opts.key?.trim();\n if (!key) {\n try {\n key = await promptSecret(`API key for ${provider}:`);\n } catch (error) {\n if (isPromptCancelled(error)) {\n const outcome: SetupOutcome = {\n ok: false,\n action: 'set',\n domain: 'providers',\n target: provider,\n changedPaths: [],\n dryRun: Boolean(opts.dryRun),\n errors: [{ message: 'Cancelled by user' }],\n };\n emitOutcome(outcome, Boolean(opts.json));\n process.exitCode = SETUP_EXIT.CANCELLED;\n return;\n }\n throw error;\n }\n }\n await runSetKey({\n provider,\n profileId,\n key,\n options: { dryRun: Boolean(opts.dryRun), json: Boolean(opts.json) },\n });\n },\n );\n\n cmd\n .command('unset-key <provider>')\n .description('Remove a provider auth profile')\n .option('--profile <id>', 'Profile id (default: <provider>:default)')\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 provider: string,\n opts: { profile?: string; dryRun?: boolean; json?: boolean },\n ) => {\n const profileId = opts.profile?.trim() || defaultProfileId(provider);\n await runUnsetKey({\n provider,\n profileId,\n options: { dryRun: Boolean(opts.dryRun), json: Boolean(opts.json) },\n });\n },\n );\n\n cmd\n .command('schema [provider]')\n .description('Print a JSON description of provider setup fields (for agents / UIs)')\n .option('--json', 'JSON output (default human-readable JSON)', false)\n .action((providerId: string | undefined, opts: { json?: boolean }) => {\n emitSchema({ providerId, json: Boolean(opts.json) });\n });\n\n return cmd;\n}\n\n// Internal exports for tests.\nexport { listProviders, planSetKey, maskKey, runSetKey, runUnsetKey };\n// Avoid \"unused import\" lint noise; listAllProfiles is exported for diagnostics.\nexport { listAllProfiles };\n\nregister({\n id: 'providers',\n name: 'providers',\n description: 'Manage LLM provider credentials',\n factory: createProvidersCommand,\n metadata: {\n category: 'setup',\n examples: [\n 'xopc providers list',\n 'xopc providers set-key openai --key sk-xxx',\n 'xopc providers unset-key openai',\n 'xopc providers schema --json',\n ],\n },\n});\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resume.js","names":[],"sources":["../../../../src/cli/commands/resume.ts"],"sourcesContent":["import { Command } from 'commander';\n\nimport { register, formatExamples, type CLIContext } from '../registry.js';\nimport { prepareTuiStartup, runTuiFromCliOptions, type TuiCliOptions } from './tui-runner.js';\n\nfunction createResumeCommand(ctx: CLIContext): Command {\n return new Command('resume')\n .description('Resume a previous TUI session')\n .argument('[sessionKey]', 'Session key to resume directly')\n .addHelpText(\n 'after',\n formatExamples([\n 'xopc resume # Choose a session interactively',\n 'xopc resume agent:main:tui-... # Resume a specific session',\n 'xopc resume --gateway --url http://host:3120 # Choose a remote session',\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('--workdir <dir>', 'Workspace directory for the resumed TUI session')\n .option('--no-cwd', 'Do not use the launch directory as the resumed 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 (sessionKey: string | undefined, options: TuiCliOptions) => {\n prepareTuiStartup(ctx.configPath);\n await runTuiFromCliOptions(options, {\n session: sessionKey,\n openSessionPickerOnStart: sessionKey === undefined,\n });\n });\n}\n\nregister({\n id: 'resume',\n name: 'resume',\n description: 'Resume a previous TUI session',\n factory: createResumeCommand,\n metadata: {\n category: 'runtime',\n examples: ['xopc resume', 'xopc resume agent:main:tui-...'],\n },\n});\n"],"mappings":";;;;AAKA,SAAS,oBAAoB,KAA0B;AACrD,QAAO,IAAI,QAAQ,SAAS,CACzB,YAAY,gCAAgC,CAC5C,SAAS,gBAAgB,iCAAiC,CAC1D,YACC,SACA,eAAe;EACb;EACA;EACA;EACD,CAAC,CACH,CACA,OAAO,eAAe,+CAA+C,CACrE,OAAO,mBAAmB,uBAAuB,CACjD,OAAO,yBAAyB,oDAAoD,CACpF,OAAO,mBAAmB,kDAAkD,CAC5E,OAAO,YAAY,uEAAuE,CAC1F,OAAO,WAAW,6CAA6C,CAC/D,OAAO,aAAa,gEAAgE,CACpF,OAAO,kBAAkB,gEAAgE,CACzF,OAAO,sBAAsB,0BAA0B,CACvD,OAAO,OAAO,YAAgC,YAA2B;AACxE,oBAAkB,IAAI,WAAW;AACjC,QAAM,qBAAqB,SAAS;GAClC,SAAS;GACT,0BAA0B,eAAe,KAAA;GAC1C,CAAC;GACF;;AAGN,SAAS;CACP,IAAI;CACJ,MAAM;CACN,aAAa;CACb,SAAS;CACT,UAAU;EACR,UAAU;EACV,UAAU,CAAC,eAAe,iCAAiC;EAC5D;CACF,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","names":[],"sources":["../../../../src/cli/commands/search.ts"],"sourcesContent":["/**\n * `xopc search` — manage web-search providers.\n *\n * Backed by `cfg.tools.web.search.providers[]` per `SearchProviderEntrySchema`.\n * Adds entries idempotently keyed by `type` (brave / tavily / bing / searxng).\n */\n\nimport { Command } from 'commander';\n\nimport { loadConfig } from '../../config/loader.js';\nimport { resolveConfigPath } from '../../config/paths.js';\nimport type { Config, SearchProviderEntry } from '../../config/schema.js';\nimport { register, formatExamples, type CLIContext } from '../registry.js';\nimport { colors } from '../utils/colors.js';\n\nimport {\n SETUP_EXIT,\n SetupValidationError,\n emitOutcome,\n isPromptCancelled,\n promptSecret,\n runSetup,\n type SetupOutcome,\n} from './setup-shared/index.js';\n\nconst SEARCH_TYPES = ['brave', 'tavily', 'bing', 'searxng'] as const;\ntype SearchType = (typeof SEARCH_TYPES)[number];\n\nfunction isSearchType(value: string): value is SearchType {\n return (SEARCH_TYPES as readonly string[]).includes(value);\n}\n\nfunction readProviders(cfg: Config): SearchProviderEntry[] {\n return ((cfg.tools?.web?.search?.providers ?? []) as SearchProviderEntry[]).slice();\n}\n\nfunction searchEntriesEqual(a: SearchProviderEntry, b: SearchProviderEntry): boolean {\n return (\n a.type === b.type &&\n (a.apiKey ?? undefined) === (b.apiKey ?? undefined) &&\n (a.url ?? undefined) === (b.url ?? undefined) &&\n Boolean(a.disabled) === Boolean(b.disabled)\n );\n}\n\nexport function applySearchProviderUpsert(\n cfg: Config,\n entry: SearchProviderEntry,\n): Config {\n const list = (cfg.tools?.web?.search?.providers ?? []) as SearchProviderEntry[];\n const existing = list.find((p) => p.type === entry.type);\n // If the existing entry already matches the desired state, return the\n // config object unchanged so the diff stays empty (noop). Re-building the\n // providers array on every upsert would otherwise change object identities\n // and trigger a false-positive diff.\n if (\n existing &&\n searchEntriesEqual(existing, entry) &&\n typeof cfg.tools?.web?.search?.maxResults === 'number'\n ) {\n return cfg;\n }\n\n const tools = { ...((cfg.tools ?? {}) as Record<string, unknown>) };\n const web = { ...((tools.web ?? {}) as Record<string, unknown>) };\n const search = { ...((web.search ?? {}) as Record<string, unknown>) };\n const next = list.filter((p) => p.type !== entry.type);\n next.push(entry);\n search.providers = next;\n if (typeof search.maxResults !== 'number') search.maxResults = 5;\n web.search = search;\n tools.web = web;\n return { ...cfg, tools } as Config;\n}\n\nexport function applySearchProviderRemove(\n cfg: Config,\n type: SearchType,\n): Config {\n const list = readProviders(cfg);\n if (!list.some((p) => p.type === type)) {\n throw new SetupValidationError([\n { message: `No \"${type}\" search provider configured.` },\n ]);\n }\n const tools = { ...((cfg.tools ?? {}) as Record<string, unknown>) };\n const web = { ...((tools.web ?? {}) as Record<string, unknown>) };\n const search = { ...((web.search ?? {}) as Record<string, unknown>) };\n search.providers = list.filter((p) => p.type !== type);\n web.search = search;\n tools.web = web;\n return { ...cfg, tools } 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 maskKey(key?: string): string | null {\n if (!key) return null;\n if (key.length <= 8) return '*'.repeat(key.length);\n return `${key.slice(0, 4)}…${key.slice(-4)}`;\n}\n\nfunction summarizeEntry(entry: SearchProviderEntry): Record<string, unknown> {\n return {\n type: entry.type,\n apiKey: maskKey(entry.apiKey),\n url: entry.url,\n disabled: entry.disabled ?? false,\n };\n}\n\nfunction createSearchCommand(_ctx: CLIContext): Command {\n const cmd = new Command('search')\n .description('Manage web-search providers (brave / tavily / bing / searxng)')\n .addHelpText(\n 'after',\n formatExamples([\n 'xopc search list',\n 'xopc search list --json',\n 'xopc search add brave --key brv-xxx',\n 'xopc search add tavily --key tvly-xxx',\n 'xopc search add searxng --url http://localhost:8080',\n 'xopc search remove brave',\n 'xopc search add brave --key brv-xxx --dry-run --json',\n 'xopc search schema --json',\n ]),\n );\n\n cmd\n .command('list')\n .description('List configured web-search providers')\n .option('--json', 'Output as JSON', false)\n .action((opts: { json?: boolean }, command: Command) => {\n const cfg = loadConfig(resolveConfigPathFromCommand(command));\n const providers = readProviders(cfg).map(summarizeEntry);\n if (opts.json) {\n process.stdout.write(\n JSON.stringify({ ok: true, providers, supportedTypes: [...SEARCH_TYPES] }) + '\\n',\n );\n return;\n }\n console.log('');\n console.log(colors.bold('SEARCH PROVIDERS'));\n if (providers.length === 0) {\n console.log(colors.gray(' (none configured — HTML fallback only)'));\n } else {\n for (const p of providers) {\n const flag = p.disabled ? colors.gray('○ disabled') : colors.green('● active');\n const key = p.apiKey ? colors.gray(` key=${p.apiKey}`) : '';\n const url = p.url ? colors.gray(` url=${p.url}`) : '';\n console.log(` ${String(p.type).padEnd(10)} ${flag}${key}${url}`);\n }\n }\n console.log('');\n console.log(colors.gray(`Supported: ${SEARCH_TYPES.join(', ')}`));\n });\n\n cmd\n .command('add <type>')\n .description('Add or replace a search provider entry (idempotent by type)')\n .option('--key <value>', 'API key (brave / tavily / bing). Prompts securely if omitted.')\n .option('--url <value>', 'SearXNG instance URL (required for type=searxng)')\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 type: string,\n opts: { key?: string; url?: string; dryRun?: boolean; json?: boolean },\n command: Command,\n ) => {\n const dryRun = Boolean(opts.dryRun);\n const json = Boolean(opts.json);\n const t = type.trim().toLowerCase();\n if (!isSearchType(t)) {\n const outcome: SetupOutcome = {\n ok: false,\n action: 'add',\n domain: 'search',\n target: t,\n changedPaths: [],\n dryRun,\n errors: [\n {\n message: `Unknown search type \"${t}\". Use one of: ${SEARCH_TYPES.join(', ')}.`,\n },\n ],\n };\n emitOutcome(outcome, json);\n process.exitCode = SETUP_EXIT.ERROR;\n return;\n }\n\n const entry: SearchProviderEntry = { type: t };\n if (t === 'searxng') {\n if (!opts.url) {\n emitOutcome(\n {\n ok: false,\n action: 'add',\n domain: 'search',\n target: t,\n changedPaths: [],\n dryRun,\n errors: [{ path: 'url', message: '--url is required for type=searxng' }],\n },\n json,\n );\n process.exitCode = SETUP_EXIT.ERROR;\n return;\n }\n entry.url = opts.url.trim();\n } else {\n let key = opts.key?.trim();\n if (!key) {\n try {\n key = await promptSecret(`API key for ${t}:`);\n } catch (error) {\n if (isPromptCancelled(error)) {\n emitOutcome(\n {\n ok: false,\n action: 'add',\n domain: 'search',\n target: t,\n changedPaths: [],\n dryRun,\n errors: [{ message: 'Cancelled by user' }],\n },\n json,\n );\n process.exitCode = SETUP_EXIT.CANCELLED;\n return;\n }\n throw error;\n }\n }\n entry.apiKey = key;\n }\n\n await runSetup({\n configPath: resolveConfigPathFromCommand(command),\n options: { dryRun, json },\n mutator: {\n domain: 'search',\n target: t,\n action: 'add',\n mutate(cfg) {\n return applySearchProviderUpsert(cfg, entry);\n },\n resultValue: () => summarizeEntry(entry),\n },\n });\n },\n );\n\n cmd\n .command('remove <type>')\n .description('Remove a search provider entry')\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 type: string,\n opts: { dryRun?: boolean; json?: boolean },\n command: Command,\n ) => {\n const t = type.trim().toLowerCase();\n if (!isSearchType(t)) {\n emitOutcome(\n {\n ok: false,\n action: 'remove',\n domain: 'search',\n target: t,\n changedPaths: [],\n dryRun: Boolean(opts.dryRun),\n errors: [\n {\n message: `Unknown search type \"${t}\". Use one of: ${SEARCH_TYPES.join(', ')}.`,\n },\n ],\n },\n Boolean(opts.json),\n );\n process.exitCode = SETUP_EXIT.ERROR;\n return;\n }\n await runSetup({\n configPath: resolveConfigPathFromCommand(command),\n options: { dryRun: Boolean(opts.dryRun), json: Boolean(opts.json) },\n mutator: {\n domain: 'search',\n target: t,\n action: 'remove',\n mutate(cfg) {\n return applySearchProviderRemove(cfg, t);\n },\n },\n });\n },\n );\n\n cmd\n .command('schema')\n .description('Print web-search 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.tools.web.search.providers[]',\n fields: {\n type: { type: 'enum', enum: [...SEARCH_TYPES], required: true },\n key: {\n type: 'string',\n secret: true,\n description: 'API key (brave / tavily / bing).',\n },\n url: {\n type: 'url',\n description: 'SearXNG instance URL (only for type=searxng).',\n },\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: 'search',\n name: 'search',\n description: 'Configure web-search providers',\n factory: createSearchCommand,\n metadata: {\n category: 'setup',\n examples: [\n 'xopc search list',\n 'xopc search add brave --key brv-xxx',\n 'xopc search add searxng --url http://localhost:8080',\n 'xopc search remove brave',\n 'xopc search schema --json',\n ],\n },\n});\n"],"mappings":"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"}
|