@abot-ai/runtime 1.0.0 → 1.1.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 +17 -3
- package/dist/scripts/add-runtime-model.js +4 -0
- package/dist/scripts/configure-long-term-memory.d.ts +6 -0
- package/dist/scripts/configure-long-term-memory.js +139 -0
- package/dist/scripts/init-runtime.js +11 -1
- package/dist/scripts/runtime-setup-files.d.ts +1 -0
- package/dist/scripts/runtime-setup-files.js +4 -0
- package/dist/src/capabilities/normal-invocation/contracts.d.ts +1 -0
- package/dist/src/capabilities/normal-invocation/validator.d.ts +5 -0
- package/dist/src/capabilities/normal-invocation/validator.js +35 -2
- package/dist/src/capabilities/tool-definition-validator/definition-fields.d.ts +7 -0
- package/dist/src/capabilities/tool-definition-validator/definition-fields.js +156 -0
- package/dist/src/capabilities/tool-definition-validator/definition-parser.d.ts +2 -0
- package/dist/src/capabilities/tool-definition-validator/definition-parser.js +76 -0
- package/dist/src/capabilities/tool-definition-validator/definition-shape.d.ts +7 -0
- package/dist/src/capabilities/tool-definition-validator/definition-shape.js +34 -0
- package/dist/src/capabilities/tool-definition-validator/event-presentation.d.ts +2 -0
- package/dist/src/capabilities/tool-definition-validator/event-presentation.js +97 -0
- package/dist/src/capabilities/tool-definition-validator/module-registry.d.ts +3 -0
- package/dist/src/capabilities/tool-definition-validator/module-registry.js +99 -0
- package/dist/src/capabilities/tool-definition-validator/payload-channel-spec.d.ts +2 -0
- package/dist/src/capabilities/tool-definition-validator/payload-channel-spec.js +190 -0
- package/dist/src/capabilities/tool-definition-validator/payload-channel-stage.d.ts +11 -0
- package/dist/src/capabilities/tool-definition-validator/payload-channel-stage.js +155 -0
- package/dist/src/capabilities/tool-definition-validator/payload-stage-conditions.d.ts +24 -0
- package/dist/src/capabilities/tool-definition-validator/payload-stage-conditions.js +193 -0
- package/dist/src/capabilities/tool-definition-validator.d.ts +2 -4
- package/dist/src/capabilities/tool-definition-validator.js +2 -776
- package/dist/src/cli/abot.js +11 -2
- package/dist/src/model-gateway/client/embeddings.d.ts +3 -0
- package/dist/src/model-gateway/client/embeddings.js +48 -0
- package/dist/src/model-gateway/client.d.ts +3 -1
- package/dist/src/model-gateway/client.js +5 -0
- package/dist/src/model-gateway/embeddings/constants.d.ts +1 -0
- package/dist/src/model-gateway/embeddings/constants.js +1 -0
- package/dist/src/model-gateway/embeddings/discovery.d.ts +10 -0
- package/dist/src/model-gateway/embeddings/discovery.js +39 -0
- package/dist/src/model-gateway/embeddings/execution.d.ts +16 -0
- package/dist/src/model-gateway/embeddings/execution.js +64 -0
- package/dist/src/model-gateway/embeddings/fingerprint.d.ts +3 -0
- package/dist/src/model-gateway/embeddings/fingerprint.js +36 -0
- package/dist/src/model-gateway/embeddings/profile.d.ts +11 -0
- package/dist/src/model-gateway/embeddings/profile.js +37 -0
- package/dist/src/model-gateway/embeddings/server-handler.d.ts +3 -0
- package/dist/src/model-gateway/embeddings/server-handler.js +89 -0
- package/dist/src/model-gateway/embeddings/validation.d.ts +7 -0
- package/dist/src/model-gateway/embeddings/validation.js +69 -0
- package/dist/src/model-gateway/index.d.ts +5 -3
- package/dist/src/model-gateway/index.js +3 -1
- package/dist/src/model-gateway/providers/contracts.d.ts +27 -1
- package/dist/src/model-gateway/providers/ollama/adapter.js +4 -0
- package/dist/src/model-gateway/providers/ollama/base-url.d.ts +1 -0
- package/dist/src/model-gateway/providers/ollama/base-url.js +4 -0
- package/dist/src/model-gateway/providers/ollama/embedding-models.d.ts +2 -0
- package/dist/src/model-gateway/providers/ollama/embedding-models.js +31 -0
- package/dist/src/model-gateway/providers/ollama/embeddings.d.ts +2 -0
- package/dist/src/model-gateway/providers/ollama/embeddings.js +43 -0
- package/dist/src/model-gateway/providers/ollama/request-diagnostics.js +2 -1
- package/dist/src/model-gateway/providers/openai/adapter.js +2 -0
- package/dist/src/model-gateway/providers/openai/embeddings.d.ts +2 -0
- package/dist/src/model-gateway/providers/openai/embeddings.js +87 -0
- package/dist/src/model-gateway/providers/openai/payload.js +5 -8
- package/dist/src/model-gateway/server/contracts.d.ts +5 -3
- package/dist/src/model-gateway/server/create-server.js +9 -0
- package/dist/src/model-gateway/server/errors.js +34 -0
- package/dist/src/model-gateway/server/index.d.ts +2 -0
- package/dist/src/model-gateway/server/index.js +2 -0
- package/dist/src/model-gateway/server/provider-fetch.d.ts +5 -3
- package/dist/src/model-gateway/server/provider-fetch.js +3 -1
- package/dist/src/model-gateway/server/request-body.d.ts +1 -1
- package/dist/src/model-gateway/types.d.ts +39 -0
- package/dist/src/plugin-contract/manifest.d.ts +1 -0
- package/dist/src/runtime/adapters/index.d.ts +4 -0
- package/dist/src/runtime/adapters/index.js +4 -0
- package/dist/src/runtime/adapters/long-term-memory/file-lock/acquisition.d.ts +2 -0
- package/dist/src/runtime/adapters/long-term-memory/file-lock/acquisition.js +77 -0
- package/dist/src/runtime/adapters/long-term-memory/file-lock/cleanup.d.ts +4 -0
- package/dist/src/runtime/adapters/long-term-memory/file-lock/cleanup.js +52 -0
- package/dist/src/runtime/adapters/long-term-memory/file-lock/contracts.d.ts +31 -0
- package/dist/src/runtime/adapters/long-term-memory/file-lock/contracts.js +17 -0
- package/dist/src/runtime/adapters/long-term-memory/file-lock/install.d.ts +1 -0
- package/dist/src/runtime/adapters/long-term-memory/file-lock/install.js +36 -0
- package/dist/src/runtime/adapters/long-term-memory/file-lock/owner-record.d.ts +2 -0
- package/dist/src/runtime/adapters/long-term-memory/file-lock/owner-record.js +114 -0
- package/dist/src/runtime/adapters/long-term-memory/file-lock/snapshot.d.ts +2 -0
- package/dist/src/runtime/adapters/long-term-memory/file-lock/snapshot.js +103 -0
- package/dist/src/runtime/adapters/long-term-memory/file-lock.d.ts +2 -0
- package/dist/src/runtime/adapters/long-term-memory/file-lock.js +10 -0
- package/dist/src/runtime/adapters/long-term-memory/file-repository.d.ts +2 -0
- package/dist/src/runtime/adapters/long-term-memory/file-repository.js +57 -0
- package/dist/src/runtime/adapters/long-term-memory/in-memory-repository.d.ts +2 -0
- package/dist/src/runtime/adapters/long-term-memory/in-memory-repository.js +21 -0
- package/dist/src/runtime/adapters/long-term-memory/onboarding-config-repository.d.ts +5 -0
- package/dist/src/runtime/adapters/long-term-memory/onboarding-config-repository.js +60 -0
- package/dist/src/runtime/adapters/long-term-memory/onboarding-service.d.ts +8 -0
- package/dist/src/runtime/adapters/long-term-memory/onboarding-service.js +34 -0
- package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/run.d.ts +7 -1
- package/dist/src/runtime/adapters/registered-tool-normal-invocations/execution/run.js +54 -25
- package/dist/src/runtime/adapters/registered-tool-normal-invocations/executor.js +18 -4
- package/dist/src/runtime/adapters/registered-tool-normal-invocations/payload/lifecycle.d.ts +6 -1
- package/dist/src/runtime/adapters/registered-tool-normal-invocations/payload/lifecycle.js +25 -12
- package/dist/src/runtime/adapters/registered-tool-normal-invocations/shared/action-fingerprint.d.ts +22 -0
- package/dist/src/runtime/adapters/registered-tool-normal-invocations/shared/action-fingerprint.js +65 -0
- package/dist/src/runtime/adapters/registered-tool-normal-invocations/shared/contracts.d.ts +44 -0
- package/dist/src/runtime/adapters/registered-tool-normal-invocations.d.ts +1 -1
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/catalog.js +14 -4
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/execution.js +218 -87
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/failure-outcome-fingerprint.d.ts +7 -0
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/failure-outcome-fingerprint.js +84 -0
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-lifecycle.d.ts +5 -4
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-lifecycle.js +7 -1
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-observability.d.ts +35 -0
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-observability.js +32 -0
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-rejection.d.ts +3 -3
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-rejection.js +13 -8
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-stages.d.ts +5 -4
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/payload-stages.js +4 -2
- package/dist/src/runtime/adapters/registered-tool-worker-capabilities/result-observer.js +12 -4
- package/dist/src/runtime/composition.d.ts +3 -0
- package/dist/src/runtime/composition.js +5 -2
- package/dist/src/runtime/config/builders.js +34 -1
- package/dist/src/runtime/config/effective-model-config-validation.js +9 -0
- package/dist/src/runtime/config/embedding-profiles.d.ts +5 -0
- package/dist/src/runtime/config/embedding-profiles.js +66 -0
- package/dist/src/runtime/config/fields.js +22 -0
- package/dist/src/runtime/config/long-term-memory.d.ts +9 -0
- package/dist/src/runtime/config/long-term-memory.js +71 -0
- package/dist/src/runtime/config/runner/config-normalization.d.ts +16 -0
- package/dist/src/runtime/config/runner/config-normalization.js +109 -0
- package/dist/src/runtime/config/runner/loader.d.ts +1 -1
- package/dist/src/runtime/config/runner/loader.js +2 -69
- package/dist/src/runtime/config/runner/model-policy.js +3 -0
- package/dist/src/runtime/config/runner/schema-version.d.ts +14 -0
- package/dist/src/runtime/config/runner/schema-version.js +35 -0
- package/dist/src/runtime/config/runner/versioned-config.d.ts +2 -0
- package/dist/src/runtime/config/runner/versioned-config.js +51 -0
- package/dist/src/runtime/config/schema.js +36 -0
- package/dist/src/runtime/config/types.d.ts +1 -0
- package/dist/src/runtime/config/validation/environment-config-validation.d.ts +1 -0
- package/dist/src/runtime/config/validation/environment-config-validation.js +41 -0
- package/dist/src/runtime/config/validation/model-invocation-config-validation.d.ts +2 -0
- package/dist/src/runtime/config/validation/model-invocation-config-validation.js +64 -0
- package/dist/src/runtime/config/validation/model-invocation-override-validation.d.ts +2 -0
- package/dist/src/runtime/config/validation/model-invocation-override-validation.js +72 -0
- package/dist/src/runtime/config/validation/model-profile-validation.d.ts +4 -0
- package/dist/src/runtime/config/validation/model-profile-validation.js +87 -0
- package/dist/src/runtime/config/validation/model-registry-validation.d.ts +2 -0
- package/dist/src/runtime/config/validation/model-registry-validation.js +118 -0
- package/dist/src/runtime/config/validation/path-config-validation.d.ts +1 -0
- package/dist/src/runtime/config/validation/path-config-validation.js +7 -0
- package/dist/src/runtime/config/validation/runtime-config-field-validation.d.ts +12 -0
- package/dist/src/runtime/config/validation/runtime-config-field-validation.js +158 -0
- package/dist/src/runtime/config/validation/runtime-config-validation-contract.d.ts +9 -0
- package/dist/src/runtime/config/validation/runtime-config-validation-contract.js +13 -0
- package/dist/src/runtime/config/validation/runtime-root-section-validation.d.ts +6 -0
- package/dist/src/runtime/config/validation/runtime-root-section-validation.js +82 -0
- package/dist/src/runtime/config/validation/web-ui-config-validation.d.ts +3 -0
- package/dist/src/runtime/config/validation/web-ui-config-validation.js +26 -0
- package/dist/src/runtime/config/validation.d.ts +4 -15
- package/dist/src/runtime/config/validation.js +27 -499
- package/dist/src/runtime/config.js +3 -0
- package/dist/src/runtime/context/accepted-capability-action.d.ts +11 -0
- package/dist/src/runtime/context/accepted-capability-action.js +29 -0
- package/dist/src/runtime/context/model-step-compaction.js +6 -0
- package/dist/src/runtime/context/operation-supervision-evidence.d.ts +37 -0
- package/dist/src/runtime/context/operation-supervision-evidence.js +90 -0
- package/dist/src/runtime/context/request-tool-results.d.ts +3 -0
- package/dist/src/runtime/context/request-tool-results.js +11 -2
- package/dist/src/runtime/default-adapters.d.ts +3 -0
- package/dist/src/runtime/default-adapters.js +64 -3
- package/dist/src/runtime/index.d.ts +1 -0
- package/dist/src/runtime/index.js +1 -0
- package/dist/src/runtime/lifecycle/request-finalizer.d.ts +3 -0
- package/dist/src/runtime/lifecycle/request-finalizer.js +8 -0
- package/dist/src/runtime/long-term-memory/background-save-queue.d.ts +17 -0
- package/dist/src/runtime/long-term-memory/background-save-queue.js +66 -0
- package/dist/src/runtime/long-term-memory/candidate-persistence.d.ts +16 -0
- package/dist/src/runtime/long-term-memory/candidate-persistence.js +109 -0
- package/dist/src/runtime/long-term-memory/candidate-preparation.d.ts +8 -0
- package/dist/src/runtime/long-term-memory/candidate-preparation.js +36 -0
- package/dist/src/runtime/long-term-memory/candidate-processing.d.ts +9 -0
- package/dist/src/runtime/long-term-memory/candidate-processing.js +79 -0
- package/dist/src/runtime/long-term-memory/contracts.d.ts +108 -0
- package/dist/src/runtime/long-term-memory/contracts.js +1 -0
- package/dist/src/runtime/long-term-memory/diagnostics.d.ts +9 -0
- package/dist/src/runtime/long-term-memory/diagnostics.js +42 -0
- package/dist/src/runtime/long-term-memory/embedding-batches.d.ts +13 -0
- package/dist/src/runtime/long-term-memory/embedding-batches.js +87 -0
- package/dist/src/runtime/long-term-memory/events.d.ts +13 -0
- package/dist/src/runtime/long-term-memory/events.js +15 -0
- package/dist/src/runtime/long-term-memory/finalization.d.ts +8 -0
- package/dist/src/runtime/long-term-memory/finalization.js +24 -0
- package/dist/src/runtime/long-term-memory/index.d.ts +6 -0
- package/dist/src/runtime/long-term-memory/index.js +6 -0
- package/dist/src/runtime/long-term-memory/management/contracts.d.ts +54 -0
- package/dist/src/runtime/long-term-memory/management/contracts.js +1 -0
- package/dist/src/runtime/long-term-memory/management/errors.d.ts +10 -0
- package/dist/src/runtime/long-term-memory/management/errors.js +13 -0
- package/dist/src/runtime/long-term-memory/management/mutations.d.ts +17 -0
- package/dist/src/runtime/long-term-memory/management/mutations.js +178 -0
- package/dist/src/runtime/long-term-memory/management/queries.d.ts +8 -0
- package/dist/src/runtime/long-term-memory/management/queries.js +46 -0
- package/dist/src/runtime/long-term-memory/management/search.d.ts +7 -0
- package/dist/src/runtime/long-term-memory/management/search.js +18 -0
- package/dist/src/runtime/long-term-memory/management/service.d.ts +13 -0
- package/dist/src/runtime/long-term-memory/management/service.js +61 -0
- package/dist/src/runtime/long-term-memory/management/validation.d.ts +24 -0
- package/dist/src/runtime/long-term-memory/management/validation.js +77 -0
- package/dist/src/runtime/long-term-memory/onboarding/configuration.d.ts +14 -0
- package/dist/src/runtime/long-term-memory/onboarding/configuration.js +92 -0
- package/dist/src/runtime/long-term-memory/onboarding/contracts.d.ts +52 -0
- package/dist/src/runtime/long-term-memory/onboarding/contracts.js +1 -0
- package/dist/src/runtime/long-term-memory/onboarding/service.d.ts +21 -0
- package/dist/src/runtime/long-term-memory/onboarding/service.js +88 -0
- package/dist/src/runtime/long-term-memory/policies/normalization.d.ts +10 -0
- package/dist/src/runtime/long-term-memory/policies/normalization.js +45 -0
- package/dist/src/runtime/long-term-memory/policies/reconciliation.d.ts +20 -0
- package/dist/src/runtime/long-term-memory/policies/reconciliation.js +21 -0
- package/dist/src/runtime/long-term-memory/policies/scoring.d.ts +13 -0
- package/dist/src/runtime/long-term-memory/policies/scoring.js +55 -0
- package/dist/src/runtime/long-term-memory/policies/sensitive-data.d.ts +5 -0
- package/dist/src/runtime/long-term-memory/policies/sensitive-data.js +12 -0
- package/dist/src/runtime/long-term-memory/projection.d.ts +4 -0
- package/dist/src/runtime/long-term-memory/projection.js +39 -0
- package/dist/src/runtime/long-term-memory/ranked-search.d.ts +11 -0
- package/dist/src/runtime/long-term-memory/ranked-search.js +111 -0
- package/dist/src/runtime/long-term-memory/repository-state.d.ts +4 -0
- package/dist/src/runtime/long-term-memory/repository-state.js +131 -0
- package/dist/src/runtime/long-term-memory/response-context.d.ts +5 -0
- package/dist/src/runtime/long-term-memory/response-context.js +21 -0
- package/dist/src/runtime/long-term-memory/retrieval.d.ts +8 -0
- package/dist/src/runtime/long-term-memory/retrieval.js +73 -0
- package/dist/src/runtime/long-term-memory/service.d.ts +10 -0
- package/dist/src/runtime/long-term-memory/service.js +83 -0
- package/dist/src/runtime/orchestration/capability-adapters/index.d.ts +2 -0
- package/dist/src/runtime/orchestration/capability-adapters/index.js +2 -0
- package/dist/src/runtime/orchestration/final-response/authoring-contract.d.ts +10 -0
- package/dist/src/runtime/orchestration/final-response/authoring-contract.js +94 -0
- package/dist/src/runtime/orchestration/final-response/finalization.d.ts +1 -0
- package/dist/src/runtime/orchestration/final-response/finalization.js +1 -0
- package/dist/src/runtime/orchestration/final-response/format.d.ts +2 -0
- package/dist/src/runtime/orchestration/final-response/format.js +49 -0
- package/dist/src/runtime/orchestration/final-response/invoke.d.ts +16 -0
- package/dist/src/runtime/orchestration/final-response/invoke.js +24 -0
- package/dist/src/runtime/orchestration/role-calls/activation-budget.d.ts +14 -0
- package/dist/src/runtime/orchestration/role-calls/activation-budget.js +52 -0
- package/dist/src/runtime/orchestration/role-calls/candidate-validation.js +154 -0
- package/dist/src/runtime/orchestration/role-calls/capability-selection-reconsideration.js +1 -8
- package/dist/src/runtime/orchestration/role-calls/capability-selection-supervision-issuance.d.ts +17 -0
- package/dist/src/runtime/orchestration/role-calls/capability-selection-supervision-issuance.js +155 -0
- package/dist/src/runtime/orchestration/role-calls/capability-selection-supervision.d.ts +78 -0
- package/dist/src/runtime/orchestration/role-calls/capability-selection-supervision.js +339 -0
- package/dist/src/runtime/orchestration/role-calls/command-decoder.js +35 -10
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/active-capability-caller.d.ts +6 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/active-capability-caller.js +15 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/call-frame-state.d.ts +3 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/call-frame-state.js +6 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/call-scope-transitions.d.ts +3 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/call-scope-transitions.js +86 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/capability-batch-transitions.d.ts +3 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/capability-batch-transitions.js +172 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/capability-execution-state.d.ts +9 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/capability-execution-state.js +28 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/capability-execution-transitions.d.ts +3 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/capability-execution-transitions.js +117 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/capability-invocation.d.ts +4 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/capability-invocation.js +16 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/capability-selection-transition.d.ts +2 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/capability-selection-transition.js +114 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/capability-settlement.d.ts +6 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/capability-settlement.js +54 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/child-transitions.d.ts +3 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/child-transitions.js +206 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/operation-supervision-intervention.d.ts +13 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/operation-supervision-intervention.js +25 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/root-transitions.d.ts +3 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch/root-transitions.js +70 -0
- package/dist/src/runtime/orchestration/role-calls/command-dispatch.d.ts +1 -1
- package/dist/src/runtime/orchestration/role-calls/command-dispatch.js +6 -580
- package/dist/src/runtime/orchestration/role-calls/contracts.d.ts +45 -5
- package/dist/src/runtime/orchestration/role-calls/contracts.js +2 -2
- package/dist/src/runtime/orchestration/role-calls/diagnostics.d.ts +4 -0
- package/dist/src/runtime/orchestration/role-calls/diagnostics.js +152 -1
- package/dist/src/runtime/orchestration/role-calls/index.d.ts +6 -0
- package/dist/src/runtime/orchestration/role-calls/index.js +6 -0
- package/dist/src/runtime/orchestration/role-calls/ledger.js +131 -7
- package/dist/src/runtime/orchestration/role-calls/operation-supervision-issuance.d.ts +11 -0
- package/dist/src/runtime/orchestration/role-calls/operation-supervision-issuance.js +66 -0
- package/dist/src/runtime/orchestration/role-calls/operation-supervision-projection.d.ts +16 -0
- package/dist/src/runtime/orchestration/role-calls/operation-supervision-projection.js +52 -0
- package/dist/src/runtime/orchestration/role-calls/operation-supervision-state-validation.d.ts +3 -0
- package/dist/src/runtime/orchestration/role-calls/operation-supervision-state-validation.js +151 -0
- package/dist/src/runtime/orchestration/role-calls/operation-supervision.d.ts +112 -0
- package/dist/src/runtime/orchestration/role-calls/operation-supervision.js +197 -0
- package/dist/src/runtime/orchestration/role-calls/reconsideration-cause.d.ts +26 -0
- package/dist/src/runtime/orchestration/role-calls/reconsideration-cause.js +127 -0
- package/dist/src/runtime/orchestration/role-calls/reducer-primitives.d.ts +1 -2
- package/dist/src/runtime/orchestration/role-calls/reducer-primitives.js +2 -12
- package/dist/src/runtime/orchestration/role-calls/reducer.js +19 -2
- package/dist/src/runtime/orchestration/role-calls/transactions.js +62 -5
- package/dist/src/runtime/orchestration/role-executors/activation/capability-continuation.d.ts +15 -0
- package/dist/src/runtime/orchestration/role-executors/activation/capability-continuation.js +73 -0
- package/dist/src/runtime/orchestration/role-executors/activation/loop.d.ts +0 -1
- package/dist/src/runtime/orchestration/role-executors/activation/loop.js +16 -54
- package/dist/src/runtime/orchestration/role-executors/activation/result-normalization.js +14 -0
- package/dist/src/runtime/orchestration/role-executors/activation/state-validation.d.ts +13 -1
- package/dist/src/runtime/orchestration/role-executors/activation/state-validation.js +137 -1
- package/dist/src/runtime/orchestration/role-executors/contracts.d.ts +7 -3
- package/dist/src/runtime/orchestration/role-executors/diagnostics.d.ts +2 -0
- package/dist/src/runtime/orchestration/role-executors/diagnostics.js +1 -6
- package/dist/src/runtime/orchestration/worker-capabilities/batch-selection.d.ts +10 -0
- package/dist/src/runtime/orchestration/worker-capabilities/batch-selection.js +8 -0
- package/dist/src/runtime/orchestration/worker-capabilities/binding/adapter-catalog.d.ts +14 -0
- package/dist/src/runtime/orchestration/worker-capabilities/binding/adapter-catalog.js +76 -0
- package/dist/src/runtime/orchestration/worker-capabilities/binding/adapter-normalization.d.ts +10 -0
- package/dist/src/runtime/orchestration/worker-capabilities/binding/adapter-normalization.js +160 -0
- package/dist/src/runtime/orchestration/worker-capabilities/binding/binding-rejection.d.ts +2 -0
- package/dist/src/runtime/orchestration/worker-capabilities/binding/binding-rejection.js +8 -0
- package/dist/src/runtime/orchestration/worker-capabilities/binding/bound-capability-session.d.ts +24 -0
- package/dist/src/runtime/orchestration/worker-capabilities/binding/bound-capability-session.js +100 -0
- package/dist/src/runtime/orchestration/worker-capabilities/binding/call-authority.d.ts +29 -0
- package/dist/src/runtime/orchestration/worker-capabilities/binding/call-authority.js +193 -0
- package/dist/src/runtime/orchestration/worker-capabilities/binding/create-binding.d.ts +11 -0
- package/dist/src/runtime/orchestration/worker-capabilities/binding/create-binding.js +109 -0
- package/dist/src/runtime/orchestration/worker-capabilities/binding/dependency-results.d.ts +2 -0
- package/dist/src/runtime/orchestration/worker-capabilities/binding/dependency-results.js +34 -0
- package/dist/src/runtime/orchestration/worker-capabilities/binding/invocation-preparation.d.ts +21 -0
- package/dist/src/runtime/orchestration/worker-capabilities/binding/invocation-preparation.js +167 -0
- package/dist/src/runtime/orchestration/worker-capabilities/binding.d.ts +1 -13
- package/dist/src/runtime/orchestration/worker-capabilities/binding.js +1 -625
- package/dist/src/runtime/orchestration/worker-capabilities/contracts.d.ts +57 -14
- package/dist/src/runtime/orchestration/worker-capabilities/contracts.js +3 -1
- package/dist/src/runtime/orchestration/worker-capabilities/controls.d.ts +7 -0
- package/dist/src/runtime/orchestration/worker-capabilities/controls.js +50 -0
- package/dist/src/runtime/orchestration/worker-capabilities/error-fingerprint.d.ts +5 -0
- package/dist/src/runtime/orchestration/worker-capabilities/error-fingerprint.js +119 -0
- package/dist/src/runtime/orchestration/worker-capabilities/errors.d.ts +6 -0
- package/dist/src/runtime/orchestration/worker-capabilities/errors.js +11 -0
- package/dist/src/runtime/orchestration/worker-capabilities/execution/adapter-exact-result.d.ts +7 -0
- package/dist/src/runtime/orchestration/worker-capabilities/execution/adapter-exact-result.js +35 -0
- package/dist/src/runtime/orchestration/worker-capabilities/execution/adapter-execution.d.ts +9 -0
- package/dist/src/runtime/orchestration/worker-capabilities/execution/adapter-execution.js +28 -0
- package/dist/src/runtime/orchestration/worker-capabilities/execution/adapter-result-normalization.d.ts +18 -0
- package/dist/src/runtime/orchestration/worker-capabilities/execution/adapter-result-normalization.js +197 -0
- package/dist/src/runtime/orchestration/worker-capabilities/execution/adapter-result-references.d.ts +2 -0
- package/dist/src/runtime/orchestration/worker-capabilities/execution/adapter-result-references.js +44 -0
- package/dist/src/runtime/orchestration/worker-capabilities/execution/context-projection.d.ts +12 -0
- package/dist/src/runtime/orchestration/worker-capabilities/execution/context-projection.js +51 -0
- package/dist/src/runtime/orchestration/worker-capabilities/execution/invocation-preparation.d.ts +25 -0
- package/dist/src/runtime/orchestration/worker-capabilities/execution/invocation-preparation.js +111 -0
- package/dist/src/runtime/orchestration/worker-capabilities/execution/ledger-transaction.d.ts +20 -0
- package/dist/src/runtime/orchestration/worker-capabilities/execution/ledger-transaction.js +142 -0
- package/dist/src/runtime/orchestration/worker-capabilities/execution.d.ts +10 -14
- package/dist/src/runtime/orchestration/worker-capabilities/execution.js +84 -357
- package/dist/src/runtime/orchestration/worker-capabilities/index.d.ts +3 -0
- package/dist/src/runtime/orchestration/worker-capabilities/index.js +3 -0
- package/dist/src/runtime/orchestration/worker-capabilities/outcome-fingerprint.d.ts +8 -0
- package/dist/src/runtime/orchestration/worker-capabilities/outcome-fingerprint.js +21 -0
- package/dist/src/runtime/orchestration/worker-capabilities/payload-author.js +31 -9
- package/dist/src/runtime/orchestration/worker-capabilities/payload-contracts.d.ts +15 -6
- package/dist/src/runtime/orchestration/worker-capabilities/payload-contracts.js +2 -0
- package/dist/src/runtime/orchestration/worker-capabilities/payload-instructions.js +4 -4
- package/dist/src/runtime/orchestration/worker-capabilities/preparation-fingerprint.d.ts +23 -0
- package/dist/src/runtime/orchestration/worker-capabilities/preparation-fingerprint.js +109 -0
- package/dist/src/runtime/plugins/manifest-projection.js +3 -0
- package/dist/src/runtime/plugins/manifest-validator.js +20 -0
- package/dist/src/runtime/ports.d.ts +10 -1
- package/dist/src/runtime/request/contracts.d.ts +7 -0
- package/dist/src/runtime/request/dependencies.d.ts +1 -0
- package/dist/src/runtime/request/dependencies.js +10 -1
- package/dist/src/runtime/request/execution-agent-root-execution.js +5 -4
- package/dist/src/runtime/request/execution-facets.d.ts +2 -1
- package/dist/src/runtime/request/execution-facets.js +6 -0
- package/dist/src/runtime/request/execution-scope-surfaces.js +6 -0
- package/dist/src/runtime/request/execution-scope.d.ts +3 -2
- package/dist/src/runtime/request/handler.js +4 -1
- package/dist/src/runtime/request/result.d.ts +2 -0
- package/dist/src/runtime/request/root-contract.d.ts +4 -2
- package/dist/src/runtime/request/root-execution-kernel.js +100 -31
- package/dist/src/runtime/request/supervisor-root-execution.js +4 -2
- package/dist/src/runtime/request/worker-capability-payload-prompts.js +1 -1
- package/dist/src/runtime/steps/execution-agent/capability-invocation-contract.d.ts +24 -0
- package/dist/src/runtime/steps/execution-agent/capability-invocation-contract.js +52 -0
- package/dist/src/runtime/steps/execution-agent/contracts.d.ts +5 -2
- package/dist/src/runtime/steps/execution-agent/format.js +19 -6
- package/dist/src/runtime/steps/execution-agent/input.js +8 -12
- package/dist/src/runtime/steps/execution-agent/parser.js +25 -19
- package/dist/src/runtime/steps/execution-agent/prompt.js +3 -2
- package/dist/src/runtime/steps/execution-agent/reconsideration-context.d.ts +3 -0
- package/dist/src/runtime/steps/execution-agent/reconsideration-context.js +76 -0
- package/dist/src/runtime/steps/execution-agent/refinement-prompt.js +4 -4
- package/dist/src/runtime/steps/execution-agent/refinement-reconsideration.d.ts +3 -0
- package/dist/src/runtime/steps/execution-agent/refinement-reconsideration.js +25 -0
- package/dist/src/runtime/steps/execution-agent/refinement.d.ts +4 -7
- package/dist/src/runtime/steps/execution-agent/refinement.js +24 -35
- package/dist/src/runtime/steps/execution-agent/response-input.d.ts +2 -0
- package/dist/src/runtime/steps/execution-agent/response-input.js +22 -6
- package/dist/src/runtime/steps/execution-agent/response-prompt.d.ts +1 -1
- package/dist/src/runtime/steps/execution-agent/response-prompt.js +8 -3
- package/dist/src/runtime/steps/execution-agent/response-run.d.ts +6 -0
- package/dist/src/runtime/steps/execution-agent/response-run.js +40 -10
- package/dist/src/runtime/steps/execution-agent/run.js +6 -6
- package/dist/src/runtime/steps/execution-agent/state-context.d.ts +4 -1
- package/dist/src/runtime/steps/execution-agent/state-context.js +40 -23
- package/dist/src/runtime/steps/supervisor-response/index.d.ts +1 -1
- package/dist/src/runtime/steps/supervisor-response/index.js +1 -1
- package/dist/src/runtime/steps/supervisor-response/input.d.ts +13 -5
- package/dist/src/runtime/steps/supervisor-response/input.js +27 -8
- package/dist/src/runtime/steps/supervisor-response/memory-authoring.d.ts +10 -0
- package/dist/src/runtime/steps/supervisor-response/memory-authoring.js +125 -0
- package/dist/src/runtime/steps/supervisor-response/prompt.d.ts +4 -0
- package/dist/src/runtime/steps/supervisor-response/prompt.js +19 -0
- package/dist/src/runtime/steps/supervisor-response/run.d.ts +8 -0
- package/dist/src/runtime/steps/supervisor-response/run.js +46 -17
- package/dist/src/runtime/steps/worker-decision/contracts.d.ts +8 -1
- package/dist/src/runtime/steps/worker-decision/contracts.js +3 -0
- package/dist/src/runtime/steps/worker-decision/format.d.ts +4 -0
- package/dist/src/runtime/steps/worker-decision/format.js +97 -22
- package/dist/src/runtime/steps/worker-decision/input/action-policy.d.ts +9 -0
- package/dist/src/runtime/steps/worker-decision/input/action-policy.js +15 -0
- package/dist/src/runtime/steps/worker-decision/input/canonical-state.d.ts +2 -2
- package/dist/src/runtime/steps/worker-decision/input/canonical-state.js +19 -7
- package/dist/src/runtime/steps/worker-decision/input/capability-selection.js +44 -3
- package/dist/src/runtime/steps/worker-decision/input/contract.d.ts +1 -0
- package/dist/src/runtime/steps/worker-decision/input/contract.js +12 -6
- package/dist/src/runtime/steps/worker-decision/input/diagnostic-projection.js +14 -5
- package/dist/src/runtime/steps/worker-decision/input/prompt-context.js +9 -6
- package/dist/src/runtime/steps/worker-decision/input/reference-context.js +21 -3
- package/dist/src/runtime/steps/worker-decision/input/session.js +2 -1
- package/dist/src/runtime/steps/worker-decision/input/types.d.ts +6 -1
- package/dist/src/runtime/steps/worker-decision/input.d.ts +2 -2
- package/dist/src/runtime/steps/worker-decision/input.js +1 -2
- package/dist/src/runtime/steps/worker-decision/parser/accepted-decision.d.ts +3 -0
- package/dist/src/runtime/steps/worker-decision/parser/accepted-decision.js +70 -0
- package/dist/src/runtime/steps/worker-decision/parser/action-validation.d.ts +4 -0
- package/dist/src/runtime/steps/worker-decision/parser/action-validation.js +55 -0
- package/dist/src/runtime/steps/worker-decision/parser/capability-batch-validation.d.ts +3 -0
- package/dist/src/runtime/steps/worker-decision/parser/capability-batch-validation.js +135 -0
- package/dist/src/runtime/steps/worker-decision/parser/capability-controls-validation.d.ts +6 -0
- package/dist/src/runtime/steps/worker-decision/parser/capability-controls-validation.js +132 -0
- package/dist/src/runtime/steps/worker-decision/parser/capability-invocation-validation.d.ts +4 -0
- package/dist/src/runtime/steps/worker-decision/parser/capability-invocation-validation.js +104 -0
- package/dist/src/runtime/steps/worker-decision/parser/decision-shape-validation.d.ts +4 -0
- package/dist/src/runtime/steps/worker-decision/parser/decision-shape-validation.js +28 -0
- package/dist/src/runtime/steps/worker-decision/parser/pending-capability-selection-validation.d.ts +4 -0
- package/dist/src/runtime/steps/worker-decision/parser/pending-capability-selection-validation.js +105 -0
- package/dist/src/runtime/steps/worker-decision/parser/validation-contract.d.ts +50 -0
- package/dist/src/runtime/steps/worker-decision/parser/validation-contract.js +19 -0
- package/dist/src/runtime/steps/worker-decision/parser.d.ts +5 -1
- package/dist/src/runtime/steps/worker-decision/parser.js +32 -426
- package/dist/src/runtime/steps/worker-decision/prompt.d.ts +3 -0
- package/dist/src/runtime/steps/worker-decision/prompt.js +57 -20
- package/dist/src/runtime/steps/worker-decision/result-author.js +11 -1
- package/dist/src/runtime/steps/worker-decision/run.js +97 -19
- package/dist/src/runtime/validation/strict-record.d.ts +2 -0
- package/dist/src/runtime/validation/strict-record.js +12 -0
- package/dist/src/shared/model-step-registry-data.json +9 -0
- package/dist/src/shared/model-step-registry.d.ts +9 -0
- package/dist/src/shared/model-step-registry.generated.d.ts +9 -0
- package/dist/src/shared/model-step-registry.generated.js +9 -0
- package/dist/src/web-ui/app/ARCHITECTURE.md +1 -1
- package/dist/src/web-ui/app/app.js +56 -11
- package/dist/src/web-ui/app/components/config-workspace/config-model.js +320 -0
- package/dist/src/web-ui/app/components/config-workspace/dashboard-rendering.js +155 -0
- package/dist/src/web-ui/app/components/config-workspace/field-rendering.js +278 -0
- package/dist/src/web-ui/app/components/config-workspace/model-rendering.js +251 -0
- package/dist/src/web-ui/app/components/config-workspace/step-rendering.js +145 -0
- package/dist/src/web-ui/app/components/config-workspace/workspace-events.js +271 -0
- package/dist/src/web-ui/app/components/config-workspace/workspace-mutations.js +195 -0
- package/dist/src/web-ui/app/components/config-workspace/workspace-persistence.js +247 -0
- package/dist/src/web-ui/app/components/config-workspace/workspace-view.js +299 -0
- package/dist/src/web-ui/app/components/config-workspace.js +179 -866
- package/dist/src/web-ui/app/components/conversation-activity.d.ts +7 -1
- package/dist/src/web-ui/app/components/long-term-memory/icons.js +16 -0
- package/dist/src/web-ui/app/components/long-term-memory/manager.js +192 -0
- package/dist/src/web-ui/app/components/long-term-memory/record-editor.d.ts +9 -0
- package/dist/src/web-ui/app/components/long-term-memory/record-editor.js +62 -0
- package/dist/src/web-ui/app/components/long-term-memory/record-list.d.ts +5 -0
- package/dist/src/web-ui/app/components/long-term-memory/record-list.js +97 -0
- package/dist/src/web-ui/app/components/long-term-memory/view-model.d.ts +29 -0
- package/dist/src/web-ui/app/components/long-term-memory/view-model.js +69 -0
- package/dist/src/web-ui/app/components/long-term-memory-setup.js +334 -0
- package/dist/src/web-ui/app/components/runtime-setup-guide.d.ts +39 -0
- package/dist/src/web-ui/app/components/tool-approval-card.d.ts +18 -0
- package/dist/src/web-ui/app/components/workspace-shell.js +48 -7
- package/dist/src/web-ui/app/controllers/app-event-bindings.js +43 -6
- package/dist/src/web-ui/app/controllers/composer-attachments-controller.d.ts +92 -0
- package/dist/src/web-ui/app/controllers/composer-queue-controller.d.ts +109 -0
- package/dist/src/web-ui/app/controllers/composer-submit-controller.d.ts +77 -0
- package/dist/src/web-ui/app/controllers/conversation-session-controller.d.ts +149 -0
- package/dist/src/web-ui/app/controllers/conversation-session-controller.js +43 -3
- package/dist/src/web-ui/app/controllers/long-term-memory/controller.d.ts +87 -0
- package/dist/src/web-ui/app/controllers/long-term-memory/controller.js +302 -0
- package/dist/src/web-ui/app/controllers/long-term-memory/policy.d.ts +14 -0
- package/dist/src/web-ui/app/controllers/long-term-memory/policy.js +61 -0
- package/dist/src/web-ui/app/controllers/long-term-memory/state.js +85 -0
- package/dist/src/web-ui/app/controllers/operations-controller.d.ts +25 -0
- package/dist/src/web-ui/app/controllers/realtime-event-controller.d.ts +57 -0
- package/dist/src/web-ui/app/controllers/runtime-onboarding-controller.d.ts +32 -0
- package/dist/src/web-ui/app/controllers/runtime-selection-controller.d.ts +177 -0
- package/dist/src/web-ui/app/controllers/runtime-selection-controller.js +78 -11
- package/dist/src/web-ui/app/controllers/tool-approval-controller.d.ts +28 -0
- package/dist/src/web-ui/app/index.html +13 -15
- package/dist/src/web-ui/app/services/runtime-web-client/memory.js +127 -0
- package/dist/src/web-ui/app/services/runtime-web-client.d.ts +84 -0
- package/dist/src/web-ui/app/services/runtime-web-client.js +27 -1
- package/dist/src/web-ui/app/styles/30-inspector-config.css +151 -1423
- package/dist/src/web-ui/app/styles/35-memory-onboarding.css +153 -0
- package/dist/src/web-ui/app/styles/36-memory-management.css +419 -0
- package/dist/src/web-ui/app/styles/40-config-workspace.css +992 -0
- package/dist/src/web-ui/app/styles/90-responsive.css +187 -26
- package/dist/src/web-ui/app/styles.css +3 -0
- package/dist/src/web-ui/config-dashboard-backend.js +9 -1
- package/dist/src/web-ui/local-runtime/api-router.d.ts +4 -2
- package/dist/src/web-ui/local-runtime/api-router.js +33 -0
- package/dist/src/web-ui/local-runtime/contracts.d.ts +5 -0
- package/dist/src/web-ui/local-runtime/memory-management-input.d.ts +12 -0
- package/dist/src/web-ui/local-runtime/memory-management-input.js +68 -0
- package/dist/src/web-ui/local-runtime/memory-management-response.d.ts +17 -0
- package/dist/src/web-ui/local-runtime/memory-management-response.js +47 -0
- package/dist/src/web-ui/local-runtime/memory-management-routes.d.ts +24 -0
- package/dist/src/web-ui/local-runtime/memory-management-routes.js +128 -0
- package/dist/src/web-ui/local-runtime/memory-onboarding-routes.d.ts +17 -0
- package/dist/src/web-ui/local-runtime/memory-onboarding-routes.js +81 -0
- package/dist/src/web-ui/local-runtime/request-abort.d.ts +7 -0
- package/dist/src/web-ui/local-runtime/request-abort.js +19 -0
- package/dist/src/web-ui/local-runtime-backend.js +10 -3
- package/dist/src/web-ui/server.d.ts +2 -0
- package/dist/src/web-ui/server.js +3 -0
- package/docs/configuration.md +128 -45
- package/docs/installation.md +21 -0
- package/docs/known-limitations.md +11 -0
- package/docs/long-term-memory.md +181 -0
- package/docs/publishing.md +52 -25
- package/docs/runtime-invariant-coverage.md +1 -1
- package/docs/runtime-library.md +16 -1
- package/docs/runtime-prompt-policy-contracts.md +12 -2
- package/docs/troubleshooting.md +21 -0
- package/examples/models/default.config.json +1 -0
- package/examples/request-runner.config.example.json +16 -22
- package/examples/runtime.config.example.json +4 -0
- package/methodologies/memory-informed-response.md +15 -0
- package/methodologies/response-ux.md +17 -0
- package/package.json +8 -2
- package/plugins/exec/source/handlers.ts +65 -5
- package/plugins/exec/src/index.cjs +39 -3
- package/plugins/filesystem/plugin.json +1 -0
- package/runtime.config.schema.json +30 -0
- package/src/runtime/README.md +77 -38
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { IncomingMessage, ServerResponse } from "node:http";
|
|
2
|
+
import type { LongTermMemoryOnboardingService } from "../../runtime/long-term-memory/onboarding/contracts.js";
|
|
3
|
+
type JsonBody = Record<string, unknown> | null;
|
|
4
|
+
export declare class LongTermMemoryOnboardingRoutes {
|
|
5
|
+
private readonly service;
|
|
6
|
+
constructor(service: LongTermMemoryOnboardingService);
|
|
7
|
+
handle(params: {
|
|
8
|
+
method: string;
|
|
9
|
+
route: string;
|
|
10
|
+
url: URL;
|
|
11
|
+
body: JsonBody;
|
|
12
|
+
request: IncomingMessage;
|
|
13
|
+
response: ServerResponse;
|
|
14
|
+
}): Promise<boolean>;
|
|
15
|
+
private handleKnownRoute;
|
|
16
|
+
}
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { getString, sendJson } from "./http.js";
|
|
2
|
+
import { withHttpRequestAbortSignal } from "./request-abort.js";
|
|
3
|
+
export class LongTermMemoryOnboardingRoutes {
|
|
4
|
+
service;
|
|
5
|
+
constructor(service) {
|
|
6
|
+
this.service = service;
|
|
7
|
+
}
|
|
8
|
+
async handle(params) {
|
|
9
|
+
try {
|
|
10
|
+
return await this.handleKnownRoute(params);
|
|
11
|
+
}
|
|
12
|
+
catch (error) {
|
|
13
|
+
sendJson(params.response, readErrorStatus(error), {
|
|
14
|
+
ok: false,
|
|
15
|
+
error: "long_term_memory_onboarding_failed",
|
|
16
|
+
message: error instanceof Error ? error.message : String(error),
|
|
17
|
+
});
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
async handleKnownRoute(params) {
|
|
22
|
+
if (params.method === "GET" && params.route === "runtime/memory") {
|
|
23
|
+
sendJson(params.response, 200, {
|
|
24
|
+
ok: true,
|
|
25
|
+
status: await this.service.status(),
|
|
26
|
+
});
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
if (params.method === "GET" &&
|
|
30
|
+
params.route === "runtime/memory/models") {
|
|
31
|
+
const providerId = params.url.searchParams.get("provider") ?? "";
|
|
32
|
+
sendJson(params.response, 200, {
|
|
33
|
+
ok: true,
|
|
34
|
+
catalog: await withHttpRequestAbortSignal({
|
|
35
|
+
request: params.request,
|
|
36
|
+
response: params.response,
|
|
37
|
+
reason: "memory_onboarding_discovery_request_aborted",
|
|
38
|
+
run: (abortSignal) => this.service.discover({ providerId, abortSignal }),
|
|
39
|
+
}),
|
|
40
|
+
});
|
|
41
|
+
return true;
|
|
42
|
+
}
|
|
43
|
+
if (params.method === "POST" &&
|
|
44
|
+
params.route === "runtime/memory/enable") {
|
|
45
|
+
const result = await withHttpRequestAbortSignal({
|
|
46
|
+
request: params.request,
|
|
47
|
+
response: params.response,
|
|
48
|
+
reason: "memory_onboarding_enable_request_aborted",
|
|
49
|
+
run: (abortSignal) => this.service.enable({
|
|
50
|
+
providerId: getString(params.body?.providerId),
|
|
51
|
+
model: getString(params.body?.model),
|
|
52
|
+
...(getString(params.body?.profileId)
|
|
53
|
+
? { profileId: getString(params.body?.profileId) }
|
|
54
|
+
: {}),
|
|
55
|
+
emitClientEvents: params.body?.emitClientEvents === true,
|
|
56
|
+
abortSignal,
|
|
57
|
+
}),
|
|
58
|
+
});
|
|
59
|
+
sendJson(params.response, 200, { ok: true, ...result });
|
|
60
|
+
return true;
|
|
61
|
+
}
|
|
62
|
+
if (params.method === "POST" &&
|
|
63
|
+
params.route === "runtime/memory/disable") {
|
|
64
|
+
sendJson(params.response, 200, {
|
|
65
|
+
ok: true,
|
|
66
|
+
...(await this.service.disable()),
|
|
67
|
+
});
|
|
68
|
+
return true;
|
|
69
|
+
}
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
function readErrorStatus(error) {
|
|
74
|
+
if (!error || typeof error !== "object" || !("statusCode" in error)) {
|
|
75
|
+
return 400;
|
|
76
|
+
}
|
|
77
|
+
const statusCode = Number(error.statusCode);
|
|
78
|
+
return Number.isInteger(statusCode) && statusCode >= 400 && statusCode <= 599
|
|
79
|
+
? statusCode
|
|
80
|
+
: 400;
|
|
81
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { IncomingMessage, ServerResponse } from "node:http";
|
|
2
|
+
export declare function withHttpRequestAbortSignal<T>(params: {
|
|
3
|
+
request: IncomingMessage;
|
|
4
|
+
response: ServerResponse;
|
|
5
|
+
reason: string;
|
|
6
|
+
run: (abortSignal: AbortSignal) => Promise<T>;
|
|
7
|
+
}): Promise<T>;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export async function withHttpRequestAbortSignal(params) {
|
|
2
|
+
const controller = new AbortController();
|
|
3
|
+
const abort = () => controller.abort(new Error(params.reason));
|
|
4
|
+
const abortOnResponseClose = () => {
|
|
5
|
+
if (!params.response.writableEnded)
|
|
6
|
+
abort();
|
|
7
|
+
};
|
|
8
|
+
params.request.once("aborted", abort);
|
|
9
|
+
params.response.once("close", abortOnResponseClose);
|
|
10
|
+
if (params.request.aborted || params.response.destroyed)
|
|
11
|
+
abort();
|
|
12
|
+
try {
|
|
13
|
+
return await params.run(controller.signal);
|
|
14
|
+
}
|
|
15
|
+
finally {
|
|
16
|
+
params.request.removeListener("aborted", abort);
|
|
17
|
+
params.response.removeListener("close", abortOnResponseClose);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { resolveProviderAdapters } from "../model-gateway/server/index.js";
|
|
1
2
|
import { LocalRuntimeApiRouter } from "./local-runtime/api-router.js";
|
|
2
3
|
import { LocalRuntimeControlRoutes } from "./local-runtime/control-routes.js";
|
|
3
4
|
import { RuntimeEnvironmentRegistry } from "./local-runtime/environment-registry.js";
|
|
@@ -12,11 +13,17 @@ export class LocalRuntimeWebBackend {
|
|
|
12
13
|
realtime;
|
|
13
14
|
controls;
|
|
14
15
|
constructor(options) {
|
|
15
|
-
|
|
16
|
+
const resolvedOptions = {
|
|
17
|
+
...options,
|
|
18
|
+
providerAdapters: resolveProviderAdapters({
|
|
19
|
+
providerAdapters: options.providerAdapters,
|
|
20
|
+
}),
|
|
21
|
+
};
|
|
22
|
+
this.environments = new RuntimeEnvironmentRegistry(resolvedOptions);
|
|
16
23
|
const clients = new RealtimeClientHub();
|
|
17
24
|
const requests = new LocalRequestExecution(clients);
|
|
18
|
-
this.api = new LocalRuntimeApiRouter(
|
|
19
|
-
this.realtime = new LocalRealtimeController(
|
|
25
|
+
this.api = new LocalRuntimeApiRouter(resolvedOptions, this.environments, requests);
|
|
26
|
+
this.realtime = new LocalRealtimeController(resolvedOptions, this.environments, requests, clients);
|
|
20
27
|
this.controls = new LocalRuntimeControlRoutes(requests);
|
|
21
28
|
}
|
|
22
29
|
async handleHttp(req, res, pathname) {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ModelProviderAdapterRegistry } from "../model-gateway/index.js";
|
|
1
2
|
export type WebUiSetupCommandMode = "source" | "package";
|
|
2
3
|
export type WebUiEnvironmentOption = {
|
|
3
4
|
id: string;
|
|
@@ -20,6 +21,7 @@ type WebUiServerOptions = {
|
|
|
20
21
|
rootDir?: string;
|
|
21
22
|
configPath?: string;
|
|
22
23
|
setupCommandMode?: WebUiSetupCommandMode;
|
|
24
|
+
providerAdapters?: ModelProviderAdapterRegistry;
|
|
23
25
|
};
|
|
24
26
|
type WebUiServerHandle = {
|
|
25
27
|
close: () => Promise<void>;
|
|
@@ -201,6 +201,9 @@ export function startWebUiServer(overrides = {}) {
|
|
|
201
201
|
rootDir: options.rootDir,
|
|
202
202
|
configPath: options.configPath,
|
|
203
203
|
defaultEnvironmentId: options.defaultEnvironmentId,
|
|
204
|
+
...(options.providerAdapters
|
|
205
|
+
? { providerAdapters: options.providerAdapters }
|
|
206
|
+
: {}),
|
|
204
207
|
})
|
|
205
208
|
: null;
|
|
206
209
|
const externalBridgeBackend = options.backend === "bridge"
|
package/docs/configuration.md
CHANGED
|
@@ -85,6 +85,57 @@ and write it automatically to the generated model config:
|
|
|
85
85
|
Use the same block when configuring an OpenAI model profile manually. Other
|
|
86
86
|
providers are not implicitly assigned this policy by the initializer.
|
|
87
87
|
|
|
88
|
+
## Passive Long-Term Memory
|
|
89
|
+
|
|
90
|
+
Passive cross-session memory is opt-in. The default is equivalent to:
|
|
91
|
+
|
|
92
|
+
```json
|
|
93
|
+
{
|
|
94
|
+
"longTermMemory": {
|
|
95
|
+
"enabled": false,
|
|
96
|
+
"emitClientEvents": false
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
Enable it through the shared Web UI or CLI onboarding flow whenever possible:
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
npm run memory -- enable --provider <provider-id> --model <embedding-model-id>
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
The flow creates a dedicated `models.embeddingProfiles` entry, performs a real
|
|
108
|
+
embedding probe, validates the full config, and then atomically enables
|
|
109
|
+
`longTermMemory`. A manual equivalent is:
|
|
110
|
+
|
|
111
|
+
```json
|
|
112
|
+
{
|
|
113
|
+
"models": {
|
|
114
|
+
"embeddingProfiles": {
|
|
115
|
+
"memory-embedding": {
|
|
116
|
+
"provider": "ollama",
|
|
117
|
+
"model": "<embedding-model-id>"
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
"longTermMemory": {
|
|
122
|
+
"enabled": true,
|
|
123
|
+
"emitClientEvents": false,
|
|
124
|
+
"embeddingProfileId": "memory-embedding"
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
The referenced provider must already exist under `models.providers`. Embedding
|
|
130
|
+
profiles accept `provider`, `model`, optional `label`, and optional JSON-safe
|
|
131
|
+
`options`. Generation, reasoning, context-window, and output-budget fields are
|
|
132
|
+
rejected because embedding and response-generation profiles have different
|
|
133
|
+
contracts.
|
|
134
|
+
|
|
135
|
+
`emitClientEvents` exposes bounded lifecycle status and counts, never memory
|
|
136
|
+
content or vectors. See [Passive Long-Term Memory](long-term-memory.md) for
|
|
137
|
+
storage, privacy, retrieval, and management behavior.
|
|
138
|
+
|
|
88
139
|
## Paths
|
|
89
140
|
|
|
90
141
|
`environment.paths.runtimeDir` is environment-local generated runtime state.
|
|
@@ -180,27 +231,20 @@ request-runner config:
|
|
|
180
231
|
```
|
|
181
232
|
|
|
182
233
|
`requestRunner.configRef` is resolved relative to the runtime config file, not
|
|
183
|
-
the process working directory. The referenced file owns
|
|
184
|
-
|
|
234
|
+
the process working directory. The referenced file owns model-step routing
|
|
235
|
+
overrides, timeout defaults and overrides, and the request context budget.
|
|
236
|
+
Fresh configurations use request-runner schema version 2:
|
|
185
237
|
|
|
186
238
|
```json
|
|
187
239
|
{
|
|
240
|
+
"schemaVersion": 2,
|
|
188
241
|
"models": {
|
|
189
242
|
"defaults": {
|
|
190
243
|
"profileId": "default",
|
|
191
244
|
"steps": {
|
|
192
|
-
"supervisor.
|
|
193
|
-
"
|
|
194
|
-
"
|
|
195
|
-
"planner.graph": "planner.graph",
|
|
196
|
-
"worker.decision": "worker.decision",
|
|
197
|
-
"worker.result": "supervisor.response",
|
|
198
|
-
"reviewer.decision": "reviewer.decision",
|
|
199
|
-
"degraded.finalization": "degraded.finalization",
|
|
200
|
-
"execution.decision": "execution.decision",
|
|
201
|
-
"execution.response": "execution.response",
|
|
202
|
-
"auditor.decision": "auditor.decision",
|
|
203
|
-
"context.compact": "context.compact",
|
|
245
|
+
"supervisor.response": "default",
|
|
246
|
+
"worker.result": "default",
|
|
247
|
+
"execution.response": "default",
|
|
204
248
|
"tool_payload.raw": "toolPayload.raw"
|
|
205
249
|
}
|
|
206
250
|
}
|
|
@@ -210,24 +254,54 @@ runtime model-step mappings and timeouts plus the request context budget:
|
|
|
210
254
|
"safetyReserveTokens": 1200,
|
|
211
255
|
"attachmentReserveTokens": 1024
|
|
212
256
|
},
|
|
257
|
+
"stepDefaults": {
|
|
258
|
+
"timeoutMs": 90000
|
|
259
|
+
},
|
|
213
260
|
"steps": {
|
|
214
|
-
"supervisor.
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
"
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
"tool_payload.raw": { "timeoutMs": 90000 }
|
|
261
|
+
"supervisor.response": {
|
|
262
|
+
"instructionRefs": [
|
|
263
|
+
"../methodologies/response-ux.md",
|
|
264
|
+
"../methodologies/memory-informed-response.md"
|
|
265
|
+
]
|
|
266
|
+
},
|
|
267
|
+
"execution.response": {
|
|
268
|
+
"instructionRefs": [
|
|
269
|
+
"../methodologies/response-ux.md",
|
|
270
|
+
"../methodologies/memory-informed-response.md"
|
|
271
|
+
]
|
|
272
|
+
}
|
|
227
273
|
}
|
|
228
274
|
}
|
|
229
275
|
```
|
|
230
276
|
|
|
277
|
+
In schema version 2, `models.defaults.steps` is a sparse override map. A
|
|
278
|
+
missing model-step mapping resolves to the same id as the step, so an identity
|
|
279
|
+
entry such as `"capability.controls": "capability.controls"` is unnecessary.
|
|
280
|
+
The four entries above are the canonical non-identity overrides: three raw
|
|
281
|
+
response steps use the base `default` profile, while `tool_payload.raw` uses
|
|
282
|
+
the existing `toolPayload.raw` calibration slot. An explicit target may still
|
|
283
|
+
select a model profile, invocation profile, or calibration slot; an unknown
|
|
284
|
+
explicit target is rejected rather than replaced with a default.
|
|
285
|
+
|
|
286
|
+
`stepDefaults.timeoutMs` supplies the timeout for every step. The root `steps`
|
|
287
|
+
object is also sparse: add `timeoutMs` only when a step differs from the
|
|
288
|
+
default, and add `instructionRefs` only when that step needs additional
|
|
289
|
+
instructions. A missing step entry therefore uses the default timeout and has
|
|
290
|
+
no additional instruction references.
|
|
291
|
+
|
|
292
|
+
A request-runner config with no `schemaVersion` is the legacy v1 format
|
|
293
|
+
published with ABot 1.0.0. It remains supported and is normalized in memory;
|
|
294
|
+
the loader does not rewrite it, and adding a runtime model step does not require
|
|
295
|
+
the user to add a new identity mapping. `schemaVersion: 2` is the only explicit
|
|
296
|
+
supported version. Any other explicit value is rejected before the config is
|
|
297
|
+
used or written.
|
|
298
|
+
|
|
299
|
+
A fresh `abot init` creates schema version 2. Running init against an existing
|
|
300
|
+
project without `--force` preserves its request-runner config byte for byte,
|
|
301
|
+
including a legacy v1 file. Package upgrades never run a config migration or
|
|
302
|
+
rewrite automatically; `--force` remains an explicit request to replace the
|
|
303
|
+
local starter files.
|
|
304
|
+
|
|
231
305
|
Every materialized model profile declares its physical context capacity with
|
|
232
306
|
top-level `contextWindowTokens`. The selected profile supplies that capacity;
|
|
233
307
|
the request-runner context block supplies only admission headroom.
|
|
@@ -241,16 +315,23 @@ The Ollama adapter still sends a finite provider-native `num_predict`, derived
|
|
|
241
315
|
mechanically from the final provider input, the physical context remainder,
|
|
242
316
|
and a strict bounded output schema when one applies.
|
|
243
317
|
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
318
|
+
The required context fields remain explicit. Unknown fields, unknown step ids,
|
|
319
|
+
and invalid explicit overrides are rejected during configuration loading;
|
|
320
|
+
omitting a mapping or step entry uses the schema version 2 defaults described
|
|
321
|
+
above. `instructionRefs` are resolved relative to the request-runner config.
|
|
322
|
+
The `abot init` command installs the two default root-response methodologies
|
|
323
|
+
beside the local configuration, and the same references are applied to
|
|
324
|
+
`supervisor.response` and `execution.response`. They are presentation guidance
|
|
325
|
+
only and cannot alter the available actions, output contract, or runtime
|
|
326
|
+
authority.
|
|
327
|
+
`worker.result` is a raw-text authoring step. The canonical override selects the
|
|
328
|
+
base `default` profile without changing the step's distinct runtime identity;
|
|
329
|
+
an installation may still configure a more specific explicit target.
|
|
249
330
|
`planner.decision` remains the delegated MAIN Planner contract and keeps its
|
|
250
331
|
configured methodology references. `planner.graph` is the separate structured
|
|
251
332
|
graph proposal/decline contract used by the Execution Agent advisory Planner;
|
|
252
|
-
it
|
|
253
|
-
not inherit `planner.decision` instruction references.
|
|
333
|
+
it receives its own normalized mapping, timeout, output contract, and model
|
|
334
|
+
calibration and does not inherit `planner.decision` instruction references.
|
|
254
335
|
The request runner has no configurable role hierarchy or fixed sequence. A
|
|
255
336
|
model profile may select one code-owned execution policy; omission uses the
|
|
256
337
|
current Supervisor/Worker behavior:
|
|
@@ -374,15 +455,15 @@ loss before a checkpoint covers those turns.
|
|
|
374
455
|
supported. Tool observations and artifact context are projected by their
|
|
375
456
|
owning runtime contracts; model profiles cannot override those boundaries.
|
|
376
457
|
|
|
377
|
-
The request-runner config maps internal `modelStep` ids
|
|
378
|
-
|
|
458
|
+
The request-runner config maps internal `modelStep` ids only when a target
|
|
459
|
+
differs from the schema version 2 identity default:
|
|
379
460
|
|
|
380
461
|
```json
|
|
381
462
|
{
|
|
382
463
|
"models": {
|
|
383
464
|
"defaults": {
|
|
384
465
|
"steps": {
|
|
385
|
-
"
|
|
466
|
+
"tool_payload.raw": "toolPayload.raw"
|
|
386
467
|
}
|
|
387
468
|
}
|
|
388
469
|
}
|
|
@@ -428,12 +509,13 @@ Use this bounded workflow:
|
|
|
428
509
|
|
|
429
510
|
The common slots and their first tuning targets are:
|
|
430
511
|
|
|
431
|
-
| Step family | Slots | Tune first
|
|
432
|
-
| ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
512
|
+
| Step family | Slots | Tune first |
|
|
513
|
+
| ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
433
514
|
| Routing and decisions | `supervisor.decision`, `worker.decision`, `planner.decision`, `planner.graph`, `reviewer.decision`, `execution.decision`, `auditor.decision`, `degraded.finalization` | Keep the required structured `format`, then verify complete structured output and deterministic sampling. Add short model-specific instructions only when measured behavior needs them. |
|
|
434
|
-
|
|
|
435
|
-
|
|
|
436
|
-
|
|
|
515
|
+
| Capability control authoring | `capability.controls` | Preserve the structured controls contract without applying the short decision-output ceiling. |
|
|
516
|
+
| User-facing or delegated output | `supervisor.response`, `worker.result`, `execution.response` | Sampling and any intentional provider-native output controls. Do not force JSON unless that step's contract requires it. |
|
|
517
|
+
| Context compaction | `context.compact` | Structured format and preservation of facts that later steps still require; physical capacity remains profile-owned. |
|
|
518
|
+
| Literal tool payloads | `toolPayload.raw` | Literal-payload instructions and any intentional provider-native output controls. Verify the produced payload or artifact directly, not the model's description of it. |
|
|
437
519
|
|
|
438
520
|
`timeoutMs` addresses provider latency only; raising it does not improve model
|
|
439
521
|
reasoning. Top-level `contextWindowTokens` declares the concrete model
|
|
@@ -443,9 +525,10 @@ but a provider may intentionally omit unsupported sampling fields, such as
|
|
|
443
525
|
temperature for an enabled OpenAI reasoning mode.
|
|
444
526
|
|
|
445
527
|
An omitted slot inherits the model profile's base generation and context. The
|
|
446
|
-
packaged request-runner example
|
|
447
|
-
|
|
448
|
-
|
|
528
|
+
packaged schema version 2 request-runner example lists only the four canonical
|
|
529
|
+
non-identity overrides; all other steps resolve to their matching calibration
|
|
530
|
+
slot automatically. Most users therefore only need to edit the profile file
|
|
531
|
+
for the model they are tuning.
|
|
449
532
|
|
|
450
533
|
## Schema
|
|
451
534
|
|
package/docs/installation.md
CHANGED
|
@@ -91,6 +91,24 @@ npx abot add-model --profile <profile-id> --provider openai --model <model-id>
|
|
|
91
91
|
Add `--default` only to select that profile as the default. It does not delete
|
|
92
92
|
the profiles that are already configured.
|
|
93
93
|
|
|
94
|
+
### Optional Passive Long-Term Memory
|
|
95
|
+
|
|
96
|
+
Long-term memory is disabled by default. After a provider is configured, choose
|
|
97
|
+
an embedding model and enable it through the Web UI Config workspace or CLI:
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
npx abot memory status
|
|
101
|
+
npx abot memory models --provider <provider-id>
|
|
102
|
+
npx abot memory enable --provider <provider-id> --model <embedding-model-id>
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
ABot does not install or choose the embedding model. The enable command performs
|
|
106
|
+
a real probe, writes config only after it succeeds, and reports that the Runtime
|
|
107
|
+
must be restarted. OpenAI users enter the embedding model id manually; Ollama
|
|
108
|
+
users can discover model ids installed at the configured Ollama endpoint.
|
|
109
|
+
|
|
110
|
+
See [Passive Long-Term Memory](long-term-memory.md) before enabling persistence.
|
|
111
|
+
|
|
94
112
|
## Use As A Library
|
|
95
113
|
|
|
96
114
|
After the package is published:
|
|
@@ -134,6 +152,9 @@ The package includes the public plugin catalog. Additional consumer plugins may
|
|
|
134
152
|
be installed under `<consumer-root>/plugins`. A consumer plugin cannot replace
|
|
135
153
|
a bundled plugin: duplicate plugin ids fail closed.
|
|
136
154
|
|
|
155
|
+
The passive long-term memory service belongs to the Runtime core and does not
|
|
156
|
+
depend on the bundled `memory` plugin.
|
|
157
|
+
|
|
137
158
|
Web URL fetching is available through the bundled Web plugin without a search
|
|
138
159
|
credential. Set `BRAVE_SEARCH_API_KEY` to make `web_search` operational. With
|
|
139
160
|
no key, `web_fetch` remains operational and a `web_search` invocation fails
|
|
@@ -61,6 +61,17 @@ plugin entrypoints are not currently supported.
|
|
|
61
61
|
Plugin behavior belongs inside the plugin. Runtime orchestration should only
|
|
62
62
|
see the generic selected catalog and execution results.
|
|
63
63
|
|
|
64
|
+
## Passive Long-Term Memory
|
|
65
|
+
|
|
66
|
+
Passive long-term memory is disabled by default and requires an embedding model
|
|
67
|
+
selected and operated by the consumer. ABot provides OpenAI and Ollama adapter
|
|
68
|
+
contracts, but it does not install, download, or choose that model.
|
|
69
|
+
|
|
70
|
+
Ollama exposes installed-model discovery. OpenAI does not expose equivalent
|
|
71
|
+
discovery through this integration, so its embedding model id is entered
|
|
72
|
+
manually. If an enabled embedding provider becomes unavailable, memory
|
|
73
|
+
retrieval or saving is skipped while the completed user response is preserved.
|
|
74
|
+
|
|
64
75
|
## Web UI
|
|
65
76
|
|
|
66
77
|
The packaged Web UI is the primary local GUI. Its default backend talks directly
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
# Passive Long-Term Memory
|
|
2
|
+
|
|
3
|
+
ABot Runtime can retain selected user facts and preferences across sessions.
|
|
4
|
+
This feature is passive: the model does not invoke a memory tool, and the
|
|
5
|
+
Runtime core remains the only owner of retrieval, filtering, deduplication,
|
|
6
|
+
storage, and deletion.
|
|
7
|
+
|
|
8
|
+
Long-term memory is disabled by default. Enabling it is an explicit consumer
|
|
9
|
+
choice because it may persist personal information between conversations.
|
|
10
|
+
|
|
11
|
+
## How It Works
|
|
12
|
+
|
|
13
|
+
The Supervisor path separates memory proposal from the user-facing response.
|
|
14
|
+
When long-term memory is enabled, `supervisor.response` first performs one
|
|
15
|
+
structured candidate-only call:
|
|
16
|
+
|
|
17
|
+
```json
|
|
18
|
+
{
|
|
19
|
+
"memoryCandidates": [
|
|
20
|
+
{
|
|
21
|
+
"content": "A durable fact or preference established by the user.",
|
|
22
|
+
"tags": ["normalized-later-by-core"]
|
|
23
|
+
}
|
|
24
|
+
]
|
|
25
|
+
}
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
`memoryCandidates` is empty when there is nothing durable to propose. The
|
|
29
|
+
Supervisor then authors the complete user-facing response through its ordinary
|
|
30
|
+
raw-text contract, without a JSON wrapper. Invalid or unavailable candidate
|
|
31
|
+
authoring is isolated to an empty candidate list and cannot replace or
|
|
32
|
+
invalidate that raw response. This sequential split adds the candidate-call
|
|
33
|
+
latency before the Supervisor response is delivered.
|
|
34
|
+
|
|
35
|
+
`execution.response` retains the combined strict envelope containing both
|
|
36
|
+
`finalResponse` and `memoryCandidates`; its external response contract is
|
|
37
|
+
unchanged.
|
|
38
|
+
|
|
39
|
+
Candidate data remains internal and is processed after the final assistant
|
|
40
|
+
response is persisted. Persistence runs through a Runtime-owned background
|
|
41
|
+
queue; response completion never waits for embedding or memory-store work.
|
|
42
|
+
|
|
43
|
+
Before the next terminal response is authored, the Runtime retrieves a small
|
|
44
|
+
relevant set from the cross-session pool. Retrieval uses provider embeddings
|
|
45
|
+
plus bounded lexical, tag, and recency scoring. The projection is passive
|
|
46
|
+
reference context; it is never treated as a new user request or an instruction.
|
|
47
|
+
|
|
48
|
+
Retrieval, candidate policy, filtering, deduplication, and persistence are
|
|
49
|
+
shared by `supervisor.response` and `execution.response`; only their authoring
|
|
50
|
+
contracts differ. Decision, planning, Worker, Reviewer, payload, and tool
|
|
51
|
+
contexts do not receive the long-term memory projection.
|
|
52
|
+
|
|
53
|
+
Both response paths also share the same configured response-experience
|
|
54
|
+
methodology. It applies whether memory is enabled or disabled. Relevant memory
|
|
55
|
+
is an optional passive layer that may improve continuity and useful defaults;
|
|
56
|
+
it never replaces the current request, forces a personal reference, or grants
|
|
57
|
+
action authority.
|
|
58
|
+
|
|
59
|
+
## Enable It
|
|
60
|
+
|
|
61
|
+
Configure an ordinary model provider first with `abot init` or `abot add-model`.
|
|
62
|
+
Then choose an embedding model exposed by that provider. ABot does not choose,
|
|
63
|
+
install, or download an embedding model.
|
|
64
|
+
|
|
65
|
+
For a packaged installation:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
npx abot memory status
|
|
69
|
+
npx abot memory models --provider <provider-id>
|
|
70
|
+
npx abot memory enable --provider <provider-id> --model <embedding-model-id>
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
From a source checkout, use the equivalent commands:
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
npm run memory -- status
|
|
77
|
+
npm run memory -- models --provider <provider-id>
|
|
78
|
+
npm run memory -- enable --provider <provider-id> --model <embedding-model-id>
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Add `--emit-events` to expose bounded lifecycle events to clients. Enablement
|
|
82
|
+
performs a real embedding probe and validates the complete candidate config
|
|
83
|
+
before writing it. The previous config is backed up, and a restart is required
|
|
84
|
+
after enablement or disablement.
|
|
85
|
+
|
|
86
|
+
The Config workspace in the packaged Web UI uses the same onboarding service.
|
|
87
|
+
It can list configured providers, discover models when the provider supports
|
|
88
|
+
discovery, probe and enable a selected model, or disable the feature. A provider
|
|
89
|
+
without discovery support accepts a model id entered by the user.
|
|
90
|
+
|
|
91
|
+
## Configuration Contract
|
|
92
|
+
|
|
93
|
+
The onboarding flow writes a dedicated embedding profile and binds the feature
|
|
94
|
+
to it:
|
|
95
|
+
|
|
96
|
+
```json
|
|
97
|
+
{
|
|
98
|
+
"models": {
|
|
99
|
+
"embeddingProfiles": {
|
|
100
|
+
"memory-embedding": {
|
|
101
|
+
"label": "Long-term memory embeddings",
|
|
102
|
+
"provider": "ollama",
|
|
103
|
+
"model": "<embedding-model-id>"
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
},
|
|
107
|
+
"longTermMemory": {
|
|
108
|
+
"enabled": true,
|
|
109
|
+
"emitClientEvents": false,
|
|
110
|
+
"embeddingProfileId": "memory-embedding"
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Embedding profiles are intentionally separate from generation profiles. They
|
|
116
|
+
accept `provider`, `model`, optional `label`, and provider-owned JSON-safe
|
|
117
|
+
`options`; generation, reasoning, context-window, and output settings are not
|
|
118
|
+
valid embedding-profile fields.
|
|
119
|
+
|
|
120
|
+
When disabled, no repository read, embedding request, model-output envelope,
|
|
121
|
+
or memory lifecycle event is added to the response path.
|
|
122
|
+
|
|
123
|
+
## Providers
|
|
124
|
+
|
|
125
|
+
- Ollama uses its `/api/embed` contract and can discover locally installed
|
|
126
|
+
model ids through `/api/tags`.
|
|
127
|
+
- OpenAI uses `/embeddings`. Model discovery is not exposed by that provider,
|
|
128
|
+
so the consumer supplies the embedding model id.
|
|
129
|
+
- A custom model-gateway adapter may implement `embed` and optional
|
|
130
|
+
`listEmbeddingModels` without changing Runtime memory policy.
|
|
131
|
+
|
|
132
|
+
If the selected embedding provider becomes unavailable during a request, the
|
|
133
|
+
Runtime skips memory retrieval or persistence, records a bounded diagnostic,
|
|
134
|
+
and preserves normal response delivery.
|
|
135
|
+
|
|
136
|
+
## Storage, Privacy, And Management
|
|
137
|
+
|
|
138
|
+
The default adapter stores canonical records and their derived vector index at:
|
|
139
|
+
|
|
140
|
+
```text
|
|
141
|
+
<runtimeDir>/long-term-memory/memory.json
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
The file is runtime-generated local state and must not be published or
|
|
145
|
+
committed. Canonical records contain content, normalized tags, timestamps, and
|
|
146
|
+
source session/request provenance. Derived vectors are versioned by model
|
|
147
|
+
fingerprint and are rebuilt when that fingerprint or vector dimension changes.
|
|
148
|
+
|
|
149
|
+
The core rejects obvious secrets such as private keys, labeled passwords, API
|
|
150
|
+
keys, and common token formats. Exact duplicates are merged mechanically;
|
|
151
|
+
semantic similarity alone never overwrites an existing record.
|
|
152
|
+
|
|
153
|
+
Library hosts can manage the pool through the composed service:
|
|
154
|
+
|
|
155
|
+
```ts
|
|
156
|
+
const runtime = createRuntimeApplication(config);
|
|
157
|
+
|
|
158
|
+
await runtime.services.longTermMemory.status();
|
|
159
|
+
await runtime.services.longTermMemory.list({ limit: 50 });
|
|
160
|
+
await runtime.services.longTermMemory.delete({ id: memoryId });
|
|
161
|
+
await runtime.services.longTermMemory.clear();
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
Management APIs return canonical records, not embedding vectors.
|
|
165
|
+
|
|
166
|
+
## Client Events
|
|
167
|
+
|
|
168
|
+
With `emitClientEvents: true`, clients may receive bounded lifecycle events:
|
|
169
|
+
|
|
170
|
+
- `memory.retrieval.started|completed|failed`
|
|
171
|
+
- `memory.save.queued`
|
|
172
|
+
|
|
173
|
+
The save event confirms only that background persistence was scheduled. Its
|
|
174
|
+
completion or failure is diagnostic-only and cannot change the completed user
|
|
175
|
+
response. Client events contain lifecycle status and counts only. They never
|
|
176
|
+
include memory content, tags, vectors, credentials, or the model's internal
|
|
177
|
+
candidates.
|
|
178
|
+
|
|
179
|
+
The bundled `memory` plugin remains a separate, explicit user-invoked
|
|
180
|
+
capability. Passive long-term memory does not depend on that plugin and remains
|
|
181
|
+
operational if the plugin is disabled or removed.
|