@principles/core 1.284.17 → 1.284.18
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/dist/runtime-v2/__tests__/artificer-runner-vslice.test.js +101 -14
- package/dist/runtime-v2/__tests__/artificer-runner-vslice.test.js.map +1 -1
- package/dist/runtime-v2/__tests__/evidence-sanitizer.test.js +113 -1
- package/dist/runtime-v2/__tests__/evidence-sanitizer.test.js.map +1 -1
- package/dist/runtime-v2/__tests__/pain-to-principle-service.test.js +0 -1
- package/dist/runtime-v2/__tests__/pain-to-principle-service.test.js.map +1 -1
- package/dist/runtime-v2/__tests__/scribe-runner-vslice.test.js +211 -0
- package/dist/runtime-v2/__tests__/scribe-runner-vslice.test.js.map +1 -1
- package/dist/runtime-v2/adapter/__tests__/openclaw-cli-runtime-adapter-message-file.test.js +23 -1
- package/dist/runtime-v2/adapter/__tests__/openclaw-cli-runtime-adapter-message-file.test.js.map +1 -1
- package/dist/runtime-v2/adapter/__tests__/principle-tree-ledger-adapter.test.js +25 -0
- package/dist/runtime-v2/adapter/__tests__/principle-tree-ledger-adapter.test.js.map +1 -1
- package/dist/runtime-v2/adapter/openclaw-cli-runtime-adapter.d.ts.map +1 -1
- package/dist/runtime-v2/adapter/openclaw-cli-runtime-adapter.js +38 -7
- package/dist/runtime-v2/adapter/openclaw-cli-runtime-adapter.js.map +1 -1
- package/dist/runtime-v2/adapter/output-schema-registry.d.ts.map +1 -1
- package/dist/runtime-v2/adapter/output-schema-registry.js +0 -2
- package/dist/runtime-v2/adapter/output-schema-registry.js.map +1 -1
- package/dist/runtime-v2/adapter/principle-tree-ledger-adapter.d.ts +16 -0
- package/dist/runtime-v2/adapter/principle-tree-ledger-adapter.d.ts.map +1 -1
- package/dist/runtime-v2/adapter/principle-tree-ledger-adapter.js +22 -0
- package/dist/runtime-v2/adapter/principle-tree-ledger-adapter.js.map +1 -1
- package/dist/runtime-v2/agent-spec.d.ts +0 -1
- package/dist/runtime-v2/agent-spec.d.ts.map +1 -1
- package/dist/runtime-v2/agent-spec.js +3 -1
- package/dist/runtime-v2/agent-spec.js.map +1 -1
- package/dist/runtime-v2/config/__tests__/internal-agent-names.test.js +3 -1
- package/dist/runtime-v2/config/__tests__/internal-agent-names.test.js.map +1 -1
- package/dist/runtime-v2/config/__tests__/pd-config-agent-binding.test.js +0 -7
- package/dist/runtime-v2/config/__tests__/pd-config-agent-binding.test.js.map +1 -1
- package/dist/runtime-v2/config/__tests__/pd-config-context-injection.test.js +0 -1
- package/dist/runtime-v2/config/__tests__/pd-config-context-injection.test.js.map +1 -1
- package/dist/runtime-v2/config/__tests__/pd-config-contract.test.js +0 -1
- package/dist/runtime-v2/config/__tests__/pd-config-contract.test.js.map +1 -1
- package/dist/runtime-v2/config/__tests__/pd-config-principles.test.js +0 -1
- package/dist/runtime-v2/config/__tests__/pd-config-principles.test.js.map +1 -1
- package/dist/runtime-v2/config/__tests__/pd-config-reasoning.test.js +0 -1
- package/dist/runtime-v2/config/__tests__/pd-config-reasoning.test.js.map +1 -1
- package/dist/runtime-v2/config/__tests__/pd-config-redaction-deep.test.js +0 -1
- package/dist/runtime-v2/config/__tests__/pd-config-redaction-deep.test.js.map +1 -1
- package/dist/runtime-v2/config/__tests__/pd-config-validation-edge-cases.test.js +61 -1
- package/dist/runtime-v2/config/__tests__/pd-config-validation-edge-cases.test.js.map +1 -1
- package/dist/runtime-v2/config/pd-config-defaults.d.ts.map +1 -1
- package/dist/runtime-v2/config/pd-config-defaults.js +0 -1
- package/dist/runtime-v2/config/pd-config-defaults.js.map +1 -1
- package/dist/runtime-v2/config/pd-config-types.d.ts +1 -1
- package/dist/runtime-v2/config/pd-config-types.d.ts.map +1 -1
- package/dist/runtime-v2/config/pd-config-types.js +0 -1
- package/dist/runtime-v2/config/pd-config-types.js.map +1 -1
- package/dist/runtime-v2/config/pd-config-validate.d.ts.map +1 -1
- package/dist/runtime-v2/config/pd-config-validate.js +20 -1
- package/dist/runtime-v2/config/pd-config-validate.js.map +1 -1
- package/dist/runtime-v2/evidence-sanitizer.d.ts +17 -2
- package/dist/runtime-v2/evidence-sanitizer.d.ts.map +1 -1
- package/dist/runtime-v2/evidence-sanitizer.js +80 -11
- package/dist/runtime-v2/evidence-sanitizer.js.map +1 -1
- package/dist/runtime-v2/feature-flags/__tests__/feature-flag-contract.test.js +3 -3
- package/dist/runtime-v2/feature-flags/__tests__/feature-flag-contract.test.js.map +1 -1
- package/dist/runtime-v2/feature-flags/feature-flag-contract.d.ts.map +1 -1
- package/dist/runtime-v2/feature-flags/feature-flag-contract.js +11 -40
- package/dist/runtime-v2/feature-flags/feature-flag-contract.js.map +1 -1
- package/dist/runtime-v2/feature-flags/feature-flag-lifecycle.d.ts.map +1 -1
- package/dist/runtime-v2/feature-flags/feature-flag-lifecycle.js +6 -40
- package/dist/runtime-v2/feature-flags/feature-flag-lifecycle.js.map +1 -1
- package/dist/runtime-v2/index.d.ts +9 -6
- package/dist/runtime-v2/index.d.ts.map +1 -1
- package/dist/runtime-v2/index.js +12 -5
- package/dist/runtime-v2/index.js.map +1 -1
- package/dist/runtime-v2/internalization/__tests__/artificer-prompt-builder.test.js +61 -29
- package/dist/runtime-v2/internalization/__tests__/artificer-prompt-builder.test.js.map +1 -1
- package/dist/runtime-v2/internalization/__tests__/diag-chain-e2e.test.js +0 -1
- package/dist/runtime-v2/internalization/__tests__/diag-chain-e2e.test.js.map +1 -1
- package/dist/runtime-v2/internalization/__tests__/diag-router-runner.test.js +2 -2
- package/dist/runtime-v2/internalization/__tests__/diag-router-runner.test.js.map +1 -1
- package/dist/runtime-v2/internalization/__tests__/evaluator-artificer-repair-replay.test.js +2 -13
- package/dist/runtime-v2/internalization/__tests__/evaluator-artificer-repair-replay.test.js.map +1 -1
- package/dist/runtime-v2/internalization/__tests__/evaluator-chinese-feedback-contract.test.js +1 -5
- package/dist/runtime-v2/internalization/__tests__/evaluator-chinese-feedback-contract.test.js.map +1 -1
- package/dist/runtime-v2/internalization/__tests__/evaluator-out-of-scope-governance.test.js +1 -5
- package/dist/runtime-v2/internalization/__tests__/evaluator-out-of-scope-governance.test.js.map +1 -1
- package/dist/runtime-v2/internalization/__tests__/external-review-p0-regressions.test.js +1 -1
- package/dist/runtime-v2/internalization/__tests__/external-review-p0-regressions.test.js.map +1 -1
- package/dist/runtime-v2/internalization/__tests__/formation-context.test.d.ts +2 -0
- package/dist/runtime-v2/internalization/__tests__/formation-context.test.d.ts.map +1 -0
- package/dist/runtime-v2/internalization/__tests__/formation-context.test.js +428 -0
- package/dist/runtime-v2/internalization/__tests__/formation-context.test.js.map +1 -0
- package/dist/runtime-v2/internalization/__tests__/scribe-prompt-builder.test.js +97 -0
- package/dist/runtime-v2/internalization/__tests__/scribe-prompt-builder.test.js.map +1 -1
- package/dist/runtime-v2/internalization/__tests__/split-diagnostician-runner-retry.test.js +61 -0
- package/dist/runtime-v2/internalization/__tests__/split-diagnostician-runner-retry.test.js.map +1 -1
- package/dist/runtime-v2/internalization/artifact-summary.d.ts +11 -0
- package/dist/runtime-v2/internalization/artifact-summary.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/artifact-summary.js.map +1 -1
- package/dist/runtime-v2/internalization/artificer-prompt-builder.d.ts +48 -14
- package/dist/runtime-v2/internalization/artificer-prompt-builder.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/artificer-prompt-builder.js +32 -1
- package/dist/runtime-v2/internalization/artificer-prompt-builder.js.map +1 -1
- package/dist/runtime-v2/internalization/artificer-runner.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/artificer-runner.js +60 -156
- package/dist/runtime-v2/internalization/artificer-runner.js.map +1 -1
- package/dist/runtime-v2/internalization/diag-distiller-runner.d.ts +1 -1
- package/dist/runtime-v2/internalization/diag-distiller-runner.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/diag-distiller-runner.js +2 -19
- package/dist/runtime-v2/internalization/diag-distiller-runner.js.map +1 -1
- package/dist/runtime-v2/internalization/diag-rootcause-runner.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/diag-rootcause-runner.js +1 -5
- package/dist/runtime-v2/internalization/diag-rootcause-runner.js.map +1 -1
- package/dist/runtime-v2/internalization/diag-router-runner.d.ts +1 -1
- package/dist/runtime-v2/internalization/diag-router-runner.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/diag-router-runner.js +9 -32
- package/dist/runtime-v2/internalization/diag-router-runner.js.map +1 -1
- package/dist/runtime-v2/internalization/dreamer-runner.d.ts +1 -9
- package/dist/runtime-v2/internalization/dreamer-runner.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/dreamer-runner.js +4 -35
- package/dist/runtime-v2/internalization/dreamer-runner.js.map +1 -1
- package/dist/runtime-v2/internalization/evaluator-runner.d.ts +3 -54
- package/dist/runtime-v2/internalization/evaluator-runner.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/evaluator-runner.js +18 -230
- package/dist/runtime-v2/internalization/evaluator-runner.js.map +1 -1
- package/dist/runtime-v2/internalization/formation-context.d.ts +208 -0
- package/dist/runtime-v2/internalization/formation-context.d.ts.map +1 -0
- package/dist/runtime-v2/internalization/formation-context.js +621 -0
- package/dist/runtime-v2/internalization/formation-context.js.map +1 -0
- package/dist/runtime-v2/internalization/index.d.ts +0 -2
- package/dist/runtime-v2/internalization/index.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/index.js +0 -2
- package/dist/runtime-v2/internalization/index.js.map +1 -1
- package/dist/runtime-v2/internalization/philosopher-runner.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/philosopher-runner.js +1 -25
- package/dist/runtime-v2/internalization/philosopher-runner.js.map +1 -1
- package/dist/runtime-v2/internalization/scribe-prompt-builder.d.ts +53 -1
- package/dist/runtime-v2/internalization/scribe-prompt-builder.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/scribe-prompt-builder.js +65 -3
- package/dist/runtime-v2/internalization/scribe-prompt-builder.js.map +1 -1
- package/dist/runtime-v2/internalization/scribe-runner.d.ts +17 -0
- package/dist/runtime-v2/internalization/scribe-runner.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/scribe-runner.js +58 -40
- package/dist/runtime-v2/internalization/scribe-runner.js.map +1 -1
- package/dist/runtime-v2/internalization/split-diagnostician-runner.d.ts.map +1 -1
- package/dist/runtime-v2/internalization/split-diagnostician-runner.js +13 -2
- package/dist/runtime-v2/internalization/split-diagnostician-runner.js.map +1 -1
- package/dist/runtime-v2/observer/__tests__/agent-scheduler.test.js +31 -21
- package/dist/runtime-v2/observer/__tests__/agent-scheduler.test.js.map +1 -1
- package/dist/runtime-v2/observer/agent-scheduler.d.ts +0 -5
- package/dist/runtime-v2/observer/agent-scheduler.d.ts.map +1 -1
- package/dist/runtime-v2/owner-decision/__tests__/owner-decision-view.test.d.ts +2 -0
- package/dist/runtime-v2/owner-decision/__tests__/owner-decision-view.test.d.ts.map +1 -0
- package/dist/runtime-v2/owner-decision/__tests__/owner-decision-view.test.js +559 -0
- package/dist/runtime-v2/owner-decision/__tests__/owner-decision-view.test.js.map +1 -0
- package/dist/runtime-v2/owner-decision/owner-decision-view-contract.d.ts +7868 -0
- package/dist/runtime-v2/owner-decision/owner-decision-view-contract.d.ts.map +1 -0
- package/dist/runtime-v2/owner-decision/owner-decision-view-contract.js +367 -0
- package/dist/runtime-v2/owner-decision/owner-decision-view-contract.js.map +1 -0
- package/dist/runtime-v2/owner-decision/owner-decision-view.d.ts +415 -0
- package/dist/runtime-v2/owner-decision/owner-decision-view.d.ts.map +1 -0
- package/dist/runtime-v2/owner-decision/owner-decision-view.js +856 -0
- package/dist/runtime-v2/owner-decision/owner-decision-view.js.map +1 -0
- package/dist/runtime-v2/owner-decision/semantic-selector.d.ts +72 -0
- package/dist/runtime-v2/owner-decision/semantic-selector.d.ts.map +1 -0
- package/dist/runtime-v2/owner-decision/semantic-selector.js +176 -0
- package/dist/runtime-v2/owner-decision/semantic-selector.js.map +1 -0
- package/dist/runtime-v2/runner/base-peer-runner.d.ts +0 -125
- package/dist/runtime-v2/runner/base-peer-runner.d.ts.map +1 -1
- package/dist/runtime-v2/runner/base-peer-runner.js +0 -323
- package/dist/runtime-v2/runner/base-peer-runner.js.map +1 -1
- package/dist/runtime-v2/runner/peer-runner-types.d.ts +0 -12
- package/dist/runtime-v2/runner/peer-runner-types.d.ts.map +1 -1
- package/dist/runtime-v2/signal-collector/types.d.ts +0 -12
- package/dist/runtime-v2/signal-collector/types.d.ts.map +1 -1
- package/dist/runtime-v2/signal-collector/types.js.map +1 -1
- package/dist/runtime-v2/types/event-types.d.ts +9 -0
- package/dist/runtime-v2/types/event-types.d.ts.map +1 -1
- package/dist/runtime-v2/types/event-types.js +12 -0
- package/dist/runtime-v2/types/event-types.js.map +1 -1
- package/dist/telemetry-event.d.ts +2 -2
- package/dist/telemetry-event.d.ts.map +1 -1
- package/dist/telemetry-event.js +7 -84
- package/dist/telemetry-event.js.map +1 -1
- package/package.json +1 -1
- package/dist/runtime-v2/feature-flags/__tests__/artifact-summary-redundancy-flag.test.d.ts +0 -15
- package/dist/runtime-v2/feature-flags/__tests__/artifact-summary-redundancy-flag.test.d.ts.map +0 -1
- package/dist/runtime-v2/feature-flags/__tests__/artifact-summary-redundancy-flag.test.js +0 -90
- package/dist/runtime-v2/feature-flags/__tests__/artifact-summary-redundancy-flag.test.js.map +0 -1
- package/dist/runtime-v2/feature-flags/__tests__/context-manifest-budget-flag.test.d.ts +0 -12
- package/dist/runtime-v2/feature-flags/__tests__/context-manifest-budget-flag.test.d.ts.map +0 -1
- package/dist/runtime-v2/feature-flags/__tests__/context-manifest-budget-flag.test.js +0 -117
- package/dist/runtime-v2/feature-flags/__tests__/context-manifest-budget-flag.test.js.map +0 -1
- package/dist/runtime-v2/feature-flags/__tests__/progressive-evaluator-flag.test.d.ts +0 -8
- package/dist/runtime-v2/feature-flags/__tests__/progressive-evaluator-flag.test.d.ts.map +0 -1
- package/dist/runtime-v2/feature-flags/__tests__/progressive-evaluator-flag.test.js +0 -56
- package/dist/runtime-v2/feature-flags/__tests__/progressive-evaluator-flag.test.js.map +0 -1
- package/dist/runtime-v2/internalization/__tests__/candidate-lineage.pri717.test.d.ts +0 -26
- package/dist/runtime-v2/internalization/__tests__/candidate-lineage.pri717.test.d.ts.map +0 -1
- package/dist/runtime-v2/internalization/__tests__/candidate-lineage.pri717.test.js +0 -420
- package/dist/runtime-v2/internalization/__tests__/candidate-lineage.pri717.test.js.map +0 -1
- package/dist/runtime-v2/internalization/__tests__/candidate-lineage.property.test.d.ts +0 -15
- package/dist/runtime-v2/internalization/__tests__/candidate-lineage.property.test.d.ts.map +0 -1
- package/dist/runtime-v2/internalization/__tests__/candidate-lineage.property.test.js +0 -306
- package/dist/runtime-v2/internalization/__tests__/candidate-lineage.property.test.js.map +0 -1
- package/dist/runtime-v2/internalization/__tests__/context-manifest.property.test.d.ts +0 -12
- package/dist/runtime-v2/internalization/__tests__/context-manifest.property.test.d.ts.map +0 -1
- package/dist/runtime-v2/internalization/__tests__/context-manifest.property.test.js +0 -176
- package/dist/runtime-v2/internalization/__tests__/context-manifest.property.test.js.map +0 -1
- package/dist/runtime-v2/internalization/__tests__/context-resolution.test.d.ts +0 -2
- package/dist/runtime-v2/internalization/__tests__/context-resolution.test.d.ts.map +0 -1
- package/dist/runtime-v2/internalization/__tests__/context-resolution.test.js +0 -377
- package/dist/runtime-v2/internalization/__tests__/context-resolution.test.js.map +0 -1
- package/dist/runtime-v2/internalization/__tests__/progressive-disclosure-scope-regression.test.d.ts +0 -22
- package/dist/runtime-v2/internalization/__tests__/progressive-disclosure-scope-regression.test.d.ts.map +0 -1
- package/dist/runtime-v2/internalization/__tests__/progressive-disclosure-scope-regression.test.js +0 -92
- package/dist/runtime-v2/internalization/__tests__/progressive-disclosure-scope-regression.test.js.map +0 -1
- package/dist/runtime-v2/internalization/__tests__/progressive-disclosure-spike.test.d.ts +0 -2
- package/dist/runtime-v2/internalization/__tests__/progressive-disclosure-spike.test.d.ts.map +0 -1
- package/dist/runtime-v2/internalization/__tests__/progressive-disclosure-spike.test.js +0 -1039
- package/dist/runtime-v2/internalization/__tests__/progressive-disclosure-spike.test.js.map +0 -1
- package/dist/runtime-v2/internalization/__tests__/progressive-evaluator-stage-isolation.property.test.d.ts +0 -13
- package/dist/runtime-v2/internalization/__tests__/progressive-evaluator-stage-isolation.property.test.d.ts.map +0 -1
- package/dist/runtime-v2/internalization/__tests__/progressive-evaluator-stage-isolation.property.test.js +0 -257
- package/dist/runtime-v2/internalization/__tests__/progressive-evaluator-stage-isolation.property.test.js.map +0 -1
- package/dist/runtime-v2/internalization/__tests__/progressive-evaluator.property.test.d.ts +0 -11
- package/dist/runtime-v2/internalization/__tests__/progressive-evaluator.property.test.d.ts.map +0 -1
- package/dist/runtime-v2/internalization/__tests__/progressive-evaluator.property.test.js +0 -154
- package/dist/runtime-v2/internalization/__tests__/progressive-evaluator.property.test.js.map +0 -1
- package/dist/runtime-v2/internalization/__tests__/prompt-budget-manager.property.test.d.ts +0 -12
- package/dist/runtime-v2/internalization/__tests__/prompt-budget-manager.property.test.d.ts.map +0 -1
- package/dist/runtime-v2/internalization/__tests__/prompt-budget-manager.property.test.js +0 -254
- package/dist/runtime-v2/internalization/__tests__/prompt-budget-manager.property.test.js.map +0 -1
- package/dist/runtime-v2/internalization/__tests__/resolve-injection.property.test.d.ts +0 -15
- package/dist/runtime-v2/internalization/__tests__/resolve-injection.property.test.d.ts.map +0 -1
- package/dist/runtime-v2/internalization/__tests__/resolve-injection.property.test.js +0 -150
- package/dist/runtime-v2/internalization/__tests__/resolve-injection.property.test.js.map +0 -1
- package/dist/runtime-v2/internalization/__tests__/shared-information-plane-runner.test.d.ts +0 -2
- package/dist/runtime-v2/internalization/__tests__/shared-information-plane-runner.test.d.ts.map +0 -1
- package/dist/runtime-v2/internalization/__tests__/shared-information-plane-runner.test.js +0 -773
- package/dist/runtime-v2/internalization/__tests__/shared-information-plane-runner.test.js.map +0 -1
- package/dist/runtime-v2/internalization/__tests__/summary-chain-flow.property.test.d.ts +0 -22
- package/dist/runtime-v2/internalization/__tests__/summary-chain-flow.property.test.d.ts.map +0 -1
- package/dist/runtime-v2/internalization/__tests__/summary-chain-flow.property.test.js +0 -280
- package/dist/runtime-v2/internalization/__tests__/summary-chain-flow.property.test.js.map +0 -1
- package/dist/runtime-v2/internalization/__tests__/summary-envelope-writer.property.test.d.ts +0 -25
- package/dist/runtime-v2/internalization/__tests__/summary-envelope-writer.property.test.d.ts.map +0 -1
- package/dist/runtime-v2/internalization/__tests__/summary-envelope-writer.property.test.js +0 -413
- package/dist/runtime-v2/internalization/__tests__/summary-envelope-writer.property.test.js.map +0 -1
- package/dist/runtime-v2/internalization/attach-summary-envelope.d.ts +0 -60
- package/dist/runtime-v2/internalization/attach-summary-envelope.d.ts.map +0 -1
- package/dist/runtime-v2/internalization/attach-summary-envelope.js +0 -126
- package/dist/runtime-v2/internalization/attach-summary-envelope.js.map +0 -1
- package/dist/runtime-v2/internalization/candidate-lineage.d.ts +0 -185
- package/dist/runtime-v2/internalization/candidate-lineage.d.ts.map +0 -1
- package/dist/runtime-v2/internalization/candidate-lineage.js +0 -357
- package/dist/runtime-v2/internalization/candidate-lineage.js.map +0 -1
- package/dist/runtime-v2/internalization/context-manifest.d.ts +0 -117
- package/dist/runtime-v2/internalization/context-manifest.d.ts.map +0 -1
- package/dist/runtime-v2/internalization/context-manifest.js +0 -156
- package/dist/runtime-v2/internalization/context-manifest.js.map +0 -1
- package/dist/runtime-v2/internalization/context-manifests.d.ts +0 -148
- package/dist/runtime-v2/internalization/context-manifests.d.ts.map +0 -1
- package/dist/runtime-v2/internalization/context-manifests.js +0 -323
- package/dist/runtime-v2/internalization/context-manifests.js.map +0 -1
- package/dist/runtime-v2/internalization/context-resolution.d.ts +0 -189
- package/dist/runtime-v2/internalization/context-resolution.d.ts.map +0 -1
- package/dist/runtime-v2/internalization/context-resolution.js +0 -317
- package/dist/runtime-v2/internalization/context-resolution.js.map +0 -1
- package/dist/runtime-v2/internalization/progressive-evaluator.d.ts +0 -115
- package/dist/runtime-v2/internalization/progressive-evaluator.d.ts.map +0 -1
- package/dist/runtime-v2/internalization/progressive-evaluator.js +0 -248
- package/dist/runtime-v2/internalization/progressive-evaluator.js.map +0 -1
- package/dist/runtime-v2/internalization/prompt-budget-manager.d.ts +0 -90
- package/dist/runtime-v2/internalization/prompt-budget-manager.d.ts.map +0 -1
- package/dist/runtime-v2/internalization/prompt-budget-manager.js +0 -149
- package/dist/runtime-v2/internalization/prompt-budget-manager.js.map +0 -1
- package/dist/runtime-v2/internalization/resolve-injection.d.ts +0 -62
- package/dist/runtime-v2/internalization/resolve-injection.d.ts.map +0 -1
- package/dist/runtime-v2/internalization/resolve-injection.js +0 -78
- package/dist/runtime-v2/internalization/resolve-injection.js.map +0 -1
- package/dist/runtime-v2/internalization/summary-field-reader.d.ts +0 -38
- package/dist/runtime-v2/internalization/summary-field-reader.d.ts.map +0 -1
- package/dist/runtime-v2/internalization/summary-field-reader.js +0 -108
- package/dist/runtime-v2/internalization/summary-field-reader.js.map +0 -1
- package/dist/runtime-v2/observer/__tests__/empathy-observer.real-e2e.test.d.ts +0 -2
- package/dist/runtime-v2/observer/__tests__/empathy-observer.real-e2e.test.d.ts.map +0 -1
- package/dist/runtime-v2/observer/__tests__/empathy-observer.real-e2e.test.js +0 -74
- package/dist/runtime-v2/observer/__tests__/empathy-observer.real-e2e.test.js.map +0 -1
- package/dist/runtime-v2/observer/__tests__/empathy-observer.test.d.ts +0 -2
- package/dist/runtime-v2/observer/__tests__/empathy-observer.test.d.ts.map +0 -1
- package/dist/runtime-v2/observer/__tests__/empathy-observer.test.js +0 -85
- package/dist/runtime-v2/observer/__tests__/empathy-observer.test.js.map +0 -1
- package/dist/runtime-v2/observer/empathy-observer.d.ts +0 -41
- package/dist/runtime-v2/observer/empathy-observer.d.ts.map +0 -1
- package/dist/runtime-v2/observer/empathy-observer.js +0 -104
- package/dist/runtime-v2/observer/empathy-observer.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-injection.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/resolve-injection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EACL,eAAe,GAGhB,MAAM,4BAA4B,CAAC;AAEpC,sDAAsD;AACtD,MAAM,CAAC,MAAM,+BAA+B,GAAG,GAAG,CAAC;AA8BnD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,gBAAgB,CAC9B,QAAyB,EACzB,SAAuC,EACvC,IAA2C;IAE3C,MAAM,SAAS,GAAG,eAAe,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAEvE,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAC1C,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC;IACtC,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5C,6EAA6E;IAC7E,6EAA6E;IAC7E,8DAA8D;IAC9D,MAAM,WAAW,GAAG,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAExE,MAAM,aAAa,GAAG,GAAwC,EAAE,CAAC,CAAC;QAChE,IAAI,EAAE,kCAAkC;QACxC,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,WAAW;QACX,aAAa;QACb,WAAW;QACX,QAAQ,EAAE,4BAA4B;KACvC,CAAC,CAAC;IAEH,gEAAgE;IAChE,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/C,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QACtB,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,kBAAkB,EAAE,WAAW,EAAE,CAAC;IAClG,CAAC;IACD,4EAA4E;IAC5E,sEAAsE;IACtE,qEAAqE;IACrE,MAAM,cAAc,GAClB,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACzF,IAAI,cAAc,EAAE,CAAC;QACnB,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QACtB,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,kBAAkB,EAAE,WAAW,EAAE,CAAC;IAClG,CAAC;IACD,0DAA0D;IAC1D,IAAI,WAAW,GAAG,+BAA+B,EAAE,CAAC;QAClD,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QACtB,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,uBAAuB,EAAE,WAAW,EAAE,CAAC;IACvG,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AACzD,CAAC"}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Layer 1 — summary field reader (design §6.6 read-side convention).
|
|
3
|
-
*
|
|
4
|
-
* Pure logic only (Core vs Plugin boundary). Builds the `available` map that
|
|
5
|
-
* `allocateContext` / `resolveInjection` consume, from a runner's loaded
|
|
6
|
-
* predecessor contentJson (which carries the Layer 0 `summary` /
|
|
7
|
-
* `predecessorSummary` envelope).
|
|
8
|
-
*
|
|
9
|
-
* Path convention (design §6.6):
|
|
10
|
-
* `<stage>.summary.headline` → contentJson.summary.headline
|
|
11
|
-
* `<stage>.summary.<key>` → contentJson.summary.fields[key]
|
|
12
|
-
* `<stage>.predecessorSummary.headline` → contentJson.predecessorSummary.summary.headline
|
|
13
|
-
* `<stage>.predecessorSummary.<key>` → contentJson.predecessorSummary.summary.fields[key]
|
|
14
|
-
*
|
|
15
|
-
* The leading `<stage>.` segment is a logical namespace (pain / dreamer /
|
|
16
|
-
* philosopher / scribe / artificer / diagnosis); the reader does NOT look up
|
|
17
|
-
* the stage by name — it resolves `summary.*` / `predecessorSummary.*` against
|
|
18
|
-
* whatever predecessor contentJson the caller loaded. This is correct because
|
|
19
|
-
* each runner's manifest only references paths whose stage maps to that
|
|
20
|
-
* runner's actual loaded predecessor (e.g. dreamer's manifest references
|
|
21
|
-
* pain.summary.* / diagnosis.summary.* which arrive via the diag_router
|
|
22
|
-
* predecessor's summary + its forwarded predecessorSummary).
|
|
23
|
-
*
|
|
24
|
-
* rc-1 / rc-5: contentJson is `unknown`; all reads use `Object.hasOwn` and
|
|
25
|
-
* typeof guards, never `as` casts.
|
|
26
|
-
*/
|
|
27
|
-
/** Read a value nested under `summary` or `predecessorSummary` from contentJson. */
|
|
28
|
-
export declare function readSummaryField(fieldPath: string, predecessorContentJson: unknown): unknown | undefined;
|
|
29
|
-
/**
|
|
30
|
-
* Build the `available` map for allocateContext/resolveInjection from the
|
|
31
|
-
* manifest's declared paths and a single loaded predecessor contentJson.
|
|
32
|
-
*
|
|
33
|
-
* Paths not resolvable from this predecessor (including tier2 `raw.*` and
|
|
34
|
-
* stages not represented in the loaded object) are simply omitted from the
|
|
35
|
-
* map — allocateContext then records them in `absent`.
|
|
36
|
-
*/
|
|
37
|
-
export declare function buildAvailableMap(manifestPaths: readonly string[], predecessorContentJson: unknown): ReadonlyMap<string, unknown>;
|
|
38
|
-
//# sourceMappingURL=summary-field-reader.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"summary-field-reader.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/summary-field-reader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAuCH,oFAAoF;AACpF,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,sBAAsB,EAAE,OAAO,GAC9B,OAAO,GAAG,SAAS,CA0BrB;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,aAAa,EAAE,SAAS,MAAM,EAAE,EAChC,sBAAsB,EAAE,OAAO,GAC9B,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAS9B"}
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Layer 1 — summary field reader (design §6.6 read-side convention).
|
|
3
|
-
*
|
|
4
|
-
* Pure logic only (Core vs Plugin boundary). Builds the `available` map that
|
|
5
|
-
* `allocateContext` / `resolveInjection` consume, from a runner's loaded
|
|
6
|
-
* predecessor contentJson (which carries the Layer 0 `summary` /
|
|
7
|
-
* `predecessorSummary` envelope).
|
|
8
|
-
*
|
|
9
|
-
* Path convention (design §6.6):
|
|
10
|
-
* `<stage>.summary.headline` → contentJson.summary.headline
|
|
11
|
-
* `<stage>.summary.<key>` → contentJson.summary.fields[key]
|
|
12
|
-
* `<stage>.predecessorSummary.headline` → contentJson.predecessorSummary.summary.headline
|
|
13
|
-
* `<stage>.predecessorSummary.<key>` → contentJson.predecessorSummary.summary.fields[key]
|
|
14
|
-
*
|
|
15
|
-
* The leading `<stage>.` segment is a logical namespace (pain / dreamer /
|
|
16
|
-
* philosopher / scribe / artificer / diagnosis); the reader does NOT look up
|
|
17
|
-
* the stage by name — it resolves `summary.*` / `predecessorSummary.*` against
|
|
18
|
-
* whatever predecessor contentJson the caller loaded. This is correct because
|
|
19
|
-
* each runner's manifest only references paths whose stage maps to that
|
|
20
|
-
* runner's actual loaded predecessor (e.g. dreamer's manifest references
|
|
21
|
-
* pain.summary.* / diagnosis.summary.* which arrive via the diag_router
|
|
22
|
-
* predecessor's summary + its forwarded predecessorSummary).
|
|
23
|
-
*
|
|
24
|
-
* rc-1 / rc-5: contentJson is `unknown`; all reads use `Object.hasOwn` and
|
|
25
|
-
* typeof guards, never `as` casts.
|
|
26
|
-
*/
|
|
27
|
-
function isRecord(value) {
|
|
28
|
-
return value !== null && typeof value === 'object' && !Array.isArray(value);
|
|
29
|
-
}
|
|
30
|
-
/** Read `headline` or `<key>` from contentJson.summary. */
|
|
31
|
-
function readFromSummary(contentJson, subPath) {
|
|
32
|
-
if (!isRecord(contentJson) || !Object.hasOwn(contentJson, 'summary'))
|
|
33
|
-
return undefined;
|
|
34
|
-
const { summary } = contentJson;
|
|
35
|
-
if (!isRecord(summary))
|
|
36
|
-
return undefined;
|
|
37
|
-
// subPath is a bare field key (e.g. 'riskLevel') or 'headline'. The summary
|
|
38
|
-
// envelope (Layer 0 ArtifactSummary) stores structured fields on `summary.fields`
|
|
39
|
-
// and headline on `summary.headline`. Manifest paths use `<stage>.summary.<key>`
|
|
40
|
-
// WITHOUT a `fields.` prefix (design §6.6), so read `fields.<subPath>` first,
|
|
41
|
-
// then fall back to `summary.<subPath>` (covers headline + any flat values).
|
|
42
|
-
if (subPath === 'headline') {
|
|
43
|
-
return Object.hasOwn(summary, 'headline') ? summary.headline : undefined;
|
|
44
|
-
}
|
|
45
|
-
const fields = Object.hasOwn(summary, 'fields') ? summary.fields : undefined;
|
|
46
|
-
if (isRecord(fields) && Object.hasOwn(fields, subPath)) {
|
|
47
|
-
return fields[subPath];
|
|
48
|
-
}
|
|
49
|
-
if (Object.hasOwn(summary, subPath)) {
|
|
50
|
-
return summary[subPath];
|
|
51
|
-
}
|
|
52
|
-
return undefined;
|
|
53
|
-
}
|
|
54
|
-
/** Read `headline` or `<key>` from contentJson.predecessorSummary.summary. */
|
|
55
|
-
function readFromPredecessorSummary(contentJson, subPath) {
|
|
56
|
-
if (!isRecord(contentJson) || !Object.hasOwn(contentJson, 'predecessorSummary'))
|
|
57
|
-
return undefined;
|
|
58
|
-
const { predecessorSummary: pred } = contentJson;
|
|
59
|
-
if (!isRecord(pred) || !Object.hasOwn(pred, 'summary'))
|
|
60
|
-
return undefined;
|
|
61
|
-
// Delegate to readFromSummary on the predecessorSummary's own summary.
|
|
62
|
-
return readFromSummary(pred, subPath);
|
|
63
|
-
}
|
|
64
|
-
/** Read a value nested under `summary` or `predecessorSummary` from contentJson. */
|
|
65
|
-
export function readSummaryField(fieldPath, predecessorContentJson) {
|
|
66
|
-
// Strip the leading `<stage>.` namespace segment(s). A path like
|
|
67
|
-
// `pain.summary.rootSymptom` becomes `summary.rootSymptom`; a path like
|
|
68
|
-
// `philosopher.predecessorSummary.betterDecision` becomes
|
|
69
|
-
// `predecessorSummary.betterDecision`. The namespace can be multi-segment
|
|
70
|
-
// (e.g. `dreamer.raw.candidates`), so strip everything up to and including
|
|
71
|
-
// the first occurrence of `summary.` or `predecessorSummary.` or `raw.`.
|
|
72
|
-
const summaryIdx = fieldPath.indexOf('summary.');
|
|
73
|
-
const predIdx = fieldPath.indexOf('predecessorSummary.');
|
|
74
|
-
const rawIdx = fieldPath.indexOf('raw.');
|
|
75
|
-
// tier2 raw.* paths are NOT resolvable at Layer 1 (they need Layer 2
|
|
76
|
-
// CandidateLineage). Return undefined → the path enters `absent`.
|
|
77
|
-
if (rawIdx >= 0 && (summaryIdx < 0 || rawIdx < summaryIdx) && (predIdx < 0 || rawIdx < predIdx)) {
|
|
78
|
-
return undefined;
|
|
79
|
-
}
|
|
80
|
-
if (predIdx >= 0 && (summaryIdx < 0 || predIdx < summaryIdx)) {
|
|
81
|
-
const subPath = fieldPath.slice(predIdx + 'predecessorSummary.'.length);
|
|
82
|
-
return readFromPredecessorSummary(predecessorContentJson, subPath);
|
|
83
|
-
}
|
|
84
|
-
if (summaryIdx >= 0) {
|
|
85
|
-
const subPath = fieldPath.slice(summaryIdx + 'summary.'.length);
|
|
86
|
-
return readFromSummary(predecessorContentJson, subPath);
|
|
87
|
-
}
|
|
88
|
-
return undefined;
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Build the `available` map for allocateContext/resolveInjection from the
|
|
92
|
-
* manifest's declared paths and a single loaded predecessor contentJson.
|
|
93
|
-
*
|
|
94
|
-
* Paths not resolvable from this predecessor (including tier2 `raw.*` and
|
|
95
|
-
* stages not represented in the loaded object) are simply omitted from the
|
|
96
|
-
* map — allocateContext then records them in `absent`.
|
|
97
|
-
*/
|
|
98
|
-
export function buildAvailableMap(manifestPaths, predecessorContentJson) {
|
|
99
|
-
const map = new Map();
|
|
100
|
-
for (const path of manifestPaths) {
|
|
101
|
-
const value = readSummaryField(path, predecessorContentJson);
|
|
102
|
-
if (value !== undefined) {
|
|
103
|
-
map.set(path, value);
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
return map;
|
|
107
|
-
}
|
|
108
|
-
//# sourceMappingURL=summary-field-reader.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"summary-field-reader.js","sourceRoot":"","sources":["../../../src/runtime-v2/internalization/summary-field-reader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"empathy-observer.real-e2e.test.d.ts","sourceRoot":"","sources":["../../../../src/runtime-v2/observer/__tests__/empathy-observer.real-e2e.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from 'vitest';
|
|
2
|
-
import { EmpathyObserver } from '../empathy-observer.js';
|
|
3
|
-
import { PiAiRuntimeAdapter } from '../../adapter/pi-ai-runtime-adapter.js';
|
|
4
|
-
import { TestDoubleRuntimeAdapter } from '../../adapter/test-double-runtime-adapter.js';
|
|
5
|
-
import { getLlmE2eConfig } from '../../__tests__/fixtures/llm-e2e-config.js';
|
|
6
|
-
const llmConfig = getLlmE2eConfig();
|
|
7
|
-
// Local LM Studio probe — only attempted when LLM_E2E_ENABLED=true
|
|
8
|
-
const LM_STUDIO_BASE_URL = process.env.PD_EMPATHY_BASE_URL || 'http://localhost:12341/v1';
|
|
9
|
-
describe('EmpathyObserver Real E2E & Mock Fallback', () => {
|
|
10
|
-
it('runs E2E against local LM Studio if available, otherwise falls back to stable mock validation', async () => {
|
|
11
|
-
const apiKeyEnv = 'LM_STUDIO_API_KEY';
|
|
12
|
-
// Temporary set key if absent
|
|
13
|
-
if (!process.env[apiKeyEnv]) {
|
|
14
|
-
process.env[apiKeyEnv] = 'lm-studio-dummy-key';
|
|
15
|
-
}
|
|
16
|
-
// Initialize with stable mock adapter to satisfy ESLint constraints
|
|
17
|
-
let adapter = new TestDoubleRuntimeAdapter({
|
|
18
|
-
onFetchOutput: (runId) => ({
|
|
19
|
-
runId,
|
|
20
|
-
payload: {
|
|
21
|
-
damageDetected: true,
|
|
22
|
-
severity: 'moderate',
|
|
23
|
-
confidence: 0.85,
|
|
24
|
-
reason: 'Frustration detected via stable mock fallback',
|
|
25
|
-
},
|
|
26
|
-
}),
|
|
27
|
-
});
|
|
28
|
-
let isRealLlm = false;
|
|
29
|
-
// Only probe LM Studio when LLM_E2E_ENABLED=true (same gate as other real-LLM tests)
|
|
30
|
-
if (llmConfig) {
|
|
31
|
-
try {
|
|
32
|
-
const response = await fetch(`${LM_STUDIO_BASE_URL}/models`, { method: 'GET', signal: AbortSignal.timeout(2000) });
|
|
33
|
-
if (response.ok) {
|
|
34
|
-
const provider = process.env.PD_EMPATHY_PROVIDER || 'lm-studio';
|
|
35
|
-
const model = process.env.PD_EMPATHY_MODEL || 'qwen3.6-27b-mtp';
|
|
36
|
-
adapter = new PiAiRuntimeAdapter({
|
|
37
|
-
provider,
|
|
38
|
-
model,
|
|
39
|
-
apiKeyEnv,
|
|
40
|
-
baseUrl: LM_STUDIO_BASE_URL,
|
|
41
|
-
timeoutMs: 60000,
|
|
42
|
-
});
|
|
43
|
-
isRealLlm = true;
|
|
44
|
-
console.log(`[E2E Test] LM Studio detected at ${LM_STUDIO_BASE_URL}. Running E2E test with real model: ${model}`);
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
console.log(`[E2E Test] LM Studio not running at ${LM_STUDIO_BASE_URL}. Falling back to stable mock validation.`);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
catch {
|
|
51
|
-
console.log(`[E2E Test] LM Studio not running at ${LM_STUDIO_BASE_URL}. Falling back to stable mock validation.`);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
console.log('[E2E Test] LLM_E2E_ENABLED is not true. Skipping LM Studio probe, using stable mock.');
|
|
56
|
-
}
|
|
57
|
-
const observer = new EmpathyObserver({ runtimeAdapter: adapter });
|
|
58
|
-
const result = await observer.run({ userMessage: 'I am extremely frustrated! This is not working!' });
|
|
59
|
-
// Assert structured schema shape and type bounds to tolerate LLM output variance
|
|
60
|
-
expect(typeof result.damageDetected).toBe('boolean');
|
|
61
|
-
expect(['mild', 'moderate', 'severe']).toContain(result.severity);
|
|
62
|
-
expect(result.confidence).toBeGreaterThanOrEqual(0);
|
|
63
|
-
expect(result.confidence).toBeLessThanOrEqual(1);
|
|
64
|
-
expect(typeof result.reason).toBe('string');
|
|
65
|
-
if (isRealLlm) {
|
|
66
|
-
console.log(`[E2E Test] Real LLM result:`, JSON.stringify(result, null, 2));
|
|
67
|
-
}
|
|
68
|
-
else {
|
|
69
|
-
expect(result.damageDetected).toBe(true);
|
|
70
|
-
expect(result.reason).toBe('Frustration detected via stable mock fallback');
|
|
71
|
-
}
|
|
72
|
-
}, 120000);
|
|
73
|
-
});
|
|
74
|
-
//# sourceMappingURL=empathy-observer.real-e2e.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"empathy-observer.real-e2e.test.js","sourceRoot":"","sources":["../../../../src/runtime-v2/observer/__tests__/empathy-observer.real-e2e.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,8CAA8C,CAAC;AAExF,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAE7E,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC;AAEpC,mEAAmE;AACnE,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,2BAA2B,CAAC;AAE1F,QAAQ,CAAC,0CAA0C,EAAE,GAAG,EAAE;IACxD,EAAE,CAAC,+FAA+F,EAAE,KAAK,IAAI,EAAE;QAC7G,MAAM,SAAS,GAAG,mBAAmB,CAAC;QAEtC,8BAA8B;QAC9B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,qBAAqB,CAAC;QACjD,CAAC;QAED,oEAAoE;QACpE,IAAI,OAAO,GAAqB,IAAI,wBAAwB,CAAC;YAC3D,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACzB,KAAK;gBACL,OAAO,EAAE;oBACP,cAAc,EAAE,IAAI;oBACpB,QAAQ,EAAE,UAAU;oBACpB,UAAU,EAAE,IAAI;oBAChB,MAAM,EAAE,+CAA+C;iBACxD;aACF,CAAC;SACH,CAAC,CAAC;QACH,IAAI,SAAS,GAAG,KAAK,CAAC;QAEtB,qFAAqF;QACrF,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,kBAAkB,SAAS,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACnH,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;oBAChB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,WAAW,CAAC;oBAChE,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,iBAAiB,CAAC;oBAChE,OAAO,GAAG,IAAI,kBAAkB,CAAC;wBAC/B,QAAQ;wBACR,KAAK;wBACL,SAAS;wBACT,OAAO,EAAE,kBAAkB;wBAC3B,SAAS,EAAE,KAAK;qBACjB,CAAC,CAAC;oBACH,SAAS,GAAG,IAAI,CAAC;oBACjB,OAAO,CAAC,GAAG,CAAC,oCAAoC,kBAAkB,uCAAuC,KAAK,EAAE,CAAC,CAAC;gBACpH,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,uCAAuC,kBAAkB,2CAA2C,CAAC,CAAC;gBACpH,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,GAAG,CAAC,uCAAuC,kBAAkB,2CAA2C,CAAC,CAAC;YACpH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,sFAAsF,CAAC,CAAC;QACtG,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,CAAC;QAClE,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,iDAAiD,EAAE,CAAC,CAAC;QAEtG,iFAAiF;QACjF,MAAM,CAAC,OAAO,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrD,MAAM,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAClE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;QACpD,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;QACjD,MAAM,CAAC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE5C,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9E,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC,EAAE,MAAM,CAAC,CAAC;AACb,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"empathy-observer.test.d.ts","sourceRoot":"","sources":["../../../../src/runtime-v2/observer/__tests__/empathy-observer.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from 'vitest';
|
|
2
|
-
import { EmpathyObserver } from '../empathy-observer.js';
|
|
3
|
-
import { TestDoubleRuntimeAdapter } from '../../adapter/test-double-runtime-adapter.js';
|
|
4
|
-
describe('EmpathyObserver', () => {
|
|
5
|
-
it('correctly builds prompt (role declaration moved to SYSTEM_PROMPT, PRI-633)', () => {
|
|
6
|
-
const prompt = EmpathyObserver.buildPrompt('I am frustrated');
|
|
7
|
-
expect(prompt).not.toContain('You are an empathy observer.');
|
|
8
|
-
expect(EmpathyObserver.SYSTEM_PROMPT).toBe('You are an empathy observer.');
|
|
9
|
-
expect(prompt).toContain('I am frustrated');
|
|
10
|
-
});
|
|
11
|
-
it('runs successfully with valid output', async () => {
|
|
12
|
-
const adapter = new TestDoubleRuntimeAdapter({
|
|
13
|
-
onFetchOutput: (runId) => ({
|
|
14
|
-
runId,
|
|
15
|
-
payload: {
|
|
16
|
-
damageDetected: true,
|
|
17
|
-
severity: 'moderate',
|
|
18
|
-
confidence: 0.9,
|
|
19
|
-
reason: 'Frustration detected',
|
|
20
|
-
},
|
|
21
|
-
}),
|
|
22
|
-
});
|
|
23
|
-
const observer = new EmpathyObserver({ runtimeAdapter: adapter });
|
|
24
|
-
const result = await observer.run({ userMessage: 'I am frustrated' });
|
|
25
|
-
expect(result.damageDetected).toBe(true);
|
|
26
|
-
expect(result.severity).toBe('moderate');
|
|
27
|
-
expect(result.confidence).toBe(0.9);
|
|
28
|
-
expect(result.reason).toBe('Frustration detected');
|
|
29
|
-
});
|
|
30
|
-
it('throws error when output schema validation fails', async () => {
|
|
31
|
-
const adapter = new TestDoubleRuntimeAdapter({
|
|
32
|
-
onFetchOutput: (runId) => ({
|
|
33
|
-
runId,
|
|
34
|
-
payload: {
|
|
35
|
-
damageDetected: 'not-a-boolean', // Should fail schema check
|
|
36
|
-
severity: 'unknown-severity',
|
|
37
|
-
confidence: 1.5,
|
|
38
|
-
reason: 123,
|
|
39
|
-
},
|
|
40
|
-
}),
|
|
41
|
-
});
|
|
42
|
-
const observer = new EmpathyObserver({ runtimeAdapter: adapter });
|
|
43
|
-
await expect(observer.run({ userMessage: 'I am frustrated' })).rejects.toThrow('EmpathyObserver output validation failed');
|
|
44
|
-
});
|
|
45
|
-
it('throws error when adapter run fails', async () => {
|
|
46
|
-
const adapter = new TestDoubleRuntimeAdapter({
|
|
47
|
-
onPollRun: (runId) => ({
|
|
48
|
-
runId,
|
|
49
|
-
status: 'failed',
|
|
50
|
-
startedAt: new Date().toISOString(),
|
|
51
|
-
endedAt: new Date().toISOString(),
|
|
52
|
-
reason: 'LLM crashed',
|
|
53
|
-
}),
|
|
54
|
-
});
|
|
55
|
-
const observer = new EmpathyObserver({ runtimeAdapter: adapter });
|
|
56
|
-
await expect(observer.run({ userMessage: 'I am frustrated' })).rejects.toThrow('EmpathyObserver run failed: failed');
|
|
57
|
-
});
|
|
58
|
-
it('throws error when run times out', async () => {
|
|
59
|
-
const adapter = new TestDoubleRuntimeAdapter({
|
|
60
|
-
onPollRun: (runId) => ({
|
|
61
|
-
runId,
|
|
62
|
-
status: 'running',
|
|
63
|
-
startedAt: new Date().toISOString(),
|
|
64
|
-
}),
|
|
65
|
-
});
|
|
66
|
-
const observer = new EmpathyObserver({ runtimeAdapter: adapter }, { timeoutMs: 50 });
|
|
67
|
-
await expect(observer.run({ userMessage: 'I am frustrated' })).rejects.toThrow('EmpathyObserver run timed out after 50ms');
|
|
68
|
-
});
|
|
69
|
-
it('throws error when confidence is out of range', async () => {
|
|
70
|
-
const adapter = new TestDoubleRuntimeAdapter({
|
|
71
|
-
onFetchOutput: (runId) => ({
|
|
72
|
-
runId,
|
|
73
|
-
payload: {
|
|
74
|
-
damageDetected: true,
|
|
75
|
-
severity: 'moderate',
|
|
76
|
-
confidence: 5.0,
|
|
77
|
-
reason: 'Out of range confidence',
|
|
78
|
-
},
|
|
79
|
-
}),
|
|
80
|
-
});
|
|
81
|
-
const observer = new EmpathyObserver({ runtimeAdapter: adapter });
|
|
82
|
-
await expect(observer.run({ userMessage: 'I am frustrated' })).rejects.toThrow('EmpathyObserver output validation failed');
|
|
83
|
-
});
|
|
84
|
-
});
|
|
85
|
-
//# sourceMappingURL=empathy-observer.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"empathy-observer.test.js","sourceRoot":"","sources":["../../../../src/runtime-v2/observer/__tests__/empathy-observer.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { type Static } from '@sinclair/typebox';
|
|
2
|
-
import type { PDRuntimeAdapter } from '../runtime-protocol.js';
|
|
3
|
-
export declare const EmpathyObserverInputSchema: import("@sinclair/typebox").TObject<{
|
|
4
|
-
userMessage: import("@sinclair/typebox").TString;
|
|
5
|
-
}>;
|
|
6
|
-
export type EmpathyObserverInput = Static<typeof EmpathyObserverInputSchema>;
|
|
7
|
-
export declare const EmpathyObserverOutputV1Schema: import("@sinclair/typebox").TObject<{
|
|
8
|
-
damageDetected: import("@sinclair/typebox").TBoolean;
|
|
9
|
-
severity: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"mild">, import("@sinclair/typebox").TLiteral<"moderate">, import("@sinclair/typebox").TLiteral<"severe">]>;
|
|
10
|
-
confidence: import("@sinclair/typebox").TNumber;
|
|
11
|
-
reason: import("@sinclair/typebox").TString;
|
|
12
|
-
}>;
|
|
13
|
-
export type EmpathyObserverOutputV1 = Static<typeof EmpathyObserverOutputV1Schema>;
|
|
14
|
-
export interface EmpathyObserverDeps {
|
|
15
|
-
readonly runtimeAdapter: PDRuntimeAdapter;
|
|
16
|
-
}
|
|
17
|
-
export interface EmpathyObserverOptions {
|
|
18
|
-
readonly timeoutMs?: number;
|
|
19
|
-
readonly agentId?: string;
|
|
20
|
-
}
|
|
21
|
-
export declare class EmpathyObserver {
|
|
22
|
-
/**
|
|
23
|
-
* PRI-633: base-layer system prompt (role declaration). Previously the
|
|
24
|
-
* first line of buildPrompt's message; now delivered via the system channel.
|
|
25
|
-
*/
|
|
26
|
-
static readonly SYSTEM_PROMPT = "You are an empathy observer.";
|
|
27
|
-
private readonly runtimeAdapter;
|
|
28
|
-
private readonly timeoutMs;
|
|
29
|
-
private readonly agentId;
|
|
30
|
-
constructor(deps: EmpathyObserverDeps, options?: EmpathyObserverOptions);
|
|
31
|
-
/**
|
|
32
|
-
* Builds the prompt exactly replicating the legacy empathyObserverWorkflowSpec
|
|
33
|
-
* (PRI-633: the role declaration moved to SYSTEM_PROMPT / the system channel).
|
|
34
|
-
*/
|
|
35
|
-
static buildPrompt(userMessage: string): string;
|
|
36
|
-
/**
|
|
37
|
-
* Run the simplified one-shot Empathy Observer.
|
|
38
|
-
*/
|
|
39
|
-
run(input: EmpathyObserverInput): Promise<EmpathyObserverOutputV1>;
|
|
40
|
-
}
|
|
41
|
-
//# sourceMappingURL=empathy-observer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"empathy-observer.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/observer/empathy-observer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAI/D,eAAO,MAAM,0BAA0B;;EAErC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE7E,eAAO,MAAM,6BAA6B;;;;;EASxC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAInF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,cAAc,EAAE,gBAAgB,CAAC;CAC3C;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,qBAAa,eAAe;IAC1B;;;OAGG;IACH,MAAM,CAAC,QAAQ,CAAC,aAAa,kCAAkC;IAE/D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAmB;IAClD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAEjC,YAAY,IAAI,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE,sBAAsB,EAItE;IAED;;;OAGG;IACH,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAM9C;IAED;;OAEG;IACG,GAAG,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAmEvE;CACF"}
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
import { Type } from '@sinclair/typebox';
|
|
2
|
-
// ── Schemas ──────────────────────────────────────────────────────────────────
|
|
3
|
-
export const EmpathyObserverInputSchema = Type.Object({
|
|
4
|
-
userMessage: Type.String({ minLength: 1 }),
|
|
5
|
-
});
|
|
6
|
-
export const EmpathyObserverOutputV1Schema = Type.Object({
|
|
7
|
-
damageDetected: Type.Boolean(),
|
|
8
|
-
severity: Type.Union([
|
|
9
|
-
Type.Literal('mild'),
|
|
10
|
-
Type.Literal('moderate'),
|
|
11
|
-
Type.Literal('severe'),
|
|
12
|
-
]),
|
|
13
|
-
confidence: Type.Number({ minimum: 0, maximum: 1 }),
|
|
14
|
-
reason: Type.String(),
|
|
15
|
-
});
|
|
16
|
-
export class EmpathyObserver {
|
|
17
|
-
/**
|
|
18
|
-
* PRI-633: base-layer system prompt (role declaration). Previously the
|
|
19
|
-
* first line of buildPrompt's message; now delivered via the system channel.
|
|
20
|
-
*/
|
|
21
|
-
static SYSTEM_PROMPT = 'You are an empathy observer.';
|
|
22
|
-
runtimeAdapter;
|
|
23
|
-
timeoutMs;
|
|
24
|
-
agentId;
|
|
25
|
-
constructor(deps, options) {
|
|
26
|
-
this.runtimeAdapter = deps.runtimeAdapter;
|
|
27
|
-
this.timeoutMs = options?.timeoutMs ?? 120_000;
|
|
28
|
-
this.agentId = options?.agentId ?? 'empathy-observer';
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Builds the prompt exactly replicating the legacy empathyObserverWorkflowSpec
|
|
32
|
-
* (PRI-633: the role declaration moved to SYSTEM_PROMPT / the system channel).
|
|
33
|
-
*/
|
|
34
|
-
static buildPrompt(userMessage) {
|
|
35
|
-
return [
|
|
36
|
-
'Analyze ONLY the user message and return strict JSON (no markdown):',
|
|
37
|
-
'{"damageDetected": boolean, "severity": "mild|moderate|severe", "confidence": number, "reason": string}',
|
|
38
|
-
`User message: ${JSON.stringify(userMessage.trim())}`,
|
|
39
|
-
].join('\n');
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Run the simplified one-shot Empathy Observer.
|
|
43
|
-
*/
|
|
44
|
-
async run(input) {
|
|
45
|
-
const prompt = EmpathyObserver.buildPrompt(input.userMessage);
|
|
46
|
-
// One-shot start run
|
|
47
|
-
const runHandle = await this.runtimeAdapter.startRun({
|
|
48
|
-
agentSpec: { agentId: this.agentId, schemaVersion: 'v1' },
|
|
49
|
-
taskRef: { taskId: `emp_obs_${Date.now()}` },
|
|
50
|
-
inputPayload: prompt,
|
|
51
|
-
contextItems: [],
|
|
52
|
-
outputSchemaRef: 'empathy-observer-output-v1',
|
|
53
|
-
timeoutMs: this.timeoutMs,
|
|
54
|
-
systemPrompt: EmpathyObserver.SYSTEM_PROMPT,
|
|
55
|
-
});
|
|
56
|
-
// Poll until terminal
|
|
57
|
-
const deadline = Date.now() + this.timeoutMs;
|
|
58
|
-
const pollIntervalMs = 500;
|
|
59
|
-
let terminal = false;
|
|
60
|
-
while (Date.now() < deadline) {
|
|
61
|
-
const status = await this.runtimeAdapter.pollRun(runHandle.runId);
|
|
62
|
-
if (status.status === 'succeeded') {
|
|
63
|
-
terminal = true;
|
|
64
|
-
break;
|
|
65
|
-
}
|
|
66
|
-
if (status.status === 'failed' || status.status === 'timed_out' || status.status === 'cancelled') {
|
|
67
|
-
throw new Error(`EmpathyObserver run failed: ${status.status} | reason: ${status.reason ?? 'unknown'}`);
|
|
68
|
-
}
|
|
69
|
-
await new Promise((resolve) => setTimeout(resolve, pollIntervalMs));
|
|
70
|
-
}
|
|
71
|
-
if (!terminal) {
|
|
72
|
-
let cancelReason = '';
|
|
73
|
-
try {
|
|
74
|
-
await this.runtimeAdapter.cancelRun(runHandle.runId);
|
|
75
|
-
}
|
|
76
|
-
catch (cancelErr) {
|
|
77
|
-
cancelReason = ` | cancelFailed: ${String(cancelErr)}`;
|
|
78
|
-
}
|
|
79
|
-
throw new Error(`EmpathyObserver run timed out after ${this.timeoutMs}ms${cancelReason}`);
|
|
80
|
-
}
|
|
81
|
-
// Fetch and parse output
|
|
82
|
-
const outputResult = await this.runtimeAdapter.fetchOutput(runHandle.runId);
|
|
83
|
-
if (!outputResult?.payload) {
|
|
84
|
-
throw new Error(`EmpathyObserver run yielded empty output`);
|
|
85
|
-
}
|
|
86
|
-
const payload = outputResult.payload;
|
|
87
|
-
// Strict runtime schema verification
|
|
88
|
-
if (typeof payload.damageDetected !== 'boolean' ||
|
|
89
|
-
!['mild', 'moderate', 'severe'].includes(payload.severity) ||
|
|
90
|
-
typeof payload.confidence !== 'number' ||
|
|
91
|
-
payload.confidence < 0 ||
|
|
92
|
-
payload.confidence > 1 ||
|
|
93
|
-
typeof payload.reason !== 'string') {
|
|
94
|
-
throw new Error(`EmpathyObserver output validation failed: ${JSON.stringify(payload).substring(0, 200)}`);
|
|
95
|
-
}
|
|
96
|
-
return {
|
|
97
|
-
damageDetected: payload.damageDetected,
|
|
98
|
-
severity: payload.severity,
|
|
99
|
-
confidence: payload.confidence,
|
|
100
|
-
reason: payload.reason,
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
//# sourceMappingURL=empathy-observer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"empathy-observer.js","sourceRoot":"","sources":["../../../src/runtime-v2/observer/empathy-observer.ts"],"names":[],"mappings":"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"}
|