@xopcai/xopc 0.0.366 → 0.0.367
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-store-SVmnh__i.js → activity-store-Cuf3JFFJ.js} +1 -1
- package/dist/gateway/static/root/assets/{agent-avatar-dicebear-CS9lg5h2.js → agent-avatar-dicebear-DyATPNTe.js} +1 -1
- package/dist/gateway/static/root/assets/agent-defaults-settings-panel-gT9_j4tr.js +1 -0
- package/dist/gateway/static/root/assets/agent-plugin-dialog-CLXCJ6JN.js +1 -0
- package/dist/gateway/static/root/assets/agents-BAUfOMsq.js +66 -0
- package/dist/gateway/static/root/assets/{agents-admin-api-CVdFV-cU.js → agents-admin-api-D842OcNo.js} +1 -1
- package/dist/gateway/static/root/assets/app-link-4gpFbdsr.js +1 -0
- package/dist/gateway/static/root/assets/{app-management-settings-panel-CaxnUxvy.js → app-management-settings-panel-CoIFxQKH.js} +1 -1
- package/dist/gateway/static/root/assets/{appearance-settings-6NKquG3v.js → appearance-settings-DQr0o6Lm.js} +1 -1
- package/dist/gateway/static/root/assets/{apps-page-BoB3MbsB.js → apps-page-CltMV4Xp.js} +1 -1
- package/dist/gateway/static/root/assets/{archive-plugin-BWtLZtK1.js → archive-plugin-DT8Nio-r.js} +1 -1
- package/dist/gateway/static/root/assets/automation-display-DCkjVzA0.js +2 -0
- package/dist/gateway/static/root/assets/{automations-page-CNngHw2c.js → automations-page-BIfWS_3Y.js} +1 -1
- package/dist/gateway/static/root/assets/automations-workspace-BCGPjsdU.js +6 -0
- package/dist/gateway/static/root/assets/binary-plugins-7qs3qcW9.js +2 -0
- package/dist/gateway/static/root/assets/{block-editor-BhstSZNE.js → block-editor-BFPUlxJ6.js} +28 -28
- package/dist/gateway/static/root/assets/{browser-automation-inputs-B6sOBxVA.js → browser-automation-inputs-BUAIKIX0.js} +1 -1
- package/dist/gateway/static/root/assets/{browser-automations-page-HZAKkVVt.js → browser-automations-page-CSwu1U1F.js} +2 -2
- package/dist/gateway/static/root/assets/browser-settings-page-C1ReMNqX.js +3 -0
- package/dist/gateway/static/root/assets/capabilities-BzWFO_x_.js +1 -0
- package/dist/gateway/static/root/assets/{capabilities-CAIQmCrH.js → capabilities-K0Zb_lH0.js} +1 -1
- package/dist/gateway/static/root/assets/capabilities-page-BdTSqloI.js +2 -0
- package/dist/gateway/static/root/assets/{capabilities-settings-panel-BP2roWcM.js → capabilities-settings-panel-BUblBMZC.js} +4 -4
- package/dist/gateway/static/root/assets/{capability-header-actions-BA1M7RRP.js → capability-header-actions-AMn_vTNv.js} +1 -1
- package/dist/gateway/static/root/assets/channels-CXCf5qO6.js +1 -0
- package/dist/gateway/static/root/assets/{chat-terminal-dock-KS_yk1H7.js → chat-terminal-dock-C7nAROhF.js} +2 -2
- package/dist/gateway/static/root/assets/chevron-left-DqFhpbvK.js +1 -0
- package/dist/gateway/static/root/assets/computer-settings-page-B5SuSZ3G.js +1 -0
- package/dist/gateway/static/root/assets/{connector-service-page-CY_3H_l9.js → connector-service-page-CTx1B8wx.js} +1 -1
- package/dist/gateway/static/root/assets/connectors-page-DfnK1crf.js +2 -0
- package/dist/gateway/static/root/assets/date-formatters-CUZAyDEg.js +1 -0
- package/dist/gateway/static/root/assets/date-picker-Cx_xIKvN.js +1 -0
- package/dist/gateway/static/root/assets/{dependency-picker-CyNH4m20.js → dependency-picker-DYm96PDu.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-BsZQsQ2_.js → desktop-pet-D90OzgeR.js} +1 -1
- package/dist/gateway/static/root/assets/{desktop-pet-settings-DMgkUy6g.js → desktop-pet-settings-CmdCecjm.js} +1 -1
- package/dist/gateway/static/root/assets/{device-pairing-wizard-JjbUN8y-.js → device-pairing-wizard-s2ogSa4l.js} +1 -1
- package/dist/gateway/static/root/assets/{directory-picker-path-field-CBTI3tKh.js → directory-picker-path-field-DZpaoeNa.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-debug-page-C7nSpOKj.js → extension-debug-page-Bv6QE8kC.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-BYUjAvsZ.js → extension-page-CEsq71Cm.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-provider-DaLt3bC-.js → extension-provider-CX-sK0Tw.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-settings-page-CRasspq0.js → extension-settings-page-UyOHF39P.js} +1 -1
- package/dist/gateway/static/root/assets/{fallback-models-BLJFYASE.js → fallback-models-CKv_Wqg8.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-config-swr-DIIzvDLQ.js → gateway-config-swr-Cjnkle5J.js} +1 -1
- package/dist/gateway/static/root/assets/{gateway-realtime-DD70L42G.js → gateway-realtime-DCCLdyQD.js} +1 -1
- package/dist/gateway/static/root/assets/gateway-realtime-store-C_Th8kGg.js +1 -0
- package/dist/gateway/static/root/assets/gateway-settings-CZ73IpbP.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-startup-retry-D_EwU7-6.js → gateway-startup-retry-CXKmdVzN.js} +1 -1
- package/dist/gateway/static/root/assets/home-page-BQWq4kYi.js +2 -0
- package/dist/gateway/static/root/assets/{image-generation-api-BkK22JsL.js → image-generation-api-NLHzm4Nc.js} +1 -1
- package/dist/gateway/static/root/assets/{imports-page-YJKcTKKr.js → imports-page-C7qvlBTQ.js} +1 -1
- package/dist/gateway/static/root/assets/index-BQgqzhQj.js +106 -0
- package/dist/gateway/static/root/assets/index-COB4QIJp.css +1 -0
- package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-BG_kM_Rm.js → keyboard-shortcuts-settings-pkgFWJb-.js} +1 -1
- package/dist/gateway/static/root/assets/local-app-workbench-page-dMDhZXAi.js +1 -0
- package/dist/gateway/static/root/assets/{local-apps-page-jqthjcQO.js → local-apps-page-TpUAfOn2.js} +1 -1
- package/dist/gateway/static/root/assets/{local-session-drafts-C4et6msJ.js → local-session-drafts-Cvv7I0fw.js} +1 -1
- package/dist/gateway/static/root/assets/{locale-store-CvNO-hbt.js → locale-store-C8TMD2gn.js} +1 -1
- package/dist/gateway/static/root/assets/logs-page-B-Y9oZLh.js +2 -0
- package/dist/gateway/static/root/assets/management-settings-B2lzsw6X.js +1 -0
- package/dist/gateway/static/root/assets/markdown-view-Dse7rkio.js +201 -0
- package/dist/gateway/static/root/assets/{media-plugins-C25mOgs2.js → media-plugins-BZrnzaBM.js} +1 -1
- package/dist/gateway/static/root/assets/messages-Dy26npMy.js +3 -0
- package/dist/gateway/static/root/assets/models-hub-cache-B1C86nRp.js +1 -0
- package/dist/gateway/static/root/assets/note-detail-panel-DL__qP6U.js +5 -0
- package/dist/gateway/static/root/assets/{notes-api-CKLw9vjk.js → notes-api-DKiVeQKG.js} +1 -1
- package/dist/gateway/static/root/assets/notes-page-DTBbg9Hs.js +8 -0
- package/dist/gateway/static/root/assets/{oauth-api-CC5KkSgG.js → oauth-api-BwpzpRwC.js} +1 -1
- package/dist/gateway/static/root/assets/open-route-MyZ2sB9C.js +1 -0
- package/dist/gateway/static/root/assets/{page-context-capture-button-KX9mrcJW.js → page-context-capture-button-Cxzd4QPB.js} +1 -1
- package/dist/gateway/static/root/assets/personal-page-CzaTnHeD.js +1 -0
- package/dist/gateway/static/root/assets/product-open-page-D4hoEWiu.js +1 -0
- package/dist/gateway/static/root/assets/product-preview-content-aR38El2E.js +1 -0
- package/dist/gateway/static/root/assets/project-detail-page-D20QH4YB.js +1 -0
- package/dist/gateway/static/root/assets/projects-page-Bf3BIcT6.js +1 -0
- package/dist/gateway/static/root/assets/{registry-api-CiN49wvk.js → registry-api-AdnxowbH.js} +1 -1
- package/dist/gateway/static/root/assets/remote-access-hub-CKxqncqW.js +1 -0
- package/dist/gateway/static/root/assets/{runtime-tools-settings-panel-wZjlSBiM.js → runtime-tools-settings-panel-CBN3raz1.js} +1 -1
- package/dist/gateway/static/root/assets/scenes-page-Cv_5ozfX.js +2 -0
- package/dist/gateway/static/root/assets/{schema-form-CMB61TV1.js → schema-form-CxrMGsT9.js} +1 -1
- package/dist/gateway/static/root/assets/{send-session-input-jH6MQwdZ.js → send-session-input-CgOzhDZ0.js} +1 -1
- package/dist/gateway/static/root/assets/{session-api-CW2X7g_U.js → session-api-_HIN8or3.js} +1 -1
- package/dist/gateway/static/root/assets/session-manager-CzCto5zT.js +16 -0
- package/dist/gateway/static/root/assets/sessions-page-DZcu6NLJ.js +1 -0
- package/dist/gateway/static/root/assets/settings-advanced-gate-DazqeDQ7.js +1 -0
- package/dist/gateway/static/root/assets/{settings-page-Ch71KQjb.js → settings-page-D8Q3H3-o.js} +1 -1
- package/dist/gateway/static/root/assets/setup-status-panel-DvLMMiuS.js +1 -0
- package/dist/gateway/static/root/assets/{share-link-dialog-DCSmx-Rl.js → share-link-dialog-Dg5os066.js} +1 -1
- package/dist/gateway/static/root/assets/{share-preview-page-C93IM3QK.js → share-preview-page-DMvohAyr.js} +1 -1
- package/dist/gateway/static/root/assets/{shares-api-B4rLfG3l.js → shares-api-C96IO4qJ.js} +1 -1
- package/dist/gateway/static/root/assets/{shares-settings-C_6idV8e.js → shares-settings-CsDATuCw.js} +1 -1
- package/dist/gateway/static/root/assets/{skill-api-sKX8SSlQ.js → skill-api-C10ML0CH.js} +1 -1
- package/dist/gateway/static/root/assets/{skill-reload-api-Ro-s69NW.js → skill-reload-api-DNbJzSfB.js} +1 -1
- package/dist/gateway/static/root/assets/skills-page-DObMKvA6.js +2 -0
- package/dist/gateway/static/root/assets/{system-settings-panel-DIjaUlla.js → system-settings-panel-Bn3khdzb.js} +1 -1
- package/dist/gateway/static/root/assets/task-detail-page-BR2L1L8l.js +2 -0
- package/dist/gateway/static/root/assets/task-expandable-content-DL2Q2gre.js +1 -0
- package/dist/gateway/static/root/assets/{tasks-CH6KoBeY.js → tasks-DwKXgZ-I.js} +1 -1
- package/dist/gateway/static/root/assets/{theme-store-DbRLBHVY.js → theme-store-DQ6KJa4l.js} +1 -1
- package/dist/gateway/static/root/assets/{tracing-settings-page-IgY26AYH.js → tracing-settings-page-Ed8_GYUT.js} +1 -1
- package/dist/gateway/static/root/assets/{tunnel-api-CgARwbus.js → tunnel-api-D3X8jDwo.js} +1 -1
- package/dist/gateway/static/root/assets/{usage-page-CKju62Cm.js → usage-page-BqzRyyb9.js} +1 -1
- package/dist/gateway/static/root/assets/{use-autosave-C889OTsP.js → use-autosave-CRFefpzO.js} +1 -1
- package/dist/gateway/static/root/assets/use-composer-attachments-OLrvSjn5.js +2 -0
- package/dist/gateway/static/root/assets/{use-file-preview-expanded-BOpcSApw.js → use-file-preview-expanded-CJvzfQvw.js} +2 -2
- package/dist/gateway/static/root/assets/user-model-page-CG6wqIKP.js +2 -0
- package/dist/gateway/static/root/assets/{voice-api-key-field-evWflGY6.js → voice-api-key-field-R9zNWYR_.js} +1 -1
- package/dist/gateway/static/root/assets/{voice-config-api-CZoV2Lt4.js → voice-config-api-DLudE9Rc.js} +1 -1
- package/dist/gateway/static/root/assets/{work-discovery-overlay-B2-2F39_.js → work-discovery-overlay-DVmQrolV.js} +1 -1
- package/dist/gateway/static/root/assets/{workflow-run-setup-panel-cOGM8Nug.js → workflow-run-setup-panel-DEkmuD3T.js} +2 -2
- package/dist/gateway/static/root/assets/workflows-page-pqCB3sh4.js +6 -0
- package/dist/gateway/static/root/assets/workspace-api-CdVUhyPo.js +2 -0
- package/dist/gateway/static/root/index.html +32 -30
- package/dist/package.js +1 -1
- package/dist/packages/gateway-contract/src/automations.js +1 -0
- package/dist/packages/gateway-contract/src/home.js +14 -0
- package/dist/packages/gateway-contract/src/index.js +2 -0
- package/dist/packages/gateway-contract/src/notifications.js +2 -1
- package/dist/packages/gateway-contract/src/personal-proactivity.js +139 -0
- package/dist/packages/image-providers/src/catalog.js +373 -0
- package/dist/packages/image-providers/src/execute.js +372 -0
- package/dist/packages/image-providers/src/http.js +94 -0
- package/dist/packages/image-providers/src/index.js +5 -0
- package/dist/packages/image-providers/src/types.d.ts +95 -0
- package/dist/packages/image-providers/src/validation.js +52 -0
- package/dist/src/agent/commands/command-registry.js +1 -1
- package/dist/src/agent/failover-error.d.ts +1 -1
- package/dist/src/agent/failover-error.js +7 -0
- package/dist/src/agent/image/generation/native-provider.d.ts +2 -0
- package/dist/src/agent/image/generation/native-provider.js +118 -0
- package/dist/src/agent/image/generation/openai-images-provider.d.ts +1 -1
- package/dist/src/agent/image/generation/openai-images-provider.js +48 -32
- package/dist/src/agent/image/generation/provider-registry.js +4 -13
- package/dist/src/agent/image/generation/providers/xopc-cloud.js +5 -34
- package/dist/src/agent/image/generation/runtime-types.d.ts +2 -4
- package/dist/src/agent/image/generation/runtime.js +28 -23
- package/dist/src/agent/image/generation/types.d.ts +3 -50
- package/dist/src/agent/image/generation/validation.d.ts +6 -0
- package/dist/src/agent/image/generation/validation.js +16 -0
- package/dist/src/agent/tools/factory.js +5 -0
- package/dist/src/agent/tools/image-generate-tool.js +5 -19
- package/dist/src/agent/tools/personal-attention-tool.d.ts +21 -0
- package/dist/src/agent/tools/personal-attention-tool.js +191 -0
- package/dist/src/automations/capabilities/write.d.ts +2 -0
- package/dist/src/automations/domain/types.d.ts +1 -1
- package/dist/src/automations/domain/validation.d.ts +4 -0
- package/dist/src/automations/domain/validation.js +1 -0
- package/dist/src/automations/draft/automation-draft-validator.d.ts +1 -1
- package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
- package/dist/src/cli/commands/models.js +3 -8
- package/dist/src/config/models-json.d.ts +170 -0
- package/dist/src/config/models-json.js +23 -8
- package/dist/src/files/file-service.d.ts +6 -0
- package/dist/src/files/file-service.js +38 -1
- package/dist/src/gateway/custom-image-providers.d.ts +34 -0
- package/dist/src/gateway/file-path-classifier.js +12 -3
- package/dist/src/gateway/hono/routes/files.js +13 -2
- package/dist/src/gateway/hono/routes/personal-agent.js +41 -0
- package/dist/src/gateway/service.d.ts +1 -0
- package/dist/src/gateway/service.js +50 -11
- package/dist/src/home-intelligence/host.js +2 -2
- package/dist/src/notifications/planner.js +32 -0
- package/dist/src/notifications/service.d.ts +2 -0
- package/dist/src/personal-agent/notifications.d.ts +4 -0
- package/dist/src/personal-agent/notifications.js +40 -0
- package/dist/src/personal-agent/policy.d.ts +1 -1
- package/dist/src/personal-agent/policy.js +2 -0
- package/dist/src/personal-agent/proactivity/automation.d.ts +3 -0
- package/dist/src/personal-agent/proactivity/automation.js +41 -0
- package/dist/src/personal-agent/proactivity/follow-up-request.d.ts +5 -0
- package/dist/src/personal-agent/proactivity/follow-up-request.js +44 -0
- package/dist/src/personal-agent/proactivity/repository.d.ts +128 -0
- package/dist/src/personal-agent/proactivity/repository.js +403 -0
- package/dist/src/personal-agent/proactivity/routes.d.ts +3 -0
- package/dist/src/personal-agent/proactivity/routes.js +182 -0
- package/dist/src/personal-agent/proactivity/service.d.ts +32 -0
- package/dist/src/personal-agent/proactivity/service.js +496 -0
- package/dist/src/personal-agent/prompts.js +13 -2
- package/dist/src/personal-agent/reply-composer.js +2 -2
- package/dist/src/personal-agent/unread.d.ts +10 -0
- package/dist/src/personal-agent/unread.js +43 -0
- package/dist/src/providers/env-keys.js +6 -0
- package/dist/src/providers/model-catalog-persistence.js +3 -22
- package/dist/src/providers/model-catalog-store.js +1 -8
- package/dist/src/providers/model-catalog-types.d.ts +1 -9
- package/dist/src/providers/xopc-cloud-model-source.js +4 -25
- package/dist/src/session/client-history.d.ts +2 -0
- package/dist/src/session/client-history.js +26 -0
- package/dist/src/session/session-context-for-llm.js +28 -0
- package/dist/src/storage/sqlite/migrations/236_personal_proactivity.sql +53 -0
- package/dist/src/storage/sqlite/migrations/237_personal_strategy_versions.sql +18 -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/tasks/home-query-service.js +27 -1
- package/dist/src/voice/platform-catalog.d.ts +1 -9
- package/package.json +4 -3
- package/dist/gateway/static/root/assets/agent-defaults-settings-panel-CvUPtxS4.js +0 -1
- package/dist/gateway/static/root/assets/agent-plugin-dialog-1tRxDfjI.js +0 -1
- package/dist/gateway/static/root/assets/agents-gdT0whx9.js +0 -66
- package/dist/gateway/static/root/assets/app-link-DRL0YnPs.js +0 -1
- package/dist/gateway/static/root/assets/automations-workspace-BKHsdiQ8.js +0 -7
- package/dist/gateway/static/root/assets/binary-plugins-fIhH-wg6.js +0 -2
- package/dist/gateway/static/root/assets/browser-settings-page-D8IpVQI6.js +0 -3
- package/dist/gateway/static/root/assets/capabilities-C4grvUkw.js +0 -1
- package/dist/gateway/static/root/assets/capabilities-page-DK8FJRW4.js +0 -2
- package/dist/gateway/static/root/assets/channels-EQGCxr8W.js +0 -1
- package/dist/gateway/static/root/assets/computer-settings-page-CGBR0KFw.js +0 -1
- package/dist/gateway/static/root/assets/connectors-page-CUOL6JX0.js +0 -2
- package/dist/gateway/static/root/assets/date-picker-CDSZ-PWV.js +0 -1
- package/dist/gateway/static/root/assets/gateway-realtime-store-DeUVEPPE.js +0 -1
- package/dist/gateway/static/root/assets/gateway-settings-B9n5naCr.js +0 -1
- package/dist/gateway/static/root/assets/home-page-BP6qAgBt.js +0 -1
- package/dist/gateway/static/root/assets/index-6JNNrzCq.js +0 -106
- package/dist/gateway/static/root/assets/index-CbJNcWAn.css +0 -1
- package/dist/gateway/static/root/assets/local-app-workbench-page-lHi21M1T.js +0 -1
- package/dist/gateway/static/root/assets/logs-page-CH7W-dm5.js +0 -2
- package/dist/gateway/static/root/assets/management-settings-DVgI_KNm.js +0 -1
- package/dist/gateway/static/root/assets/markdown-view-DDJlD5jR.js +0 -201
- package/dist/gateway/static/root/assets/messages-pGa2qMzG.js +0 -3
- package/dist/gateway/static/root/assets/models-hub-cache-DzFiL4xV.js +0 -1
- package/dist/gateway/static/root/assets/note-detail-panel-kyX-n1db.js +0 -5
- package/dist/gateway/static/root/assets/notes-page-CLZygZlm.js +0 -8
- package/dist/gateway/static/root/assets/personal-page-DnXlcJNJ.js +0 -1
- package/dist/gateway/static/root/assets/product-open-page-D7pknlCh.js +0 -1
- package/dist/gateway/static/root/assets/project-detail-page-DhV9DPj8.js +0 -1
- package/dist/gateway/static/root/assets/projects-page-D181xkFw.js +0 -1
- package/dist/gateway/static/root/assets/remote-access-hub-CQnBARQW.js +0 -1
- package/dist/gateway/static/root/assets/scenes-page-DWt54veq.js +0 -2
- package/dist/gateway/static/root/assets/session-manager-BDpdi3lF.js +0 -16
- package/dist/gateway/static/root/assets/sessions-page-DPEdjUdR.js +0 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-B6WGnTLY.js +0 -1
- package/dist/gateway/static/root/assets/setup-status-panel-C7sLy8Hl.js +0 -1
- package/dist/gateway/static/root/assets/skills-page-TsrjLYcI.js +0 -2
- package/dist/gateway/static/root/assets/task-detail-page-B4Lby289.js +0 -2
- package/dist/gateway/static/root/assets/use-composer-attachments-Dlm9EFTO.js +0 -2
- package/dist/gateway/static/root/assets/user-model-page-CTkCLRhE.js +0 -2
- package/dist/gateway/static/root/assets/workflows-page-Csk8xrRk.js +0 -6
- package/dist/gateway/static/root/assets/workspace-api-B9M9ECTB.js +0 -2
- package/dist/src/agent/image/generation/normalization.d.ts +0 -38
- package/dist/src/agent/image/generation/normalization.js +0 -181
- package/dist/src/agent/image/generation/providers/dashscope.d.ts +0 -35
- package/dist/src/agent/image/generation/providers/dashscope.js +0 -257
- package/dist/src/agent/image/generation/providers/fal.d.ts +0 -15
- package/dist/src/agent/image/generation/providers/fal.js +0 -323
- package/dist/src/agent/image/generation/providers/google.d.ts +0 -16
- package/dist/src/agent/image/generation/providers/google.js +0 -244
- package/dist/src/agent/image/generation/providers/minimax.d.ts +0 -23
- package/dist/src/agent/image/generation/providers/minimax.js +0 -215
- package/dist/src/agent/image/generation/providers/openai.d.ts +0 -5
- package/dist/src/agent/image/generation/providers/openai.js +0 -134
|
@@ -19,6 +19,8 @@ const ALLOWED_QUALITIES = [
|
|
|
19
19
|
"low",
|
|
20
20
|
"medium",
|
|
21
21
|
"high",
|
|
22
|
+
"xhigh",
|
|
23
|
+
"max",
|
|
22
24
|
"auto"
|
|
23
25
|
];
|
|
24
26
|
const ALLOWED_OUTPUT_FORMATS = [
|
|
@@ -39,7 +41,7 @@ const ALLOWED_RESOLUTIONS = [
|
|
|
39
41
|
const ImageGenerateToolSchema = Type.Object({
|
|
40
42
|
action: Type.Optional(Type.String({ description: "Optional: \"generate\" (default) or \"list\" available image-generation providers." })),
|
|
41
43
|
prompt: Type.Optional(Type.String({ description: "Image generation prompt." })),
|
|
42
|
-
model: Type.Optional(Type.String({ description: "Optional provider/model override, e.g. openai/gpt-image-2 / dashscope/wan2.7-image-pro / minimax/image-01." })),
|
|
44
|
+
model: Type.Optional(Type.String({ description: "Optional provider/model override, e.g. openai/gpt-image-2.5-flare / dashscope/wan2.7-image-pro / minimax/image-01." })),
|
|
43
45
|
filename: Type.Optional(Type.String({ description: "Optional basename hint for saved files." })),
|
|
44
46
|
size: Type.Optional(Type.String({ description: "Optional pixel size, e.g. 1024x1024." })),
|
|
45
47
|
aspectRatio: Type.Optional(Type.String({ description: "Optional aspect ratio, e.g. 16:9 / 9:16 / 1:1." })),
|
|
@@ -49,7 +51,7 @@ const ImageGenerateToolSchema = Type.Object({
|
|
|
49
51
|
maximum: MAX_COUNT,
|
|
50
52
|
description: `Number of images (1–${MAX_COUNT}).`
|
|
51
53
|
})),
|
|
52
|
-
quality: Type.Optional(Type.String({ description: "Optional quality: low / medium / high / auto." })),
|
|
54
|
+
quality: Type.Optional(Type.String({ description: "Optional quality: low / medium / high / xhigh / max / auto." })),
|
|
53
55
|
outputFormat: Type.Optional(Type.String({ description: "Optional output format: png / jpeg / webp." })),
|
|
54
56
|
background: Type.Optional(Type.String({ description: "Optional background: transparent / opaque / auto." })),
|
|
55
57
|
inputImages: Type.Optional(Type.Array(Type.Object({ source: Type.String({ description: "Workspace-relative file path or `data:image/...;base64,...` URL." }) }), { description: "Reference images for edit mode (provider must support edit)." })),
|
|
@@ -282,12 +284,10 @@ function createImageGenerateTool(options) {
|
|
|
282
284
|
filePath: paths[index],
|
|
283
285
|
mediaType: "photo"
|
|
284
286
|
})));
|
|
285
|
-
const lines = [`Generated and attached ${paths.length} image(s) with ${result.provider}/${result.model}.`, ...paths.map((p) => `Saved: ${p}`)];
|
|
286
|
-
for (const note of buildNormalizationNotes(result.normalization, result.ignoredOverrides)) lines.push(note);
|
|
287
287
|
return {
|
|
288
288
|
content: [{
|
|
289
289
|
type: "text",
|
|
290
|
-
text:
|
|
290
|
+
text: [`Generated and attached ${paths.length} image(s) with ${result.provider}/${result.model}.`, ...paths.map((p) => `Saved: ${p}`)].join("\n")
|
|
291
291
|
}],
|
|
292
292
|
details: {
|
|
293
293
|
provider: result.provider,
|
|
@@ -308,8 +308,6 @@ function createImageGenerateTool(options) {
|
|
|
308
308
|
workspaceRelativePath: workspaceRelativePaths[index]
|
|
309
309
|
})),
|
|
310
310
|
attempts: result.attempts,
|
|
311
|
-
...result.normalization ? { normalization: result.normalization } : {},
|
|
312
|
-
...result.ignoredOverrides.length > 0 ? { ignoredOverrides: result.ignoredOverrides } : {},
|
|
313
311
|
...result.metadata ? { metadata: result.metadata } : {}
|
|
314
312
|
}
|
|
315
313
|
};
|
|
@@ -337,17 +335,5 @@ function createImageGenerateTool(options) {
|
|
|
337
335
|
}
|
|
338
336
|
};
|
|
339
337
|
}
|
|
340
|
-
function buildNormalizationNotes(normalization, ignoredOverrides) {
|
|
341
|
-
const notes = [];
|
|
342
|
-
if (normalization) for (const [key, entry] of Object.entries(normalization)) {
|
|
343
|
-
if (!entry) continue;
|
|
344
|
-
const requested = entry.requested;
|
|
345
|
-
const applied = entry.applied;
|
|
346
|
-
if (requested !== void 0 && applied !== void 0 && requested !== applied) notes.push(`Note: requested ${key}="${requested}" → applied "${applied}".`);
|
|
347
|
-
else if (applied !== void 0 && entry.derivedFrom) notes.push(`Note: ${key}="${applied}" derived from ${entry.derivedFrom}.`);
|
|
348
|
-
}
|
|
349
|
-
for (const ig of ignoredOverrides) notes.push(`Note: ignored ${ig.key}="${ig.value}" (not supported by provider).`);
|
|
350
|
-
return notes;
|
|
351
|
-
}
|
|
352
338
|
//#endregion
|
|
353
339
|
export { createImageGenerateTool, parseImageDataUrl, resolveImageGenerationModelConfigForTool };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { AgentTool } from '@earendil-works/pi-agent-core';
|
|
2
|
+
import type { Config } from '../../config/schema.js';
|
|
3
|
+
declare const schema: import("@sinclair/typebox").TObject<{
|
|
4
|
+
command: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"list">, import("@sinclair/typebox").TLiteral<"follow">, import("@sinclair/typebox").TLiteral<"pause">, import("@sinclair/typebox").TLiteral<"end">, import("@sinclair/typebox").TLiteral<"resume">, import("@sinclair/typebox").TLiteral<"settings">, import("@sinclair/typebox").TLiteral<"interests">, import("@sinclair/typebox").TLiteral<"feedback">, import("@sinclair/typebox").TLiteral<"rollback">]>;
|
|
5
|
+
id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
6
|
+
subject: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
7
|
+
summary: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
8
|
+
nextCheckAt: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
|
|
9
|
+
nextCheckLocal: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
10
|
+
taskId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
11
|
+
projectId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
12
|
+
mode: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"off">, import("@sinclair/typebox").TLiteral<"follow_up">, import("@sinclair/typebox").TLiteral<"balanced">]>>;
|
|
13
|
+
feedback: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"stop">, import("@sinclair/typebox").TLiteral<"defer">, import("@sinclair/typebox").TLiteral<"adjust">]>>;
|
|
14
|
+
preparation: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"brief">, import("@sinclair/typebox").TLiteral<"thorough">]>>;
|
|
15
|
+
versionId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
16
|
+
}>;
|
|
17
|
+
export declare function createPersonalAttentionTool(deps: {
|
|
18
|
+
getConversationId: () => string | undefined;
|
|
19
|
+
getConfig: () => Config | undefined;
|
|
20
|
+
}): AgentTool<typeof schema, Record<string, never>>;
|
|
21
|
+
export {};
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
import { getSqliteDatabase, init_transaction } from "../../storage/sqlite/transaction.js";
|
|
2
|
+
import { init_session_instance_repository, readCurrentTranscriptId } from "../../storage/sqlite/session-instance-repository.js";
|
|
3
|
+
import { resolveUserContextSessionAccess } from "../../user-context/access-policy.js";
|
|
4
|
+
import { getPersonalAgentByConversation } from "../../personal-agent/repository.js";
|
|
5
|
+
import { parseLocalCheckTime } from "../../personal-agent/proactivity/follow-up-request.js";
|
|
6
|
+
import { applyThreadFeedback, getAttention, getProactivitySettings, listAttention, listInterestCandidates, patchAttention, patchProactivitySettings, rollbackStrategy, saveAttention, strategyState, userText } from "../../personal-agent/proactivity/repository.js";
|
|
7
|
+
import { Type } from "@sinclair/typebox";
|
|
8
|
+
//#region src/agent/tools/personal-attention-tool.ts
|
|
9
|
+
init_transaction();
|
|
10
|
+
init_session_instance_repository();
|
|
11
|
+
const schema = Type.Object({
|
|
12
|
+
command: Type.Union([
|
|
13
|
+
Type.Literal("list"),
|
|
14
|
+
Type.Literal("follow"),
|
|
15
|
+
Type.Literal("pause"),
|
|
16
|
+
Type.Literal("end"),
|
|
17
|
+
Type.Literal("resume"),
|
|
18
|
+
Type.Literal("settings"),
|
|
19
|
+
Type.Literal("interests"),
|
|
20
|
+
Type.Literal("feedback"),
|
|
21
|
+
Type.Literal("rollback")
|
|
22
|
+
]),
|
|
23
|
+
id: Type.Optional(Type.String()),
|
|
24
|
+
subject: Type.Optional(Type.String({ maxLength: 160 })),
|
|
25
|
+
summary: Type.Optional(Type.String({ maxLength: 1600 })),
|
|
26
|
+
nextCheckAt: Type.Optional(Type.Number()),
|
|
27
|
+
nextCheckLocal: Type.Optional(Type.String({ description: "Preferred check time: YYYY-MM-DDTHH:mm in the user configured timezone. Use this instead of calculating epoch milliseconds. For vague tomorrow afternoon, use 15:00." })),
|
|
28
|
+
taskId: Type.Optional(Type.String()),
|
|
29
|
+
projectId: Type.Optional(Type.String()),
|
|
30
|
+
mode: Type.Optional(Type.Union([
|
|
31
|
+
Type.Literal("off"),
|
|
32
|
+
Type.Literal("follow_up"),
|
|
33
|
+
Type.Literal("balanced")
|
|
34
|
+
])),
|
|
35
|
+
feedback: Type.Optional(Type.Union([
|
|
36
|
+
Type.Literal("stop"),
|
|
37
|
+
Type.Literal("defer"),
|
|
38
|
+
Type.Literal("adjust")
|
|
39
|
+
])),
|
|
40
|
+
preparation: Type.Optional(Type.Union([Type.Literal("brief"), Type.Literal("thorough")])),
|
|
41
|
+
versionId: Type.Optional(Type.String({ description: "Latest strategy version ID returned by list; required for rollback." }))
|
|
42
|
+
});
|
|
43
|
+
function createPersonalAttentionTool(deps) {
|
|
44
|
+
return {
|
|
45
|
+
name: "personal_attention",
|
|
46
|
+
label: "Personal follow-up",
|
|
47
|
+
description: "Persist or inspect attention in this personal conversation. An explicit request such as \"check tomorrow afternoon and proactively tell me if useful\" authorizes follow. The running Gateway automatically checks saved attention while the user is away and posts useful developments in this chat; no separate user automation is required. Prefer nextCheckLocal over epoch arithmetic. Checks are not guaranteed notifications. No action authorization is granted. Only claim saved after a successful result; an error means it was not saved, not that background checks are unsupported. Use pause/end/resume only for an explicit user instruction; do not duplicate an existing automation. Query list to verify whether follow-up is saved or active; query settings for current mode and timezone. Use current tool results rather than historical assistant claims. Valid commands: follow, list, settings, pause, end, resume, interests, feedback, rollback. interests reads silent candidates, not authorization. feedback saves an explicit topic preparation/stop/defer preference; rollback undoes the latest version on explicit request. Query list for IDs and versions. settings reads or explicitly changes off, follow_up, balanced.",
|
|
48
|
+
parameters: schema,
|
|
49
|
+
async execute(_toolId, input) {
|
|
50
|
+
const conversationId = deps.getConversationId();
|
|
51
|
+
const personal = conversationId ? getPersonalAgentByConversation(conversationId) : null;
|
|
52
|
+
const config = deps.getConfig();
|
|
53
|
+
if (!personal || !conversationId || !config) throw new Error("Personal attention is unavailable");
|
|
54
|
+
if ((input.command === "follow" || input.command === "resume") && (!resolveUserContextSessionAccess(config, conversationId).userModel || config.userContext.userModel.writePolicy === "deny")) throw new Error("Personal attention is unavailable");
|
|
55
|
+
if (input.command === "settings" && !input.mode) return {
|
|
56
|
+
content: [{
|
|
57
|
+
type: "text",
|
|
58
|
+
text: JSON.stringify(getProactivitySettings(personal.ownerId))
|
|
59
|
+
}],
|
|
60
|
+
details: {}
|
|
61
|
+
};
|
|
62
|
+
if (input.command === "interests") {
|
|
63
|
+
if (!resolveUserContextSessionAccess(config, conversationId).userModel) throw new Error("Interest access is unavailable");
|
|
64
|
+
return {
|
|
65
|
+
content: [{
|
|
66
|
+
type: "text",
|
|
67
|
+
text: JSON.stringify(listInterestCandidates(conversationId))
|
|
68
|
+
}],
|
|
69
|
+
details: {}
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
if (input.command === "list") return {
|
|
73
|
+
content: [{
|
|
74
|
+
type: "text",
|
|
75
|
+
text: JSON.stringify(listAttention(conversationId).map((thread) => ({
|
|
76
|
+
id: thread.id,
|
|
77
|
+
subject: thread.subject,
|
|
78
|
+
status: thread.status,
|
|
79
|
+
nextCheckAt: thread.next_check_at,
|
|
80
|
+
revision: thread.revision,
|
|
81
|
+
strategy: strategyState(thread.id)
|
|
82
|
+
})))
|
|
83
|
+
}],
|
|
84
|
+
details: {}
|
|
85
|
+
};
|
|
86
|
+
const db = getSqliteDatabase();
|
|
87
|
+
const transcriptId = readCurrentTranscriptId(db, conversationId);
|
|
88
|
+
const source = db.prepare("SELECT entry_id,payload_json FROM transcript_entries WHERE transcript_id = ? AND role = 'user' ORDER BY seq DESC LIMIT 1").get(transcriptId);
|
|
89
|
+
if (!source) throw new Error("An explicit user source is required");
|
|
90
|
+
const sourceText = userText(JSON.parse(source.payload_json));
|
|
91
|
+
const settings = getProactivitySettings(personal.ownerId);
|
|
92
|
+
const nextCheckAt = input.nextCheckLocal ? parseLocalCheckTime(input.nextCheckLocal, settings.timezone) : input.nextCheckAt;
|
|
93
|
+
if (input.command === "settings") {
|
|
94
|
+
if (!input.mode || !{
|
|
95
|
+
off: /关闭.*主动|不要.*主动|别.*主动|停.*主动|disable|turn off|no.*proactive/iu,
|
|
96
|
+
follow_up: /(?:仅|只|少|only|less).*(?:跟进|提醒|联系|follow|remind|contact)/iu,
|
|
97
|
+
balanced: /(?:开启|恢复|允许|可以|更).*(?:主动|联系)|enable.*proactive|more proactive/iu
|
|
98
|
+
}[input.mode].test(sourceText)) throw new Error("An explicit mode instruction is required");
|
|
99
|
+
const settings = patchProactivitySettings(personal.ownerId, {
|
|
100
|
+
...getProactivitySettings(personal.ownerId),
|
|
101
|
+
mode: input.mode
|
|
102
|
+
});
|
|
103
|
+
return {
|
|
104
|
+
content: [{
|
|
105
|
+
type: "text",
|
|
106
|
+
text: JSON.stringify(settings)
|
|
107
|
+
}],
|
|
108
|
+
details: {}
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
let thread;
|
|
112
|
+
if (input.command === "feedback" || input.command === "rollback") {
|
|
113
|
+
const current = input.id ? getAttention(input.id, personal.ownerId) : void 0;
|
|
114
|
+
if (!current || current.conversation_id !== conversationId) throw new Error("Attention is unavailable");
|
|
115
|
+
if (input.command === "rollback") {
|
|
116
|
+
if (!/撤销|撤回|回滚|恢复.*(?:之前|原来)|undo|roll\s?back/iu.test(sourceText) || !input.versionId) throw new Error("An explicit undo instruction and latest version ID are required");
|
|
117
|
+
thread = rollbackStrategy(personal.ownerId, current.id, {
|
|
118
|
+
versionId: input.versionId,
|
|
119
|
+
revision: current.revision,
|
|
120
|
+
idempotencyKey: `input:${source.entry_id}:${current.id}`
|
|
121
|
+
}, source.entry_id);
|
|
122
|
+
} else {
|
|
123
|
+
if (!input.feedback || !{
|
|
124
|
+
stop: /停止|结束|别再|不用.*(?:关注|跟进|提醒)|stop|don't.*(?:follow|remind)/iu,
|
|
125
|
+
defer: /晚点|明天|下周|再说|later|tomorrow|next week/iu,
|
|
126
|
+
adjust: /(?:以后|今后|下次|future|always|next time).*(?:准备|完整|详细|简短|prepare|thorough|brief)|(?:准备|完整|详细|简短|prepare|thorough|brief).*(?:以后|今后|下次|future|always|next time)/iu
|
|
127
|
+
}[input.feedback].test(sourceText)) throw new Error("An explicit topic feedback instruction is required");
|
|
128
|
+
thread = applyThreadFeedback(personal.ownerId, current.id, current.revision, {
|
|
129
|
+
idempotencyKey: `input:${source.entry_id}:${current.id}`,
|
|
130
|
+
kind: input.feedback,
|
|
131
|
+
scope: "thread",
|
|
132
|
+
until: input.feedback === "defer" ? nextCheckAt : void 0,
|
|
133
|
+
preparation: input.feedback === "adjust" ? input.preparation : void 0
|
|
134
|
+
}, { entryId: source.entry_id });
|
|
135
|
+
}
|
|
136
|
+
} else if (input.command === "follow") {
|
|
137
|
+
if (!input.subject) throw new Error("A subject is required");
|
|
138
|
+
thread = saveAttention({
|
|
139
|
+
conversationId,
|
|
140
|
+
subject: input.subject,
|
|
141
|
+
summary: input.summary ?? input.subject,
|
|
142
|
+
kind: "outcome",
|
|
143
|
+
entryIds: [source.entry_id],
|
|
144
|
+
explicit: true,
|
|
145
|
+
nextCheckAt: nextCheckAt ?? Date.now() + 864e5,
|
|
146
|
+
taskId: input.taskId,
|
|
147
|
+
projectId: input.projectId
|
|
148
|
+
});
|
|
149
|
+
if (thread.authority !== "user_explicit") throw new Error("Follow-up must be explicitly requested");
|
|
150
|
+
} else {
|
|
151
|
+
const current = input.id ? getAttention(input.id, personal.ownerId) : void 0;
|
|
152
|
+
if (!current || current.conversation_id !== conversationId) throw new Error("Attention is unavailable");
|
|
153
|
+
const text = sourceText;
|
|
154
|
+
if (!{
|
|
155
|
+
pause: /暂停|晚点|再说|下周|明天|pause|later|next week/iu,
|
|
156
|
+
end: /停止|结束|别再|不用.*(?:跟进|关注|提醒)|stop|end|don't.*(?:follow|remind)/iu,
|
|
157
|
+
resume: /恢复|继续|重新|resume|continue/iu
|
|
158
|
+
}[input.command].test(text)) throw new Error("An explicit instruction is required");
|
|
159
|
+
thread = input.command === "end" ? applyThreadFeedback(personal.ownerId, current.id, current.revision, {
|
|
160
|
+
idempotencyKey: `input:${source.entry_id}:${current.id}`,
|
|
161
|
+
kind: "stop",
|
|
162
|
+
scope: "thread"
|
|
163
|
+
}, { entryId: source.entry_id }) : patchAttention(personal.ownerId, current.id, current.revision, {
|
|
164
|
+
status: input.command === "pause" ? "paused" : "active",
|
|
165
|
+
nextCheckAt
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
return {
|
|
169
|
+
content: [{
|
|
170
|
+
type: "text",
|
|
171
|
+
text: JSON.stringify({
|
|
172
|
+
id: thread.id,
|
|
173
|
+
status: thread.status,
|
|
174
|
+
nextCheckAt: thread.next_check_at,
|
|
175
|
+
strategy: strategyState(thread.id),
|
|
176
|
+
timezone: settings.timezone,
|
|
177
|
+
nextCheckLocal: thread.next_check_at === null ? null : new Intl.DateTimeFormat("sv-SE", {
|
|
178
|
+
timeZone: settings.timezone,
|
|
179
|
+
dateStyle: "short",
|
|
180
|
+
timeStyle: "short"
|
|
181
|
+
}).format(thread.next_check_at),
|
|
182
|
+
note: "Attention is persisted. Checks require a running Gateway, enabled proactivity, and the user context policy. This is not a delivery guarantee."
|
|
183
|
+
})
|
|
184
|
+
}],
|
|
185
|
+
details: {}
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
//#endregion
|
|
191
|
+
export { createPersonalAttentionTool };
|
|
@@ -125,6 +125,7 @@ export declare const AutomationCreateCapabilityInputSchema: z.ZodObject<{
|
|
|
125
125
|
kind: z.ZodLiteral<"system">;
|
|
126
126
|
capability: z.ZodEnum<{
|
|
127
127
|
"home.advisor.refresh": "home.advisor.refresh";
|
|
128
|
+
"personal.proactivity.tick": "personal.proactivity.tick";
|
|
128
129
|
"memory.temporal_sweep": "memory.temporal_sweep";
|
|
129
130
|
"memory.daily_reconciliation": "memory.daily_reconciliation";
|
|
130
131
|
"memory.weekly_knowledge": "memory.weekly_knowledge";
|
|
@@ -324,6 +325,7 @@ export declare const AutomationUpdatePatchSchema: z.ZodObject<{
|
|
|
324
325
|
kind: z.ZodLiteral<"system">;
|
|
325
326
|
capability: z.ZodEnum<{
|
|
326
327
|
"home.advisor.refresh": "home.advisor.refresh";
|
|
328
|
+
"personal.proactivity.tick": "personal.proactivity.tick";
|
|
327
329
|
"memory.temporal_sweep": "memory.temporal_sweep";
|
|
328
330
|
"memory.daily_reconciliation": "memory.daily_reconciliation";
|
|
329
331
|
"memory.weekly_knowledge": "memory.weekly_knowledge";
|
|
@@ -56,7 +56,7 @@ export type AutomationAction = {
|
|
|
56
56
|
command: TaskCommand;
|
|
57
57
|
} | {
|
|
58
58
|
kind: 'system';
|
|
59
|
-
capability: 'home.advisor.refresh' | 'memory.temporal_sweep' | 'memory.daily_reconciliation' | 'memory.weekly_knowledge';
|
|
59
|
+
capability: 'home.advisor.refresh' | 'personal.proactivity.tick' | 'memory.temporal_sweep' | 'memory.daily_reconciliation' | 'memory.weekly_knowledge';
|
|
60
60
|
};
|
|
61
61
|
export type AutomationEditableField = 'enabled' | 'trigger';
|
|
62
62
|
export interface AutomationManagement {
|
|
@@ -155,6 +155,7 @@ export declare const AutomationActionSchema: z.ZodDiscriminatedUnion<[z.ZodObjec
|
|
|
155
155
|
kind: z.ZodLiteral<"system">;
|
|
156
156
|
capability: z.ZodEnum<{
|
|
157
157
|
"home.advisor.refresh": "home.advisor.refresh";
|
|
158
|
+
"personal.proactivity.tick": "personal.proactivity.tick";
|
|
158
159
|
"memory.temporal_sweep": "memory.temporal_sweep";
|
|
159
160
|
"memory.daily_reconciliation": "memory.daily_reconciliation";
|
|
160
161
|
"memory.weekly_knowledge": "memory.weekly_knowledge";
|
|
@@ -374,6 +375,7 @@ export declare const AutomationSchema: z.ZodObject<{
|
|
|
374
375
|
kind: z.ZodLiteral<"system">;
|
|
375
376
|
capability: z.ZodEnum<{
|
|
376
377
|
"home.advisor.refresh": "home.advisor.refresh";
|
|
378
|
+
"personal.proactivity.tick": "personal.proactivity.tick";
|
|
377
379
|
"memory.temporal_sweep": "memory.temporal_sweep";
|
|
378
380
|
"memory.daily_reconciliation": "memory.daily_reconciliation";
|
|
379
381
|
"memory.weekly_knowledge": "memory.weekly_knowledge";
|
|
@@ -572,6 +574,7 @@ export declare const CreateAutomationSchema: z.ZodObject<{
|
|
|
572
574
|
kind: z.ZodLiteral<"system">;
|
|
573
575
|
capability: z.ZodEnum<{
|
|
574
576
|
"home.advisor.refresh": "home.advisor.refresh";
|
|
577
|
+
"personal.proactivity.tick": "personal.proactivity.tick";
|
|
575
578
|
"memory.temporal_sweep": "memory.temporal_sweep";
|
|
576
579
|
"memory.daily_reconciliation": "memory.daily_reconciliation";
|
|
577
580
|
"memory.weekly_knowledge": "memory.weekly_knowledge";
|
|
@@ -797,6 +800,7 @@ export declare const UpdateAutomationSchema: z.ZodObject<{
|
|
|
797
800
|
kind: z.ZodLiteral<"system">;
|
|
798
801
|
capability: z.ZodEnum<{
|
|
799
802
|
"home.advisor.refresh": "home.advisor.refresh";
|
|
803
|
+
"personal.proactivity.tick": "personal.proactivity.tick";
|
|
800
804
|
"memory.temporal_sweep": "memory.temporal_sweep";
|
|
801
805
|
"memory.daily_reconciliation": "memory.daily_reconciliation";
|
|
802
806
|
"memory.weekly_knowledge": "memory.weekly_knowledge";
|
|
@@ -107,6 +107,7 @@ const AutomationActionSchema = z.discriminatedUnion("kind", [
|
|
|
107
107
|
kind: z.literal("system"),
|
|
108
108
|
capability: z.enum([
|
|
109
109
|
"home.advisor.refresh",
|
|
110
|
+
"personal.proactivity.tick",
|
|
110
111
|
"memory.temporal_sweep",
|
|
111
112
|
"memory.daily_reconciliation",
|
|
112
113
|
"memory.weekly_knowledge"
|
|
@@ -125,7 +125,7 @@ export declare function buildAutomationDraftResponse(draft: GeneratedAutomationD
|
|
|
125
125
|
};
|
|
126
126
|
} | {
|
|
127
127
|
kind: "system";
|
|
128
|
-
capability: "home.advisor.refresh" | "memory.temporal_sweep" | "memory.daily_reconciliation" | "memory.weekly_knowledge";
|
|
128
|
+
capability: "home.advisor.refresh" | "personal.proactivity.tick" | "memory.temporal_sweep" | "memory.daily_reconciliation" | "memory.weekly_knowledge";
|
|
129
129
|
};
|
|
130
130
|
trigger?: {
|
|
131
131
|
kind: "manual";
|
|
@@ -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 v237).`,
|
|
57
57
|
hints: []
|
|
58
58
|
};
|
|
59
59
|
}
|
|
@@ -3,6 +3,8 @@ import { CredentialResolver, init_credentials } from "../../auth/credentials.js"
|
|
|
3
3
|
import { getAgentDefaultModelRef, init_schema } from "../../config/schema.js";
|
|
4
4
|
import { getAllModels, getAvailableModels, getConfiguredProviders, getProviderAuthState, getProviderDisplayName, init_providers, isProviderConfigured, providerSupportsApiKey, providerSupportsOAuth, resolveModel } from "../../providers/index.js";
|
|
5
5
|
import { AgentCatalogService } from "../../agent-catalog/service.js";
|
|
6
|
+
import { listImageProviderSpecs } from "../../../packages/image-providers/src/catalog.js";
|
|
7
|
+
import "../../../packages/image-providers/src/index.js";
|
|
6
8
|
import { loadConfig } from "../../config/loader.js";
|
|
7
9
|
import { formatExamples, register } from "../registry.js";
|
|
8
10
|
import { getContextWithOpts } from "../context.js";
|
|
@@ -18,14 +20,7 @@ init_credentials();
|
|
|
18
20
|
init_schema();
|
|
19
21
|
init_repository();
|
|
20
22
|
init_providers();
|
|
21
|
-
const IMAGE_GENERATION_IDS = new Set(
|
|
22
|
-
"gpt-image-2",
|
|
23
|
-
"wan2.6-t2i",
|
|
24
|
-
"wan2.7-image-pro",
|
|
25
|
-
"wan2.7-image",
|
|
26
|
-
"image-01",
|
|
27
|
-
"image-01-live"
|
|
28
|
-
]);
|
|
23
|
+
const IMAGE_GENERATION_IDS = new Set(listImageProviderSpecs().flatMap((provider) => provider.models.map((model) => model.id)));
|
|
29
24
|
const VISION_IDS = new Set([
|
|
30
25
|
"gpt-5.6",
|
|
31
26
|
"gpt-5.6-luna",
|