@xopcai/xopc 0.0.353 → 0.0.355
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/dist/browser-ext/manifest.json +1 -1
- package/dist/extensions/telegram/xopc.extension.json +1 -1
- package/dist/gateway/static/root/assets/activity-YogQEteU.js +1 -0
- package/dist/gateway/static/root/assets/activity-store-X7CG9pzB.js +1 -0
- package/dist/gateway/static/root/assets/{agent-avatar-dicebear-BVIuZcCP.js → agent-avatar-dicebear-DiEBNuSv.js} +1 -1
- package/dist/gateway/static/root/assets/agent-defaults-settings-panel-DpBmB3QX.js +1 -0
- package/dist/gateway/static/root/assets/agent-plugin-dialog-DlojWUY_.js +1 -0
- package/dist/gateway/static/root/assets/agents-CeSCdUHP.js +66 -0
- package/dist/gateway/static/root/assets/app-chrome-BeB4KgOf.js +1 -0
- package/dist/gateway/static/root/assets/app-management-settings-panel-MkSa6isi.js +1 -0
- package/dist/gateway/static/root/assets/appearance-settings-B7hCkaT_.js +1 -0
- package/dist/gateway/static/root/assets/apps-page-D_CduJuC.js +1 -0
- package/dist/gateway/static/root/assets/{archive-plugin-BZXXJvpX.js → archive-plugin-QfOaQPL_.js} +1 -1
- package/dist/gateway/static/root/assets/{automations-page-C7VKkDb5.js → automations-page-uEnQawd7.js} +1 -1
- package/dist/gateway/static/root/assets/automations-workspace-pdiSK3Qk.js +7 -0
- package/dist/gateway/static/root/assets/{binary-plugins-DoT3g5SP.js → binary-plugins-BF2lVwR9.js} +1 -1
- package/dist/gateway/static/root/assets/{block-editor-sqqrCafh.js → block-editor-r4mKGacz.js} +39 -39
- package/dist/gateway/static/root/assets/bot-DjLkhyZL.js +1 -0
- package/dist/gateway/static/root/assets/{browser-automation-inputs-CZOKsAaa.js → browser-automation-inputs-FW3bYZ-z.js} +1 -1
- package/dist/gateway/static/root/assets/{browser-automations-page-TEeTmkGP.js → browser-automations-page-Blrxyy_h.js} +2 -2
- package/dist/gateway/static/root/assets/browser-settings-page-DGuwrO7j.js +3 -0
- package/dist/gateway/static/root/assets/{capabilities-BOrLei_L.js → capabilities-BCF_160Z.js} +1 -1
- package/dist/gateway/static/root/assets/capabilities-CF4-mrIa.js +1 -0
- package/dist/gateway/static/root/assets/capabilities-page-DUIA2K--.js +2 -0
- package/dist/gateway/static/root/assets/capabilities-settings-panel-CwPNQsJS.js +8 -0
- package/dist/gateway/static/root/assets/capability-header-actions-CyvI2F5x.js +1 -0
- package/dist/gateway/static/root/assets/channels-DBxDJV8I.js +1 -0
- package/dist/gateway/static/root/assets/{chat-terminal-dock-Q99iKyiO.js → chat-terminal-dock-YdxhecE7.js} +2 -2
- package/dist/gateway/static/root/assets/chevron-right-BweFrslA.js +1 -0
- package/dist/gateway/static/root/assets/circle-alert-BEjgurr2.js +1 -0
- package/dist/gateway/static/root/assets/circle-dashed-8qMD7gHf.js +1 -0
- package/dist/gateway/static/root/assets/circle-dot-BAseJTrF.js +1 -0
- package/dist/gateway/static/root/assets/circle-pause-CN9jYH2s.js +1 -0
- package/dist/gateway/static/root/assets/clock-3-DnrAnuyZ.js +1 -0
- package/dist/gateway/static/root/assets/cloud-C4-yfnnk.js +1 -0
- package/dist/gateway/static/root/assets/computer-settings-page-BuCrA8yD.js +1 -0
- package/dist/gateway/static/root/assets/connector-service-page-BiB2GYkp.js +1 -0
- package/dist/gateway/static/root/assets/connectors-page-nQAgZk-5.js +2 -0
- package/dist/gateway/static/root/assets/copy-text-row-BHDs3cBa.js +1 -0
- package/dist/gateway/static/root/assets/date-picker-BJtADyRQ.js +1 -0
- package/dist/gateway/static/root/assets/{dependency-picker-BjH8XrKb.js → dependency-picker-D-Ko0G40.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-DyGxNAVW.js → desktop-pet-CVPWcWwC.js} +1 -1
- package/dist/gateway/static/root/assets/desktop-pet-settings-BcN_I-7y.js +1 -0
- package/dist/gateway/static/root/assets/device-pairing-wizard-CoKKoUlt.js +1 -0
- package/dist/gateway/static/root/assets/directory-picker-path-field-m0CubGEP.js +1 -0
- package/dist/gateway/static/root/assets/dist-3h6cXXhT.js +1 -0
- package/dist/gateway/static/root/assets/dist-Che_jiQF.js +1 -0
- package/dist/gateway/static/root/assets/extension-debug-page-BrGWLJg9.js +1 -0
- package/dist/gateway/static/root/assets/extension-page-Dd88ynHj.js +1 -0
- package/dist/gateway/static/root/assets/extension-provider-CUpbXB2k.js +1 -0
- package/dist/gateway/static/root/assets/extension-settings-page-Dq1MXh6D.js +1 -0
- package/dist/gateway/static/root/assets/form-field-width-DJw_jULe.js +1 -0
- package/dist/gateway/static/root/assets/gateway-settings-C_bTRQeE.js +1 -0
- package/dist/gateway/static/root/assets/git-branch-Dh9uxTot.js +1 -0
- package/dist/gateway/static/root/assets/home-page-xbqSikkK.js +1 -0
- package/dist/gateway/static/root/assets/imports-page-Cd4tcbLU.js +1 -0
- package/dist/gateway/static/root/assets/index-BuzC93X-.css +1 -0
- package/dist/gateway/static/root/assets/index-CYeGnj-L.js +106 -0
- package/dist/gateway/static/root/assets/index.module-Cd9ENXfk.js +1 -0
- package/dist/gateway/static/root/assets/interaction-BdhHBbYa.js +1 -0
- package/dist/gateway/static/root/assets/is-masked-secret-DOkL5b_X.js +1 -0
- package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-CoYdyBRh.js → keyboard-shortcuts-settings-CmalfzgQ.js} +1 -1
- package/dist/gateway/static/root/assets/local-app-workbench-page-BquHHLj6.js +1 -0
- package/dist/gateway/static/root/assets/{local-apps-page-CeBhXeoX.js → local-apps-page-RPLHMvYs.js} +1 -1
- package/dist/gateway/static/root/assets/logs-page-7NMGltSw.js +2 -0
- package/dist/gateway/static/root/assets/management-settings-zwFewbhp.js +1 -0
- package/dist/gateway/static/root/assets/markdown-view-7tzqIp_G.js +201 -0
- package/dist/gateway/static/root/assets/{media-plugins-C9ya5rUH.js → media-plugins-cjgrKnne.js} +1 -1
- package/dist/gateway/static/root/assets/message-square-fVE7Ghj1.js +1 -0
- package/dist/gateway/static/root/assets/mic-CuUb7zc-.js +1 -0
- package/dist/gateway/static/root/assets/model-display-name-DXhO9rcM.js +1 -0
- package/dist/gateway/static/root/assets/models-hub-cache-HGrORbzR.js +1 -0
- package/dist/gateway/static/root/assets/note-detail-panel-CwMg9cvF.js +5 -0
- package/dist/gateway/static/root/assets/notes-api-J0yhflxC.js +1 -0
- package/dist/gateway/static/root/assets/notes-page-CWJwrvo7.js +8 -0
- package/dist/gateway/static/root/assets/oauth-api-CYe61zfD.js +1 -0
- package/dist/gateway/static/root/assets/page-context-capture-button-DqmAq4Ov.js +1 -0
- package/dist/gateway/static/root/assets/page-tabs-D2xpUV26.js +1 -0
- package/dist/gateway/static/root/assets/pause-DuPxgSxk.js +1 -0
- package/dist/gateway/static/root/assets/personal-page-Bbgx_dgV.js +1 -0
- package/dist/gateway/static/root/assets/play-kxZvpBg8.js +1 -0
- package/dist/gateway/static/root/assets/popover-select-DcsFzD_i.js +1 -0
- package/dist/gateway/static/root/assets/preview-open-alternatives-Dvey7GwU.js +1 -0
- package/dist/gateway/static/root/assets/{product-open-page-DUPsiVP9.js → product-open-page-SsG2sljT.js} +1 -1
- package/dist/gateway/static/root/assets/project-detail-page-wp5cFhM7.js +1 -0
- package/dist/gateway/static/root/assets/projects-page-Brfi519S.js +1 -0
- package/dist/gateway/static/root/assets/remote-access-hub-BdtF8Cvk.js +1 -0
- package/dist/gateway/static/root/assets/rotate-ccw-JM1TBLpp.js +1 -0
- package/dist/gateway/static/root/assets/{runtime-tools-settings-panel-C25xEYTK.js → runtime-tools-settings-panel-CT6HKczq.js} +2 -2
- package/dist/gateway/static/root/assets/scenes-page-BmlI42OR.js +2 -0
- package/dist/gateway/static/root/assets/schema-form-DEcsbgne.js +1 -0
- package/dist/gateway/static/root/assets/secret-input-DPl3VYM8.js +1 -0
- package/dist/gateway/static/root/assets/send-session-input-C7Nqy0sK.js +1 -0
- package/dist/gateway/static/root/assets/sessions-page-C_G8fZwV.js +1 -0
- package/dist/gateway/static/root/assets/settings-2-D-csvaET.js +1 -0
- package/dist/gateway/static/root/assets/settings-advanced-gate-CDxdzwDs.js +1 -0
- package/dist/gateway/static/root/assets/settings-form-draft-Dy10ldo8.js +1 -0
- package/dist/gateway/static/root/assets/settings-form-section-exRhP9xn.js +1 -0
- package/dist/gateway/static/root/assets/{settings-page-DqCJHcdG.js → settings-page-P50kLPUz.js} +1 -1
- package/dist/gateway/static/root/assets/setup-status-panel-DtnwH0wN.js +1 -0
- package/dist/gateway/static/root/assets/share-link-dialog-COlX10Dc.js +1 -0
- package/dist/gateway/static/root/assets/share-preview-page-NtRLUieq.js +2 -0
- package/dist/gateway/static/root/assets/shares-api-DICV5EKH.js +1 -0
- package/dist/gateway/static/root/assets/shares-settings-7Ak_MsJg.js +1 -0
- package/dist/gateway/static/root/assets/skill-api-CcdHQhxd.js +1 -0
- package/dist/gateway/static/root/assets/skill-api-utils-C7V4JVXM.js +1 -0
- package/dist/gateway/static/root/assets/skill-reload-api-CWH3Fmx4.js +1 -0
- package/dist/gateway/static/root/assets/skill-wire-pattern-BPpeIcCi.js +1 -0
- package/dist/gateway/static/root/assets/skills-page-ChjXDxdX.js +2 -0
- package/dist/gateway/static/root/assets/sparkles-DHlfQFAF.js +1 -0
- package/dist/gateway/static/root/assets/system-settings-panel-DAR0w3Xi.js +1 -0
- package/dist/gateway/static/root/assets/task-detail-page-DEx0kXDV.js +1 -0
- package/dist/gateway/static/root/assets/tasks-Buv1mgPF.js +1 -0
- package/dist/gateway/static/root/assets/theme-store-BKgBPLH4.js +1 -0
- package/dist/gateway/static/root/assets/tunnel-api-CBy97LfF.js +1 -0
- package/dist/gateway/static/root/assets/usage-page-BdX6VPQC.js +1 -0
- package/dist/gateway/static/root/assets/use-async-resource-GrnWNwMZ.js +1 -0
- package/dist/gateway/static/root/assets/use-autosave-Cn6hqqyM.js +1 -0
- package/dist/gateway/static/root/assets/use-composer-attachments-DL61XeSu.js +2 -0
- package/dist/gateway/static/root/assets/use-file-preview-expanded-Cl9mU32w.js +2 -0
- package/dist/gateway/static/root/assets/user-model-page-CRxiQnWG.js +2 -0
- package/dist/gateway/static/root/assets/voice-api-key-field-Bw05QB_V.js +1 -0
- package/dist/gateway/static/root/assets/{work-discovery-overlay-BnfD6w0k.js → work-discovery-overlay-DvwmD9Ma.js} +1 -1
- package/dist/gateway/static/root/assets/{workflow-run-setup-panel-DSy57rBr.js → workflow-run-setup-panel-BQ3fmhM-.js} +2 -2
- package/dist/gateway/static/root/assets/workflows-page-Bl8rd4fM.js +6 -0
- package/dist/gateway/static/root/assets/workspace-api-BbBT75Kg.js +2 -0
- package/dist/gateway/static/root/index.html +61 -19
- package/dist/package.js +1 -1
- package/dist/packages/gateway-contract/src/tasks.js +19 -2
- package/dist/src/agent/agent-manager.js +4 -4
- package/dist/src/agent/embedded/run-for-session.d.ts +1 -0
- package/dist/src/agent/embedded/run-for-session.js +2 -1
- package/dist/src/agent/embedded/run-turn.js +30 -2
- package/dist/src/agent/embedded/types.d.ts +1 -0
- package/dist/src/agent/prompt/sections/messaging-runtime.js +2 -1
- package/dist/src/agent/service/direct-turn-helpers.d.ts +1 -0
- package/dist/src/agent/service/direct-turn-helpers.js +1 -0
- package/dist/src/agent/service/process-direct-streaming.js +1 -0
- package/dist/src/agent/service.js +4 -1
- package/dist/src/agent/session/session-config-service.js +27 -1
- package/dist/src/agent/session/session-hydrator.js +1 -1
- package/dist/src/agent/tools/factory.js +21 -14
- package/dist/src/agent/tools/personal-preference-tool.d.ts +10 -0
- package/dist/src/agent/tools/personal-preference-tool.js +44 -0
- package/dist/src/agent/tools/personal-task-tool.d.ts +29 -0
- package/dist/src/agent/tools/personal-task-tool.js +184 -0
- package/dist/src/agent/tools/xopc-use-tool.js +3 -2
- package/dist/src/agent-catalog/service.d.ts +1 -1
- package/dist/src/agent-catalog/service.js +2 -1
- package/dist/src/agent-config/index.js +2 -2
- package/dist/src/agent-config/schema.d.ts +153 -1
- package/dist/src/agent-config/schema.js +42 -3
- package/dist/src/chat-commands/builtins/thinking.js +12 -2
- package/dist/src/chat-commands/context.js +7 -1
- package/dist/src/cli/commands/auth.js +1 -1
- package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
- package/dist/src/cli/commands/models.js +2 -2
- package/dist/src/cli/commands/onboard/model.js +1 -1
- package/dist/src/cli/commands/providers.js +1 -1
- package/dist/src/gateway/hono/lib/config-payload.d.ts +1 -0
- package/dist/src/gateway/hono/routes/lazy-bundles.js +8 -0
- package/dist/src/gateway/hono/routes/models.js +1 -1
- package/dist/src/gateway/hono/routes/personal-agent.d.ts +3 -0
- package/dist/src/gateway/hono/routes/personal-agent.js +122 -0
- package/dist/src/gateway/hono/routes/session-input-handler.js +1 -1
- package/dist/src/gateway/hono/routes/sessions.js +5 -0
- package/dist/src/gateway/hono/routes/side-chats.js +1 -1
- package/dist/src/gateway/hono/routes/tasks.js +64 -1
- package/dist/src/gateway/hono/routes/voice.js +8 -0
- package/dist/src/gateway/service/agent-runner.js +41 -0
- package/dist/src/gateway/service/run-gateway-agent.js +2 -1
- package/dist/src/gateway/service/session-command-service.js +7 -1
- package/dist/src/gateway/service/sessions-api.js +11 -1
- package/dist/src/gateway/service.js +10 -10
- package/dist/src/gateway/session-reset-service.js +5 -0
- package/dist/src/gateway/xopc-cloud-capability-setup.d.ts +9 -0
- package/dist/src/gateway/xopc-cloud-capability-setup.js +42 -2
- package/dist/src/home-intelligence/host.js +2 -2
- package/dist/src/personal-agent/policy.d.ts +1 -0
- package/dist/src/personal-agent/policy.js +13 -0
- package/dist/src/personal-agent/repository.d.ts +25 -0
- package/dist/src/personal-agent/repository.js +68 -0
- package/dist/src/personal-agent/service.d.ts +49 -0
- package/dist/src/personal-agent/service.js +234 -0
- package/dist/src/session/resolve-session.js +4 -2
- package/dist/src/storage/sqlite/migrations/229_task_criterion_reviews.sql +12 -0
- package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
- package/dist/src/storage/sqlite/migrations/runner.js +3 -3
- package/dist/src/storage/sqlite/schema.js +1 -1
- package/dist/src/storage/sqlite/schema.sql +13 -0
- package/dist/src/storage/sqlite/session-repository.js +6 -2
- package/dist/src/storage/sqlite/transcript-repository.js +2 -1
- package/dist/src/tasks/capabilities/read.js +3 -0
- package/dist/src/tasks/task-application-service.js +6 -1
- package/dist/src/tasks/task-criterion-review-repository.d.ts +22 -0
- package/dist/src/tasks/task-criterion-review-repository.js +74 -0
- package/dist/src/tasks/task-main-update-decision-service.js +6 -0
- package/dist/src/tasks/task-main-update-delivery.js +5 -2
- package/dist/src/tasks/task-origin-repository.d.ts +4 -1
- package/dist/src/tasks/task-origin-repository.js +3 -3
- package/dist/src/tasks/task-run-coordinator.d.ts +1 -0
- package/dist/src/tasks/task-run-coordinator.js +13 -7
- package/dist/src/tasks/task-run-dispatcher.d.ts +1 -1
- package/dist/src/tasks/task-run-dispatcher.js +6 -4
- package/package.json +4 -4
- package/dist/gateway/static/root/assets/agent-defaults-settings-panel-CcTnphqy.js +0 -1
- package/dist/gateway/static/root/assets/agent-plugin-dialog-CdCzMPhC.js +0 -1
- package/dist/gateway/static/root/assets/agents-BiNKpndr.js +0 -66
- package/dist/gateway/static/root/assets/app-management-settings-panel-BvGDN5J6.js +0 -1
- package/dist/gateway/static/root/assets/appearance-settings-BhQYkuQj.js +0 -1
- package/dist/gateway/static/root/assets/apps-page-BQZJuM-C.js +0 -1
- package/dist/gateway/static/root/assets/automations-workspace-y4qcvlg8.js +0 -7
- package/dist/gateway/static/root/assets/browser-settings-page--N4P7V0l.js +0 -3
- package/dist/gateway/static/root/assets/capabilities-page-F7OAv-iz.js +0 -2
- package/dist/gateway/static/root/assets/capabilities-settings-panel-CaiIo1S1.js +0 -8
- package/dist/gateway/static/root/assets/capability-header-actions-CR_O9_Vr.js +0 -1
- package/dist/gateway/static/root/assets/channels-Bb-8c4wl.js +0 -1
- package/dist/gateway/static/root/assets/computer-settings-page-QuXZBfky.js +0 -1
- package/dist/gateway/static/root/assets/connector-service-page-BIqzVqCO.js +0 -1
- package/dist/gateway/static/root/assets/connectors-page-CZ24DSBJ.js +0 -2
- package/dist/gateway/static/root/assets/date-picker-Ck-FmYEL.js +0 -1
- package/dist/gateway/static/root/assets/desktop-pet-settings-C1rKgB-S.js +0 -1
- package/dist/gateway/static/root/assets/device-pairing-wizard-UrPcOU6Q.js +0 -1
- package/dist/gateway/static/root/assets/directory-picker-path-field-BYxUgMZb.js +0 -1
- package/dist/gateway/static/root/assets/dist-CKkafhaS.js +0 -1
- package/dist/gateway/static/root/assets/dist-io9jFpN72.js +0 -1
- package/dist/gateway/static/root/assets/extension-debug-page-CGL0jpQA.js +0 -1
- package/dist/gateway/static/root/assets/extension-page-DPWf-tYg.js +0 -1
- package/dist/gateway/static/root/assets/extension-settings-page-DZWBY39d.js +0 -1
- package/dist/gateway/static/root/assets/gateway-settings-D5w5aYXK.js +0 -1
- package/dist/gateway/static/root/assets/home-page-DPQwxBGy.js +0 -1
- package/dist/gateway/static/root/assets/imports-page-CnRWDtGz.js +0 -1
- package/dist/gateway/static/root/assets/index-B-w6Rk9Z.css +0 -1
- package/dist/gateway/static/root/assets/index-DU5Eb1V8.js +0 -106
- package/dist/gateway/static/root/assets/local-app-workbench-page-hjFeYlIq.js +0 -1
- package/dist/gateway/static/root/assets/logs-page-CzpZDjkA.js +0 -2
- package/dist/gateway/static/root/assets/management-settings-Beu_R_Rc.js +0 -1
- package/dist/gateway/static/root/assets/markdown-view-BlzX7Ze5.js +0 -201
- package/dist/gateway/static/root/assets/note-detail-panel-D8bpTGwP.js +0 -5
- package/dist/gateway/static/root/assets/notes-page-OmgXowUG.js +0 -8
- package/dist/gateway/static/root/assets/page-context-capture-button-BjjjuLkz.js +0 -1
- package/dist/gateway/static/root/assets/page-tabs-_DiuzxyD.js +0 -1
- package/dist/gateway/static/root/assets/popover-select-0p9PIHRy.js +0 -1
- package/dist/gateway/static/root/assets/preview-open-alternatives-BKvUadws.js +0 -1
- package/dist/gateway/static/root/assets/project-detail-page-CWlCg2x5.js +0 -1
- package/dist/gateway/static/root/assets/projects-page-NbVNo0tP.js +0 -1
- package/dist/gateway/static/root/assets/remote-access-hub-CD8HrqGC.js +0 -1
- package/dist/gateway/static/root/assets/scenes-page-DbWaemwR.js +0 -2
- package/dist/gateway/static/root/assets/schema-form-_3LQ4hyB.js +0 -1
- package/dist/gateway/static/root/assets/sessions-page-B7ZUdXlb.js +0 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-CpKzZMft.js +0 -1
- package/dist/gateway/static/root/assets/settings-form-section-DS80hVSY.js +0 -1
- package/dist/gateway/static/root/assets/setup-status-panel-De-kC3yJ.js +0 -1
- package/dist/gateway/static/root/assets/share-preview-page-T-0g_rwr.js +0 -2
- package/dist/gateway/static/root/assets/shares-settings-Dz33T3du.js +0 -1
- package/dist/gateway/static/root/assets/skill-api-Cx6GGpSY.js +0 -1
- package/dist/gateway/static/root/assets/skill-reload-api-DyJ-Duem.js +0 -1
- package/dist/gateway/static/root/assets/skills-page-B2iyN-kP.js +0 -2
- package/dist/gateway/static/root/assets/system-settings-panel-By3SZQR_.js +0 -1
- package/dist/gateway/static/root/assets/task-detail-page-4yHUTs4_.js +0 -1
- package/dist/gateway/static/root/assets/tasks-BH8_WMUF.js +0 -1
- package/dist/gateway/static/root/assets/tunnel-api-BoH0LBkw.js +0 -1
- package/dist/gateway/static/root/assets/usage-page-dKU5X9zT.js +0 -1
- package/dist/gateway/static/root/assets/use-autosave-YKCwQvqT.js +0 -1
- package/dist/gateway/static/root/assets/user-model-page-Uht32LPP.js +0 -2
- package/dist/gateway/static/root/assets/voice-api-key-field-DiqHIA8l.js +0 -1
- package/dist/gateway/static/root/assets/workflows-page-Cq3vRUbc.js +0 -6
- /package/dist/gateway/static/root/assets/{dist-CI_fqRk-2.js → dist-CI_fqRk-.js} +0 -0
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import { resolveEffectiveAgentConfig } from "../../agent-config/resolver.js";
|
|
2
|
+
import { init_agent_config } from "../../agent-config/index.js";
|
|
3
|
+
import { AgentCatalogRepository, init_repository } from "../../agent-catalog/repository.js";
|
|
4
|
+
import { resolveEffectiveAgentConfigForAgent } from "../../config/agent-profile.js";
|
|
5
|
+
import { init_providers, isProviderConfiguredSync, resolveModel } from "../../providers/index.js";
|
|
6
|
+
import { TaskOriginRepository } from "../../tasks/task-origin-repository.js";
|
|
7
|
+
import { createXopcUseTool } from "./xopc-use-tool.js";
|
|
8
|
+
import { isPersonalConversation } from "../../personal-agent/repository.js";
|
|
9
|
+
import { randomUUID } from "node:crypto";
|
|
10
|
+
import { Type } from "@sinclair/typebox";
|
|
11
|
+
//#region src/agent/tools/personal-task-tool.ts
|
|
12
|
+
init_repository();
|
|
13
|
+
init_agent_config();
|
|
14
|
+
init_providers();
|
|
15
|
+
const PersonalTaskSchema = Type.Object({
|
|
16
|
+
command: Type.Union([
|
|
17
|
+
Type.Literal("agents"),
|
|
18
|
+
Type.Literal("create"),
|
|
19
|
+
Type.Literal("list"),
|
|
20
|
+
Type.Literal("get"),
|
|
21
|
+
Type.Literal("instruct"),
|
|
22
|
+
Type.Literal("answer")
|
|
23
|
+
]),
|
|
24
|
+
title: Type.Optional(Type.String({ description: "Short task title, ideally under 60 characters. Do not put the full instructions here." })),
|
|
25
|
+
objective: Type.Optional(Type.String({ description: "One-sentence outcome for a new delegated Task." })),
|
|
26
|
+
description: Type.Optional(Type.String({ description: "Full task brief in Markdown: background, specific requests, source material, and delivery expectations." })),
|
|
27
|
+
agentId: Type.Optional(Type.String({ description: "Specialist Agent ID. Never use your own ID." })),
|
|
28
|
+
taskId: Type.Optional(Type.String()),
|
|
29
|
+
instruction: Type.Optional(Type.String({ description: "The user’s new direction for this delegated Task." })),
|
|
30
|
+
questionId: Type.Optional(Type.String({ description: "Collaboration question ID to answer." })),
|
|
31
|
+
expectedOutputs: Type.Optional(Type.Array(Type.String())),
|
|
32
|
+
acceptanceCriteria: Type.Optional(Type.Array(Type.String())),
|
|
33
|
+
constraints: Type.Optional(Type.Array(Type.String())),
|
|
34
|
+
requiredTools: Type.Optional(Type.Array(Type.String({ description: "Tool names needed for this Task. Use names returned by agents; omit when matching by role or expertise." }))),
|
|
35
|
+
idempotencyKey: Type.Optional(Type.String())
|
|
36
|
+
});
|
|
37
|
+
const MAX_PERSONAL_TASK_TITLE = 60;
|
|
38
|
+
const DISCOVERY_TOOLS = [
|
|
39
|
+
"web_search",
|
|
40
|
+
"web_fetch",
|
|
41
|
+
"browser_use",
|
|
42
|
+
"read_file",
|
|
43
|
+
"write_file",
|
|
44
|
+
"exec_command",
|
|
45
|
+
"image",
|
|
46
|
+
"image_generate",
|
|
47
|
+
"read_media",
|
|
48
|
+
"automation",
|
|
49
|
+
"workflow",
|
|
50
|
+
"xopc_use",
|
|
51
|
+
"xopc_tool_search",
|
|
52
|
+
"computer_use",
|
|
53
|
+
"send_message",
|
|
54
|
+
"text_to_speech"
|
|
55
|
+
];
|
|
56
|
+
function availableAgentTools(config, deps) {
|
|
57
|
+
return (config.toolAllowlist ? [...new Set([...DISCOVERY_TOOLS, ...config.toolAllowlist])] : DISCOVERY_TOOLS).filter((name) => (name !== "browser_use" || deps.getConfig?.()?.browser?.enabled !== false) && (!config.toolAllowlist || config.toolAllowlist.includes(name)) && config.tools[name]?.mode !== "deny");
|
|
58
|
+
}
|
|
59
|
+
function agentModelAvailability(config) {
|
|
60
|
+
for (const ref of [config.models.chat.primary, ...config.models.chat.fallbacks]) try {
|
|
61
|
+
if (isProviderConfiguredSync(resolveModel(ref).provider)) return { available: true };
|
|
62
|
+
} catch {}
|
|
63
|
+
return {
|
|
64
|
+
available: false,
|
|
65
|
+
reason: "No configured chat model resolves to an available provider"
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
function buildPersonalTaskBrief(input) {
|
|
69
|
+
const fullObjective = input.objective.trim();
|
|
70
|
+
const titleSource = (input.title?.trim() || fullObjective).replace(/\s+/g, " ");
|
|
71
|
+
const firstClause = titleSource.split(/[。!?\n]|(?<=[.!?])\s/)[0]?.trim() || titleSource;
|
|
72
|
+
const title = firstClause.length > MAX_PERSONAL_TASK_TITLE ? `${firstClause.slice(0, MAX_PERSONAL_TASK_TITLE - 1).trimEnd()}…` : firstClause;
|
|
73
|
+
const objective = fullObjective.length > 120 ? title : fullObjective;
|
|
74
|
+
const description = input.description?.trim();
|
|
75
|
+
const body = fullObjective !== objective ? [fullObjective, description].filter(Boolean).join("\n\n") : description;
|
|
76
|
+
return {
|
|
77
|
+
title,
|
|
78
|
+
objective,
|
|
79
|
+
...body ? { body } : {}
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
/** A narrow Task surface for the fast personal conversation. */
|
|
83
|
+
function createPersonalTaskTool(deps) {
|
|
84
|
+
const productTool = createXopcUseTool(deps);
|
|
85
|
+
return {
|
|
86
|
+
name: "personal_task",
|
|
87
|
+
label: "Personal Task",
|
|
88
|
+
description: "Find specialist Agents by role, availableTools, and model.available; delegate work, inspect Tasks, send instructions, or answer worker questions. Choose an Agent whose model.available is true. Before saying you cannot do a request, inspect another Agent. If a candidate fails, try another suitable Agent or approach within the user’s authorization. agents can filter by requiredTools; if none match, inspect unfiltered Agents. Return to the user quickly after creation.",
|
|
89
|
+
parameters: PersonalTaskSchema,
|
|
90
|
+
mutatesWorkspace: true,
|
|
91
|
+
mutationScope: "external",
|
|
92
|
+
requiresExclusiveWorkspaceLock: true,
|
|
93
|
+
finalGuardRelevant: true,
|
|
94
|
+
async execute(toolCallId, input, signal) {
|
|
95
|
+
const conversationId = deps.getCurrentConversationId?.();
|
|
96
|
+
const ownAgentId = deps.getCurrentAgentId?.();
|
|
97
|
+
if (!conversationId || !ownAgentId || !isPersonalConversation(conversationId)) throw new Error("Personal conversation context is unavailable");
|
|
98
|
+
if (input.command === "agents") {
|
|
99
|
+
const requiredTools = input.requiredTools ?? [];
|
|
100
|
+
const catalog = new AgentCatalogRepository().snapshot();
|
|
101
|
+
const agents = catalog.agents.filter((agent) => agent.enabled !== false && agent.id !== ownAgentId && !agent.id.startsWith("personal-")).map((agent) => {
|
|
102
|
+
const config = resolveEffectiveAgentConfig({
|
|
103
|
+
defaults: catalog.defaults,
|
|
104
|
+
agent
|
|
105
|
+
}).config;
|
|
106
|
+
const availableTools = availableAgentTools(config, deps);
|
|
107
|
+
return {
|
|
108
|
+
id: agent.id,
|
|
109
|
+
name: agent.profile?.name ?? agent.id,
|
|
110
|
+
description: agent.profile?.description ?? "",
|
|
111
|
+
availableTools,
|
|
112
|
+
model: agentModelAvailability(config)
|
|
113
|
+
};
|
|
114
|
+
}).filter((agent) => requiredTools.every((tool) => agent.availableTools.includes(tool)));
|
|
115
|
+
return {
|
|
116
|
+
content: [{
|
|
117
|
+
type: "text",
|
|
118
|
+
text: JSON.stringify(agents)
|
|
119
|
+
}],
|
|
120
|
+
details: {}
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
let command = input.command;
|
|
124
|
+
let args = {};
|
|
125
|
+
if (command === "create") {
|
|
126
|
+
const objective = input.objective?.trim();
|
|
127
|
+
const agentId = input.agentId?.trim();
|
|
128
|
+
if (!objective || !agentId) throw new Error("objective and specialist agentId are required");
|
|
129
|
+
if (agentId === ownAgentId || agentId.startsWith("personal-")) throw new Error("Delegate to a specialist Agent, not a personal Agent");
|
|
130
|
+
const specialist = new AgentCatalogRepository().get(agentId);
|
|
131
|
+
if (!specialist || specialist.enabled === false || specialist.provisioningState !== "ready") throw new Error(`Specialist Agent is unavailable: ${agentId}`);
|
|
132
|
+
const config = resolveEffectiveAgentConfigForAgent(agentId).config;
|
|
133
|
+
const model = agentModelAvailability(config);
|
|
134
|
+
if (!model.available) throw new Error(`Agent ${agentId} cannot start: ${model.reason}. Find another available Agent.`);
|
|
135
|
+
const availableTools = availableAgentTools(config, deps);
|
|
136
|
+
const missingTools = (input.requiredTools ?? []).filter((tool) => !availableTools.includes(tool));
|
|
137
|
+
if (missingTools.length > 0) throw new Error(`Agent ${agentId} lacks required tools: ${missingTools.join(", ")}. Find another Agent or approach.`);
|
|
138
|
+
args = {
|
|
139
|
+
...buildPersonalTaskBrief({
|
|
140
|
+
title: input.title,
|
|
141
|
+
objective,
|
|
142
|
+
description: input.description
|
|
143
|
+
}),
|
|
144
|
+
agentId,
|
|
145
|
+
createMode: "start",
|
|
146
|
+
includeConversationContext: false,
|
|
147
|
+
expectedOutputs: input.expectedOutputs ?? [],
|
|
148
|
+
acceptanceCriteria: input.acceptanceCriteria ?? [],
|
|
149
|
+
constraints: input.constraints ?? [],
|
|
150
|
+
idempotencyKey: input.idempotencyKey?.trim() || randomUUID()
|
|
151
|
+
};
|
|
152
|
+
} else if (command === "list") {
|
|
153
|
+
command = "delegated_tasks";
|
|
154
|
+
args = { limit: 20 };
|
|
155
|
+
} else {
|
|
156
|
+
const taskId = input.taskId?.trim();
|
|
157
|
+
if (!taskId) throw new Error("taskId is required");
|
|
158
|
+
if (!new TaskOriginRepository().owns(taskId, conversationId)) throw new Error("Task does not belong to this personal conversation");
|
|
159
|
+
if (command === "instruct" || command === "answer") {
|
|
160
|
+
const body = input.instruction?.trim();
|
|
161
|
+
if (!body) throw new Error("instruction is required");
|
|
162
|
+
if (command === "answer" && !input.questionId?.trim()) throw new Error("questionId is required");
|
|
163
|
+
command = "collaboration_post";
|
|
164
|
+
args = {
|
|
165
|
+
taskId,
|
|
166
|
+
kind: input.command === "answer" ? "answer" : "instruction",
|
|
167
|
+
body,
|
|
168
|
+
...input.command === "answer" ? { causationId: input.questionId.trim() } : {}
|
|
169
|
+
};
|
|
170
|
+
} else args = { taskId };
|
|
171
|
+
}
|
|
172
|
+
return {
|
|
173
|
+
content: (await productTool.execute(toolCallId, {
|
|
174
|
+
mode: "task",
|
|
175
|
+
command,
|
|
176
|
+
args
|
|
177
|
+
}, signal, void 0)).content,
|
|
178
|
+
details: {}
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
//#endregion
|
|
184
|
+
export { buildPersonalTaskBrief, createPersonalTaskTool };
|
|
@@ -1464,6 +1464,7 @@ async function handleTask(command, args, deps, dryRun, capabilities) {
|
|
|
1464
1464
|
const input = {
|
|
1465
1465
|
idempotencyKey: trimString(args.idempotencyKey) ?? randomUUID(),
|
|
1466
1466
|
title: trimString(args.title) ?? objective,
|
|
1467
|
+
...trimString(args.body) ? { body: trimString(args.body) } : {},
|
|
1467
1468
|
priority: priority ?? "normal",
|
|
1468
1469
|
...dueAt === void 0 ? {} : { dueAt },
|
|
1469
1470
|
...projectId ? { projectId } : {},
|
|
@@ -1476,7 +1477,7 @@ async function handleTask(command, args, deps, dryRun, capabilities) {
|
|
|
1476
1477
|
outputDestinations: []
|
|
1477
1478
|
},
|
|
1478
1479
|
dependencies: dependsOnTaskIds,
|
|
1479
|
-
context: conversationId ? [{
|
|
1480
|
+
context: args.includeConversationContext === false ? [] : conversationId ? [{
|
|
1480
1481
|
targetKind: "session",
|
|
1481
1482
|
targetId: conversationId,
|
|
1482
1483
|
role: "input",
|
|
@@ -1889,7 +1890,7 @@ function createXopcUseTool(deps) {
|
|
|
1889
1890
|
return {
|
|
1890
1891
|
name: "xopc_use",
|
|
1891
1892
|
label: "XOPC Use",
|
|
1892
|
-
description: "Operate first-class xopc objects through one safe entry point. To delegate work for immediate execution: mode task, command create, args {objective, createMode:\"start\", agentId:\"researcher\"}; omitting createMode creates a backlog task only. To start an existing Task: mode task, command command, args {taskId, type:\"start\", expectedVersion, commandArgs:{executor:{kind:\"agent\",agentId:\"main\"}}}. Inspect an existing Task and its run before creating another Task for the same objective. For delegated work, task delegated_tasks lists this conversation's tasks; task collaboration reads the shared board; task collaboration_post writes {taskId, kind, body, causationId?, idempotencyKey?}. Workers report progress or questions; the main Agent writes instructions and answers. Use chat_preview for lightweight UI mockups in the current conversation; do not create a Local App unless the user asks for a durable app. Local App capabilities takes extensionId and discovers already granted bindings. Local App invoke requires extensionId, the discovered manifestDigest, capabilityId and a pinned call {majorVersion, descriptorDigest, input, idempotencyKey for writes}. Never manufacture grants or change a retry key after an uncertain write. Use for Agents, scenes, projects, automations, notes, tasks, TaskRuns, chat previews, local apps, and exact settings jump targets instead of editing storage files directly. For non-trivial object changes, load the built-in manual first with tool_manual({ tool: \"xopc_use\" }).",
|
|
1893
|
+
description: "Operate first-class xopc objects through one safe entry point. To delegate work for immediate execution: mode task, command create, args {title:\"Short task name\", objective:\"One-sentence outcome\", body:\"Full Markdown task brief\", createMode:\"start\", agentId:\"researcher\"}; omitting createMode creates a backlog task only. To start an existing Task: mode task, command command, args {taskId, type:\"start\", expectedVersion, commandArgs:{executor:{kind:\"agent\",agentId:\"main\"}}}. Inspect an existing Task and its run before creating another Task for the same objective. For delegated work, task delegated_tasks lists this conversation's tasks; task collaboration reads the shared board; task collaboration_post writes {taskId, kind, body, causationId?, idempotencyKey?}. Workers report progress or questions; the main Agent writes instructions and answers. Use chat_preview for lightweight UI mockups in the current conversation; do not create a Local App unless the user asks for a durable app. Local App capabilities takes extensionId and discovers already granted bindings. Local App invoke requires extensionId, the discovered manifestDigest, capabilityId and a pinned call {majorVersion, descriptorDigest, input, idempotencyKey for writes}. Never manufacture grants or change a retry key after an uncertain write. Use for Agents, scenes, projects, automations, notes, tasks, TaskRuns, chat previews, local apps, and exact settings jump targets instead of editing storage files directly. For non-trivial object changes, load the built-in manual first with tool_manual({ tool: \"xopc_use\" }).",
|
|
1893
1894
|
parameters: XopcUseToolSchema,
|
|
1894
1895
|
mutatesWorkspace: true,
|
|
1895
1896
|
mutationScope: "external",
|
|
@@ -9,7 +9,7 @@ export declare class AgentCatalogService {
|
|
|
9
9
|
resumePendingProvisioning(): Promise<void>;
|
|
10
10
|
/** Startup recovery for catalog rows committed before their directories were provisioned. */
|
|
11
11
|
resumePendingProvisioningSync(): void;
|
|
12
|
-
update(agentIdRaw: string, patch: Partial<Omit<AgentEntry, 'id'
|
|
12
|
+
update(agentIdRaw: string, patch: Partial<Omit<AgentEntry, 'id'>>, expectedRevision?: number): Promise<StoredAgent>;
|
|
13
13
|
/** Remove data for an Agent that has already been deleted from the catalog. */
|
|
14
14
|
purgeEntryData(entry: AgentEntry, defaultAgentId: string): Promise<void>;
|
|
15
15
|
validatePurgeEntry(entry: AgentEntry, defaultAgentId: string): void;
|
|
@@ -59,10 +59,11 @@ var AgentCatalogService = class {
|
|
|
59
59
|
}
|
|
60
60
|
this.resumePendingPurgeSync();
|
|
61
61
|
}
|
|
62
|
-
async update(agentIdRaw, patch) {
|
|
62
|
+
async update(agentIdRaw, patch, expectedRevision) {
|
|
63
63
|
const agentId = normalizeAgentId(agentIdRaw);
|
|
64
64
|
const current = this.repository.get(agentId);
|
|
65
65
|
if (!current) throw new Error(`Agent "${agentId}" not found`);
|
|
66
|
+
if (expectedRevision !== void 0 && current.revision !== expectedRevision) throw new Error("Agent revision conflict");
|
|
66
67
|
const { revision, provisioningState: _state, provisioningError: _error, createdAt: _created, updatedAt: _updated, deletedAt: _deleted, ...entry } = current;
|
|
67
68
|
const next = {
|
|
68
69
|
...entry,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __esmMin } from "../../_virtual/_rolldown/runtime.js";
|
|
2
|
-
import { AgentDefaultsSchema, AgentEntrySchema, AgentIdSchema, AgentModelsDefaultsSchema, AgentModelsOverrideSchema, AgentProfileSchema, ComputerModelRouteSchema, DEFAULT_AGENT_MODEL_REF, DEFAULT_CORE_SKILLS, DEFAULT_SKILL_POLICY, EffectiveAgentConfigSchema, ImageGenerationRouteSchema, ModelIntentSchema, ModelRefSchema, ModelRouteSchema, RuntimePolicySchema, SkillDefaultsSchema, SkillOverrideSchema, ToolModeSchema, ToolPoliciesSchema, ToolPolicySchema, WorkflowPolicySchema, init_schema } from "./schema.js";
|
|
2
|
+
import { AgentDefaultsSchema, AgentEntrySchema, AgentIdSchema, AgentModelsDefaultsSchema, AgentModelsOverrideSchema, AgentProfileSchema, ComputerModelRouteSchema, DEFAULT_AGENT_MODEL_REF, DEFAULT_CORE_SKILLS, DEFAULT_SKILL_POLICY, EffectiveAgentConfigSchema, ImageGenerationRouteSchema, ModelIntentSchema, ModelRefSchema, ModelRouteSchema, ResponsePreferencesSchema, RuntimePolicySchema, SkillDefaultsSchema, SkillOverrideSchema, ToolModeSchema, ToolPoliciesSchema, ToolPolicySchema, WorkflowPolicySchema, init_schema } from "./schema.js";
|
|
3
3
|
import { init_resolver, resolveEffectiveAgentConfig } from "./resolver.js";
|
|
4
4
|
//#region src/agent-config/index.ts
|
|
5
5
|
var init_agent_config = __esmMin((() => {
|
|
@@ -8,4 +8,4 @@ var init_agent_config = __esmMin((() => {
|
|
|
8
8
|
}));
|
|
9
9
|
//#endregion
|
|
10
10
|
init_agent_config();
|
|
11
|
-
export { AgentDefaultsSchema, AgentEntrySchema, AgentIdSchema, AgentModelsDefaultsSchema, AgentModelsOverrideSchema, AgentProfileSchema, ComputerModelRouteSchema, DEFAULT_AGENT_MODEL_REF, DEFAULT_CORE_SKILLS, DEFAULT_SKILL_POLICY, EffectiveAgentConfigSchema, ImageGenerationRouteSchema, ModelIntentSchema, ModelRefSchema, ModelRouteSchema, RuntimePolicySchema, SkillDefaultsSchema, SkillOverrideSchema, ToolModeSchema, ToolPoliciesSchema, ToolPolicySchema, WorkflowPolicySchema, init_agent_config, resolveEffectiveAgentConfig };
|
|
11
|
+
export { AgentDefaultsSchema, AgentEntrySchema, AgentIdSchema, AgentModelsDefaultsSchema, AgentModelsOverrideSchema, AgentProfileSchema, ComputerModelRouteSchema, DEFAULT_AGENT_MODEL_REF, DEFAULT_CORE_SKILLS, DEFAULT_SKILL_POLICY, EffectiveAgentConfigSchema, ImageGenerationRouteSchema, ModelIntentSchema, ModelRefSchema, ModelRouteSchema, ResponsePreferencesSchema, RuntimePolicySchema, SkillDefaultsSchema, SkillOverrideSchema, ToolModeSchema, ToolPoliciesSchema, ToolPolicySchema, WorkflowPolicySchema, init_agent_config, resolveEffectiveAgentConfig };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
export declare const DEFAULT_AGENT_MODEL_REF = "deepseek/deepseek-
|
|
2
|
+
export declare const DEFAULT_AGENT_MODEL_REF = "deepseek/deepseek-flash";
|
|
3
3
|
export declare const DEFAULT_CORE_SKILLS: readonly ["doc-coauthoring", "define-task", "find-skills", "summarize"];
|
|
4
4
|
export declare const DEFAULT_SKILL_POLICY: {
|
|
5
5
|
mode: "selected";
|
|
@@ -136,6 +136,15 @@ export declare const WorkflowPolicySchema: z.ZodObject<{
|
|
|
136
136
|
allowed: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
137
137
|
}, z.core.$strict>;
|
|
138
138
|
export declare const RuntimePolicySchema: z.ZodObject<{
|
|
139
|
+
thinkingLevel: z.ZodOptional<z.ZodEnum<{
|
|
140
|
+
low: "low";
|
|
141
|
+
high: "high";
|
|
142
|
+
off: "off";
|
|
143
|
+
medium: "medium";
|
|
144
|
+
minimal: "minimal";
|
|
145
|
+
xhigh: "xhigh";
|
|
146
|
+
max: "max";
|
|
147
|
+
}>>;
|
|
139
148
|
commandIsolation: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
140
149
|
mode: z.ZodLiteral<"host">;
|
|
141
150
|
}, z.core.$strict>, z.ZodObject<{
|
|
@@ -215,6 +224,15 @@ export declare const AgentDefaultsSchema: z.ZodObject<{
|
|
|
215
224
|
allowed: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
216
225
|
}, z.core.$strict>>;
|
|
217
226
|
runtime: z.ZodDefault<z.ZodObject<{
|
|
227
|
+
thinkingLevel: z.ZodOptional<z.ZodEnum<{
|
|
228
|
+
low: "low";
|
|
229
|
+
high: "high";
|
|
230
|
+
off: "off";
|
|
231
|
+
medium: "medium";
|
|
232
|
+
minimal: "minimal";
|
|
233
|
+
xhigh: "xhigh";
|
|
234
|
+
max: "max";
|
|
235
|
+
}>>;
|
|
218
236
|
commandIsolation: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
219
237
|
mode: z.ZodLiteral<"host">;
|
|
220
238
|
}, z.core.$strict>, z.ZodObject<{
|
|
@@ -241,6 +259,35 @@ export declare const AgentDefaultsSchema: z.ZodObject<{
|
|
|
241
259
|
}, z.core.$strict>>;
|
|
242
260
|
}, z.core.$strict>>;
|
|
243
261
|
}, z.core.$strict>;
|
|
262
|
+
export declare const ResponsePreferencesSchema: z.ZodObject<{
|
|
263
|
+
addressAs: z.ZodOptional<z.ZodString>;
|
|
264
|
+
guidance: z.ZodOptional<z.ZodString>;
|
|
265
|
+
warmth: z.ZodOptional<z.ZodEnum<{
|
|
266
|
+
balanced: "balanced";
|
|
267
|
+
reserved: "reserved";
|
|
268
|
+
gentle: "gentle";
|
|
269
|
+
}>>;
|
|
270
|
+
humor: z.ZodOptional<z.ZodEnum<{
|
|
271
|
+
none: "none";
|
|
272
|
+
occasional: "occasional";
|
|
273
|
+
playful: "playful";
|
|
274
|
+
}>>;
|
|
275
|
+
supportMode: z.ZodOptional<z.ZodEnum<{
|
|
276
|
+
listen: "listen";
|
|
277
|
+
untangle: "untangle";
|
|
278
|
+
solutions: "solutions";
|
|
279
|
+
}>>;
|
|
280
|
+
detailLevel: z.ZodOptional<z.ZodEnum<{
|
|
281
|
+
brief: "brief";
|
|
282
|
+
balanced: "balanced";
|
|
283
|
+
detailed: "detailed";
|
|
284
|
+
}>>;
|
|
285
|
+
proactivity: z.ZodOptional<z.ZodEnum<{
|
|
286
|
+
open: "open";
|
|
287
|
+
decisions: "decisions";
|
|
288
|
+
important: "important";
|
|
289
|
+
}>>;
|
|
290
|
+
}, z.core.$strict>;
|
|
244
291
|
export declare const AgentProfileSchema: z.ZodObject<{
|
|
245
292
|
name: z.ZodString;
|
|
246
293
|
description: z.ZodOptional<z.ZodString>;
|
|
@@ -249,6 +296,35 @@ export declare const AgentProfileSchema: z.ZodObject<{
|
|
|
249
296
|
language: z.ZodOptional<z.ZodString>;
|
|
250
297
|
emoji: z.ZodOptional<z.ZodString>;
|
|
251
298
|
avatar: z.ZodOptional<z.ZodString>;
|
|
299
|
+
responsePreferences: z.ZodOptional<z.ZodObject<{
|
|
300
|
+
addressAs: z.ZodOptional<z.ZodString>;
|
|
301
|
+
guidance: z.ZodOptional<z.ZodString>;
|
|
302
|
+
warmth: z.ZodOptional<z.ZodEnum<{
|
|
303
|
+
balanced: "balanced";
|
|
304
|
+
reserved: "reserved";
|
|
305
|
+
gentle: "gentle";
|
|
306
|
+
}>>;
|
|
307
|
+
humor: z.ZodOptional<z.ZodEnum<{
|
|
308
|
+
none: "none";
|
|
309
|
+
occasional: "occasional";
|
|
310
|
+
playful: "playful";
|
|
311
|
+
}>>;
|
|
312
|
+
supportMode: z.ZodOptional<z.ZodEnum<{
|
|
313
|
+
listen: "listen";
|
|
314
|
+
untangle: "untangle";
|
|
315
|
+
solutions: "solutions";
|
|
316
|
+
}>>;
|
|
317
|
+
detailLevel: z.ZodOptional<z.ZodEnum<{
|
|
318
|
+
brief: "brief";
|
|
319
|
+
balanced: "balanced";
|
|
320
|
+
detailed: "detailed";
|
|
321
|
+
}>>;
|
|
322
|
+
proactivity: z.ZodOptional<z.ZodEnum<{
|
|
323
|
+
open: "open";
|
|
324
|
+
decisions: "decisions";
|
|
325
|
+
important: "important";
|
|
326
|
+
}>>;
|
|
327
|
+
}, z.core.$strict>>;
|
|
252
328
|
instructions: z.ZodOptional<z.ZodString>;
|
|
253
329
|
}, z.core.$strict>;
|
|
254
330
|
export declare const AgentEntrySchema: z.ZodObject<{
|
|
@@ -263,6 +339,35 @@ export declare const AgentEntrySchema: z.ZodObject<{
|
|
|
263
339
|
language: z.ZodOptional<z.ZodString>;
|
|
264
340
|
emoji: z.ZodOptional<z.ZodString>;
|
|
265
341
|
avatar: z.ZodOptional<z.ZodString>;
|
|
342
|
+
responsePreferences: z.ZodOptional<z.ZodObject<{
|
|
343
|
+
addressAs: z.ZodOptional<z.ZodString>;
|
|
344
|
+
guidance: z.ZodOptional<z.ZodString>;
|
|
345
|
+
warmth: z.ZodOptional<z.ZodEnum<{
|
|
346
|
+
balanced: "balanced";
|
|
347
|
+
reserved: "reserved";
|
|
348
|
+
gentle: "gentle";
|
|
349
|
+
}>>;
|
|
350
|
+
humor: z.ZodOptional<z.ZodEnum<{
|
|
351
|
+
none: "none";
|
|
352
|
+
occasional: "occasional";
|
|
353
|
+
playful: "playful";
|
|
354
|
+
}>>;
|
|
355
|
+
supportMode: z.ZodOptional<z.ZodEnum<{
|
|
356
|
+
listen: "listen";
|
|
357
|
+
untangle: "untangle";
|
|
358
|
+
solutions: "solutions";
|
|
359
|
+
}>>;
|
|
360
|
+
detailLevel: z.ZodOptional<z.ZodEnum<{
|
|
361
|
+
brief: "brief";
|
|
362
|
+
balanced: "balanced";
|
|
363
|
+
detailed: "detailed";
|
|
364
|
+
}>>;
|
|
365
|
+
proactivity: z.ZodOptional<z.ZodEnum<{
|
|
366
|
+
open: "open";
|
|
367
|
+
decisions: "decisions";
|
|
368
|
+
important: "important";
|
|
369
|
+
}>>;
|
|
370
|
+
}, z.core.$strict>>;
|
|
266
371
|
instructions: z.ZodOptional<z.ZodString>;
|
|
267
372
|
}, z.core.$strict>>;
|
|
268
373
|
models: z.ZodOptional<z.ZodObject<{
|
|
@@ -320,6 +425,15 @@ export declare const AgentEntrySchema: z.ZodObject<{
|
|
|
320
425
|
allowed: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
321
426
|
}, z.core.$strict>>;
|
|
322
427
|
runtime: z.ZodOptional<z.ZodObject<{
|
|
428
|
+
thinkingLevel: z.ZodOptional<z.ZodEnum<{
|
|
429
|
+
low: "low";
|
|
430
|
+
high: "high";
|
|
431
|
+
off: "off";
|
|
432
|
+
medium: "medium";
|
|
433
|
+
minimal: "minimal";
|
|
434
|
+
xhigh: "xhigh";
|
|
435
|
+
max: "max";
|
|
436
|
+
}>>;
|
|
323
437
|
commandIsolation: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
324
438
|
mode: z.ZodLiteral<"host">;
|
|
325
439
|
}, z.core.$strict>, z.ZodObject<{
|
|
@@ -358,6 +472,35 @@ export declare const EffectiveAgentConfigSchema: z.ZodObject<{
|
|
|
358
472
|
language: z.ZodOptional<z.ZodString>;
|
|
359
473
|
emoji: z.ZodOptional<z.ZodString>;
|
|
360
474
|
avatar: z.ZodOptional<z.ZodString>;
|
|
475
|
+
responsePreferences: z.ZodOptional<z.ZodObject<{
|
|
476
|
+
addressAs: z.ZodOptional<z.ZodString>;
|
|
477
|
+
guidance: z.ZodOptional<z.ZodString>;
|
|
478
|
+
warmth: z.ZodOptional<z.ZodEnum<{
|
|
479
|
+
balanced: "balanced";
|
|
480
|
+
reserved: "reserved";
|
|
481
|
+
gentle: "gentle";
|
|
482
|
+
}>>;
|
|
483
|
+
humor: z.ZodOptional<z.ZodEnum<{
|
|
484
|
+
none: "none";
|
|
485
|
+
occasional: "occasional";
|
|
486
|
+
playful: "playful";
|
|
487
|
+
}>>;
|
|
488
|
+
supportMode: z.ZodOptional<z.ZodEnum<{
|
|
489
|
+
listen: "listen";
|
|
490
|
+
untangle: "untangle";
|
|
491
|
+
solutions: "solutions";
|
|
492
|
+
}>>;
|
|
493
|
+
detailLevel: z.ZodOptional<z.ZodEnum<{
|
|
494
|
+
brief: "brief";
|
|
495
|
+
balanced: "balanced";
|
|
496
|
+
detailed: "detailed";
|
|
497
|
+
}>>;
|
|
498
|
+
proactivity: z.ZodOptional<z.ZodEnum<{
|
|
499
|
+
open: "open";
|
|
500
|
+
decisions: "decisions";
|
|
501
|
+
important: "important";
|
|
502
|
+
}>>;
|
|
503
|
+
}, z.core.$strict>>;
|
|
361
504
|
instructions: z.ZodOptional<z.ZodString>;
|
|
362
505
|
}, z.core.$strict>>;
|
|
363
506
|
models: z.ZodObject<{
|
|
@@ -414,6 +557,15 @@ export declare const EffectiveAgentConfigSchema: z.ZodObject<{
|
|
|
414
557
|
allowed: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
415
558
|
}, z.core.$strict>;
|
|
416
559
|
runtime: z.ZodObject<{
|
|
560
|
+
thinkingLevel: z.ZodOptional<z.ZodEnum<{
|
|
561
|
+
low: "low";
|
|
562
|
+
high: "high";
|
|
563
|
+
off: "off";
|
|
564
|
+
medium: "medium";
|
|
565
|
+
minimal: "minimal";
|
|
566
|
+
xhigh: "xhigh";
|
|
567
|
+
max: "max";
|
|
568
|
+
}>>;
|
|
417
569
|
commandIsolation: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
418
570
|
mode: z.ZodLiteral<"host">;
|
|
419
571
|
}, z.core.$strict>, z.ZodObject<{
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { __esmMin } from "../../_virtual/_rolldown/runtime.js";
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
//#region src/agent-config/schema.ts
|
|
4
|
-
var DEFAULT_AGENT_MODEL_REF, DEFAULT_CORE_SKILLS, DEFAULT_SKILL_POLICY, AgentIdSchema, ModelRefSchema, ModelRouteSchema, ImageGenerationRouteSchema, ComputerModelRouteSchema, ModelIntentSchema, ModelIntentRoutesSchema, ModelIntentOverridesSchema, AgentModelsDefaultsSchema, AgentModelsOverrideSchema, ToolModeSchema, ToolPolicySchema, ToolPoliciesSchema, SkillDefaultsSchema, SkillOverrideSchema, WorkflowPolicySchema, RuntimePolicySchema, AgentDefaultsSchema, AgentProfileSchema, AgentEntrySchema, EffectiveAgentConfigSchema;
|
|
4
|
+
var DEFAULT_AGENT_MODEL_REF, DEFAULT_CORE_SKILLS, DEFAULT_SKILL_POLICY, AgentIdSchema, ModelRefSchema, ModelRouteSchema, ImageGenerationRouteSchema, ComputerModelRouteSchema, ModelIntentSchema, ModelIntentRoutesSchema, ModelIntentOverridesSchema, AgentModelsDefaultsSchema, AgentModelsOverrideSchema, ToolModeSchema, ToolPolicySchema, ToolPoliciesSchema, SkillDefaultsSchema, SkillOverrideSchema, WorkflowPolicySchema, RuntimePolicySchema, AgentDefaultsSchema, ResponsePreferencesSchema, AgentProfileSchema, AgentEntrySchema, EffectiveAgentConfigSchema;
|
|
5
5
|
var init_schema = __esmMin((() => {
|
|
6
|
-
DEFAULT_AGENT_MODEL_REF = "deepseek/deepseek-
|
|
6
|
+
DEFAULT_AGENT_MODEL_REF = "deepseek/deepseek-flash";
|
|
7
7
|
DEFAULT_CORE_SKILLS = [
|
|
8
8
|
"doc-coauthoring",
|
|
9
9
|
"define-task",
|
|
@@ -92,6 +92,15 @@ var init_schema = __esmMin((() => {
|
|
|
92
92
|
allowed: z.array(z.string().min(1)).optional()
|
|
93
93
|
}).strict();
|
|
94
94
|
RuntimePolicySchema = z.object({
|
|
95
|
+
thinkingLevel: z.enum([
|
|
96
|
+
"off",
|
|
97
|
+
"minimal",
|
|
98
|
+
"low",
|
|
99
|
+
"medium",
|
|
100
|
+
"high",
|
|
101
|
+
"xhigh",
|
|
102
|
+
"max"
|
|
103
|
+
]).optional(),
|
|
95
104
|
commandIsolation: z.discriminatedUnion("mode", [z.object({ mode: z.literal("host") }).strict(), z.object({
|
|
96
105
|
mode: z.literal("docker"),
|
|
97
106
|
image: z.string().regex(/^[a-zA-Z0-9][a-zA-Z0-9./:_-]*@sha256:[a-f0-9]{64}$/),
|
|
@@ -113,6 +122,35 @@ var init_schema = __esmMin((() => {
|
|
|
113
122
|
workflows: WorkflowPolicySchema.default({}),
|
|
114
123
|
runtime: RuntimePolicySchema.default({})
|
|
115
124
|
}).strict();
|
|
125
|
+
ResponsePreferencesSchema = z.object({
|
|
126
|
+
addressAs: z.string().trim().max(60).optional(),
|
|
127
|
+
guidance: z.string().trim().max(500).optional(),
|
|
128
|
+
warmth: z.enum([
|
|
129
|
+
"reserved",
|
|
130
|
+
"balanced",
|
|
131
|
+
"gentle"
|
|
132
|
+
]).optional(),
|
|
133
|
+
humor: z.enum([
|
|
134
|
+
"none",
|
|
135
|
+
"occasional",
|
|
136
|
+
"playful"
|
|
137
|
+
]).optional(),
|
|
138
|
+
supportMode: z.enum([
|
|
139
|
+
"listen",
|
|
140
|
+
"untangle",
|
|
141
|
+
"solutions"
|
|
142
|
+
]).optional(),
|
|
143
|
+
detailLevel: z.enum([
|
|
144
|
+
"brief",
|
|
145
|
+
"balanced",
|
|
146
|
+
"detailed"
|
|
147
|
+
]).optional(),
|
|
148
|
+
proactivity: z.enum([
|
|
149
|
+
"decisions",
|
|
150
|
+
"important",
|
|
151
|
+
"open"
|
|
152
|
+
]).optional()
|
|
153
|
+
}).strict();
|
|
116
154
|
AgentProfileSchema = z.object({
|
|
117
155
|
name: z.string().trim().min(1),
|
|
118
156
|
description: z.string().trim().optional(),
|
|
@@ -121,6 +159,7 @@ var init_schema = __esmMin((() => {
|
|
|
121
159
|
language: z.string().trim().optional(),
|
|
122
160
|
emoji: z.string().trim().optional(),
|
|
123
161
|
avatar: z.string().trim().optional(),
|
|
162
|
+
responsePreferences: ResponsePreferencesSchema.optional(),
|
|
124
163
|
instructions: z.string().trim().min(1).optional()
|
|
125
164
|
}).strict();
|
|
126
165
|
AgentEntrySchema = z.object({
|
|
@@ -150,4 +189,4 @@ var init_schema = __esmMin((() => {
|
|
|
150
189
|
}));
|
|
151
190
|
//#endregion
|
|
152
191
|
init_schema();
|
|
153
|
-
export { AgentDefaultsSchema, AgentEntrySchema, AgentIdSchema, AgentModelsDefaultsSchema, AgentModelsOverrideSchema, AgentProfileSchema, ComputerModelRouteSchema, DEFAULT_AGENT_MODEL_REF, DEFAULT_CORE_SKILLS, DEFAULT_SKILL_POLICY, EffectiveAgentConfigSchema, ImageGenerationRouteSchema, ModelIntentSchema, ModelRefSchema, ModelRouteSchema, RuntimePolicySchema, SkillDefaultsSchema, SkillOverrideSchema, ToolModeSchema, ToolPoliciesSchema, ToolPolicySchema, WorkflowPolicySchema, init_schema };
|
|
192
|
+
export { AgentDefaultsSchema, AgentEntrySchema, AgentIdSchema, AgentModelsDefaultsSchema, AgentModelsOverrideSchema, AgentProfileSchema, ComputerModelRouteSchema, DEFAULT_AGENT_MODEL_REF, DEFAULT_CORE_SKILLS, DEFAULT_SKILL_POLICY, EffectiveAgentConfigSchema, ImageGenerationRouteSchema, ModelIntentSchema, ModelRefSchema, ModelRouteSchema, ResponsePreferencesSchema, RuntimePolicySchema, SkillDefaultsSchema, SkillOverrideSchema, ToolModeSchema, ToolPoliciesSchema, ToolPolicySchema, WorkflowPolicySchema, init_schema };
|
|
@@ -37,8 +37,18 @@ const thinkCommand = {
|
|
|
37
37
|
content: `❌ Invalid thinking level: ${args}\n\nAvailable levels: ${formatThinkingLevels()}\n\nUsage: /think <level>\nExample: /think high`,
|
|
38
38
|
success: false
|
|
39
39
|
};
|
|
40
|
-
|
|
41
|
-
|
|
40
|
+
if (ctx.setThinkingLevel) try {
|
|
41
|
+
await ctx.setThinkingLevel(level);
|
|
42
|
+
} catch (error) {
|
|
43
|
+
return {
|
|
44
|
+
content: error instanceof Error ? error.message : "Unable to change thinking level",
|
|
45
|
+
success: false
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
await setSessionAgentField(ctx.getSessionConfigStore?.(), ctx.conversationId, "thinkingLevel", level);
|
|
50
|
+
ctx.syncAgentThinkingLevel?.(level);
|
|
51
|
+
}
|
|
42
52
|
return {
|
|
43
53
|
content: `🧠 *Thinking Level Set*\n\nLevel: *${level}*\n${{
|
|
44
54
|
off: "No thinking",
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { createLogger } from "../utils/logger/index.js";
|
|
2
2
|
import { init_logger } from "../utils/logger.js";
|
|
3
3
|
import { getAgentDefaultModelRef, init_schema } from "../config/schema.js";
|
|
4
|
+
import { resolveEffectiveAgentConfigForSession } from "../config/agent-profile.js";
|
|
4
5
|
import { effectiveWorkspacePathForSession } from "../session/session-workspace.js";
|
|
5
6
|
import { getProjectForSession } from "../projects/workspace.js";
|
|
6
7
|
import { getSessionDisplayName } from "./session-key.js";
|
|
@@ -208,6 +209,8 @@ var CommandContextImpl = class {
|
|
|
208
209
|
* Get current thinking level (session override or default)
|
|
209
210
|
*/
|
|
210
211
|
async getThinkingLevel() {
|
|
212
|
+
const configured = resolveEffectiveAgentConfigForSession(this.conversationId).config.runtime.thinkingLevel;
|
|
213
|
+
if (configured) return configured;
|
|
211
214
|
const configStore = this.deps.sessionConfigStore;
|
|
212
215
|
if (configStore) {
|
|
213
216
|
const sessionConfig = await configStore.get(this.conversationId);
|
|
@@ -218,12 +221,15 @@ var CommandContextImpl = class {
|
|
|
218
221
|
* Set thinking level for this session
|
|
219
222
|
*/
|
|
220
223
|
async setThinkingLevel(level) {
|
|
224
|
+
const configured = resolveEffectiveAgentConfigForSession(this.conversationId).config.runtime.thinkingLevel;
|
|
225
|
+
if (configured && level !== configured) throw new Error(`This agent uses thinking ${configured}`);
|
|
221
226
|
const configStore = this.deps.sessionConfigStore;
|
|
222
227
|
if (configStore) await configStore.update(this.conversationId, { thinkingLevel: level });
|
|
223
228
|
this.deps.applySessionThinkingLevel?.(this.conversationId, level);
|
|
224
229
|
}
|
|
225
230
|
syncAgentThinkingLevel(level) {
|
|
226
|
-
|
|
231
|
+
const configured = resolveEffectiveAgentConfigForSession(this.conversationId).config.runtime.thinkingLevel;
|
|
232
|
+
this.deps.applySessionThinkingLevel?.(this.conversationId, configured ?? level);
|
|
227
233
|
}
|
|
228
234
|
async compactSession(options) {
|
|
229
235
|
if (!this.deps.compactSession) return null;
|
|
@@ -4,10 +4,10 @@ import { CredentialResolver, init_credentials } from "../../auth/credentials.js"
|
|
|
4
4
|
import { getAllProviders, init_providers } from "../../providers/index.js";
|
|
5
5
|
import { formatExamples, register } from "../registry.js";
|
|
6
6
|
import { disconnectProvider } from "../../providers/provider-disconnect.js";
|
|
7
|
+
import { colorizeStatus, colors } from "../utils/colors.js";
|
|
7
8
|
import { listAllProfiles, listProfilesForProvider, removeAuthProfile, upsertAuthProfile } from "../../auth/profiles/profiles.js";
|
|
8
9
|
import "../../auth/profiles/index.js";
|
|
9
10
|
import { getOAuthProvider, getSupportedOAuthProviders } from "../utils/oauth-providers.js";
|
|
10
|
-
import { colorizeStatus, colors } from "../utils/colors.js";
|
|
11
11
|
import { runCliOAuthLogin } from "../utils/oauth-login.js";
|
|
12
12
|
import { Command } from "commander";
|
|
13
13
|
//#region src/cli/commands/auth.ts
|
|
@@ -53,7 +53,7 @@ async function checkDatabaseSchema(ctx) {
|
|
|
53
53
|
id: "database-schema",
|
|
54
54
|
label: "Database schema",
|
|
55
55
|
status: "pass",
|
|
56
|
-
message: `SQLite schema v${status.dbVersion} (current release
|
|
56
|
+
message: `SQLite schema v${status.dbVersion} (current release v229).`,
|
|
57
57
|
hints: []
|
|
58
58
|
};
|
|
59
59
|
}
|
|
@@ -106,7 +106,7 @@ async function runModelsList(options) {
|
|
|
106
106
|
}
|
|
107
107
|
}
|
|
108
108
|
console.log("\nUsage:");
|
|
109
|
-
console.log(" xopc models set deepseek/deepseek-
|
|
109
|
+
console.log(" xopc models set deepseek/deepseek-flash");
|
|
110
110
|
console.log(" xopc models auth login --provider anthropic");
|
|
111
111
|
console.log(" xopc models auth paste-api-key --provider deepseek");
|
|
112
112
|
}
|
|
@@ -210,7 +210,7 @@ function createModelsCommand(_ctx) {
|
|
|
210
210
|
const cmd = new Command("models").description("List and manage models and model auth").addHelpText("after", formatExamples([
|
|
211
211
|
"xopc models list",
|
|
212
212
|
"xopc models status",
|
|
213
|
-
"xopc models set deepseek/deepseek-
|
|
213
|
+
"xopc models set deepseek/deepseek-flash",
|
|
214
214
|
"xopc models auth list",
|
|
215
215
|
"xopc models auth login --provider anthropic",
|
|
216
216
|
"xopc models auth paste-api-key --provider deepseek"
|
|
@@ -12,10 +12,10 @@ import { discoverProviderModels, isProviderApiDiscoverable } from "../../../prov
|
|
|
12
12
|
import { getXopcCloudCatalogCoordinator } from "../../../providers/xopc-cloud-catalog-coordinator.js";
|
|
13
13
|
import { getDomesticProviderBaseUrl, getDomesticProviderPreset, getDomesticProviderPresetIds, providerConfigFromDomesticPreset } from "../../../providers/domestic-presets.js";
|
|
14
14
|
import { getProviderHint, getRecommendedModelsForProvider, sortModelsForPicker, sortProvidersForPicker } from "../../../providers/presentation.js";
|
|
15
|
+
import { colors } from "../../utils/colors.js";
|
|
15
16
|
import { listProfilesForProvider } from "../../../auth/profiles/profiles.js";
|
|
16
17
|
import "../../../auth/profiles/index.js";
|
|
17
18
|
import { getOAuthProvider } from "../../utils/oauth-providers.js";
|
|
18
|
-
import { colors } from "../../utils/colors.js";
|
|
19
19
|
import { runCliOAuthLogin } from "../../utils/oauth-login.js";
|
|
20
20
|
import { confirm, input, select } from "@inquirer/prompts";
|
|
21
21
|
//#region src/cli/commands/onboard/model.ts
|