@xopcai/xopc 0.0.82 → 0.0.83
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 +1 -1
- package/README.zh-CN.md +1 -1
- package/dist/browser-ext/manifest.json +1 -1
- package/dist/extensions/feishu/src/outbound/media-load.js +2 -3
- package/dist/extensions/feishu/src/outbound/media-load.js.map +1 -1
- package/dist/extensions/feishu/src/schema/config-schema.d.ts +6 -6
- package/dist/extensions/telegram/src/config-schema.d.ts +6 -6
- package/dist/extensions/telegram/src/plugin.d.ts +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/xopc.extension.json +1 -1
- package/dist/extensions/weixin/src/api/api.js +3 -3
- 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/gateway/static/root/assets/agents-CrpYTHJS.js +222 -0
- package/dist/gateway/static/root/assets/{apps-page-pJ27dsqn.js → apps-page-1mcKh5Rh.js} +1 -1
- package/dist/gateway/static/root/assets/channels-settings-zd6QNKPx.js +1 -0
- package/dist/gateway/static/root/assets/{channels-status-swr-D1KYmOmi.js → channels-status-swr-uRAuhiUo.js} +1 -1
- package/dist/gateway/static/root/assets/{cron-api-Y2wfSJVI.js → cron-api-O2Q_ruV6.js} +1 -1
- package/dist/gateway/static/root/assets/{cron-page-B97KU_RG.js → cron-page-By09AQD-.js} +1 -1
- package/dist/gateway/static/root/assets/{dist-CboA_Css.js → dist-BpQxde0t.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-debug-page-DN_zNmpo.js → extension-debug-page-CY27wj_p.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-BUXtOzv5.js → extension-page-C-Ed5ZmP.js} +1 -1
- package/dist/gateway/static/root/assets/{extension-settings-page-C2dX4KCW.js → extension-settings-page-raLux7E7.js} +1 -1
- package/dist/gateway/static/root/assets/fetch-2iRFmd3n.js +3 -0
- package/dist/gateway/static/root/assets/{field-primitives-B9rOLqdm.js → field-primitives-fa_hiQcX.js} +1 -1
- package/dist/gateway/static/root/assets/{heartbeat-config-api-DvfiRVrc.js → heartbeat-config-api-BVl5VHvL.js} +1 -1
- package/dist/gateway/static/root/assets/index-BuFldCsB.css +1 -0
- package/dist/gateway/static/root/assets/{index-DQuaMye9.js → index-Y-iqo-gL.js} +94 -85
- package/dist/gateway/static/root/assets/{logs-page-BQuBpHcc.js → logs-page-BdH2n7ZW.js} +1 -1
- package/dist/gateway/static/root/assets/sessions-page-Vpchzdp-.js +1 -0
- package/dist/gateway/static/root/assets/{settings-form-section-2Yu-FASs.js → settings-form-section-Kk1yAGBl.js} +1 -1
- package/dist/gateway/static/root/assets/settings-page-KBm0u6Dz.js +3 -0
- package/dist/gateway/static/root/assets/skills-page-BjeXXaOn.js +2 -0
- package/dist/gateway/static/root/assets/{theme-store-DnwYutiX.js → theme-store-D01dJt95.js} +1 -1
- package/dist/gateway/static/root/assets/{utils-D2Gn2qod.js → utils-DpTxN4AF.js} +1 -1
- package/dist/gateway/static/root/assets/voice-api-key-field-CwO8Cf01.js +1 -0
- package/dist/gateway/static/root/index.html +4 -4
- package/dist/package.js +1 -1
- package/dist/src/agent/agent-instance-gateway.d.ts +50 -0
- package/dist/src/agent/agent-instance-gateway.js +1 -0
- package/dist/src/agent/agent-manager.d.ts +20 -14
- package/dist/src/agent/agent-manager.js +74 -186
- package/dist/src/agent/agent-manager.js.map +1 -1
- package/dist/src/agent/background-review/coordinator.d.ts +61 -0
- package/dist/src/agent/background-review/coordinator.js +120 -0
- package/dist/src/agent/background-review/coordinator.js.map +1 -0
- package/dist/src/agent/bootstrap/load-bootstrap-files.js +1 -1
- package/dist/src/agent/child-agent-factory.d.ts +14 -0
- package/dist/src/agent/child-agent-factory.js +2 -8
- package/dist/src/agent/child-agent-factory.js.map +1 -1
- package/dist/src/agent/context/workspace-seed.js +3 -3
- package/dist/src/agent/embedded/index.d.ts +1 -2
- package/dist/src/agent/embedded/index.js +2 -3
- package/dist/src/agent/embedded/run-for-session.d.ts +2 -2
- package/dist/src/agent/embedded/run-for-session.js.map +1 -1
- package/dist/src/agent/embedded/runs.d.ts +32 -0
- package/dist/src/agent/embedded/runs.js +79 -19
- package/dist/src/agent/embedded/runs.js.map +1 -1
- package/dist/src/agent/embedded/session-manager-cache.d.ts +14 -0
- package/dist/src/agent/embedded/session-manager-cache.js +32 -11
- package/dist/src/agent/embedded/session-manager-cache.js.map +1 -1
- package/dist/src/agent/embedded/session-runner.d.ts +37 -7
- package/dist/src/agent/embedded/session-runner.js +184 -153
- package/dist/src/agent/embedded/session-runner.js.map +1 -1
- package/dist/src/agent/embedded/session-tool-result-guard.d.ts +57 -9
- package/dist/src/agent/embedded/session-tool-result-guard.js +159 -67
- package/dist/src/agent/embedded/session-tool-result-guard.js.map +1 -1
- package/dist/src/agent/goals/goal-run-store.js +4 -4
- package/dist/src/agent/goals/persistent-goal-service.d.ts +84 -0
- package/dist/src/agent/goals/persistent-goal-service.js +139 -0
- package/dist/src/agent/goals/persistent-goal-service.js.map +1 -0
- package/dist/src/agent/goals/post-turn.js +2 -2
- package/dist/src/agent/goals/state.d.ts +1 -1
- package/dist/src/agent/goals/state.js.map +1 -1
- package/dist/src/agent/image/load-image-media.js +1 -1
- package/dist/src/agent/inbound/inbound-loop.d.ts +77 -0
- package/dist/src/agent/inbound/inbound-loop.js +226 -0
- package/dist/src/agent/inbound/inbound-loop.js.map +1 -0
- package/dist/src/agent/inbound/turn-dispatcher.d.ts +80 -0
- package/dist/src/agent/inbound/turn-dispatcher.js +138 -0
- package/dist/src/agent/inbound/turn-dispatcher.js.map +1 -0
- package/dist/src/agent/ipc/bus.js +1 -1
- package/dist/src/agent/ipc/inbox.js +2 -2
- package/dist/src/agent/ipc/socket.js +1 -1
- package/dist/src/agent/lifecycle/handlers/compaction.d.ts +1 -1
- package/dist/src/agent/lifecycle/handlers/compaction.js.map +1 -1
- package/dist/src/agent/lifecycle/manager.d.ts +1 -1
- package/dist/src/agent/lifecycle/manager.js.map +1 -1
- package/dist/src/agent/lifecycle/types.d.ts +1 -1
- package/dist/src/agent/memory/builtin-memory-store.js +1 -1
- package/dist/src/agent/memory/dreaming/deep-promotion.js +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.d.ts +12 -2
- package/dist/src/agent/memory/dreaming/utils.js +1 -1
- package/dist/src/agent/memory/dreaming/utils.js.map +1 -1
- package/dist/src/agent/memory/index.js +3 -3
- package/dist/src/agent/memory/plugin-discovery.js +1 -1
- package/dist/src/agent/memory/prefetch-coordinator.d.ts +37 -0
- package/dist/src/agent/memory/prefetch-coordinator.js +45 -0
- package/dist/src/agent/memory/prefetch-coordinator.js.map +1 -0
- package/dist/src/agent/messaging/command-handler.d.ts +5 -1
- package/dist/src/agent/messaging/command-handler.js +24 -96
- package/dist/src/agent/messaging/command-handler.js.map +1 -1
- package/dist/src/agent/messaging/index.d.ts +1 -0
- package/dist/src/agent/messaging/index.js +2 -1
- package/dist/src/agent/messaging/message-router.d.ts +1 -1
- package/dist/src/agent/messaging/message-router.js.map +1 -1
- package/dist/src/agent/messaging/outbound-coordinator.d.ts +82 -0
- package/dist/src/agent/messaging/outbound-coordinator.js +123 -0
- package/dist/src/agent/messaging/outbound-coordinator.js.map +1 -0
- package/dist/src/agent/models/manager.js +1 -1
- package/dist/src/agent/orchestration/agent-event-handler.d.ts +36 -33
- package/dist/src/agent/orchestration/agent-event-handler.js +212 -174
- package/dist/src/agent/orchestration/agent-event-handler.js.map +1 -1
- package/dist/src/agent/orchestration/agent-orchestrator.d.ts +4 -4
- package/dist/src/agent/orchestration/agent-orchestrator.js +4 -8
- package/dist/src/agent/orchestration/agent-orchestrator.js.map +1 -1
- package/dist/src/agent/orchestration/index.d.ts +1 -1
- package/dist/src/agent/orchestration/index.js +2 -2
- package/dist/src/agent/prompt/service-prompt-builder.js +4 -4
- package/dist/src/agent/reply/post-compaction-context.js +1 -1
- package/dist/src/agent/reply/workspace-boundary-read.js +1 -1
- package/dist/src/agent/sandbox/path-policy.js +1 -1
- package/dist/src/agent/service/async-queue.d.ts +20 -0
- package/dist/src/agent/service/async-queue.js +53 -0
- package/dist/src/agent/service/async-queue.js.map +1 -0
- package/dist/src/agent/service/build-direct-message-content.d.ts +2 -2
- package/dist/src/agent/service/build-direct-message-content.js.map +1 -1
- package/dist/src/agent/service/direct-turn-helpers.d.ts +70 -0
- package/dist/src/agent/service/direct-turn-helpers.js +90 -0
- package/dist/src/agent/service/direct-turn-helpers.js.map +1 -0
- package/dist/src/agent/service/process-direct-one-shot.d.ts +3 -3
- package/dist/src/agent/service/process-direct-one-shot.js +17 -34
- package/dist/src/agent/service/process-direct-one-shot.js.map +1 -1
- package/dist/src/agent/service/process-direct-streaming.d.ts +2 -2
- package/dist/src/agent/service/process-direct-streaming.js +122 -168
- package/dist/src/agent/service/process-direct-streaming.js.map +1 -1
- package/dist/src/agent/service/webchat-tts.d.ts +2 -2
- package/dist/src/agent/service/webchat-tts.js +1 -1
- package/dist/src/agent/service/webchat-tts.js.map +1 -1
- package/dist/src/agent/service.d.ts +62 -167
- package/dist/src/agent/service.js +177 -786
- package/dist/src/agent/service.js.map +1 -1
- package/dist/src/agent/session/index.d.ts +4 -0
- package/dist/src/agent/session/index.js +5 -1
- package/dist/src/agent/session/session-config-service.d.ts +68 -0
- package/dist/src/agent/session/session-config-service.js +172 -0
- package/dist/src/agent/session/session-config-service.js.map +1 -0
- package/dist/src/agent/session/session-context.d.ts +27 -19
- package/dist/src/agent/session/session-context.js +39 -24
- package/dist/src/agent/session/session-context.js.map +1 -1
- package/dist/src/agent/session/session-hydrator.d.ts +42 -0
- package/dist/src/agent/session/session-hydrator.js +66 -0
- package/dist/src/agent/session/session-hydrator.js.map +1 -0
- package/dist/src/agent/session/session-inspector.d.ts +80 -0
- package/dist/src/agent/session/session-inspector.js +119 -0
- package/dist/src/agent/session/session-inspector.js.map +1 -0
- package/dist/src/agent/session/session-state-bag.d.ts +83 -0
- package/dist/src/agent/session/session-state-bag.js +192 -0
- package/dist/src/agent/session/session-state-bag.js.map +1 -0
- package/dist/src/agent/skills/config.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 +2 -2
- package/dist/src/agent/skills/index.d.ts +0 -2
- package/dist/src/agent/skills/index.js +3 -5
- package/dist/src/agent/skills/index.js.map +1 -1
- package/dist/src/agent/skills/managed-store.js +1 -1
- package/dist/src/agent/skills/marketplace/adapters/clawhub/adapter.js +11 -6
- package/dist/src/agent/skills/marketplace/adapters/clawhub/adapter.js.map +1 -1
- package/dist/src/agent/skills/marketplace/adapters/skillhub/adapter.js +35 -7
- package/dist/src/agent/skills/marketplace/adapters/skillhub/adapter.js.map +1 -1
- package/dist/src/agent/skills/scanner.js +1 -1
- package/dist/src/agent/skills/skill-manage-ops.js +2 -2
- package/dist/src/agent/skills/skill-manager.js +1 -1
- package/dist/src/agent/tools/browser/tool/browser-use-tool.d.ts +7 -0
- package/dist/src/agent/tools/browser/tool/browser-use-tool.js +37 -0
- package/dist/src/agent/tools/browser/tool/browser-use-tool.js.map +1 -1
- package/dist/src/agent/tools/delegate-tool.d.ts +7 -0
- package/dist/src/agent/tools/delegate-tool.js +2 -1
- package/dist/src/agent/tools/delegate-tool.js.map +1 -1
- package/dist/src/agent/tools/dreaming-tool.js +1 -1
- package/dist/src/agent/tools/executor.d.ts +34 -15
- package/dist/src/agent/tools/executor.js +44 -79
- package/dist/src/agent/tools/executor.js.map +1 -1
- package/dist/src/agent/tools/factory.d.ts +6 -0
- package/dist/src/agent/tools/factory.js +63 -4
- package/dist/src/agent/tools/factory.js.map +1 -1
- package/dist/src/agent/tools/image-generate-tool.js +1 -1
- package/dist/src/agent/tools/send-media.js +1 -1
- package/dist/src/agent/tools/skill-manage-tool.js +1 -1
- package/dist/src/agent/tools/skills-tools.js +1 -1
- package/dist/src/agent/tools/tts-tool.js +1 -1
- package/dist/src/agent/tools/write.js +1 -1
- package/dist/src/agent/workspace-runtime/registry.d.ts +48 -0
- package/dist/src/agent/workspace-runtime/registry.js +59 -0
- package/dist/src/agent/workspace-runtime/registry.js.map +1 -0
- package/dist/src/auth/credentials.js +3 -3
- package/dist/src/auth/profiles/store.js +1 -1
- package/dist/src/auth/sync-provider-auth.js +1 -1
- package/dist/src/browser/cdp-local-launcher.js +4 -3
- package/dist/src/browser/cdp-local-launcher.js.map +1 -1
- package/dist/src/browser/index.d.ts +1 -0
- package/dist/src/browser/index.js +2 -1
- package/dist/src/browser/manager.js +3 -2
- package/dist/src/browser/manager.js.map +1 -1
- package/dist/src/browser/providers/browser-ext-install.js +4 -4
- package/dist/src/browser/providers/browser-use.js +2 -1
- package/dist/src/browser/providers/browser-use.js.map +1 -1
- package/dist/src/browser/providers/browserbase.js +2 -1
- package/dist/src/browser/providers/browserbase.js.map +1 -1
- package/dist/src/browser/providers/cloakbrowser.js +7 -6
- package/dist/src/browser/providers/cloakbrowser.js.map +1 -1
- package/dist/src/browser/providers/playwright-doctor.d.ts +2 -0
- package/dist/src/browser/providers/playwright-doctor.js +7 -3
- package/dist/src/browser/providers/playwright-doctor.js.map +1 -1
- package/dist/src/browser/readiness.d.ts +33 -0
- package/dist/src/browser/readiness.js +138 -0
- package/dist/src/browser/readiness.js.map +1 -0
- package/dist/src/browser/stealth.js +2 -2
- package/dist/src/channels/attachments/inbound-persist.js +1 -1
- package/dist/src/channels/attachments/outbound-tts-persist.js +1 -1
- package/dist/src/channels/channel-domain.d.ts +1 -1
- package/dist/src/channels/config-helpers.d.ts +1 -1
- package/dist/src/channels/config-helpers.js.map +1 -1
- package/dist/src/channels/heartbeat-scheduler.d.ts +40 -0
- package/dist/src/channels/heartbeat-scheduler.js +94 -0
- package/dist/src/channels/heartbeat-scheduler.js.map +1 -0
- package/dist/src/channels/lifecycle-supervisor.d.ts +81 -0
- package/dist/src/channels/lifecycle-supervisor.js +263 -0
- package/dist/src/channels/lifecycle-supervisor.js.map +1 -0
- package/dist/src/channels/manager.d.ts +34 -68
- package/dist/src/channels/manager.js +107 -477
- package/dist/src/channels/manager.js.map +1 -1
- package/dist/src/channels/outbound/deliver.d.ts +1 -1
- package/dist/src/channels/outbound/deliver.js.map +1 -1
- package/dist/src/channels/outbound/persist-store.js +1 -1
- package/dist/src/channels/outbound-sender.d.ts +51 -0
- package/dist/src/channels/outbound-sender.js +125 -0
- package/dist/src/channels/outbound-sender.js.map +1 -0
- package/dist/src/channels/pairing/allow-from-file.js +1 -1
- package/dist/src/channels/pairing/pairing-service.d.ts +3 -10
- package/dist/src/channels/pairing/pairing-service.js.map +1 -1
- package/dist/src/channels/pairing/pairing-store.js +2 -2
- package/dist/src/channels/pairing/pairing-types.d.ts +15 -0
- package/dist/src/channels/pairing/pairing-types.js +1 -0
- package/dist/src/channels/plugin-registry.d.ts +22 -0
- package/dist/src/channels/plugin-registry.js +44 -0
- package/dist/src/channels/plugin-registry.js.map +1 -0
- package/dist/src/channels/plugin-types.d.ts +1 -1
- package/dist/src/channels/plugins/types.adapters.d.ts +2 -2
- package/dist/src/channels/security-helpers.d.ts +1 -1
- package/dist/src/channels/security-helpers.js.map +1 -1
- package/dist/src/channels/setup-wizard.d.ts +1 -1
- package/dist/src/chat-commands/builtins/config.js +2 -2
- package/dist/src/chat-commands/context.js +1 -1
- package/dist/src/cli/commands/agent/stream-renderer.js +1 -1
- package/dist/src/cli/commands/agent/stream-renderer.js.map +1 -1
- package/dist/src/cli/commands/agent.js +4 -4
- package/dist/src/cli/commands/agent.js.map +1 -1
- package/dist/src/cli/commands/browser-cli-helpers.js +2 -1
- package/dist/src/cli/commands/browser-cli-helpers.js.map +1 -1
- package/dist/src/cli/commands/doctor/checks/config-health.js +1 -1
- package/dist/src/cli/commands/doctor/checks/provider-auth.js +1 -1
- package/dist/src/cli/commands/doctor/checks/session-integrity.js +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-dev.js +2 -2
- package/dist/src/cli/commands/extension-dev.js.map +1 -1
- package/dist/src/cli/commands/extension-marketplace.js +2 -2
- package/dist/src/cli/commands/extension-marketplace.js.map +1 -1
- package/dist/src/cli/commands/extension-pack.js +1 -1
- package/dist/src/cli/commands/gateway/call.js +1 -1
- package/dist/src/cli/commands/gateway/call.js.map +1 -1
- package/dist/src/cli/commands/gateway/health.js +1 -1
- package/dist/src/cli/commands/gateway/health.js.map +1 -1
- package/dist/src/cli/commands/gateway/lifecycle-core.d.ts +31 -12
- package/dist/src/cli/commands/gateway/lifecycle-core.js +167 -116
- package/dist/src/cli/commands/gateway/lifecycle-core.js.map +1 -1
- package/dist/src/cli/commands/gateway/lifecycle.d.ts +11 -0
- package/dist/src/cli/commands/gateway/lifecycle.js +102 -0
- package/dist/src/cli/commands/gateway/lifecycle.js.map +1 -0
- package/dist/src/cli/commands/gateway/logs.js +1 -1
- package/dist/src/cli/commands/gateway/logs.js.map +1 -1
- package/dist/src/cli/commands/gateway/probe.js +1 -1
- package/dist/src/cli/commands/gateway/probe.js.map +1 -1
- package/dist/src/cli/commands/gateway/restart-health.d.ts +12 -0
- package/dist/src/cli/commands/gateway/restart-health.js +45 -1
- package/dist/src/cli/commands/gateway/restart-health.js.map +1 -1
- package/dist/src/cli/commands/gateway/restart.js +3 -3
- package/dist/src/cli/commands/gateway/restart.js.map +1 -1
- package/dist/src/cli/commands/gateway/run-foreground.d.ts +0 -1
- package/dist/src/cli/commands/gateway/run-foreground.js +0 -35
- package/dist/src/cli/commands/gateway/run-foreground.js.map +1 -1
- package/dist/src/cli/commands/gateway/service.js +1 -1
- package/dist/src/cli/commands/gateway/service.js.map +1 -1
- package/dist/src/cli/commands/gateway/shared.d.ts +3 -0
- package/dist/src/cli/commands/gateway/shared.js +54 -0
- package/dist/src/cli/commands/gateway/shared.js.map +1 -0
- package/dist/src/cli/commands/gateway/status.js +1 -1
- package/dist/src/cli/commands/gateway/status.js.map +1 -1
- package/dist/src/cli/commands/gateway/stop.js +2 -2
- package/dist/src/cli/commands/gateway/stop.js.map +1 -1
- package/dist/src/cli/commands/gateway/token.js +1 -1
- package/dist/src/cli/commands/gateway/token.js.map +1 -1
- package/dist/src/cli/commands/gateway.js +5 -5
- package/dist/src/cli/commands/gateway.js.map +1 -1
- package/dist/src/cli/commands/image.js +2 -2
- package/dist/src/cli/commands/image.js.map +1 -1
- package/dist/src/cli/commands/init.js +4 -4
- package/dist/src/cli/commands/models.js +1 -1
- package/dist/src/cli/commands/models.js.map +1 -1
- package/dist/src/cli/commands/onboard/gateway.d.ts +0 -8
- package/dist/src/cli/commands/onboard/gateway.js +48 -49
- package/dist/src/cli/commands/onboard/gateway.js.map +1 -1
- package/dist/src/cli/commands/onboard.js +9 -64
- package/dist/src/cli/commands/onboard.js.map +1 -1
- package/dist/src/cli/commands/session/utils.js +1 -1
- package/dist/src/cli/commands/session/utils.js.map +1 -1
- package/dist/src/cli/commands/skills.js +1 -1
- package/dist/src/cli/commands/tailscale.js +1 -1
- package/dist/src/cli/commands/tailscale.js.map +1 -1
- package/dist/src/cli/context.d.ts +20 -0
- package/dist/src/cli/context.js +23 -0
- package/dist/src/cli/context.js.map +1 -0
- package/dist/src/cli/extension-cli-register.js +3 -3
- package/dist/src/cli/gateway-run-argv.js +1 -4
- package/dist/src/cli/gateway-run-argv.js.map +1 -1
- package/dist/src/cli/gateway-run-fast-path.js +1 -1
- package/dist/src/cli/gateway-run-fast-path.js.map +1 -1
- package/dist/src/cli/index.d.ts +1 -7
- package/dist/src/cli/index.js +4 -6
- package/dist/src/cli/index.js.map +1 -1
- package/dist/src/cli/utils/init-workspace-core.js +2 -2
- package/dist/src/config/commands.flags.d.ts +3 -0
- package/dist/src/config/commands.flags.js +11 -0
- package/dist/src/config/commands.flags.js.map +1 -0
- package/dist/src/config/index.d.ts +1 -0
- package/dist/src/config/index.js +6 -5
- package/dist/src/config/index.js.map +1 -1
- package/dist/src/config/loader.js +2 -2
- package/dist/src/config/models-json.js +2 -2
- package/dist/src/config/profile.js +2 -2
- package/dist/src/config/schema.d.ts +11 -4
- package/dist/src/config/schema.js +13 -12
- package/dist/src/config/schema.js.map +1 -1
- package/dist/src/config/workspace-path-helpers.d.ts +15 -0
- package/dist/src/config/workspace-path-helpers.js +14 -0
- package/dist/src/config/workspace-path-helpers.js.map +1 -0
- package/dist/src/cron/executor.js +4 -4
- package/dist/src/cron/executor.js.map +1 -1
- package/dist/src/cron/persistence.js +1 -1
- package/dist/src/cron/run-log-store.js +1 -1
- package/dist/src/daemon/index.d.ts +0 -1
- package/dist/src/daemon/index.js +1 -2
- package/dist/src/daemon/install-plan.js +3 -2
- package/dist/src/daemon/install-plan.js.map +1 -1
- package/dist/src/daemon/launchd.js +2 -2
- package/dist/src/daemon/systemd.js +2 -2
- package/dist/src/daemon/types.d.ts +0 -6
- package/dist/src/extensions/api.d.ts +1 -1
- package/dist/src/extensions/api.js +2 -2
- package/dist/src/extensions/api.js.map +1 -1
- package/dist/src/extensions/bundle-mcp.js +1 -1
- package/dist/src/extensions/discover-extensions.js +1 -1
- package/dist/src/extensions/extension-registry-impl.d.ts +51 -0
- package/dist/src/extensions/extension-registry-impl.js +117 -0
- package/dist/src/extensions/extension-registry-impl.js.map +1 -0
- package/dist/src/extensions/health.js +1 -1
- package/dist/src/extensions/index.js +3 -2
- package/dist/src/extensions/loader.d.ts +3 -43
- package/dist/src/extensions/loader.js +3 -110
- package/dist/src/extensions/loader.js.map +1 -1
- package/dist/src/extensions/lockfile.js +2 -2
- package/dist/src/extensions/sdk/index.js +2 -1
- package/dist/src/extensions/sdk/index.js.map +1 -1
- package/dist/src/extensions/types/events.d.ts +7 -1
- package/dist/src/gateway/agents-admin.js +2 -2
- package/dist/src/gateway/file-path-classifier.js +2 -2
- package/dist/src/gateway/heartbeat/service.js +2 -2
- package/dist/src/gateway/heartbeat/service.js.map +1 -1
- package/dist/src/gateway/hono/app.js +5 -53
- package/dist/src/gateway/hono/app.js.map +1 -1
- package/dist/src/gateway/hono/lib/extension-store.js +1 -1
- package/dist/src/gateway/hono/lib/static-ui.js +2 -2
- package/dist/src/gateway/hono/middleware/auth.d.ts +5 -14
- package/dist/src/gateway/hono/middleware/auth.js +89 -126
- package/dist/src/gateway/hono/middleware/auth.js.map +1 -1
- package/dist/src/gateway/hono/middleware/logger.js +1 -1
- package/dist/src/gateway/hono/middleware/logger.js.map +1 -1
- package/dist/src/gateway/hono/middleware/strict-rate-limit.d.ts +14 -0
- package/dist/src/gateway/hono/middleware/strict-rate-limit.js +62 -0
- package/dist/src/gateway/hono/middleware/strict-rate-limit.js.map +1 -0
- package/dist/src/gateway/hono/oauth.js +1 -1
- package/dist/src/gateway/hono/routes/auth-registry-extensions.js +4 -4
- package/dist/src/gateway/hono/routes/auth-registry-extensions.js.map +1 -1
- package/dist/src/gateway/hono/routes/browser.d.ts +20 -0
- package/dist/src/gateway/hono/routes/browser.js +626 -0
- package/dist/src/gateway/hono/routes/browser.js.map +1 -0
- package/dist/src/gateway/hono/routes/commands-skills.js +13 -13
- package/dist/src/gateway/hono/routes/commands-skills.js.map +1 -1
- package/dist/src/gateway/hono/routes/config-patch/agents.d.ts +18 -0
- package/dist/src/gateway/hono/routes/config-patch/agents.js +418 -0
- package/dist/src/gateway/hono/routes/config-patch/agents.js.map +1 -0
- package/dist/src/gateway/hono/routes/config-patch/channels.d.ts +12 -0
- package/dist/src/gateway/hono/routes/config-patch/channels.js +186 -0
- package/dist/src/gateway/hono/routes/config-patch/channels.js.map +1 -0
- package/dist/src/gateway/hono/routes/config-patch/gateway.d.ts +18 -0
- package/dist/src/gateway/hono/routes/config-patch/gateway.js +264 -0
- package/dist/src/gateway/hono/routes/config-patch/gateway.js.map +1 -0
- package/dist/src/gateway/hono/routes/config-patch/index.d.ts +9 -0
- package/dist/src/gateway/hono/routes/config-patch/index.js +6 -0
- package/dist/src/gateway/hono/routes/config-patch/misc.d.ts +23 -0
- package/dist/src/gateway/hono/routes/config-patch/misc.js +139 -0
- package/dist/src/gateway/hono/routes/config-patch/misc.js.map +1 -0
- package/dist/src/gateway/hono/routes/config-patch/result.d.ts +18 -0
- package/dist/src/gateway/hono/routes/config-patch/result.js +13 -0
- package/dist/src/gateway/hono/routes/config-patch/result.js.map +1 -0
- package/dist/src/gateway/hono/routes/config.js +20 -1764
- package/dist/src/gateway/hono/routes/config.js.map +1 -1
- package/dist/src/gateway/hono/routes/dreaming.js +2 -3
- package/dist/src/gateway/hono/routes/dreaming.js.map +1 -1
- package/dist/src/gateway/hono/routes/host-fs.js +1 -1
- package/dist/src/gateway/hono/routes/lazy-bundles.js +10 -5
- package/dist/src/gateway/hono/routes/lazy-bundles.js.map +1 -1
- package/dist/src/gateway/hono/routes/mcp.js +1 -2
- package/dist/src/gateway/hono/routes/mcp.js.map +1 -1
- package/dist/src/gateway/hono/routes/models.js +1 -1
- package/dist/src/gateway/hono/routes/sessions.js +32 -32
- package/dist/src/gateway/hono/routes/sessions.js.map +1 -1
- package/dist/src/gateway/hono/routes/shares.js +4 -4
- package/dist/src/gateway/hono/routes/shares.js.map +1 -1
- package/dist/src/gateway/hono/routes/tunnel.js +1 -1
- package/dist/src/gateway/hono/routes/tunnel.js.map +1 -1
- package/dist/src/gateway/hono/routes/workspace.js +6 -7
- package/dist/src/gateway/hono/routes/workspace.js.map +1 -1
- package/dist/src/gateway/hono/sse.js +2 -2
- package/dist/src/gateway/index.d.ts +1 -1
- package/dist/src/gateway/index.js +4 -2
- package/dist/src/gateway/lock.js +3 -3
- package/dist/src/gateway/rate-limit/auth-policy.d.ts +34 -0
- package/dist/src/gateway/rate-limit/auth-policy.js +49 -0
- package/dist/src/gateway/rate-limit/auth-policy.js.map +1 -0
- package/dist/src/gateway/rate-limit/buckets.d.ts +63 -0
- package/dist/src/gateway/rate-limit/buckets.js +143 -0
- package/dist/src/gateway/rate-limit/buckets.js.map +1 -0
- package/dist/src/gateway/rate-limit/env-flags.d.ts +13 -0
- package/dist/src/gateway/rate-limit/env-flags.js +16 -0
- package/dist/src/gateway/rate-limit/env-flags.js.map +1 -0
- package/dist/src/gateway/rate-limit/index.d.ts +3 -0
- package/dist/src/gateway/rate-limit/index.js +4 -0
- package/dist/src/gateway/run-loop.d.ts +1 -1
- package/dist/src/gateway/run-loop.js +24 -4
- package/dist/src/gateway/run-loop.js.map +1 -1
- package/dist/src/gateway/runtime-config.js +2 -1
- package/dist/src/gateway/runtime-config.js.map +1 -1
- package/dist/src/gateway/security/audit.js +2 -1
- package/dist/src/gateway/security/audit.js.map +1 -1
- package/dist/src/gateway/security/index.d.ts +0 -1
- package/dist/src/gateway/security/index.js +1 -2
- package/dist/src/gateway/security/loopback.d.ts +13 -0
- package/dist/src/gateway/security/loopback.js +45 -0
- package/dist/src/gateway/security/loopback.js.map +1 -0
- package/dist/src/gateway/service/agent-runner.d.ts +108 -0
- package/dist/src/gateway/service/agent-runner.js +184 -0
- package/dist/src/gateway/service/agent-runner.js.map +1 -0
- package/dist/src/gateway/service/config-coordinator.d.ts +119 -0
- package/dist/src/gateway/service/config-coordinator.js +351 -0
- package/dist/src/gateway/service/config-coordinator.js.map +1 -0
- package/dist/src/gateway/service/marketplace-service.d.ts +85 -0
- package/dist/src/gateway/service/marketplace-service.js +239 -0
- package/dist/src/gateway/service/marketplace-service.js.map +1 -0
- package/dist/src/gateway/service/run-gateway-agent.js +5 -5
- package/dist/src/gateway/service/run-gateway-agent.js.map +1 -1
- package/dist/src/gateway/service/sessions-api.d.ts +125 -0
- package/dist/src/gateway/service/sessions-api.js +135 -0
- package/dist/src/gateway/service/sessions-api.js.map +1 -0
- package/dist/src/gateway/service.d.ts +30 -360
- package/dist/src/gateway/service.js +121 -903
- package/dist/src/gateway/service.js.map +1 -1
- package/dist/src/gateway/workspace-fs-file-list.js +1 -1
- package/dist/src/gateway/workspace-heartbeat-path.js +1 -2
- package/dist/src/gateway/workspace-heartbeat-path.js.map +1 -1
- package/dist/src/heartbeat/index.js +1 -1
- package/dist/src/infra/gateway-process-argv.d.ts +4 -0
- package/dist/src/infra/gateway-process-argv.js +26 -0
- package/dist/src/infra/gateway-process-argv.js.map +1 -0
- package/dist/src/infra/gateway-processes.d.ts +5 -0
- package/dist/src/infra/gateway-processes.js +65 -0
- package/dist/src/infra/gateway-processes.js.map +1 -0
- package/dist/src/infra/rate-limit/failure-limiter.d.ts +50 -0
- package/dist/src/infra/rate-limit/failure-limiter.js +100 -0
- package/dist/src/infra/rate-limit/failure-limiter.js.map +1 -0
- package/dist/src/infra/rate-limit/index.d.ts +5 -0
- package/dist/src/infra/rate-limit/index.js +3 -0
- package/dist/src/infra/rate-limit/keyed-store.d.ts +34 -0
- package/dist/src/infra/rate-limit/keyed-store.js +44 -0
- package/dist/src/infra/rate-limit/keyed-store.js.map +1 -0
- package/dist/src/infra/rate-limit/rate-limiter.d.ts +39 -0
- package/dist/src/infra/rate-limit/rate-limiter.js +65 -0
- package/dist/src/infra/rate-limit/rate-limiter.js.map +1 -0
- package/dist/src/infra/restart.d.ts +21 -0
- package/dist/src/infra/restart.js +122 -0
- package/dist/src/infra/restart.js.map +1 -0
- package/dist/src/infra/update-check.js +1 -1
- package/dist/src/infra/update-lock.js +3 -3
- package/dist/src/infra/update-runner.js +1 -1
- package/dist/src/infra/update-startup.js +2 -2
- package/dist/src/infra/write-file-atomic.js +2 -2
- package/dist/src/mcp/channel-bridge.d.ts +0 -6
- package/dist/src/mcp/channel-bridge.js +1 -5
- package/dist/src/mcp/channel-bridge.js.map +1 -1
- package/dist/src/media-shared/http/ssrf-guard.js +1 -1
- package/dist/src/providers/auth-runtime/auth-profile-store.js +1 -1
- package/dist/src/providers/index.js +2 -2
- package/dist/src/providers/model-registry.js +1 -1
- package/dist/src/session/config-store.js +2 -2
- package/dist/src/session/parity/jsonl-transcript-io.js +2 -2
- package/dist/src/session/parity/sessions-json-file-read.d.ts +2 -1
- package/dist/src/session/parity/sessions-json-file-read.js.map +1 -1
- package/dist/src/session/parity/sessions-json-file.js +1 -1
- package/dist/src/session/parity/transcript-file-lock.js +2 -2
- package/dist/src/session/parity/transcript-paths.js +1 -1
- package/dist/src/session/search-index-cache.js +1 -1
- package/dist/src/session/search-index.js +1 -1
- package/dist/src/session/session-title.js +1 -1
- package/dist/src/session/store.js +5 -5
- package/dist/src/share/share-rate-limit.d.ts +10 -2
- package/dist/src/share/share-rate-limit.js +33 -42
- package/dist/src/share/share-rate-limit.js.map +1 -1
- package/dist/src/share/share-store.js +3 -3
- package/dist/src/tui/backends/embedded-backend.js +16 -12
- package/dist/src/tui/backends/embedded-backend.js.map +1 -1
- package/dist/src/tui/clipboard-image.js +2 -2
- package/dist/src/tui/extension-host/load-extensions.js +1 -1
- package/dist/src/tui/format-tui-hotkeys.js +1 -1
- package/dist/src/tui/theme-manager.js +1 -1
- package/dist/src/tui/tui-keybindings-file.js +1 -1
- package/dist/src/tui/tui-scoped-models.js +1 -1
- package/dist/src/tui/tui-settings.js +1 -1
- package/dist/src/tui/tui-skills-autocomplete.js +1 -1
- package/dist/src/tui/tui.js +1 -2
- package/dist/src/tui/tui.js.map +1 -1
- package/dist/src/tui/xopc-tui-keybindings.d.ts +0 -1
- package/dist/src/tui/xopc-tui-keybindings.js +1 -2
- package/dist/src/tui/xopc-tui-keybindings.js.map +1 -1
- package/dist/src/tunnel/frpc-binary.js +2 -2
- package/dist/src/tunnel/frpc-config.js +1 -1
- package/dist/src/tunnel/frpc-extract.js +1 -1
- package/dist/src/tunnel/pairing-rate-limit.d.ts +10 -2
- package/dist/src/tunnel/pairing-rate-limit.js +19 -15
- package/dist/src/tunnel/pairing-rate-limit.js.map +1 -1
- package/dist/src/tunnel/tunnel-rate-limit.d.ts +6 -3
- package/dist/src/tunnel/tunnel-rate-limit.js +11 -22
- package/dist/src/tunnel/tunnel-rate-limit.js.map +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/stats.d.ts +1 -1
- package/dist/src/voice/tts/audio.js +1 -1
- package/dist/src/voice/tts/factory.js +1 -1
- package/dist/src/voice/tts/index.js +2 -2
- package/dist/src/voice/tts/merge-config.js +1 -1
- package/dist/src/voice/tts/providers/edge-speech.js +1 -1
- package/dist/src/voice/tts/service.js +1 -1
- package/dist/src/voice/tts/service.js.map +1 -1
- package/dist/src/voice/tts/speak-core.js +1 -1
- package/package.json +10 -5
- package/dist/gateway/static/root/assets/agents-Cqh1ts38.js +0 -222
- package/dist/gateway/static/root/assets/channels-settings-wTiWStg9.js +0 -1
- package/dist/gateway/static/root/assets/fetch-BAAh_kXG.js +0 -3
- package/dist/gateway/static/root/assets/index-C8yHX-AA.css +0 -1
- package/dist/gateway/static/root/assets/sessions-page-BeiFm0Ms.js +0 -1
- package/dist/gateway/static/root/assets/settings-page-RPAz_Wg_.js +0 -3
- package/dist/gateway/static/root/assets/skills-page-Wu4aNWDx.js +0 -2
- package/dist/gateway/static/root/assets/voice-api-key-field-BxIGhhEL.js +0 -1
- package/dist/src/agent/embedded/session-raw-append-message.d.ts +0 -11
- package/dist/src/agent/embedded/session-raw-append-message.js +0 -15
- package/dist/src/agent/embedded/session-raw-append-message.js.map +0 -1
- package/dist/src/agent/embedded/session-tool-result-guard-wrapper.d.ts +0 -15
- package/dist/src/agent/embedded/session-tool-result-guard-wrapper.js +0 -24
- package/dist/src/agent/embedded/session-tool-result-guard-wrapper.js.map +0 -1
- package/dist/src/agent/embedded/session-tool-result-state.d.ts +0 -17
- package/dist/src/agent/embedded/session-tool-result-state.js +0 -26
- package/dist/src/agent/embedded/session-tool-result-state.js.map +0 -1
- package/dist/src/daemon/launchd-restart-handoff.d.ts +0 -25
- package/dist/src/daemon/launchd-restart-handoff.js +0 -132
- package/dist/src/daemon/launchd-restart-handoff.js.map +0 -1
- package/dist/src/gateway/auth-rate-limit.d.ts +0 -71
- package/dist/src/gateway/auth-rate-limit.js +0 -192
- package/dist/src/gateway/auth-rate-limit.js.map +0 -1
- package/dist/src/gateway/restart-handler.d.ts +0 -14
- package/dist/src/gateway/restart-handler.js +0 -64
- package/dist/src/gateway/restart-handler.js.map +0 -1
- package/dist/src/gateway/security/flood-guard.d.ts +0 -28
- package/dist/src/gateway/security/flood-guard.js +0 -42
- package/dist/src/gateway/security/flood-guard.js.map +0 -1
- package/dist/src/infra/rate-limit.d.ts +0 -38
- package/dist/src/infra/rate-limit.js +0 -60
- package/dist/src/infra/rate-limit.js.map +0 -1
- package/dist/src/infra/restart-intent.d.ts +0 -13
- package/dist/src/infra/restart-intent.js +0 -40
- package/dist/src/infra/restart-intent.js.map +0 -1
- package/dist/src/infra/restart-sentinel.d.ts +0 -23
- package/dist/src/infra/restart-sentinel.js +0 -75
- package/dist/src/infra/restart-sentinel.js.map +0 -1
- package/skills/creative/canvas-design/LICENSE.txt +0 -202
- package/skills/creative/canvas-design/SKILL-zh.md +0 -130
- package/skills/creative/canvas-design/SKILL.md +0 -130
- package/skills/creative/canvas-design/canvas-fonts/ArsenalSC-OFL.txt +0 -93
- package/skills/creative/canvas-design/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
- package/skills/creative/canvas-design/canvas-fonts/BigShoulders-Bold.ttf +0 -0
- package/skills/creative/canvas-design/canvas-fonts/BigShoulders-OFL.txt +0 -93
- package/skills/creative/canvas-design/canvas-fonts/BigShoulders-Regular.ttf +0 -0
- package/skills/creative/canvas-design/canvas-fonts/Boldonse-OFL.txt +0 -93
- package/skills/creative/canvas-design/canvas-fonts/Boldonse-Regular.ttf +0 -0
- package/skills/creative/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
- package/skills/creative/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt +0 -93
- package/skills/creative/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
- package/skills/creative/canvas-design/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
- package/skills/creative/canvas-design/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
- package/skills/creative/canvas-design/canvas-fonts/CrimsonPro-OFL.txt +0 -93
- package/skills/creative/canvas-design/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
- package/skills/creative/canvas-design/canvas-fonts/DMMono-OFL.txt +0 -93
- package/skills/creative/canvas-design/canvas-fonts/DMMono-Regular.ttf +0 -0
- package/skills/creative/canvas-design/canvas-fonts/EricaOne-OFL.txt +0 -94
- package/skills/creative/canvas-design/canvas-fonts/EricaOne-Regular.ttf +0 -0
- package/skills/creative/canvas-design/canvas-fonts/GeistMono-Bold.ttf +0 -0
- package/skills/creative/canvas-design/canvas-fonts/GeistMono-OFL.txt +0 -93
- package/skills/creative/canvas-design/canvas-fonts/GeistMono-Regular.ttf +0 -0
- package/skills/creative/canvas-design/canvas-fonts/Gloock-OFL.txt +0 -93
- package/skills/creative/canvas-design/canvas-fonts/Gloock-Regular.ttf +0 -0
- package/skills/creative/canvas-design/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
- package/skills/creative/canvas-design/canvas-fonts/IBMPlexMono-OFL.txt +0 -93
- package/skills/creative/canvas-design/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
- package/skills/creative/canvas-design/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
- package/skills/creative/canvas-design/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
- package/skills/creative/canvas-design/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
- package/skills/creative/canvas-design/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
- package/skills/creative/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
- package/skills/creative/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
- package/skills/creative/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
- package/skills/creative/canvas-design/canvas-fonts/InstrumentSans-OFL.txt +0 -93
- package/skills/creative/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
- package/skills/creative/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
- package/skills/creative/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
- package/skills/creative/canvas-design/canvas-fonts/Italiana-OFL.txt +0 -93
- package/skills/creative/canvas-design/canvas-fonts/Italiana-Regular.ttf +0 -0
- package/skills/creative/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
- package/skills/creative/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt +0 -93
- package/skills/creative/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
- package/skills/creative/canvas-design/canvas-fonts/Jura-Light.ttf +0 -0
- package/skills/creative/canvas-design/canvas-fonts/Jura-Medium.ttf +0 -0
- package/skills/creative/canvas-design/canvas-fonts/Jura-OFL.txt +0 -93
- package/skills/creative/canvas-design/canvas-fonts/LibreBaskerville-OFL.txt +0 -93
- package/skills/creative/canvas-design/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
- package/skills/creative/canvas-design/canvas-fonts/Lora-Bold.ttf +0 -0
- package/skills/creative/canvas-design/canvas-fonts/Lora-BoldItalic.ttf +0 -0
- package/skills/creative/canvas-design/canvas-fonts/Lora-Italic.ttf +0 -0
- package/skills/creative/canvas-design/canvas-fonts/Lora-OFL.txt +0 -93
- package/skills/creative/canvas-design/canvas-fonts/Lora-Regular.ttf +0 -0
- package/skills/creative/canvas-design/canvas-fonts/NationalPark-Bold.ttf +0 -0
- package/skills/creative/canvas-design/canvas-fonts/NationalPark-OFL.txt +0 -93
- package/skills/creative/canvas-design/canvas-fonts/NationalPark-Regular.ttf +0 -0
- package/skills/creative/canvas-design/canvas-fonts/NothingYouCouldDo-OFL.txt +0 -93
- package/skills/creative/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
- package/skills/creative/canvas-design/canvas-fonts/Outfit-Bold.ttf +0 -0
- package/skills/creative/canvas-design/canvas-fonts/Outfit-OFL.txt +0 -93
- package/skills/creative/canvas-design/canvas-fonts/Outfit-Regular.ttf +0 -0
- package/skills/creative/canvas-design/canvas-fonts/PixelifySans-Medium.ttf +0 -0
- package/skills/creative/canvas-design/canvas-fonts/PixelifySans-OFL.txt +0 -93
- package/skills/creative/canvas-design/canvas-fonts/PoiretOne-OFL.txt +0 -93
- package/skills/creative/canvas-design/canvas-fonts/PoiretOne-Regular.ttf +0 -0
- package/skills/creative/canvas-design/canvas-fonts/RedHatMono-Bold.ttf +0 -0
- package/skills/creative/canvas-design/canvas-fonts/RedHatMono-OFL.txt +0 -93
- package/skills/creative/canvas-design/canvas-fonts/RedHatMono-Regular.ttf +0 -0
- package/skills/creative/canvas-design/canvas-fonts/Silkscreen-OFL.txt +0 -93
- package/skills/creative/canvas-design/canvas-fonts/Silkscreen-Regular.ttf +0 -0
- package/skills/creative/canvas-design/canvas-fonts/SmoochSans-Medium.ttf +0 -0
- package/skills/creative/canvas-design/canvas-fonts/SmoochSans-OFL.txt +0 -93
- package/skills/creative/canvas-design/canvas-fonts/Tektur-Medium.ttf +0 -0
- package/skills/creative/canvas-design/canvas-fonts/Tektur-OFL.txt +0 -93
- package/skills/creative/canvas-design/canvas-fonts/Tektur-Regular.ttf +0 -0
- package/skills/creative/canvas-design/canvas-fonts/WorkSans-Bold.ttf +0 -0
- package/skills/creative/canvas-design/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
- package/skills/creative/canvas-design/canvas-fonts/WorkSans-Italic.ttf +0 -0
- package/skills/creative/canvas-design/canvas-fonts/WorkSans-OFL.txt +0 -93
- package/skills/creative/canvas-design/canvas-fonts/WorkSans-Regular.ttf +0 -0
- package/skills/creative/canvas-design/canvas-fonts/YoungSerif-OFL.txt +0 -93
- package/skills/creative/canvas-design/canvas-fonts/YoungSerif-Regular.ttf +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-for-session.js","names":[],"sources":["../../../../src/agent/embedded/run-for-session.ts"],"sourcesContent":["import crypto from 'node:crypto';\nimport type { AgentMessage, ThinkingLevel } from '@earendil-works/pi-agent-core';\n\nimport type { Config } from '../../config/schema.js';\nimport type {
|
|
1
|
+
{"version":3,"file":"run-for-session.js","names":[],"sources":["../../../../src/agent/embedded/run-for-session.ts"],"sourcesContent":["import crypto from 'node:crypto';\nimport type { AgentMessage, ThinkingLevel } from '@earendil-works/pi-agent-core';\n\nimport type { Config } from '../../config/schema.js';\nimport type { AgentInstanceGateway } from '../agent-instance-gateway.js';\nimport type { ModelManager } from '../models/index.js';\nimport type { SessionStore } from '../../session/store.js';\nimport { resolveAgentTurnTimeoutMs } from '../orchestration/run-agent-turn-with-timeout.js';\nimport { runXopcEmbeddedTurn } from './run-turn.js';\nimport type { EmbeddedStreamEvent, RunXopcEmbeddedTurnParams, RunXopcEmbeddedTurnResult } from './types.js';\nimport { applyStartupContextToUserMessage } from '../reply/apply-turn-user-enrichment.js';\nimport {\n mergeTurnTools,\n resolveEmbeddedMcpToolsForTurn,\n} from '../mcp/resolve-embedded-mcp-tools.js';\nimport { createLogger } from '../../utils/logger.js';\n\nconst log = createLogger('EmbeddedTurnForSession');\n\nexport type RunEmbeddedForSessionParams = {\n sessionKey: string;\n runId?: string;\n userMessage: AgentMessage;\n sessionStore: SessionStore;\n agentManager: AgentInstanceGateway;\n modelManager: ModelManager;\n thinkingOverride?: string | null;\n abortSignal?: AbortSignal;\n onEvent?: (event: EmbeddedStreamEvent) => void;\n getConfig?: () => Config | undefined;\n beforeTurn?: () => void | Promise<void>;\n afterTurn?: (userPlain: string) => void | Promise<void>;\n startupAction?: 'new' | 'reset';\n forceStartupContext?: boolean;\n applyStartupContext?: boolean;\n /** When true, dispose session MCP runtime after this turn completes. */\n cleanupBundleMcpOnRunEnd?: boolean;\n};\n\nexport async function runEmbeddedTurnForSession(\n params: RunEmbeddedForSessionParams,\n): Promise<RunXopcEmbeddedTurnResult> {\n const { sessionKey, agentManager, modelManager, sessionStore, userMessage } = params;\n const runId = params.runId ?? crypto.randomUUID();\n\n await params.beforeTurn?.();\n\n const agent = (agentManager as any).getOrCreateAgent(sessionKey) as {\n state: {\n tools: RunXopcEmbeddedTurnParams['tools'];\n systemPrompt?: string;\n thinkingLevel?: ThinkingLevel;\n };\n };\n const mm = modelManager as any;\n await mm.applyModelForSession(agent, sessionKey);\n\n const modelRef = String(mm.getModelForSession(sessionKey));\n const model = mm.getResolvedModelForSession(sessionKey) as RunXopcEmbeddedTurnParams['model'];\n const tools = agent.state.tools;\n const systemPrompt = agent.state.systemPrompt ?? '';\n const thinkingLevel = (params.thinkingOverride as ThinkingLevel | undefined) ?? agent.state.thinkingLevel;\n const workspaceDir = agentManager.getResolvedWorkspaceForSession(sessionKey);\n const config = params.getConfig?.();\n\n // --- Pre-turn automatic compaction ---\n await maybeAutoCompactBeforeTurn({\n sessionKey,\n sessionStore,\n agentManager,\n model,\n config,\n onEvent: params.onEvent,\n });\n\n let userMessageForTurn = userMessage;\n if (params.applyStartupContext !== false) {\n userMessageForTurn = await applyStartupContextToUserMessage({\n userMessage,\n sessionKey,\n workspaceDir,\n cfg: config,\n sessionStore,\n startupAction: params.startupAction,\n force: params.forceStartupContext,\n });\n }\n\n const result = await (async () => {\n const mcpResolved = await resolveEmbeddedMcpToolsForTurn({\n sessionKey,\n workspaceDir,\n cfg: config,\n baseTools: tools,\n cleanupOnTurnEnd: params.cleanupBundleMcpOnRunEnd === true,\n });\n const turnTools = mergeTurnTools(tools, mcpResolved.tools);\n try {\n return await runXopcEmbeddedTurn({\n sessionKey,\n runId,\n userMessage: userMessageForTurn,\n model,\n modelRef,\n tools: turnTools,\n systemPrompt,\n thinkingLevel,\n workspaceDir,\n sessionStore,\n timeoutMs: resolveAgentTurnTimeoutMs(config),\n abortSignal: params.abortSignal,\n onEvent: params.onEvent,\n });\n } finally {\n await mcpResolved.dispose().catch(() => {});\n }\n })();\n\n return result;\n}\n\n// ---------------------------------------------------------------------------\n// Pre-turn automatic compaction\n// ---------------------------------------------------------------------------\n\nasync function maybeAutoCompactBeforeTurn(opts: {\n sessionKey: string;\n sessionStore: SessionStore;\n agentManager: AgentInstanceGateway;\n model: RunXopcEmbeddedTurnParams['model'];\n config: Config | undefined;\n onEvent?: (event: EmbeddedStreamEvent) => void;\n}): Promise<void> {\n const { sessionKey, sessionStore, agentManager, model, config, onEvent } = opts;\n\n // Respect the compaction.enabled flag\n const compactionConfig = config?.agents?.defaults?.compaction;\n if (compactionConfig?.enabled === false) {\n return;\n }\n\n const contextWindow = (model as { contextWindow?: number }).contextWindow ?? 128_000;\n const messages = await sessionStore.load(sessionKey);\n const prep = sessionStore.prepareCompaction(sessionKey, messages, contextWindow);\n\n if (!prep.needsCompaction) {\n return;\n }\n\n log.info(\n { sessionKey, reason: prep.stats?.reason, usagePercent: prep.stats?.usagePercent, contextWindow },\n 'Pre-turn auto-compaction triggered',\n );\n\n onEvent?.({\n type: 'compaction',\n status: 'started',\n tokensBefore: prep.stats?.usagePercent != null\n ? Math.round((prep.stats.usagePercent as number) * contextWindow)\n : undefined,\n });\n\n try {\n const result = await sessionStore.compact(sessionKey, messages, contextWindow);\n\n if (result.compacted) {\n // Evict the cached agent so the next turn reloads from the compacted transcript\n agentManager.removeAgent(sessionKey);\n\n log.info(\n { sessionKey, tokensBefore: result.tokensBefore, tokensAfter: result.tokensAfter },\n 'Pre-turn auto-compaction completed',\n );\n\n onEvent?.({\n type: 'compaction',\n status: 'completed',\n tokensBefore: result.tokensBefore,\n tokensAfter: result.tokensAfter,\n summary: result.summary.length > 200 ? `${result.summary.slice(0, 200)}…` : result.summary,\n });\n } else {\n onEvent?.({ type: 'compaction', status: 'skipped' });\n }\n } catch (err) {\n const errorMessage = err instanceof Error ? err.message : String(err);\n log.warn({ err, sessionKey }, `Pre-turn auto-compaction failed: ${errorMessage}`);\n // Non-fatal: let the turn proceed even if compaction fails\n onEvent?.({ type: 'compaction', status: 'skipped' });\n }\n}\n"],"mappings":";;;;;;;;aAeqD;AAErD,MAAM,MAAM,aAAa,yBAAyB;AAsBlD,eAAsB,0BACpB,QACoC;CACpC,MAAM,EAAE,YAAY,cAAc,cAAc,cAAc,gBAAgB;CAC9E,MAAM,QAAQ,OAAO,SAAS,OAAO,YAAY;AAEjD,OAAM,OAAO,cAAc;CAE3B,MAAM,QAAS,aAAqB,iBAAiB,WAAW;CAOhE,MAAM,KAAK;AACX,OAAM,GAAG,qBAAqB,OAAO,WAAW;CAEhD,MAAM,WAAW,OAAO,GAAG,mBAAmB,WAAW,CAAC;CAC1D,MAAM,QAAQ,GAAG,2BAA2B,WAAW;CACvD,MAAM,QAAQ,MAAM,MAAM;CAC1B,MAAM,eAAe,MAAM,MAAM,gBAAgB;CACjD,MAAM,gBAAiB,OAAO,oBAAkD,MAAM,MAAM;CAC5F,MAAM,eAAe,aAAa,+BAA+B,WAAW;CAC5E,MAAM,SAAS,OAAO,aAAa;AAGnC,OAAM,2BAA2B;EAC/B;EACA;EACA;EACA;EACA;EACA,SAAS,OAAO;EACjB,CAAC;CAEF,IAAI,qBAAqB;AACzB,KAAI,OAAO,wBAAwB,MACjC,sBAAqB,MAAM,iCAAiC;EAC1D;EACA;EACA;EACA,KAAK;EACL;EACA,eAAe,OAAO;EACtB,OAAO,OAAO;EACf,CAAC;AAiCJ,QAAO,OA9Be,YAAY;EAChC,MAAM,cAAc,MAAM,+BAA+B;GACvD;GACA;GACA,KAAK;GACL,WAAW;GACX,kBAAkB,OAAO,6BAA6B;GACvD,CAAC;EACF,MAAM,YAAY,eAAe,OAAO,YAAY,MAAM;AAC1D,MAAI;AACF,UAAO,MAAM,oBAAoB;IAC/B;IACA;IACA,aAAa;IACb;IACA;IACA,OAAO;IACP;IACA;IACA;IACA;IACA,WAAW,0BAA0B,OAAO;IAC5C,aAAa,OAAO;IACpB,SAAS,OAAO;IACjB,CAAC;YACM;AACR,SAAM,YAAY,SAAS,CAAC,YAAY,GAAG;;KAE3C;;AASN,eAAe,2BAA2B,MAOxB;CAChB,MAAM,EAAE,YAAY,cAAc,cAAc,OAAO,QAAQ,YAAY;AAI3E,MADyB,QAAQ,QAAQ,UAAU,aAC7B,YAAY,MAChC;CAGF,MAAM,gBAAiB,MAAqC,iBAAiB;CAC7E,MAAM,WAAW,MAAM,aAAa,KAAK,WAAW;CACpD,MAAM,OAAO,aAAa,kBAAkB,YAAY,UAAU,cAAc;AAEhF,KAAI,CAAC,KAAK,gBACR;AAGF,KAAI,KACF;EAAE;EAAY,QAAQ,KAAK,OAAO;EAAQ,cAAc,KAAK,OAAO;EAAc;EAAe,EACjG,qCACD;AAED,WAAU;EACR,MAAM;EACN,QAAQ;EACR,cAAc,KAAK,OAAO,gBAAgB,OACtC,KAAK,MAAO,KAAK,MAAM,eAA0B,cAAc,GAC/D,KAAA;EACL,CAAC;AAEF,KAAI;EACF,MAAM,SAAS,MAAM,aAAa,QAAQ,YAAY,UAAU,cAAc;AAE9E,MAAI,OAAO,WAAW;AAEpB,gBAAa,YAAY,WAAW;AAEpC,OAAI,KACF;IAAE;IAAY,cAAc,OAAO;IAAc,aAAa,OAAO;IAAa,EAClF,qCACD;AAED,aAAU;IACR,MAAM;IACN,QAAQ;IACR,cAAc,OAAO;IACrB,aAAa,OAAO;IACpB,SAAS,OAAO,QAAQ,SAAS,MAAM,GAAG,OAAO,QAAQ,MAAM,GAAG,IAAI,CAAC,KAAK,OAAO;IACpF,CAAC;QAEF,WAAU;GAAE,MAAM;GAAc,QAAQ;GAAW,CAAC;UAE/C,KAAK;EACZ,MAAM,eAAe,eAAe,QAAQ,IAAI,UAAU,OAAO,IAAI;AACrE,MAAI,KAAK;GAAE;GAAK;GAAY,EAAE,oCAAoC,eAAe;AAEjF,YAAU;GAAE,MAAM;GAAc,QAAQ;GAAW,CAAC"}
|
|
@@ -6,6 +6,38 @@ export type EmbeddedRunHandle = {
|
|
|
6
6
|
session: AgentSession;
|
|
7
7
|
abort: () => Promise<void>;
|
|
8
8
|
};
|
|
9
|
+
/**
|
|
10
|
+
* Tracks in-flight embedded agent turns so we can abort/steer them by sessionKey or runId.
|
|
11
|
+
*
|
|
12
|
+
* The previous implementation used two module-level Maps; this class is the supported
|
|
13
|
+
* single-instance state, while {@link defaultEmbeddedRunRegistry} preserves the previous
|
|
14
|
+
* free-function API for callers that have not yet been moved to dependency injection.
|
|
15
|
+
*/
|
|
16
|
+
export declare class EmbeddedRunRegistry {
|
|
17
|
+
private readonly bySessionKey;
|
|
18
|
+
private readonly byRunId;
|
|
19
|
+
/**
|
|
20
|
+
* Register a new in-flight run. If a run is already registered for the same
|
|
21
|
+
* sessionKey we drop the stale handle (the new run takes ownership). The caller
|
|
22
|
+
* is responsible for aborting the previous run before re-registering if needed —
|
|
23
|
+
* we warn loudly so this does not happen silently.
|
|
24
|
+
*/
|
|
25
|
+
register(handle: EmbeddedRunHandle): void;
|
|
26
|
+
unregister(handle: EmbeddedRunHandle): void;
|
|
27
|
+
getBySessionKey(sessionKey: string): EmbeddedRunHandle | undefined;
|
|
28
|
+
getByRunId(runId: string): EmbeddedRunHandle | undefined;
|
|
29
|
+
abortBySessionKey(sessionKey: string): Promise<boolean>;
|
|
30
|
+
steerBySessionKey(sessionKey: string, text: string): Promise<boolean>;
|
|
31
|
+
/** Test-only helper to drop all registrations without touching live sessions. */
|
|
32
|
+
resetForTest(): void;
|
|
33
|
+
size(): number;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Process-wide default registry. Prefer constructing a dedicated `EmbeddedRunRegistry`
|
|
37
|
+
* and injecting it; the module-level singleton stays so the existing free functions
|
|
38
|
+
* keep working until every caller has been migrated.
|
|
39
|
+
*/
|
|
40
|
+
export declare const defaultEmbeddedRunRegistry: EmbeddedRunRegistry;
|
|
9
41
|
export declare function registerEmbeddedRun(handle: EmbeddedRunHandle): void;
|
|
10
42
|
export declare function unregisterEmbeddedRun(handle: EmbeddedRunHandle): void;
|
|
11
43
|
export declare function getEmbeddedRunBySessionKey(sessionKey: string): EmbeddedRunHandle | undefined;
|
|
@@ -1,33 +1,93 @@
|
|
|
1
|
+
import { createLogger } from "../../utils/logger/index.js";
|
|
2
|
+
import { init_logger } from "../../utils/logger.js";
|
|
1
3
|
//#region src/agent/embedded/runs.ts
|
|
2
|
-
|
|
3
|
-
const
|
|
4
|
+
init_logger();
|
|
5
|
+
const log = createLogger("EmbeddedRunRegistry");
|
|
6
|
+
/**
|
|
7
|
+
* Tracks in-flight embedded agent turns so we can abort/steer them by sessionKey or runId.
|
|
8
|
+
*
|
|
9
|
+
* The previous implementation used two module-level Maps; this class is the supported
|
|
10
|
+
* single-instance state, while {@link defaultEmbeddedRunRegistry} preserves the previous
|
|
11
|
+
* free-function API for callers that have not yet been moved to dependency injection.
|
|
12
|
+
*/
|
|
13
|
+
var EmbeddedRunRegistry = class {
|
|
14
|
+
bySessionKey = /* @__PURE__ */ new Map();
|
|
15
|
+
byRunId = /* @__PURE__ */ new Map();
|
|
16
|
+
/**
|
|
17
|
+
* Register a new in-flight run. If a run is already registered for the same
|
|
18
|
+
* sessionKey we drop the stale handle (the new run takes ownership). The caller
|
|
19
|
+
* is responsible for aborting the previous run before re-registering if needed —
|
|
20
|
+
* we warn loudly so this does not happen silently.
|
|
21
|
+
*/
|
|
22
|
+
register(handle) {
|
|
23
|
+
const previous = this.bySessionKey.get(handle.sessionKey);
|
|
24
|
+
if (previous && previous !== handle) {
|
|
25
|
+
log.warn({
|
|
26
|
+
sessionKey: handle.sessionKey,
|
|
27
|
+
previousRunId: previous.runId,
|
|
28
|
+
newRunId: handle.runId
|
|
29
|
+
}, "Replacing already-registered embedded run for sessionKey (caller did not unregister first)");
|
|
30
|
+
this.byRunId.delete(previous.runId);
|
|
31
|
+
}
|
|
32
|
+
this.bySessionKey.set(handle.sessionKey, handle);
|
|
33
|
+
this.byRunId.set(handle.runId, handle);
|
|
34
|
+
}
|
|
35
|
+
unregister(handle) {
|
|
36
|
+
if (this.bySessionKey.get(handle.sessionKey) === handle) this.bySessionKey.delete(handle.sessionKey);
|
|
37
|
+
this.byRunId.delete(handle.runId);
|
|
38
|
+
}
|
|
39
|
+
getBySessionKey(sessionKey) {
|
|
40
|
+
return this.bySessionKey.get(sessionKey);
|
|
41
|
+
}
|
|
42
|
+
getByRunId(runId) {
|
|
43
|
+
return this.byRunId.get(runId);
|
|
44
|
+
}
|
|
45
|
+
async abortBySessionKey(sessionKey) {
|
|
46
|
+
const handle = this.bySessionKey.get(sessionKey);
|
|
47
|
+
if (!handle) return false;
|
|
48
|
+
await handle.abort();
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
51
|
+
async steerBySessionKey(sessionKey, text) {
|
|
52
|
+
const handle = this.bySessionKey.get(sessionKey);
|
|
53
|
+
if (!handle) return false;
|
|
54
|
+
await handle.session.steer(text);
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
/** Test-only helper to drop all registrations without touching live sessions. */
|
|
58
|
+
resetForTest() {
|
|
59
|
+
this.bySessionKey.clear();
|
|
60
|
+
this.byRunId.clear();
|
|
61
|
+
}
|
|
62
|
+
size() {
|
|
63
|
+
return this.bySessionKey.size;
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* Process-wide default registry. Prefer constructing a dedicated `EmbeddedRunRegistry`
|
|
68
|
+
* and injecting it; the module-level singleton stays so the existing free functions
|
|
69
|
+
* keep working until every caller has been migrated.
|
|
70
|
+
*/
|
|
71
|
+
const defaultEmbeddedRunRegistry = new EmbeddedRunRegistry();
|
|
4
72
|
function registerEmbeddedRun(handle) {
|
|
5
|
-
|
|
6
|
-
activeByRunId.set(handle.runId, handle);
|
|
73
|
+
defaultEmbeddedRunRegistry.register(handle);
|
|
7
74
|
}
|
|
8
75
|
function unregisterEmbeddedRun(handle) {
|
|
9
|
-
|
|
10
|
-
activeByRunId.delete(handle.runId);
|
|
76
|
+
defaultEmbeddedRunRegistry.unregister(handle);
|
|
11
77
|
}
|
|
12
78
|
function getEmbeddedRunBySessionKey(sessionKey) {
|
|
13
|
-
return
|
|
79
|
+
return defaultEmbeddedRunRegistry.getBySessionKey(sessionKey);
|
|
14
80
|
}
|
|
15
81
|
function getEmbeddedRunByRunId(runId) {
|
|
16
|
-
return
|
|
82
|
+
return defaultEmbeddedRunRegistry.getByRunId(runId);
|
|
17
83
|
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
if (!handle) return false;
|
|
21
|
-
await handle.abort();
|
|
22
|
-
return true;
|
|
84
|
+
function abortEmbeddedRun(sessionKey) {
|
|
85
|
+
return defaultEmbeddedRunRegistry.abortBySessionKey(sessionKey);
|
|
23
86
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
if (!handle) return false;
|
|
27
|
-
await handle.session.steer(text);
|
|
28
|
-
return true;
|
|
87
|
+
function queueEmbeddedSteer(sessionKey, text) {
|
|
88
|
+
return defaultEmbeddedRunRegistry.steerBySessionKey(sessionKey, text);
|
|
29
89
|
}
|
|
30
90
|
//#endregion
|
|
31
|
-
export { abortEmbeddedRun, getEmbeddedRunByRunId, getEmbeddedRunBySessionKey, queueEmbeddedSteer, registerEmbeddedRun, unregisterEmbeddedRun };
|
|
91
|
+
export { EmbeddedRunRegistry, abortEmbeddedRun, defaultEmbeddedRunRegistry, getEmbeddedRunByRunId, getEmbeddedRunBySessionKey, queueEmbeddedSteer, registerEmbeddedRun, unregisterEmbeddedRun };
|
|
32
92
|
|
|
33
93
|
//# sourceMappingURL=runs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runs.js","names":[],"sources":["../../../../src/agent/embedded/runs.ts"],"sourcesContent":["import type { AgentSession } from '@earendil-works/pi-coding-agent';\n\nexport type EmbeddedRunHandle = {\n sessionKey: string;\n sessionId: string;\n runId: string;\n session: AgentSession;\n abort: () => Promise<void>;\n};\n\
|
|
1
|
+
{"version":3,"file":"runs.js","names":[],"sources":["../../../../src/agent/embedded/runs.ts"],"sourcesContent":["import type { AgentSession } from '@earendil-works/pi-coding-agent';\n\nimport { createLogger } from '../../utils/logger.js';\n\nconst log = createLogger('EmbeddedRunRegistry');\n\nexport type EmbeddedRunHandle = {\n sessionKey: string;\n sessionId: string;\n runId: string;\n session: AgentSession;\n abort: () => Promise<void>;\n};\n\n/**\n * Tracks in-flight embedded agent turns so we can abort/steer them by sessionKey or runId.\n *\n * The previous implementation used two module-level Maps; this class is the supported\n * single-instance state, while {@link defaultEmbeddedRunRegistry} preserves the previous\n * free-function API for callers that have not yet been moved to dependency injection.\n */\nexport class EmbeddedRunRegistry {\n private readonly bySessionKey = new Map<string, EmbeddedRunHandle>();\n private readonly byRunId = new Map<string, EmbeddedRunHandle>();\n\n /**\n * Register a new in-flight run. If a run is already registered for the same\n * sessionKey we drop the stale handle (the new run takes ownership). The caller\n * is responsible for aborting the previous run before re-registering if needed —\n * we warn loudly so this does not happen silently.\n */\n register(handle: EmbeddedRunHandle): void {\n const previous = this.bySessionKey.get(handle.sessionKey);\n if (previous && previous !== handle) {\n log.warn(\n {\n sessionKey: handle.sessionKey,\n previousRunId: previous.runId,\n newRunId: handle.runId,\n },\n 'Replacing already-registered embedded run for sessionKey (caller did not unregister first)',\n );\n this.byRunId.delete(previous.runId);\n }\n this.bySessionKey.set(handle.sessionKey, handle);\n this.byRunId.set(handle.runId, handle);\n }\n\n unregister(handle: EmbeddedRunHandle): void {\n const current = this.bySessionKey.get(handle.sessionKey);\n if (current === handle) {\n this.bySessionKey.delete(handle.sessionKey);\n }\n this.byRunId.delete(handle.runId);\n }\n\n getBySessionKey(sessionKey: string): EmbeddedRunHandle | undefined {\n return this.bySessionKey.get(sessionKey);\n }\n\n getByRunId(runId: string): EmbeddedRunHandle | undefined {\n return this.byRunId.get(runId);\n }\n\n async abortBySessionKey(sessionKey: string): Promise<boolean> {\n const handle = this.bySessionKey.get(sessionKey);\n if (!handle) {\n return false;\n }\n await handle.abort();\n return true;\n }\n\n async steerBySessionKey(sessionKey: string, text: string): Promise<boolean> {\n const handle = this.bySessionKey.get(sessionKey);\n if (!handle) {\n return false;\n }\n await handle.session.steer(text);\n return true;\n }\n\n /** Test-only helper to drop all registrations without touching live sessions. */\n resetForTest(): void {\n this.bySessionKey.clear();\n this.byRunId.clear();\n }\n\n size(): number {\n return this.bySessionKey.size;\n }\n}\n\n/**\n * Process-wide default registry. Prefer constructing a dedicated `EmbeddedRunRegistry`\n * and injecting it; the module-level singleton stays so the existing free functions\n * keep working until every caller has been migrated.\n */\nexport const defaultEmbeddedRunRegistry = new EmbeddedRunRegistry();\n\nexport function registerEmbeddedRun(handle: EmbeddedRunHandle): void {\n defaultEmbeddedRunRegistry.register(handle);\n}\n\nexport function unregisterEmbeddedRun(handle: EmbeddedRunHandle): void {\n defaultEmbeddedRunRegistry.unregister(handle);\n}\n\nexport function getEmbeddedRunBySessionKey(sessionKey: string): EmbeddedRunHandle | undefined {\n return defaultEmbeddedRunRegistry.getBySessionKey(sessionKey);\n}\n\nexport function getEmbeddedRunByRunId(runId: string): EmbeddedRunHandle | undefined {\n return defaultEmbeddedRunRegistry.getByRunId(runId);\n}\n\nexport function abortEmbeddedRun(sessionKey: string): Promise<boolean> {\n return defaultEmbeddedRunRegistry.abortBySessionKey(sessionKey);\n}\n\nexport function queueEmbeddedSteer(sessionKey: string, text: string): Promise<boolean> {\n return defaultEmbeddedRunRegistry.steerBySessionKey(sessionKey, text);\n}\n"],"mappings":";;;aAEqD;AAErD,MAAM,MAAM,aAAa,sBAAsB;;;;;;;;AAiB/C,IAAa,sBAAb,MAAiC;CAC/B,+BAAgC,IAAI,KAAgC;CACpE,0BAA2B,IAAI,KAAgC;;;;;;;CAQ/D,SAAS,QAAiC;EACxC,MAAM,WAAW,KAAK,aAAa,IAAI,OAAO,WAAW;AACzD,MAAI,YAAY,aAAa,QAAQ;AACnC,OAAI,KACF;IACE,YAAY,OAAO;IACnB,eAAe,SAAS;IACxB,UAAU,OAAO;IAClB,EACD,6FACD;AACD,QAAK,QAAQ,OAAO,SAAS,MAAM;;AAErC,OAAK,aAAa,IAAI,OAAO,YAAY,OAAO;AAChD,OAAK,QAAQ,IAAI,OAAO,OAAO,OAAO;;CAGxC,WAAW,QAAiC;AAE1C,MADgB,KAAK,aAAa,IAAI,OAAO,WAClC,KAAK,OACd,MAAK,aAAa,OAAO,OAAO,WAAW;AAE7C,OAAK,QAAQ,OAAO,OAAO,MAAM;;CAGnC,gBAAgB,YAAmD;AACjE,SAAO,KAAK,aAAa,IAAI,WAAW;;CAG1C,WAAW,OAA8C;AACvD,SAAO,KAAK,QAAQ,IAAI,MAAM;;CAGhC,MAAM,kBAAkB,YAAsC;EAC5D,MAAM,SAAS,KAAK,aAAa,IAAI,WAAW;AAChD,MAAI,CAAC,OACH,QAAO;AAET,QAAM,OAAO,OAAO;AACpB,SAAO;;CAGT,MAAM,kBAAkB,YAAoB,MAAgC;EAC1E,MAAM,SAAS,KAAK,aAAa,IAAI,WAAW;AAChD,MAAI,CAAC,OACH,QAAO;AAET,QAAM,OAAO,QAAQ,MAAM,KAAK;AAChC,SAAO;;;CAIT,eAAqB;AACnB,OAAK,aAAa,OAAO;AACzB,OAAK,QAAQ,OAAO;;CAGtB,OAAe;AACb,SAAO,KAAK,aAAa;;;;;;;;AAS7B,MAAa,6BAA6B,IAAI,qBAAqB;AAEnE,SAAgB,oBAAoB,QAAiC;AACnE,4BAA2B,SAAS,OAAO;;AAG7C,SAAgB,sBAAsB,QAAiC;AACrE,4BAA2B,WAAW,OAAO;;AAG/C,SAAgB,2BAA2B,YAAmD;AAC5F,QAAO,2BAA2B,gBAAgB,WAAW;;AAG/D,SAAgB,sBAAsB,OAA8C;AAClF,QAAO,2BAA2B,WAAW,MAAM;;AAGrD,SAAgB,iBAAiB,YAAsC;AACrE,QAAO,2BAA2B,kBAAkB,WAAW;;AAGjE,SAAgB,mBAAmB,YAAoB,MAAgC;AACrF,QAAO,2BAA2B,kBAAkB,YAAY,KAAK"}
|
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tracks which session JSONL files we have already confirmed exist on disk so
|
|
3
|
+
* subsequent acquires can skip the open/close probe. The class is owned by the
|
|
4
|
+
* session runner pool; {@link defaultSessionManagerCache} keeps the free-function
|
|
5
|
+
* API working until every caller has been wired through dependency injection.
|
|
6
|
+
*/
|
|
7
|
+
export declare class SessionManagerCache {
|
|
8
|
+
private readonly seen;
|
|
9
|
+
prewarm(sessionFile: string): Promise<void>;
|
|
10
|
+
trackAccess(sessionFile: string): void;
|
|
11
|
+
has(sessionFile: string): boolean;
|
|
12
|
+
resetForTest(): void;
|
|
13
|
+
}
|
|
14
|
+
export declare const defaultSessionManagerCache: SessionManagerCache;
|
|
1
15
|
export declare function prewarmSessionFile(sessionFile: string): Promise<void>;
|
|
2
16
|
export declare function trackSessionManagerAccess(sessionFile: string): void;
|
|
3
17
|
export declare function isSessionManagerCached(sessionFile: string): boolean;
|
|
@@ -1,27 +1,48 @@
|
|
|
1
1
|
import fs from "node:fs/promises";
|
|
2
2
|
//#region src/agent/embedded/session-manager-cache.ts
|
|
3
3
|
const DEFAULT_TTL_MS = 3e4;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Tracks which session JSONL files we have already confirmed exist on disk so
|
|
6
|
+
* subsequent acquires can skip the open/close probe. The class is owned by the
|
|
7
|
+
* session runner pool; {@link defaultSessionManagerCache} keeps the free-function
|
|
8
|
+
* API working until every caller has been wired through dependency injection.
|
|
9
|
+
*/
|
|
10
|
+
var SessionManagerCache = class {
|
|
11
|
+
seen = /* @__PURE__ */ new Map();
|
|
12
|
+
async prewarm(sessionFile) {
|
|
13
|
+
if (this.seen.get(sessionFile) === true) return;
|
|
14
|
+
try {
|
|
15
|
+
await (await fs.open(sessionFile, "r")).close();
|
|
16
|
+
this.seen.set(sessionFile, true);
|
|
17
|
+
} catch {}
|
|
18
|
+
}
|
|
19
|
+
trackAccess(sessionFile) {
|
|
20
|
+
this.seen.set(sessionFile, true);
|
|
21
|
+
}
|
|
22
|
+
has(sessionFile) {
|
|
23
|
+
return this.seen.get(sessionFile) === true;
|
|
24
|
+
}
|
|
25
|
+
resetForTest() {
|
|
26
|
+
this.seen.clear();
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
const defaultSessionManagerCache = new SessionManagerCache();
|
|
30
|
+
function prewarmSessionFile(sessionFile) {
|
|
31
|
+
return defaultSessionManagerCache.prewarm(sessionFile);
|
|
11
32
|
}
|
|
12
33
|
function trackSessionManagerAccess(sessionFile) {
|
|
13
|
-
|
|
34
|
+
defaultSessionManagerCache.trackAccess(sessionFile);
|
|
14
35
|
}
|
|
15
36
|
function isSessionManagerCached(sessionFile) {
|
|
16
|
-
return
|
|
37
|
+
return defaultSessionManagerCache.has(sessionFile);
|
|
17
38
|
}
|
|
18
39
|
function resetSessionManagerCacheForTest() {
|
|
19
|
-
|
|
40
|
+
defaultSessionManagerCache.resetForTest();
|
|
20
41
|
}
|
|
21
42
|
function getSessionManagerCacheTtlMs() {
|
|
22
43
|
return DEFAULT_TTL_MS;
|
|
23
44
|
}
|
|
24
45
|
//#endregion
|
|
25
|
-
export { getSessionManagerCacheTtlMs, isSessionManagerCached, prewarmSessionFile, resetSessionManagerCacheForTest, trackSessionManagerAccess };
|
|
46
|
+
export { SessionManagerCache, defaultSessionManagerCache, getSessionManagerCacheTtlMs, isSessionManagerCached, prewarmSessionFile, resetSessionManagerCacheForTest, trackSessionManagerAccess };
|
|
26
47
|
|
|
27
48
|
//# sourceMappingURL=session-manager-cache.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-manager-cache.js","names":[],"sources":["../../../../src/agent/embedded/session-manager-cache.ts"],"sourcesContent":["import fs from 'node:fs/promises';\n\nconst DEFAULT_TTL_MS = 30_000;\n\
|
|
1
|
+
{"version":3,"file":"session-manager-cache.js","names":[],"sources":["../../../../src/agent/embedded/session-manager-cache.ts"],"sourcesContent":["import fs from 'node:fs/promises';\n\nconst DEFAULT_TTL_MS = 30_000;\n\n/**\n * Tracks which session JSONL files we have already confirmed exist on disk so\n * subsequent acquires can skip the open/close probe. The class is owned by the\n * session runner pool; {@link defaultSessionManagerCache} keeps the free-function\n * API working until every caller has been wired through dependency injection.\n */\nexport class SessionManagerCache {\n private readonly seen = new Map<string, boolean>();\n\n async prewarm(sessionFile: string): Promise<void> {\n if (this.seen.get(sessionFile) === true) {\n return;\n }\n try {\n const handle = await fs.open(sessionFile, 'r');\n await handle.close();\n this.seen.set(sessionFile, true);\n } catch {\n // File doesn't exist yet; SessionManager will create it\n }\n }\n\n trackAccess(sessionFile: string): void {\n this.seen.set(sessionFile, true);\n }\n\n has(sessionFile: string): boolean {\n return this.seen.get(sessionFile) === true;\n }\n\n resetForTest(): void {\n this.seen.clear();\n }\n}\n\nexport const defaultSessionManagerCache = new SessionManagerCache();\n\nexport function prewarmSessionFile(sessionFile: string): Promise<void> {\n return defaultSessionManagerCache.prewarm(sessionFile);\n}\n\nexport function trackSessionManagerAccess(sessionFile: string): void {\n defaultSessionManagerCache.trackAccess(sessionFile);\n}\n\nexport function isSessionManagerCached(sessionFile: string): boolean {\n return defaultSessionManagerCache.has(sessionFile);\n}\n\nexport function resetSessionManagerCacheForTest(): void {\n defaultSessionManagerCache.resetForTest();\n}\n\nexport function getSessionManagerCacheTtlMs(): number {\n return DEFAULT_TTL_MS;\n}\n"],"mappings":";;AAEA,MAAM,iBAAiB;;;;;;;AAQvB,IAAa,sBAAb,MAAiC;CAC/B,uBAAwB,IAAI,KAAsB;CAElD,MAAM,QAAQ,aAAoC;AAChD,MAAI,KAAK,KAAK,IAAI,YAAY,KAAK,KACjC;AAEF,MAAI;AAEF,UAAM,MADe,GAAG,KAAK,aAAa,IAAI,EACjC,OAAO;AACpB,QAAK,KAAK,IAAI,aAAa,KAAK;UAC1B;;CAKV,YAAY,aAA2B;AACrC,OAAK,KAAK,IAAI,aAAa,KAAK;;CAGlC,IAAI,aAA8B;AAChC,SAAO,KAAK,KAAK,IAAI,YAAY,KAAK;;CAGxC,eAAqB;AACnB,OAAK,KAAK,OAAO;;;AAIrB,MAAa,6BAA6B,IAAI,qBAAqB;AAEnE,SAAgB,mBAAmB,aAAoC;AACrE,QAAO,2BAA2B,QAAQ,YAAY;;AAGxD,SAAgB,0BAA0B,aAA2B;AACnE,4BAA2B,YAAY,YAAY;;AAGrD,SAAgB,uBAAuB,aAA8B;AACnE,QAAO,2BAA2B,IAAI,YAAY;;AAGpD,SAAgB,kCAAwC;AACtD,4BAA2B,cAAc;;AAG3C,SAAgB,8BAAsC;AACpD,QAAO"}
|
|
@@ -2,7 +2,8 @@ import type { AgentTool } from '@earendil-works/pi-agent-core';
|
|
|
2
2
|
import type { ThinkingLevel } from '@earendil-works/pi-agent-core';
|
|
3
3
|
import { type AgentSession } from '@earendil-works/pi-coding-agent';
|
|
4
4
|
import type { Model, Api } from '@earendil-works/pi-ai';
|
|
5
|
-
import { type GuardedPiTranscriptManager } from './session-tool-result-guard
|
|
5
|
+
import { type GuardedPiTranscriptManager } from './session-tool-result-guard.js';
|
|
6
|
+
import { type SessionManagerCache } from './session-manager-cache.js';
|
|
6
7
|
export type EmbeddedRunnerFingerprintInput = {
|
|
7
8
|
sessionFile: string;
|
|
8
9
|
workspaceDir: string;
|
|
@@ -31,17 +32,47 @@ export type AcquiredEmbeddedSessionRunner = {
|
|
|
31
32
|
reused: boolean;
|
|
32
33
|
release: () => void;
|
|
33
34
|
};
|
|
34
|
-
|
|
35
|
+
export interface EmbeddedSessionRunnerPoolStats {
|
|
35
36
|
acquires: number;
|
|
36
37
|
reuses: number;
|
|
37
38
|
creates: number;
|
|
38
39
|
evictions: number;
|
|
39
|
-
|
|
40
|
+
pooled: number;
|
|
41
|
+
}
|
|
40
42
|
export declare function isEmbeddedSessionRunnerEnabled(): boolean;
|
|
41
43
|
export declare function getEmbeddedSessionRunnerIdleTtlMs(): number;
|
|
42
|
-
export
|
|
43
|
-
|
|
44
|
-
|
|
44
|
+
export interface EmbeddedSessionRunnerPoolOptions {
|
|
45
|
+
/** File-exists cache shared with prewarmSessionFile callers. */
|
|
46
|
+
sessionManagerCache?: SessionManagerCache;
|
|
47
|
+
/** Override for the env-driven enable flag (testing). */
|
|
48
|
+
isEnabled?: () => boolean;
|
|
49
|
+
/** Override for the env-driven idle TTL (testing). */
|
|
50
|
+
getIdleTtlMs?: () => number;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Owns the per-session pool of pi `AgentSession` runners. The class is the supported,
|
|
54
|
+
* injectable owner; {@link defaultEmbeddedSessionRunnerPool} keeps the historic
|
|
55
|
+
* module-level free functions working until every caller is migrated to DI.
|
|
56
|
+
*/
|
|
57
|
+
export declare class EmbeddedSessionRunnerPool {
|
|
58
|
+
private readonly pool;
|
|
59
|
+
private readonly cache;
|
|
60
|
+
private readonly isEnabledFn;
|
|
61
|
+
private readonly getIdleTtlMsFn;
|
|
62
|
+
private stats;
|
|
63
|
+
constructor(opts?: EmbeddedSessionRunnerPoolOptions);
|
|
64
|
+
getStats(): Readonly<EmbeddedSessionRunnerPoolStats>;
|
|
65
|
+
resetForTest(): void;
|
|
66
|
+
evict(sessionKey: string, reason?: string): void;
|
|
67
|
+
evictAll(reason?: string): void;
|
|
68
|
+
acquire(params: AcquireEmbeddedSessionRunnerParams): Promise<AcquiredEmbeddedSessionRunner>;
|
|
69
|
+
private clearIdleTimer;
|
|
70
|
+
private scheduleIdleEviction;
|
|
71
|
+
private disposePooledRunner;
|
|
72
|
+
private createPooledRunner;
|
|
73
|
+
}
|
|
74
|
+
export declare const defaultEmbeddedSessionRunnerPool: EmbeddedSessionRunnerPool;
|
|
75
|
+
export declare function getEmbeddedSessionRunnerStats(): Readonly<EmbeddedSessionRunnerPoolStats>;
|
|
45
76
|
export declare function resetEmbeddedSessionRunnerForTest(): void;
|
|
46
77
|
export declare function evictEmbeddedSessionRunner(sessionKey: string, reason?: string): void;
|
|
47
78
|
export declare function evictAllEmbeddedSessionRunners(reason?: string): void;
|
|
@@ -53,4 +84,3 @@ export declare function resolveEmbeddedTranscriptInputs(sessionStore: import('..
|
|
|
53
84
|
sessionsDir: string;
|
|
54
85
|
hadSessionFile: boolean;
|
|
55
86
|
}>;
|
|
56
|
-
export {};
|