@xopcai/xopc 0.0.116 → 0.0.117
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -6
- package/README.zh-CN.md +21 -6
- package/dist/browser-ext/manifest.json +1 -1
- package/dist/extensions/demo-memory/src/index.d.ts +6 -0
- package/dist/extensions/demo-memory/src/index.js +132 -0
- package/dist/extensions/demo-memory/src/index.js.map +1 -0
- package/dist/extensions/demo-memory/xopc.extension.json +15 -0
- package/dist/extensions/feishu/src/outbound/media-load.js +1 -1
- package/dist/extensions/feishu/src/schema/config-schema.d.ts +3 -3
- package/dist/extensions/feishu/src/workflow-progress.js +1 -1
- package/dist/extensions/telegram/src/adapters/streaming-adapter.js +1 -1
- package/dist/extensions/telegram/src/command-handler.js +1 -2
- package/dist/extensions/telegram/src/command-handler.js.map +1 -1
- package/dist/extensions/telegram/src/config-schema.d.ts +8 -8
- package/dist/extensions/telegram/src/inbound-processor.js +1 -1
- package/dist/extensions/telegram/src/plugin.js +1 -1
- package/dist/extensions/telegram/src/routing-integration.js +2 -2
- package/dist/extensions/telegram/src/update-offset-store.js +1 -1
- package/dist/extensions/telegram/src/workflow-progress.js +1 -1
- package/dist/extensions/telegram/xopc.extension.json +1 -1
- package/dist/extensions/weixin/src/api/api.js +2 -2
- package/dist/extensions/weixin/src/auth/accounts.js +1 -1
- package/dist/extensions/weixin/src/cdn/upload.js +1 -1
- package/dist/extensions/weixin/src/config-schema.d.ts +3 -3
- package/dist/extensions/weixin/src/media/data-url.js +1 -1
- package/dist/extensions/weixin/src/messaging/debug-mode.js +1 -1
- package/dist/extensions/weixin/src/messaging/inbound.js +1 -1
- package/dist/extensions/weixin/src/messaging/process-message.js +1 -1
- package/dist/extensions/weixin/src/plugin.js +1 -1
- package/dist/extensions/weixin/src/storage/sync-buf.js +1 -1
- package/dist/extensions/weixin/src/workflow-progress.js +1 -1
- package/dist/gateway/static/root/assets/{agent-avatar-dicebear-CWM1UU5P.js → agent-avatar-dicebear-BBLhJ2C6.js} +1 -1
- package/dist/gateway/static/root/assets/agents-C6xgagZd.js +71 -0
- package/dist/gateway/static/root/assets/{app-management-settings-panel-yXSXY_bu.js → app-management-settings-panel-CBpLONvG.js} +1 -1
- package/dist/gateway/static/root/assets/{appearance-settings-DjY1P_ug.js → appearance-settings-CGcc54yj.js} +1 -1
- package/dist/gateway/static/root/assets/apps-page-DdDx0V4z.js +1 -0
- package/dist/gateway/static/root/assets/{archive-plugin-CytE5j-e.js → archive-plugin-DZsVqMhU.js} +1 -1
- package/dist/gateway/static/root/assets/{attachment-load-BvvrN6rF.js → attachment-load-CIol6JWX.js} +1 -1
- package/dist/gateway/static/root/assets/{binary-plugins-IBWSitnj.js → binary-plugins-B3UauMfp.js} +1 -1
- package/dist/gateway/static/root/assets/{block-editor-C-wDpsf-.js → block-editor-2HJoFchH.js} +3 -3
- package/dist/gateway/static/root/assets/browser-settings-page-CUOO-PQk.js +8 -0
- package/dist/gateway/static/root/assets/capability-presets-api-XQoMTI0A.js +1 -0
- package/dist/gateway/static/root/assets/capability-presets-settings-panel-CfqF-kGr.js +1 -0
- package/dist/gateway/static/root/assets/{channels-settings-Cd3JbeQ1.js → channels-settings-BYyRzsex.js} +1 -1
- package/dist/gateway/static/root/assets/connectors-page-DIvEz4NX.js +2 -0
- package/dist/gateway/static/root/assets/cron-api-R41aQCX9.js +1 -0
- package/dist/gateway/static/root/assets/cron-page-D97nFqQD.js +3 -0
- package/dist/gateway/static/root/assets/dreaming-settings-Bceaw1PG.js +1 -0
- package/dist/gateway/static/root/assets/{extension-debug-page-BAIyjDlq.js → extension-debug-page-DX5WRE_t.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-DEhv2GpC.js → extension-page-Buah7Bw-.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-settings-page-DOuAxTDW.js → extension-settings-page-DuroLVnf.js} +1 -1
- package/dist/gateway/static/root/assets/{fetch-CTsREQIe.js → fetch-B5zdl27C.js} +1 -1
- package/dist/gateway/static/root/assets/{format-interval-label-D35Bfhtx.js → format-interval-label-Dn_QKIqb.js} +1 -1
- package/dist/gateway/static/root/assets/gateway-config-api-gT4ZhE7h.js +1 -0
- package/dist/gateway/static/root/assets/gateway-settings-iISWAZRm.js +1 -0
- package/dist/gateway/static/root/assets/{gateway-startup-retry-C1KAHrd2.js → gateway-startup-retry-B3kL8KGY.js} +1 -1
- package/dist/gateway/static/root/assets/goal-detail-page-DCUROLMQ.js +1 -0
- package/dist/gateway/static/root/assets/{goals-config-api-KnLGpu6h.js → goals-config-api-AR-fVh0P.js} +1 -1
- package/dist/gateway/static/root/assets/goals-page-Cpb21ezg.js +2 -0
- package/dist/gateway/static/root/assets/{goals-settings-DtPtqZi8.js → goals-settings-CPAuFwoD.js} +1 -1
- package/dist/gateway/static/root/assets/{heartbeat-config-api-uKw1f0IG.js → heartbeat-config-api-D7bKFEeO.js} +1 -1
- package/dist/gateway/static/root/assets/{heartbeat-settings-DN9vEj9P.js → heartbeat-settings-CC69vNx0.js} +1 -1
- package/dist/gateway/static/root/assets/index-CwhK8qCh.js +122 -0
- package/dist/gateway/static/root/assets/index-CyfhARL-.css +1 -0
- package/dist/gateway/static/root/assets/{interval-presets-Dq0FXJ65.js → interval-presets-0DtsnxE0.js} +1 -1
- package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-C9_t4m7t.js → keyboard-shortcuts-settings-BPREtN8B.js} +1 -1
- package/dist/gateway/static/root/assets/{logs-page-SNkWzidV.js → logs-page-DefCgF4o.js} +2 -2
- package/dist/gateway/static/root/assets/{markdown-split-Ca87W8-h.js → markdown-split-ChbR9LGO.js} +1 -1
- package/dist/gateway/static/root/assets/{media-plugins-BAcUjPRJ.js → media-plugins-B82oP80n.js} +1 -1
- package/dist/gateway/static/root/assets/messages-Cf1O9JB0.js +3 -0
- package/dist/gateway/static/root/assets/models-hub-panel-DmKiIihT.js +2 -0
- package/dist/gateway/static/root/assets/note-detail-page-CxxfLRJZ.js +2 -0
- package/dist/gateway/static/root/assets/{note-image-lightbox-hnSX5SSn.js → note-image-lightbox-CDknITM3.js} +1 -1
- package/dist/gateway/static/root/assets/{notes-page-ycsDlkFA.js → notes-page-X2slSx7V.js} +1 -1
- package/dist/gateway/static/root/assets/{preview-open-alternatives-CNgM20H5.js → preview-open-alternatives-DV3xQsWB.js} +1 -1
- package/dist/gateway/static/root/assets/remote-access-hub-BvmUWqgu.js +1 -0
- package/dist/gateway/static/root/assets/{save-bar-controls-CcdjGcfT.js → save-bar-controls-BODCXnvY.js} +1 -1
- package/dist/gateway/static/root/assets/{schedule-field-CYr39z76.js → schedule-field-CgJSCD3B.js} +1 -1
- package/dist/gateway/static/root/assets/{schema-form-BRAJgZQ2.js → schema-form-qtfEI6QM.js} +1 -1
- package/dist/gateway/static/root/assets/sessions-page-B0yESuuL.js +1 -0
- package/dist/gateway/static/root/assets/settings-advanced-gate-q2M8RKOo.js +1 -0
- package/dist/gateway/static/root/assets/{settings-collapsible-section-BhzjeGWi.js → settings-collapsible-section-BHZKjVcS.js} +1 -1
- package/dist/gateway/static/root/assets/{settings-form-section-Cz3Pcr9b.js → settings-form-section-5i35D-J1.js} +1 -1
- package/dist/gateway/static/root/assets/settings-page-CGozabLD.js +1 -0
- package/dist/gateway/static/root/assets/setup-status-panel-FoOSe6nU.js +1 -0
- package/dist/gateway/static/root/assets/{share-preview-page-DL4y9K5e.js → share-preview-page-B0H63tDv.js} +1 -1
- package/dist/gateway/static/root/assets/shares-settings-Cy5zWyYQ.js +1 -0
- package/dist/gateway/static/root/assets/skill-reload-api-DaZNFro9.js +1 -0
- package/dist/gateway/static/root/assets/skills-page-CnwtUzvw.js +2 -0
- package/dist/gateway/static/root/assets/{system-settings-panel-FD2jxRZ3.js → system-settings-panel-DXs2VmBt.js} +1 -1
- package/dist/gateway/static/root/assets/typed-models-lib-4gPuydz_.js +1 -0
- package/dist/gateway/static/root/assets/{use-channel-catalog-BInPrfR5.js → use-channel-catalog-BCjP_VHb.js} +1 -1
- package/dist/gateway/static/root/assets/voice-api-key-field-DvKiOglO.js +1 -0
- package/dist/gateway/static/root/assets/{voice-player-store-1U3vFppm.js → voice-player-store-BlF9V05n.js} +1 -1
- package/dist/gateway/static/root/assets/workflows-page-CAVZcONQ.js +18 -0
- package/dist/gateway/static/root/index.html +5 -5
- package/dist/package.js +1 -1
- package/dist/src/agent/agent-manager.d.ts +1 -1
- package/dist/src/agent/agent-manager.js +13 -14
- package/dist/src/agent/agent-manager.js.map +1 -1
- package/dist/src/agent/agent-scope.js +7 -9
- package/dist/src/agent/agent-scope.js.map +1 -1
- package/dist/src/agent/background-review/coordinator.js +0 -1
- package/dist/src/agent/background-review/coordinator.js.map +1 -1
- package/dist/src/agent/background-review/run-background-review.d.ts +0 -2
- package/dist/src/agent/background-review/run-background-review.js +2 -4
- package/dist/src/agent/background-review/run-background-review.js.map +1 -1
- package/dist/src/agent/background-review/settings.js +8 -7
- package/dist/src/agent/background-review/settings.js.map +1 -1
- package/dist/src/agent/bootstrap/bootstrap-context.d.ts +2 -2
- package/dist/src/agent/bootstrap/bootstrap-context.js +4 -4
- package/dist/src/agent/bootstrap/bootstrap-context.js.map +1 -1
- package/dist/src/agent/bootstrap/load-bootstrap-files.js +1 -1
- package/dist/src/agent/bootstrap/project-agents-context.js +1 -1
- package/dist/src/agent/context/workspace-seed.js +3 -3
- package/dist/src/agent/context/workspace-state.js +1 -1
- package/dist/src/agent/context/workspace.js +1 -1
- package/dist/src/agent/embedded/run-for-session.js +1 -1
- package/dist/src/agent/embedded/run-for-session.js.map +1 -1
- package/dist/src/agent/fallback/candidates.js +6 -3
- package/dist/src/agent/fallback/candidates.js.map +1 -1
- package/dist/src/agent/goals/goal-locale.js +2 -2
- package/dist/src/agent/goals/post-turn.js +3 -3
- package/dist/src/agent/image/generation/runtime-types.d.ts +2 -0
- package/dist/src/agent/image/generation/runtime.js +1 -1
- package/dist/src/agent/image/generation/runtime.js.map +1 -1
- package/dist/src/agent/image/image-helpers.d.ts +1 -1
- package/dist/src/agent/image/image-helpers.js +4 -17
- package/dist/src/agent/image/image-helpers.js.map +1 -1
- package/dist/src/agent/image/image-model-fallback.js +1 -1
- package/dist/src/agent/image/image-model-fallback.js.map +1 -1
- package/dist/src/agent/image/inbound-image-handling.js +1 -1
- package/dist/src/agent/image/inbound-image-handling.js.map +1 -1
- package/dist/src/agent/image/load-image-media.js +2 -2
- package/dist/src/agent/image/tool-model-config.d.ts +1 -1
- package/dist/src/agent/image/tool-model-config.js +2 -2
- package/dist/src/agent/image/tool-model-config.js.map +1 -1
- package/dist/src/agent/ipc/inbox.js +3 -3
- package/dist/src/agent/ipc/socket.js +1 -1
- package/dist/src/agent/mcp/bundle-mcp-materialize.js +1 -1
- package/dist/src/agent/mcp/bundle-mcp-runtime.js +1 -1
- package/dist/src/agent/mcp/mcp-transport-config.js +1 -1
- package/dist/src/agent/mcp/mcp-transport.js +1 -1
- package/dist/src/agent/mcp/resolve-embedded-mcp-tools.js +1 -1
- package/dist/src/agent/mcp/resolve-embedded-mcp-tools.js.map +1 -1
- package/dist/src/agent/media-generation/runtime-shared.d.ts +5 -2
- package/dist/src/agent/media-generation/runtime-shared.js +1 -1
- package/dist/src/agent/media-generation/runtime-shared.js.map +1 -1
- package/dist/src/agent/memory/builtin-memory-store.d.ts +2 -0
- package/dist/src/agent/memory/builtin-memory-store.js +5 -1
- package/dist/src/agent/memory/builtin-memory-store.js.map +1 -1
- package/dist/src/agent/memory/builtin-provider.d.ts +31 -9
- package/dist/src/agent/memory/builtin-provider.js +261 -11
- package/dist/src/agent/memory/builtin-provider.js.map +1 -1
- package/dist/src/agent/memory/context-assembler.d.ts +10 -0
- package/dist/src/agent/memory/context-assembler.js +26 -0
- package/dist/src/agent/memory/context-assembler.js.map +1 -0
- package/dist/src/agent/memory/create-memory-manager.js +25 -7
- package/dist/src/agent/memory/create-memory-manager.js.map +1 -1
- package/dist/src/agent/memory/dreaming/config.d.ts +1 -6
- package/dist/src/agent/memory/dreaming/config.js +8 -8
- package/dist/src/agent/memory/dreaming/config.js.map +1 -1
- package/dist/src/agent/memory/dreaming/deep-promotion.d.ts +2 -0
- package/dist/src/agent/memory/dreaming/deep-promotion.js +25 -1
- package/dist/src/agent/memory/dreaming/deep-promotion.js.map +1 -1
- package/dist/src/agent/memory/dreaming/events.js +1 -1
- package/dist/src/agent/memory/dreaming/last-run.js +1 -1
- package/dist/src/agent/memory/dreaming/light-sweep.js +1 -1
- package/dist/src/agent/memory/dreaming/preview.js +1 -1
- package/dist/src/agent/memory/dreaming/rem-patterns.js +1 -1
- package/dist/src/agent/memory/dreaming/short-term-store.js +1 -1
- package/dist/src/agent/memory/dreaming/utils.js +1 -1
- package/dist/src/agent/memory/index.d.ts +1 -0
- package/dist/src/agent/memory/index.js +4 -3
- package/dist/src/agent/memory/inject-prefetch.js +6 -2
- package/dist/src/agent/memory/inject-prefetch.js.map +1 -1
- package/dist/src/agent/memory/manager.d.ts +37 -1
- package/dist/src/agent/memory/manager.js +332 -40
- package/dist/src/agent/memory/manager.js.map +1 -1
- package/dist/src/agent/memory/memory-config.js +12 -15
- package/dist/src/agent/memory/memory-config.js.map +1 -1
- package/dist/src/agent/memory/memory-flush.js +1 -1
- package/dist/src/agent/memory/plugin-discovery.d.ts +19 -5
- package/dist/src/agent/memory/plugin-discovery.js +97 -31
- package/dist/src/agent/memory/plugin-discovery.js.map +1 -1
- package/dist/src/agent/memory/provider.d.ts +20 -15
- package/dist/src/agent/memory/stub-memory-provider.d.ts +17 -2
- package/dist/src/agent/memory/stub-memory-provider.js +20 -3
- package/dist/src/agent/memory/stub-memory-provider.js.map +1 -1
- package/dist/src/agent/memory/types.d.ts +136 -0
- package/dist/src/agent/models/manager.d.ts +1 -1
- package/dist/src/agent/models/manager.js +2 -2
- package/dist/src/agent/models/manager.js.map +1 -1
- package/dist/src/agent/orchestration/agent-orchestrator.d.ts +1 -1
- package/dist/src/agent/orchestration/agent-orchestrator.js +2 -1
- package/dist/src/agent/orchestration/agent-orchestrator.js.map +1 -1
- package/dist/src/agent/orchestration/run-agent-turn-with-fallbacks.d.ts +2 -2
- package/dist/src/agent/orchestration/run-agent-turn-with-fallbacks.js +1 -1
- package/dist/src/agent/orchestration/run-agent-turn-with-fallbacks.js.map +1 -1
- package/dist/src/agent/orchestration/run-agent-turn-with-timeout.d.ts +2 -6
- package/dist/src/agent/orchestration/run-agent-turn-with-timeout.js +2 -8
- package/dist/src/agent/orchestration/run-agent-turn-with-timeout.js.map +1 -1
- package/dist/src/agent/prompt/memory/index.js +1 -1
- package/dist/src/agent/prompt/service-prompt-builder.js +2 -2
- package/dist/src/agent/reply/post-compaction-context.js +12 -7
- package/dist/src/agent/reply/post-compaction-context.js.map +1 -1
- package/dist/src/agent/reply/startup-context.js +8 -9
- package/dist/src/agent/reply/startup-context.js.map +1 -1
- package/dist/src/agent/reply/workspace-boundary-read.js +1 -1
- package/dist/src/agent/sandbox/path-policy.js +2 -2
- package/dist/src/agent/service/process-direct-streaming.js +1 -4
- package/dist/src/agent/service/process-direct-streaming.js.map +1 -1
- package/dist/src/agent/service/session-context-report.js +1 -1
- package/dist/src/agent/service/session-context-report.js.map +1 -1
- package/dist/src/agent/service.js +25 -29
- package/dist/src/agent/service.js.map +1 -1
- package/dist/src/agent/service.types.d.ts +1 -2
- package/dist/src/agent/session/session-hydrator.js +1 -2
- package/dist/src/agent/session/session-hydrator.js.map +1 -1
- package/dist/src/agent/session/session-inspector.d.ts +1 -1
- package/dist/src/agent/session/session-inspector.js +10 -15
- package/dist/src/agent/session/session-inspector.js.map +1 -1
- package/dist/src/agent/skills/config.js +2 -2
- package/dist/src/agent/skills/filesystem-watcher.js +1 -1
- package/dist/src/agent/skills/hub-hash.js +2 -2
- package/dist/src/agent/skills/hub-lock.js +1 -1
- package/dist/src/agent/skills/hub-pull.js +3 -3
- package/dist/src/agent/skills/index.js +2 -2
- package/dist/src/agent/skills/installer.js +2 -2
- package/dist/src/agent/skills/managed-store.js +1 -1
- package/dist/src/agent/skills/skill-manage-ops.js +1 -1
- package/dist/src/agent/skills/skill-manager.js +1 -1
- package/dist/src/agent/skills/skill-view-path.js +1 -1
- package/dist/src/agent/skills/test-framework.js +1 -1
- package/dist/src/agent/starter-agents.d.ts +1 -3
- package/dist/src/agent/starter-agents.js +14 -22
- package/dist/src/agent/starter-agents.js.map +1 -1
- package/dist/src/agent/tools/browser/tool/browser-use-tool.js +1 -2
- package/dist/src/agent/tools/browser/tool/browser-use-tool.js.map +1 -1
- package/dist/src/agent/tools/curated-memory-tool.d.ts +2 -5
- package/dist/src/agent/tools/curated-memory-tool.js +20 -16
- package/dist/src/agent/tools/curated-memory-tool.js.map +1 -1
- package/dist/src/agent/tools/dreaming-tool.js +1 -1
- package/dist/src/agent/tools/factory.d.ts +0 -4
- package/dist/src/agent/tools/factory.js +19 -58
- package/dist/src/agent/tools/factory.js.map +1 -1
- package/dist/src/agent/tools/find.js +1 -1
- package/dist/src/agent/tools/grep.js +1 -1
- package/dist/src/agent/tools/image-generate-tool.d.ts +1 -1
- package/dist/src/agent/tools/image-generate-tool.js +20 -15
- package/dist/src/agent/tools/image-generate-tool.js.map +1 -1
- package/dist/src/agent/tools/image-tool.js +1 -3
- package/dist/src/agent/tools/image-tool.js.map +1 -1
- package/dist/src/agent/tools/memory-tool.d.ts +2 -2
- package/dist/src/agent/tools/memory-tool.js +39 -14
- package/dist/src/agent/tools/memory-tool.js.map +1 -1
- package/dist/src/agent/tools/session-search-tool.js +1 -3
- package/dist/src/agent/tools/session-search-tool.js.map +1 -1
- package/dist/src/agent/tools/skill-manage-tool.js +1 -1
- package/dist/src/agent/tools/web-extract.js +6 -5
- package/dist/src/agent/tools/web-extract.js.map +1 -1
- package/dist/src/agent/tools/workflow-tool.js +1 -1
- package/dist/src/agent/workflow/catalog.js +1 -1
- package/dist/src/agent/workflow/subagent-runner.js +1 -3
- package/dist/src/agent/workflow/subagent-runner.js.map +1 -1
- package/dist/src/agent-manifest/index.d.ts +4 -0
- package/dist/src/agent-manifest/index.js +10 -0
- package/dist/src/agent-manifest/index.js.map +1 -0
- package/dist/src/agent-manifest/prompt.d.ts +2 -0
- package/dist/src/agent-manifest/prompt.js +57 -0
- package/dist/src/agent-manifest/prompt.js.map +1 -0
- package/dist/src/agent-manifest/resolver.d.ts +11 -0
- package/dist/src/agent-manifest/resolver.js +93 -0
- package/dist/src/agent-manifest/resolver.js.map +1 -0
- package/dist/src/agent-manifest/schema.d.ts +778 -0
- package/dist/src/agent-manifest/schema.js +267 -0
- package/dist/src/agent-manifest/schema.js.map +1 -0
- package/dist/src/agent-manifest/validator.d.ts +24 -0
- package/dist/src/agent-manifest/validator.js +87 -0
- package/dist/src/agent-manifest/validator.js.map +1 -0
- package/dist/src/agent-runtime/boundary-guard.d.ts +12 -0
- package/dist/src/agent-runtime/boundary-guard.js +23 -0
- package/dist/src/agent-runtime/boundary-guard.js.map +1 -0
- package/dist/src/agent-runtime/index.d.ts +7 -0
- package/dist/src/agent-runtime/index.js +8 -0
- package/dist/src/agent-runtime/memory-runtime.d.ts +21 -0
- package/dist/src/agent-runtime/memory-runtime.js +50 -0
- package/dist/src/agent-runtime/memory-runtime.js.map +1 -0
- package/dist/src/agent-runtime/model-router.d.ts +11 -0
- package/dist/src/agent-runtime/model-router.js +16 -0
- package/dist/src/agent-runtime/model-router.js.map +1 -0
- package/dist/src/agent-runtime/run-trace.d.ts +27 -0
- package/dist/src/agent-runtime/run-trace.js +53 -0
- package/dist/src/agent-runtime/run-trace.js.map +1 -0
- package/dist/src/agent-runtime/runtime-profile.d.ts +24 -0
- package/dist/src/agent-runtime/runtime-profile.js +44 -0
- package/dist/src/agent-runtime/runtime-profile.js.map +1 -0
- package/dist/src/agent-runtime/tool-registry.d.ts +28 -0
- package/dist/src/agent-runtime/tool-registry.js +52 -0
- package/dist/src/agent-runtime/tool-registry.js.map +1 -0
- package/dist/src/agent-runtime/workflow-runtime.d.ts +31 -0
- package/dist/src/agent-runtime/workflow-runtime.js +34 -0
- package/dist/src/agent-runtime/workflow-runtime.js.map +1 -0
- package/dist/src/ai-assist/text-assist.js +1 -1
- package/dist/src/auth/credentials.js +2 -2
- package/dist/src/auth/profiles/store.js +2 -2
- package/dist/src/auth/sync-provider-auth.js +1 -1
- package/dist/src/browser/actions/extension-registry-bridge.js +1 -1
- package/dist/src/browser/actions/extension-registry-bridge.js.map +1 -1
- package/dist/src/browser/actions/registry.js +5 -8
- package/dist/src/browser/actions/registry.js.map +1 -1
- package/dist/src/browser/backend-from-config.d.ts +1 -1
- package/dist/src/browser/backend-from-config.js +50 -71
- package/dist/src/browser/backend-from-config.js.map +1 -1
- package/dist/src/browser/browser-command-timeout.d.ts +0 -1
- package/dist/src/browser/browser-command-timeout.js +3 -7
- package/dist/src/browser/browser-command-timeout.js.map +1 -1
- package/dist/src/browser/cache-dir-policy.js +1 -1
- package/dist/src/browser/cdp-local-launcher.js +2 -2
- package/dist/src/browser/pipeline/source.js +1 -1
- package/dist/src/browser/providers/browser-ext-install.d.ts +2 -12
- package/dist/src/browser/providers/browser-ext-install.js +7 -12
- package/dist/src/browser/providers/browser-ext-install.js.map +1 -1
- package/dist/src/browser/providers/cloakbrowser.js +5 -5
- package/dist/src/browser/providers/playwright-doctor.js +1 -1
- package/dist/src/browser/readiness.js +16 -16
- package/dist/src/browser/readiness.js.map +1 -1
- package/dist/src/browser/schemas.js +1 -1
- package/dist/src/browser/schemas.js.map +1 -1
- package/dist/src/browser/stealth.js +1 -1
- package/dist/src/channels/catalog/channel-catalog-service.js +1 -1
- package/dist/src/channels/outbound/persist-store.js +1 -1
- package/dist/src/channels/pairing/allow-from-file.js +1 -1
- package/dist/src/channels/pairing/pairing-store.js +2 -2
- package/dist/src/chat-commands/agent-edit.js +2 -2
- package/dist/src/chat-commands/builtins/config.js +6 -6
- package/dist/src/chat-commands/builtins/config.js.map +1 -1
- package/dist/src/chat-commands/builtins/thinking.js +16 -42
- package/dist/src/chat-commands/builtins/thinking.js.map +1 -1
- package/dist/src/chat-commands/config-paths.js +1 -1
- package/dist/src/chat-commands/config-paths.js.map +1 -1
- package/dist/src/chat-commands/context.js +3 -4
- package/dist/src/chat-commands/context.js.map +1 -1
- package/dist/src/cli/command-manifest.js +1 -1
- package/dist/src/cli/command-manifest.js.map +1 -1
- package/dist/src/cli/commands/agent.js +3 -1
- package/dist/src/cli/commands/agent.js.map +1 -1
- package/dist/src/cli/commands/agents.js +3 -6
- package/dist/src/cli/commands/agents.js.map +1 -1
- package/dist/src/cli/commands/browser-cli-helpers.js +9 -11
- package/dist/src/cli/commands/browser-cli-helpers.js.map +1 -1
- package/dist/src/cli/commands/config.js +6 -6
- package/dist/src/cli/commands/config.js.map +1 -1
- package/dist/src/cli/commands/doctor/checks/config-health.js +1 -1
- package/dist/src/cli/commands/doctor/checks/database-schema.js +1 -1
- package/dist/src/cli/commands/doctor/checks/provider-auth.js +2 -18
- package/dist/src/cli/commands/doctor/checks/provider-auth.js.map +1 -1
- package/dist/src/cli/commands/doctor/checks/state-integrity.js +1 -1
- package/dist/src/cli/commands/doctor/checks/workspace-status.js +1 -1
- package/dist/src/cli/commands/extension-create.js +1 -1
- package/dist/src/cli/commands/extension-dev.js +2 -2
- package/dist/src/cli/commands/extension-marketplace.js +2 -2
- package/dist/src/cli/commands/extension-pack.js +2 -2
- package/dist/src/cli/commands/extension.js +3 -3
- package/dist/src/cli/commands/gateway/logs.js +1 -1
- package/dist/src/cli/commands/goal.js +1 -1
- package/dist/src/cli/commands/image.js +13 -372
- package/dist/src/cli/commands/image.js.map +1 -1
- package/dist/src/cli/commands/init.js +2 -2
- package/dist/src/cli/commands/models.js +27 -11
- package/dist/src/cli/commands/models.js.map +1 -1
- package/dist/src/cli/commands/onboard/channels/registry.js.map +1 -1
- package/dist/src/cli/commands/onboard/model.js +20 -22
- package/dist/src/cli/commands/onboard/model.js.map +1 -1
- package/dist/src/cli/commands/onboard.js +1 -1
- package/dist/src/cli/commands/onboard.js.map +1 -1
- package/dist/src/cli/commands/skills-test.js +1 -1
- package/dist/src/cli/templates.js +1 -1
- package/dist/src/cli/utils/gateway-client.js +1 -1
- package/dist/src/cli/utils/init-workspace-core.d.ts +1 -4
- package/dist/src/cli/utils/init-workspace-core.js +9 -8
- package/dist/src/cli/utils/init-workspace-core.js.map +1 -1
- package/dist/src/commands/agents.config.d.ts +0 -1
- package/dist/src/commands/agents.config.js +66 -12
- package/dist/src/commands/agents.config.js.map +1 -1
- package/dist/src/config/agent-profile.d.ts +5 -17
- package/dist/src/config/agent-profile.js +31 -64
- package/dist/src/config/agent-profile.js.map +1 -1
- package/dist/src/config/agent-typed-models.d.ts +1 -1
- package/dist/src/config/agent-typed-models.js +1 -2
- package/dist/src/config/agent-typed-models.js.map +1 -1
- package/dist/src/config/gateway-bind.js +1 -1
- package/dist/src/config/index.js +8 -8
- package/dist/src/config/integration.d.ts +1 -1
- package/dist/src/config/loader.js +4 -4
- package/dist/src/config/models-json.js +2 -2
- package/dist/src/config/paths-state.js +1 -1
- package/dist/src/config/paths.js +1 -1
- package/dist/src/config/profile.js +1 -1
- package/dist/src/config/reload.js +2 -2
- package/dist/src/config/reload.js.map +1 -1
- package/dist/src/config/rules.js +6 -56
- package/dist/src/config/rules.js.map +1 -1
- package/dist/src/config/schema.d.ts +918 -781
- package/dist/src/config/schema.js +154 -423
- package/dist/src/config/schema.js.map +1 -1
- package/dist/src/config/workspace-path.js +1 -1
- package/dist/src/connectors/composio-triggers.js +1 -1
- package/dist/src/cron/executor.js +1 -1
- package/dist/src/cron/index.js +1 -1
- package/dist/src/cron/service.js +2 -2
- package/dist/src/cron/validation.d.ts +3 -3
- package/dist/src/daemon/constants.js +1 -1
- package/dist/src/daemon/install-plan.js +2 -2
- package/dist/src/daemon/launchd.js +2 -2
- package/dist/src/daemon/schtasks.js +2 -2
- package/dist/src/daemon/systemd.js +2 -2
- package/dist/src/extensions/activation-context.js +13 -7
- package/dist/src/extensions/activation-context.js.map +1 -1
- package/dist/src/extensions/bundle-mcp.js +1 -1
- package/dist/src/extensions/discover-extensions.js +2 -2
- package/dist/src/extensions/health.js +1 -1
- package/dist/src/extensions/install.js +2 -2
- package/dist/src/extensions/loader.js +2 -2
- package/dist/src/extensions/lockfile.js +3 -3
- package/dist/src/extensions/security.js +1 -1
- package/dist/src/extensions/update.js +2 -2
- package/dist/src/gateway/agents-admin.d.ts +17 -18
- package/dist/src/gateway/agents-admin.js +125 -90
- package/dist/src/gateway/agents-admin.js.map +1 -1
- package/dist/src/gateway/capability-presets-admin.d.ts +56 -0
- package/dist/src/gateway/capability-presets-admin.js +214 -0
- package/dist/src/gateway/capability-presets-admin.js.map +1 -0
- package/dist/src/gateway/file-path-classifier.js +2 -2
- package/dist/src/gateway/hono/lib/agent-model.d.ts +1 -1
- package/dist/src/gateway/hono/lib/agent-model.js +1 -1
- package/dist/src/gateway/hono/lib/agent-model.js.map +1 -1
- package/dist/src/gateway/hono/lib/config-payload.d.ts +234 -127
- package/dist/src/gateway/hono/lib/config-payload.js +14 -38
- package/dist/src/gateway/hono/lib/config-payload.js.map +1 -1
- package/dist/src/gateway/hono/lib/extension-store.js +2 -2
- package/dist/src/gateway/hono/lib/static-ui.js +2 -2
- package/dist/src/gateway/hono/routes/agents.js +56 -33
- package/dist/src/gateway/hono/routes/agents.js.map +1 -1
- package/dist/src/gateway/hono/routes/auth-registry-extensions.js +1 -1
- package/dist/src/gateway/hono/routes/browser.js +8 -15
- package/dist/src/gateway/hono/routes/browser.js.map +1 -1
- package/dist/src/gateway/hono/routes/capability-presets.d.ts +3 -0
- package/dist/src/gateway/hono/routes/capability-presets.js +145 -0
- package/dist/src/gateway/hono/routes/capability-presets.js.map +1 -0
- package/dist/src/gateway/hono/routes/config-patch/agents.d.ts +1 -17
- package/dist/src/gateway/hono/routes/config-patch/agents.js +2 -443
- package/dist/src/gateway/hono/routes/config-patch/agents.js.map +1 -1
- package/dist/src/gateway/hono/routes/config-patch/misc.js +7 -1
- package/dist/src/gateway/hono/routes/config-patch/misc.js.map +1 -1
- package/dist/src/gateway/hono/routes/config.js +1 -1
- package/dist/src/gateway/hono/routes/config.js.map +1 -1
- package/dist/src/gateway/hono/routes/dreaming.js +8 -1
- package/dist/src/gateway/hono/routes/dreaming.js.map +1 -1
- package/dist/src/gateway/hono/routes/host-fs.js +2 -2
- package/dist/src/gateway/hono/routes/index.js +2 -0
- package/dist/src/gateway/hono/routes/index.js.map +1 -1
- package/dist/src/gateway/hono/routes/lazy-bundles.js +8 -0
- package/dist/src/gateway/hono/routes/lazy-bundles.js.map +1 -1
- package/dist/src/gateway/hono/routes/memory.d.ts +3 -0
- package/dist/src/gateway/hono/routes/memory.js +290 -0
- package/dist/src/gateway/hono/routes/memory.js.map +1 -0
- package/dist/src/gateway/hono/routes/models.js +1 -1
- package/dist/src/gateway/hono/routes/shares.js +1 -1
- package/dist/src/gateway/hono/routes/workflows.js +1 -1
- package/dist/src/gateway/hono/routes/workspace.js +2 -2
- package/dist/src/gateway/lock.js +3 -3
- package/dist/src/gateway/ports.js +1 -1
- package/dist/src/gateway/service/config-coordinator.js +1 -1
- package/dist/src/gateway/service/marketplace-service.js +2 -2
- package/dist/src/gateway/service.d.ts +1 -1
- package/dist/src/gateway/service.js +15 -16
- package/dist/src/gateway/service.js.map +1 -1
- package/dist/src/gateway/workspace-fs-file-list.js +1 -1
- package/dist/src/goals/goal-workflow-judge.js +2 -2
- package/dist/src/i18n/goals-bundle.js +1 -1
- package/dist/src/i18n/index.js +1 -1
- package/dist/src/i18n/share-tool-bundle.js +2 -2
- package/dist/src/infra/brew.js +1 -1
- package/dist/src/infra/package-json.js +1 -1
- package/dist/src/infra/package-update-steps.js +1 -1
- package/dist/src/infra/path-env.js +2 -2
- package/dist/src/infra/restart.js +1 -1
- package/dist/src/infra/stable-node-path.js +1 -1
- package/dist/src/infra/update-check.js +1 -1
- package/dist/src/infra/update-global.js +1 -1
- package/dist/src/infra/update-lock.js +2 -2
- package/dist/src/infra/update-restart.js +1 -1
- package/dist/src/infra/update-runner.js +1 -1
- package/dist/src/infra/update-startup.js +1 -1
- package/dist/src/infra/write-file-atomic.js +2 -2
- package/dist/src/media/store.js +1 -1
- package/dist/src/notes/agent-context.js +3 -3
- package/dist/src/notes/service.js +1 -1
- package/dist/src/notes/store.js +2 -2
- package/dist/src/project-trust/trust-store.js +2 -2
- package/dist/src/providers/auth-runtime/auth-profile-store.js +1 -1
- package/dist/src/providers/index.d.ts +2 -2
- package/dist/src/providers/index.js +11 -15
- package/dist/src/providers/index.js.map +1 -1
- package/dist/src/providers/model-registry.js +4 -4
- package/dist/src/session/index.js +1 -1
- package/dist/src/session/init-session-turn.js +1 -1
- package/dist/src/session/resolve-session.js +1 -1
- package/dist/src/session/session-title.js +2 -2
- package/dist/src/session/session-workspace.js +7 -2
- package/dist/src/session/session-workspace.js.map +1 -1
- package/dist/src/session/store.js +6 -1
- package/dist/src/session/store.js.map +1 -1
- package/dist/src/session/thinking-resolve.d.ts +1 -1
- package/dist/src/session/thinking-resolve.js +1 -1
- package/dist/src/session/thinking-resolve.js.map +1 -1
- package/dist/src/share/share-auto.js +2 -2
- package/dist/src/share/share-store.js +3 -3
- package/dist/src/share/share-thumbnail.js +2 -2
- package/dist/src/share/share-zip.js +1 -1
- package/dist/src/share/site-share-store.js +3 -3
- package/dist/src/share/site-static-serve.js +1 -1
- package/dist/src/storage/sqlite/connection.js +2 -2
- package/dist/src/storage/sqlite/index.d.ts +1 -0
- package/dist/src/storage/sqlite/index.js +2 -1
- package/dist/src/storage/sqlite/memory-index-repository.js +2 -2
- package/dist/src/storage/sqlite/memory-records-repository.d.ts +101 -0
- package/dist/src/storage/sqlite/memory-records-repository.js +309 -0
- package/dist/src/storage/sqlite/memory-records-repository.js.map +1 -0
- package/dist/src/storage/sqlite/migrations/012_memory_records.sql +63 -0
- package/dist/src/storage/sqlite/migrations/013_memory_trace_events.sql +21 -0
- package/dist/src/storage/sqlite/migrations/discover.js +1 -1
- package/dist/src/storage/sqlite/migrations/runner.d.ts +1 -1
- package/dist/src/storage/sqlite/migrations/runner.js +4 -4
- package/dist/src/storage/sqlite/migrations/runner.js.map +1 -1
- package/dist/src/storage/sqlite/migrations/runner.ts +1 -1
- package/dist/src/storage/sqlite/schema.js +2 -2
- package/dist/src/storage/sqlite/schema.sql +86 -0
- package/dist/src/tui/backends/embedded-backend.js +7 -5
- package/dist/src/tui/backends/embedded-backend.js.map +1 -1
- package/dist/src/tui/clipboard-image.js +3 -3
- package/dist/src/tui/extension-host/load-extensions.js +1 -1
- package/dist/src/tui/extension-host/load-extensions.js.map +1 -1
- package/dist/src/tui/theme-manager.js +1 -1
- package/dist/src/tui/tui-command-formatters.js +4 -4
- package/dist/src/tui/tui-commands.js +2 -2
- package/dist/src/tui/tui-keybindings-file.js +1 -1
- package/dist/src/tui/tui-scoped-models.js +2 -2
- package/dist/src/tui/tui-settings.js +1 -1
- package/dist/src/tui/tui-startup-resources.js +1 -1
- package/dist/src/tui/tui.js +6 -6
- package/dist/src/tunnel/frpc-binary.js +4 -4
- package/dist/src/tunnel/frpc-config.js +1 -1
- package/dist/src/tunnel/frpc-extract.js +1 -1
- package/dist/src/tunnel/tunnel-state.js +1 -1
- package/dist/src/utils/logger/audit.js +1 -1
- package/dist/src/utils/logger/log-store.js +1 -1
- package/dist/src/utils/logger/rotation.js +1 -1
- package/dist/src/utils/logger/streams.js +1 -1
- package/dist/src/voice/tts/audio.js +1 -1
- package/dist/src/voice/tts/providers/edge-speech.js +2 -2
- package/dist/src/workflows/draft/workflow-draft-service.js +1 -1
- package/dist/src/workflows/service/workflow-run-service.js +4 -5
- package/dist/src/workflows/service/workflow-run-service.js.map +1 -1
- package/dist/src/workflows/service/workflow-session-bridge.js +1 -1
- package/dist/src/workflows/store/event-store.js +1 -1
- package/dist/src/workflows/store/run-store.js +1 -1
- package/package.json +3 -2
- package/dist/gateway/static/root/assets/agent-browser-settings-page-D1SyFYeh.js +0 -6
- package/dist/gateway/static/root/assets/agent-defaults-tabbed-page-C9YxgvuI.js +0 -1
- package/dist/gateway/static/root/assets/agents-CteVs3UO.js +0 -71
- package/dist/gateway/static/root/assets/apps-page-CVQ1M8Ax.js +0 -1
- package/dist/gateway/static/root/assets/config-api-C4RAtTKW.js +0 -3
- package/dist/gateway/static/root/assets/connectors-page-MsMa5qBr.js +0 -2
- package/dist/gateway/static/root/assets/cron-api-sJNMqB6P.js +0 -1
- package/dist/gateway/static/root/assets/cron-page-D30CSwkn.js +0 -3
- package/dist/gateway/static/root/assets/dreaming-settings-6fCUWRQf.js +0 -1
- package/dist/gateway/static/root/assets/gateway-config-api-C6989a-W.js +0 -1
- package/dist/gateway/static/root/assets/gateway-settings-BpF26t91.js +0 -1
- package/dist/gateway/static/root/assets/goal-detail-page-DOjhmRyf.js +0 -1
- package/dist/gateway/static/root/assets/goals-page-Xl9_wrFc.js +0 -2
- package/dist/gateway/static/root/assets/index-C8ytlAF2.js +0 -122
- package/dist/gateway/static/root/assets/index-CVpJW2NS.css +0 -1
- package/dist/gateway/static/root/assets/messages-BqzIDrlr.js +0 -3
- package/dist/gateway/static/root/assets/models-hub-panel-BO4o-GmO.js +0 -2
- package/dist/gateway/static/root/assets/note-detail-page-DLV_XDmT.js +0 -2
- package/dist/gateway/static/root/assets/remote-access-hub-DQpnE8K9.js +0 -1
- package/dist/gateway/static/root/assets/sessions-page-BZui7iAY.js +0 -1
- package/dist/gateway/static/root/assets/settings-advanced-gate-DEfzZ1ax.js +0 -1
- package/dist/gateway/static/root/assets/settings-page-CLuSsu1-.js +0 -1
- package/dist/gateway/static/root/assets/setup-status-panel-Cq4qpXLi.js +0 -1
- package/dist/gateway/static/root/assets/shares-settings-B9F3HyYQ.js +0 -1
- package/dist/gateway/static/root/assets/skill-reload-api-Bp9UPPwm.js +0 -1
- package/dist/gateway/static/root/assets/skills-page-BIoBsfSV.js +0 -2
- package/dist/gateway/static/root/assets/use-agent-defaults-form-Cz2_pPzu.js +0 -1
- package/dist/gateway/static/root/assets/use-settings-tab-guard-nuHMmZQv.js +0 -1
- package/dist/gateway/static/root/assets/voice-api-key-field-BUIrKb8s.js +0 -1
- package/dist/gateway/static/root/assets/workflows-page-qE3SexnO.js +0 -18
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { CapabilityPresetSchema, init_schema } from "../../../agent-manifest/schema.js";
|
|
2
|
+
import { init_agent_scope, normalizeAgentId } from "../../../agent/agent-scope.js";
|
|
3
|
+
import { listCapabilityPresets, prepareCreateCapabilityPreset, prepareDeleteCapabilityPreset, prepareUpdateCapabilityPreset } from "../../capability-presets-admin.js";
|
|
4
|
+
//#region src/gateway/hono/routes/capability-presets.ts
|
|
5
|
+
init_schema();
|
|
6
|
+
init_agent_scope();
|
|
7
|
+
function parseJsonObject(raw) {
|
|
8
|
+
if (raw === null || typeof raw !== "object" || Array.isArray(raw)) return { error: "body must be an object" };
|
|
9
|
+
return raw;
|
|
10
|
+
}
|
|
11
|
+
function isParseError(value) {
|
|
12
|
+
return typeof value === "object" && value !== null && "error" in value && typeof value.error === "string";
|
|
13
|
+
}
|
|
14
|
+
function parseCreateBody(raw) {
|
|
15
|
+
const body = parseJsonObject(raw);
|
|
16
|
+
if (isParseError(body)) return body;
|
|
17
|
+
return {
|
|
18
|
+
id: typeof body.id === "string" ? body.id : void 0,
|
|
19
|
+
name: typeof body.name === "string" ? body.name : void 0,
|
|
20
|
+
description: typeof body.description === "string" ? body.description : void 0
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
function parseUpdateBody(raw) {
|
|
24
|
+
const body = parseJsonObject(raw);
|
|
25
|
+
if (isParseError(body)) return body;
|
|
26
|
+
const out = {};
|
|
27
|
+
if (Object.hasOwn(body, "name")) out.name = String(body.name ?? "");
|
|
28
|
+
if (Object.hasOwn(body, "description")) out.description = body.description === null ? null : String(body.description ?? "");
|
|
29
|
+
if (Object.hasOwn(body, "version")) out.version = Number(body.version);
|
|
30
|
+
for (const key of [
|
|
31
|
+
"extends",
|
|
32
|
+
"models",
|
|
33
|
+
"tools",
|
|
34
|
+
"skills",
|
|
35
|
+
"memory",
|
|
36
|
+
"workflows",
|
|
37
|
+
"boundaries",
|
|
38
|
+
"runtime",
|
|
39
|
+
"locks"
|
|
40
|
+
]) {
|
|
41
|
+
if (!Object.hasOwn(body, key)) continue;
|
|
42
|
+
if (body[key] === null) {
|
|
43
|
+
out[key] = null;
|
|
44
|
+
continue;
|
|
45
|
+
}
|
|
46
|
+
const parsed = CapabilityPresetSchema.pick({ [key]: true }).safeParse({ [key]: body[key] });
|
|
47
|
+
if (!parsed.success) return { error: `${key} ${parsed.error.issues[0]?.message ?? "is invalid"}` };
|
|
48
|
+
out[key] = parsed.data[key];
|
|
49
|
+
}
|
|
50
|
+
return out;
|
|
51
|
+
}
|
|
52
|
+
function registerCapabilityPresetsRoutes(authenticated, deps) {
|
|
53
|
+
const { service, strictRateLimitMiddleware } = deps;
|
|
54
|
+
authenticated.get("/api/capability-presets", async (c) => {
|
|
55
|
+
return c.json({
|
|
56
|
+
ok: true,
|
|
57
|
+
payload: listCapabilityPresets(service.currentConfig)
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
authenticated.post("/api/capability-presets", strictRateLimitMiddleware, async (c) => {
|
|
61
|
+
let raw;
|
|
62
|
+
try {
|
|
63
|
+
raw = await c.req.json();
|
|
64
|
+
} catch {
|
|
65
|
+
return c.json({
|
|
66
|
+
ok: false,
|
|
67
|
+
error: { message: "Invalid JSON" }
|
|
68
|
+
}, 400);
|
|
69
|
+
}
|
|
70
|
+
const body = parseCreateBody(raw);
|
|
71
|
+
if (isParseError(body)) return c.json({
|
|
72
|
+
ok: false,
|
|
73
|
+
error: { message: body.error }
|
|
74
|
+
}, 400);
|
|
75
|
+
const prep = prepareCreateCapabilityPreset(service.currentConfig, body);
|
|
76
|
+
if (prep.ok === false) return c.json({
|
|
77
|
+
ok: false,
|
|
78
|
+
error: { message: prep.error }
|
|
79
|
+
}, prep.status ?? 400);
|
|
80
|
+
const save = await service.saveConfig(prep.data.nextConfig);
|
|
81
|
+
if (!save.saved) return c.json({
|
|
82
|
+
ok: false,
|
|
83
|
+
error: { message: save.error ?? "save failed" }
|
|
84
|
+
}, 500);
|
|
85
|
+
return c.json({
|
|
86
|
+
ok: true,
|
|
87
|
+
payload: {
|
|
88
|
+
presetId: prep.data.presetId,
|
|
89
|
+
presets: listCapabilityPresets(service.currentConfig)
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
authenticated.patch("/api/capability-presets/:id", strictRateLimitMiddleware, async (c) => {
|
|
94
|
+
const id = normalizeAgentId(c.req.param("id") ?? "");
|
|
95
|
+
let raw;
|
|
96
|
+
try {
|
|
97
|
+
raw = await c.req.json();
|
|
98
|
+
} catch {
|
|
99
|
+
return c.json({
|
|
100
|
+
ok: false,
|
|
101
|
+
error: { message: "Invalid JSON" }
|
|
102
|
+
}, 400);
|
|
103
|
+
}
|
|
104
|
+
const body = parseUpdateBody(raw);
|
|
105
|
+
if (isParseError(body)) return c.json({
|
|
106
|
+
ok: false,
|
|
107
|
+
error: { message: body.error }
|
|
108
|
+
}, 400);
|
|
109
|
+
const prep = prepareUpdateCapabilityPreset(service.currentConfig, id, body);
|
|
110
|
+
if (prep.ok === false) return c.json({
|
|
111
|
+
ok: false,
|
|
112
|
+
error: { message: prep.error }
|
|
113
|
+
}, prep.status ?? 400);
|
|
114
|
+
const save = await service.saveConfig(prep.data.nextConfig);
|
|
115
|
+
if (!save.saved) return c.json({
|
|
116
|
+
ok: false,
|
|
117
|
+
error: { message: save.error ?? "save failed" }
|
|
118
|
+
}, 500);
|
|
119
|
+
return c.json({
|
|
120
|
+
ok: true,
|
|
121
|
+
payload: listCapabilityPresets(service.currentConfig)
|
|
122
|
+
});
|
|
123
|
+
});
|
|
124
|
+
authenticated.delete("/api/capability-presets/:id", strictRateLimitMiddleware, async (c) => {
|
|
125
|
+
const id = normalizeAgentId(c.req.param("id") ?? "");
|
|
126
|
+
const prep = prepareDeleteCapabilityPreset(service.currentConfig, id);
|
|
127
|
+
if (prep.ok === false) return c.json({
|
|
128
|
+
ok: false,
|
|
129
|
+
error: { message: prep.error }
|
|
130
|
+
}, prep.status ?? 400);
|
|
131
|
+
const save = await service.saveConfig(prep.data.nextConfig);
|
|
132
|
+
if (!save.saved) return c.json({
|
|
133
|
+
ok: false,
|
|
134
|
+
error: { message: save.error ?? "save failed" }
|
|
135
|
+
}, 500);
|
|
136
|
+
return c.json({
|
|
137
|
+
ok: true,
|
|
138
|
+
payload: listCapabilityPresets(service.currentConfig)
|
|
139
|
+
});
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
//#endregion
|
|
143
|
+
export { registerCapabilityPresetsRoutes };
|
|
144
|
+
|
|
145
|
+
//# sourceMappingURL=capability-presets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capability-presets.js","names":[],"sources":["../../../../../src/gateway/hono/routes/capability-presets.ts"],"sourcesContent":["import type { Hono } from 'hono';\n\nimport { CapabilityPresetSchema } from '../../../agent-manifest/schema.js';\nimport type { Config } from '../../../config/schema.js';\nimport {\n listCapabilityPresets,\n prepareCreateCapabilityPreset,\n prepareDeleteCapabilityPreset,\n prepareUpdateCapabilityPreset,\n type CreateCapabilityPresetBody,\n type UpdateCapabilityPresetBody,\n} from '../../capability-presets-admin.js';\nimport { normalizeAgentId } from '../../../agent/agent-scope.js';\nimport type { AuthenticatedRouteDeps } from './deps.js';\n\nfunction parseJsonObject(raw: unknown): Record<string, unknown> | { error: string } {\n if (raw === null || typeof raw !== 'object' || Array.isArray(raw)) {\n return { error: 'body must be an object' };\n }\n return raw as Record<string, unknown>;\n}\n\nfunction isParseError(value: unknown): value is { error: string } {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'error' in value &&\n typeof (value as { error: string }).error === 'string'\n );\n}\n\nfunction parseCreateBody(raw: unknown): CreateCapabilityPresetBody | { error: string } {\n const body = parseJsonObject(raw);\n if (isParseError(body)) return body;\n return {\n id: typeof body.id === 'string' ? body.id : undefined,\n name: typeof body.name === 'string' ? body.name : undefined,\n description: typeof body.description === 'string' ? body.description : undefined,\n };\n}\n\nfunction parseUpdateBody(raw: unknown): UpdateCapabilityPresetBody | { error: string } {\n const body = parseJsonObject(raw);\n if (isParseError(body)) return body;\n const out: UpdateCapabilityPresetBody = {};\n if (Object.hasOwn(body, 'name')) out.name = String(body.name ?? '');\n if (Object.hasOwn(body, 'description')) {\n out.description = body.description === null ? null : String(body.description ?? '');\n }\n if (Object.hasOwn(body, 'version')) out.version = Number(body.version);\n for (const key of ['extends', 'models', 'tools', 'skills', 'memory', 'workflows', 'boundaries', 'runtime', 'locks'] as const) {\n if (!Object.hasOwn(body, key)) continue;\n if (body[key] === null) {\n out[key] = null as never;\n continue;\n }\n const parsed = CapabilityPresetSchema.pick({ [key]: true } as Record<typeof key, true>).safeParse({\n [key]: body[key],\n });\n if (!parsed.success) {\n return { error: `${key} ${parsed.error.issues[0]?.message ?? 'is invalid'}` };\n }\n out[key] = parsed.data[key] as never;\n }\n return out;\n}\n\nexport function registerCapabilityPresetsRoutes(authenticated: Hono, deps: AuthenticatedRouteDeps): void {\n const { service, strictRateLimitMiddleware } = deps;\n\n authenticated.get('/api/capability-presets', async (c) => {\n return c.json({ ok: true, payload: listCapabilityPresets(service.currentConfig as Config) });\n });\n\n authenticated.post('/api/capability-presets', strictRateLimitMiddleware, async (c) => {\n let raw: unknown;\n try {\n raw = await c.req.json();\n } catch {\n return c.json({ ok: false, error: { message: 'Invalid JSON' } }, 400);\n }\n const body = parseCreateBody(raw);\n if (isParseError(body)) {\n return c.json({ ok: false, error: { message: body.error } }, 400);\n }\n const prep = prepareCreateCapabilityPreset(service.currentConfig as Config, body);\n if (prep.ok === false) {\n return c.json({ ok: false, error: { message: prep.error } }, prep.status ?? 400);\n }\n const save = await service.saveConfig(prep.data.nextConfig);\n if (!save.saved) {\n return c.json({ ok: false, error: { message: save.error ?? 'save failed' } }, 500);\n }\n return c.json({\n ok: true,\n payload: {\n presetId: prep.data.presetId,\n presets: listCapabilityPresets(service.currentConfig as Config),\n },\n });\n });\n\n authenticated.patch('/api/capability-presets/:id', strictRateLimitMiddleware, async (c) => {\n const id = normalizeAgentId(c.req.param('id') ?? '');\n let raw: unknown;\n try {\n raw = await c.req.json();\n } catch {\n return c.json({ ok: false, error: { message: 'Invalid JSON' } }, 400);\n }\n const body = parseUpdateBody(raw);\n if (isParseError(body)) {\n return c.json({ ok: false, error: { message: body.error } }, 400);\n }\n const prep = prepareUpdateCapabilityPreset(service.currentConfig as Config, id, body);\n if (prep.ok === false) {\n return c.json({ ok: false, error: { message: prep.error } }, prep.status ?? 400);\n }\n const save = await service.saveConfig(prep.data.nextConfig);\n if (!save.saved) {\n return c.json({ ok: false, error: { message: save.error ?? 'save failed' } }, 500);\n }\n return c.json({ ok: true, payload: listCapabilityPresets(service.currentConfig as Config) });\n });\n\n authenticated.delete('/api/capability-presets/:id', strictRateLimitMiddleware, async (c) => {\n const id = normalizeAgentId(c.req.param('id') ?? '');\n const prep = prepareDeleteCapabilityPreset(service.currentConfig as Config, id);\n if (prep.ok === false) {\n return c.json({ ok: false, error: { message: prep.error } }, prep.status ?? 400);\n }\n const save = await service.saveConfig(prep.data.nextConfig);\n if (!save.saved) {\n return c.json({ ok: false, error: { message: save.error ?? 'save failed' } }, 500);\n }\n return c.json({ ok: true, payload: listCapabilityPresets(service.currentConfig as Config) });\n });\n}\n"],"mappings":"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"}
|
|
@@ -1,18 +1,2 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `PATCH /api/config` — `body.agents.defaults.*` section.
|
|
3
|
-
*
|
|
4
|
-
* Mutates `config.agents.defaults` in place to match the patch body. All
|
|
5
|
-
* branches are field-by-field "if undefined skip, if null delete, else
|
|
6
|
-
* coerce/validate then assign" so the web UI can clear individual settings
|
|
7
|
-
* with `{ field: null }` without rewriting the rest.
|
|
8
|
-
*
|
|
9
|
-
* Was 660 lines inlined in `config.ts` (40% of the route handler) — extracted
|
|
10
|
-
* so the dispatcher can chain section patchers instead of being a single 1600
|
|
11
|
-
* -line if-else cascade.
|
|
12
|
-
*
|
|
13
|
-
* **No early returns / errors.** This section never rejects the patch; out-of
|
|
14
|
-
* -range numbers and unrecognized strings are silently dropped (preserves
|
|
15
|
-
* pre-extraction behavior so the route stays a "best-effort merge").
|
|
16
|
-
*/
|
|
17
1
|
import type { Config } from '../../../../config/schema.js';
|
|
18
|
-
export declare function applyAgentsPatch(
|
|
2
|
+
export declare function applyAgentsPatch(_config: Config, body: any): void;
|
|
@@ -1,447 +1,6 @@
|
|
|
1
|
-
import { isMaskedSecretPatchValue } from "../../lib/mask-secret-length.js";
|
|
2
|
-
import { normalizePatchAgentImageGenerationModel, normalizePatchAgentModel, normalizePatchTypedModels } from "../../lib/agent-model.js";
|
|
3
1
|
//#region src/gateway/hono/routes/config-patch/agents.ts
|
|
4
|
-
function applyAgentsPatch(
|
|
5
|
-
if (
|
|
6
|
-
if (!config.agents) config.agents = { defaults: {
|
|
7
|
-
workspace: "~/.xopc/workspace",
|
|
8
|
-
maxTokens: 8192,
|
|
9
|
-
temperature: .7,
|
|
10
|
-
maxToolIterations: 20,
|
|
11
|
-
maxRequestsPerTurn: 50,
|
|
12
|
-
maxToolFailuresPerTurn: 3,
|
|
13
|
-
thinkingDefault: "medium",
|
|
14
|
-
reasoningDefault: "stream",
|
|
15
|
-
verboseDefault: "full"
|
|
16
|
-
} };
|
|
17
|
-
if (!config.agents.defaults) config.agents.defaults = {};
|
|
18
|
-
if (body.agents.defaults.maxTokens !== void 0) config.agents.defaults.maxTokens = body.agents.defaults.maxTokens;
|
|
19
|
-
if (body.agents.defaults.temperature !== void 0) config.agents.defaults.temperature = body.agents.defaults.temperature;
|
|
20
|
-
if (body.agents.defaults.maxToolIterations !== void 0) config.agents.defaults.maxToolIterations = body.agents.defaults.maxToolIterations;
|
|
21
|
-
if (body.agents.defaults.workspace !== void 0) config.agents.defaults.workspace = body.agents.defaults.workspace;
|
|
22
|
-
if (body.agents.defaults.thinkingDefault !== void 0) config.agents.defaults.thinkingDefault = body.agents.defaults.thinkingDefault;
|
|
23
|
-
if (body.agents.defaults.reasoningDefault !== void 0) config.agents.defaults.reasoningDefault = body.agents.defaults.reasoningDefault;
|
|
24
|
-
if (body.agents.defaults.verboseDefault !== void 0) config.agents.defaults.verboseDefault = body.agents.defaults.verboseDefault;
|
|
25
|
-
if (body.agents.defaults.imageModel !== void 0) {
|
|
26
|
-
const v = body.agents.defaults.imageModel;
|
|
27
|
-
if (v === null) delete config.agents.defaults.imageModel;
|
|
28
|
-
else {
|
|
29
|
-
const normalized = normalizePatchAgentModel(v);
|
|
30
|
-
if (normalized === void 0) delete config.agents.defaults.imageModel;
|
|
31
|
-
else config.agents.defaults.imageModel = normalized;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
if (body.agents.defaults.imageGenerationModel !== void 0) {
|
|
35
|
-
const v = body.agents.defaults.imageGenerationModel;
|
|
36
|
-
if (v === null) delete config.agents.defaults.imageGenerationModel;
|
|
37
|
-
else {
|
|
38
|
-
const normalized = normalizePatchAgentImageGenerationModel(v);
|
|
39
|
-
if (normalized === void 0) delete config.agents.defaults.imageGenerationModel;
|
|
40
|
-
else config.agents.defaults.imageGenerationModel = normalized;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
if (body.agents.defaults.mediaMaxMb !== void 0) {
|
|
44
|
-
const v = body.agents.defaults.mediaMaxMb;
|
|
45
|
-
if (v === null) delete config.agents.defaults.mediaMaxMb;
|
|
46
|
-
else {
|
|
47
|
-
const n = typeof v === "number" ? v : Number(v);
|
|
48
|
-
if (!Number.isNaN(n) && n > 0) config.agents.defaults.mediaMaxMb = n;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
if (body.agents.defaults.browser !== void 0) {
|
|
52
|
-
const b = body.agents.defaults.browser;
|
|
53
|
-
if (b === null) delete config.agents.defaults.browser;
|
|
54
|
-
else if (typeof b === "object" && !Array.isArray(b)) {
|
|
55
|
-
const br = b;
|
|
56
|
-
if (!config.agents.defaults.browser) config.agents.defaults.browser = {
|
|
57
|
-
enabled: false,
|
|
58
|
-
headless: false
|
|
59
|
-
};
|
|
60
|
-
const target = config.agents.defaults.browser;
|
|
61
|
-
if (br.enabled !== void 0) if (br.enabled === null) delete target.enabled;
|
|
62
|
-
else target.enabled = Boolean(br.enabled);
|
|
63
|
-
if (br.headless !== void 0) if (br.headless === null) delete target.headless;
|
|
64
|
-
else target.headless = Boolean(br.headless);
|
|
65
|
-
if (br.allowPrivateUrls !== void 0) if (br.allowPrivateUrls === null) delete target.allowPrivateUrls;
|
|
66
|
-
else target.allowPrivateUrls = Boolean(br.allowPrivateUrls);
|
|
67
|
-
if (br.commandTimeout !== void 0) {
|
|
68
|
-
if (br.commandTimeout === null) delete target.commandTimeout;
|
|
69
|
-
else if (typeof br.commandTimeout === "number" && Number.isFinite(br.commandTimeout)) {
|
|
70
|
-
const n = Math.floor(br.commandTimeout);
|
|
71
|
-
if (n >= 5 && n <= 900) target.commandTimeout = n;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
if (br.backend !== void 0) {
|
|
75
|
-
if (br.backend === null || br.backend === "" || br.backend === "extension") delete target.backend;
|
|
76
|
-
else if (br.backend === "local" || br.backend === "cdp" || br.backend === "cloud" || br.backend === "cloakbrowser") target.backend = br.backend;
|
|
77
|
-
}
|
|
78
|
-
if (br.cloudProvider !== void 0) {
|
|
79
|
-
if (br.cloudProvider === null || br.cloudProvider === "") delete target.cloudProvider;
|
|
80
|
-
else if (br.cloudProvider === "browserbase" || br.cloudProvider === "browser-use") target.cloudProvider = br.cloudProvider;
|
|
81
|
-
}
|
|
82
|
-
if (br.cloud !== void 0) {
|
|
83
|
-
if (br.cloud === null) delete target.cloud;
|
|
84
|
-
else if (typeof br.cloud === "object" && !Array.isArray(br.cloud)) {
|
|
85
|
-
const cloudPatch = br.cloud;
|
|
86
|
-
const cloudTarget = { ...target.cloud && typeof target.cloud === "object" && !Array.isArray(target.cloud) ? target.cloud : {} };
|
|
87
|
-
if (cloudPatch.apiKey !== void 0) {
|
|
88
|
-
if (cloudPatch.apiKey === null || cloudPatch.apiKey === "") delete cloudTarget.apiKey;
|
|
89
|
-
else if (isMaskedSecretPatchValue(String(cloudPatch.apiKey))) {} else if (typeof cloudPatch.apiKey === "string") cloudTarget.apiKey = cloudPatch.apiKey.trim();
|
|
90
|
-
}
|
|
91
|
-
for (const key of ["projectId", "region"]) {
|
|
92
|
-
const value = cloudPatch[key];
|
|
93
|
-
if (value === null || value === "") delete cloudTarget[key];
|
|
94
|
-
else if (typeof value === "string" && value.trim()) cloudTarget[key] = value.trim();
|
|
95
|
-
}
|
|
96
|
-
if (Object.keys(cloudTarget).length > 0) target.cloud = cloudTarget;
|
|
97
|
-
else delete target.cloud;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
if (br.cdpUrl !== void 0) {
|
|
101
|
-
if (br.cdpUrl === null || br.cdpUrl === "") delete target.cdpUrl;
|
|
102
|
-
else if (typeof br.cdpUrl === "string") target.cdpUrl = br.cdpUrl.trim();
|
|
103
|
-
}
|
|
104
|
-
if (br.extension !== void 0) {
|
|
105
|
-
if (br.extension === null) delete target.extension;
|
|
106
|
-
else if (typeof br.extension === "object" && !Array.isArray(br.extension)) {
|
|
107
|
-
const ext = br.extension;
|
|
108
|
-
const extTarget = {};
|
|
109
|
-
if (ext.port === null || ext.port === "") {} else if (typeof ext.port === "number" && ext.port >= 1024 && ext.port <= 65535) extTarget.port = Math.floor(ext.port);
|
|
110
|
-
if (ext.host === null || ext.host === "") {} else if (typeof ext.host === "string" && ext.host.trim()) extTarget.host = ext.host.trim();
|
|
111
|
-
if (ext.connectionTimeout === null || ext.connectionTimeout === "") {} else if (typeof ext.connectionTimeout === "number" && Number.isFinite(ext.connectionTimeout) && ext.connectionTimeout >= 1e3) extTarget.connectionTimeout = Math.floor(ext.connectionTimeout);
|
|
112
|
-
if (Object.keys(extTarget).length > 0) target.extension = extTarget;
|
|
113
|
-
else delete target.extension;
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
if (br.cloakbrowser !== void 0) {
|
|
117
|
-
if (br.cloakbrowser === null) delete target.cloakbrowser;
|
|
118
|
-
else if (typeof br.cloakbrowser === "object" && !Array.isArray(br.cloakbrowser)) {
|
|
119
|
-
const cloakbrowserPatch = br.cloakbrowser;
|
|
120
|
-
const cloakbrowserTarget = {};
|
|
121
|
-
if (typeof cloakbrowserPatch.keepOpen === "boolean") cloakbrowserTarget.keepOpen = cloakbrowserPatch.keepOpen;
|
|
122
|
-
if (typeof cloakbrowserPatch.temporaryProfile === "boolean") cloakbrowserTarget.temporaryProfile = cloakbrowserPatch.temporaryProfile;
|
|
123
|
-
for (const key of [
|
|
124
|
-
"cacheDir",
|
|
125
|
-
"binaryPath",
|
|
126
|
-
"timezone",
|
|
127
|
-
"locale",
|
|
128
|
-
"webrtcIp",
|
|
129
|
-
"fingerprintPlatform"
|
|
130
|
-
]) {
|
|
131
|
-
const value = cloakbrowserPatch[key];
|
|
132
|
-
if (typeof value === "string" && value.trim()) cloakbrowserTarget[key] = value.trim();
|
|
133
|
-
}
|
|
134
|
-
if (Array.isArray(cloakbrowserPatch.extraArgs) && cloakbrowserPatch.extraArgs.every((value) => typeof value === "string")) cloakbrowserTarget.extraArgs = cloakbrowserPatch.extraArgs;
|
|
135
|
-
if (Object.keys(cloakbrowserTarget).length > 0) target.cloakbrowser = cloakbrowserTarget;
|
|
136
|
-
else delete target.cloakbrowser;
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
if (br.humanize !== void 0) if (br.humanize === null) delete target.humanize;
|
|
140
|
-
else target.humanize = Boolean(br.humanize);
|
|
141
|
-
if (br.humanPreset !== void 0) {
|
|
142
|
-
if (br.humanPreset === null) delete target.humanPreset;
|
|
143
|
-
else if (br.humanPreset === "default" || br.humanPreset === "careful") target.humanPreset = br.humanPreset;
|
|
144
|
-
}
|
|
145
|
-
if (br.dialogPolicy !== void 0) {
|
|
146
|
-
if (br.dialogPolicy === null) delete target.dialogPolicy;
|
|
147
|
-
else if (br.dialogPolicy === "must_respond" || br.dialogPolicy === "auto_dismiss" || br.dialogPolicy === "auto_accept") target.dialogPolicy = br.dialogPolicy;
|
|
148
|
-
}
|
|
149
|
-
if (br.dialogTimeoutSeconds !== void 0) {
|
|
150
|
-
if (br.dialogTimeoutSeconds === null) delete target.dialogTimeoutSeconds;
|
|
151
|
-
else if (typeof br.dialogTimeoutSeconds === "number" && Number.isFinite(br.dialogTimeoutSeconds)) {
|
|
152
|
-
const n = Math.floor(br.dialogTimeoutSeconds);
|
|
153
|
-
if (n >= 1 && n <= 86400) target.dialogTimeoutSeconds = n;
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
const dPatch = body.agents.defaults;
|
|
159
|
-
const def = config.agents.defaults;
|
|
160
|
-
if (dPatch.maxTaskDurationMs !== void 0) {
|
|
161
|
-
const v = dPatch.maxTaskDurationMs;
|
|
162
|
-
if (v === null) delete def.maxTaskDurationMs;
|
|
163
|
-
else if (typeof v === "number" && Number.isFinite(v)) {
|
|
164
|
-
const ms = Math.floor(v);
|
|
165
|
-
if (ms >= 6e4 && ms <= 144e5) def.maxTaskDurationMs = ms;
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
if (dPatch.maxRequestsPerTurn !== void 0) {
|
|
169
|
-
const v = dPatch.maxRequestsPerTurn;
|
|
170
|
-
if (v === null) delete def.maxRequestsPerTurn;
|
|
171
|
-
else if (typeof v === "number" && Number.isFinite(v)) {
|
|
172
|
-
const n = Math.floor(v);
|
|
173
|
-
if (n >= 10 && n <= 200) def.maxRequestsPerTurn = n;
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
if (dPatch.maxToolFailuresPerTurn !== void 0) {
|
|
177
|
-
const v = dPatch.maxToolFailuresPerTurn;
|
|
178
|
-
if (v === null) delete def.maxToolFailuresPerTurn;
|
|
179
|
-
else if (typeof v === "number" && Number.isFinite(v)) {
|
|
180
|
-
const n = Math.floor(v);
|
|
181
|
-
if (n >= 1 && n <= 20) def.maxToolFailuresPerTurn = n;
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
if (dPatch.compaction !== void 0) {
|
|
185
|
-
const c = dPatch.compaction;
|
|
186
|
-
if (c === null) delete def.compaction;
|
|
187
|
-
else if (typeof c === "object" && !Array.isArray(c)) {
|
|
188
|
-
const p = c;
|
|
189
|
-
if (!def.compaction || typeof def.compaction !== "object") def.compaction = {};
|
|
190
|
-
const t = def.compaction;
|
|
191
|
-
if (p.enabled !== void 0) t.enabled = Boolean(p.enabled);
|
|
192
|
-
if (p.mode === "default" || p.mode === "safeguard") t.mode = p.mode;
|
|
193
|
-
if (typeof p.reserveTokens === "number" && Number.isFinite(p.reserveTokens)) t.reserveTokens = Math.floor(p.reserveTokens);
|
|
194
|
-
if (typeof p.triggerThreshold === "number" && Number.isFinite(p.triggerThreshold)) {
|
|
195
|
-
const x = p.triggerThreshold;
|
|
196
|
-
if (x >= .5 && x <= .95) t.triggerThreshold = x;
|
|
197
|
-
}
|
|
198
|
-
if (typeof p.minMessagesBeforeCompact === "number" && Number.isFinite(p.minMessagesBeforeCompact)) t.minMessagesBeforeCompact = Math.floor(p.minMessagesBeforeCompact);
|
|
199
|
-
if (typeof p.keepRecentMessages === "number" && Number.isFinite(p.keepRecentMessages)) t.keepRecentMessages = Math.floor(p.keepRecentMessages);
|
|
200
|
-
if (typeof p.evictionWindow === "number" && Number.isFinite(p.evictionWindow)) {
|
|
201
|
-
const x = p.evictionWindow;
|
|
202
|
-
if (x >= .1 && x <= .5) t.evictionWindow = x;
|
|
203
|
-
}
|
|
204
|
-
if (typeof p.retentionWindow === "number" && Number.isFinite(p.retentionWindow)) {
|
|
205
|
-
const n = Math.floor(p.retentionWindow);
|
|
206
|
-
if (n >= 3 && n <= 20) t.retentionWindow = n;
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
if (dPatch.pruning !== void 0) {
|
|
211
|
-
const c = dPatch.pruning;
|
|
212
|
-
if (c === null) delete def.pruning;
|
|
213
|
-
else if (typeof c === "object" && !Array.isArray(c)) {
|
|
214
|
-
const p = c;
|
|
215
|
-
if (!def.pruning || typeof def.pruning !== "object") def.pruning = {};
|
|
216
|
-
const t = def.pruning;
|
|
217
|
-
if (p.enabled !== void 0) t.enabled = Boolean(p.enabled);
|
|
218
|
-
if (typeof p.maxToolResultChars === "number" && Number.isFinite(p.maxToolResultChars)) t.maxToolResultChars = Math.floor(p.maxToolResultChars);
|
|
219
|
-
if (typeof p.headKeepRatio === "number" && Number.isFinite(p.headKeepRatio)) t.headKeepRatio = p.headKeepRatio;
|
|
220
|
-
if (typeof p.tailKeepRatio === "number" && Number.isFinite(p.tailKeepRatio)) t.tailKeepRatio = p.tailKeepRatio;
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
if (dPatch.memory !== void 0) {
|
|
224
|
-
const c = dPatch.memory;
|
|
225
|
-
if (c === null) delete def.memory;
|
|
226
|
-
else if (typeof c === "object" && !Array.isArray(c)) {
|
|
227
|
-
const p = c;
|
|
228
|
-
if (!def.memory || typeof def.memory !== "object") def.memory = {};
|
|
229
|
-
const t = def.memory;
|
|
230
|
-
if (p.enabled !== void 0) if (p.enabled === null) delete t.enabled;
|
|
231
|
-
else t.enabled = Boolean(p.enabled);
|
|
232
|
-
if (p.useEnhancedSystem !== void 0) if (p.useEnhancedSystem === null) delete t.useEnhancedSystem;
|
|
233
|
-
else t.useEnhancedSystem = Boolean(p.useEnhancedSystem);
|
|
234
|
-
if (p.userProfileEnabled !== void 0) if (p.userProfileEnabled === null) delete t.userProfileEnabled;
|
|
235
|
-
else t.userProfileEnabled = Boolean(p.userProfileEnabled);
|
|
236
|
-
if (p.memoryCharLimit !== void 0) {
|
|
237
|
-
if (p.memoryCharLimit === null) delete t.memoryCharLimit;
|
|
238
|
-
else if (typeof p.memoryCharLimit === "number" && p.memoryCharLimit > 0) t.memoryCharLimit = Math.floor(p.memoryCharLimit);
|
|
239
|
-
}
|
|
240
|
-
if (p.userCharLimit !== void 0) {
|
|
241
|
-
if (p.userCharLimit === null) delete t.userCharLimit;
|
|
242
|
-
else if (typeof p.userCharLimit === "number" && p.userCharLimit > 0) t.userCharLimit = Math.floor(p.userCharLimit);
|
|
243
|
-
}
|
|
244
|
-
if (p.provider === "none" || p.provider === "stub") t.provider = p.provider;
|
|
245
|
-
else if (p.provider === null) delete t.provider;
|
|
246
|
-
if (p.injectionFrequency === "every-turn" || p.injectionFrequency === "first-turn") t.injectionFrequency = p.injectionFrequency;
|
|
247
|
-
else if (p.injectionFrequency === null) delete t.injectionFrequency;
|
|
248
|
-
if (p.contextCadence !== void 0) {
|
|
249
|
-
if (p.contextCadence === null) delete t.contextCadence;
|
|
250
|
-
else if (typeof p.contextCadence === "number" && p.contextCadence >= 1) t.contextCadence = Math.floor(p.contextCadence);
|
|
251
|
-
}
|
|
252
|
-
if (p.dialecticCadence !== void 0) {
|
|
253
|
-
if (p.dialecticCadence === null) delete t.dialecticCadence;
|
|
254
|
-
else if (typeof p.dialecticCadence === "number" && p.dialecticCadence >= 1) t.dialecticCadence = Math.floor(p.dialecticCadence);
|
|
255
|
-
}
|
|
256
|
-
if (p.dreaming !== void 0) {
|
|
257
|
-
const d0 = p.dreaming;
|
|
258
|
-
if (d0 === null) delete t.dreaming;
|
|
259
|
-
else if (typeof d0 === "object" && d0 !== null && !Array.isArray(d0)) {
|
|
260
|
-
if (!("dreaming" in t) || typeof t.dreaming !== "object") t.dreaming = {};
|
|
261
|
-
const dt = t.dreaming;
|
|
262
|
-
const dp = d0;
|
|
263
|
-
if (dp.enabled !== void 0) if (dp.enabled === null) delete dt.enabled;
|
|
264
|
-
else dt.enabled = Boolean(dp.enabled);
|
|
265
|
-
if (dp.frequency !== void 0) {
|
|
266
|
-
const v = dp.frequency;
|
|
267
|
-
if (v === null || v === "") delete dt.frequency;
|
|
268
|
-
else if (typeof v === "string") dt.frequency = v;
|
|
269
|
-
}
|
|
270
|
-
if (dp.timezone !== void 0) {
|
|
271
|
-
const v = dp.timezone;
|
|
272
|
-
if (v === null || v === "") delete dt.timezone;
|
|
273
|
-
else if (typeof v === "string") dt.timezone = v;
|
|
274
|
-
}
|
|
275
|
-
if (dp.phases !== void 0 || dp.deep !== void 0) {
|
|
276
|
-
if (!("phases" in dt) || typeof dt.phases !== "object" || dt.phases === null) dt.phases = {};
|
|
277
|
-
const phases = dt.phases;
|
|
278
|
-
if (!("deep" in phases) || typeof phases.deep !== "object" || phases.deep === null) phases.deep = {};
|
|
279
|
-
const deep = phases.deep;
|
|
280
|
-
const deepPatchRaw = typeof dp.phases === "object" && dp.phases !== null && !Array.isArray(dp.phases) ? dp.phases.deep : dp.deep;
|
|
281
|
-
const deepPatch = typeof deepPatchRaw === "object" && deepPatchRaw !== null && !Array.isArray(deepPatchRaw) ? deepPatchRaw : null;
|
|
282
|
-
if (deepPatch) {
|
|
283
|
-
if (deepPatch.enabled !== void 0) if (deepPatch.enabled === null) delete deep.enabled;
|
|
284
|
-
else deep.enabled = Boolean(deepPatch.enabled);
|
|
285
|
-
if (deepPatch.minScore !== void 0) {
|
|
286
|
-
const v = deepPatch.minScore;
|
|
287
|
-
if (v === null) delete deep.minScore;
|
|
288
|
-
else if (typeof v === "number" && Number.isFinite(v)) deep.minScore = v;
|
|
289
|
-
}
|
|
290
|
-
if (deepPatch.minRecallCount !== void 0) {
|
|
291
|
-
const v = deepPatch.minRecallCount;
|
|
292
|
-
if (v === null) delete deep.minRecallCount;
|
|
293
|
-
else if (typeof v === "number" && Number.isFinite(v)) deep.minRecallCount = Math.floor(v);
|
|
294
|
-
}
|
|
295
|
-
if (deepPatch.limit !== void 0) {
|
|
296
|
-
const v = deepPatch.limit;
|
|
297
|
-
if (v === null) delete deep.limit;
|
|
298
|
-
else if (typeof v === "number" && Number.isFinite(v)) deep.limit = Math.floor(v);
|
|
299
|
-
}
|
|
300
|
-
}
|
|
301
|
-
}
|
|
302
|
-
}
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
}
|
|
306
|
-
if (dPatch.sessionSearch !== void 0) {
|
|
307
|
-
const c = dPatch.sessionSearch;
|
|
308
|
-
if (c === null) delete def.sessionSearch;
|
|
309
|
-
else if (typeof c === "object" && !Array.isArray(c)) {
|
|
310
|
-
const p = c;
|
|
311
|
-
if (!def.sessionSearch || typeof def.sessionSearch !== "object") def.sessionSearch = {};
|
|
312
|
-
const t = def.sessionSearch;
|
|
313
|
-
if (p.summaryModel !== void 0) {
|
|
314
|
-
if (p.summaryModel === null || p.summaryModel === "") delete t.summaryModel;
|
|
315
|
-
else if (typeof p.summaryModel === "string") t.summaryModel = p.summaryModel;
|
|
316
|
-
}
|
|
317
|
-
}
|
|
318
|
-
}
|
|
319
|
-
if (dPatch.backgroundReview !== void 0) {
|
|
320
|
-
const c = dPatch.backgroundReview;
|
|
321
|
-
if (c === null) delete def.backgroundReview;
|
|
322
|
-
else if (typeof c === "object" && !Array.isArray(c)) {
|
|
323
|
-
const p = c;
|
|
324
|
-
if (!def.backgroundReview || typeof def.backgroundReview !== "object") def.backgroundReview = {};
|
|
325
|
-
const t = def.backgroundReview;
|
|
326
|
-
if (p.enabled !== void 0) if (p.enabled === null) delete t.enabled;
|
|
327
|
-
else t.enabled = Boolean(p.enabled);
|
|
328
|
-
if (p.memoryNudgeInterval !== void 0) {
|
|
329
|
-
if (p.memoryNudgeInterval === null) delete t.memoryNudgeInterval;
|
|
330
|
-
else if (typeof p.memoryNudgeInterval === "number" && p.memoryNudgeInterval >= 0) t.memoryNudgeInterval = Math.floor(p.memoryNudgeInterval);
|
|
331
|
-
}
|
|
332
|
-
if (p.skillNudgeInterval !== void 0) {
|
|
333
|
-
if (p.skillNudgeInterval === null) delete t.skillNudgeInterval;
|
|
334
|
-
else if (typeof p.skillNudgeInterval === "number" && p.skillNudgeInterval >= 0) t.skillNudgeInterval = Math.floor(p.skillNudgeInterval);
|
|
335
|
-
}
|
|
336
|
-
if (p.maxToolRounds !== void 0) {
|
|
337
|
-
if (p.maxToolRounds === null) delete t.maxToolRounds;
|
|
338
|
-
else if (typeof p.maxToolRounds === "number" && p.maxToolRounds >= 1 && p.maxToolRounds <= 32) t.maxToolRounds = Math.floor(p.maxToolRounds);
|
|
339
|
-
}
|
|
340
|
-
if (p.maxHistoryMessages !== void 0) {
|
|
341
|
-
if (p.maxHistoryMessages === null) delete t.maxHistoryMessages;
|
|
342
|
-
else if (typeof p.maxHistoryMessages === "number" && p.maxHistoryMessages >= 10 && p.maxHistoryMessages <= 200) t.maxHistoryMessages = Math.floor(p.maxHistoryMessages);
|
|
343
|
-
}
|
|
344
|
-
if (p.maxDurationMs !== void 0) {
|
|
345
|
-
if (p.maxDurationMs === null) delete t.maxDurationMs;
|
|
346
|
-
else if (typeof p.maxDurationMs === "number" && p.maxDurationMs >= 3e4 && p.maxDurationMs <= 6e5) t.maxDurationMs = Math.floor(p.maxDurationMs);
|
|
347
|
-
}
|
|
348
|
-
}
|
|
349
|
-
}
|
|
350
|
-
if (dPatch.webExtract !== void 0) {
|
|
351
|
-
const c = dPatch.webExtract;
|
|
352
|
-
if (c === null) delete def.webExtract;
|
|
353
|
-
else if (typeof c === "object" && !Array.isArray(c)) {
|
|
354
|
-
const p = c;
|
|
355
|
-
if (!def.webExtract || typeof def.webExtract !== "object") def.webExtract = {};
|
|
356
|
-
const t = def.webExtract;
|
|
357
|
-
if (p.model !== void 0) {
|
|
358
|
-
if (p.model === null || p.model === "") delete t.model;
|
|
359
|
-
else if (typeof p.model === "string") t.model = p.model;
|
|
360
|
-
}
|
|
361
|
-
if (p.maxLength !== void 0) {
|
|
362
|
-
if (p.maxLength === null) delete t.maxLength;
|
|
363
|
-
else if (typeof p.maxLength === "number" && p.maxLength > 0) t.maxLength = p.maxLength;
|
|
364
|
-
}
|
|
365
|
-
}
|
|
366
|
-
}
|
|
367
|
-
if (dPatch.delegate !== void 0) {
|
|
368
|
-
const c = dPatch.delegate;
|
|
369
|
-
if (c === null) delete def.delegate;
|
|
370
|
-
else if (typeof c === "object" && !Array.isArray(c)) {
|
|
371
|
-
const p = c;
|
|
372
|
-
if (!def.delegate || typeof def.delegate !== "object") def.delegate = {};
|
|
373
|
-
const t = def.delegate;
|
|
374
|
-
if (p.enabled !== void 0) if (p.enabled === null) delete t.enabled;
|
|
375
|
-
else t.enabled = Boolean(p.enabled);
|
|
376
|
-
}
|
|
377
|
-
}
|
|
378
|
-
if (dPatch.executeCode !== void 0) {
|
|
379
|
-
const c = dPatch.executeCode;
|
|
380
|
-
if (c === null) delete def.executeCode;
|
|
381
|
-
else if (typeof c === "object" && !Array.isArray(c)) {
|
|
382
|
-
const p = c;
|
|
383
|
-
if (!def.executeCode || typeof def.executeCode !== "object") def.executeCode = {};
|
|
384
|
-
const t = def.executeCode;
|
|
385
|
-
if (p.enabled !== void 0) if (p.enabled === null) delete t.enabled;
|
|
386
|
-
else t.enabled = Boolean(p.enabled);
|
|
387
|
-
}
|
|
388
|
-
}
|
|
389
|
-
if (dPatch.systemPromptOverride !== void 0) {
|
|
390
|
-
const v = dPatch.systemPromptOverride;
|
|
391
|
-
if (v === null || v === "") delete def.systemPromptOverride;
|
|
392
|
-
else if (typeof v === "string") def.systemPromptOverride = v;
|
|
393
|
-
}
|
|
394
|
-
if (dPatch.skills !== void 0) {
|
|
395
|
-
const v = dPatch.skills;
|
|
396
|
-
if (v === null) delete def.skills;
|
|
397
|
-
else if (Array.isArray(v) && v.every((x) => typeof x === "string")) def.skills = v;
|
|
398
|
-
}
|
|
399
|
-
if (dPatch.models !== void 0) {
|
|
400
|
-
if (!def.models || typeof def.models !== "object") def.models = {};
|
|
401
|
-
const modelsTarget = def.models;
|
|
402
|
-
const modelPatch = dPatch.models;
|
|
403
|
-
if (modelPatch === null) delete def.models;
|
|
404
|
-
else if (typeof modelPatch === "object" && !Array.isArray(modelPatch)) {
|
|
405
|
-
const p = modelPatch;
|
|
406
|
-
if (Object.hasOwn(p, "chat")) {
|
|
407
|
-
const chat = p.chat;
|
|
408
|
-
if (chat === null) delete modelsTarget.chat;
|
|
409
|
-
else {
|
|
410
|
-
const normalizedChat = normalizePatchAgentModel(chat);
|
|
411
|
-
if (normalizedChat === void 0) delete modelsTarget.chat;
|
|
412
|
-
else modelsTarget.chat = normalizedChat;
|
|
413
|
-
}
|
|
414
|
-
}
|
|
415
|
-
if (Object.hasOwn(p, "roles")) {
|
|
416
|
-
const normalized = normalizePatchTypedModels({ roles: p.roles });
|
|
417
|
-
if (normalized === void 0) {} else if (normalized === null) delete modelsTarget.roles;
|
|
418
|
-
else modelsTarget.roles = normalized;
|
|
419
|
-
}
|
|
420
|
-
} else {
|
|
421
|
-
const normalized = normalizePatchTypedModels(modelPatch);
|
|
422
|
-
if (normalized === void 0) {} else if (normalized === null) delete modelsTarget.roles;
|
|
423
|
-
else modelsTarget.roles = normalized;
|
|
424
|
-
}
|
|
425
|
-
if (def.models && Object.keys(def.models).length === 0) delete def.models;
|
|
426
|
-
}
|
|
427
|
-
if (dPatch.tools !== void 0) {
|
|
428
|
-
const t0 = dPatch.tools;
|
|
429
|
-
if (t0 === null) delete def.tools;
|
|
430
|
-
else if (typeof t0 === "object" && !Array.isArray(t0)) {
|
|
431
|
-
const p = t0;
|
|
432
|
-
if (!def.tools || typeof def.tools !== "object") def.tools = {};
|
|
433
|
-
const t = def.tools;
|
|
434
|
-
if (p.disable !== void 0) {
|
|
435
|
-
if (p.disable === null || Array.isArray(p.disable) && p.disable.length === 0) delete t.disable;
|
|
436
|
-
else if (Array.isArray(p.disable) && p.disable.every((x) => typeof x === "string")) t.disable = p.disable;
|
|
437
|
-
}
|
|
438
|
-
}
|
|
439
|
-
}
|
|
440
|
-
if (dPatch.params !== void 0) {
|
|
441
|
-
const v = dPatch.params;
|
|
442
|
-
if (v === null) delete def.params;
|
|
443
|
-
else if (typeof v === "object" && !Array.isArray(v) && v !== null) def.params = v;
|
|
444
|
-
}
|
|
2
|
+
function applyAgentsPatch(_config, body) {
|
|
3
|
+
if (body.agents !== void 0) throw new Error("agents config patching was removed; use manifest-specific agent APIs");
|
|
445
4
|
}
|
|
446
5
|
//#endregion
|
|
447
6
|
export { applyAgentsPatch };
|