@abot-ai/runtime 1.1.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -3
- package/dist/src/bridge/request-steering.d.ts +2 -1
- package/dist/src/bridge/request-steering.js +4 -2
- package/dist/src/bridge/runtime-replay.js +2 -19
- package/dist/src/bridge/start-agent-bridge.js +1 -1
- package/dist/src/capabilities/normal-invocation/validator.js +1 -1
- package/dist/src/capabilities/tool-definition-validator/event-presentation.js +3 -0
- package/dist/src/capabilities/tool-definition-validator/event-result-metadata.d.ts +2 -0
- package/dist/src/capabilities/tool-definition-validator/event-result-metadata.js +74 -0
- package/dist/src/capabilities/tool-event-metadata.js +3 -0
- package/dist/src/capabilities/tool-result-event-projection.d.ts +3 -0
- package/dist/src/capabilities/tool-result-event-projection.js +82 -0
- package/dist/src/capabilities/tool-types.d.ts +6 -1
- package/dist/src/cli/abot.js +2 -11
- package/dist/src/model-gateway/providers/ollama/generation-options.d.ts +1 -3
- package/dist/src/model-gateway/providers/ollama/generation-options.js +1 -5
- package/dist/src/model-gateway/providers/ollama/payload.js +0 -8
- package/dist/src/model-gateway/server/request-body.js +1 -0
- package/dist/src/plugin-sdk/index.d.ts +2 -0
- package/dist/src/plugin-sdk/index.js +2 -0
- package/dist/src/plugin-sdk/tool-availability-brief.d.ts +9 -0
- package/dist/src/plugin-sdk/tool-availability-brief.js +48 -0
- package/dist/src/plugin-sdk/tool-availability-overview.d.ts +9 -0
- package/dist/src/plugin-sdk/tool-availability-overview.js +62 -0
- package/dist/src/runtime/adapters/in-memory-session-store.js +1 -0
- package/dist/src/runtime/adapters/long-term-memory/file-lock/acquisition.js +11 -2
- package/dist/src/runtime/adapters/long-term-memory/file-lock/contracts.d.ts +2 -0
- package/dist/src/runtime/adapters/long-term-memory/file-lock/synchronous-release.d.ts +2 -0
- package/dist/src/runtime/adapters/long-term-memory/file-lock/synchronous-release.js +40 -0
- package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/approval.d.ts +3 -0
- package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/approval.js +9 -0
- package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/rejection-event.d.ts +13 -0
- package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/rejection-event.js +25 -0
- package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/run.js +18 -2
- package/dist/src/runtime/adapters/registered-tool-normal-invocations/executor.js +8 -0
- package/dist/src/runtime/adapters/registered-tool-normal-invocations/payload/lifecycle.js +7 -3
- package/dist/src/runtime/adapters/registered-tool-normal-invocations/shared/contracts.d.ts +17 -2
- package/dist/src/runtime/adapters/registered-tool-normal-invocations/shared/event-metadata.d.ts +9 -0
- package/dist/src/runtime/adapters/registered-tool-normal-invocations/shared/event-metadata.js +8 -0
- package/dist/src/runtime/adapters/registered-tool-payload-plan.d.ts +0 -9
- package/dist/src/runtime/adapters/registered-tool-payload-plan.js +0 -67
- package/dist/src/runtime/adapters/registered-tool-payload-related-artifacts.d.ts +13 -0
- package/dist/src/runtime/adapters/registered-tool-payload-related-artifacts.js +84 -0
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/catalog.js +4 -0
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/execution.js +19 -1
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-lifecycle.d.ts +1 -0
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-lifecycle.js +11 -1
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-observability.js +2 -2
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-stages.d.ts +1 -0
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-stages.js +9 -1
- package/dist/src/runtime/adapters/scheduled-request-outcome.d.ts +11 -0
- package/dist/src/runtime/adapters/scheduled-request-outcome.js +41 -0
- package/dist/src/runtime/adapters/scheduler-runtime.d.ts +19 -0
- package/dist/src/runtime/adapters/scheduler-runtime.js +138 -0
- package/dist/src/runtime/capabilities/request-bound-tool-registry.js +1 -24
- package/dist/src/runtime/capabilities/scheduling/create-operations.d.ts +55 -0
- package/dist/src/runtime/capabilities/scheduling/create-operations.js +30 -0
- package/dist/src/runtime/capabilities/scheduling/create-time-zone.d.ts +1 -0
- package/dist/src/runtime/capabilities/scheduling/create-time-zone.js +11 -0
- package/dist/src/runtime/capabilities/scheduling/job-list-page.d.ts +25 -0
- package/dist/src/runtime/capabilities/scheduling/job-list-page.js +40 -0
- package/dist/src/runtime/capabilities/scheduling/model-validation.d.ts +2 -0
- package/dist/src/runtime/capabilities/scheduling/model-validation.js +15 -0
- package/dist/src/runtime/capabilities/scheduling/tool-contract.d.ts +2 -0
- package/dist/src/runtime/capabilities/scheduling/tool-contract.js +35 -0
- package/dist/src/runtime/capabilities/scheduling/tool-input-properties.d.ts +43 -0
- package/dist/src/runtime/capabilities/scheduling/tool-input-properties.js +27 -0
- package/dist/src/runtime/capabilities/scheduling/tool-module.d.ts +4 -0
- package/dist/src/runtime/capabilities/scheduling/tool-module.js +158 -0
- package/dist/src/runtime/capabilities/scheduling/update-operations.d.ts +2 -0
- package/dist/src/runtime/capabilities/scheduling/update-operations.js +49 -0
- package/dist/src/runtime/capabilities/tool-availability.d.ts +6 -0
- package/dist/src/runtime/capabilities/tool-availability.js +28 -0
- package/dist/src/runtime/composition.d.ts +23 -3
- package/dist/src/runtime/composition.js +12 -17
- package/dist/src/runtime/config/environment-paths.d.ts +10 -0
- package/dist/src/runtime/config/environment-paths.js +31 -0
- package/dist/src/runtime/config/environment-storage.d.ts +9 -0
- package/dist/src/runtime/config/environment-storage.js +65 -0
- package/dist/src/runtime/config/fields.js +7 -0
- package/dist/src/runtime/config/long-term-memory.js +15 -0
- package/dist/src/runtime/config/schema.js +8 -0
- package/dist/src/runtime/config.js +9 -5
- package/dist/src/runtime/context/capability-brief.d.ts +25 -0
- package/dist/src/runtime/context/capability-brief.js +106 -0
- package/dist/src/runtime/context/request-tool-results-message-binding.d.ts +6 -0
- package/dist/src/runtime/context/request-tool-results-message-binding.js +30 -0
- package/dist/src/runtime/context/request-tool-results-scope.d.ts +3 -0
- package/dist/src/runtime/context/request-tool-results-scope.js +8 -0
- package/dist/src/runtime/context/request-tool-results.d.ts +8 -4
- package/dist/src/runtime/context/request-tool-results.js +49 -38
- package/dist/src/runtime/context/scheduled-execution-context.d.ts +10 -0
- package/dist/src/runtime/context/scheduled-execution-context.js +52 -0
- package/dist/src/runtime/default-adapters.d.ts +3 -32
- package/dist/src/runtime/default-adapters.js +3 -270
- package/dist/src/runtime/default-environment-adapters.d.ts +19 -0
- package/dist/src/runtime/default-environment-adapters.js +144 -0
- package/dist/src/runtime/index.d.ts +5 -0
- package/dist/src/runtime/index.js +4 -0
- package/dist/src/runtime/local-application.d.ts +22 -0
- package/dist/src/runtime/local-application.js +81 -0
- package/dist/src/runtime/local-host/app-memory-dispatch.d.ts +11 -0
- package/dist/src/runtime/local-host/app-memory-dispatch.js +103 -0
- package/dist/src/runtime/local-host/app-owner.d.ts +4 -0
- package/dist/src/runtime/local-host/app-owner.js +119 -0
- package/dist/src/runtime/local-host/app-request-control.d.ts +24 -0
- package/dist/src/runtime/local-host/app-request-control.js +135 -0
- package/dist/src/runtime/local-host/app-service-dispatch.d.ts +5 -0
- package/dist/src/runtime/local-host/app-service-dispatch.js +64 -0
- package/dist/src/runtime/local-host/client-identity.d.ts +3 -0
- package/dist/src/runtime/local-host/client-identity.js +17 -0
- package/dist/src/runtime/local-host/client-memory.d.ts +7 -0
- package/dist/src/runtime/local-host/client-memory.js +54 -0
- package/dist/src/runtime/local-host/client-requests.d.ts +19 -0
- package/dist/src/runtime/local-host/client-requests.js +145 -0
- package/dist/src/runtime/local-host/client-services.d.ts +10 -0
- package/dist/src/runtime/local-host/client-services.js +14 -0
- package/dist/src/runtime/local-host/contracts.d.ts +36 -0
- package/dist/src/runtime/local-host/contracts.js +1 -0
- package/dist/src/runtime/local-host/endpoint.d.ts +7 -0
- package/dist/src/runtime/local-host/endpoint.js +79 -0
- package/dist/src/runtime/local-host/owner-activity.d.ts +10 -0
- package/dist/src/runtime/local-host/owner-activity.js +30 -0
- package/dist/src/runtime/local-host/owner-retirement.d.ts +3 -0
- package/dist/src/runtime/local-host/owner-retirement.js +15 -0
- package/dist/src/runtime/local-host/owner-server.d.ts +6 -0
- package/dist/src/runtime/local-host/owner-server.js +88 -0
- package/dist/src/runtime/local-host/private-access.d.ts +2 -0
- package/dist/src/runtime/local-host/private-access.js +16 -0
- package/dist/src/runtime/local-host/private-directory.d.ts +1 -0
- package/dist/src/runtime/local-host/private-directory.js +57 -0
- package/dist/src/runtime/local-host/rpc-peer.d.ts +22 -0
- package/dist/src/runtime/local-host/rpc-peer.js +168 -0
- package/dist/src/runtime/local-host/rpc-protocol.d.ts +21 -0
- package/dist/src/runtime/local-host/rpc-protocol.js +46 -0
- package/dist/src/runtime/local-host/startup-connection.d.ts +5 -0
- package/dist/src/runtime/local-host/startup-connection.js +72 -0
- package/dist/src/runtime/local-host/transport.d.ts +3 -0
- package/dist/src/runtime/local-host/transport.js +88 -0
- package/dist/src/runtime/local-host/windows-private-access.d.ts +1 -0
- package/dist/src/runtime/local-host/windows-private-access.js +51 -0
- package/dist/src/runtime/long-term-memory/onboarding/configuration.js +6 -0
- package/dist/src/runtime/long-term-memory/recall-binding.d.ts +3 -0
- package/dist/src/runtime/long-term-memory/recall-binding.js +27 -0
- package/dist/src/runtime/long-term-memory/recall-context.d.ts +20 -0
- package/dist/src/runtime/long-term-memory/recall-context.js +101 -0
- package/dist/src/runtime/long-term-memory/recall-continuation.d.ts +8 -0
- package/dist/src/runtime/long-term-memory/recall-continuation.js +36 -0
- package/dist/src/runtime/long-term-memory/recall-policy.d.ts +7 -0
- package/dist/src/runtime/long-term-memory/recall-policy.js +14 -0
- package/dist/src/runtime/long-term-memory/recall-result.d.ts +5 -0
- package/dist/src/runtime/long-term-memory/recall-result.js +54 -0
- package/dist/src/runtime/long-term-memory/repository-state.d.ts +2 -1
- package/dist/src/runtime/long-term-memory/repository-state.js +2 -2
- package/dist/src/runtime/model/invoke-raw-step.d.ts +1 -0
- package/dist/src/runtime/model/invoke-raw-step.js +1 -0
- package/dist/src/runtime/model/invoke-step.js +6 -0
- package/dist/src/runtime/model/invoke-structured-step.d.ts +1 -0
- package/dist/src/runtime/model/invoke-structured-step.js +1 -0
- package/dist/src/runtime/model/model-step-port.d.ts +2 -0
- package/dist/src/runtime/model/model-step-steering.d.ts +8 -0
- package/dist/src/runtime/model/model-step-steering.js +19 -0
- package/dist/src/runtime/orchestration/final-response/authoring-contract.js +1 -1
- package/dist/src/runtime/orchestration/final-response/invoke.d.ts +1 -0
- package/dist/src/runtime/orchestration/final-response/invoke.js +1 -0
- package/dist/src/runtime/orchestration/role-calls/activation-budget.js +1 -0
- package/dist/src/runtime/orchestration/role-calls/candidate-validation.js +17 -50
- package/dist/src/runtime/orchestration/role-calls/capability-selection-reconsideration.d.ts +9 -0
- package/dist/src/runtime/orchestration/role-calls/capability-selection-reconsideration.js +17 -8
- package/dist/src/runtime/orchestration/role-calls/capability-selection-supervision-validation.d.ts +2 -0
- package/dist/src/runtime/orchestration/role-calls/capability-selection-supervision-validation.js +62 -0
- package/dist/src/runtime/orchestration/role-calls/child-return.d.ts +4 -0
- package/dist/src/runtime/orchestration/role-calls/child-return.js +25 -5
- package/dist/src/runtime/orchestration/role-calls/command-decoder.js +12 -3
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/child-transitions.d.ts +1 -1
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/child-transitions.js +17 -2
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/memory-recall-transitions.d.ts +4 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/memory-recall-transitions.js +89 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch.d.ts +1 -1
- package/dist/src/runtime/orchestration/role-calls/command-dispatch.js +7 -2
- package/dist/src/runtime/orchestration/role-calls/contracts.d.ts +12 -7
- package/dist/src/runtime/orchestration/role-calls/contracts.js +4 -4
- package/dist/src/runtime/orchestration/role-calls/dependency-results.d.ts +1 -1
- package/dist/src/runtime/orchestration/role-calls/dependency-results.js +1 -0
- package/dist/src/runtime/orchestration/role-calls/diagnostics.js +3 -0
- package/dist/src/runtime/orchestration/role-calls/index.d.ts +6 -1
- package/dist/src/runtime/orchestration/role-calls/index.js +6 -1
- package/dist/src/runtime/orchestration/role-calls/ledger.d.ts +3 -1
- package/dist/src/runtime/orchestration/role-calls/ledger.js +9 -2
- package/dist/src/runtime/orchestration/role-calls/memory-recall-contract.d.ts +51 -0
- package/dist/src/runtime/orchestration/role-calls/memory-recall-contract.js +4 -0
- package/dist/src/runtime/orchestration/role-calls/memory-recall-decoder.d.ts +6 -0
- package/dist/src/runtime/orchestration/role-calls/memory-recall-decoder.js +147 -0
- package/dist/src/runtime/orchestration/role-calls/memory-recall-diagnostics.d.ts +5 -0
- package/dist/src/runtime/orchestration/role-calls/memory-recall-diagnostics.js +27 -0
- package/dist/src/runtime/orchestration/role-calls/memory-recall-state-validation.d.ts +3 -0
- package/dist/src/runtime/orchestration/role-calls/memory-recall-state-validation.js +121 -0
- package/dist/src/runtime/orchestration/role-calls/memory-recall-transactions.d.ts +3 -0
- package/dist/src/runtime/orchestration/role-calls/memory-recall-transactions.js +44 -0
- package/dist/src/runtime/orchestration/role-calls/reducer.d.ts +1 -1
- package/dist/src/runtime/orchestration/role-calls/reducer.js +3 -2
- package/dist/src/runtime/orchestration/role-calls/result-receipt.d.ts +49 -0
- package/dist/src/runtime/orchestration/role-calls/result-receipt.js +188 -0
- package/dist/src/runtime/orchestration/role-calls/return-result-receipt.d.ts +19 -0
- package/dist/src/runtime/orchestration/role-calls/return-result-receipt.js +52 -0
- package/dist/src/runtime/orchestration/role-calls/transaction-effect.d.ts +5 -0
- package/dist/src/runtime/orchestration/role-calls/transaction-effect.js +14 -0
- package/dist/src/runtime/orchestration/role-calls/transactions.js +4 -24
- package/dist/src/runtime/orchestration/role-calls/work-result-lineage.d.ts +34 -0
- package/dist/src/runtime/orchestration/role-calls/work-result-lineage.js +185 -0
- package/dist/src/runtime/orchestration/role-calls/work-result-receipt.d.ts +36 -0
- package/dist/src/runtime/orchestration/role-calls/work-result-receipt.js +187 -0
- package/dist/src/runtime/orchestration/role-executors/activation/result-normalization.js +6 -3
- package/dist/src/runtime/orchestration/role-executors/child-invocation/transaction.js +1 -0
- package/dist/src/runtime/orchestration/role-executors/contracts.d.ts +2 -1
- package/dist/src/runtime/orchestration/worker-capabilities/assignment-provenance.d.ts +36 -0
- package/dist/src/runtime/orchestration/worker-capabilities/assignment-provenance.js +171 -0
- package/dist/src/runtime/orchestration/worker-capabilities/contracts.d.ts +32 -1
- package/dist/src/runtime/orchestration/worker-capabilities/execution/invocation-preparation.d.ts +2 -1
- package/dist/src/runtime/orchestration/worker-capabilities/execution/invocation-preparation.js +3 -0
- package/dist/src/runtime/orchestration/worker-capabilities/execution.js +42 -19
- package/dist/src/runtime/orchestration/worker-capabilities/index.d.ts +2 -0
- package/dist/src/runtime/orchestration/worker-capabilities/index.js +2 -0
- package/dist/src/runtime/orchestration/worker-capabilities/payload-assignment-validation.d.ts +3 -0
- package/dist/src/runtime/orchestration/worker-capabilities/payload-assignment-validation.js +30 -0
- package/dist/src/runtime/orchestration/worker-capabilities/payload-author.js +8 -19
- package/dist/src/runtime/orchestration/worker-capabilities/payload-contracts.d.ts +5 -1
- package/dist/src/runtime/orchestration/worker-capabilities/payload-instructions.js +1 -1
- package/dist/src/runtime/orchestration/worker-capabilities/payload-source-provenance.d.ts +14 -0
- package/dist/src/runtime/orchestration/worker-capabilities/payload-source-provenance.js +132 -0
- package/dist/src/runtime/plugins/manifest-validator.js +4 -1
- package/dist/src/runtime/ports.d.ts +4 -0
- package/dist/src/runtime/request/bound-runtime-handler.d.ts +2 -0
- package/dist/src/runtime/request/bound-runtime-handler.js +25 -0
- package/dist/src/runtime/request/capability-brief.d.ts +5 -0
- package/dist/src/runtime/request/capability-brief.js +24 -0
- package/dist/src/runtime/request/contracts.d.ts +6 -0
- package/dist/src/runtime/request/execution-agent-root-execution.js +12 -0
- package/dist/src/runtime/request/execution-facets.js +6 -0
- package/dist/src/runtime/request/execution-scope-surfaces.js +10 -0
- package/dist/src/runtime/request/execution-scope.d.ts +3 -2
- package/dist/src/runtime/request/handler.js +6 -0
- package/dist/src/runtime/request/role-executor-composition.js +1 -1
- package/dist/src/runtime/request/root-contract.d.ts +7 -1
- package/dist/src/runtime/request/root-execution-kernel.js +33 -37
- package/dist/src/runtime/request/root-memory-recall.d.ts +11 -0
- package/dist/src/runtime/request/root-memory-recall.js +71 -0
- package/dist/src/runtime/request/root-observation-handoff.d.ts +17 -0
- package/dist/src/runtime/request/root-observation-handoff.js +44 -0
- package/dist/src/runtime/request/scheduled-execution.d.ts +9 -0
- package/dist/src/runtime/request/scheduled-execution.js +32 -0
- package/dist/src/runtime/request/session-admission.d.ts +17 -0
- package/dist/src/runtime/request/session-admission.js +88 -0
- package/dist/src/runtime/request/supervisor-root-execution-diagnostics.d.ts +1 -1
- package/dist/src/runtime/request/supervisor-root-execution.js +8 -0
- package/dist/src/runtime/request/worker-capability-composition.d.ts +2 -1
- package/dist/src/runtime/request/worker-capability-composition.js +6 -1
- package/dist/src/runtime/request/worker-capability-payload.js +11 -8
- package/dist/src/runtime/runtime-environment.d.ts +31 -0
- package/dist/src/runtime/runtime-environment.js +102 -0
- package/dist/src/runtime/runtime-host-environment.d.ts +8 -0
- package/dist/src/runtime/runtime-host-environment.js +57 -0
- package/dist/src/runtime/runtime-host-lifecycle.d.ts +4 -0
- package/dist/src/runtime/runtime-host-lifecycle.js +64 -0
- package/dist/src/runtime/runtime-host-scheduler-ownership.d.ts +5 -0
- package/dist/src/runtime/runtime-host-scheduler-ownership.js +67 -0
- package/dist/src/runtime/runtime-host.d.ts +19 -0
- package/dist/src/runtime/runtime-host.js +63 -0
- package/dist/src/runtime/scheduler/calendar-time.d.ts +10 -0
- package/dist/src/runtime/scheduler/calendar-time.js +58 -0
- package/dist/src/runtime/scheduler/contracts.d.ts +143 -0
- package/dist/src/runtime/scheduler/contracts.js +1 -0
- package/dist/src/runtime/scheduler/file-store.d.ts +2 -0
- package/dist/src/runtime/scheduler/file-store.js +76 -0
- package/dist/src/runtime/scheduler/instant-validation.d.ts +4 -0
- package/dist/src/runtime/scheduler/instant-validation.js +69 -0
- package/dist/src/runtime/scheduler/interval-range.d.ts +8 -0
- package/dist/src/runtime/scheduler/interval-range.js +24 -0
- package/dist/src/runtime/scheduler/job-management.d.ts +8 -0
- package/dist/src/runtime/scheduler/job-management.js +212 -0
- package/dist/src/runtime/scheduler/journal-checkpoint.d.ts +9 -0
- package/dist/src/runtime/scheduler/journal-checkpoint.js +45 -0
- package/dist/src/runtime/scheduler/journal-durability.d.ts +8 -0
- package/dist/src/runtime/scheduler/journal-durability.js +59 -0
- package/dist/src/runtime/scheduler/journal-files.d.ts +14 -0
- package/dist/src/runtime/scheduler/journal-files.js +59 -0
- package/dist/src/runtime/scheduler/journal-head.d.ts +21 -0
- package/dist/src/runtime/scheduler/journal-head.js +81 -0
- package/dist/src/runtime/scheduler/journal-index-state.d.ts +31 -0
- package/dist/src/runtime/scheduler/journal-index-state.js +137 -0
- package/dist/src/runtime/scheduler/journal-index.d.ts +22 -0
- package/dist/src/runtime/scheduler/journal-index.js +195 -0
- package/dist/src/runtime/scheduler/journal-store.d.ts +21 -0
- package/dist/src/runtime/scheduler/journal-store.js +184 -0
- package/dist/src/runtime/scheduler/journal-transaction.d.ts +14 -0
- package/dist/src/runtime/scheduler/journal-transaction.js +104 -0
- package/dist/src/runtime/scheduler/next-occurrence.d.ts +3 -0
- package/dist/src/runtime/scheduler/next-occurrence.js +39 -0
- package/dist/src/runtime/scheduler/run-completion.d.ts +12 -0
- package/dist/src/runtime/scheduler/run-completion.js +77 -0
- package/dist/src/runtime/scheduler/run-list-query.d.ts +5 -0
- package/dist/src/runtime/scheduler/run-list-query.js +38 -0
- package/dist/src/runtime/scheduler/run-records.d.ts +6 -0
- package/dist/src/runtime/scheduler/run-records.js +41 -0
- package/dist/src/runtime/scheduler/schedule-update.d.ts +3 -0
- package/dist/src/runtime/scheduler/schedule-update.js +22 -0
- package/dist/src/runtime/scheduler/schedule-validation.d.ts +10 -0
- package/dist/src/runtime/scheduler/schedule-validation.js +132 -0
- package/dist/src/runtime/scheduler/scheduler-engine.d.ts +2 -0
- package/dist/src/runtime/scheduler/scheduler-engine.js +174 -0
- package/dist/src/runtime/scheduler/scheduler-service.d.ts +10 -0
- package/dist/src/runtime/scheduler/scheduler-service.js +115 -0
- package/dist/src/runtime/scheduler/service-context.d.ts +21 -0
- package/dist/src/runtime/scheduler/service-context.js +26 -0
- package/dist/src/runtime/scheduler/session-deletion-state.d.ts +9 -0
- package/dist/src/runtime/scheduler/session-deletion-state.js +30 -0
- package/dist/src/runtime/scheduler/snapshot-validation.d.ts +4 -0
- package/dist/src/runtime/scheduler/snapshot-validation.js +112 -0
- package/dist/src/runtime/scheduler/startup-recovery.d.ts +2 -0
- package/dist/src/runtime/scheduler/startup-recovery.js +38 -0
- package/dist/src/runtime/scheduler/validation-error.d.ts +4 -0
- package/dist/src/runtime/scheduler/validation-error.js +8 -0
- package/dist/src/runtime/scheduler/working-store.d.ts +3 -0
- package/dist/src/runtime/scheduler/working-store.js +8 -0
- package/dist/src/runtime/session/request-session.d.ts +1 -0
- package/dist/src/runtime/session/request-session.js +14 -1
- package/dist/src/runtime/session/session-attachment-deletion.d.ts +8 -0
- package/dist/src/runtime/session/session-attachment-deletion.js +87 -0
- package/dist/src/runtime/session/session-deletion-boundary.d.ts +10 -0
- package/dist/src/runtime/session/session-deletion-boundary.js +39 -0
- package/dist/src/runtime/session/session-deletion-cleanup.d.ts +7 -0
- package/dist/src/runtime/session/session-deletion-cleanup.js +62 -0
- package/dist/src/runtime/session/session-deletion-finalization.d.ts +7 -0
- package/dist/src/runtime/session/session-deletion-finalization.js +34 -0
- package/dist/src/runtime/session/session-deletion-receipts.d.ts +7 -0
- package/dist/src/runtime/session/session-deletion-receipts.js +18 -0
- package/dist/src/runtime/session/session-lifecycle-store.d.ts +21 -0
- package/dist/src/runtime/session/session-lifecycle-store.js +72 -0
- package/dist/src/runtime/session/session-mutation-queue.d.ts +3 -0
- package/dist/src/runtime/session/session-mutation-queue.js +15 -0
- package/dist/src/runtime/steps/execution-agent/capability-decision-parsing.d.ts +16 -0
- package/dist/src/runtime/steps/execution-agent/capability-decision-parsing.js +165 -0
- package/dist/src/runtime/steps/execution-agent/contracts.d.ts +3 -1
- package/dist/src/runtime/steps/execution-agent/decision-parsing.d.ts +2 -0
- package/dist/src/runtime/steps/execution-agent/decision-parsing.js +195 -0
- package/dist/src/runtime/steps/execution-agent/decision-validation.d.ts +30 -0
- package/dist/src/runtime/steps/execution-agent/decision-validation.js +127 -0
- package/dist/src/runtime/steps/execution-agent/format.d.ts +1 -0
- package/dist/src/runtime/steps/execution-agent/format.js +12 -0
- package/dist/src/runtime/steps/execution-agent/input.d.ts +2 -1
- package/dist/src/runtime/steps/execution-agent/input.js +17 -2
- package/dist/src/runtime/steps/execution-agent/parser.d.ts +1 -2
- package/dist/src/runtime/steps/execution-agent/parser.js +1 -472
- package/dist/src/runtime/steps/execution-agent/prompt.d.ts +2 -0
- package/dist/src/runtime/steps/execution-agent/prompt.js +6 -3
- package/dist/src/runtime/steps/execution-agent/reconsideration-context.js +4 -3
- package/dist/src/runtime/steps/execution-agent/response-input.js +5 -4
- package/dist/src/runtime/steps/execution-agent/response-run.d.ts +3 -0
- package/dist/src/runtime/steps/execution-agent/response-run.js +7 -3
- package/dist/src/runtime/steps/execution-agent/run.d.ts +2 -0
- package/dist/src/runtime/steps/execution-agent/run.js +2 -0
- package/dist/src/runtime/steps/execution-agent/state-context.d.ts +2 -1
- package/dist/src/runtime/steps/execution-agent/state-context.js +13 -5
- package/dist/src/runtime/steps/memory-recall-decision.d.ts +30 -0
- package/dist/src/runtime/steps/memory-recall-decision.js +101 -0
- package/dist/src/runtime/steps/memory-recall-prompt.d.ts +1 -0
- package/dist/src/runtime/steps/memory-recall-prompt.js +15 -0
- package/dist/src/runtime/steps/planner-decision/capability-catalog-context.d.ts +14 -0
- package/dist/src/runtime/steps/planner-decision/capability-catalog-context.js +87 -0
- package/dist/src/runtime/steps/planner-decision/contracts.d.ts +3 -5
- package/dist/src/runtime/steps/planner-decision/contracts.js +3 -3
- package/dist/src/runtime/steps/planner-decision/format.d.ts +3 -2
- package/dist/src/runtime/steps/planner-decision/format.js +73 -76
- package/dist/src/runtime/steps/planner-decision/input.d.ts +4 -3
- package/dist/src/runtime/steps/planner-decision/input.js +10 -7
- package/dist/src/runtime/steps/planner-decision/parser.d.ts +3 -2
- package/dist/src/runtime/steps/planner-decision/parser.js +10 -19
- package/dist/src/runtime/steps/planner-decision/plan-parser.js +18 -12
- package/dist/src/runtime/steps/planner-decision/prompt.js +33 -28
- package/dist/src/runtime/steps/planner-decision/resume.d.ts +1 -1
- package/dist/src/runtime/steps/planner-decision/resume.js +38 -1
- package/dist/src/runtime/steps/planner-decision/run.d.ts +3 -2
- package/dist/src/runtime/steps/reviewer-decision/audit-coverage.d.ts +10 -0
- package/dist/src/runtime/steps/reviewer-decision/audit-coverage.js +186 -0
- package/dist/src/runtime/steps/reviewer-decision/contracts.d.ts +3 -8
- package/dist/src/runtime/steps/reviewer-decision/contracts.js +12 -6
- package/dist/src/runtime/steps/reviewer-decision/delegated-context.d.ts +24 -0
- package/dist/src/runtime/steps/reviewer-decision/delegated-context.js +70 -0
- package/dist/src/runtime/steps/reviewer-decision/diagnostics.js +1 -1
- package/dist/src/runtime/steps/reviewer-decision/format.js +37 -24
- package/dist/src/runtime/steps/reviewer-decision/input.js +1 -1
- package/dist/src/runtime/steps/reviewer-decision/model-context.d.ts +4 -3
- package/dist/src/runtime/steps/reviewer-decision/model-context.js +92 -10
- package/dist/src/runtime/steps/reviewer-decision/parser.js +19 -1
- package/dist/src/runtime/steps/reviewer-decision/projection.js +42 -68
- package/dist/src/runtime/steps/reviewer-decision/prompt.js +10 -5
- package/dist/src/runtime/steps/reviewer-decision/run.js +12 -3
- package/dist/src/runtime/steps/reviewer-decision/verification-coverage.d.ts +14 -0
- package/dist/src/runtime/steps/reviewer-decision/verification-coverage.js +52 -0
- package/dist/src/runtime/steps/supervisor-decision/capability-brief.d.ts +14 -0
- package/dist/src/runtime/steps/supervisor-decision/capability-brief.js +38 -0
- package/dist/src/runtime/steps/supervisor-decision/contracts.d.ts +11 -5
- package/dist/src/runtime/steps/supervisor-decision/diagnostics.d.ts +4 -0
- package/dist/src/runtime/steps/supervisor-decision/diagnostics.js +21 -8
- package/dist/src/runtime/steps/supervisor-decision/format.d.ts +2 -0
- package/dist/src/runtime/steps/supervisor-decision/format.js +73 -22
- package/dist/src/runtime/steps/supervisor-decision/input.d.ts +9 -2
- package/dist/src/runtime/steps/supervisor-decision/input.js +44 -6
- package/dist/src/runtime/steps/supervisor-decision/memory-recall-continuation.d.ts +10 -0
- package/dist/src/runtime/steps/supervisor-decision/memory-recall-continuation.js +32 -0
- package/dist/src/runtime/steps/supervisor-decision/parser.d.ts +2 -0
- package/dist/src/runtime/steps/supervisor-decision/parser.js +97 -59
- package/dist/src/runtime/steps/supervisor-decision/prompt.d.ts +3 -0
- package/dist/src/runtime/steps/supervisor-decision/prompt.js +22 -15
- package/dist/src/runtime/steps/supervisor-decision/response-recommendation.d.ts +13 -0
- package/dist/src/runtime/steps/supervisor-decision/response-recommendation.js +32 -0
- package/dist/src/runtime/steps/supervisor-decision/resume.d.ts +2 -0
- package/dist/src/runtime/steps/supervisor-decision/resume.js +60 -1
- package/dist/src/runtime/steps/supervisor-decision/run.d.ts +3 -0
- package/dist/src/runtime/steps/supervisor-decision/run.js +29 -0
- package/dist/src/runtime/steps/supervisor-decision/working-directory.js +8 -1
- package/dist/src/runtime/steps/supervisor-response/diagnostics.d.ts +1 -0
- package/dist/src/runtime/steps/supervisor-response/diagnostics.js +1 -0
- package/dist/src/runtime/steps/supervisor-response/input.d.ts +2 -1
- package/dist/src/runtime/steps/supervisor-response/input.js +17 -4
- package/dist/src/runtime/steps/supervisor-response/memory-authoring.d.ts +1 -0
- package/dist/src/runtime/steps/supervisor-response/memory-authoring.js +4 -0
- package/dist/src/runtime/steps/supervisor-response/prompt.d.ts +1 -0
- package/dist/src/runtime/steps/supervisor-response/prompt.js +8 -2
- package/dist/src/runtime/steps/supervisor-response/response-recommendation.d.ts +10 -0
- package/dist/src/runtime/steps/supervisor-response/response-recommendation.js +25 -0
- package/dist/src/runtime/steps/supervisor-response/run.d.ts +6 -1
- package/dist/src/runtime/steps/supervisor-response/run.js +26 -7
- package/dist/src/runtime/steps/worker-decision/contracts.d.ts +2 -1
- package/dist/src/runtime/steps/worker-decision/input/canonical-state.js +8 -1
- package/dist/src/runtime/steps/worker-decision/input/diagnostic-projection.js +2 -2
- package/dist/src/runtime/steps/worker-decision/input/prompt-context.d.ts +1 -0
- package/dist/src/runtime/steps/worker-decision/input/prompt-context.js +4 -1
- package/dist/src/runtime/steps/worker-decision/input/reference-context.js +34 -14
- package/dist/src/runtime/steps/worker-decision/input/types.d.ts +2 -1
- package/dist/src/runtime/steps/worker-decision/input.d.ts +1 -0
- package/dist/src/runtime/steps/worker-decision/input.js +1 -0
- package/dist/src/runtime/steps/worker-decision/payload-dependency-results.d.ts +8 -0
- package/dist/src/runtime/steps/worker-decision/payload-dependency-results.js +19 -0
- package/dist/src/runtime/steps/worker-decision/prompt.js +8 -8
- package/dist/src/runtime/steps/worker-decision/result-author.js +18 -11
- package/dist/src/runtime/steps/worker-decision/run.js +2 -2
- package/dist/src/sessions/record/projection.js +1 -0
- package/dist/src/sessions/schedule-metadata.d.ts +8 -0
- package/dist/src/sessions/schedule-metadata.js +1 -0
- package/dist/src/sessions/session-service.d.ts +1 -0
- package/dist/src/sessions/session-service.js +1 -0
- package/dist/src/sessions/types.d.ts +2 -0
- package/dist/src/shared/http-server-shutdown.d.ts +4 -0
- package/dist/src/shared/http-server-shutdown.js +17 -0
- package/dist/src/shared/public-http/aggregate-gate.d.ts +3 -0
- package/dist/src/shared/public-http/aggregate-gate.js +87 -0
- package/dist/src/shared/public-http/deadline.d.ts +2 -0
- package/dist/src/shared/public-http/deadline.js +29 -0
- package/dist/src/shared/public-http/errors.d.ts +6 -0
- package/dist/src/shared/public-http/errors.js +11 -0
- package/dist/src/shared/public-http/limits.d.ts +8 -0
- package/dist/src/shared/public-http/limits.js +8 -0
- package/dist/src/shared/public-http/network-policy.d.ts +11 -0
- package/dist/src/shared/public-http/network-policy.js +178 -0
- package/dist/src/shared/public-http/public-http.d.ts +24 -0
- package/dist/src/shared/public-http/public-http.js +85 -0
- package/dist/src/shared/public-http/request-hop.d.ts +18 -0
- package/dist/src/shared/public-http/request-hop.js +140 -0
- package/dist/src/web-ui/app/ARCHITECTURE.md +82 -7
- package/dist/src/web-ui/app/app-bootstrap.js +53 -0
- package/dist/src/web-ui/app/app-dom.js +80 -0
- package/dist/src/web-ui/app/app.js +199 -217
- package/dist/src/web-ui/app/components/composer-context-window.d.ts +25 -0
- package/dist/src/web-ui/app/components/composer-context-window.js +155 -0
- package/dist/src/web-ui/app/components/composer-plan.d.ts +9 -0
- package/dist/src/web-ui/app/components/composer-plan.js +128 -0
- package/dist/src/web-ui/app/components/conversation-activity.d.ts +7 -6
- package/dist/src/web-ui/app/components/conversation-activity.js +97 -163
- package/dist/src/web-ui/app/components/conversation-role-cards.d.ts +24 -0
- package/dist/src/web-ui/app/components/conversation-role-cards.js +237 -0
- package/dist/src/web-ui/app/components/conversation-schedule.js +71 -0
- package/dist/src/web-ui/app/components/conversation-sidebar-layout.js +12 -0
- package/dist/src/web-ui/app/components/conversation-sources.d.ts +7 -0
- package/dist/src/web-ui/app/components/conversation-sources.js +182 -0
- package/dist/src/web-ui/app/components/conversation-status.js +65 -0
- package/dist/src/web-ui/app/components/conversation-tools.d.ts +13 -0
- package/dist/src/web-ui/app/components/conversation-tools.js +284 -0
- package/dist/src/web-ui/app/components/conversation-view.js +73 -17
- package/dist/src/web-ui/app/components/dashboard/activity.js +61 -0
- package/dist/src/web-ui/app/components/dashboard/icons.js +23 -0
- package/dist/src/web-ui/app/components/dashboard/recent-conversations.js +64 -0
- package/dist/src/web-ui/app/components/dashboard/workspace.js +107 -0
- package/dist/src/web-ui/app/components/message-link-previews.d.ts +16 -0
- package/dist/src/web-ui/app/components/message-link-previews.js +179 -0
- package/dist/src/web-ui/app/components/model-selector.js +4 -1
- package/dist/src/web-ui/app/components/operations-section.js +46 -0
- package/dist/src/web-ui/app/components/schedules/details.js +101 -0
- package/dist/src/web-ui/app/components/schedules/form.d.ts +13 -0
- package/dist/src/web-ui/app/components/schedules/form.js +246 -0
- package/dist/src/web-ui/app/components/schedules/workspace-state.js +59 -0
- package/dist/src/web-ui/app/components/schedules/workspace.js +165 -0
- package/dist/src/web-ui/app/components/workspace-shell.js +133 -79
- package/dist/src/web-ui/app/configuration-feature.js +72 -0
- package/dist/src/web-ui/app/controllers/composer-attachments-controller.d.ts +1 -0
- package/dist/src/web-ui/app/controllers/composer-attachments-controller.js +17 -6
- package/dist/src/web-ui/app/controllers/composer-submit-controller.d.ts +2 -0
- package/dist/src/web-ui/app/controllers/composer-submit-controller.js +15 -1
- package/dist/src/web-ui/app/controllers/composer-surface-controller.js +58 -0
- package/dist/src/web-ui/app/controllers/composer-workspace-controller.d.ts +53 -0
- package/dist/src/web-ui/app/controllers/composer-workspace-controller.js +180 -0
- package/dist/src/web-ui/app/controllers/conversation-read-state-controller.d.ts +23 -0
- package/dist/src/web-ui/app/controllers/conversation-read-state-controller.js +82 -0
- package/dist/src/web-ui/app/controllers/conversation-session-controller.d.ts +8 -0
- package/dist/src/web-ui/app/controllers/conversation-session-controller.js +28 -39
- package/dist/src/web-ui/app/controllers/dashboard-controller.js +127 -0
- package/dist/src/web-ui/app/controllers/home-composer-feature.d.ts +40 -0
- package/dist/src/web-ui/app/controllers/home-composer-feature.js +119 -0
- package/dist/src/web-ui/app/controllers/home-conversation-activation.js +37 -0
- package/dist/src/web-ui/app/controllers/realtime-event-controller.d.ts +2 -0
- package/dist/src/web-ui/app/controllers/realtime-event-controller.js +126 -90
- package/dist/src/web-ui/app/controllers/runtime-selection-controller.d.ts +2 -1
- package/dist/src/web-ui/app/controllers/runtime-selection-controller.js +17 -14
- package/dist/src/web-ui/app/controllers/schedule-realtime.js +118 -0
- package/dist/src/web-ui/app/controllers/schedules-controller.js +421 -0
- package/dist/src/web-ui/app/controllers/session-controller.js +47 -15
- package/dist/src/web-ui/app/dashboard-feature.js +44 -0
- package/dist/src/web-ui/app/index.html +240 -189
- package/dist/src/web-ui/app/lib/composer-plan-model.d.ts +32 -0
- package/dist/src/web-ui/app/lib/composer-plan-model.js +108 -0
- package/dist/src/web-ui/app/lib/composer-submission-scope.d.ts +21 -0
- package/dist/src/web-ui/app/lib/composer-submission-scope.js +13 -0
- package/dist/src/web-ui/app/lib/context-window-snapshot-order.d.ts +15 -0
- package/dist/src/web-ui/app/lib/context-window-snapshot-order.js +31 -0
- package/dist/src/web-ui/app/lib/conversation-role-model.d.ts +28 -0
- package/dist/src/web-ui/app/lib/conversation-role-model.js +275 -0
- package/dist/src/web-ui/app/lib/conversation-status-model.d.ts +12 -0
- package/dist/src/web-ui/app/lib/conversation-status-model.js +116 -0
- package/dist/src/web-ui/app/lib/dashboard-job-templates.js +41 -0
- package/dist/src/web-ui/app/lib/dashboard-presentation.js +126 -0
- package/dist/src/web-ui/app/lib/event-presentation.js +30 -9
- package/dist/src/web-ui/app/lib/message-markdown.d.ts +5 -0
- package/dist/src/web-ui/app/lib/message-markdown.js +99 -0
- package/dist/src/web-ui/app/lib/message-url-policy.d.ts +1 -0
- package/dist/src/web-ui/app/lib/message-url-policy.js +13 -0
- package/dist/src/web-ui/app/lib/schedule-errors.js +29 -0
- package/dist/src/web-ui/app/lib/schedule-message.js +30 -0
- package/dist/src/web-ui/app/lib/schedule-presentation.js +81 -0
- package/dist/src/web-ui/app/lib/session-read-state.d.ts +22 -0
- package/dist/src/web-ui/app/lib/session-read-state.js +63 -0
- package/dist/src/web-ui/app/lib/source-url-policy.d.ts +2 -0
- package/dist/src/web-ui/app/lib/source-url-policy.js +31 -0
- package/dist/src/web-ui/app/lib/task-progress.d.ts +53 -0
- package/dist/src/web-ui/app/lib/task-progress.js +233 -0
- package/dist/src/web-ui/app/lib/text-format.js +2 -143
- package/dist/src/web-ui/app/lib/tool-activity-event.d.ts +26 -0
- package/dist/src/web-ui/app/lib/tool-activity-event.js +228 -0
- package/dist/src/web-ui/app/lib/tool-activity-model.d.ts +41 -0
- package/dist/src/web-ui/app/lib/tool-activity-model.js +255 -0
- package/dist/src/web-ui/app/lib/tool-invocation-count.d.ts +5 -0
- package/dist/src/web-ui/app/lib/tool-invocation-count.js +21 -0
- package/dist/src/web-ui/app/lib/tool-timeline.d.ts +3 -0
- package/dist/src/web-ui/app/lib/tool-timeline.js +18 -0
- package/dist/src/web-ui/app/lib/web-source-event.d.ts +8 -0
- package/dist/src/web-ui/app/lib/web-source-event.js +21 -0
- package/dist/src/web-ui/app/lib/web-sources.d.ts +36 -0
- package/dist/src/web-ui/app/lib/web-sources.js +177 -0
- package/dist/src/web-ui/app/schedules-feature.js +87 -0
- package/dist/src/web-ui/app/services/message-link-preview-client.d.ts +14 -0
- package/dist/src/web-ui/app/services/message-link-preview-client.js +96 -0
- package/dist/src/web-ui/app/services/runtime-web-client/schedules.js +51 -0
- package/dist/src/web-ui/app/services/runtime-web-client.d.ts +37 -0
- package/dist/src/web-ui/app/services/runtime-web-client.js +13 -8
- package/dist/src/web-ui/app/styles/00-tokens-base.css +15 -3
- package/dist/src/web-ui/app/styles/10-shell-sessions.css +24 -34
- package/dist/src/web-ui/app/styles/12-conversation-sidebar.css +93 -0
- package/dist/src/web-ui/app/styles/18-dashboard.css +384 -0
- package/dist/src/web-ui/app/styles/20-chat-composer.css +54 -600
- package/dist/src/web-ui/app/styles/21-composer-controls.css +368 -0
- package/dist/src/web-ui/app/styles/22-composer-context-window.css +90 -0
- package/dist/src/web-ui/app/styles/23-composer-plan.css +171 -0
- package/dist/src/web-ui/app/styles/24-conversation-role-cards.css +205 -0
- package/dist/src/web-ui/app/styles/25-conversation-sources.css +141 -0
- package/dist/src/web-ui/app/styles/26-message-content.css +295 -0
- package/dist/src/web-ui/app/styles/27-conversation-tools.css +266 -0
- package/dist/src/web-ui/app/styles/28-conversation-status.css +52 -0
- package/dist/src/web-ui/app/styles/30-inspector-config.css +21 -209
- package/dist/src/web-ui/app/styles/35-memory-onboarding.css +8 -8
- package/dist/src/web-ui/app/styles/36-memory-management.css +13 -13
- package/dist/src/web-ui/app/styles/37-config-operations.css +197 -0
- package/dist/src/web-ui/app/styles/38-schedule-workspace.css +263 -0
- package/dist/src/web-ui/app/styles/38-schedules.css +352 -0
- package/dist/src/web-ui/app/styles/40-config-workspace.css +36 -36
- package/dist/src/web-ui/app/styles/90-responsive.css +28 -77
- package/dist/src/web-ui/app/styles/91-schedules-responsive.css +72 -0
- package/dist/src/web-ui/app/styles/92-dashboard-responsive.css +88 -0
- package/dist/src/web-ui/app/styles/foundation.css +2 -2
- package/dist/src/web-ui/app/styles.css +15 -0
- package/dist/src/web-ui/app/ui-behavior.d.ts +1 -1
- package/dist/src/web-ui/app/ui-behavior.js +4 -2
- package/dist/src/web-ui/app/vendor/README.md +15 -0
- package/dist/src/web-ui/app/vendor/markdown-it.LICENSE +22 -0
- package/dist/src/web-ui/app/vendor/markdown-it.js +3003 -0
- package/dist/src/web-ui/link-preview/metadata.d.ts +9 -0
- package/dist/src/web-ui/link-preview/metadata.js +97 -0
- package/dist/src/web-ui/link-preview/preview-cache.d.ts +4 -0
- package/dist/src/web-ui/link-preview/preview-cache.js +23 -0
- package/dist/src/web-ui/link-preview/raster-response.d.ts +9 -0
- package/dist/src/web-ui/link-preview/raster-response.js +49 -0
- package/dist/src/web-ui/link-preview/routes.d.ts +3 -0
- package/dist/src/web-ui/link-preview/routes.js +97 -0
- package/dist/src/web-ui/link-preview/service.d.ts +11 -0
- package/dist/src/web-ui/link-preview/service.js +117 -0
- package/dist/src/web-ui/local-runtime/api-router.d.ts +4 -1
- package/dist/src/web-ui/local-runtime/api-router.js +42 -73
- package/dist/src/web-ui/local-runtime/contracts.d.ts +2 -2
- package/dist/src/web-ui/local-runtime/environment-registry.d.ts +12 -1
- package/dist/src/web-ui/local-runtime/environment-registry.js +38 -3
- package/dist/src/web-ui/local-runtime/realtime-controller.js +3 -1
- package/dist/src/web-ui/local-runtime/request-execution.d.ts +5 -1
- package/dist/src/web-ui/local-runtime/request-execution.js +38 -2
- package/dist/src/web-ui/local-runtime/schedule-job-creation.d.ts +7 -0
- package/dist/src/web-ui/local-runtime/schedule-job-creation.js +62 -0
- package/dist/src/web-ui/local-runtime/schedule-management-routes.d.ts +30 -0
- package/dist/src/web-ui/local-runtime/schedule-management-routes.js +134 -0
- package/dist/src/web-ui/local-runtime/schedule-run-page.d.ts +5 -0
- package/dist/src/web-ui/local-runtime/schedule-run-page.js +23 -0
- package/dist/src/web-ui/local-runtime/session-routes.d.ts +17 -0
- package/dist/src/web-ui/local-runtime/session-routes.js +74 -0
- package/dist/src/web-ui/local-runtime-backend.d.ts +2 -0
- package/dist/src/web-ui/local-runtime-backend.js +11 -1
- package/dist/src/web-ui/schedule-creation-contract.d.ts +7 -0
- package/dist/src/web-ui/schedule-creation-contract.js +1 -0
- package/dist/src/web-ui/server-shutdown.d.ts +4 -0
- package/dist/src/web-ui/server-shutdown.js +32 -0
- package/dist/src/web-ui/server.js +13 -10
- package/dist/src/web-ui/session-read-state/availability.d.ts +16 -0
- package/dist/src/web-ui/session-read-state/availability.js +20 -0
- package/dist/src/web-ui/session-read-state/projection.d.ts +17 -0
- package/dist/src/web-ui/session-read-state/projection.js +71 -0
- package/dist/src/web-ui/session-read-state/service.d.ts +86 -0
- package/dist/src/web-ui/session-read-state/service.js +89 -0
- package/dist/src/web-ui/session-read-state/store.d.ts +22 -0
- package/dist/src/web-ui/session-read-state/store.js +110 -0
- package/docs/configuration.md +56 -9
- package/docs/installation.md +7 -4
- package/docs/known-limitations.md +21 -0
- package/docs/long-term-memory.md +46 -5
- package/docs/plugins.md +28 -13
- package/docs/runtime-invariant-coverage.md +18 -17
- package/docs/runtime-library.md +23 -0
- package/docs/runtime-prompt-policy-contracts.md +27 -17
- package/docs/runtime-public-contracts.md +32 -1
- package/package.json +6 -3
- package/plugins/capability-brief/source/index.ts +5 -48
- package/plugins/capability-brief/src/index.cjs +46 -33
- package/plugins/code-outline/plugin.json +15 -0
- package/plugins/document-reader/plugin.json +17 -0
- package/plugins/filesystem/plugin.json +17 -2
- package/plugins/json-inspector/plugin.json +12 -0
- package/plugins/local-search/plugin.json +12 -0
- package/plugins/memory/plugin.json +26 -1
- package/plugins/memory/source/index.ts +10 -6
- package/plugins/memory/src/index.cjs +11 -7
- package/plugins/project-orientation/plugin.json +14 -0
- package/plugins/system-probe/plugin.json +1 -0
- package/plugins/web/README.md +125 -0
- package/plugins/web/plugin.json +1 -1
- package/plugins/web/skills/web_fetch_skill/SKILL.md +2 -2
- package/plugins/web/skills/web_search_skill/SKILL.md +8 -4
- package/plugins/web/source/aggregate-gate.ts +8 -130
- package/plugins/web/source/deadline.ts +14 -50
- package/plugins/web/source/errors.ts +22 -12
- package/plugins/web/source/fetch-presentation.ts +61 -0
- package/plugins/web/source/fetch-service.ts +2 -31
- package/plugins/web/source/light/config.ts +196 -0
- package/plugins/web/source/light/crawl/origin-gate.ts +134 -0
- package/plugins/web/source/light/crawl/robots-cache.ts +71 -0
- package/plugins/web/source/light/crawl/robots-parser.ts +132 -0
- package/plugins/web/source/light/crawl/robots-policy.ts +154 -0
- package/plugins/web/source/light/crawl/session-budget.ts +141 -0
- package/plugins/web/source/light/crawl/transport.ts +216 -0
- package/plugins/web/source/light/discovery/candidate-values.ts +63 -0
- package/plugins/web/source/light/discovery/feed-document.ts +127 -0
- package/plugins/web/source/light/discovery/html-links.ts +80 -0
- package/plugins/web/source/light/discovery/html-robots-directives.ts +29 -0
- package/plugins/web/source/light/discovery/markup-tree.ts +145 -0
- package/plugins/web/source/light/discovery/origin-dates.ts +71 -0
- package/plugins/web/source/light/discovery/sitemap-document.ts +63 -0
- package/plugins/web/source/light/documents/cache-policy.ts +28 -0
- package/plugins/web/source/light/documents/document-cache.ts +99 -0
- package/plugins/web/source/light/documents/document-charset.ts +89 -0
- package/plugins/web/source/light/documents/document-contract.ts +20 -0
- package/plugins/web/source/light/documents/document-reader.ts +75 -0
- package/plugins/web/source/light/documents/extract-document.ts +124 -0
- package/plugins/web/source/light/documents/http-cache-freshness.ts +68 -0
- package/plugins/web/source/light/documents/response-decoding.ts +120 -0
- package/plugins/web/source/light/ranking/document-ranking.ts +114 -0
- package/plugins/web/source/light/ranking/query-normalization.ts +69 -0
- package/plugins/web/source/light/search-collection.ts +136 -0
- package/plugins/web/source/light/search-frontier.ts +246 -0
- package/plugins/web/source/light/search-metadata.ts +84 -0
- package/plugins/web/source/light/search-service.ts +154 -0
- package/plugins/web/source/light/search-unavailable.ts +33 -0
- package/plugins/web/source/light/sources/catalog.ts +312 -0
- package/plugins/web/source/light/sources/source-definition.ts +9 -0
- package/plugins/web/source/light/sources/source-selection.ts +35 -0
- package/plugins/web/source/limits.ts +3 -6
- package/plugins/web/source/network-policy.ts +28 -226
- package/plugins/web/source/plugin.ts +70 -56
- package/plugins/web/source/public-http.ts +17 -133
- package/plugins/web/source/request-hop.ts +11 -191
- package/plugins/web/source/search-presentation.ts +63 -63
- package/plugins/web/source/search-service-selector.ts +31 -0
- package/plugins/web/source/search-service.ts +6 -0
- package/plugins/web/source/search-source-presentation.ts +76 -0
- package/plugins/web/source/search-types.ts +4 -0
- package/plugins/web/source/source-output-receipts.ts +267 -0
- package/plugins/web/source/source-receipt-budget.ts +51 -0
- package/plugins/web/source/source-receipt-contract.ts +18 -0
- package/plugins/web/src/index.cjs +3289 -303
- package/runtime.config.schema.json +7 -0
- package/src/runtime/README.md +134 -9
- package/src/runtime/local-host/README.md +86 -0
- package/src/runtime/scheduler/README.md +166 -0
- package/dist/src/model-gateway/structured-output/budget.d.ts +0 -7
- package/dist/src/model-gateway/structured-output/budget.js +0 -20
- package/dist/src/model-gateway/structured-output/schema-character-estimator.d.ts +0 -1
- package/dist/src/model-gateway/structured-output/schema-character-estimator.js +0 -211
- package/dist/src/model-gateway/structured-output-budget.d.ts +0 -1
- package/dist/src/model-gateway/structured-output-budget.js +0 -1
package/README.md
CHANGED
|
@@ -13,6 +13,7 @@ hardcoded defaults.
|
|
|
13
13
|
- Configurable local and hosted model providers
|
|
14
14
|
- Persistent conversations, request events, and replay
|
|
15
15
|
- Optional passive long-term memory across sessions
|
|
16
|
+
- Local scheduled requests bound to their conversations
|
|
16
17
|
- Planning, execution, and review workflows
|
|
17
18
|
- Manifest-based tools and plugins with explicit runtime boundaries
|
|
18
19
|
- Workspace, file, skill, and memory capabilities
|
|
@@ -34,11 +35,24 @@ The Web UI supports:
|
|
|
34
35
|
- steering an active request or queuing the next message
|
|
35
36
|
- editing runtime configuration
|
|
36
37
|
- configuring passive long-term memory with a consumer-selected embedding model
|
|
38
|
+
- managing schedules, their saved models, and run history in the Schedules workspace
|
|
37
39
|
- inspecting runtime status, logs, and health
|
|
38
40
|
|
|
39
41
|
The UI is a client of the runtime; persisted sessions, events, and request state
|
|
40
42
|
remain owned by the runtime.
|
|
41
43
|
|
|
44
|
+
Schedules can also be managed through the model's built-in `schedules` capability.
|
|
45
|
+
Every Job belongs to a conversation and runs there with its saved model and FULL
|
|
46
|
+
tool permissions. The chat shows a compact run card; expand it to read the exact
|
|
47
|
+
historical prompt. ABot must be running at the scheduled time. Missed offline
|
|
48
|
+
occurrences and failed runs are not retried. Cancelling a Job or deleting its
|
|
49
|
+
conversation prevents pending starts; an already-started run continues.
|
|
50
|
+
|
|
51
|
+
Timers, one-time requests, intervals, and daily/weekly/monthly schedules are
|
|
52
|
+
supported. Calendar schedules require an exact time and IANA time zone. Jobs and
|
|
53
|
+
run history are stored locally under the environment's runtime directory.
|
|
54
|
+
Scheduling uses the Runtime directly and requires no plugin or external bridge.
|
|
55
|
+
|
|
42
56
|
## Requirements
|
|
43
57
|
|
|
44
58
|
- Node.js `^20.19.0` or `>=22.12.0` (Node.js 21 is not supported)
|
|
@@ -219,9 +233,12 @@ from core-owned passive long-term memory.
|
|
|
219
233
|
The Web plugin exposes two distinct capabilities:
|
|
220
234
|
|
|
221
235
|
- `web_fetch` retrieves a specific public HTTP(S) page without a search API key.
|
|
222
|
-
- `web_search` uses
|
|
223
|
-
|
|
224
|
-
|
|
236
|
+
- `web_search` uses Brave Search when `BRAVE_SEARCH_API_KEY` is configured.
|
|
237
|
+
Without a key, it uses Light search: bounded discovery and ranking within a
|
|
238
|
+
catalog of public Hebrew and English sources, without an external search
|
|
239
|
+
engine. Light has limited coverage; an empty result does not mean the
|
|
240
|
+
information is absent from the web. A configured Brave key that fails does
|
|
241
|
+
not trigger an automatic switch to Light.
|
|
225
242
|
|
|
226
243
|
Some plugins have platform-specific requirements. See [Plugins](docs/plugins.md)
|
|
227
244
|
for their contracts, limits, and configuration.
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import type WebSocket from "ws";
|
|
2
|
+
import type { RuntimeRequestHandler } from "../runtime/composition.js";
|
|
2
3
|
import { type RequestSteeringInbox } from "../runtime/request/request-steering.js";
|
|
3
4
|
export type BridgeRequestSteeringRegistry = Readonly<{
|
|
4
5
|
close(requestId: string, inbox: RequestSteeringInbox): Promise<void>;
|
|
5
6
|
handleMessage(ws: WebSocket, message: Record<string, unknown>): Promise<boolean>;
|
|
6
7
|
open(requestId: string): RequestSteeringInbox;
|
|
7
8
|
}>;
|
|
8
|
-
export declare function createBridgeRequestSteeringRegistry(): BridgeRequestSteeringRegistry;
|
|
9
|
+
export declare function createBridgeRequestSteeringRegistry(steer?: RuntimeRequestHandler["steer"]): BridgeRequestSteeringRegistry;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { traceDebug } from "../runtime/observability/debug-logger.js";
|
|
2
2
|
import { createRequestSteeringInbox, } from "../runtime/request/request-steering.js";
|
|
3
3
|
const LOG_SCOPE = "agent-bridge.request_steering";
|
|
4
|
-
export function createBridgeRequestSteeringRegistry() {
|
|
4
|
+
export function createBridgeRequestSteeringRegistry(steer) {
|
|
5
5
|
const active = new Map();
|
|
6
6
|
return Object.freeze({
|
|
7
7
|
async close(requestId, inbox) {
|
|
@@ -23,7 +23,9 @@ export function createBridgeRequestSteeringRegistry() {
|
|
|
23
23
|
const steerId = readString(message.steerId).trim();
|
|
24
24
|
const text = readString(message.text).trim();
|
|
25
25
|
const current = active.get(requestId);
|
|
26
|
-
const result =
|
|
26
|
+
const result = (steer && current
|
|
27
|
+
? await steer(requestId, { steerId, text })
|
|
28
|
+
: current?.inbox.append({ steerId, text })) ??
|
|
27
29
|
Object.freeze({
|
|
28
30
|
ok: false,
|
|
29
31
|
reason: "request_not_active",
|
|
@@ -2,6 +2,7 @@ import { randomUUID } from "node:crypto";
|
|
|
2
2
|
import { readFile } from "node:fs/promises";
|
|
3
3
|
import { clearSessionMessages, deleteMessageWithStats, deleteSessionWithStats, getRequestReplayById, getSessionSnapshot, listSessions, } from "../sessions/index.js";
|
|
4
4
|
import { DEFAULT_MAX_ATTACHMENT_BYTES, } from "../runtime/attachments/store.js";
|
|
5
|
+
import { deleteSessionWithAttachments, deleteSessionAttachmentsIfSupported, } from "../runtime/session/session-attachment-deletion.js";
|
|
5
6
|
import { resolveRuntimeAttachmentMimeType } from "../shared/attachments.js";
|
|
6
7
|
const defaultRuntimeReplaySessionStore = {
|
|
7
8
|
clearSessionMessages,
|
|
@@ -344,10 +345,7 @@ async function handleSessionDeleteRequest(ws, msg, sessionStore, attachmentStore
|
|
|
344
345
|
return;
|
|
345
346
|
}
|
|
346
347
|
try {
|
|
347
|
-
const result = await sessionStore
|
|
348
|
-
if (result.deleted) {
|
|
349
|
-
await deleteSessionAttachmentsIfSupported(attachmentStore, sessionId);
|
|
350
|
-
}
|
|
348
|
+
const result = await deleteSessionWithAttachments(sessionStore, attachmentStore, sessionId);
|
|
351
349
|
sendRuntimeReplayResponse(ws, {
|
|
352
350
|
type: "session.delete.response",
|
|
353
351
|
correlationId,
|
|
@@ -402,21 +400,6 @@ async function handleSessionMessagesClearRequest(ws, msg, sessionStore, attachme
|
|
|
402
400
|
}, error instanceof Error ? error.message : String(error));
|
|
403
401
|
}
|
|
404
402
|
}
|
|
405
|
-
async function deleteSessionAttachmentsIfSupported(attachmentStore, sessionId) {
|
|
406
|
-
if (!attachmentStore) {
|
|
407
|
-
return;
|
|
408
|
-
}
|
|
409
|
-
try {
|
|
410
|
-
await attachmentStore.deleteSessionAttachments(sessionId);
|
|
411
|
-
}
|
|
412
|
-
catch (error) {
|
|
413
|
-
if (error instanceof Error &&
|
|
414
|
-
error.message === "attachment_owner_invalid") {
|
|
415
|
-
return;
|
|
416
|
-
}
|
|
417
|
-
throw error;
|
|
418
|
-
}
|
|
419
|
-
}
|
|
420
403
|
async function deleteAttachmentIfSupported(attachmentStore, attachment, sessionId) {
|
|
421
404
|
if (!attachmentStore?.deleteAttachment) {
|
|
422
405
|
return;
|
|
@@ -109,7 +109,7 @@ export function startAgentBridge(options = {}) {
|
|
|
109
109
|
let lastMessageAt;
|
|
110
110
|
let lastPongAt;
|
|
111
111
|
const pendingToolApprovals = new Map();
|
|
112
|
-
const requestSteering = createBridgeRequestSteeringRegistry();
|
|
112
|
+
const requestSteering = createBridgeRequestSteeringRegistry(requestHandler.steer);
|
|
113
113
|
function getStatus() {
|
|
114
114
|
return {
|
|
115
115
|
runtimeId,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { TOOL_NORMAL_INVOCATION_IDENTIFIER_MAX_LENGTH, TOOL_NORMAL_INVOCATION_PAYLOAD_MAX_BYTES, TOOL_NORMAL_INVOCATION_VERSION, } from "./contracts.js";
|
|
2
|
-
const MAX_OPERATIONS =
|
|
2
|
+
const MAX_OPERATIONS = 32;
|
|
3
3
|
const MAX_SUMMARY_LENGTH = 512;
|
|
4
4
|
const MAX_INSTRUCTIONS_LENGTH = 1_024;
|
|
5
5
|
const MAX_PROPERTIES = 16;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { isToolDefinitionRecordValue } from "./definition-shape.js";
|
|
2
|
+
import { parseEventResultMetadata } from "./event-result-metadata.js";
|
|
2
3
|
const EVENT_PROJECTION_KINDS = [
|
|
3
4
|
"string",
|
|
4
5
|
"number",
|
|
@@ -16,8 +17,10 @@ export function parseEventPresentation(toolName, raw) {
|
|
|
16
17
|
}
|
|
17
18
|
const metadata = Object.fromEntries(Object.entries(raw.metadata).map(([key, projection]) => parseEventMetadataProjection(toolName, key, projection)));
|
|
18
19
|
const lifecycle = parseEventLifecycle(toolName, raw.lifecycle);
|
|
20
|
+
const resultMetadata = parseEventResultMetadata(raw.resultMetadata, `eventPresentation.resultMetadata (${toolName})`);
|
|
19
21
|
return {
|
|
20
22
|
metadata,
|
|
23
|
+
...(resultMetadata ? { resultMetadata } : {}),
|
|
21
24
|
...(lifecycle ? { lifecycle } : {}),
|
|
22
25
|
};
|
|
23
26
|
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { isToolDefinitionRecordValue } from "./definition-shape.js";
|
|
2
|
+
const RESULT_METADATA_LIMIT = 16;
|
|
3
|
+
const RESULT_PATH_SEGMENT_LIMIT = 4;
|
|
4
|
+
const RESULT_PROJECTION_KINDS = ["preview", "number", "boolean"];
|
|
5
|
+
const FORBIDDEN_PATH_SEGMENTS = new Set([
|
|
6
|
+
"__proto__",
|
|
7
|
+
"prototype",
|
|
8
|
+
"constructor",
|
|
9
|
+
]);
|
|
10
|
+
export function parseEventResultMetadata(raw, path) {
|
|
11
|
+
if (raw === undefined)
|
|
12
|
+
return undefined;
|
|
13
|
+
if (!isToolDefinitionRecordValue(raw)) {
|
|
14
|
+
throw new Error(`${path} must be an object`);
|
|
15
|
+
}
|
|
16
|
+
const entries = Object.entries(raw);
|
|
17
|
+
if (entries.length > RESULT_METADATA_LIMIT) {
|
|
18
|
+
throw new Error(`${path} exceeds ${RESULT_METADATA_LIMIT} projections`);
|
|
19
|
+
}
|
|
20
|
+
const result = Object.fromEntries(entries.map(([key, value]) => {
|
|
21
|
+
if (!hasSupportedResultMetadataKey(key)) {
|
|
22
|
+
throw new Error(`${path} contains an invalid metadata key`);
|
|
23
|
+
}
|
|
24
|
+
if (!isToolDefinitionRecordValue(value)) {
|
|
25
|
+
throw new Error(`${path}.${key} must be an object`);
|
|
26
|
+
}
|
|
27
|
+
if (hasUnknownResultProjectionFields(value)) {
|
|
28
|
+
throw new Error(`${path}.${key} contains an unknown field`);
|
|
29
|
+
}
|
|
30
|
+
if (!hasSupportedResultMetadataPath(value.path)) {
|
|
31
|
+
throw new Error(`${path}.${key}.path must select output or data`);
|
|
32
|
+
}
|
|
33
|
+
if (!isResultProjectionKind(value.kind)) {
|
|
34
|
+
throw new Error(`${path}.${key}.kind is not supported`);
|
|
35
|
+
}
|
|
36
|
+
return [key, { path: value.path, kind: value.kind }];
|
|
37
|
+
}));
|
|
38
|
+
for (const [key, projection] of Object.entries(result)) {
|
|
39
|
+
if (projection.kind !== "preview")
|
|
40
|
+
continue;
|
|
41
|
+
if (Object.hasOwn(result, `${key}Truncated`)) {
|
|
42
|
+
throw new Error(`${path}.${key} conflicts with its truncation metadata`);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return result;
|
|
46
|
+
}
|
|
47
|
+
function hasSupportedResultMetadataKey(key) {
|
|
48
|
+
if (!/^[a-zA-Z][a-zA-Z0-9]{0,63}$/u.test(key))
|
|
49
|
+
return false;
|
|
50
|
+
return !FORBIDDEN_PATH_SEGMENTS.has(key);
|
|
51
|
+
}
|
|
52
|
+
function hasSupportedResultMetadataPath(value) {
|
|
53
|
+
if (typeof value !== "string")
|
|
54
|
+
return false;
|
|
55
|
+
if (value === "output")
|
|
56
|
+
return true;
|
|
57
|
+
const segments = value.split(".");
|
|
58
|
+
if (segments[0] !== "data")
|
|
59
|
+
return false;
|
|
60
|
+
if (segments.length < 2 || segments.length > RESULT_PATH_SEGMENT_LIMIT)
|
|
61
|
+
return false;
|
|
62
|
+
return segments.every(isSupportedResultPathSegment);
|
|
63
|
+
}
|
|
64
|
+
function hasUnknownResultProjectionFields(value) {
|
|
65
|
+
return Object.keys(value).some((field) => field !== "path" && field !== "kind");
|
|
66
|
+
}
|
|
67
|
+
function isSupportedResultPathSegment(segment) {
|
|
68
|
+
if (!/^[a-zA-Z][a-zA-Z0-9_]*$/u.test(segment))
|
|
69
|
+
return false;
|
|
70
|
+
return !FORBIDDEN_PATH_SEGMENTS.has(segment);
|
|
71
|
+
}
|
|
72
|
+
function isResultProjectionKind(value) {
|
|
73
|
+
return RESULT_PROJECTION_KINDS.includes(value);
|
|
74
|
+
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { projectToolResultEventMetadata } from "./tool-result-event-projection.js";
|
|
1
2
|
function safeTrim(value) {
|
|
2
3
|
return typeof value === "string" ? value.trim() : "";
|
|
3
4
|
}
|
|
@@ -177,5 +178,7 @@ export function buildToolCompletedEventMetadata(call, result, definition) {
|
|
|
177
178
|
...(buildCallMeta(call, definition) || {}),
|
|
178
179
|
...toolResultData,
|
|
179
180
|
...(buildResultMeta(result, actions) || {}),
|
|
181
|
+
// Explicit result mappings override generic display fallbacks when present.
|
|
182
|
+
...projectToolResultEventMetadata(result, definition?.eventPresentation?.resultMetadata),
|
|
180
183
|
});
|
|
181
184
|
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { ToolEventMetadata, ToolEventPresentation, ToolExecutionResult } from "./tool-types.js";
|
|
2
|
+
/** Derive display metadata without changing canonical tool evidence. */
|
|
3
|
+
export declare function projectToolResultEventMetadata(result: ToolExecutionResult, projections: ToolEventPresentation["resultMetadata"]): ToolEventMetadata | undefined;
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
const PREVIEW_CHARACTER_LIMIT = 1_200;
|
|
2
|
+
const PREVIEW_LINE_LIMIT = 20;
|
|
3
|
+
const EVENT_PREVIEW_CHARACTER_LIMIT = 2_400;
|
|
4
|
+
/** Derive display metadata without changing canonical tool evidence. */
|
|
5
|
+
export function projectToolResultEventMetadata(result, projections) {
|
|
6
|
+
if (!projections)
|
|
7
|
+
return undefined;
|
|
8
|
+
const metadata = {};
|
|
9
|
+
let remainingCharacters = EVENT_PREVIEW_CHARACTER_LIMIT;
|
|
10
|
+
for (const [key, projection] of Object.entries(projections)) {
|
|
11
|
+
const value = readProjectedResultValue(result, projection);
|
|
12
|
+
if (value === undefined)
|
|
13
|
+
continue;
|
|
14
|
+
if (typeof value !== "string") {
|
|
15
|
+
metadata[key] = value;
|
|
16
|
+
continue;
|
|
17
|
+
}
|
|
18
|
+
const preview = boundResultPreview(value, remainingCharacters);
|
|
19
|
+
metadata[key] = preview.text;
|
|
20
|
+
metadata[`${key}Truncated`] = preview.truncated;
|
|
21
|
+
remainingCharacters -= preview.text.length;
|
|
22
|
+
}
|
|
23
|
+
return Object.keys(metadata).length > 0 ? metadata : undefined;
|
|
24
|
+
}
|
|
25
|
+
function readProjectedResultValue(result, projection) {
|
|
26
|
+
const value = readOwnResultPath(result, projection.path);
|
|
27
|
+
if (projection.kind === "number") {
|
|
28
|
+
return isFiniteResultNumber(value) ? value : undefined;
|
|
29
|
+
}
|
|
30
|
+
if (projection.kind === "boolean") {
|
|
31
|
+
return typeof value === "boolean" ? value : undefined;
|
|
32
|
+
}
|
|
33
|
+
return typeof value === "string" ? value : undefined;
|
|
34
|
+
}
|
|
35
|
+
function readOwnResultPath(result, path) {
|
|
36
|
+
let value = result;
|
|
37
|
+
for (const segment of path.split(".")) {
|
|
38
|
+
if (!isOwnResultContainer(value, segment))
|
|
39
|
+
return undefined;
|
|
40
|
+
value = value[segment];
|
|
41
|
+
}
|
|
42
|
+
return value;
|
|
43
|
+
}
|
|
44
|
+
function isOwnResultContainer(value, key) {
|
|
45
|
+
if (value === null || typeof value !== "object")
|
|
46
|
+
return false;
|
|
47
|
+
if (Array.isArray(value))
|
|
48
|
+
return false;
|
|
49
|
+
return Object.hasOwn(value, key);
|
|
50
|
+
}
|
|
51
|
+
function isFiniteResultNumber(value) {
|
|
52
|
+
return typeof value === "number" && Number.isFinite(value);
|
|
53
|
+
}
|
|
54
|
+
function boundResultPreview(value, remainingCharacters) {
|
|
55
|
+
const characterLimit = Math.min(PREVIEW_CHARACTER_LIMIT, remainingCharacters);
|
|
56
|
+
let end = Math.min(value.length, characterLimit);
|
|
57
|
+
let lineCount = 1;
|
|
58
|
+
for (let index = 0; index < end; index += 1) {
|
|
59
|
+
if (!startsPreviewLine(value, index))
|
|
60
|
+
continue;
|
|
61
|
+
lineCount += 1;
|
|
62
|
+
if (lineCount <= PREVIEW_LINE_LIMIT)
|
|
63
|
+
continue;
|
|
64
|
+
end = index;
|
|
65
|
+
break;
|
|
66
|
+
}
|
|
67
|
+
if (splitsSurrogatePair(value, end))
|
|
68
|
+
end -= 1;
|
|
69
|
+
return { text: value.slice(0, end), truncated: end < value.length };
|
|
70
|
+
}
|
|
71
|
+
function startsPreviewLine(value, index) {
|
|
72
|
+
if (value[index] === "\r")
|
|
73
|
+
return true;
|
|
74
|
+
return value[index] === "\n" && value[index - 1] !== "\r";
|
|
75
|
+
}
|
|
76
|
+
function splitsSurrogatePair(value, end) {
|
|
77
|
+
if (end <= 0 || end >= value.length)
|
|
78
|
+
return false;
|
|
79
|
+
const before = value.charCodeAt(end - 1);
|
|
80
|
+
const after = value.charCodeAt(end);
|
|
81
|
+
return (before >= 0xd800 && before <= 0xdbff && after >= 0xdc00 && after <= 0xdfff);
|
|
82
|
+
}
|
|
@@ -18,8 +18,13 @@ export type ToolEventLifecycleCopy = Readonly<{
|
|
|
18
18
|
status: string;
|
|
19
19
|
message: string;
|
|
20
20
|
}>;
|
|
21
|
+
export type ToolEventResultMetadataProjection = Readonly<{
|
|
22
|
+
path: string;
|
|
23
|
+
kind: "preview" | "number" | "boolean";
|
|
24
|
+
}>;
|
|
21
25
|
export type ToolEventPresentation = Readonly<{
|
|
22
26
|
metadata: Readonly<Record<string, ToolEventMetadataProjection>>;
|
|
27
|
+
resultMetadata?: Readonly<Record<string, ToolEventResultMetadataProjection>>;
|
|
23
28
|
lifecycle?: Readonly<{
|
|
24
29
|
started?: ToolEventLifecycleCopy;
|
|
25
30
|
completed?: ToolEventLifecycleCopy;
|
|
@@ -115,7 +120,7 @@ export type ToolRequestAttachment = Readonly<{
|
|
|
115
120
|
name?: string;
|
|
116
121
|
size?: number;
|
|
117
122
|
}>;
|
|
118
|
-
/** Minimal config-filtered tool fact
|
|
123
|
+
/** Minimal config-filtered tool fact; consumers project it for their own context. */
|
|
119
124
|
export type ToolAvailabilityEntry = Readonly<{
|
|
120
125
|
toolName: string;
|
|
121
126
|
operationId: string;
|
package/dist/src/cli/abot.js
CHANGED
|
@@ -4,6 +4,7 @@ import { runInitRuntime } from "../../scripts/init-runtime.js";
|
|
|
4
4
|
import { runConfigureLongTermMemory } from "../../scripts/configure-long-term-memory.js";
|
|
5
5
|
import { createModelGatewayServer, resolveProviderAdapters, resolveModelGatewayPort, } from "../model-gateway/server.js";
|
|
6
6
|
import { loadDotEnvFile } from "../shared/load-dotenv.js";
|
|
7
|
+
import { closeHttpServerImmediately } from "../shared/http-server-shutdown.js";
|
|
7
8
|
import { startWebUiServer } from "../web-ui/server.js";
|
|
8
9
|
import { resolveWebUiAddress } from "../web-ui/web-ui-address.js";
|
|
9
10
|
function printHelp() {
|
|
@@ -23,16 +24,6 @@ function printHelp() {
|
|
|
23
24
|
" start Start the local model gateway and Web UI.",
|
|
24
25
|
].join("\n"));
|
|
25
26
|
}
|
|
26
|
-
function closeServer(server) {
|
|
27
|
-
return new Promise((resolveClose, reject) => {
|
|
28
|
-
server.close((error) => {
|
|
29
|
-
if (error)
|
|
30
|
-
reject(error);
|
|
31
|
-
else
|
|
32
|
-
resolveClose();
|
|
33
|
-
});
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
27
|
async function runStart(args) {
|
|
37
28
|
if (args.includes("--help") || args.includes("-h")) {
|
|
38
29
|
console.log("Usage: abot start");
|
|
@@ -75,7 +66,7 @@ async function runStart(args) {
|
|
|
75
66
|
closing = true;
|
|
76
67
|
void Promise.all([
|
|
77
68
|
webUi.close(),
|
|
78
|
-
...(gateway ? [
|
|
69
|
+
...(gateway ? [closeHttpServerImmediately(gateway)] : []),
|
|
79
70
|
]).then(() => resolveExit(), rejectExit);
|
|
80
71
|
};
|
|
81
72
|
process.once("SIGINT", shutdown);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ResolvedModelInvocation } from "../../types.js";
|
|
2
2
|
export declare function readOptionalPositiveIntEnv(name: string): number | undefined;
|
|
3
3
|
export declare function buildOllamaOptions(params: {
|
|
4
4
|
baseOptions: Record<string, unknown>;
|
|
@@ -13,8 +13,6 @@ export declare function buildOllamaOptions(params: {
|
|
|
13
13
|
export declare function deriveOllamaNumPredict(params: {
|
|
14
14
|
payload: Readonly<Record<string, unknown>>;
|
|
15
15
|
invocation: ResolvedModelInvocation;
|
|
16
|
-
effectiveFormat?: ModelGatewayFormat;
|
|
17
|
-
useStructuredOutputCeiling: boolean;
|
|
18
16
|
outputTokenLimit?: number;
|
|
19
17
|
}): number;
|
|
20
18
|
export declare function resolveOllamaKeepAlive(invocation: ResolvedModelInvocation): string;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { estimateStrictStructuredOutputTokenCeiling } from "../../structured-output/budget.js";
|
|
2
1
|
import { estimateProviderEnvelopeInputTokens } from "../envelope-budget.js";
|
|
3
2
|
const DEFAULT_OLLAMA_KEEP_ALIVE = "3m";
|
|
4
3
|
export function readOptionalPositiveIntEnv(name) {
|
|
@@ -38,10 +37,7 @@ export function buildOllamaOptions(params) {
|
|
|
38
37
|
export function deriveOllamaNumPredict(params) {
|
|
39
38
|
const estimatedInputTokens = estimateProviderEnvelopeInputTokens(params.payload, params.invocation.profile.context.tokenEstimation);
|
|
40
39
|
const physicalRemainingTokens = Math.max(1, params.invocation.profile.contextWindowTokens - estimatedInputTokens);
|
|
41
|
-
|
|
42
|
-
? estimateStrictStructuredOutputTokenCeiling(params.effectiveFormat, params.invocation.profile.context.tokenEstimation)
|
|
43
|
-
: undefined;
|
|
44
|
-
return Math.max(1, Math.min(physicalRemainingTokens, structuredOutputCeiling ?? physicalRemainingTokens, params.outputTokenLimit ?? physicalRemainingTokens));
|
|
40
|
+
return Math.max(1, Math.min(physicalRemainingTokens, params.outputTokenLimit ?? physicalRemainingTokens));
|
|
45
41
|
}
|
|
46
42
|
export function resolveOllamaKeepAlive(invocation) {
|
|
47
43
|
const configured = invocation.profile.providerConfig?.keepAlive?.trim();
|
|
@@ -28,10 +28,6 @@ function applyGenerationOptions(params) {
|
|
|
28
28
|
derivedNumPredict: deriveOllamaNumPredict({
|
|
29
29
|
payload: params.payload,
|
|
30
30
|
invocation: params.invocation,
|
|
31
|
-
...(params.effectiveFormat
|
|
32
|
-
? { effectiveFormat: params.effectiveFormat }
|
|
33
|
-
: {}),
|
|
34
|
-
useStructuredOutputCeiling: params.useStructuredOutputCeiling,
|
|
35
31
|
...(params.outputTokenLimit !== undefined
|
|
36
32
|
? { outputTokenLimit: params.outputTokenLimit }
|
|
37
33
|
: {}),
|
|
@@ -71,8 +67,6 @@ export function buildOllamaPayload(requestBody, payloadOptions = {}) {
|
|
|
71
67
|
applyGenerationOptions({
|
|
72
68
|
payload,
|
|
73
69
|
invocation,
|
|
74
|
-
...(effectiveFormat ? { effectiveFormat } : {}),
|
|
75
|
-
useStructuredOutputCeiling: !invocation.profile.supportsThinking || invocation.think === "none",
|
|
76
70
|
...(outputTokenLimit !== undefined ? { outputTokenLimit } : {}),
|
|
77
71
|
});
|
|
78
72
|
return payload;
|
|
@@ -103,8 +97,6 @@ export function buildOllamaRawPayload(requestBody, payloadOptions = {}) {
|
|
|
103
97
|
applyGenerationOptions({
|
|
104
98
|
payload,
|
|
105
99
|
invocation,
|
|
106
|
-
...(effectiveFormat ? { effectiveFormat } : {}),
|
|
107
|
-
useStructuredOutputCeiling: false,
|
|
108
100
|
...(outputTokenLimit !== undefined ? { outputTokenLimit } : {}),
|
|
109
101
|
});
|
|
110
102
|
return payload;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ToolAvailabilityEntry } from "../plugin-contract/entrypoint.js";
|
|
2
|
+
import { type BoundedCollectionMetadata, type BoundedTextMetadata } from "./bounds.js";
|
|
3
|
+
export type ToolAvailabilityBrief = Readonly<{
|
|
4
|
+
text: string;
|
|
5
|
+
collection: BoundedCollectionMetadata;
|
|
6
|
+
output: BoundedTextMetadata;
|
|
7
|
+
}>;
|
|
8
|
+
/** Formats the existing bounded, on-demand tool brief without executing tools. */
|
|
9
|
+
export declare function buildToolAvailabilityBrief(entries: readonly ToolAvailabilityEntry[]): ToolAvailabilityBrief;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { boundCollection, boundText, } from "./bounds.js";
|
|
2
|
+
const TOOL_COUNT_MAX = 64;
|
|
3
|
+
const OUTPUT_CHARACTER_MAX = 16_000;
|
|
4
|
+
/** Formats the existing bounded, on-demand tool brief without executing tools. */
|
|
5
|
+
export function buildToolAvailabilityBrief(entries) {
|
|
6
|
+
const orderedTools = [...entries].sort(compareAvailableTools);
|
|
7
|
+
const boundedTools = boundCollection(orderedTools, {
|
|
8
|
+
maxItems: TOOL_COUNT_MAX,
|
|
9
|
+
});
|
|
10
|
+
const rawOutput = [
|
|
11
|
+
`Available tool operations: ${entries.length}`,
|
|
12
|
+
...boundedTools.items.map(formatAvailableTool),
|
|
13
|
+
...(boundedTools.metadata.truncated
|
|
14
|
+
? [
|
|
15
|
+
`[${boundedTools.metadata.omittedItems} additional tool operations omitted]`,
|
|
16
|
+
]
|
|
17
|
+
: []),
|
|
18
|
+
].join("\n");
|
|
19
|
+
const boundedOutput = boundText(rawOutput, {
|
|
20
|
+
maxChars: OUTPUT_CHARACTER_MAX,
|
|
21
|
+
marker: "\n[available tool brief truncated]",
|
|
22
|
+
});
|
|
23
|
+
return Object.freeze({
|
|
24
|
+
text: boundedOutput.text,
|
|
25
|
+
collection: boundedTools.metadata,
|
|
26
|
+
output: boundedOutput.metadata,
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
function formatAvailableTool(tool) {
|
|
30
|
+
return [
|
|
31
|
+
`- ${tool.operationId}`,
|
|
32
|
+
`(tool=${tool.toolName}; effect=${tool.effect}; groups=${tool.catalogGroups.join(",")})`,
|
|
33
|
+
tool.summary,
|
|
34
|
+
].join(" ");
|
|
35
|
+
}
|
|
36
|
+
function compareAvailableTools(left, right) {
|
|
37
|
+
const byOperation = compareAscii(left.operationId, right.operationId);
|
|
38
|
+
if (byOperation !== 0)
|
|
39
|
+
return byOperation;
|
|
40
|
+
return compareAscii(left.toolName, right.toolName);
|
|
41
|
+
}
|
|
42
|
+
function compareAscii(left, right) {
|
|
43
|
+
if (left < right)
|
|
44
|
+
return -1;
|
|
45
|
+
if (left > right)
|
|
46
|
+
return 1;
|
|
47
|
+
return 0;
|
|
48
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ToolAvailabilityEntry } from "../plugin-contract/entrypoint.js";
|
|
2
|
+
export type ToolAvailabilityOverviewLevel = "detailed" | "titles" | "groups";
|
|
3
|
+
export type ToolAvailabilityOverviewGroup = Readonly<{
|
|
4
|
+
groupId: string;
|
|
5
|
+
memberCount: number;
|
|
6
|
+
effects: readonly string[];
|
|
7
|
+
}>;
|
|
8
|
+
/** Complete informational candidates; callers own admission and context budget. */
|
|
9
|
+
export declare function buildToolAvailabilityOverview(entries: readonly ToolAvailabilityEntry[], groups: readonly ToolAvailabilityOverviewGroup[], level: ToolAvailabilityOverviewLevel): string;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/** Complete informational candidates; callers own admission and context budget. */
|
|
2
|
+
export function buildToolAvailabilityOverview(entries, groups, level) {
|
|
3
|
+
if (level === "detailed")
|
|
4
|
+
return describeAvailableTools(entries);
|
|
5
|
+
const orderedGroups = [...groups].sort((left, right) => compareAscii(left.groupId, right.groupId));
|
|
6
|
+
if (level === "titles")
|
|
7
|
+
return describeGroupTools(entries, orderedGroups);
|
|
8
|
+
return orderedGroups.map(describeGroupMetadata).join("\n");
|
|
9
|
+
}
|
|
10
|
+
function describeAvailableTools(entries) {
|
|
11
|
+
const tools = new Map();
|
|
12
|
+
for (const entry of entries) {
|
|
13
|
+
const tool = tools.get(entry.toolName) ?? {
|
|
14
|
+
operationIds: new Set(),
|
|
15
|
+
catalogGroups: new Set(),
|
|
16
|
+
};
|
|
17
|
+
tool.operationIds.add(entry.operationId);
|
|
18
|
+
for (const groupId of entry.catalogGroups)
|
|
19
|
+
tool.catalogGroups.add(groupId);
|
|
20
|
+
tools.set(entry.toolName, tool);
|
|
21
|
+
}
|
|
22
|
+
return [...tools.entries()]
|
|
23
|
+
.sort(([left], [right]) => compareAscii(left, right))
|
|
24
|
+
.map(([toolName, tool]) => `- ${formatOverviewIdentifier(toolName)} — ${sortedValues(tool.operationIds)} [${sortedValues(tool.catalogGroups)}]`)
|
|
25
|
+
.join("\n");
|
|
26
|
+
}
|
|
27
|
+
function describeGroupTools(entries, groups) {
|
|
28
|
+
return groups
|
|
29
|
+
.map((group) => {
|
|
30
|
+
const toolNames = new Set(entries
|
|
31
|
+
.filter((entry) => entry.catalogGroups.includes(group.groupId))
|
|
32
|
+
.map((entry) => entry.toolName));
|
|
33
|
+
return `- ${group.groupId}: ${sortedValues(toolNames)}`;
|
|
34
|
+
})
|
|
35
|
+
.join("\n");
|
|
36
|
+
}
|
|
37
|
+
function describeGroupMetadata(group) {
|
|
38
|
+
return `- ${group.groupId} (memberCount=${group.memberCount}; effects=${sortedValues(group.effects)})`;
|
|
39
|
+
}
|
|
40
|
+
function sortedValues(values) {
|
|
41
|
+
return [...values]
|
|
42
|
+
.sort(compareAscii)
|
|
43
|
+
.map(formatOverviewIdentifier)
|
|
44
|
+
.join(", ");
|
|
45
|
+
}
|
|
46
|
+
function formatOverviewIdentifier(value) {
|
|
47
|
+
if (isPlainOverviewIdentifier(value))
|
|
48
|
+
return value;
|
|
49
|
+
return JSON.stringify(value)
|
|
50
|
+
.replace(/\u2028/gu, "\\u2028")
|
|
51
|
+
.replace(/\u2029/gu, "\\u2029");
|
|
52
|
+
}
|
|
53
|
+
function isPlainOverviewIdentifier(value) {
|
|
54
|
+
return /^[A-Za-z0-9][A-Za-z0-9._-]*$/u.test(value);
|
|
55
|
+
}
|
|
56
|
+
function compareAscii(left, right) {
|
|
57
|
+
if (left < right)
|
|
58
|
+
return -1;
|
|
59
|
+
if (left > right)
|
|
60
|
+
return 1;
|
|
61
|
+
return 0;
|
|
62
|
+
}
|
|
@@ -175,6 +175,7 @@ class InMemorySessionStore {
|
|
|
175
175
|
taskType: options.taskType,
|
|
176
176
|
requestId: options.requestId,
|
|
177
177
|
cronJobId: options.cronJobId,
|
|
178
|
+
...(options.schedule ? { schedule: options.schedule } : {}),
|
|
178
179
|
cronTitle: options.cronTitle,
|
|
179
180
|
triggerType: options.triggerType,
|
|
180
181
|
attachments: options.attachments,
|