@zhin.js/agent 1.1.36 → 1.1.38
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/lib/activity-feedback/adapter-integration.d.ts +0 -1
- package/lib/activity-feedback/adapter-integration.js.map +1 -1
- package/lib/activity-feedback/config-resolver.d.ts +0 -1
- package/lib/activity-feedback/config-resolver.js.map +1 -1
- package/lib/activity-feedback/event-context.d.ts +0 -1
- package/lib/activity-feedback/event-context.js.map +1 -1
- package/lib/activity-feedback/index.d.ts +0 -1
- package/lib/activity-feedback/index.js.map +1 -1
- package/lib/activity-feedback/manager.d.ts +0 -1
- package/lib/activity-feedback/manager.js.map +1 -1
- package/lib/activity-feedback/schedule-guard.d.ts +0 -1
- package/lib/activity-feedback/schedule-guard.js.map +1 -1
- package/lib/activity-feedback/subagent-prefix.d.ts +0 -1
- package/lib/activity-feedback/subagent-prefix.js.map +1 -1
- package/lib/activity-feedback/turn-event-projector.d.ts +0 -1
- package/lib/activity-feedback/turn-event-projector.js.map +1 -1
- package/lib/activity-feedback/types.d.ts +0 -1
- package/lib/activity-feedback/types.js.map +1 -1
- package/lib/ai-event-bus.d.ts +0 -1
- package/lib/ai-event-bus.js.map +1 -1
- package/lib/ai-event-contract.d.ts +0 -1
- package/lib/ai-event-contract.js.map +1 -1
- package/lib/ai-event-subscriber.d.ts +0 -1
- package/lib/ai-event-subscriber.js.map +1 -1
- package/lib/ai-hook-runtime-bus.d.ts +0 -1
- package/lib/ai-hook-runtime-bus.js.map +1 -1
- package/lib/assistant/bootstrap-assistant-home.d.ts +0 -1
- package/lib/assistant/bootstrap-assistant-home.js.map +1 -1
- package/lib/assistant/config.d.ts +0 -1
- package/lib/assistant/config.js.map +1 -1
- package/lib/assistant/deliver-schedule-to-adapter.d.ts +0 -1
- package/lib/assistant/deliver-schedule-to-adapter.js.map +1 -1
- package/lib/assistant/domains/ha-home-backend.d.ts +0 -1
- package/lib/assistant/domains/ha-home-backend.js.map +1 -1
- package/lib/assistant/domains/ha-ws-transport.d.ts +0 -1
- package/lib/assistant/domains/ha-ws-transport.js.map +1 -1
- package/lib/assistant/domains/home-entity.d.ts +0 -1
- package/lib/assistant/domains/home-entity.js.map +1 -1
- package/lib/assistant/domains/home-state-watch.d.ts +0 -1
- package/lib/assistant/domains/home-state-watch.js.map +1 -1
- package/lib/assistant/event-ingress.d.ts +0 -1
- package/lib/assistant/event-ingress.js.map +1 -1
- package/lib/assistant/event-types.d.ts +0 -1
- package/lib/assistant/event-types.js.map +1 -1
- package/lib/assistant/home-config.d.ts +0 -1
- package/lib/assistant/home-config.js.map +1 -1
- package/lib/assistant/home-facade.d.ts +0 -1
- package/lib/assistant/home-facade.js.map +1 -1
- package/lib/assistant/home-mcp-bridge.d.ts +0 -1
- package/lib/assistant/home-mcp-bridge.js.map +1 -1
- package/lib/assistant/home-policy.d.ts +0 -1
- package/lib/assistant/home-policy.js.map +1 -1
- package/lib/assistant/home-tools.d.ts +0 -1
- package/lib/assistant/home-tools.js.map +1 -1
- package/lib/assistant/index.d.ts +0 -1
- package/lib/assistant/index.js.map +1 -1
- package/lib/assistant/job-creator.d.ts +0 -1
- package/lib/assistant/job-creator.js.map +1 -1
- package/lib/assistant/job-engine.d.ts +0 -1
- package/lib/assistant/job-engine.js.map +1 -1
- package/lib/assistant/job-scheduler.d.ts +0 -1
- package/lib/assistant/job-scheduler.js.map +1 -1
- package/lib/assistant/job-store.d.ts +0 -1
- package/lib/assistant/job-store.js.map +1 -1
- package/lib/assistant/job-utils.d.ts +0 -1
- package/lib/assistant/job-utils.js.map +1 -1
- package/lib/assistant/job-worker.d.ts +0 -1
- package/lib/assistant/job-worker.js.map +1 -1
- package/lib/assistant/notification-router.d.ts +0 -1
- package/lib/assistant/notification-router.js.map +1 -1
- package/lib/assistant/profile-loader.d.ts +0 -1
- package/lib/assistant/profile-loader.js.map +1 -1
- package/lib/assistant/profile-types.d.ts +0 -1
- package/lib/assistant/profile-types.js.map +1 -1
- package/lib/assistant/runtime-contract.d.ts +0 -1
- package/lib/assistant/runtime-contract.js.map +1 -1
- package/lib/assistant/schedule-execution.d.ts +0 -1
- package/lib/assistant/schedule-execution.js.map +1 -1
- package/lib/assistant/schedule-job-service.d.ts +0 -1
- package/lib/assistant/schedule-job-service.js.map +1 -1
- package/lib/assistant/schedule-skills.d.ts +0 -1
- package/lib/assistant/schedule-skills.js.map +1 -1
- package/lib/assistant/types.d.ts +0 -1
- package/lib/assistant/types.js.map +1 -1
- package/lib/authoring/bridge.d.ts +0 -1
- package/lib/authoring/bridge.js.map +1 -1
- package/lib/authoring/define-eval.d.ts +0 -1
- package/lib/authoring/define-eval.js.map +1 -1
- package/lib/authoring/define-hook.d.ts +0 -1
- package/lib/authoring/define-hook.js.map +1 -1
- package/lib/authoring/define-skill.d.ts +0 -1
- package/lib/authoring/define-skill.js.map +1 -1
- package/lib/authoring/disable-tool.d.ts +0 -1
- package/lib/authoring/disable-tool.js.map +1 -1
- package/lib/authoring/entries/evals.d.ts +0 -1
- package/lib/authoring/entries/evals.js.map +1 -1
- package/lib/authoring/entries/hooks.d.ts +0 -1
- package/lib/authoring/entries/hooks.js.map +1 -1
- package/lib/authoring/entries/skills.d.ts +0 -1
- package/lib/authoring/entries/skills.js.map +1 -1
- package/lib/authoring/index.d.ts +0 -1
- package/lib/authoring/index.js.map +1 -1
- package/lib/authoring/types.d.ts +0 -1
- package/lib/authoring/types.js.map +1 -1
- package/lib/bootstrap.d.ts +0 -1
- package/lib/bootstrap.js.map +1 -1
- package/lib/builtins/builtin-tool-service.d.ts +0 -1
- package/lib/builtins/builtin-tool-service.js.map +1 -1
- package/lib/common-adapter-tools.d.ts +0 -1
- package/lib/common-adapter-tools.js.map +1 -1
- package/lib/config/agent-binding-registry.d.ts +0 -1
- package/lib/config/agent-binding-registry.js.map +1 -1
- package/lib/config/agent-bindings.d.ts +0 -1
- package/lib/config/agent-bindings.js.map +1 -1
- package/lib/config/agent-interfaces.d.ts +0 -1
- package/lib/config/agent-interfaces.js.map +1 -1
- package/lib/config/deprecated-agent-binding-keys.d.ts +0 -1
- package/lib/config/deprecated-agent-binding-keys.js.map +1 -1
- package/lib/config/deprecated-agent-keys.d.ts +0 -1
- package/lib/config/deprecated-agent-keys.js.map +1 -1
- package/lib/config/fix-ai-config.d.ts +0 -1
- package/lib/config/fix-ai-config.js.map +1 -1
- package/lib/config/index.d.ts +0 -1
- package/lib/config/index.js.map +1 -1
- package/lib/config/keyword-triggers.d.ts +0 -1
- package/lib/config/keyword-triggers.js.map +1 -1
- package/lib/config/model-harness-runtime.d.ts +0 -1
- package/lib/config/model-harness-runtime.js.map +1 -1
- package/lib/config/model-harness.d.ts +0 -1
- package/lib/config/model-harness.js.map +1 -1
- package/lib/config/normalize-ai-config.d.ts +0 -1
- package/lib/config/normalize-ai-config.js.map +1 -1
- package/lib/config/perception-config.d.ts +0 -1
- package/lib/config/perception-config.js.map +1 -1
- package/lib/config/provider-instance.d.ts +0 -1
- package/lib/config/provider-instance.js.map +1 -1
- package/lib/config/resolve-five-agent-binding.d.ts +0 -1
- package/lib/config/resolve-five-agent-binding.js.map +1 -1
- package/lib/config/types.d.ts +0 -1
- package/lib/config/types.js.map +1 -1
- package/lib/config/validate-ai-config.d.ts +0 -1
- package/lib/config/validate-ai-config.js.map +1 -1
- package/lib/config/zhin-agent-config.d.ts +0 -1
- package/lib/config/zhin-agent-config.js.map +1 -1
- package/lib/config/zhin-agent-constants.d.ts +0 -1
- package/lib/config/zhin-agent-constants.js.map +1 -1
- package/lib/config/zhin-agent-defaults.d.ts +0 -1
- package/lib/config/zhin-agent-defaults.js +1 -1
- package/lib/config/zhin-agent-defaults.js.map +1 -1
- package/lib/config/zhin-agent-dependencies.d.ts +0 -1
- package/lib/config/zhin-agent-dependencies.js.map +1 -1
- package/lib/config/zhin-agent-runtime.d.ts +0 -1
- package/lib/config/zhin-agent-runtime.js.map +1 -1
- package/lib/context/agents-instruction.d.ts +0 -1
- package/lib/context/agents-instruction.js.map +1 -1
- package/lib/context/context-system.d.ts +0 -1
- package/lib/context/context-system.js.map +1 -1
- package/lib/context/context-tail-limit.d.ts +0 -1
- package/lib/context/context-tail-limit.js.map +1 -1
- package/lib/context/contracts.d.ts +0 -1
- package/lib/context/contracts.js.map +1 -1
- package/lib/context/default-builders.d.ts +0 -1
- package/lib/context/default-builders.js.map +1 -1
- package/lib/context/envelope-parts.d.ts +0 -1
- package/lib/context/envelope-parts.js.map +1 -1
- package/lib/context/im-turn-context-adapter.d.ts +0 -1
- package/lib/context/im-turn-context-adapter.js.map +1 -1
- package/lib/context/index.d.ts +0 -1
- package/lib/context/index.js.map +1 -1
- package/lib/context/model-resolver.d.ts +0 -1
- package/lib/context/model-resolver.js.map +1 -1
- package/lib/context/turn-envelope.d.ts +0 -1
- package/lib/context/turn-envelope.js.map +1 -1
- package/lib/context/turn-user-message.d.ts +0 -1
- package/lib/context/turn-user-message.js.map +1 -1
- package/lib/core/agent-core-run.d.ts +3 -1
- package/lib/core/agent-core-run.js +24 -27
- package/lib/core/agent-core-run.js.map +1 -1
- package/lib/core/agent-core.d.ts +0 -1
- package/lib/core/agent-core.js.map +1 -1
- package/lib/core/agent-loop-standalone.d.ts +0 -1
- package/lib/core/agent-loop-standalone.js.map +1 -1
- package/lib/core/agent-loop-turn.d.ts +0 -1
- package/lib/core/agent-loop-turn.js.map +1 -1
- package/lib/core/agent-run-shared.d.ts +0 -1
- package/lib/core/agent-run-shared.js.map +1 -1
- package/lib/core/compose-deps.d.ts +0 -1
- package/lib/core/compose-deps.js.map +1 -1
- package/lib/core/contracts.d.ts +0 -1
- package/lib/core/contracts.js.map +1 -1
- package/lib/core/exhausted-turn-reply.d.ts +0 -1
- package/lib/core/exhausted-turn-reply.js.map +1 -1
- package/lib/core/exploration-budget.d.ts +0 -1
- package/lib/core/exploration-budget.js.map +1 -1
- package/lib/core/index.d.ts +0 -1
- package/lib/core/index.js.map +1 -1
- package/lib/core/missing-tool-resolver.d.ts +0 -1
- package/lib/core/missing-tool-resolver.js.map +1 -1
- package/lib/core/progress-reporter.d.ts +0 -1
- package/lib/core/progress-reporter.js.map +1 -1
- package/lib/core/spawn-delegation.d.ts +0 -1
- package/lib/core/spawn-delegation.js.map +1 -1
- package/lib/core/structured-reply-recovery.d.ts +9 -3
- package/lib/core/structured-reply-recovery.js +5 -6
- package/lib/core/structured-reply-recovery.js.map +1 -1
- package/lib/core/text-sanitize.d.ts +0 -1
- package/lib/core/text-sanitize.js.map +1 -1
- package/lib/core/tool-calls-user-format.d.ts +0 -1
- package/lib/core/tool-calls-user-format.js.map +1 -1
- package/lib/core/tool-execution-authority.d.ts +0 -1
- package/lib/core/tool-execution-authority.js.map +1 -1
- package/lib/core/turn-completion-usage.d.ts +0 -1
- package/lib/core/turn-completion-usage.js.map +1 -1
- package/lib/core/turn-event-mapper.d.ts +0 -1
- package/lib/core/turn-event-mapper.js.map +1 -1
- package/lib/core/turn-progress.d.ts +0 -1
- package/lib/core/turn-progress.js.map +1 -1
- package/lib/create-agent-session.d.ts +0 -1
- package/lib/create-agent-session.js.map +1 -1
- package/lib/decision/approval-judgment.d.ts +0 -1
- package/lib/decision/approval-judgment.js.map +1 -1
- package/lib/decision/approval.d.ts +0 -1
- package/lib/decision/approval.js.map +1 -1
- package/lib/decision/config.d.ts +0 -1
- package/lib/decision/config.js.map +1 -1
- package/lib/decision/index.d.ts +0 -1
- package/lib/decision/index.js.map +1 -1
- package/lib/decision/rank.d.ts +0 -1
- package/lib/decision/rank.js.map +1 -1
- package/lib/decision/retrieval.d.ts +0 -1
- package/lib/decision/retrieval.js.map +1 -1
- package/lib/decision/types.d.ts +0 -1
- package/lib/decision/types.js.map +1 -1
- package/lib/deferred-worker-runner.d.ts +0 -1
- package/lib/deferred-worker-runner.js.map +1 -1
- package/lib/deferred-worker-tool-load.d.ts +0 -1
- package/lib/deferred-worker-tool-load.js.map +1 -1
- package/lib/detached-task/index.d.ts +0 -1
- package/lib/detached-task/index.js.map +1 -1
- package/lib/detached-task/interjection.d.ts +0 -1
- package/lib/detached-task/interjection.js.map +1 -1
- package/lib/detached-task/runner.d.ts +0 -1
- package/lib/detached-task/runner.js.map +1 -1
- package/lib/detached-task/store.d.ts +0 -1
- package/lib/detached-task/store.js.map +1 -1
- package/lib/detached-task/token.d.ts +0 -1
- package/lib/detached-task/token.js.map +1 -1
- package/lib/detached-task/types.d.ts +0 -1
- package/lib/detached-task/types.js.map +1 -1
- package/lib/discovery/agent-surface-info.d.ts +0 -1
- package/lib/discovery/agent-surface-info.js.map +1 -1
- package/lib/discovery/agent-surface.d.ts +0 -1
- package/lib/discovery/agent-surface.js.map +1 -1
- package/lib/discovery/agents.d.ts +0 -1
- package/lib/discovery/agents.js.map +1 -1
- package/lib/discovery/utils.d.ts +0 -1
- package/lib/discovery/utils.js.map +1 -1
- package/lib/event/agent-stream-bus.d.ts +0 -1
- package/lib/event/agent-stream-bus.js.map +1 -1
- package/lib/event/agent-stream-hooks.d.ts +0 -1
- package/lib/event/agent-stream-hooks.js.map +1 -1
- package/lib/event/ai-event-bus.d.ts +0 -1
- package/lib/event/ai-event-bus.js.map +1 -1
- package/lib/event/contracts.d.ts +0 -1
- package/lib/event/contracts.js.map +1 -1
- package/lib/event/event-emitter.d.ts +0 -1
- package/lib/event/event-emitter.js.map +1 -1
- package/lib/event/event-system.d.ts +0 -1
- package/lib/event/event-system.js.map +1 -1
- package/lib/event/filtering-middleware.d.ts +0 -1
- package/lib/event/filtering-middleware.js.map +1 -1
- package/lib/event/hook-stream-sink.d.ts +0 -1
- package/lib/event/hook-stream-sink.js.map +1 -1
- package/lib/event/index.d.ts +0 -1
- package/lib/event/index.js.map +1 -1
- package/lib/event/logging-middleware.d.ts +0 -1
- package/lib/event/logging-middleware.js.map +1 -1
- package/lib/event/publish-agent-stream.d.ts +0 -1
- package/lib/event/publish-agent-stream.js.map +1 -1
- package/lib/event/session-events.d.ts +0 -1
- package/lib/event/session-events.js.map +1 -1
- package/lib/event/turn-event.d.ts +0 -1
- package/lib/event/turn-event.js.map +1 -1
- package/lib/event/turn-to-agent-stream.d.ts +0 -1
- package/lib/event/turn-to-agent-stream.js.map +1 -1
- package/lib/index.d.ts +4 -5
- package/lib/index.js +2 -2
- package/lib/index.js.map +1 -1
- package/lib/init/activate-ai-database-storage.d.ts +0 -1
- package/lib/init/activate-ai-database-storage.js.map +1 -1
- package/lib/init/compose-zhin-agent-runtime.d.ts +0 -1
- package/lib/init/compose-zhin-agent-runtime.js.map +1 -1
- package/lib/init/configure-zhin-agent.d.ts +0 -1
- package/lib/init/configure-zhin-agent.js.map +1 -1
- package/lib/init/define-ai-database-models.d.ts +0 -1
- package/lib/init/define-ai-database-models.js.map +1 -1
- package/lib/init/dispose-zhin-agent.d.ts +0 -1
- package/lib/init/dispose-zhin-agent.js.map +1 -1
- package/lib/init/introspection-output.d.ts +0 -1
- package/lib/init/introspection-output.js.map +1 -1
- package/lib/init/runtime-management-commands.d.ts +0 -1
- package/lib/init/runtime-management-commands.js.map +1 -1
- package/lib/interaction/index.d.ts +0 -1
- package/lib/interaction/index.js.map +1 -1
- package/lib/interaction/interaction-router.d.ts +0 -1
- package/lib/interaction/interaction-router.js.map +1 -1
- package/lib/internal/agent-host.d.ts +0 -1
- package/lib/internal/agent-host.js.map +1 -1
- package/lib/internal/ai-service-refs.d.ts +0 -1
- package/lib/internal/ai-service-refs.js.map +1 -1
- package/lib/internal/as-private.d.ts +0 -1
- package/lib/internal/as-private.js.map +1 -1
- package/lib/internal/host-types.d.ts +0 -1
- package/lib/internal/host-types.js.map +1 -1
- package/lib/internal/phase-trace.d.ts +0 -1
- package/lib/internal/phase-trace.js.map +1 -1
- package/lib/internal/prompt-trace.d.ts +0 -1
- package/lib/internal/prompt-trace.js.map +1 -1
- package/lib/internal/turn-context.d.ts +0 -1
- package/lib/internal/turn-context.js.map +1 -1
- package/lib/journal/file-journal-store.d.ts +0 -1
- package/lib/journal/file-journal-store.js.map +1 -1
- package/lib/journal/index.d.ts +0 -1
- package/lib/journal/index.js.map +1 -1
- package/lib/journal/persistent-turn-journal.d.ts +0 -1
- package/lib/journal/persistent-turn-journal.js.map +1 -1
- package/lib/mcp-client/bridge.d.ts +0 -1
- package/lib/mcp-client/bridge.js.map +1 -1
- package/lib/mcp-client/connection.d.ts +0 -1
- package/lib/mcp-client/connection.js.map +1 -1
- package/lib/mcp-client/index.d.ts +0 -1
- package/lib/mcp-client/index.js.map +1 -1
- package/lib/media/deliver-subagent-result.d.ts +0 -1
- package/lib/media/deliver-subagent-result.js +4 -1
- package/lib/media/deliver-subagent-result.js.map +1 -1
- package/lib/media/inbound-refs.d.ts +0 -1
- package/lib/media/inbound-refs.js.map +1 -1
- package/lib/media/index.d.ts +0 -1
- package/lib/media/index.js.map +1 -1
- package/lib/media/media-capabilities.d.ts +0 -1
- package/lib/media/media-capabilities.js.map +1 -1
- package/lib/media/media-normalize.d.ts +31 -3
- package/lib/media/media-normalize.js +38 -5
- package/lib/media/media-normalize.js.map +1 -1
- package/lib/media/media-publisher.d.ts +4 -2
- package/lib/media/media-publisher.js +50 -31
- package/lib/media/media-publisher.js.map +1 -1
- package/lib/media/media-router.d.ts +0 -1
- package/lib/media/media-router.js.map +1 -1
- package/lib/media/media-spool.d.ts +0 -1
- package/lib/media/media-spool.js.map +1 -1
- package/lib/media/media-tool-bridge.d.ts +0 -1
- package/lib/media/media-tool-bridge.js.map +1 -1
- package/lib/media/media-types.d.ts +0 -1
- package/lib/media/media-types.js.map +1 -1
- package/lib/media/perception.d.ts +8 -2
- package/lib/media/perception.js +55 -5
- package/lib/media/perception.js.map +1 -1
- package/lib/media/resolve-config.d.ts +0 -1
- package/lib/media/resolve-config.js.map +1 -1
- package/lib/media/subagent-inbound.d.ts +0 -1
- package/lib/media/subagent-inbound.js.map +1 -1
- package/lib/media/subagent-user-delivery.d.ts +0 -1
- package/lib/media/subagent-user-delivery.js.map +1 -1
- package/lib/media/vision-capability.d.ts +0 -1
- package/lib/media/vision-capability.js.map +1 -1
- package/lib/memory/ai-compaction-strategy.d.ts +0 -1
- package/lib/memory/ai-compaction-strategy.js.map +1 -1
- package/lib/memory/compaction-runtime.d.ts +0 -1
- package/lib/memory/compaction-runtime.js.map +1 -1
- package/lib/memory/context-repository-store.d.ts +0 -1
- package/lib/memory/context-repository-store.js.map +1 -1
- package/lib/memory/contracts.d.ts +0 -1
- package/lib/memory/contracts.js.map +1 -1
- package/lib/memory/index.d.ts +0 -1
- package/lib/memory/index.js.map +1 -1
- package/lib/memory/memory-system.d.ts +0 -1
- package/lib/memory/memory-system.js.map +1 -1
- package/lib/memory/memory-write-policy.d.ts +0 -1
- package/lib/memory/memory-write-policy.js.map +1 -1
- package/lib/memory/semantic-recall.d.ts +0 -1
- package/lib/memory/semantic-recall.js.map +1 -1
- package/lib/memory/told-ledger.d.ts +0 -1
- package/lib/memory/told-ledger.js.map +1 -1
- package/lib/memory-layers.d.ts +0 -1
- package/lib/memory-layers.js.map +1 -1
- package/lib/orchestration/five-agent/index.d.ts +0 -1
- package/lib/orchestration/five-agent/index.js.map +1 -1
- package/lib/orchestration/five-agent/prompts.d.ts +0 -1
- package/lib/orchestration/five-agent/prompts.js.map +1 -1
- package/lib/orchestration/five-agent/role-capability-policy.d.ts +0 -1
- package/lib/orchestration/five-agent/role-capability-policy.js.map +1 -1
- package/lib/orchestration/five-agent/roles.d.ts +0 -1
- package/lib/orchestration/five-agent/roles.js.map +1 -1
- package/lib/outbound/agent-output.d.ts +5 -1
- package/lib/outbound/agent-output.js +14 -0
- package/lib/outbound/agent-output.js.map +1 -1
- package/lib/outbound/send-proactive.d.ts +0 -1
- package/lib/outbound/send-proactive.js.map +1 -1
- package/lib/outbound/structured-reply.d.ts +6 -2
- package/lib/outbound/structured-reply.js +65 -14
- package/lib/outbound/structured-reply.js.map +1 -1
- package/lib/plugin-ai-hook-bus.d.ts +0 -1
- package/lib/plugin-ai-hook-bus.js.map +1 -1
- package/lib/plugin-loop-hooks.d.ts +0 -1
- package/lib/plugin-loop-hooks.js.map +1 -1
- package/lib/plugin-runtime/agent-event-bus.d.ts +0 -1
- package/lib/plugin-runtime/agent-event-bus.js.map +1 -1
- package/lib/plugin-runtime/agent-host-port.d.ts +0 -1
- package/lib/plugin-runtime/agent-host-port.js.map +1 -1
- package/lib/plugin-runtime/agent-runtime.d.ts +0 -1
- package/lib/plugin-runtime/agent-runtime.js.map +1 -1
- package/lib/plugin-runtime/agent-trace-runtime.d.ts +0 -1
- package/lib/plugin-runtime/agent-trace-runtime.js.map +1 -1
- package/lib/plugin-runtime/ai-completion.d.ts +11 -43
- package/lib/plugin-runtime/ai-completion.js +28 -10
- package/lib/plugin-runtime/ai-completion.js.map +1 -1
- package/lib/plugin-runtime/capability-ingress.d.ts +0 -1
- package/lib/plugin-runtime/capability-ingress.js.map +1 -1
- package/lib/plugin-runtime/capability-tools.d.ts +0 -1
- package/lib/plugin-runtime/capability-tools.js.map +1 -1
- package/lib/plugin-runtime/decision-runtime.d.ts +0 -1
- package/lib/plugin-runtime/decision-runtime.js.map +1 -1
- package/lib/plugin-runtime/deferred-capability-plan.d.ts +20 -1
- package/lib/plugin-runtime/deferred-capability-plan.js +40 -0
- package/lib/plugin-runtime/deferred-capability-plan.js.map +1 -1
- package/lib/plugin-runtime/file-edit-quote-utils.d.ts +0 -1
- package/lib/plugin-runtime/file-edit-quote-utils.js.map +1 -1
- package/lib/plugin-runtime/file-search-scope.d.ts +0 -1
- package/lib/plugin-runtime/file-search-scope.js.map +1 -1
- package/lib/plugin-runtime/full-agent-turn-engine.d.ts +0 -1
- package/lib/plugin-runtime/full-agent-turn-engine.js +13 -3
- package/lib/plugin-runtime/full-agent-turn-engine.js.map +1 -1
- package/lib/plugin-runtime/host-mcp-projection.d.ts +0 -1
- package/lib/plugin-runtime/host-mcp-projection.js.map +1 -1
- package/lib/plugin-runtime/host-tool-projection.d.ts +0 -1
- package/lib/plugin-runtime/host-tool-projection.js.map +1 -1
- package/lib/plugin-runtime/index.d.ts +0 -1
- package/lib/plugin-runtime/index.js.map +1 -1
- package/lib/plugin-runtime/native-bash-tool.d.ts +0 -1
- package/lib/plugin-runtime/native-bash-tool.js.map +1 -1
- package/lib/plugin-runtime/native-file-tools.d.ts +0 -1
- package/lib/plugin-runtime/native-file-tools.js.map +1 -1
- package/lib/plugin-runtime/native-image-tool.d.ts +0 -1
- package/lib/plugin-runtime/native-image-tool.js.map +1 -1
- package/lib/plugin-runtime/native-interaction-tools.d.ts +0 -1
- package/lib/plugin-runtime/native-interaction-tools.js.map +1 -1
- package/lib/plugin-runtime/native-knowledge-tool.d.ts +0 -1
- package/lib/plugin-runtime/native-knowledge-tool.js.map +1 -1
- package/lib/plugin-runtime/native-semantic-memory-tools.d.ts +0 -1
- package/lib/plugin-runtime/native-semantic-memory-tools.js.map +1 -1
- package/lib/plugin-runtime/native-todo-tools.d.ts +0 -1
- package/lib/plugin-runtime/native-todo-tools.js.map +1 -1
- package/lib/plugin-runtime/native-tool-suite.d.ts +0 -1
- package/lib/plugin-runtime/native-tool-suite.js.map +1 -1
- package/lib/plugin-runtime/native-web-tools.d.ts +0 -1
- package/lib/plugin-runtime/native-web-tools.js.map +1 -1
- package/lib/plugin-runtime/schedule-capability-plan.d.ts +0 -1
- package/lib/plugin-runtime/schedule-capability-plan.js.map +1 -1
- package/lib/plugin-runtime/subagent-turn-capability.d.ts +0 -1
- package/lib/plugin-runtime/subagent-turn-capability.js.map +1 -1
- package/lib/plugin-runtime/turn-intent-resolver.d.ts +0 -1
- package/lib/plugin-runtime/turn-intent-resolver.js.map +1 -1
- package/lib/prompt/assembly.d.ts +0 -1
- package/lib/prompt/assembly.js +2 -2
- package/lib/prompt/assembly.js.map +1 -1
- package/lib/prompt/estimate-tokens.d.ts +0 -1
- package/lib/prompt/estimate-tokens.js.map +1 -1
- package/lib/prompt/git-context.d.ts +0 -1
- package/lib/prompt/git-context.js.map +1 -1
- package/lib/prompt/index.d.ts +0 -1
- package/lib/prompt/index.js.map +1 -1
- package/lib/prompt/model-aware-builder.d.ts +0 -1
- package/lib/prompt/model-aware-builder.js.map +1 -1
- package/lib/prompt/model-prompt-strategy.d.ts +0 -1
- package/lib/prompt/model-prompt-strategy.js.map +1 -1
- package/lib/prompt/prompt-assembly-registry.d.ts +0 -1
- package/lib/prompt/prompt-assembly-registry.js.map +1 -1
- package/lib/prompt/prompt-budget.d.ts +0 -1
- package/lib/prompt/prompt-budget.js.map +1 -1
- package/lib/prompt/prompt-builder.d.ts +0 -1
- package/lib/prompt/prompt-builder.js.map +1 -1
- package/lib/prompt/rules/chat-rules.d.ts +6 -0
- package/lib/prompt/rules/chat-rules.js +20 -0
- package/lib/prompt/rules/chat-rules.js.map +1 -0
- package/lib/prompt/rules/code-references.d.ts +0 -1
- package/lib/prompt/rules/code-references.js.map +1 -1
- package/lib/prompt/rules/critical-rules.d.ts +0 -1
- package/lib/prompt/rules/critical-rules.js +2 -2
- package/lib/prompt/rules/critical-rules.js.map +1 -1
- package/lib/prompt/rules/editing.d.ts +0 -1
- package/lib/prompt/rules/editing.js.map +1 -1
- package/lib/prompt/rules/error-handling.d.ts +0 -1
- package/lib/prompt/rules/error-handling.js.map +1 -1
- package/lib/prompt/rules/index.d.ts +1 -1
- package/lib/prompt/rules/index.js +1 -0
- package/lib/prompt/rules/index.js.map +1 -1
- package/lib/prompt/rules/memory.d.ts +0 -1
- package/lib/prompt/rules/memory.js.map +1 -1
- package/lib/prompt/rules/task-completion.d.ts +0 -1
- package/lib/prompt/rules/task-completion.js.map +1 -1
- package/lib/prompt/rules/workflow-rules.d.ts +0 -1
- package/lib/prompt/rules/workflow-rules.js.map +1 -1
- package/lib/prompt/system-prompt.d.ts +7 -1
- package/lib/prompt/system-prompt.js +31 -12
- package/lib/prompt/system-prompt.js.map +1 -1
- package/lib/prompt/templates.d.ts +0 -1
- package/lib/prompt/templates.js.map +1 -1
- package/lib/prompt/tokens.d.ts +0 -1
- package/lib/prompt/tokens.js.map +1 -1
- package/lib/prompt/turn-prompt-profile.d.ts +0 -1
- package/lib/prompt/turn-prompt-profile.js.map +1 -1
- package/lib/prompt/workspace-prompt.d.ts +0 -1
- package/lib/prompt/workspace-prompt.js.map +1 -1
- package/lib/reserved-tools.d.ts +0 -1
- package/lib/reserved-tools.js.map +1 -1
- package/lib/resource-hub/hook-registry.d.ts +0 -1
- package/lib/resource-hub/hook-registry.js.map +1 -1
- package/lib/resource-hub/index.d.ts +0 -1
- package/lib/resource-hub/index.js.map +1 -1
- package/lib/resource-hub/mcp-lifecycle.d.ts +0 -1
- package/lib/resource-hub/mcp-lifecycle.js.map +1 -1
- package/lib/resource-hub/mcp-registry.d.ts +0 -1
- package/lib/resource-hub/mcp-registry.js.map +1 -1
- package/lib/resource-hub/public-api.d.ts +0 -1
- package/lib/resource-hub/public-api.js.map +1 -1
- package/lib/resource-hub/resolve-subagent-tools.d.ts +0 -1
- package/lib/resource-hub/resolve-subagent-tools.js.map +1 -1
- package/lib/resource-hub/resource-registry.d.ts +0 -1
- package/lib/resource-hub/resource-registry.js.map +1 -1
- package/lib/resource-hub/role-configs.d.ts +0 -1
- package/lib/resource-hub/role-configs.js.map +1 -1
- package/lib/resource-hub/skill-registry.d.ts +0 -1
- package/lib/resource-hub/skill-registry.js.map +1 -1
- package/lib/resource-hub/subagent-registry.d.ts +0 -1
- package/lib/resource-hub/subagent-registry.js.map +1 -1
- package/lib/resource-hub/tool-selection.d.ts +0 -1
- package/lib/resource-hub/tool-selection.js.map +1 -1
- package/lib/resource-hub/types.d.ts +0 -1
- package/lib/resource-hub/types.js.map +1 -1
- package/lib/routing/runtime-binding.d.ts +0 -1
- package/lib/routing/runtime-binding.js.map +1 -1
- package/lib/routing/subagent-summarize.d.ts +0 -1
- package/lib/routing/subagent-summarize.js.map +1 -1
- package/lib/schedule-cron.d.ts +0 -1
- package/lib/schedule-cron.js.map +1 -1
- package/lib/schedule-domain/audit-logger.d.ts +0 -1
- package/lib/schedule-domain/audit-logger.js.map +1 -1
- package/lib/schedule-domain/budget-guard.d.ts +0 -1
- package/lib/schedule-domain/budget-guard.js.map +1 -1
- package/lib/schedule-domain/execution-domain.d.ts +0 -1
- package/lib/schedule-domain/execution-domain.js.map +1 -1
- package/lib/schedule-domain/index.d.ts +0 -1
- package/lib/schedule-domain/index.js.map +1 -1
- package/lib/schedule-domain/output-validator.d.ts +0 -1
- package/lib/schedule-domain/output-validator.js.map +1 -1
- package/lib/schedule-domain/prompt-assembler.d.ts +0 -1
- package/lib/schedule-domain/prompt-assembler.js.map +1 -1
- package/lib/schedule-domain/schedule-execution-queue.d.ts +0 -1
- package/lib/schedule-domain/schedule-execution-queue.js.map +1 -1
- package/lib/schedule-domain/security-harness.d.ts +0 -1
- package/lib/schedule-domain/security-harness.js.map +1 -1
- package/lib/schedule-manager.d.ts +0 -1
- package/lib/schedule-manager.js.map +1 -1
- package/lib/seam/index.d.ts +0 -1
- package/lib/seam/index.js.map +1 -1
- package/lib/seam/seam-integration.d.ts +0 -1
- package/lib/seam/seam-integration.js.map +1 -1
- package/lib/seam/seam-provider.d.ts +0 -1
- package/lib/seam/seam-provider.js.map +1 -1
- package/lib/seam/skill-service.d.ts +0 -1
- package/lib/seam/skill-service.js.map +1 -1
- package/lib/seam/tokens.d.ts +0 -1
- package/lib/seam/tokens.js.map +1 -1
- package/lib/seam/tool-service.d.ts +0 -1
- package/lib/seam/tool-service.js.map +1 -1
- package/lib/security/anomaly-detection.d.ts +0 -1
- package/lib/security/anomaly-detection.js.map +1 -1
- package/lib/security/audit-logger.d.ts +0 -1
- package/lib/security/audit-logger.js.map +1 -1
- package/lib/security/comm-message-context.d.ts +0 -1
- package/lib/security/comm-message-context.js.map +1 -1
- package/lib/security/dangerous-tool-policy.d.ts +0 -1
- package/lib/security/dangerous-tool-policy.js.map +1 -1
- package/lib/security/exec-policy.d.ts +0 -1
- package/lib/security/exec-policy.js.map +1 -1
- package/lib/security/file-policy.d.ts +0 -1
- package/lib/security/file-policy.js.map +1 -1
- package/lib/security/file-role-policy.d.ts +0 -1
- package/lib/security/file-role-policy.js.map +1 -1
- package/lib/security/index.d.ts +0 -1
- package/lib/security/index.js.map +1 -1
- package/lib/security/network-authority.d.ts +0 -1
- package/lib/security/network-authority.js.map +1 -1
- package/lib/security/network-policy-context.d.ts +0 -1
- package/lib/security/network-policy-context.js.map +1 -1
- package/lib/security/network-policy.d.ts +0 -1
- package/lib/security/network-policy.js.map +1 -1
- package/lib/security/outbound-leak-guard.d.ts +0 -1
- package/lib/security/outbound-leak-guard.js.map +1 -1
- package/lib/security/owner-approval-contracts.d.ts +0 -1
- package/lib/security/owner-approval-contracts.js.map +1 -1
- package/lib/security/owner-approval-runtime.d.ts +0 -1
- package/lib/security/owner-approval-runtime.js.map +1 -1
- package/lib/security/owner-approval-store.d.ts +0 -1
- package/lib/security/owner-approval-store.js.map +1 -1
- package/lib/security/policy-facade.d.ts +0 -1
- package/lib/security/policy-facade.js.map +1 -1
- package/lib/security/policy-narrowing.d.ts +0 -1
- package/lib/security/policy-narrowing.js.map +1 -1
- package/lib/security/provenance.d.ts +0 -1
- package/lib/security/provenance.js.map +1 -1
- package/lib/security/sandbox-docker.d.ts +0 -1
- package/lib/security/sandbox-docker.js.map +1 -1
- package/lib/security/sandbox.d.ts +0 -1
- package/lib/security/sandbox.js.map +1 -1
- package/lib/security/trust-level.d.ts +0 -1
- package/lib/security/trust-level.js.map +1 -1
- package/lib/security/turn-file-authority.d.ts +0 -1
- package/lib/security/turn-file-authority.js.map +1 -1
- package/lib/security/turn-network-client.d.ts +0 -1
- package/lib/security/turn-network-client.js.map +1 -1
- package/lib/security/usage-quota.d.ts +3 -7
- package/lib/security/usage-quota.js.map +1 -1
- package/lib/segment/filter-im-delivery.d.ts +0 -1
- package/lib/segment/filter-im-delivery.js.map +1 -1
- package/lib/service.d.ts +0 -1
- package/lib/service.js.map +1 -1
- package/lib/session/approval-port.d.ts +0 -1
- package/lib/session/approval-port.js.map +1 -1
- package/lib/session/approval-review-agent.d.ts +0 -1
- package/lib/session/approval-review-agent.js.map +1 -1
- package/lib/session/branch-summarization-runtime.d.ts +0 -1
- package/lib/session/branch-summarization-runtime.js.map +1 -1
- package/lib/session/contracts.d.ts +0 -1
- package/lib/session/contracts.js.map +1 -1
- package/lib/session/index.d.ts +0 -1
- package/lib/session/index.js.map +1 -1
- package/lib/session/session-io.d.ts +0 -1
- package/lib/session/session-io.js.map +1 -1
- package/lib/session/session-key.d.ts +0 -1
- package/lib/session/session-key.js.map +1 -1
- package/lib/session/session-system.d.ts +7 -1
- package/lib/session/session-system.js +26 -12
- package/lib/session/session-system.js.map +1 -1
- package/lib/session/session-tree-commands.d.ts +0 -1
- package/lib/session/session-tree-commands.js.map +1 -1
- package/lib/session/strategies.d.ts +0 -1
- package/lib/session/strategies.js.map +1 -1
- package/lib/session/turn-ingress-session.d.ts +0 -1
- package/lib/session/turn-ingress-session.js.map +1 -1
- package/lib/session-tree-runtime.d.ts +0 -1
- package/lib/session-tree-runtime.js.map +1 -1
- package/lib/skill/capability-catalog.d.ts +0 -1
- package/lib/skill/capability-catalog.js.map +1 -1
- package/lib/skill/contracts.d.ts +0 -1
- package/lib/skill/contracts.js.map +1 -1
- package/lib/skill/index.d.ts +0 -1
- package/lib/skill/index.js.map +1 -1
- package/lib/skill/progressive-disclosure.d.ts +0 -1
- package/lib/skill/progressive-disclosure.js.map +1 -1
- package/lib/skill/skill-instruction-reader-factory.d.ts +0 -1
- package/lib/skill/skill-instruction-reader-factory.js.map +1 -1
- package/lib/skill/skill-instruction-reader.d.ts +0 -1
- package/lib/skill/skill-instruction-reader.js.map +1 -1
- package/lib/skill/skill-instructions.d.ts +0 -1
- package/lib/skill/skill-instructions.js.map +1 -1
- package/lib/skill/skill-registry-as-service.d.ts +0 -1
- package/lib/skill/skill-registry-as-service.js.map +1 -1
- package/lib/skill/skill-system.d.ts +0 -1
- package/lib/skill/skill-system.js.map +1 -1
- package/lib/spawn/permission-task.d.ts +0 -1
- package/lib/spawn/permission-task.js.map +1 -1
- package/lib/spawn/spawn-task-tool.d.ts +0 -1
- package/lib/spawn/spawn-task-tool.js.map +1 -1
- package/lib/stability/memory-pressure.d.ts +0 -1
- package/lib/stability/memory-pressure.js.map +1 -1
- package/lib/standalone/standalone-tool-catalog.d.ts +0 -1
- package/lib/standalone/standalone-tool-catalog.js.map +1 -1
- package/lib/subagent/contracts.d.ts +0 -1
- package/lib/subagent/contracts.js.map +1 -1
- package/lib/subagent/im-result-sink.d.ts +0 -1
- package/lib/subagent/im-result-sink.js.map +1 -1
- package/lib/subagent/index.d.ts +0 -1
- package/lib/subagent/index.js.map +1 -1
- package/lib/subagent/subagent-runtime.d.ts +0 -1
- package/lib/subagent/subagent-runtime.js.map +1 -1
- package/lib/subagent/subagent-system-init.d.ts +0 -1
- package/lib/subagent/subagent-system-init.js.map +1 -1
- package/lib/subagent/subagent-system.d.ts +0 -1
- package/lib/subagent/subagent-system.js.map +1 -1
- package/lib/subagent-ai-events.d.ts +0 -1
- package/lib/subagent-ai-events.js.map +1 -1
- package/lib/subagent-artifact.d.ts +0 -1
- package/lib/subagent-artifact.js.map +1 -1
- package/lib/subagent-goal-notify.d.ts +0 -1
- package/lib/subagent-goal-notify.js.map +1 -1
- package/lib/subagent-parent-context.d.ts +0 -1
- package/lib/subagent-parent-context.js.map +1 -1
- package/lib/subagent-preset.d.ts +0 -1
- package/lib/subagent-preset.js.map +1 -1
- package/lib/subagent-prompt.d.ts +0 -1
- package/lib/subagent-prompt.js.map +1 -1
- package/lib/task-executor.d.ts +0 -1
- package/lib/task-executor.js.map +1 -1
- package/lib/tool/builtin-policy-extractors.d.ts +0 -1
- package/lib/tool/builtin-policy-extractors.js.map +1 -1
- package/lib/tool/context-tools.d.ts +0 -1
- package/lib/tool/context-tools.js.map +1 -1
- package/lib/tool/contracts.d.ts +0 -1
- package/lib/tool/contracts.js.map +1 -1
- package/lib/tool/conversation-reference-tool.d.ts +0 -1
- package/lib/tool/conversation-reference-tool.js.map +1 -1
- package/lib/tool/deferred-resolution.d.ts +0 -1
- package/lib/tool/deferred-resolution.js.map +1 -1
- package/lib/tool/executable-tool-registry.d.ts +0 -1
- package/lib/tool/executable-tool-registry.js.map +1 -1
- package/lib/tool/index.d.ts +0 -1
- package/lib/tool/index.js.map +1 -1
- package/lib/tool/pre-exec.d.ts +0 -1
- package/lib/tool/pre-exec.js.map +1 -1
- package/lib/tool/prepare-turn-tools.d.ts +0 -1
- package/lib/tool/prepare-turn-tools.js.map +1 -1
- package/lib/tool/runtime.d.ts +0 -1
- package/lib/tool/runtime.js.map +1 -1
- package/lib/tool/sources.d.ts +0 -1
- package/lib/tool/sources.js.map +1 -1
- package/lib/tool/tool-approval-gate.d.ts +0 -1
- package/lib/tool/tool-approval-gate.js.map +1 -1
- package/lib/tool/tool-approval-once-store.d.ts +0 -1
- package/lib/tool/tool-approval-once-store.js.map +1 -1
- package/lib/tool/tool-execution-authority.d.ts +0 -1
- package/lib/tool/tool-execution-authority.js.map +1 -1
- package/lib/tool/tool-model-output.d.ts +0 -1
- package/lib/tool/tool-model-output.js.map +1 -1
- package/lib/tool/tool-runtime.d.ts +0 -1
- package/lib/tool/tool-runtime.js.map +1 -1
- package/lib/tool/tool-system.d.ts +0 -1
- package/lib/tool/tool-system.js.map +1 -1
- package/lib/tool/turn-tool-runtime.d.ts +0 -1
- package/lib/tool/turn-tool-runtime.js.map +1 -1
- package/lib/tool-bridge.d.ts +0 -1
- package/lib/tool-bridge.js.map +1 -1
- package/lib/tool-catalog/deferred-turn-controller.d.ts +0 -1
- package/lib/tool-catalog/deferred-turn-controller.js.map +1 -1
- package/lib/tool-catalog/index.d.ts +0 -1
- package/lib/tool-catalog/index.js.map +1 -1
- package/lib/tool-catalog/resolve-config.d.ts +0 -1
- package/lib/tool-catalog/resolve-config.js.map +1 -1
- package/lib/tool-catalog/session-deferred-store.d.ts +0 -1
- package/lib/tool-catalog/session-deferred-store.js.map +1 -1
- package/lib/tool-catalog/tool-catalog.d.ts +8 -1
- package/lib/tool-catalog/tool-catalog.js +15 -0
- package/lib/tool-catalog/tool-catalog.js.map +1 -1
- package/lib/tool-catalog/types.d.ts +0 -1
- package/lib/tool-catalog/types.js.map +1 -1
- package/lib/trace/context-budget.d.ts +0 -1
- package/lib/trace/context-budget.js.map +1 -1
- package/lib/trace/index.d.ts +0 -1
- package/lib/trace/index.js.map +1 -1
- package/lib/trace/turn-trace-archive.d.ts +0 -1
- package/lib/trace/turn-trace-archive.js.map +1 -1
- package/lib/trace/turn-trace-format.d.ts +0 -1
- package/lib/trace/turn-trace-format.js.map +1 -1
- package/lib/trace/turn-trace-registry.d.ts +0 -1
- package/lib/trace/turn-trace-registry.js.map +1 -1
- package/lib/trace/turn-trace-store.d.ts +0 -1
- package/lib/trace/turn-trace-store.js.map +1 -1
- package/lib/trace/turn-trace.d.ts +0 -1
- package/lib/trace/turn-trace.js.map +1 -1
- package/lib/turn/agent-turn-context.d.ts +0 -1
- package/lib/turn/agent-turn-context.js.map +1 -1
- package/lib/turn/auto-continue.d.ts +0 -1
- package/lib/turn/auto-continue.js.map +1 -1
- package/lib/turn/cancel-intent.d.ts +0 -1
- package/lib/turn/cancel-intent.js.map +1 -1
- package/lib/turn/deferred-auto-continue.d.ts +0 -1
- package/lib/turn/deferred-auto-continue.js.map +1 -1
- package/lib/turn/deferred-delivery.d.ts +0 -1
- package/lib/turn/deferred-delivery.js.map +1 -1
- package/lib/turn/deferred-turn-state.d.ts +0 -1
- package/lib/turn/deferred-turn-state.js.map +1 -1
- package/lib/turn/execute-agent-turn.d.ts +0 -1
- package/lib/turn/execute-agent-turn.js.map +1 -1
- package/lib/turn/inbound-media.d.ts +3 -2
- package/lib/turn/inbound-media.js +15 -2
- package/lib/turn/inbound-media.js.map +1 -1
- package/lib/turn/inbound-queue-config.d.ts +0 -1
- package/lib/turn/inbound-queue-config.js.map +1 -1
- package/lib/turn/inbound-queue-runtime.d.ts +0 -1
- package/lib/turn/inbound-queue-runtime.js.map +1 -1
- package/lib/turn/inbound-turn-queue.d.ts +0 -1
- package/lib/turn/inbound-turn-queue.js.map +1 -1
- package/lib/turn/index.d.ts +0 -1
- package/lib/turn/index.js.map +1 -1
- package/lib/turn/journal-feed.d.ts +0 -1
- package/lib/turn/journal-feed.js.map +1 -1
- package/lib/turn/journal-integrity.d.ts +0 -1
- package/lib/turn/journal-integrity.js.map +1 -1
- package/lib/turn/persist-deferred-context.d.ts +0 -1
- package/lib/turn/persist-deferred-context.js.map +1 -1
- package/lib/turn/persist-subagent-context.d.ts +0 -1
- package/lib/turn/persist-subagent-context.js.map +1 -1
- package/lib/turn/process-stream.d.ts +0 -1
- package/lib/turn/process-stream.js.map +1 -1
- package/lib/turn/prompt-access.d.ts +0 -1
- package/lib/turn/prompt-access.js.map +1 -1
- package/lib/turn/prompt-api.d.ts +0 -1
- package/lib/turn/prompt-api.js.map +1 -1
- package/lib/turn/prompt-controller.d.ts +0 -1
- package/lib/turn/prompt-controller.js.map +1 -1
- package/lib/turn/prompt-input.d.ts +0 -1
- package/lib/turn/prompt-input.js.map +1 -1
- package/lib/turn/session-message-queue.d.ts +0 -1
- package/lib/turn/session-message-queue.js.map +1 -1
- package/lib/turn/subagent-auto-continue.d.ts +0 -1
- package/lib/turn/subagent-auto-continue.js.map +1 -1
- package/lib/turn/task-continuation.d.ts +0 -1
- package/lib/turn/task-continuation.js.map +1 -1
- package/lib/turn/trigger-cancelled-error.d.ts +0 -1
- package/lib/turn/trigger-cancelled-error.js.map +1 -1
- package/lib/turn/turn-admission-gate.d.ts +0 -1
- package/lib/turn/turn-admission-gate.js.map +1 -1
- package/lib/turn/turn-complete.d.ts +0 -1
- package/lib/turn/turn-complete.js.map +1 -1
- package/lib/turn/turn-context-bridge.d.ts +0 -1
- package/lib/turn/turn-context-bridge.js.map +1 -1
- package/lib/turn/turn-deferred-delta.d.ts +0 -1
- package/lib/turn/turn-deferred-delta.js.map +1 -1
- package/lib/turn/turn-event-source.d.ts +0 -1
- package/lib/turn/turn-event-source.js.map +1 -1
- package/lib/turn/turn-ingress.d.ts +3 -1
- package/lib/turn/turn-ingress.js.map +1 -1
- package/lib/turn/turn-metrics.d.ts +0 -1
- package/lib/turn/turn-metrics.js.map +1 -1
- package/lib/turn/turn-pipeline.d.ts +0 -1
- package/lib/turn/turn-pipeline.js.map +1 -1
- package/lib/turn/turn-terminal.d.ts +0 -1
- package/lib/turn/turn-terminal.js.map +1 -1
- package/lib/turn/turn-tracker.d.ts +0 -1
- package/lib/turn/turn-tracker.js.map +1 -1
- package/lib/types/disposable.d.ts +0 -1
- package/lib/types/disposable.js.map +1 -1
- package/lib/typing-indicator/adapter-integration.d.ts +0 -1
- package/lib/typing-indicator/adapter-integration.js.map +1 -1
- package/lib/typing-indicator/index.d.ts +0 -1
- package/lib/typing-indicator/index.js.map +1 -1
- package/lib/user-profile.d.ts +0 -1
- package/lib/user-profile.js.map +1 -1
- package/lib/utils/config-env.d.ts +0 -1
- package/lib/utils/config-env.js.map +1 -1
- package/lib/utils/keyed-mutex.d.ts +0 -1
- package/lib/utils/keyed-mutex.js.map +1 -1
- package/lib/web/bing-search-html.d.ts +0 -1
- package/lib/web/bing-search-html.js.map +1 -1
- package/lib/web/web-search-locale.d.ts +0 -1
- package/lib/web/web-search-locale.js.map +1 -1
- package/lib/web/web-tool-utils.d.ts +0 -1
- package/lib/web/web-tool-utils.js.map +1 -1
- package/lib/zhin-agent/index.d.ts +0 -1
- package/lib/zhin-agent/index.js.map +1 -1
- package/lib/zhin-agent/runtime-modules.d.ts +0 -1
- package/lib/zhin-agent/runtime-modules.js.map +1 -1
- package/package.json +11 -11
- package/lib/activity-feedback/adapter-integration.d.ts.map +0 -1
- package/lib/activity-feedback/config-resolver.d.ts.map +0 -1
- package/lib/activity-feedback/event-context.d.ts.map +0 -1
- package/lib/activity-feedback/index.d.ts.map +0 -1
- package/lib/activity-feedback/manager.d.ts.map +0 -1
- package/lib/activity-feedback/schedule-guard.d.ts.map +0 -1
- package/lib/activity-feedback/subagent-prefix.d.ts.map +0 -1
- package/lib/activity-feedback/turn-event-projector.d.ts.map +0 -1
- package/lib/activity-feedback/types.d.ts.map +0 -1
- package/lib/ai-event-bus.d.ts.map +0 -1
- package/lib/ai-event-contract.d.ts.map +0 -1
- package/lib/ai-event-subscriber.d.ts.map +0 -1
- package/lib/ai-hook-runtime-bus.d.ts.map +0 -1
- package/lib/assistant/bootstrap-assistant-home.d.ts.map +0 -1
- package/lib/assistant/config.d.ts.map +0 -1
- package/lib/assistant/deliver-schedule-to-adapter.d.ts.map +0 -1
- package/lib/assistant/domains/ha-home-backend.d.ts.map +0 -1
- package/lib/assistant/domains/ha-ws-transport.d.ts.map +0 -1
- package/lib/assistant/domains/home-entity.d.ts.map +0 -1
- package/lib/assistant/domains/home-state-watch.d.ts.map +0 -1
- package/lib/assistant/event-ingress.d.ts.map +0 -1
- package/lib/assistant/event-types.d.ts.map +0 -1
- package/lib/assistant/home-config.d.ts.map +0 -1
- package/lib/assistant/home-facade.d.ts.map +0 -1
- package/lib/assistant/home-mcp-bridge.d.ts.map +0 -1
- package/lib/assistant/home-policy.d.ts.map +0 -1
- package/lib/assistant/home-tools.d.ts.map +0 -1
- package/lib/assistant/index.d.ts.map +0 -1
- package/lib/assistant/job-creator.d.ts.map +0 -1
- package/lib/assistant/job-engine.d.ts.map +0 -1
- package/lib/assistant/job-scheduler.d.ts.map +0 -1
- package/lib/assistant/job-store.d.ts.map +0 -1
- package/lib/assistant/job-utils.d.ts.map +0 -1
- package/lib/assistant/job-worker.d.ts.map +0 -1
- package/lib/assistant/notification-router.d.ts.map +0 -1
- package/lib/assistant/profile-loader.d.ts.map +0 -1
- package/lib/assistant/profile-types.d.ts.map +0 -1
- package/lib/assistant/runtime-contract.d.ts.map +0 -1
- package/lib/assistant/schedule-execution.d.ts.map +0 -1
- package/lib/assistant/schedule-job-service.d.ts.map +0 -1
- package/lib/assistant/schedule-skills.d.ts.map +0 -1
- package/lib/assistant/types.d.ts.map +0 -1
- package/lib/authoring/bridge.d.ts.map +0 -1
- package/lib/authoring/define-eval.d.ts.map +0 -1
- package/lib/authoring/define-hook.d.ts.map +0 -1
- package/lib/authoring/define-skill.d.ts.map +0 -1
- package/lib/authoring/disable-tool.d.ts.map +0 -1
- package/lib/authoring/entries/evals.d.ts.map +0 -1
- package/lib/authoring/entries/hooks.d.ts.map +0 -1
- package/lib/authoring/entries/skills.d.ts.map +0 -1
- package/lib/authoring/index.d.ts.map +0 -1
- package/lib/authoring/types.d.ts.map +0 -1
- package/lib/bootstrap.d.ts.map +0 -1
- package/lib/builtins/builtin-tool-service.d.ts.map +0 -1
- package/lib/common-adapter-tools.d.ts.map +0 -1
- package/lib/config/agent-binding-registry.d.ts.map +0 -1
- package/lib/config/agent-bindings.d.ts.map +0 -1
- package/lib/config/agent-interfaces.d.ts.map +0 -1
- package/lib/config/deprecated-agent-binding-keys.d.ts.map +0 -1
- package/lib/config/deprecated-agent-keys.d.ts.map +0 -1
- package/lib/config/fix-ai-config.d.ts.map +0 -1
- package/lib/config/index.d.ts.map +0 -1
- package/lib/config/keyword-triggers.d.ts.map +0 -1
- package/lib/config/model-harness-runtime.d.ts.map +0 -1
- package/lib/config/model-harness.d.ts.map +0 -1
- package/lib/config/normalize-ai-config.d.ts.map +0 -1
- package/lib/config/perception-config.d.ts.map +0 -1
- package/lib/config/provider-instance.d.ts.map +0 -1
- package/lib/config/resolve-five-agent-binding.d.ts.map +0 -1
- package/lib/config/types.d.ts.map +0 -1
- package/lib/config/validate-ai-config.d.ts.map +0 -1
- package/lib/config/zhin-agent-config.d.ts.map +0 -1
- package/lib/config/zhin-agent-constants.d.ts.map +0 -1
- package/lib/config/zhin-agent-defaults.d.ts.map +0 -1
- package/lib/config/zhin-agent-dependencies.d.ts.map +0 -1
- package/lib/config/zhin-agent-runtime.d.ts.map +0 -1
- package/lib/context/agents-instruction.d.ts.map +0 -1
- package/lib/context/context-system.d.ts.map +0 -1
- package/lib/context/context-tail-limit.d.ts.map +0 -1
- package/lib/context/contracts.d.ts.map +0 -1
- package/lib/context/default-builders.d.ts.map +0 -1
- package/lib/context/envelope-parts.d.ts.map +0 -1
- package/lib/context/im-turn-context-adapter.d.ts.map +0 -1
- package/lib/context/index.d.ts.map +0 -1
- package/lib/context/model-resolver.d.ts.map +0 -1
- package/lib/context/turn-envelope.d.ts.map +0 -1
- package/lib/context/turn-user-message.d.ts.map +0 -1
- package/lib/core/agent-core-run.d.ts.map +0 -1
- package/lib/core/agent-core.d.ts.map +0 -1
- package/lib/core/agent-loop-standalone.d.ts.map +0 -1
- package/lib/core/agent-loop-turn.d.ts.map +0 -1
- package/lib/core/agent-run-shared.d.ts.map +0 -1
- package/lib/core/compose-deps.d.ts.map +0 -1
- package/lib/core/contracts.d.ts.map +0 -1
- package/lib/core/exhausted-turn-reply.d.ts.map +0 -1
- package/lib/core/exploration-budget.d.ts.map +0 -1
- package/lib/core/index.d.ts.map +0 -1
- package/lib/core/missing-tool-resolver.d.ts.map +0 -1
- package/lib/core/progress-reporter.d.ts.map +0 -1
- package/lib/core/spawn-delegation.d.ts.map +0 -1
- package/lib/core/structured-reply-recovery.d.ts.map +0 -1
- package/lib/core/text-sanitize.d.ts.map +0 -1
- package/lib/core/tool-calls-user-format.d.ts.map +0 -1
- package/lib/core/tool-execution-authority.d.ts.map +0 -1
- package/lib/core/turn-completion-usage.d.ts.map +0 -1
- package/lib/core/turn-event-mapper.d.ts.map +0 -1
- package/lib/core/turn-progress.d.ts.map +0 -1
- package/lib/create-agent-session.d.ts.map +0 -1
- package/lib/decision/approval-judgment.d.ts.map +0 -1
- package/lib/decision/approval.d.ts.map +0 -1
- package/lib/decision/config.d.ts.map +0 -1
- package/lib/decision/index.d.ts.map +0 -1
- package/lib/decision/rank.d.ts.map +0 -1
- package/lib/decision/retrieval.d.ts.map +0 -1
- package/lib/decision/types.d.ts.map +0 -1
- package/lib/deferred-worker-runner.d.ts.map +0 -1
- package/lib/deferred-worker-tool-load.d.ts.map +0 -1
- package/lib/detached-task/index.d.ts.map +0 -1
- package/lib/detached-task/interjection.d.ts.map +0 -1
- package/lib/detached-task/runner.d.ts.map +0 -1
- package/lib/detached-task/store.d.ts.map +0 -1
- package/lib/detached-task/token.d.ts.map +0 -1
- package/lib/detached-task/types.d.ts.map +0 -1
- package/lib/discovery/agent-surface-info.d.ts.map +0 -1
- package/lib/discovery/agent-surface.d.ts.map +0 -1
- package/lib/discovery/agents.d.ts.map +0 -1
- package/lib/discovery/utils.d.ts.map +0 -1
- package/lib/event/agent-stream-bus.d.ts.map +0 -1
- package/lib/event/agent-stream-hooks.d.ts.map +0 -1
- package/lib/event/ai-event-bus.d.ts.map +0 -1
- package/lib/event/contracts.d.ts.map +0 -1
- package/lib/event/event-emitter.d.ts.map +0 -1
- package/lib/event/event-system.d.ts.map +0 -1
- package/lib/event/filtering-middleware.d.ts.map +0 -1
- package/lib/event/hook-stream-sink.d.ts.map +0 -1
- package/lib/event/index.d.ts.map +0 -1
- package/lib/event/logging-middleware.d.ts.map +0 -1
- package/lib/event/publish-agent-stream.d.ts.map +0 -1
- package/lib/event/session-events.d.ts.map +0 -1
- package/lib/event/turn-event.d.ts.map +0 -1
- package/lib/event/turn-to-agent-stream.d.ts.map +0 -1
- package/lib/index.d.ts.map +0 -1
- package/lib/init/activate-ai-database-storage.d.ts.map +0 -1
- package/lib/init/compose-zhin-agent-runtime.d.ts.map +0 -1
- package/lib/init/configure-zhin-agent.d.ts.map +0 -1
- package/lib/init/define-ai-database-models.d.ts.map +0 -1
- package/lib/init/dispose-zhin-agent.d.ts.map +0 -1
- package/lib/init/introspection-output.d.ts.map +0 -1
- package/lib/init/runtime-management-commands.d.ts.map +0 -1
- package/lib/interaction/index.d.ts.map +0 -1
- package/lib/interaction/interaction-router.d.ts.map +0 -1
- package/lib/internal/agent-host.d.ts.map +0 -1
- package/lib/internal/ai-service-refs.d.ts.map +0 -1
- package/lib/internal/as-private.d.ts.map +0 -1
- package/lib/internal/host-types.d.ts.map +0 -1
- package/lib/internal/phase-trace.d.ts.map +0 -1
- package/lib/internal/prompt-trace.d.ts.map +0 -1
- package/lib/internal/turn-context.d.ts.map +0 -1
- package/lib/journal/file-journal-store.d.ts.map +0 -1
- package/lib/journal/index.d.ts.map +0 -1
- package/lib/journal/persistent-turn-journal.d.ts.map +0 -1
- package/lib/mcp-client/bridge.d.ts.map +0 -1
- package/lib/mcp-client/connection.d.ts.map +0 -1
- package/lib/mcp-client/index.d.ts.map +0 -1
- package/lib/media/deliver-subagent-result.d.ts.map +0 -1
- package/lib/media/inbound-refs.d.ts.map +0 -1
- package/lib/media/index.d.ts.map +0 -1
- package/lib/media/media-capabilities.d.ts.map +0 -1
- package/lib/media/media-normalize.d.ts.map +0 -1
- package/lib/media/media-publisher.d.ts.map +0 -1
- package/lib/media/media-router.d.ts.map +0 -1
- package/lib/media/media-spool.d.ts.map +0 -1
- package/lib/media/media-tool-bridge.d.ts.map +0 -1
- package/lib/media/media-types.d.ts.map +0 -1
- package/lib/media/perception.d.ts.map +0 -1
- package/lib/media/resolve-config.d.ts.map +0 -1
- package/lib/media/subagent-inbound.d.ts.map +0 -1
- package/lib/media/subagent-user-delivery.d.ts.map +0 -1
- package/lib/media/vision-capability.d.ts.map +0 -1
- package/lib/memory/ai-compaction-strategy.d.ts.map +0 -1
- package/lib/memory/compaction-runtime.d.ts.map +0 -1
- package/lib/memory/context-repository-store.d.ts.map +0 -1
- package/lib/memory/contracts.d.ts.map +0 -1
- package/lib/memory/index.d.ts.map +0 -1
- package/lib/memory/memory-system.d.ts.map +0 -1
- package/lib/memory/memory-write-policy.d.ts.map +0 -1
- package/lib/memory/semantic-recall.d.ts.map +0 -1
- package/lib/memory/told-ledger.d.ts.map +0 -1
- package/lib/memory-layers.d.ts.map +0 -1
- package/lib/orchestration/five-agent/index.d.ts.map +0 -1
- package/lib/orchestration/five-agent/prompts.d.ts.map +0 -1
- package/lib/orchestration/five-agent/role-capability-policy.d.ts.map +0 -1
- package/lib/orchestration/five-agent/roles.d.ts.map +0 -1
- package/lib/outbound/agent-output.d.ts.map +0 -1
- package/lib/outbound/send-proactive.d.ts.map +0 -1
- package/lib/outbound/structured-reply.d.ts.map +0 -1
- package/lib/plugin-ai-hook-bus.d.ts.map +0 -1
- package/lib/plugin-loop-hooks.d.ts.map +0 -1
- package/lib/plugin-runtime/agent-event-bus.d.ts.map +0 -1
- package/lib/plugin-runtime/agent-host-port.d.ts.map +0 -1
- package/lib/plugin-runtime/agent-runtime.d.ts.map +0 -1
- package/lib/plugin-runtime/agent-trace-runtime.d.ts.map +0 -1
- package/lib/plugin-runtime/ai-completion.d.ts.map +0 -1
- package/lib/plugin-runtime/capability-ingress.d.ts.map +0 -1
- package/lib/plugin-runtime/capability-tools.d.ts.map +0 -1
- package/lib/plugin-runtime/decision-runtime.d.ts.map +0 -1
- package/lib/plugin-runtime/deferred-capability-plan.d.ts.map +0 -1
- package/lib/plugin-runtime/file-edit-quote-utils.d.ts.map +0 -1
- package/lib/plugin-runtime/file-search-scope.d.ts.map +0 -1
- package/lib/plugin-runtime/full-agent-turn-engine.d.ts.map +0 -1
- package/lib/plugin-runtime/host-mcp-projection.d.ts.map +0 -1
- package/lib/plugin-runtime/host-tool-projection.d.ts.map +0 -1
- package/lib/plugin-runtime/index.d.ts.map +0 -1
- package/lib/plugin-runtime/native-bash-tool.d.ts.map +0 -1
- package/lib/plugin-runtime/native-file-tools.d.ts.map +0 -1
- package/lib/plugin-runtime/native-image-tool.d.ts.map +0 -1
- package/lib/plugin-runtime/native-interaction-tools.d.ts.map +0 -1
- package/lib/plugin-runtime/native-knowledge-tool.d.ts.map +0 -1
- package/lib/plugin-runtime/native-semantic-memory-tools.d.ts.map +0 -1
- package/lib/plugin-runtime/native-todo-tools.d.ts.map +0 -1
- package/lib/plugin-runtime/native-tool-suite.d.ts.map +0 -1
- package/lib/plugin-runtime/native-web-tools.d.ts.map +0 -1
- package/lib/plugin-runtime/schedule-capability-plan.d.ts.map +0 -1
- package/lib/plugin-runtime/subagent-turn-capability.d.ts.map +0 -1
- package/lib/plugin-runtime/turn-intent-resolver.d.ts.map +0 -1
- package/lib/prompt/assembly.d.ts.map +0 -1
- package/lib/prompt/estimate-tokens.d.ts.map +0 -1
- package/lib/prompt/git-context.d.ts.map +0 -1
- package/lib/prompt/index.d.ts.map +0 -1
- package/lib/prompt/model-aware-builder.d.ts.map +0 -1
- package/lib/prompt/model-prompt-strategy.d.ts.map +0 -1
- package/lib/prompt/prompt-assembly-registry.d.ts.map +0 -1
- package/lib/prompt/prompt-budget.d.ts.map +0 -1
- package/lib/prompt/prompt-builder.d.ts.map +0 -1
- package/lib/prompt/rules/code-references.d.ts.map +0 -1
- package/lib/prompt/rules/critical-rules.d.ts.map +0 -1
- package/lib/prompt/rules/editing.d.ts.map +0 -1
- package/lib/prompt/rules/error-handling.d.ts.map +0 -1
- package/lib/prompt/rules/index.d.ts.map +0 -1
- package/lib/prompt/rules/memory.d.ts.map +0 -1
- package/lib/prompt/rules/task-completion.d.ts.map +0 -1
- package/lib/prompt/rules/workflow-rules.d.ts.map +0 -1
- package/lib/prompt/system-prompt.d.ts.map +0 -1
- package/lib/prompt/templates.d.ts.map +0 -1
- package/lib/prompt/tokens.d.ts.map +0 -1
- package/lib/prompt/turn-prompt-profile.d.ts.map +0 -1
- package/lib/prompt/workspace-prompt.d.ts.map +0 -1
- package/lib/reserved-tools.d.ts.map +0 -1
- package/lib/resource-hub/hook-registry.d.ts.map +0 -1
- package/lib/resource-hub/index.d.ts.map +0 -1
- package/lib/resource-hub/mcp-lifecycle.d.ts.map +0 -1
- package/lib/resource-hub/mcp-registry.d.ts.map +0 -1
- package/lib/resource-hub/public-api.d.ts.map +0 -1
- package/lib/resource-hub/resolve-subagent-tools.d.ts.map +0 -1
- package/lib/resource-hub/resource-registry.d.ts.map +0 -1
- package/lib/resource-hub/role-configs.d.ts.map +0 -1
- package/lib/resource-hub/skill-registry.d.ts.map +0 -1
- package/lib/resource-hub/subagent-registry.d.ts.map +0 -1
- package/lib/resource-hub/tool-selection.d.ts.map +0 -1
- package/lib/resource-hub/types.d.ts.map +0 -1
- package/lib/routing/runtime-binding.d.ts.map +0 -1
- package/lib/routing/subagent-summarize.d.ts.map +0 -1
- package/lib/schedule-cron.d.ts.map +0 -1
- package/lib/schedule-domain/audit-logger.d.ts.map +0 -1
- package/lib/schedule-domain/budget-guard.d.ts.map +0 -1
- package/lib/schedule-domain/execution-domain.d.ts.map +0 -1
- package/lib/schedule-domain/index.d.ts.map +0 -1
- package/lib/schedule-domain/output-validator.d.ts.map +0 -1
- package/lib/schedule-domain/prompt-assembler.d.ts.map +0 -1
- package/lib/schedule-domain/schedule-execution-queue.d.ts.map +0 -1
- package/lib/schedule-domain/security-harness.d.ts.map +0 -1
- package/lib/schedule-manager.d.ts.map +0 -1
- package/lib/seam/index.d.ts.map +0 -1
- package/lib/seam/seam-integration.d.ts.map +0 -1
- package/lib/seam/seam-provider.d.ts.map +0 -1
- package/lib/seam/skill-service.d.ts.map +0 -1
- package/lib/seam/tokens.d.ts.map +0 -1
- package/lib/seam/tool-service.d.ts.map +0 -1
- package/lib/security/anomaly-detection.d.ts.map +0 -1
- package/lib/security/audit-logger.d.ts.map +0 -1
- package/lib/security/comm-message-context.d.ts.map +0 -1
- package/lib/security/dangerous-tool-policy.d.ts.map +0 -1
- package/lib/security/exec-policy.d.ts.map +0 -1
- package/lib/security/file-policy.d.ts.map +0 -1
- package/lib/security/file-role-policy.d.ts.map +0 -1
- package/lib/security/index.d.ts.map +0 -1
- package/lib/security/network-authority.d.ts.map +0 -1
- package/lib/security/network-policy-context.d.ts.map +0 -1
- package/lib/security/network-policy.d.ts.map +0 -1
- package/lib/security/outbound-leak-guard.d.ts.map +0 -1
- package/lib/security/owner-approval-contracts.d.ts.map +0 -1
- package/lib/security/owner-approval-runtime.d.ts.map +0 -1
- package/lib/security/owner-approval-store.d.ts.map +0 -1
- package/lib/security/policy-facade.d.ts.map +0 -1
- package/lib/security/policy-narrowing.d.ts.map +0 -1
- package/lib/security/provenance.d.ts.map +0 -1
- package/lib/security/sandbox-docker.d.ts.map +0 -1
- package/lib/security/sandbox.d.ts.map +0 -1
- package/lib/security/trust-level.d.ts.map +0 -1
- package/lib/security/turn-file-authority.d.ts.map +0 -1
- package/lib/security/turn-network-client.d.ts.map +0 -1
- package/lib/security/usage-quota.d.ts.map +0 -1
- package/lib/segment/filter-im-delivery.d.ts.map +0 -1
- package/lib/service.d.ts.map +0 -1
- package/lib/session/approval-port.d.ts.map +0 -1
- package/lib/session/approval-review-agent.d.ts.map +0 -1
- package/lib/session/branch-summarization-runtime.d.ts.map +0 -1
- package/lib/session/contracts.d.ts.map +0 -1
- package/lib/session/index.d.ts.map +0 -1
- package/lib/session/session-io.d.ts.map +0 -1
- package/lib/session/session-key.d.ts.map +0 -1
- package/lib/session/session-system.d.ts.map +0 -1
- package/lib/session/session-tree-commands.d.ts.map +0 -1
- package/lib/session/strategies.d.ts.map +0 -1
- package/lib/session/turn-ingress-session.d.ts.map +0 -1
- package/lib/session-tree-runtime.d.ts.map +0 -1
- package/lib/skill/capability-catalog.d.ts.map +0 -1
- package/lib/skill/contracts.d.ts.map +0 -1
- package/lib/skill/index.d.ts.map +0 -1
- package/lib/skill/progressive-disclosure.d.ts.map +0 -1
- package/lib/skill/skill-instruction-reader-factory.d.ts.map +0 -1
- package/lib/skill/skill-instruction-reader.d.ts.map +0 -1
- package/lib/skill/skill-instructions.d.ts.map +0 -1
- package/lib/skill/skill-registry-as-service.d.ts.map +0 -1
- package/lib/skill/skill-system.d.ts.map +0 -1
- package/lib/spawn/permission-task.d.ts.map +0 -1
- package/lib/spawn/spawn-task-tool.d.ts.map +0 -1
- package/lib/stability/memory-pressure.d.ts.map +0 -1
- package/lib/standalone/standalone-tool-catalog.d.ts.map +0 -1
- package/lib/subagent/contracts.d.ts.map +0 -1
- package/lib/subagent/im-result-sink.d.ts.map +0 -1
- package/lib/subagent/index.d.ts.map +0 -1
- package/lib/subagent/subagent-runtime.d.ts.map +0 -1
- package/lib/subagent/subagent-system-init.d.ts.map +0 -1
- package/lib/subagent/subagent-system.d.ts.map +0 -1
- package/lib/subagent-ai-events.d.ts.map +0 -1
- package/lib/subagent-artifact.d.ts.map +0 -1
- package/lib/subagent-goal-notify.d.ts.map +0 -1
- package/lib/subagent-parent-context.d.ts.map +0 -1
- package/lib/subagent-preset.d.ts.map +0 -1
- package/lib/subagent-prompt.d.ts.map +0 -1
- package/lib/task-executor.d.ts.map +0 -1
- package/lib/tool/builtin-policy-extractors.d.ts.map +0 -1
- package/lib/tool/context-tools.d.ts.map +0 -1
- package/lib/tool/contracts.d.ts.map +0 -1
- package/lib/tool/conversation-reference-tool.d.ts.map +0 -1
- package/lib/tool/deferred-resolution.d.ts.map +0 -1
- package/lib/tool/executable-tool-registry.d.ts.map +0 -1
- package/lib/tool/index.d.ts.map +0 -1
- package/lib/tool/pre-exec.d.ts.map +0 -1
- package/lib/tool/prepare-turn-tools.d.ts.map +0 -1
- package/lib/tool/runtime.d.ts.map +0 -1
- package/lib/tool/sources.d.ts.map +0 -1
- package/lib/tool/tool-approval-gate.d.ts.map +0 -1
- package/lib/tool/tool-approval-once-store.d.ts.map +0 -1
- package/lib/tool/tool-execution-authority.d.ts.map +0 -1
- package/lib/tool/tool-model-output.d.ts.map +0 -1
- package/lib/tool/tool-runtime.d.ts.map +0 -1
- package/lib/tool/tool-system.d.ts.map +0 -1
- package/lib/tool/turn-tool-runtime.d.ts.map +0 -1
- package/lib/tool-bridge.d.ts.map +0 -1
- package/lib/tool-catalog/deferred-turn-controller.d.ts.map +0 -1
- package/lib/tool-catalog/index.d.ts.map +0 -1
- package/lib/tool-catalog/resolve-config.d.ts.map +0 -1
- package/lib/tool-catalog/session-deferred-store.d.ts.map +0 -1
- package/lib/tool-catalog/tool-catalog.d.ts.map +0 -1
- package/lib/tool-catalog/types.d.ts.map +0 -1
- package/lib/trace/context-budget.d.ts.map +0 -1
- package/lib/trace/index.d.ts.map +0 -1
- package/lib/trace/turn-trace-archive.d.ts.map +0 -1
- package/lib/trace/turn-trace-format.d.ts.map +0 -1
- package/lib/trace/turn-trace-registry.d.ts.map +0 -1
- package/lib/trace/turn-trace-store.d.ts.map +0 -1
- package/lib/trace/turn-trace.d.ts.map +0 -1
- package/lib/turn/agent-turn-context.d.ts.map +0 -1
- package/lib/turn/auto-continue.d.ts.map +0 -1
- package/lib/turn/cancel-intent.d.ts.map +0 -1
- package/lib/turn/deferred-auto-continue.d.ts.map +0 -1
- package/lib/turn/deferred-delivery.d.ts.map +0 -1
- package/lib/turn/deferred-turn-state.d.ts.map +0 -1
- package/lib/turn/execute-agent-turn.d.ts.map +0 -1
- package/lib/turn/inbound-media.d.ts.map +0 -1
- package/lib/turn/inbound-queue-config.d.ts.map +0 -1
- package/lib/turn/inbound-queue-runtime.d.ts.map +0 -1
- package/lib/turn/inbound-turn-queue.d.ts.map +0 -1
- package/lib/turn/index.d.ts.map +0 -1
- package/lib/turn/journal-feed.d.ts.map +0 -1
- package/lib/turn/journal-integrity.d.ts.map +0 -1
- package/lib/turn/persist-deferred-context.d.ts.map +0 -1
- package/lib/turn/persist-subagent-context.d.ts.map +0 -1
- package/lib/turn/process-stream.d.ts.map +0 -1
- package/lib/turn/prompt-access.d.ts.map +0 -1
- package/lib/turn/prompt-api.d.ts.map +0 -1
- package/lib/turn/prompt-controller.d.ts.map +0 -1
- package/lib/turn/prompt-input.d.ts.map +0 -1
- package/lib/turn/session-message-queue.d.ts.map +0 -1
- package/lib/turn/subagent-auto-continue.d.ts.map +0 -1
- package/lib/turn/task-continuation.d.ts.map +0 -1
- package/lib/turn/trigger-cancelled-error.d.ts.map +0 -1
- package/lib/turn/turn-admission-gate.d.ts.map +0 -1
- package/lib/turn/turn-complete.d.ts.map +0 -1
- package/lib/turn/turn-context-bridge.d.ts.map +0 -1
- package/lib/turn/turn-deferred-delta.d.ts.map +0 -1
- package/lib/turn/turn-event-source.d.ts.map +0 -1
- package/lib/turn/turn-ingress.d.ts.map +0 -1
- package/lib/turn/turn-metrics.d.ts.map +0 -1
- package/lib/turn/turn-pipeline.d.ts.map +0 -1
- package/lib/turn/turn-terminal.d.ts.map +0 -1
- package/lib/turn/turn-tracker.d.ts.map +0 -1
- package/lib/types/disposable.d.ts.map +0 -1
- package/lib/typing-indicator/adapter-integration.d.ts.map +0 -1
- package/lib/typing-indicator/index.d.ts.map +0 -1
- package/lib/user-profile.d.ts.map +0 -1
- package/lib/utils/config-env.d.ts.map +0 -1
- package/lib/utils/keyed-mutex.d.ts.map +0 -1
- package/lib/web/bing-search-html.d.ts.map +0 -1
- package/lib/web/web-search-locale.d.ts.map +0 -1
- package/lib/web/web-tool-utils.d.ts.map +0 -1
- package/lib/zhin-agent/index.d.ts.map +0 -1
- package/lib/zhin-agent/runtime-modules.d.ts.map +0 -1
|
@@ -1,18 +1,51 @@
|
|
|
1
1
|
import Ajv from 'ajv';
|
|
2
|
-
import { aiOutboundJsonSchema } from '@zhin.js/core';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
2
|
+
import { aiOutboundJsonSchema, buildAiOutboundJsonSchema, DEFAULT_AI_OUTBOUND_SEGMENT_TYPES, } from '@zhin.js/core';
|
|
3
|
+
const ajv = new Ajv();
|
|
4
|
+
// Compiled, stateless contract validators keyed by segment set; no generation-owned data.
|
|
5
|
+
const validators = new Map();
|
|
6
|
+
const DEFAULT_PROFILE = { types: DEFAULT_AI_OUTBOUND_SEGMENT_TYPES };
|
|
7
|
+
const schemas = new Map([[key(DEFAULT_PROFILE), aiOutboundJsonSchema]]);
|
|
8
|
+
function key(profile) {
|
|
9
|
+
return JSON.stringify([[...profile.types].sort(), profile.extensions ?? {}]);
|
|
10
|
+
}
|
|
11
|
+
/** Provider-facing schema for exactly this endpoint profile (cached, stable identity). */
|
|
12
|
+
export function structuredReplySchema(profile = DEFAULT_PROFILE) {
|
|
13
|
+
const id = key(profile);
|
|
14
|
+
let schema = schemas.get(id);
|
|
15
|
+
if (!schema)
|
|
16
|
+
schemas.set(id, schema = buildAiOutboundJsonSchema(profile.types, profile.extensions));
|
|
17
|
+
return schema;
|
|
18
|
+
}
|
|
19
|
+
const SEGMENT_GUIDE = [
|
|
20
|
+
[['text'], 'text: {"type":"text","data":{"text":"..."}} for plain text.'],
|
|
21
|
+
[['mention'], 'mention: {"type":"mention","data":{"target":"<user id>"}}. The target is a real user platform ID from the current conversation context or a member lookup tool result, never an endpoint ID, role or guessed nickname, and always a JSON string even for numeric IDs ("123", never 123). Use the Sender id to mention the current sender; to mention someone else by name, look the member up with the available platform tools; if the name is ambiguous or no ID is available, ask for clarification in a text segment.'],
|
|
22
|
+
[['markdown'], 'markdown: {"type":"markdown","data":{"content":"..."}} for formatted text (lists, bold, code, tables); platforms without Markdown receive plain text.'],
|
|
23
|
+
[['image', 'audio', 'video', 'file'], 'image / audio / video / file: {"type":"image","data":{"media":{"kind":"url","value":"https://..."}}}; kind is url, path (a workspace file) or base64. Only reference media you produced or were given; never Markdown image syntax.'],
|
|
24
|
+
[['keyboard'], 'keyboard: {"type":"keyboard","data":{"rows":[[{"label":"查看详情","payload":"/detail 1"}]]}} offers quick-reply buttons (at most 5 per row); tapping one sends its payload as the user\'s next message. Place it after the text it belongs to and use it only for concrete next steps.'],
|
|
25
|
+
[['share'], 'share: {"type":"share","data":{"url":"https://...","title":"..."}} for a link card.'],
|
|
26
|
+
[['dice', 'rps'], 'dice / rps: {"type":"dice","data":{}} or {"type":"rps","data":{}} sends the platform\'s random dice or rock-paper-scissors.'],
|
|
27
|
+
];
|
|
28
|
+
/** The final-reply contract for this endpoint; lists only the segment types it can deliver. */
|
|
29
|
+
export function structuredReplyInstruction(profile = DEFAULT_PROFILE) {
|
|
30
|
+
const { types } = profile;
|
|
31
|
+
const hints = types.flatMap(type => {
|
|
32
|
+
const hint = profile.extensions?.[type]?.hint;
|
|
33
|
+
return hint ? [`- ${type} on this platform: ${hint}`] : [];
|
|
34
|
+
});
|
|
35
|
+
return [
|
|
36
|
+
'Your final reply must be a JSON object matching the supplied schema: {"messages":[{"segments":[...]}]} with no Markdown fence or surrounding prose.',
|
|
37
|
+
'Each item of messages is one chat message, sent in order. Usually send one; split into two or three only where a person would send separate messages, such as a quick reaction followed by the answer. Example: {"messages":[{"segments":[{"type":"text","data":{"text":"调好了"}}]},{"segments":[{"type":"text","data":{"text":"你再试试"}}]}]}.',
|
|
38
|
+
`Segment types available on this platform: ${types.join(', ')}.`,
|
|
39
|
+
...SEGMENT_GUIDE.filter(([covers]) => covers.some(type => types.includes(type))).map(([, line]) => `- ${line}`),
|
|
40
|
+
...hints,
|
|
41
|
+
'Do not invent IDs or media references. Plain @name text does not notify anyone. Keep mentions, media and buttons as their own segments and preserve the intended order.',
|
|
42
|
+
'The reply already goes to this conversation: mention someone only to call that person in.',
|
|
43
|
+
'Business tool calls use their normal tool schemas; this message schema describes only the final user-facing answer, including the json response tool when supplied. Use {"messages":[]} only when no reply is needed.',
|
|
44
|
+
].join('\n');
|
|
45
|
+
}
|
|
46
|
+
export const STRUCTURED_REPLY_INSTRUCTION = structuredReplyInstruction();
|
|
14
47
|
/** Reject the whole response on mismatch: never deliver raw JSON or partial segments. */
|
|
15
|
-
export function decodeStructuredReply(raw) {
|
|
48
|
+
export function decodeStructuredReply(raw, profile = DEFAULT_PROFILE) {
|
|
16
49
|
let value;
|
|
17
50
|
try {
|
|
18
51
|
value = JSON.parse(raw);
|
|
@@ -20,6 +53,14 @@ export function decodeStructuredReply(raw) {
|
|
|
20
53
|
catch {
|
|
21
54
|
throw new Error('Agent final reply is not valid JSON');
|
|
22
55
|
}
|
|
56
|
+
// Replies persisted before multi-message replies are a single {segments} message; models may echo it.
|
|
57
|
+
if (value && typeof value === 'object' && !Array.isArray(value) && 'segments' in value && !('messages' in value)) {
|
|
58
|
+
value = { messages: [value] };
|
|
59
|
+
}
|
|
60
|
+
const id = key(profile);
|
|
61
|
+
let validateReply = validators.get(id);
|
|
62
|
+
if (!validateReply)
|
|
63
|
+
validators.set(id, validateReply = ajv.compile(structuredReplySchema(profile)));
|
|
23
64
|
if (!validateReply(value)) {
|
|
24
65
|
const errors = validateReply.errors ?? [];
|
|
25
66
|
const fields = errors.filter(error => error.keyword === 'type' && error.instancePath.includes('/data/'));
|
|
@@ -27,6 +68,16 @@ export function decodeStructuredReply(raw) {
|
|
|
27
68
|
.map(error => `${error.instancePath || '/'} ${error.message}`).join('; ');
|
|
28
69
|
throw new Error(`Agent final reply does not match the message schema: ${detail}`);
|
|
29
70
|
}
|
|
30
|
-
return value.
|
|
71
|
+
return value.messages.filter(message => message.segments.length > 0)
|
|
72
|
+
.map(message => ({ type: 'message', segments: message.segments.map(segment => withoutEmptyModelFields(segment, profile)) }));
|
|
73
|
+
}
|
|
74
|
+
/** Declared extension fields are required in the schema; "" means the model had no value. */
|
|
75
|
+
function withoutEmptyModelFields(segment, profile) {
|
|
76
|
+
const fields = profile.extensions?.[segment.type]?.fields;
|
|
77
|
+
const data = segment.data;
|
|
78
|
+
if (!fields?.some(field => data[field] === ''))
|
|
79
|
+
return segment;
|
|
80
|
+
return { ...segment, data: Object.fromEntries(Object.entries(data)
|
|
81
|
+
.filter(([field, value]) => !(fields.includes(field) && value === ''))) };
|
|
31
82
|
}
|
|
32
83
|
//# sourceMappingURL=structured-reply.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"structured-reply.js","sourceRoot":"","sources":["../../src/outbound/structured-reply.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAIrD,gFAAgF;AAChF,MAAM,aAAa,GAAG,IAAI,GAAG,EAAE,CAAC,OAAO,CAA0B,oBAAoB,CAAC,CAAC;AAEvF,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC1C,sIAAsI;IACtI,6KAA6K;IAC7K,qPAAqP;IACrP,mOAAmO;IACnO,+PAA+P;IAC/P,0IAA0I;IAC1I,uNAAuN;CACxN,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,yFAAyF;AACzF,MAAM,UAAU,qBAAqB,CAAC,GAAW;IAC/C,IAAI,KAAc,CAAC;IACnB,IAAI,CAAC;QAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IAAC,CAAC;IAClG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,IAAI,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;QACzG,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;aACzD,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,YAAY,IAAI,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5E,MAAM,IAAI,KAAK,CAAC,wDAAwD,MAAM,EAAE,CAAC,CAAC;IACpF,CAAC;IACD,OAAO,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACtF,CAAC"}
|
|
1
|
+
{"version":3,"file":"structured-reply.js","sourceRoot":"","sources":["../../src/outbound/structured-reply.ts"],"names":[],"mappings":"AAAA,OAAO,GAA8B,MAAM,KAAK,CAAC;AACjD,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EACzB,iCAAiC,GAGlC,MAAM,eAAe,CAAC;AAIvB,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;AACtB,0FAA0F;AAC1F,MAAM,UAAU,GAAG,IAAI,GAAG,EAA6C,CAAC;AAKxE,MAAM,eAAe,GAA6B,EAAE,KAAK,EAAE,iCAAiC,EAAE,CAAC;AAC/F,MAAM,OAAO,GAAG,IAAI,GAAG,CAAkC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC;AAEzG,SAAS,GAAG,CAAC,OAAiC;IAC5C,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC;AAC/E,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,qBAAqB,CAAC,UAAoC,eAAe;IACvF,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;IACxB,IAAI,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC7B,IAAI,CAAC,MAAM;QAAE,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,yBAAyB,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;IACpG,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,aAAa,GAAqE;IACtF,CAAC,CAAC,MAAM,CAAC,EAAE,6DAA6D,CAAC;IACzE,CAAC,CAAC,SAAS,CAAC,EAAE,2fAA2f,CAAC;IAC1gB,CAAC,CAAC,UAAU,CAAC,EAAE,uJAAuJ,CAAC;IACvK,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,qOAAqO,CAAC;IAC5Q,CAAC,CAAC,UAAU,CAAC,EAAE,oRAAoR,CAAC;IACpS,CAAC,CAAC,OAAO,CAAC,EAAE,qFAAqF,CAAC;IAClG,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,6HAA6H,CAAC;CACjJ,CAAC;AAEF,+FAA+F;AAC/F,MAAM,UAAU,0BAA0B,CAAC,UAAoC,eAAe;IAC5F,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACjC,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;QAC9C,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,sBAAsB,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7D,CAAC,CAAC,CAAC;IACH,OAAO;QACL,qJAAqJ;QACrJ,4UAA4U;QAC5U,6CAA6C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;QAChE,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;QAC/G,GAAG,KAAK;QACR,yKAAyK;QACzK,2FAA2F;QAC3F,uNAAuN;KACxN,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,CAAC,MAAM,4BAA4B,GAAG,0BAA0B,EAAE,CAAC;AAEzE,yFAAyF;AACzF,MAAM,UAAU,qBAAqB,CACnC,GAAW,EACX,UAAoC,eAAe;IAEnD,IAAI,KAAc,CAAC;IACnB,IAAI,CAAC;QAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IAAC,CAAC;IAClG,sGAAsG;IACtG,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,UAAU,IAAI,KAAK,IAAI,CAAC,CAAC,UAAU,IAAI,KAAK,CAAC,EAAE,CAAC;QACjH,KAAK,GAAG,EAAE,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;IAChC,CAAC;IACD,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;IACxB,IAAI,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACvC,IAAI,CAAC,aAAa;QAAE,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,aAAa,GAAG,GAAG,CAAC,OAAO,CAAkB,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACrH,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,IAAI,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;QACzG,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;aACzD,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,YAAY,IAAI,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5E,MAAM,IAAI,KAAK,CAAC,wDAAwD,MAAM,EAAE,CAAC,CAAC;IACpF,CAAC;IACD,OAAO,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;SACjE,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,uBAAuB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACjI,CAAC;AAED,6FAA6F;AAC7F,SAAS,uBAAuB,CAAC,OAAgB,EAAE,OAAiC;IAClF,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,IAA6B,CAAC,EAAE,MAAM,CAAC;IACnF,MAAM,IAAI,GAAG,OAAO,CAAC,IAA+B,CAAC;IACrD,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAAE,OAAO,OAAO,CAAC;IAC/D,OAAO,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;aAC/D,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,EAAa,CAAC;AACzF,CAAC","sourcesContent":["import Ajv, { type ValidateFunction } from 'ajv';\nimport {\n aiOutboundJsonSchema,\n buildAiOutboundJsonSchema,\n DEFAULT_AI_OUTBOUND_SEGMENT_TYPES,\n type AiOutboundSegmentProfile,\n type AiOutboundSegmentType,\n} from '@zhin.js/core';\nimport type { Segment } from '@zhin.js/im-contract';\nimport type { AgentOutputElement } from './agent-output.js';\n\nconst ajv = new Ajv();\n// Compiled, stateless contract validators keyed by segment set; no generation-owned data.\nconst validators = new Map<string, ValidateFunction<StructuredReply>>();\n\ninterface StructuredReply {\n messages: { segments: Segment[] }[];\n}\nconst DEFAULT_PROFILE: AiOutboundSegmentProfile = { types: DEFAULT_AI_OUTBOUND_SEGMENT_TYPES };\nconst schemas = new Map<string, Record<string, unknown>>([[key(DEFAULT_PROFILE), aiOutboundJsonSchema]]);\n\nfunction key(profile: AiOutboundSegmentProfile): string {\n return JSON.stringify([[...profile.types].sort(), profile.extensions ?? {}]);\n}\n\n/** Provider-facing schema for exactly this endpoint profile (cached, stable identity). */\nexport function structuredReplySchema(profile: AiOutboundSegmentProfile = DEFAULT_PROFILE): Record<string, unknown> {\n const id = key(profile);\n let schema = schemas.get(id);\n if (!schema) schemas.set(id, schema = buildAiOutboundJsonSchema(profile.types, profile.extensions));\n return schema;\n}\n\nconst SEGMENT_GUIDE: readonly (readonly [readonly AiOutboundSegmentType[], string])[] = [\n [['text'], 'text: {\"type\":\"text\",\"data\":{\"text\":\"...\"}} for plain text.'],\n [['mention'], 'mention: {\"type\":\"mention\",\"data\":{\"target\":\"<user id>\"}}. The target is a real user platform ID from the current conversation context or a member lookup tool result, never an endpoint ID, role or guessed nickname, and always a JSON string even for numeric IDs (\"123\", never 123). Use the Sender id to mention the current sender; to mention someone else by name, look the member up with the available platform tools; if the name is ambiguous or no ID is available, ask for clarification in a text segment.'],\n [['markdown'], 'markdown: {\"type\":\"markdown\",\"data\":{\"content\":\"...\"}} for formatted text (lists, bold, code, tables); platforms without Markdown receive plain text.'],\n [['image', 'audio', 'video', 'file'], 'image / audio / video / file: {\"type\":\"image\",\"data\":{\"media\":{\"kind\":\"url\",\"value\":\"https://...\"}}}; kind is url, path (a workspace file) or base64. Only reference media you produced or were given; never Markdown image syntax.'],\n [['keyboard'], 'keyboard: {\"type\":\"keyboard\",\"data\":{\"rows\":[[{\"label\":\"查看详情\",\"payload\":\"/detail 1\"}]]}} offers quick-reply buttons (at most 5 per row); tapping one sends its payload as the user\\'s next message. Place it after the text it belongs to and use it only for concrete next steps.'],\n [['share'], 'share: {\"type\":\"share\",\"data\":{\"url\":\"https://...\",\"title\":\"...\"}} for a link card.'],\n [['dice', 'rps'], 'dice / rps: {\"type\":\"dice\",\"data\":{}} or {\"type\":\"rps\",\"data\":{}} sends the platform\\'s random dice or rock-paper-scissors.'],\n];\n\n/** The final-reply contract for this endpoint; lists only the segment types it can deliver. */\nexport function structuredReplyInstruction(profile: AiOutboundSegmentProfile = DEFAULT_PROFILE): string {\n const { types } = profile;\n const hints = types.flatMap(type => {\n const hint = profile.extensions?.[type]?.hint;\n return hint ? [`- ${type} on this platform: ${hint}`] : [];\n });\n return [\n 'Your final reply must be a JSON object matching the supplied schema: {\"messages\":[{\"segments\":[...]}]} with no Markdown fence or surrounding prose.',\n 'Each item of messages is one chat message, sent in order. Usually send one; split into two or three only where a person would send separate messages, such as a quick reaction followed by the answer. Example: {\"messages\":[{\"segments\":[{\"type\":\"text\",\"data\":{\"text\":\"调好了\"}}]},{\"segments\":[{\"type\":\"text\",\"data\":{\"text\":\"你再试试\"}}]}]}.',\n `Segment types available on this platform: ${types.join(', ')}.`,\n ...SEGMENT_GUIDE.filter(([covers]) => covers.some(type => types.includes(type))).map(([, line]) => `- ${line}`),\n ...hints,\n 'Do not invent IDs or media references. Plain @name text does not notify anyone. Keep mentions, media and buttons as their own segments and preserve the intended order.',\n 'The reply already goes to this conversation: mention someone only to call that person in.',\n 'Business tool calls use their normal tool schemas; this message schema describes only the final user-facing answer, including the json response tool when supplied. Use {\"messages\":[]} only when no reply is needed.',\n ].join('\\n');\n}\n\nexport const STRUCTURED_REPLY_INSTRUCTION = structuredReplyInstruction();\n\n/** Reject the whole response on mismatch: never deliver raw JSON or partial segments. */\nexport function decodeStructuredReply(\n raw: string,\n profile: AiOutboundSegmentProfile = DEFAULT_PROFILE,\n): AgentOutputElement[] {\n let value: unknown;\n try { value = JSON.parse(raw); } catch { throw new Error('Agent final reply is not valid JSON'); }\n // Replies persisted before multi-message replies are a single {segments} message; models may echo it.\n if (value && typeof value === 'object' && !Array.isArray(value) && 'segments' in value && !('messages' in value)) {\n value = { messages: [value] };\n }\n const id = key(profile);\n let validateReply = validators.get(id);\n if (!validateReply) validators.set(id, validateReply = ajv.compile<StructuredReply>(structuredReplySchema(profile)));\n if (!validateReply(value)) {\n const errors = validateReply.errors ?? [];\n const fields = errors.filter(error => error.keyword === 'type' && error.instancePath.includes('/data/'));\n const detail = (fields.length ? fields : errors).slice(0, 8)\n .map(error => `${error.instancePath || '/'} ${error.message}`).join('; ');\n throw new Error(`Agent final reply does not match the message schema: ${detail}`);\n }\n return value.messages.filter(message => message.segments.length > 0)\n .map(message => ({ type: 'message', segments: message.segments.map(segment => withoutEmptyModelFields(segment, profile)) }));\n}\n\n/** Declared extension fields are required in the schema; \"\" means the model had no value. */\nfunction withoutEmptyModelFields(segment: Segment, profile: AiOutboundSegmentProfile): Segment {\n const fields = profile.extensions?.[segment.type as AiOutboundSegmentType]?.fields;\n const data = segment.data as Record<string, unknown>;\n if (!fields?.some(field => data[field] === '')) return segment;\n return { ...segment, data: Object.fromEntries(Object.entries(data)\n .filter(([field, value]) => !(fields.includes(field) && value === ''))) } as Segment;\n}\n"]}
|
|
@@ -2,4 +2,3 @@ import type { AIHookEvent } from './resource-hub/types.js';
|
|
|
2
2
|
import type { AIEventPayload } from './ai-event-contract.js';
|
|
3
3
|
/** Emit AI hook and session lifecycle events onto the Runtime bus. */
|
|
4
4
|
export declare function emitAIHookBusEvent(event: AIHookEvent, source: AIEventPayload['source'], agentId?: string): void;
|
|
5
|
-
//# sourceMappingURL=plugin-ai-hook-bus.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-ai-hook-bus.js","sourceRoot":"","sources":["../src/plugin-ai-hook-bus.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,sEAAsE;AACtE,MAAM,UAAU,kBAAkB,CAChC,KAAkB,EAClB,MAAgC,EAChC,OAAgB;IAEhB,MAAM,OAAO,GAAG,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/D,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC1C,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;QACvD,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC3D,gBAAgB,CAAC,IAAI,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"plugin-ai-hook-bus.js","sourceRoot":"","sources":["../src/plugin-ai-hook-bus.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,sEAAsE;AACtE,MAAM,UAAU,kBAAkB,CAChC,KAAkB,EAClB,MAAgC,EAChC,OAAgB;IAEhB,MAAM,OAAO,GAAG,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/D,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC1C,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;QACvD,gBAAgB,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC3D,gBAAgB,CAAC,IAAI,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;AACH,CAAC","sourcesContent":["import type { AIHookEvent } from './resource-hub/types.js';\nimport { createAIHookBusPayload } from './ai-event-bus.js';\nimport type { AIEventPayload } from './ai-event-contract.js';\nimport { aiHookRuntimeBus } from './ai-hook-runtime-bus.js';\n\n/** Emit AI hook and session lifecycle events onto the Runtime bus. */\nexport function emitAIHookBusEvent(\n event: AIHookEvent,\n source: AIEventPayload['source'],\n agentId?: string,\n): void {\n const payload = createAIHookBusPayload(event, source, agentId);\n aiHookRuntimeBus.emit('ai.hook', payload);\n if (event.type === 'session' && event.action === 'new') {\n aiHookRuntimeBus.emit('ai.session.new', payload);\n }\n if (event.type === 'session' && event.action === 'compact') {\n aiHookRuntimeBus.emit('ai.session.compact', payload);\n }\n}\n"]}
|
|
@@ -29,4 +29,3 @@ export declare class PluginAILoopHookRegistry {
|
|
|
29
29
|
runAfterToolCall(ctx: PluginAfterToolCallContext): Promise<void>;
|
|
30
30
|
runTransformContext(messages: AgentMessage[], ctx: PluginTransformContextContext): Promise<AgentMessage[]>;
|
|
31
31
|
}
|
|
32
|
-
//# sourceMappingURL=plugin-loop-hooks.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-loop-hooks.js","sourceRoot":"","sources":["../src/plugin-loop-hooks.ts"],"names":[],"mappings":"AAkCA,MAAM,OAAO,wBAAwB;IAClB,cAAc,GAAkC,EAAE,CAAC;IACnD,aAAa,GAAiC,EAAE,CAAC;IACjD,iBAAiB,GAAoC,EAAE,CAAC;IAEzE,gBAAgB,CAAC,OAAoC;QACnD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClC,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC/C,IAAI,CAAC,IAAI,CAAC;gBAAE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/C,CAAC,CAAC;IACJ,CAAC;IAED,eAAe,CAAC,OAAmC;QACjD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjC,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC9C,IAAI,CAAC,IAAI,CAAC;gBAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9C,CAAC,CAAC;IACJ,CAAC;IAED,kBAAkB,CAAC,OAAsC;QACvD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrC,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAClD,IAAI,CAAC,IAAI,CAAC;gBAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAClD,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,iBAAiB,CACrB,GAAgC;QAEhC,IAAI,MAAwC,CAAC;QAC7C,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC1C,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;gBAClC,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,GAAG,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC;oBAC1C,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK;wBAAE,OAAO,MAAM,CAAC;gBAC9C,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,wBAAwB;YAC1B,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,GAA+B;QACpD,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACzC,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC;YAAC,MAAM,CAAC;gBACP,UAAU;YACZ,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,QAAwB,EACxB,GAAkC;QAElC,IAAI,GAAG,GAAG,QAAQ,CAAC;QACnB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC7C,IAAI,CAAC;gBACH,GAAG,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAChC,CAAC;YAAC,MAAM,CAAC;gBACP,UAAU;YACZ,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"plugin-loop-hooks.js","sourceRoot":"","sources":["../src/plugin-loop-hooks.ts"],"names":[],"mappings":"AAkCA,MAAM,OAAO,wBAAwB;IAClB,cAAc,GAAkC,EAAE,CAAC;IACnD,aAAa,GAAiC,EAAE,CAAC;IACjD,iBAAiB,GAAoC,EAAE,CAAC;IAEzE,gBAAgB,CAAC,OAAoC;QACnD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClC,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC/C,IAAI,CAAC,IAAI,CAAC;gBAAE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/C,CAAC,CAAC;IACJ,CAAC;IAED,eAAe,CAAC,OAAmC;QACjD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjC,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC9C,IAAI,CAAC,IAAI,CAAC;gBAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9C,CAAC,CAAC;IACJ,CAAC;IAED,kBAAkB,CAAC,OAAsC;QACvD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrC,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAClD,IAAI,CAAC,IAAI,CAAC;gBAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAClD,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,iBAAiB,CACrB,GAAgC;QAEhC,IAAI,MAAwC,CAAC;QAC7C,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC1C,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;gBAClC,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,GAAG,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC;oBAC1C,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK;wBAAE,OAAO,MAAM,CAAC;gBAC9C,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,wBAAwB;YAC1B,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,GAA+B;QACpD,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACzC,IAAI,CAAC;gBACH,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC;YAAC,MAAM,CAAC;gBACP,UAAU;YACZ,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,QAAwB,EACxB,GAAkC;QAElC,IAAI,GAAG,GAAG,QAAQ,CAAC;QACnB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC7C,IAAI,CAAC;gBACH,GAAG,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAChC,CAAC;YAAC,MAAM,CAAC;gBACP,UAAU;YACZ,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;CACF","sourcesContent":["/**\n * Plugin hooks bridged to agentLoop (ADR 0010 D5).\n */\nimport type { AgentMessage, BeforeToolCallResult, ParsedToolCall } from '@zhin.js/ai';\n\nexport interface PluginBeforeToolCallContext {\n toolCall: ParsedToolCall;\n sessionId?: string;\n}\n\nexport interface PluginAfterToolCallContext {\n toolCall: ParsedToolCall;\n result: AgentMessage;\n sessionId?: string;\n}\n\nexport interface PluginTransformContextContext {\n sessionId?: string;\n signal?: AbortSignal;\n}\n\nexport type PluginBeforeToolCallHandler = (\n ctx: PluginBeforeToolCallContext,\n) => Promise<BeforeToolCallResult | void> | BeforeToolCallResult | void;\n\nexport type PluginAfterToolCallHandler = (\n ctx: PluginAfterToolCallContext,\n) => Promise<void> | void;\n\nexport type PluginTransformContextHandler = (\n messages: AgentMessage[],\n ctx: PluginTransformContextContext,\n) => Promise<AgentMessage[]> | AgentMessage[];\n\nexport class PluginAILoopHookRegistry {\n private readonly beforeHandlers: PluginBeforeToolCallHandler[] = [];\n private readonly afterHandlers: PluginAfterToolCallHandler[] = [];\n private readonly transformHandlers: PluginTransformContextHandler[] = [];\n\n onBeforeToolCall(handler: PluginBeforeToolCallHandler): () => void {\n this.beforeHandlers.push(handler);\n return () => {\n const i = this.beforeHandlers.indexOf(handler);\n if (i >= 0) this.beforeHandlers.splice(i, 1);\n };\n }\n\n onAfterToolCall(handler: PluginAfterToolCallHandler): () => void {\n this.afterHandlers.push(handler);\n return () => {\n const i = this.afterHandlers.indexOf(handler);\n if (i >= 0) this.afterHandlers.splice(i, 1);\n };\n }\n\n onTransformContext(handler: PluginTransformContextHandler): () => void {\n this.transformHandlers.push(handler);\n return () => {\n const i = this.transformHandlers.indexOf(handler);\n if (i >= 0) this.transformHandlers.splice(i, 1);\n };\n }\n\n async runBeforeToolCall(\n ctx: PluginBeforeToolCallContext,\n ): Promise<BeforeToolCallResult | void> {\n let merged: BeforeToolCallResult | undefined;\n for (const handler of this.beforeHandlers) {\n try {\n const result = await handler(ctx);\n if (result) {\n merged = { ...(merged ?? {}), ...result };\n if (result.allowed === false) return merged;\n }\n } catch {\n // isolate plugin errors\n }\n }\n return merged;\n }\n\n async runAfterToolCall(ctx: PluginAfterToolCallContext): Promise<void> {\n for (const handler of this.afterHandlers) {\n try {\n await handler(ctx);\n } catch {\n // isolate\n }\n }\n }\n\n async runTransformContext(\n messages: AgentMessage[],\n ctx: PluginTransformContextContext,\n ): Promise<AgentMessage[]> {\n let out = messages;\n for (const handler of this.transformHandlers) {\n try {\n out = await handler(out, ctx);\n } catch {\n // isolate\n }\n }\n return out;\n }\n}\n"]}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
1
|
import type { AgentEventBus } from '../event/ai-event-bus.js';
|
|
2
2
|
/** Generation-owned Agent lifecycle event publication boundary. */
|
|
3
3
|
export declare const agentEventBusToken: import("@zhin.js/plugin-runtime").Token<AgentEventBus>;
|
|
4
|
-
//# sourceMappingURL=agent-event-bus.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-event-bus.js","sourceRoot":"","sources":["../../src/plugin-runtime/agent-event-bus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGtD,mEAAmE;AACnE,MAAM,CAAC,MAAM,kBAAkB,GAAG,WAAW,CAC3C,sBAAsB,EACtB,2DAA2D,CAC5D,CAAC"}
|
|
1
|
+
{"version":3,"file":"agent-event-bus.js","sourceRoot":"","sources":["../../src/plugin-runtime/agent-event-bus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGtD,mEAAmE;AACnE,MAAM,CAAC,MAAM,kBAAkB,GAAG,WAAW,CAC3C,sBAAsB,EACtB,2DAA2D,CAC5D,CAAC","sourcesContent":["import { createToken } from '@zhin.js/plugin-runtime';\nimport type { AgentEventBus } from '../event/ai-event-bus.js';\n\n/** Generation-owned Agent lifecycle event publication boundary. */\nexport const agentEventBusToken = createToken<AgentEventBus>(\n 'zhin.agent.event-bus',\n 'Agent lifecycle event bus owned by one Runtime generation',\n);\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-host-port.js","sourceRoot":"","sources":["../../src/plugin-runtime/agent-host-port.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AA8CtD,MAAM,CAAC,MAAM,cAAc,GAAG,WAAW,CACvC,iBAAiB,EACjB,mFAAmF,CACpF,CAAC"}
|
|
1
|
+
{"version":3,"file":"agent-host-port.js","sourceRoot":"","sources":["../../src/plugin-runtime/agent-host-port.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AA8CtD,MAAM,CAAC,MAAM,cAAc,GAAG,WAAW,CACvC,iBAAiB,EACjB,mFAAmF,CACpF,CAAC","sourcesContent":["import { createToken } from '@zhin.js/plugin-runtime';\nimport type { AssistantRuntimeHandle } from '../assistant/runtime-contract.js';\nimport type { SessionTreeRuntimeHandle } from '../session-tree-runtime.js';\nimport type { AgentTraceRuntimeHandle } from './agent-trace-runtime.js';\nimport type { ResolvedAgentBinding } from '../config/types.js';\nimport type { TurnOutcome, TurnRequest } from '../turn/turn-ingress.js';\n\n/**\n * Stable Host boundary for protocols that expose Agent capabilities externally.\n * Consumers must not reach into CLI installer state or the legacy Plugin graph.\n */\nexport interface AgentHostPort {\n readonly protocol: AgentHostProtocolPort;\n readonly introspection: AgentHostIntrospectionPort;\n readonly console: AgentHostConsolePort;\n}\n\n/**\n * Canonical protocol seam. A2A/HTTP adapters may enumerate configured\n * bindings and submit a TurnRequest, but concrete AIService/ZhinAgent objects\n * never escape the Agent Host.\n */\nexport interface AgentHostProtocolPort {\n listBindings(): readonly ResolvedAgentBinding[];\n execute(bindingName: string, request: TurnRequest): Promise<TurnOutcome>;\n}\n\nexport interface AgentHostMcpSummary {\n readonly name: string;\n readonly connected: boolean;\n readonly toolCount: number;\n}\n\n/** Read-only projection for Console; no concrete ZhinAgent may escape through it. */\nexport interface AgentHostIntrospectionPort {\n listMcpServers(): readonly AgentHostMcpSummary[];\n}\n\nexport interface AgentHostConsolePort {\n readonly sessionTree: SessionTreeRuntimeHandle;\n /** Bindings from this exact generation, used for Catalog display and validation. */\n listBindings(): readonly ResolvedAgentBinding[];\n readonly assistant: AssistantRuntimeHandle | null;\n readonly trace: AgentTraceRuntimeHandle;\n}\n\nexport const agentHostToken = createToken<AgentHostPort>(\n 'zhin.host.agent',\n 'Canonical Agent protocol and operational projections owned by the Root generation',\n);\n"]}
|
|
@@ -72,4 +72,3 @@ export declare class AgentRuntime extends SnapshotAttachedRuntime {
|
|
|
72
72
|
}
|
|
73
73
|
export declare function expandMcpTools(capabilities: AgentCapabilities, allowedServers: readonly string[]): Promise<ToolCapability[]>;
|
|
74
74
|
export {};
|
|
75
|
-
//# sourceMappingURL=agent-runtime.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-runtime.js","sourceRoot":"","sources":["../../src/plugin-runtime/agent-runtime.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent-runtime.js","sourceRoot":"","sources":["../../src/plugin-runtime/agent-runtime.ts"],"names":[],"mappings":"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","sourcesContent":["import { createToken, type PluginId, type SnapshotLease, type SnapshotReader } from '@zhin.js/plugin-runtime';\nimport { applyTurnTrust } from '../security/trust-level.js';\nimport type { JournalStore } from '@zhin.js/ai/journal-store';\nimport { PersistentTurnJournal } from '../journal/persistent-turn-journal.js';\nimport { TurnTraceCollector } from '../trace/turn-trace.js';\nimport { createTracingJournal, registerTurnTrace } from '../trace/turn-trace-registry.js';\nimport { createJournalFeed } from '../turn/journal-feed.js';\nimport type { TurnTraceStore } from '../trace/turn-trace-store.js';\nimport { executeAgentTurn, type TurnEventObserver } from '../turn/execute-agent-turn.js';\nimport {\n createTurnIngress,\n type TurnOutcome,\n type TurnRequest,\n} from '../turn/turn-ingress.js';\nimport {\n CapabilityIngress,\n type AgentCapabilities,\n type ToolCapability,\n} from './capability-ingress.js';\nimport { TurnToolRuntime, type TurnToolOutcome } from '../tool/turn-tool-runtime.js';\nimport { requireToolInputSchema, type ToolDescriptor } from '@zhin.js/tool';\nimport type { ResolvedAgentBinding } from '../config/types.js';\nimport { runWithAgentTurnConfiguration } from '../turn/agent-turn-context.js';\nimport { TurnSupersededError } from '../turn/prompt-controller.js';\nimport { createConversationReferenceCapability } from '../tool/conversation-reference-tool.js';\nimport { drainAgentTurnDecisionObservations, runWithAgentDecisionTurn } from './decision-runtime.js';\nimport type { AgentDecisionRuntime } from '../decision/types.js';\n\nabstract class SnapshotAttachedRuntime {\n protected snapshots?: SnapshotReader;\n\n attach(snapshots: SnapshotReader): void {\n if (this.snapshots && this.snapshots !== snapshots) {\n throw new Error(`${this.constructor.name} is already attached to another Root`);\n }\n this.snapshots = snapshots;\n }\n\n protected requireSnapshots(): SnapshotReader {\n if (!this.snapshots) throw new Error(`${this.constructor.name} is not attached to a Root`);\n return this.snapshots;\n }\n}\n\nexport const turnJournalStoreToken = createToken<JournalStore>(\n 'zhin.agent.turn-journal-store',\n 'Durable Agent turn event journal store',\n);\n\nexport interface ExternalToolCapability extends ToolDescriptor {\n execute(input: Readonly<Record<string, unknown>>, toolUseId: string): Promise<TurnToolOutcome>;\n}\n\n/** Canonical fixed-generation execution authority for external tool protocols. */\nexport class ToolIngressRuntime extends SnapshotAttachedRuntime {\n readonly #ingress = new CapabilityIngress();\n\n async withTools<TResult>(\n owner: PluginId,\n request: TurnRequest,\n operation: (tools: readonly ExternalToolCapability[]) => TResult | Promise<TResult>,\n ): Promise<TResult> {\n const lease = this.requireSnapshots().acquire();\n let active = true;\n try {\n const capabilities = await this.#ingress.read(lease.value, owner, () => active, request);\n let invocationSequence = 0;\n const tools = Object.freeze(capabilities.tools\n .filter((tool) => !tool.hidden)\n .map(({ execute: _execute, ...descriptor }) => Object.freeze({\n ...descriptor,\n execute: async (input: Readonly<Record<string, unknown>>, toolUseId: string) => {\n if (!active) throw new Error('External Tool capability scope has ended');\n invocationSequence += 1;\n const invocationRequest: TurnRequest = {\n ...request,\n identity: {\n traceId: request.identity.traceId,\n turnId: `${request.identity.turnId}:${invocationSequence}`,\n },\n };\n const turn = createIngressTurn(lease.value, invocationRequest, capabilities);\n const runtime = new TurnToolRuntime(turn, capabilities.tools);\n const outcome = await runtime.execute(descriptor.name, input, toolUseId);\n await appendExternalToolTerminal(turn, outcome);\n return outcome;\n },\n })));\n return await operation(tools);\n } finally {\n active = false;\n lease.release();\n }\n }\n}\n\nasync function appendExternalToolTerminal(\n turn: import('../turn/turn-ingress.js').TurnIngress,\n outcome: TurnToolOutcome,\n): Promise<void> {\n if (outcome.status === 'completed') {\n await turn.ports.journal.append({\n type: 'turn_end',\n output: [],\n usage: { promptTokens: 0, completionTokens: 0, totalTokens: 0 },\n });\n return;\n }\n if (outcome.status === 'cancelled') {\n await turn.ports.journal.append({\n type: 'turn_cancelled',\n code: 'cancelled',\n reason: outcome.reason,\n });\n return;\n }\n const message = outcome.status === 'failed' ? outcome.error : outcome.reason;\n await turn.ports.journal.append({\n type: 'error',\n error: new Error(message),\n recoverable: false,\n });\n}\n\n/** Single Agent execution authority: snapshot + capabilities + terminal algebra. */\nexport interface AgentTurnExecutionContext {\n readonly decision?: AgentDecisionRuntime;\n readonly turn: import('../turn/turn-ingress.js').TurnIngress;\n readonly capabilities: Omit<AgentCapabilities, 'tools'> & {\n readonly tools: readonly ToolDescriptor[];\n };\n readonly tools: TurnToolRuntime;\n /** Executable descriptors bound to the same active generation lease. */\n readonly toolCapabilities: readonly ToolCapability[];\n readonly selection: AgentCapabilitySelection;\n /** Signals that this ingress has reached the ordered PromptController boundary. */\n readonly admit?: () => void;\n}\n\n/** Root-owned serialization authority shared by every Agent generation. */\nexport class AgentTurnCoordinator {\n readonly #tails = new Map<string, Promise<void>>();\n readonly #admissions = new Map<string, Promise<void>>();\n readonly #active = new Map<string, AbortController>();\n\n async run<TResult>(\n sessionKey: string,\n signal: AbortSignal,\n operation: () => Promise<TResult>,\n ): Promise<TResult> {\n const previous = this.#tails.get(sessionKey) ?? Promise.resolve();\n let release!: () => void;\n const current = new Promise<void>((resolve) => { release = resolve; });\n const tail = previous.catch(() => undefined).then(() => current);\n this.#tails.set(sessionKey, tail);\n try {\n await waitForTurn(previous.catch(() => undefined), signal);\n return await operation();\n } finally {\n release();\n if (this.#tails.get(sessionKey) === tail) this.#tails.delete(sessionKey);\n }\n }\n\n async runIntent<TResult>(\n sessionKey: string,\n signal: AbortSignal,\n intent: import('../turn/turn-ingress.js').TurnIntent,\n _principal: import('../turn/turn-ingress.js').TurnPrincipal,\n operation: (admit: () => void, signal: AbortSignal) => Promise<TResult>,\n ): Promise<TResult> {\n const previous = this.#tails.get(sessionKey) ?? Promise.resolve();\n const previousAdmission = this.#admissions.get(sessionKey);\n let admit!: () => void;\n let complete!: () => void;\n const admitted = new Promise<void>((resolve) => { admit = once(resolve); });\n const completed = new Promise<void>((resolve) => { complete = once(resolve); });\n const cumulative = Promise.all([previous.catch(() => undefined), completed]).then(() => undefined);\n const controller = new AbortController();\n const abortFromCaller = () => controller.abort(signal.reason);\n if (signal.aborted) abortFromCaller();\n else signal.addEventListener('abort', abortFromCaller, { once: true });\n this.#tails.set(sessionKey, cumulative);\n void cumulative.finally(() => {\n if (this.#tails.get(sessionKey) === cumulative) this.#tails.delete(sessionKey);\n });\n this.#admissions.set(sessionKey, admitted);\n try {\n if (intent.kind === 'new') {\n await waitForTurn(previous.catch(() => undefined), signal);\n this.#active.set(sessionKey, controller);\n } else if (intent.kind === 'supersede') {\n await waitForAdmission(previousAdmission, signal);\n this.#active.get(sessionKey)?.abort(new TurnSupersededError(sessionKey));\n await waitForTurn(previous.catch(() => undefined), signal);\n this.#active.set(sessionKey, controller);\n } else {\n await waitForAdmission(previousAdmission, signal);\n }\n return await operation(admit, controller.signal);\n } finally {\n signal.removeEventListener('abort', abortFromCaller);\n admit();\n complete();\n if (this.#active.get(sessionKey) === controller) this.#active.delete(sessionKey);\n if (this.#admissions.get(sessionKey) === admitted) this.#admissions.delete(sessionKey);\n }\n }\n}\n\nexport type AgentTurnExecutor = (\n context: AgentTurnExecutionContext,\n) => AsyncGenerator<\n import('../event/turn-event.js').TurnEvent,\n import('../turn/execute-agent-turn.js').TurnTerminalProjection | void\n>;\n\n/** Generation-owned complete Turn engine resolved from the held snapshot. */\nexport interface AgentTurnEngine {\n run: AgentTurnExecutor;\n}\n\nexport const agentTurnEngineToken = createToken<AgentTurnEngine>(\n 'zhin.agent.turn-engine',\n 'Complete Agent Turn engine owned by one Root generation',\n);\n\nexport interface AgentRuntimeOptions {\n /** Root-owned queue shared by every AgentRuntime generation of that Root. */\n readonly coordinator: AgentTurnCoordinator;\n /** Where finished TurnTraces go (`zhin trace`). Omit to disable tracing. */\n readonly turnTraceStore?: TurnTraceStore;\n}\n\nexport interface AgentCapabilitySelection {\n /** Immutable model/provider binding selected for this turn. */\n readonly binding: ResolvedAgentBinding;\n /** Binding-local MCP names. Empty means no MCP capability is exposed. */\n readonly mcpServers: readonly string[];\n /** Optional owner-visible specialist selected by the ingress router. */\n readonly agent?: string;\n}\n\nexport class AgentRuntime extends SnapshotAttachedRuntime {\n readonly #ingress = new CapabilityIngress();\n\n constructor(private readonly options: AgentRuntimeOptions) {\n super();\n }\n\n async execute(\n owner: PluginId,\n request: TurnRequest,\n selection: AgentCapabilitySelection,\n observe?: TurnEventObserver,\n ): Promise<TurnOutcome> {\n const lease = this.requireSnapshots().acquire();\n try {\n return await this.executeLeased(lease, owner, request, selection, observe);\n } finally {\n lease.release();\n }\n }\n\n /** Executes under the fixed-generation lease owned by the ingress operation. */\n async executeLeased(\n lease: SnapshotLease,\n owner: PluginId,\n request: TurnRequest,\n selection: AgentCapabilitySelection,\n observe?: TurnEventObserver,\n ): Promise<TurnOutcome> {\n const snapshots = this.requireSnapshots();\n if (!snapshots.owns(lease)) throw new Error('AgentRuntime rejected a lease owned by another Root');\n if (!lease.active) throw new Error('AgentRuntime requires an active generation lease');\n if (!request.intent) throw new TypeError('AgentRuntime requires an explicit Turn intent');\n const intent = request.intent;\n return this.options.coordinator.runIntent(\n request.session.key,\n request.signal,\n intent,\n request.principal,\n (admit, signal) => this.#executeLeased(\n lease,\n owner,\n { ...request, signal },\n selection,\n observe,\n admit,\n ),\n );\n }\n\n async #executeLeased(\n lease: SnapshotLease,\n owner: PluginId,\n request: TurnRequest,\n selection: AgentCapabilitySelection,\n observe?: TurnEventObserver,\n admit: () => void = () => undefined,\n ): Promise<TurnOutcome> {\n let active = true;\n let activeTrace: TurnTraceCollector | undefined;\n let releaseTrace: (() => void) | undefined;\n try {\n if (!active) throw new Error('Agent generation operation is not active');\n const discovered = await this.#ingress.read(\n lease.value,\n owner,\n () => active && lease.active,\n request,\n selection.agent,\n );\n const referenceCapability = createConversationReferenceCapability(owner, request);\n // #726: the initiator's trust level caps the turn (group members: no shell, writes or outbound).\n const allTools = [\n ...discovered.tools,\n ...(referenceCapability ? [referenceCapability] : []),\n ...await expandMcpTools(discovered, selection.mcpServers),\n ];\n const trust = applyTurnTrust(request, allTools);\n const capabilities = Object.freeze({\n ...discovered,\n tools: Object.freeze([...trust.tools]),\n });\n const turnRequest = trust.restricted\n ? Object.freeze({ ...request, policy: trust.policy })\n : request;\n const trace = this.options.turnTraceStore\n ? new TurnTraceCollector({\n turnId: request.identity.turnId,\n sessionKey: request.session.key,\n principal: { ...request.principal, trustLevel: trust.level },\n })\n : undefined;\n releaseTrace = trace ? registerTurnTrace(trace) : undefined;\n activeTrace = trace;\n const turn = createIngressTurn(lease.value, turnRequest, capabilities, trace);\n const catalog = Object.freeze({\n ...capabilities,\n tools: Object.freeze(capabilities.tools.map(({ execute: _execute, ...tool }) => Object.freeze(tool))),\n });\n const tools = new TurnToolRuntime(turn, capabilities.tools);\n const engine = resolveTurnEngine(lease.value);\n const disabled = Boolean(request.session.key.startsWith('workroom:') || request.input.metadata?.workroom\n || request.principal.roles.includes('workroom_assignment') || request.execution?.kind === 'schedule');\n return await runWithAgentDecisionTurn(lease.value, request.identity.turnId, decision => runWithAgentTurnConfiguration(\n { activeBinding: selection.binding },\n () => executeAgentTurn(turn, async function* () {\n const stream = engine.run({\n turn,\n capabilities: catalog,\n tools,\n toolCapabilities: capabilities.tools,\n selection,\n decision,\n admit,\n });\n try {\n while (true) {\n const next = await stream.next();\n for (const observation of drainAgentTurnDecisionObservations()) {\n yield { type: 'decision_evaluation', ...observation };\n }\n if (next.done) return next.value;\n yield next.value;\n }\n } catch (error) {\n // A later engine failure must not erase already completed decisions.\n for (const observation of drainAgentTurnDecisionObservations()) {\n yield { type: 'decision_evaluation', ...observation };\n }\n throw error;\n } finally {\n await stream.return(undefined);\n }\n }, observe),\n ), { disabled });\n } finally {\n active = false;\n releaseTrace?.();\n if (activeTrace) this.#saveTrace(activeTrace);\n }\n }\n\n #saveTrace(trace: TurnTraceCollector): void {\n trace.finalize();\n // Fire-and-forget: a slow or failing trace write must not delay the reply.\n void this.options.turnTraceStore?.save(trace.snapshot()).catch(() => undefined);\n }\n}\n\nfunction resolveTurnEngine(snapshot: import('@zhin.js/plugin-runtime').RuntimeSnapshot): AgentTurnEngine {\n const candidate = snapshot.resources.get(snapshot.root)?.get(agentTurnEngineToken.id);\n if (!candidate || typeof (candidate as AgentTurnEngine).run !== 'function') {\n throw new Error('Active generation does not provide an Agent Turn Engine');\n }\n return candidate as AgentTurnEngine;\n}\n\nasync function waitForTurn(previous: Promise<void>, signal: AbortSignal): Promise<void> {\n if (signal.aborted) throw signal.reason ?? new Error('Agent turn cancelled while queued');\n let rejectAbort!: (reason: unknown) => void;\n const aborted = new Promise<never>((_resolve, reject) => { rejectAbort = reject; });\n const onAbort = () => rejectAbort(signal.reason ?? new Error('Agent turn cancelled while queued'));\n signal.addEventListener('abort', onAbort, { once: true });\n try {\n await Promise.race([previous, aborted]);\n } finally {\n signal.removeEventListener('abort', onAbort);\n }\n}\n\nasync function waitForAdmission(previous: Promise<void> | undefined, signal: AbortSignal): Promise<void> {\n if (!previous) return;\n await waitForTurn(previous.catch(() => undefined), signal);\n}\n\nfunction once(callback: () => void): () => void {\n let called = false;\n return () => {\n if (called) return;\n called = true;\n callback();\n };\n}\n\nexport async function expandMcpTools(\n capabilities: AgentCapabilities,\n allowedServers: readonly string[],\n): Promise<ToolCapability[]> {\n const expanded: ToolCapability[] = [];\n const occupied = new Set(capabilities.tools.map((tool) => tool.name));\n for (const connection of capabilities.mcp) {\n if (!allowedServers.includes(connection.name)) continue;\n for (const tool of await connection.listTools()) {\n const name = `${connection.qualifiedName}__${tool.name}`;\n if (occupied.has(name)) {\n throw new Error(`Duplicate Agent Tool capability: ${name}`);\n }\n occupied.add(name);\n expanded.push(Object.freeze({\n owner: connection.owner,\n name,\n qualifiedName: name,\n description: tool.description?.trim() || `${connection.name} MCP tool ${tool.name}`,\n inputSchema: tool.inputSchema === undefined\n ? undefined\n : requireToolInputSchema(tool.inputSchema, `MCP Tool ${name} inputSchema`),\n requiresApproval: 'on-risk' as const,\n source: connection.source,\n execute: <TInput = unknown, TResult = unknown>(input: TInput) =>\n connection.callTool<TResult>(tool.name, input),\n }));\n }\n }\n return expanded;\n}\n\nfunction createIngressTurn(\n snapshot: import('@zhin.js/plugin-runtime').RuntimeSnapshot,\n request: TurnRequest,\n capabilities: AgentCapabilities,\n trace?: TurnTraceCollector,\n) {\n const journal = new PersistentTurnJournal({\n sessionId: request.session.key,\n turnId: request.identity.turnId,\n }, resolveJournalStore(snapshot), request.principal);\n return createTurnIngress({\n ...request,\n identity: {\n rootId: String(snapshot.root),\n generation: snapshot.generation,\n traceId: request.identity.traceId,\n turnId: request.identity.turnId,\n },\n capabilities: {\n tools: capabilities.tools.map((tool) => tool.name),\n skills: capabilities.skills.map((skill) => skill.name),\n },\n ports: {\n ...request.ports,\n journal: createJournalFeed(trace ? createTracingJournal(journal, trace) : journal, {\n turnId: request.identity.turnId,\n }),\n },\n });\n}\n\nfunction resolveJournalStore(snapshot: import('@zhin.js/plugin-runtime').RuntimeSnapshot): JournalStore {\n const store = snapshot.resources.get(snapshot.root)?.get(turnJournalStoreToken.id);\n if (!store\n || typeof (store as JournalStore).append !== 'function'\n || typeof (store as JournalStore).replay !== 'function') {\n throw new Error('Agent Turn JournalStore is not installed for this generation');\n }\n return store as JournalStore;\n}\n"]}
|
|
@@ -39,4 +39,3 @@ export declare function createAgentTraceRuntime(options?: Readonly<{
|
|
|
39
39
|
* are truncated and nesting is bounded. Used by Console trace and TurnTrace.
|
|
40
40
|
*/
|
|
41
41
|
export declare function redactTraceValue(value: unknown): unknown;
|
|
42
|
-
//# sourceMappingURL=agent-trace-runtime.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-trace-runtime.js","sourceRoot":"","sources":["../../src/plugin-runtime/agent-trace-runtime.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent-trace-runtime.js","sourceRoot":"","sources":["../../src/plugin-runtime/agent-trace-runtime.ts"],"names":[],"mappings":"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","sourcesContent":["import { randomUUID } from 'node:crypto';\nimport type { TurnEvent } from '../event/turn-event.js';\n\nexport interface AgentTraceEvent {\n readonly runtimeId: string;\n readonly sequence: number;\n readonly recordedAt: number;\n readonly sessionKey: string;\n readonly turnId: string;\n readonly type: TurnEvent['type'];\n readonly data: Readonly<Record<string, unknown>>;\n}\n\nexport interface AgentTraceSnapshot {\n readonly runtimeId: string;\n readonly sessionKey: string;\n readonly events: readonly AgentTraceEvent[];\n readonly latestSequence: number;\n readonly activeTurnIds: readonly string[];\n}\n\nexport interface AgentTraceRuntimeHandle {\n list(\n sessionKey: string,\n options?: Readonly<{ afterSequence?: number; limit?: number }>,\n ): AgentTraceSnapshot;\n}\n\nexport interface AgentTraceRecorder extends AgentTraceRuntimeHandle {\n record(sessionKey: string, turnId: string, event: TurnEvent): void;\n}\n\ninterface SessionTraceBuffer {\n readonly events: AgentTraceEvent[];\n readonly activeTurnIds: Set<string>;\n latestSequence: number;\n touchedAt: number;\n}\n\nconst secretKeys = new Set([\n 'authorization',\n 'cookie',\n 'password',\n 'passwd',\n 'secret',\n 'token',\n 'accesstoken',\n 'refreshtoken',\n 'authtoken',\n 'bearertoken',\n 'apikey',\n 'privatekey',\n]);\nconst terminalTypes = new Set<TurnEvent['type']>([\n 'turn_end',\n 'error',\n 'turn_cancelled',\n 'budget_exceeded',\n]);\n\n/**\n * Generation-owned, bounded operational projection for Console. It deliberately\n * drops token chunks: the terminal output is retained, while token streaming\n * would otherwise drown the useful tool/iteration lifecycle in noise.\n */\nexport function createAgentTraceRuntime(options: Readonly<{\n maxSessions?: number;\n maxEventsPerSession?: number;\n now?: () => number;\n}> = {}): AgentTraceRecorder {\n const maxSessions = positiveInteger(options.maxSessions, 100);\n const maxEventsPerSession = positiveInteger(options.maxEventsPerSession, 500);\n const now = options.now ?? Date.now;\n const runtimeId = randomUUID();\n const sessions = new Map<string, SessionTraceBuffer>();\n\n const requireBuffer = (sessionKey: string): SessionTraceBuffer => {\n const existing = sessions.get(sessionKey);\n if (existing) return existing;\n evictOldestSession(sessions, maxSessions);\n const created: SessionTraceBuffer = {\n events: [],\n activeTurnIds: new Set(),\n latestSequence: 0,\n touchedAt: now(),\n };\n sessions.set(sessionKey, created);\n return created;\n };\n\n return Object.freeze({\n record(sessionKey: string, turnId: string, event: TurnEvent): void {\n if (!sessionKey || !turnId || event.type === 'chunk') return;\n const buffer = requireBuffer(sessionKey);\n const recordedAt = now();\n buffer.touchedAt = recordedAt;\n buffer.latestSequence += 1;\n if (event.type === 'turn_start') buffer.activeTurnIds.add(turnId);\n if (terminalTypes.has(event.type)) buffer.activeTurnIds.delete(turnId);\n buffer.events.push(Object.freeze({\n runtimeId,\n sequence: buffer.latestSequence,\n recordedAt,\n sessionKey,\n turnId,\n type: event.type,\n data: sanitizeEvent(event),\n }));\n if (buffer.events.length > maxEventsPerSession) {\n buffer.events.splice(0, buffer.events.length - maxEventsPerSession);\n }\n },\n list(\n sessionKey: string,\n listOptions: Readonly<{ afterSequence?: number; limit?: number }> = {},\n ): AgentTraceSnapshot {\n const buffer = sessions.get(sessionKey);\n if (!buffer) return emptySnapshot(runtimeId, sessionKey);\n buffer.touchedAt = now();\n const afterSequence = nonNegativeInteger(listOptions.afterSequence, 0);\n const limit = Math.min(positiveInteger(listOptions.limit, 200), maxEventsPerSession);\n const events = buffer.events.filter((event) => event.sequence > afterSequence).slice(-limit);\n return Object.freeze({\n runtimeId,\n sessionKey,\n events: Object.freeze([...events]),\n latestSequence: buffer.latestSequence,\n activeTurnIds: Object.freeze([...buffer.activeTurnIds]),\n });\n },\n });\n}\n\n/**\n * Shared trace redaction: secret-named keys become `[redacted]`, long strings\n * are truncated and nesting is bounded. Used by Console trace and TurnTrace.\n */\nexport function redactTraceValue(value: unknown): unknown {\n return sanitizeValue(value, 0);\n}\n\nfunction sanitizeEvent(event: TurnEvent): Readonly<Record<string, unknown>> {\n const { type: _type, ...data } = event;\n return Object.freeze(sanitizeRecord(data, 0));\n}\n\nfunction sanitizeRecord(value: Record<string, unknown>, depth: number): Record<string, unknown> {\n return Object.fromEntries(\n Object.entries(value).slice(0, 50).map(([key, item]) => [\n key,\n isSecretKey(key) ? '[redacted]' : sanitizeValue(item, depth + 1),\n ]),\n );\n}\n\nfunction sanitizeValue(value: unknown, depth: number): unknown {\n if (value == null || typeof value === 'boolean' || typeof value === 'number') return value;\n if (typeof value === 'string') return truncate(value, 4_000);\n if (value instanceof Error) return Object.freeze({\n name: value.name,\n message: truncate(value.message, 2_000),\n });\n if (depth >= 5) return '[max depth]';\n if (Array.isArray(value)) return Object.freeze(value.slice(0, 50).map((item) => sanitizeValue(item, depth + 1)));\n if (typeof value === 'object') return Object.freeze(sanitizeRecord(value as Record<string, unknown>, depth));\n return truncate(String(value), 500);\n}\n\nfunction truncate(value: string, maxLength: number): string {\n return value.length <= maxLength ? value : `${value.slice(0, maxLength)}… [truncated]`;\n}\n\nfunction isSecretKey(key: string): boolean {\n return secretKeys.has(key.replaceAll('-', '').replaceAll('_', '').toLowerCase());\n}\n\nfunction positiveInteger(value: number | undefined, fallback: number): number {\n return Number.isInteger(value) && Number(value) > 0 ? Number(value) : fallback;\n}\n\nfunction nonNegativeInteger(value: number | undefined, fallback: number): number {\n return Number.isInteger(value) && Number(value) >= 0 ? Number(value) : fallback;\n}\n\nfunction emptySnapshot(runtimeId: string, sessionKey: string): AgentTraceSnapshot {\n return Object.freeze({\n runtimeId,\n sessionKey,\n events: Object.freeze([]),\n latestSequence: 0,\n activeTurnIds: Object.freeze([]),\n });\n}\n\nfunction evictOldestSession(sessions: Map<string, SessionTraceBuffer>, maxSessions: number): void {\n if (sessions.size < maxSessions) return;\n let oldest: [string, SessionTraceBuffer] | undefined;\n for (const entry of sessions) {\n if (!oldest || entry[1].touchedAt < oldest[1].touchedAt) oldest = entry;\n }\n if (oldest) sessions.delete(oldest[0]);\n}\n"]}
|
|
@@ -1,54 +1,22 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { AiCompletion } from '@zhin.js/core';
|
|
2
2
|
import type { AIService } from '../service.js';
|
|
3
|
-
import type { UsageQuota
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
}
|
|
9
|
-
export
|
|
10
|
-
|
|
11
|
-
readonly purpose: string;
|
|
12
|
-
/** Trusted instructions written by the plugin. */
|
|
13
|
-
readonly system?: string;
|
|
14
|
-
/** Trusted input written by the plugin. */
|
|
15
|
-
readonly prompt: string;
|
|
16
|
-
/** Untrusted content (group chat, web pages, files); always rendered as data, never as instructions. */
|
|
17
|
-
readonly untrusted?: readonly AiCompletionUntrustedInput[];
|
|
18
|
-
/** Agent binding whose provider / model is used; defaults to `zhin`. */
|
|
19
|
-
readonly agent?: string;
|
|
20
|
-
/** Model id on the binding's provider; defaults to the binding's model. */
|
|
21
|
-
readonly model?: string;
|
|
22
|
-
readonly maxTokens?: number;
|
|
23
|
-
readonly temperature?: number;
|
|
24
|
-
/** Per-request timeout in ms; defaults to the provider resilience setting. */
|
|
25
|
-
readonly timeoutMs?: number;
|
|
26
|
-
readonly signal?: AbortSignal;
|
|
27
|
-
/** The IM user (and group) this call is made for; counts against their usage quota. */
|
|
28
|
-
readonly onBehalfOf?: UsageSubject;
|
|
29
|
-
}
|
|
30
|
-
export interface AiCompletionResult {
|
|
31
|
-
readonly text: string;
|
|
32
|
-
/** Model that actually answered (may be a fallback). */
|
|
33
|
-
readonly model: string;
|
|
34
|
-
readonly durationMs: number;
|
|
35
|
-
readonly usage?: TokenUsage;
|
|
36
|
-
}
|
|
37
|
-
export interface AiCompletion {
|
|
38
|
-
completeText(input: AiCompletionInput): Promise<AiCompletionResult>;
|
|
39
|
-
}
|
|
40
|
-
/** Thrown when the `onBehalfOf` user or group is over its usage quota; `message` is user-facing. */
|
|
3
|
+
import type { UsageQuota } from '../security/usage-quota.js';
|
|
4
|
+
/**
|
|
5
|
+
* The contract (types and token) lives in `@zhin.js/core` (#877) so plugins can import it from the
|
|
6
|
+
* `zhin.js` main entry without this package; re-exported here unchanged (same token object and id).
|
|
7
|
+
*/
|
|
8
|
+
export { aiCompletionToken } from '@zhin.js/core';
|
|
9
|
+
export type { AiCompletion, AiCompletionInput, AiCompletionResult, AiCompletionUntrustedInput, UsageSubject, } from '@zhin.js/core';
|
|
10
|
+
/** Thrown when the `onBehalfOf` user or group is over its usage quota; `message` is user-facing. Recognise it with `isAiCompletionQuotaError`. */
|
|
41
11
|
export declare class AiCompletionQuotaError extends Error {
|
|
12
|
+
readonly name: "AiCompletionQuotaError";
|
|
42
13
|
readonly scope: 'user' | 'group';
|
|
43
14
|
readonly retryAfterSeconds: number;
|
|
44
15
|
constructor(message: string, scope: 'user' | 'group', retryAfterSeconds: number);
|
|
45
16
|
}
|
|
46
|
-
/** Generation-owned plain text completion for plugins. Absent when no AI host is installed. */
|
|
47
|
-
export declare const aiCompletionToken: import("@zhin.js/plugin-runtime").Token<AiCompletion>;
|
|
48
17
|
export interface AiCompletionOptions {
|
|
49
|
-
readonly service: Pick<AIService, 'getBindingRegistry' | 'getProvider' | 'getAgentConfig'
|
|
18
|
+
readonly service: Pick<AIService, 'getBindingRegistry' | 'getProvider' | 'getAgentConfig'> & Partial<Pick<AIService, 'getModelRegistry'>>;
|
|
50
19
|
readonly usageQuota?: Pick<UsageQuota, 'check' | 'record'>;
|
|
51
20
|
readonly now?: () => number;
|
|
52
21
|
}
|
|
53
22
|
export declare function createAiCompletion(options: AiCompletionOptions): AiCompletion;
|
|
54
|
-
//# sourceMappingURL=ai-completion.d.ts.map
|
|
@@ -6,29 +6,35 @@
|
|
|
6
6
|
* tools such as file access while it reads untrusted group chat. This port does
|
|
7
7
|
* one completion with **no tools at all** — the request carries no tool
|
|
8
8
|
* definitions, so nothing the model writes can be executed — and reuses the
|
|
9
|
-
* provider resilience chain (retry, backoff, timeout
|
|
9
|
+
* provider resilience chain (retry, backoff, timeout). There is no automatic model
|
|
10
|
+
* fallback: a plugin call must never silently fail over to a pricier model, and no
|
|
11
|
+
* per-binding fallback list exists to opt in to.
|
|
10
12
|
*
|
|
11
13
|
* Untrusted text is rendered as `external_content` data blocks (#726), and a
|
|
12
14
|
* call made on behalf of an IM user counts against that user's / group's usage
|
|
13
15
|
* quota (#727).
|
|
14
16
|
*/
|
|
15
|
-
import {
|
|
17
|
+
import { resolveModelCandidates } from '../context/model-resolver.js';
|
|
16
18
|
import { formatCompact, getLogger } from '@zhin.js/logger';
|
|
17
19
|
import { renderExternalContent } from '../security/trust-level.js';
|
|
20
|
+
import { estimatePromptTokens } from '../prompt/estimate-tokens.js';
|
|
21
|
+
/**
|
|
22
|
+
* The contract (types and token) lives in `@zhin.js/core` (#877) so plugins can import it from the
|
|
23
|
+
* `zhin.js` main entry without this package; re-exported here unchanged (same token object and id).
|
|
24
|
+
*/
|
|
25
|
+
export { aiCompletionToken } from '@zhin.js/core';
|
|
18
26
|
const logger = getLogger('agent');
|
|
19
|
-
/** Thrown when the `onBehalfOf` user or group is over its usage quota; `message` is user-facing. */
|
|
27
|
+
/** Thrown when the `onBehalfOf` user or group is over its usage quota; `message` is user-facing. Recognise it with `isAiCompletionQuotaError`. */
|
|
20
28
|
export class AiCompletionQuotaError extends Error {
|
|
29
|
+
name = 'AiCompletionQuotaError';
|
|
21
30
|
scope;
|
|
22
31
|
retryAfterSeconds;
|
|
23
32
|
constructor(message, scope, retryAfterSeconds) {
|
|
24
33
|
super(message);
|
|
25
|
-
this.name = 'AiCompletionQuotaError';
|
|
26
34
|
this.scope = scope;
|
|
27
35
|
this.retryAfterSeconds = retryAfterSeconds;
|
|
28
36
|
}
|
|
29
37
|
}
|
|
30
|
-
/** Generation-owned plain text completion for plugins. Absent when no AI host is installed. */
|
|
31
|
-
export const aiCompletionToken = createToken('zhin.agent.ai-completion', 'Tool-free text completion with retry and fallback, for plugins');
|
|
32
38
|
export function createAiCompletion(options) {
|
|
33
39
|
const now = options.now ?? Date.now;
|
|
34
40
|
return Object.freeze({
|
|
@@ -57,9 +63,17 @@ export function createAiCompletion(options) {
|
|
|
57
63
|
maxTokens: input.maxTokens,
|
|
58
64
|
timeoutMs: input.timeoutMs,
|
|
59
65
|
signal: input.signal,
|
|
60
|
-
|
|
66
|
+
// Same candidates as the conversation path (bound model, registry picks, then the
|
|
67
|
+
// provider's models); whether they are tried is up to `providerResilience.fallback`.
|
|
68
|
+
fallbackModels: resolveModelCandidates(provider.models, options.service.getModelRegistry?.() ?? null, binding.providerAlias, { chatModel: binding.model }, 'chat', model).filter(id => id && id !== model),
|
|
61
69
|
resilience: options.service.getAgentConfig()?.providerResilience,
|
|
62
70
|
};
|
|
71
|
+
// Reserve the prompt estimate before the call: concurrent calls then see each other's
|
|
72
|
+
// spend at `check`, and a call that fails after reaching the provider is still billed.
|
|
73
|
+
const quotaSubject = input.onBehalfOf && options.usageQuota ? input.onBehalfOf : undefined;
|
|
74
|
+
const reserved = quotaSubject ? estimatePromptTokens(`${input.system ?? ''}\n${user}`) : 0;
|
|
75
|
+
if (quotaSubject && reserved > 0)
|
|
76
|
+
options.usageQuota.record(quotaSubject, reserved);
|
|
63
77
|
const started = now();
|
|
64
78
|
let result;
|
|
65
79
|
try {
|
|
@@ -80,9 +94,13 @@ export function createAiCompletion(options) {
|
|
|
80
94
|
throw error;
|
|
81
95
|
}
|
|
82
96
|
const durationMs = now() - started;
|
|
83
|
-
const
|
|
84
|
-
|
|
85
|
-
|
|
97
|
+
const reportedTokens = result.usage?.totalTokens;
|
|
98
|
+
const totalTokens = reportedTokens || undefined;
|
|
99
|
+
if (quotaSubject) {
|
|
100
|
+
// Reported usage settles the reservation; without it, estimate the answer on top of the prompt.
|
|
101
|
+
const settled = totalTokens ?? reserved + estimatePromptTokens(result.text);
|
|
102
|
+
if (settled > reserved)
|
|
103
|
+
options.usageQuota.record(quotaSubject, settled - reserved);
|
|
86
104
|
}
|
|
87
105
|
logger.info(formatCompact({
|
|
88
106
|
op: 'ai_completion',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-completion.js","sourceRoot":"","sources":["../../src/plugin-runtime/ai-completion.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ai-completion.js","sourceRoot":"","sources":["../../src/plugin-runtime/ai-completion.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Plain text completion for plugins (#804).\n *\n * Plugins that only need text (summarise a chat, classify a message, rewrite a\n * reply) should not borrow a whole Agent turn: that is slow, and the model gets\n * tools such as file access while it reads untrusted group chat. This port does\n * one completion with **no tools at all** — the request carries no tool\n * definitions, so nothing the model writes can be executed — and reuses the\n * provider resilience chain (retry, backoff, timeout). There is no automatic model\n * fallback: a plugin call must never silently fail over to a pricier model, and no\n * per-binding fallback list exists to opt in to.\n *\n * Untrusted text is rendered as `external_content` data blocks (#726), and a\n * call made on behalf of an IM user counts against that user's / group's usage\n * quota (#727).\n */\nimport { resolveModelCandidates } from '../context/model-resolver.js';\nimport type { AIProvider, ProviderResilienceConfig, TextCompleteResult } from '@zhin.js/ai';\nimport type { AiCompletion, AiCompletionInput, AiCompletionResult } from '@zhin.js/core';\nimport { formatCompact, getLogger } from '@zhin.js/logger';\nimport type { AIService } from '../service.js';\nimport { renderExternalContent } from '../security/trust-level.js';\nimport type { UsageQuota } from '../security/usage-quota.js';\nimport { estimatePromptTokens } from '../prompt/estimate-tokens.js';\n\n/**\n * The contract (types and token) lives in `@zhin.js/core` (#877) so plugins can import it from the\n * `zhin.js` main entry without this package; re-exported here unchanged (same token object and id).\n */\nexport { aiCompletionToken } from '@zhin.js/core';\nexport type {\n AiCompletion,\n AiCompletionInput,\n AiCompletionResult,\n AiCompletionUntrustedInput,\n UsageSubject,\n} from '@zhin.js/core';\n\nconst logger = getLogger('agent');\n\n/** Thrown when the `onBehalfOf` user or group is over its usage quota; `message` is user-facing. Recognise it with `isAiCompletionQuotaError`. */\nexport class AiCompletionQuotaError extends Error {\n override readonly name = 'AiCompletionQuotaError' as const;\n readonly scope: 'user' | 'group';\n readonly retryAfterSeconds: number;\n\n constructor(message: string, scope: 'user' | 'group', retryAfterSeconds: number) {\n super(message);\n this.scope = scope;\n this.retryAfterSeconds = retryAfterSeconds;\n }\n}\n\nexport interface AiCompletionOptions {\n readonly service: Pick<AIService, 'getBindingRegistry' | 'getProvider' | 'getAgentConfig'>\n & Partial<Pick<AIService, 'getModelRegistry'>>;\n readonly usageQuota?: Pick<UsageQuota, 'check' | 'record'>;\n readonly now?: () => number;\n}\n\nexport function createAiCompletion(options: AiCompletionOptions): AiCompletion {\n const now = options.now ?? Date.now;\n return Object.freeze({\n async completeText(input: AiCompletionInput): Promise<AiCompletionResult> {\n const purpose = requiredText(input.purpose, 'purpose');\n const prompt = requiredText(input.prompt, 'prompt');\n const registry = options.service.getBindingRegistry();\n const binding = input.agent ? registry.getBinding(input.agent) : registry.requireZhinBinding();\n if (!binding) throw new Error(`AI completion: agent binding \"${input.agent}\" not found`);\n const provider: AIProvider = options.service.getProvider(binding.providerAlias);\n const model = input.model?.trim() || binding.model || provider.models[0] || '';\n\n if (input.onBehalfOf && options.usageQuota) {\n const decision = options.usageQuota.check(input.onBehalfOf);\n if (!decision.allowed) {\n throw new AiCompletionQuotaError(decision.message, decision.scope, decision.retryAfterSeconds);\n }\n }\n\n const user = [\n prompt,\n ...(input.untrusted ?? []).map(item => renderExternalContent(sourceLabel(item.source), neutralizeBlockMarkers(String(item.text ?? '')))),\n ].join('\\n\\n');\n const opts = {\n model,\n temperature: input.temperature,\n maxTokens: input.maxTokens,\n timeoutMs: input.timeoutMs,\n signal: input.signal,\n // Same candidates as the conversation path (bound model, registry picks, then the\n // provider's models); whether they are tried is up to `providerResilience.fallback`.\n fallbackModels: resolveModelCandidates(\n provider.models,\n options.service.getModelRegistry?.() ?? null,\n binding.providerAlias,\n { chatModel: binding.model },\n 'chat',\n model,\n ).filter(id => id && id !== model),\n resilience: options.service.getAgentConfig()?.providerResilience as ProviderResilienceConfig | undefined,\n };\n // Reserve the prompt estimate before the call: concurrent calls then see each other's\n // spend at `check`, and a call that fails after reaching the provider is still billed.\n const quotaSubject = input.onBehalfOf && options.usageQuota ? input.onBehalfOf : undefined;\n const reserved = quotaSubject ? estimatePromptTokens(`${input.system ?? ''}\\n${user}`) : 0;\n if (quotaSubject && reserved > 0) options.usageQuota!.record(quotaSubject, reserved);\n const started = now();\n let result: TextCompleteResult;\n try {\n result = provider.completeTextResult\n ? await provider.completeTextResult(input.system ?? '', user, opts)\n : { text: await provider.completeText(input.system ?? '', user, opts), model };\n } catch (error) {\n logger.warn(formatCompact({\n op: 'ai_completion',\n purpose,\n provider: binding.providerAlias,\n model,\n outcome: 'error',\n durationMs: now() - started,\n error: error instanceof Error ? error.message : String(error),\n }));\n throw error;\n }\n const durationMs = now() - started;\n const reportedTokens = result.usage?.totalTokens;\n const totalTokens = reportedTokens || undefined;\n if (quotaSubject) {\n // Reported usage settles the reservation; without it, estimate the answer on top of the prompt.\n const settled = totalTokens ?? reserved + estimatePromptTokens(result.text);\n if (settled > reserved) options.usageQuota!.record(quotaSubject, settled - reserved);\n }\n logger.info(formatCompact({\n op: 'ai_completion',\n purpose,\n provider: binding.providerAlias,\n model: result.model,\n outcome: 'ok',\n durationMs,\n ...(totalTokens ? { tokens: totalTokens } : {}),\n untrusted: input.untrusted?.length ?? 0,\n }));\n return Object.freeze({\n text: result.text,\n model: result.model,\n durationMs,\n ...(result.usage ? { usage: result.usage } : {}),\n });\n },\n });\n}\n\nfunction requiredText(value: unknown, name: string): string {\n if (typeof value !== 'string' || !value.trim()) throw new TypeError(`AI completion: ${name} is required`);\n return value;\n}\n\n/** Untrusted text must not be able to close its data block early and continue as instructions. */\nfunction neutralizeBlockMarkers(text: string): string {\n return text.replace(/\\[(\\s*(?:end\\s+)?external_content)/giu, '[$1');\n}\n\n/** Keeps the source label from closing the data block or injecting quotes. */\nfunction sourceLabel(source: unknown): string {\n const text = String(source ?? '').replace(/[^\\p{L}\\p{N}_.:/-]+/gu, '-').slice(0, 64);\n return text || 'untrusted';\n}\n"]}
|
|
@@ -24,4 +24,3 @@ export interface AgentCapabilities {
|
|
|
24
24
|
export declare class CapabilityIngress {
|
|
25
25
|
read(snapshot: RuntimeSnapshot, owner: PluginId, isActive?: () => boolean, turn?: TurnAccessContext, selectedAgent?: string): Promise<AgentCapabilities>;
|
|
26
26
|
}
|
|
27
|
-
//# sourceMappingURL=capability-ingress.d.ts.map
|