@openwop/openwop-conformance 2.45.0 → 2.45.1
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/CHANGELOG.md +27 -0
- package/dist/spec-artifacts.lock.json +2 -2
- package/package.json +2 -2
- package/requirements.json +132 -127
- package/schemas/CORPUS-STAMP.json +9 -9
- package/src/lib/run-list-walk.ts +65 -0
- package/src/scenarios/agentConfidenceEscalation.test.ts +8 -1
- package/src/scenarios/agentMemoryCrossTenantIsolation.test.ts +8 -1
- package/src/scenarios/agentMemoryRedactionContract.test.ts +8 -1
- package/src/scenarios/agentMemoryRoundTrip.test.ts +8 -1
- package/src/scenarios/agentMemoryTtlExpiry.test.ts +8 -1
- package/src/scenarios/agentMessageReducer.test.ts +8 -1
- package/src/scenarios/agentMetadata.test.ts +8 -1
- package/src/scenarios/agentPackCatalog.test.ts +13 -5
- package/src/scenarios/agentPackExport.test.ts +8 -2
- package/src/scenarios/agentPackHandoffSchemaValidation.test.ts +17 -2
- package/src/scenarios/agentPackInstall.test.ts +8 -2
- package/src/scenarios/agentPackProvenance.test.ts +8 -1
- package/src/scenarios/agentReasoningEvents.test.ts +9 -1
- package/src/scenarios/agentReasoningStreaming.test.ts +14 -1
- package/src/scenarios/append-ordering.test.ts +7 -2
- package/src/scenarios/bulk-cancel.test.ts +11 -1
- package/src/scenarios/cap-breach.test.ts +8 -1
- package/src/scenarios/channel-ttl.test.ts +7 -1
- package/src/scenarios/conversationCapabilityNegotiation.test.ts +8 -1
- package/src/scenarios/conversationLifecycle.test.ts +8 -1
- package/src/scenarios/conversationReplayDeterminism.test.ts +8 -2
- package/src/scenarios/conversationVsLegacySuspend.test.ts +8 -1
- package/src/scenarios/cost-attribution.test.ts +17 -4
- package/src/scenarios/debugBundle.test.ts +16 -5
- package/src/scenarios/dispatch-cross-worker-handoff.test.ts +10 -2
- package/src/scenarios/dispatch-output-mapping.test.ts +20 -4
- package/src/scenarios/dispatchLoop.test.ts +7 -1
- package/src/scenarios/durability-poison-exhaustion.test.ts +7 -2
- package/src/scenarios/highConcurrency.test.ts +11 -1
- package/src/scenarios/host-callback-declaration.test.ts +10 -1
- package/src/scenarios/identity-passthrough.test.ts +7 -1
- package/src/scenarios/interrupt-approval.test.ts +25 -5
- package/src/scenarios/interrupt-auth-required-resume.test.ts +9 -3
- package/src/scenarios/interrupt-external-event-correlation.test.ts +9 -2
- package/src/scenarios/interrupt-parent-child-cascade.test.ts +10 -2
- package/src/scenarios/interrupt-quorum-resolution.test.ts +9 -2
- package/src/scenarios/interrupt-token-matrix.test.ts +11 -3
- package/src/scenarios/interruptRace.test.ts +13 -3
- package/src/scenarios/multi-agent-confidence-escalation.test.ts +14 -3
- package/src/scenarios/multi-agent-handoff-state-machine.test.ts +15 -3
- package/src/scenarios/multi-node-ordering.test.ts +7 -1
- package/src/scenarios/node-failed-payload-shape.test.ts +7 -1
- package/src/scenarios/orchestratorConservativePath.test.ts +8 -1
- package/src/scenarios/orchestratorDispatch.test.ts +9 -1
- package/src/scenarios/orchestratorTermination.test.ts +8 -1
- package/src/scenarios/owner-subject-echo.test.ts +9 -2
- package/src/scenarios/pause-resume.test.ts +19 -8
- package/src/scenarios/prompt-all-four-kinds-events.test.ts +9 -2
- package/src/scenarios/prompt-end-to-end-events.test.ts +10 -2
- package/src/scenarios/replay-fork-arbitrary.test.ts +11 -4
- package/src/scenarios/restart-during-run.test.ts +7 -1
- package/src/scenarios/secret-leakage-otel-attribute.test.ts +14 -5
- package/src/scenarios/stream-text-fixture.test.ts +8 -2
- package/src/scenarios/streamReconnect.test.ts +8 -2
- package/src/scenarios/subworkflow.test.ts +9 -1
- package/src/scenarios/v2-run-list.test.ts +14 -16
- package/src/scenarios/version-fold.test.ts +8 -2
package/requirements.json
CHANGED
|
@@ -2626,7 +2626,7 @@
|
|
|
2626
2626
|
{
|
|
2627
2627
|
"id": "openwop.it.agentConfidenceEscalation.low-confidence-agent-decided-suspends-with-reason-low-confidence-and-run-reaches",
|
|
2628
2628
|
"file": "agentConfidenceEscalation.test.ts",
|
|
2629
|
-
"line":
|
|
2629
|
+
"line": 36,
|
|
2630
2630
|
"title": "low-confidence agent.decided suspends with reason=low-confidence and run reaches waiting-approval",
|
|
2631
2631
|
"explicitId": "openwop.it.agentConfidenceEscalation.low-confidence-agent-decided-suspends-with-reason-low-confidence-and-run-reaches",
|
|
2632
2632
|
"citations": [
|
|
@@ -2639,7 +2639,7 @@
|
|
|
2639
2639
|
{
|
|
2640
2640
|
"id": "openwop.it.agentMemoryCrossTenantIsolation.cross-tenant-memoryref-returns-empty-null-no-leak-across-tenant-boundary",
|
|
2641
2641
|
"file": "agentMemoryCrossTenantIsolation.test.ts",
|
|
2642
|
-
"line":
|
|
2642
|
+
"line": 35,
|
|
2643
2643
|
"title": "cross-tenant memoryRef returns empty / null — no leak across tenant boundary",
|
|
2644
2644
|
"explicitId": "openwop.it.agentMemoryCrossTenantIsolation.cross-tenant-memoryref-returns-empty-null-no-leak-across-tenant-boundary",
|
|
2645
2645
|
"citations": [
|
|
@@ -2669,7 +2669,7 @@
|
|
|
2669
2669
|
{
|
|
2670
2670
|
"id": "openwop.it.agentMemoryRedactionContract.byok-plaintext-is-redacted-to-redacted-secretid-at-the-read-surface",
|
|
2671
2671
|
"file": "agentMemoryRedactionContract.test.ts",
|
|
2672
|
-
"line":
|
|
2672
|
+
"line": 35,
|
|
2673
2673
|
"title": "BYOK plaintext is redacted to [REDACTED:<secretId>] at the read surface",
|
|
2674
2674
|
"explicitId": "openwop.it.agentMemoryRedactionContract.byok-plaintext-is-redacted-to-redacted-secretid-at-the-read-surface",
|
|
2675
2675
|
"citations": [
|
|
@@ -2682,7 +2682,7 @@
|
|
|
2682
2682
|
{
|
|
2683
2683
|
"id": "openwop.it.agentMemoryRoundTrip.memory-entries-written-during-a-run-are-readable-via-the-resolved-memoryref",
|
|
2684
2684
|
"file": "agentMemoryRoundTrip.test.ts",
|
|
2685
|
-
"line":
|
|
2685
|
+
"line": 34,
|
|
2686
2686
|
"title": "memory entries written during a run are readable via the resolved memoryRef",
|
|
2687
2687
|
"explicitId": "openwop.it.agentMemoryRoundTrip.memory-entries-written-during-a-run-are-readable-via-the-resolved-memoryref",
|
|
2688
2688
|
"citations": [
|
|
@@ -2695,7 +2695,7 @@
|
|
|
2695
2695
|
{
|
|
2696
2696
|
"id": "openwop.it.agentMemoryTtlExpiry.list-excludes-entries-whose-expiresat-is-in-the-past",
|
|
2697
2697
|
"file": "agentMemoryTtlExpiry.test.ts",
|
|
2698
|
-
"line":
|
|
2698
|
+
"line": 33,
|
|
2699
2699
|
"title": "list() excludes entries whose expiresAt is in the past",
|
|
2700
2700
|
"explicitId": "openwop.it.agentMemoryTtlExpiry.list-excludes-entries-whose-expiresat-is-in-the-past",
|
|
2701
2701
|
"citations": [
|
|
@@ -2718,7 +2718,7 @@
|
|
|
2718
2718
|
{
|
|
2719
2719
|
"id": "openwop.it.agentMessageReducer.duplicate-messageid-emissions-fold-to-a-single-channel-entry",
|
|
2720
2720
|
"file": "agentMessageReducer.test.ts",
|
|
2721
|
-
"line":
|
|
2721
|
+
"line": 38,
|
|
2722
2722
|
"title": "duplicate messageId emissions fold to a single channel entry",
|
|
2723
2723
|
"explicitId": "openwop.it.agentMessageReducer.duplicate-messageid-emissions-fold-to-a-single-channel-entry",
|
|
2724
2724
|
"citations": [
|
|
@@ -2731,7 +2731,7 @@
|
|
|
2731
2731
|
{
|
|
2732
2732
|
"id": "openwop.it.agentMetadata.host-populates-agentref-shaped-agent-identity-on-runsnapshot",
|
|
2733
2733
|
"file": "agentMetadata.test.ts",
|
|
2734
|
-
"line":
|
|
2734
|
+
"line": 38,
|
|
2735
2735
|
"title": "host populates AgentRef-shaped agent identity on RunSnapshot",
|
|
2736
2736
|
"explicitId": "openwop.it.agentMetadata.host-populates-agentref-shaped-agent-identity-on-runsnapshot",
|
|
2737
2737
|
"citations": [
|
|
@@ -2744,7 +2744,7 @@
|
|
|
2744
2744
|
{
|
|
2745
2745
|
"id": "openwop.it.agentPackCatalog.host-pack-list-includes-deep-research-with-a-well-formed-agentmanifest",
|
|
2746
2746
|
"file": "agentPackCatalog.test.ts",
|
|
2747
|
-
"line":
|
|
2747
|
+
"line": 140,
|
|
2748
2748
|
"title": "host pack-list includes deep-research with a well-formed AgentManifest",
|
|
2749
2749
|
"explicitId": "openwop.it.agentPackCatalog.host-pack-list-includes-deep-research-with-a-well-formed-agentmanifest",
|
|
2750
2750
|
"citations": [
|
|
@@ -2769,7 +2769,7 @@
|
|
|
2769
2769
|
{
|
|
2770
2770
|
"id": "openwop.it.agentPackCatalog.host-pack-list-includes-react-with-a-well-formed-agentmanifest",
|
|
2771
2771
|
"file": "agentPackCatalog.test.ts",
|
|
2772
|
-
"line":
|
|
2772
|
+
"line": 165,
|
|
2773
2773
|
"title": "host pack-list includes react with a well-formed AgentManifest",
|
|
2774
2774
|
"explicitId": "openwop.it.agentPackCatalog.host-pack-list-includes-react-with-a-well-formed-agentmanifest",
|
|
2775
2775
|
"citations": [
|
|
@@ -2794,7 +2794,7 @@
|
|
|
2794
2794
|
{
|
|
2795
2795
|
"id": "openwop.it.agentPackCatalog.host-pack-list-includes-supervisor-with-a-well-formed-agentmanifest",
|
|
2796
2796
|
"file": "agentPackCatalog.test.ts",
|
|
2797
|
-
"line":
|
|
2797
|
+
"line": 183,
|
|
2798
2798
|
"title": "host pack-list includes supervisor with a well-formed AgentManifest",
|
|
2799
2799
|
"explicitId": "openwop.it.agentPackCatalog.host-pack-list-includes-supervisor-with-a-well-formed-agentmanifest",
|
|
2800
2800
|
"citations": [
|
|
@@ -2816,7 +2816,7 @@
|
|
|
2816
2816
|
{
|
|
2817
2817
|
"id": "openwop.it.agentPackCatalog.all-three-2026-05-17-reference-agent-packs-are-catalog-reachable",
|
|
2818
2818
|
"file": "agentPackCatalog.test.ts",
|
|
2819
|
-
"line":
|
|
2819
|
+
"line": 205,
|
|
2820
2820
|
"title": "all three 2026-05-17 reference agent packs are catalog-reachable",
|
|
2821
2821
|
"explicitId": "openwop.it.agentPackCatalog.all-three-2026-05-17-reference-agent-packs-are-catalog-reachable",
|
|
2822
2822
|
"citations": [
|
|
@@ -2829,7 +2829,7 @@
|
|
|
2829
2829
|
{
|
|
2830
2830
|
"id": "openwop.it.agentPackExport.exported-manifests-contain-required-agentmanifest-fields",
|
|
2831
2831
|
"file": "agentPackExport.test.ts",
|
|
2832
|
-
"line":
|
|
2832
|
+
"line": 58,
|
|
2833
2833
|
"title": "exported manifests contain required AgentManifest fields",
|
|
2834
2834
|
"explicitId": "openwop.it.agentPackExport.exported-manifests-contain-required-agentmanifest-fields",
|
|
2835
2835
|
"citations": [
|
|
@@ -2847,7 +2847,7 @@
|
|
|
2847
2847
|
{
|
|
2848
2848
|
"id": "openwop.it.agentPackHandoffSchemaValidation.hv-1a-valid-task-payload-that-matches-taskschemaref-is-dispatched-and-completes",
|
|
2849
2849
|
"file": "agentPackHandoffSchemaValidation.test.ts",
|
|
2850
|
-
"line":
|
|
2850
|
+
"line": 81,
|
|
2851
2851
|
"title": "HV-1a: valid task payload that matches taskSchemaRef is dispatched and completes",
|
|
2852
2852
|
"explicitId": "openwop.it.agentPackHandoffSchemaValidation.hv-1a-valid-task-payload-that-matches-taskschemaref-is-dispatched-and-completes",
|
|
2853
2853
|
"citations": [
|
|
@@ -2860,7 +2860,7 @@
|
|
|
2860
2860
|
{
|
|
2861
2861
|
"id": "openwop.it.agentPackHandoffSchemaValidation.hv-1b-invalid-task-payload-missing-required-field-fails-before-dispatch-with-a-s",
|
|
2862
2862
|
"file": "agentPackHandoffSchemaValidation.test.ts",
|
|
2863
|
-
"line":
|
|
2863
|
+
"line": 103,
|
|
2864
2864
|
"title": "HV-1b: invalid task payload (missing required field) fails before dispatch with a structured violation",
|
|
2865
2865
|
"explicitId": "openwop.it.agentPackHandoffSchemaValidation.hv-1b-invalid-task-payload-missing-required-field-fails-before-dispatch-with-a-s",
|
|
2866
2866
|
"citations": [
|
|
@@ -2877,7 +2877,7 @@
|
|
|
2877
2877
|
{
|
|
2878
2878
|
"id": "openwop.it.agentPackHandoffSchemaValidation.hv-1c-agent-return-payload-that-fails-returnschemaref-surfaces-a-structured-viol",
|
|
2879
2879
|
"file": "agentPackHandoffSchemaValidation.test.ts",
|
|
2880
|
-
"line":
|
|
2880
|
+
"line": 136,
|
|
2881
2881
|
"title": "HV-1c: agent return payload that fails returnSchemaRef surfaces a structured violation before persistence",
|
|
2882
2882
|
"explicitId": "openwop.it.agentPackHandoffSchemaValidation.hv-1c-agent-return-payload-that-fails-returnschemaref-surfaces-a-structured-viol",
|
|
2883
2883
|
"citations": [
|
|
@@ -2890,7 +2890,7 @@
|
|
|
2890
2890
|
{
|
|
2891
2891
|
"id": "openwop.it.agentPackInstall.host-exposes-installed-agent-manifests-with-required-agentmanifest-fields",
|
|
2892
2892
|
"file": "agentPackInstall.test.ts",
|
|
2893
|
-
"line":
|
|
2893
|
+
"line": 59,
|
|
2894
2894
|
"title": "host exposes installed agent manifests with required AgentManifest fields",
|
|
2895
2895
|
"explicitId": "openwop.it.agentPackInstall.host-exposes-installed-agent-manifests-with-required-agentmanifest-fields",
|
|
2896
2896
|
"citations": [
|
|
@@ -2908,7 +2908,7 @@
|
|
|
2908
2908
|
{
|
|
2909
2909
|
"id": "openwop.it.agentPackProvenance.run-level-agentref-carries-sourcemanifestid-pointing-back-to-the-install-source",
|
|
2910
2910
|
"file": "agentPackProvenance.test.ts",
|
|
2911
|
-
"line":
|
|
2911
|
+
"line": 35,
|
|
2912
2912
|
"title": "run-level AgentRef carries sourceManifestId pointing back to the install source",
|
|
2913
2913
|
"explicitId": "openwop.it.agentPackProvenance.run-level-agentref-carries-sourcemanifestid-pointing-back-to-the-install-source",
|
|
2914
2914
|
"citations": [
|
|
@@ -2921,7 +2921,7 @@
|
|
|
2921
2921
|
{
|
|
2922
2922
|
"id": "openwop.it.agentReasoningEvents.host-emits-at-least-one-canonical-agent-event-during-a-reasoning-fixture-run",
|
|
2923
2923
|
"file": "agentReasoningEvents.test.ts",
|
|
2924
|
-
"line":
|
|
2924
|
+
"line": 49,
|
|
2925
2925
|
"title": "host emits at least one canonical agent.* event during a reasoning-fixture run",
|
|
2926
2926
|
"explicitId": "openwop.it.agentReasoningEvents.host-emits-at-least-one-canonical-agent-event-during-a-reasoning-fixture-run",
|
|
2927
2927
|
"citations": [
|
|
@@ -2949,7 +2949,7 @@
|
|
|
2949
2949
|
{
|
|
2950
2950
|
"id": "openwop.it.agentReasoningStreaming.emits-n-agent-reasoning-delta-events-followed-by-exactly-one-closing-agent-reaso",
|
|
2951
2951
|
"file": "agentReasoningStreaming.test.ts",
|
|
2952
|
-
"line":
|
|
2952
|
+
"line": 60,
|
|
2953
2953
|
"title": "emits N agent.reasoning.delta events followed by exactly one closing agent.reasoned",
|
|
2954
2954
|
"explicitId": "openwop.it.agentReasoningStreaming.emits-n-agent-reasoning-delta-events-followed-by-exactly-one-closing-agent-reaso",
|
|
2955
2955
|
"citations": [
|
|
@@ -2966,7 +2966,7 @@
|
|
|
2966
2966
|
{
|
|
2967
2967
|
"id": "openwop.it.agentReasoningStreaming.agent-reasoning-delta-sequence-starts-at-0-and-increments-by-1-within-the-block",
|
|
2968
2968
|
"file": "agentReasoningStreaming.test.ts",
|
|
2969
|
-
"line":
|
|
2969
|
+
"line": 91,
|
|
2970
2970
|
"title": "agent.reasoning.delta `sequence` starts at 0 and increments by 1 within the block",
|
|
2971
2971
|
"explicitId": "openwop.it.agentReasoningStreaming.agent-reasoning-delta-sequence-starts-at-0-and-increments-by-1-within-the-block",
|
|
2972
2972
|
"citations": [
|
|
@@ -2979,7 +2979,7 @@
|
|
|
2979
2979
|
{
|
|
2980
2980
|
"id": "openwop.it.agentReasoningStreaming.closing-agent-reasoned-reasoning-is-the-concatenation-of-the-deltas-authoritativ",
|
|
2981
2981
|
"file": "agentReasoningStreaming.test.ts",
|
|
2982
|
-
"line":
|
|
2982
|
+
"line": 116,
|
|
2983
2983
|
"title": "closing agent.reasoned.reasoning is the concatenation of the deltas (authoritative)",
|
|
2984
2984
|
"explicitId": "openwop.it.agentReasoningStreaming.closing-agent-reasoned-reasoning-is-the-concatenation-of-the-deltas-authoritativ",
|
|
2985
2985
|
"citations": [
|
|
@@ -3000,7 +3000,7 @@
|
|
|
3000
3000
|
{
|
|
3001
3001
|
"id": "openwop.it.agentReasoningStreaming.agentid-is-consistent-across-all-streaming-closing-events-in-a-block",
|
|
3002
3002
|
"file": "agentReasoningStreaming.test.ts",
|
|
3003
|
-
"line":
|
|
3003
|
+
"line": 143,
|
|
3004
3004
|
"title": "agentId is consistent across all streaming + closing events in a block",
|
|
3005
3005
|
"explicitId": "openwop.it.agentReasoningStreaming.agentid-is-consistent-across-all-streaming-closing-events-in-a-block",
|
|
3006
3006
|
"citations": [
|
|
@@ -3013,7 +3013,7 @@
|
|
|
3013
3013
|
{
|
|
3014
3014
|
"id": "openwop.it.agentReasoningStreaming.all-agent-reasoning-delta-events-arrive-before-the-closing-agent-reasoned",
|
|
3015
3015
|
"file": "agentReasoningStreaming.test.ts",
|
|
3016
|
-
"line":
|
|
3016
|
+
"line": 172,
|
|
3017
3017
|
"title": "all agent.reasoning.delta events arrive BEFORE the closing agent.reasoned",
|
|
3018
3018
|
"explicitId": "openwop.it.agentReasoningStreaming.all-agent-reasoning-delta-events-arrive-before-the-closing-agent-reasoned",
|
|
3019
3019
|
"citations": [
|
|
@@ -4892,7 +4892,7 @@
|
|
|
4892
4892
|
{
|
|
4893
4893
|
"id": "openwop.it.append-ordering.append-reducer-channels-project-entries-in-event-sequence-order",
|
|
4894
4894
|
"file": "append-ordering.test.ts",
|
|
4895
|
-
"line":
|
|
4895
|
+
"line": 54,
|
|
4896
4896
|
"title": "append-reducer channels project entries in event-sequence order",
|
|
4897
4897
|
"explicitId": "openwop.it.append-ordering.append-reducer-channels-project-entries-in-event-sequence-order",
|
|
4898
4898
|
"citations": [
|
|
@@ -6710,7 +6710,7 @@
|
|
|
6710
6710
|
{
|
|
6711
6711
|
"id": "openwop.it.bulk-cancel.mixed-outcome-request-returns-per-id-results-in-order",
|
|
6712
6712
|
"file": "bulk-cancel.test.ts",
|
|
6713
|
-
"line":
|
|
6713
|
+
"line": 44,
|
|
6714
6714
|
"title": "mixed-outcome request returns per-id results in order",
|
|
6715
6715
|
"explicitId": "openwop.it.bulk-cancel.mixed-outcome-request-returns-per-id-results-in-order",
|
|
6716
6716
|
"citations": [
|
|
@@ -6739,7 +6739,7 @@
|
|
|
6739
6739
|
{
|
|
6740
6740
|
"id": "openwop.it.bulk-cancel.empty-runids-array-returns-400-validation-error",
|
|
6741
6741
|
"file": "bulk-cancel.test.ts",
|
|
6742
|
-
"line":
|
|
6742
|
+
"line": 80,
|
|
6743
6743
|
"title": "empty runIds array returns 400 validation_error",
|
|
6744
6744
|
"explicitId": "openwop.it.bulk-cancel.empty-runids-array-returns-400-validation-error",
|
|
6745
6745
|
"citations": [
|
|
@@ -6752,7 +6752,7 @@
|
|
|
6752
6752
|
{
|
|
6753
6753
|
"id": "openwop.it.bulk-cancel.oversized-runids-array-returns-400-with-details-maxrunids",
|
|
6754
6754
|
"file": "bulk-cancel.test.ts",
|
|
6755
|
-
"line":
|
|
6755
|
+
"line": 88,
|
|
6756
6756
|
"title": "oversized runIds array returns 400 with details.maxRunIds",
|
|
6757
6757
|
"explicitId": "openwop.it.bulk-cancel.oversized-runids-array-returns-400-with-details-maxrunids",
|
|
6758
6758
|
"citations": [
|
|
@@ -6765,7 +6765,7 @@
|
|
|
6765
6765
|
{
|
|
6766
6766
|
"id": "openwop.it.bulk-cancel.re-bulk-cancel-after-first-cancel-is-idempotent",
|
|
6767
6767
|
"file": "bulk-cancel.test.ts",
|
|
6768
|
-
"line":
|
|
6768
|
+
"line": 103,
|
|
6769
6769
|
"title": "re-bulk-cancel after first cancel is idempotent",
|
|
6770
6770
|
"explicitId": "openwop.it.bulk-cancel.re-bulk-cancel-after-first-cancel-is-idempotent",
|
|
6771
6771
|
"citations": [
|
|
@@ -7015,7 +7015,7 @@
|
|
|
7015
7015
|
{
|
|
7016
7016
|
"id": "openwop.it.cap-breach.emits-cap-breached-transitions-to-terminal-failed-when-configurable-recursionlim",
|
|
7017
7017
|
"file": "cap-breach.test.ts",
|
|
7018
|
-
"line":
|
|
7018
|
+
"line": 46,
|
|
7019
7019
|
"title": "emits cap.breached + transitions to terminal failed when configurable.recursionLimit is exceeded",
|
|
7020
7020
|
"explicitId": "openwop.it.cap-breach.emits-cap-breached-transitions-to-terminal-failed-when-configurable-recursionlim",
|
|
7021
7021
|
"citations": [
|
|
@@ -7060,7 +7060,7 @@
|
|
|
7060
7060
|
{
|
|
7061
7061
|
"id": "openwop.it.cap-breach.cap-breached-precedes-run-failed-in-the-event-sequence-breach-detected-before-ov",
|
|
7062
7062
|
"file": "cap-breach.test.ts",
|
|
7063
|
-
"line":
|
|
7063
|
+
"line": 114,
|
|
7064
7064
|
"title": "cap.breached precedes run.failed in the event sequence (breach detected before over-limit node fires)",
|
|
7065
7065
|
"explicitId": "openwop.it.cap-breach.cap-breached-precedes-run-failed-in-the-event-sequence-breach-detected-before-ov",
|
|
7066
7066
|
"citations": [
|
|
@@ -8228,7 +8228,7 @@
|
|
|
8228
8228
|
{
|
|
8229
8229
|
"id": "openwop.it.channel-ttl.after-the-post-ttl-write-the-channel-contains-exactly-one-entry-with-value-d",
|
|
8230
8230
|
"file": "channel-ttl.test.ts",
|
|
8231
|
-
"line":
|
|
8231
|
+
"line": 41,
|
|
8232
8232
|
"title": "after the post-TTL write, the channel contains exactly one entry with value \"d\"",
|
|
8233
8233
|
"explicitId": "openwop.it.channel-ttl.after-the-post-ttl-write-the-channel-contains-exactly-one-entry-with-value-d",
|
|
8234
8234
|
"citations": [
|
|
@@ -9711,7 +9711,7 @@
|
|
|
9711
9711
|
{
|
|
9712
9712
|
"id": "openwop.it.conversationCapabilityNegotiation.host-without-conversationprimitive-capability-refuses-conversation-bearing-workf",
|
|
9713
9713
|
"file": "conversationCapabilityNegotiation.test.ts",
|
|
9714
|
-
"line":
|
|
9714
|
+
"line": 38,
|
|
9715
9715
|
"title": "host without conversationPrimitive capability refuses conversation-bearing workflow",
|
|
9716
9716
|
"explicitId": "openwop.it.conversationCapabilityNegotiation.host-without-conversationprimitive-capability-refuses-conversation-bearing-workf",
|
|
9717
9717
|
"citations": [
|
|
@@ -9724,7 +9724,7 @@
|
|
|
9724
9724
|
{
|
|
9725
9725
|
"id": "openwop.it.conversationLifecycle.emits-all-three-lifecycle-events-with-matching-conversationid-no-exchanges-after",
|
|
9726
9726
|
"file": "conversationLifecycle.test.ts",
|
|
9727
|
-
"line":
|
|
9727
|
+
"line": 37,
|
|
9728
9728
|
"title": "emits all three lifecycle events with matching conversationId; no exchanges after close",
|
|
9729
9729
|
"explicitId": "openwop.it.conversationLifecycle.emits-all-three-lifecycle-events-with-matching-conversationid-no-exchanges-after",
|
|
9730
9730
|
"citations": [
|
|
@@ -9750,7 +9750,7 @@
|
|
|
9750
9750
|
{
|
|
9751
9751
|
"id": "openwop.it.conversationReplayDeterminism.forked-run-yields-byte-equal-conversation-channel-projection",
|
|
9752
9752
|
"file": "conversationReplayDeterminism.test.ts",
|
|
9753
|
-
"line":
|
|
9753
|
+
"line": 35,
|
|
9754
9754
|
"title": "forked run yields byte-equal conversation channel projection",
|
|
9755
9755
|
"explicitId": "openwop.it.conversationReplayDeterminism.forked-run-yields-byte-equal-conversation-channel-projection",
|
|
9756
9756
|
"citations": [
|
|
@@ -9775,7 +9775,7 @@
|
|
|
9775
9775
|
{
|
|
9776
9776
|
"id": "openwop.it.conversationVsLegacySuspend.conversation-suspend-emits-conversation-events-not-clarification",
|
|
9777
9777
|
"file": "conversationVsLegacySuspend.test.ts",
|
|
9778
|
-
"line":
|
|
9778
|
+
"line": 35,
|
|
9779
9779
|
"title": "conversation suspend emits conversation.* events, not clarification.*",
|
|
9780
9780
|
"explicitId": "openwop.it.conversationVsLegacySuspend.conversation-suspend-emits-conversation-events-not-clarification",
|
|
9781
9781
|
"citations": [
|
|
@@ -9870,7 +9870,7 @@
|
|
|
9870
9870
|
{
|
|
9871
9871
|
"id": "openwop.it.cost-attribution.on-any-run-if-metrics-openwopcost-is-present-its-shape-must-match-the-spec",
|
|
9872
9872
|
"file": "cost-attribution.test.ts",
|
|
9873
|
-
"line":
|
|
9873
|
+
"line": 87,
|
|
9874
9874
|
"title": "on any run, IF metrics.openwopCost is present, its shape MUST match the spec",
|
|
9875
9875
|
"explicitId": "openwop.it.cost-attribution.on-any-run-if-metrics-openwopcost-is-present-its-shape-must-match-the-spec",
|
|
9876
9876
|
"citations": [
|
|
@@ -9895,7 +9895,7 @@
|
|
|
9895
9895
|
{
|
|
9896
9896
|
"id": "openwop.it.cost-attribution.metrics-openwopcost-must-carry-the-canary-cost-shape-after-the-fixture-node-runs",
|
|
9897
9897
|
"file": "cost-attribution.test.ts",
|
|
9898
|
-
"line":
|
|
9898
|
+
"line": 145,
|
|
9899
9899
|
"title": "metrics.openwopCost MUST carry the canary cost shape after the fixture node runs",
|
|
9900
9900
|
"explicitId": "openwop.it.cost-attribution.metrics-openwopcost-must-carry-the-canary-cost-shape-after-the-fixture-node-runs",
|
|
9901
9901
|
"citations": [
|
|
@@ -9936,7 +9936,7 @@
|
|
|
9936
9936
|
{
|
|
9937
9937
|
"id": "openwop.it.cost-attribution.cost-emit-fixture-run-must-emit-a-node-completed-event-for-the-cost-emitting-nod",
|
|
9938
9938
|
"file": "cost-attribution.test.ts",
|
|
9939
|
-
"line":
|
|
9939
|
+
"line": 233,
|
|
9940
9940
|
"title": "cost-emit fixture run MUST emit a node.completed event for the cost-emitting node",
|
|
9941
9941
|
"explicitId": "openwop.it.cost-attribution.cost-emit-fixture-run-must-emit-a-node-completed-event-for-the-cost-emitting-nod",
|
|
9942
9942
|
"citations": [
|
|
@@ -9949,7 +9949,7 @@
|
|
|
9949
9949
|
{
|
|
9950
9950
|
"id": "openwop.it.cost-attribution.only-allowlisted-openwop-cost-attributes-reach-the-otel-span-g6-close-criteria-a",
|
|
9951
9951
|
"file": "cost-attribution.test.ts",
|
|
9952
|
-
"line":
|
|
9952
|
+
"line": 273,
|
|
9953
9953
|
"title": "only allowlisted openwop.cost.* attributes reach the OTel span (G6 close criteria — allowlist enforcement)",
|
|
9954
9954
|
"explicitId": "openwop.it.cost-attribution.only-allowlisted-openwop-cost-attributes-reach-the-otel-span-g6-close-criteria-a",
|
|
9955
9955
|
"citations": [
|
|
@@ -9966,7 +9966,7 @@
|
|
|
9966
9966
|
{
|
|
9967
9967
|
"id": "openwop.it.cost-attribution.credential-shaped-canaries-do-not-leak-to-any-otel-attribute-g6-close-criteria-r",
|
|
9968
9968
|
"file": "cost-attribution.test.ts",
|
|
9969
|
-
"line":
|
|
9969
|
+
"line": 313,
|
|
9970
9970
|
"title": "credential-shaped canaries do NOT leak to any OTel attribute (G6 close criteria — redaction)",
|
|
9971
9971
|
"explicitId": "openwop.it.cost-attribution.credential-shaped-canaries-do-not-leak-to-any-otel-attribute-g6-close-criteria-r",
|
|
9972
9972
|
"citations": [
|
|
@@ -10451,7 +10451,7 @@
|
|
|
10451
10451
|
{
|
|
10452
10452
|
"id": "openwop.it.debugBundle.host-advertising-capabilities-debugbundle-supported-returns-200-with-valid-bundl",
|
|
10453
10453
|
"file": "debugBundle.test.ts",
|
|
10454
|
-
"line":
|
|
10454
|
+
"line": 77,
|
|
10455
10455
|
"title": "host advertising capabilities.debugBundle.supported returns 200 with valid bundle",
|
|
10456
10456
|
"explicitId": "openwop.it.debugBundle.host-advertising-capabilities-debugbundle-supported-returns-200-with-valid-bundl",
|
|
10457
10457
|
"citations": [
|
|
@@ -10500,7 +10500,7 @@
|
|
|
10500
10500
|
{
|
|
10501
10501
|
"id": "openwop.it.debugBundle.hosts-not-advertising-debugbundle-return-404-on-the-endpoint",
|
|
10502
10502
|
"file": "debugBundle.test.ts",
|
|
10503
|
-
"line":
|
|
10503
|
+
"line": 132,
|
|
10504
10504
|
"title": "hosts not advertising debugBundle return 404 on the endpoint",
|
|
10505
10505
|
"explicitId": "openwop.it.debugBundle.hosts-not-advertising-debugbundle-return-404-on-the-endpoint",
|
|
10506
10506
|
"citations": [
|
|
@@ -10513,7 +10513,7 @@
|
|
|
10513
10513
|
{
|
|
10514
10514
|
"id": "openwop.it.debugBundle.metrics-eventcount-equals-events-length",
|
|
10515
10515
|
"file": "debugBundle.test.ts",
|
|
10516
|
-
"line":
|
|
10516
|
+
"line": 147,
|
|
10517
10517
|
"title": "metrics.eventCount equals events.length",
|
|
10518
10518
|
"explicitId": "openwop.it.debugBundle.metrics-eventcount-equals-events-length",
|
|
10519
10519
|
"citations": [
|
|
@@ -10526,7 +10526,7 @@
|
|
|
10526
10526
|
{
|
|
10527
10527
|
"id": "openwop.it.debugBundle.redactionapplied-true-is-incompatible-with-redactionmode-passthrough",
|
|
10528
10528
|
"file": "debugBundle.test.ts",
|
|
10529
|
-
"line":
|
|
10529
|
+
"line": 168,
|
|
10530
10530
|
"title": "redactionApplied=true is incompatible with redactionMode=passthrough",
|
|
10531
10531
|
"explicitId": "openwop.it.debugBundle.redactionapplied-true-is-incompatible-with-redactionmode-passthrough",
|
|
10532
10532
|
"citations": [
|
|
@@ -10539,7 +10539,7 @@
|
|
|
10539
10539
|
{
|
|
10540
10540
|
"id": "openwop.it.debugBundle.bundle-events-agree-with-events-poll-for-the-same-run",
|
|
10541
10541
|
"file": "debugBundle.test.ts",
|
|
10542
|
-
"line":
|
|
10542
|
+
"line": 189,
|
|
10543
10543
|
"title": "bundle events agree with /events/poll for the same run",
|
|
10544
10544
|
"explicitId": "openwop.it.debugBundle.bundle-events-agree-with-events-poll-for-the-same-run",
|
|
10545
10545
|
"citations": [
|
|
@@ -10552,7 +10552,7 @@
|
|
|
10552
10552
|
{
|
|
10553
10553
|
"id": "openwop.it.debugBundle.canary-in-workflow-inputs-must-not-appear-verbatim-in-the-bundle-response",
|
|
10554
10554
|
"file": "debugBundle.test.ts",
|
|
10555
|
-
"line":
|
|
10555
|
+
"line": 215,
|
|
10556
10556
|
"title": "canary in workflow inputs MUST NOT appear verbatim in the bundle response",
|
|
10557
10557
|
"explicitId": "openwop.it.debugBundle.canary-in-workflow-inputs-must-not-appear-verbatim-in-the-bundle-response",
|
|
10558
10558
|
"citations": [
|
|
@@ -10569,7 +10569,7 @@
|
|
|
10569
10569
|
{
|
|
10570
10570
|
"id": "openwop.it.debugBundle.span-traceid-kind-status-have-the-rfc-0207-shape-and-the-run-span-joins-the-call",
|
|
10571
10571
|
"file": "debugBundle.test.ts",
|
|
10572
|
-
"line":
|
|
10572
|
+
"line": 250,
|
|
10573
10573
|
"title": "span traceId / kind / status have the RFC 0207 shape and the run span joins the caller trace",
|
|
10574
10574
|
"explicitId": null,
|
|
10575
10575
|
"citations": [
|
|
@@ -10843,7 +10843,7 @@
|
|
|
10843
10843
|
{
|
|
10844
10844
|
"id": "openwop.it.dispatch-cross-worker-handoff.hvmap-1c-child-a-writes-via-perworkeroutputmappings-child-b-reads-via-perworkeri",
|
|
10845
10845
|
"file": "dispatch-cross-worker-handoff.test.ts",
|
|
10846
|
-
"line":
|
|
10846
|
+
"line": 58,
|
|
10847
10847
|
"title": "HVMAP-1c: child-a writes via perWorkerOutputMappings; child-b reads via perWorkerInputMappings; shared parent bag is the handoff channel",
|
|
10848
10848
|
"explicitId": "openwop.it.dispatch-cross-worker-handoff.hvmap-1c-child-a-writes-via-perworkeroutputmappings-child-b-reads-via-perworkeri",
|
|
10849
10849
|
"citations": [
|
|
@@ -10868,7 +10868,7 @@
|
|
|
10868
10868
|
{
|
|
10869
10869
|
"id": "openwop.it.dispatch-cross-worker-handoff.hvmap-1c-override-per-worker-mapping-overrides-default-mapping-per-a-effectivein",
|
|
10870
10870
|
"file": "dispatch-cross-worker-handoff.test.ts",
|
|
10871
|
-
"line":
|
|
10871
|
+
"line": 104,
|
|
10872
10872
|
"title": "HVMAP-1c-override: per-worker mapping overrides default mapping per §A effectiveInputMapping precedence",
|
|
10873
10873
|
"explicitId": "openwop.it.dispatch-cross-worker-handoff.hvmap-1c-override-per-worker-mapping-overrides-default-mapping-per-a-effectivein",
|
|
10874
10874
|
"citations": [
|
|
@@ -11101,7 +11101,7 @@
|
|
|
11101
11101
|
{
|
|
11102
11102
|
"id": "openwop.it.dispatch-output-mapping.hvmap-1b-outputmapping-harvests-child-variables-into-parent-variables-on-termina",
|
|
11103
11103
|
"file": "dispatch-output-mapping.test.ts",
|
|
11104
|
-
"line":
|
|
11104
|
+
"line": 51,
|
|
11105
11105
|
"title": "HVMAP-1b: outputMapping harvests child variables into parent variables on terminal completed",
|
|
11106
11106
|
"explicitId": "openwop.it.dispatch-output-mapping.hvmap-1b-outputmapping-harvests-child-variables-into-parent-variables-on-termina",
|
|
11107
11107
|
"citations": [
|
|
@@ -11118,7 +11118,7 @@
|
|
|
11118
11118
|
{
|
|
11119
11119
|
"id": "openwop.it.dispatch-output-mapping.child-terminates-failed-outputmapping-must-be-skipped-parent-parentresult-stays",
|
|
11120
11120
|
"file": "dispatch-output-mapping.test.ts",
|
|
11121
|
-
"line":
|
|
11121
|
+
"line": 116,
|
|
11122
11122
|
"title": "child terminates `failed` → outputMapping MUST be skipped; parent.parentResult stays at sentinel",
|
|
11123
11123
|
"explicitId": "openwop.it.dispatch-output-mapping.child-terminates-failed-outputmapping-must-be-skipped-parent-parentresult-stays",
|
|
11124
11124
|
"citations": [
|
|
@@ -11131,7 +11131,7 @@
|
|
|
11131
11131
|
{
|
|
11132
11132
|
"id": "openwop.it.dispatch-output-mapping.child-terminates-cancelled-outputmapping-must-be-skipped-parent-parentresult-sta",
|
|
11133
11133
|
"file": "dispatch-output-mapping.test.ts",
|
|
11134
|
-
"line":
|
|
11134
|
+
"line": 138,
|
|
11135
11135
|
"title": "child terminates `cancelled` → outputMapping MUST be skipped; parent.parentResult stays at sentinel",
|
|
11136
11136
|
"explicitId": "openwop.it.dispatch-output-mapping.child-terminates-cancelled-outputmapping-must-be-skipped-parent-parentresult-sta",
|
|
11137
11137
|
"citations": [
|
|
@@ -11287,7 +11287,7 @@
|
|
|
11287
11287
|
{
|
|
11288
11288
|
"id": "openwop.it.dispatchLoop.host-correctly-processes-orchestrator-decisions-and-terminates",
|
|
11289
11289
|
"file": "dispatchLoop.test.ts",
|
|
11290
|
-
"line":
|
|
11290
|
+
"line": 29,
|
|
11291
11291
|
"title": "host correctly processes orchestrator decisions and terminates",
|
|
11292
11292
|
"explicitId": "openwop.it.dispatchLoop.host-correctly-processes-orchestrator-decisions-and-terminates",
|
|
11293
11293
|
"citations": [
|
|
@@ -11403,7 +11403,7 @@
|
|
|
11403
11403
|
{
|
|
11404
11404
|
"id": "openwop.it.durability-poison-exhaustion.reaches-terminal-and-stops-being-retried-asserted-on-the-log-rather-than-on-the",
|
|
11405
11405
|
"file": "durability-poison-exhaustion.test.ts",
|
|
11406
|
-
"line":
|
|
11406
|
+
"line": 96,
|
|
11407
11407
|
"title": "reaches terminal AND stops being retried, asserted on the log rather than on the status alone",
|
|
11408
11408
|
"explicitId": "openwop.it.durability-poison-exhaustion.reaches-terminal-and-stops-being-retried-asserted-on-the-log-rather-than-on-the",
|
|
11409
11409
|
"citations": [
|
|
@@ -14431,7 +14431,7 @@
|
|
|
14431
14431
|
{
|
|
14432
14432
|
"id": "openwop.it.highConcurrency.10-parallel-requests-with-same-key-yield-one-runid-and-9-replays",
|
|
14433
14433
|
"file": "highConcurrency.test.ts",
|
|
14434
|
-
"line":
|
|
14434
|
+
"line": 76,
|
|
14435
14435
|
"title": "10 parallel requests with same key yield ONE runId and 9 replays",
|
|
14436
14436
|
"explicitId": "openwop.it.highConcurrency.10-parallel-requests-with-same-key-yield-one-runid-and-9-replays",
|
|
14437
14437
|
"citations": [
|
|
@@ -14456,7 +14456,7 @@
|
|
|
14456
14456
|
{
|
|
14457
14457
|
"id": "openwop.it.highConcurrency.10-parallel-requests-with-distinct-keys-yield-10-distinct-runids",
|
|
14458
14458
|
"file": "highConcurrency.test.ts",
|
|
14459
|
-
"line":
|
|
14459
|
+
"line": 131,
|
|
14460
14460
|
"title": "10 parallel requests with distinct keys yield 10 distinct runIds",
|
|
14461
14461
|
"explicitId": "openwop.it.highConcurrency.10-parallel-requests-with-distinct-keys-yield-10-distinct-runids",
|
|
14462
14462
|
"citations": [
|
|
@@ -14477,7 +14477,7 @@
|
|
|
14477
14477
|
{
|
|
14478
14478
|
"id": "openwop.it.highConcurrency.5-sequential-retries-with-same-key-100ms-apart-all-succeed-idempotency-cache-sur",
|
|
14479
14479
|
"file": "highConcurrency.test.ts",
|
|
14480
|
-
"line":
|
|
14480
|
+
"line": 181,
|
|
14481
14481
|
"title": "5 sequential retries with same key 100ms apart all succeed (idempotency cache survives retry storm)",
|
|
14482
14482
|
"explicitId": "openwop.it.highConcurrency.5-sequential-retries-with-same-key-100ms-apart-all-succeed-idempotency-cache-sur",
|
|
14483
14483
|
"citations": [
|
|
@@ -14502,7 +14502,7 @@
|
|
|
14502
14502
|
{
|
|
14503
14503
|
"id": "openwop.it.highConcurrency.concurrent-distinct-key-requests-respect-advertised-idempotency-cache-retention",
|
|
14504
14504
|
"file": "highConcurrency.test.ts",
|
|
14505
|
-
"line":
|
|
14505
|
+
"line": 236,
|
|
14506
14506
|
"title": "concurrent distinct-key requests respect advertised idempotency cache retention",
|
|
14507
14507
|
"explicitId": "openwop.it.highConcurrency.concurrent-distinct-key-requests-respect-advertised-idempotency-cache-retention",
|
|
14508
14508
|
"citations": [
|
|
@@ -14519,7 +14519,7 @@
|
|
|
14519
14519
|
{
|
|
14520
14520
|
"id": "openwop.it.host-callback-declaration.the-scan-reaches-the-scenario-corpus",
|
|
14521
14521
|
"file": "host-callback-declaration.test.ts",
|
|
14522
|
-
"line":
|
|
14522
|
+
"line": 68,
|
|
14523
14523
|
"title": "the scan reaches the scenario corpus",
|
|
14524
14524
|
"explicitId": "openwop.it.host-callback-declaration.the-scan-reaches-the-scenario-corpus",
|
|
14525
14525
|
"citations": [
|
|
@@ -14532,7 +14532,7 @@
|
|
|
14532
14532
|
{
|
|
14533
14533
|
"id": "openwop.it.host-callback-declaration.every-scenario-driving-a-harness-double-declares-the-callback",
|
|
14534
14534
|
"file": "host-callback-declaration.test.ts",
|
|
14535
|
-
"line":
|
|
14535
|
+
"line": 82,
|
|
14536
14536
|
"title": "every scenario driving a harness double declares the callback",
|
|
14537
14537
|
"explicitId": "openwop.it.host-callback-declaration.every-scenario-driving-a-harness-double-declares-the-callback",
|
|
14538
14538
|
"citations": [
|
|
@@ -14546,7 +14546,7 @@
|
|
|
14546
14546
|
{
|
|
14547
14547
|
"id": "openwop.it.host-callback-declaration.the-declaration-states-a-reason-rather-than-a-bare-flag",
|
|
14548
14548
|
"file": "host-callback-declaration.test.ts",
|
|
14549
|
-
"line":
|
|
14549
|
+
"line": 100,
|
|
14550
14550
|
"title": "the declaration states a reason rather than a bare flag",
|
|
14551
14551
|
"explicitId": "openwop.it.host-callback-declaration.the-declaration-states-a-reason-rather-than-a-bare-flag",
|
|
14552
14552
|
"citations": [
|
|
@@ -14560,7 +14560,7 @@
|
|
|
14560
14560
|
{
|
|
14561
14561
|
"id": "openwop.it.host-callback-declaration.nothing-declares-a-callback-it-does-not-make",
|
|
14562
14562
|
"file": "host-callback-declaration.test.ts",
|
|
14563
|
-
"line":
|
|
14563
|
+
"line": 120,
|
|
14564
14564
|
"title": "nothing declares a callback it does not make",
|
|
14565
14565
|
"explicitId": "openwop.it.host-callback-declaration.nothing-declares-a-callback-it-does-not-make",
|
|
14566
14566
|
"citations": [
|
|
@@ -15046,7 +15046,7 @@
|
|
|
15046
15046
|
{
|
|
15047
15047
|
"id": "openwop.it.identity-passthrough.arbitrary-nested-json-payload-round-trips-through-inputs-variables",
|
|
15048
15048
|
"file": "identity-passthrough.test.ts",
|
|
15049
|
-
"line":
|
|
15049
|
+
"line": 27,
|
|
15050
15050
|
"title": "arbitrary nested JSON payload round-trips through inputs → variables",
|
|
15051
15051
|
"explicitId": "openwop.it.identity-passthrough.arbitrary-nested-json-payload-round-trips-through-inputs-variables",
|
|
15052
15052
|
"citations": [
|
|
@@ -15081,7 +15081,7 @@
|
|
|
15081
15081
|
{
|
|
15082
15082
|
"id": "openwop.it.interrupt-approval.run-suspends-at-gate-accept-resolution-drives-terminal-completed",
|
|
15083
15083
|
"file": "interrupt-approval.test.ts",
|
|
15084
|
-
"line":
|
|
15084
|
+
"line": 40,
|
|
15085
15085
|
"title": "run suspends at gate, accept resolution drives terminal completed",
|
|
15086
15086
|
"explicitId": "openwop.it.interrupt-approval.run-suspends-at-gate-accept-resolution-drives-terminal-completed",
|
|
15087
15087
|
"citations": [
|
|
@@ -15102,7 +15102,7 @@
|
|
|
15102
15102
|
{
|
|
15103
15103
|
"id": "openwop.it.interrupt-approval.400-or-422-when-action-is-not-in-accept-reject",
|
|
15104
15104
|
"file": "interrupt-approval.test.ts",
|
|
15105
|
-
"line":
|
|
15105
|
+
"line": 70,
|
|
15106
15106
|
"title": "400 (or 422) when action is not in {accept, reject}",
|
|
15107
15107
|
"explicitId": "openwop.it.interrupt-approval.400-or-422-when-action-is-not-in-accept-reject",
|
|
15108
15108
|
"citations": [
|
|
@@ -15115,7 +15115,7 @@
|
|
|
15115
15115
|
{
|
|
15116
15116
|
"id": "openwop.it.interrupt-approval.400-404-when-nodeid-does-not-match-an-active-interrupt",
|
|
15117
15117
|
"file": "interrupt-approval.test.ts",
|
|
15118
|
-
"line":
|
|
15118
|
+
"line": 99,
|
|
15119
15119
|
"title": "400/404 when nodeId does not match an active interrupt",
|
|
15120
15120
|
"explicitId": "openwop.it.interrupt-approval.400-404-when-nodeid-does-not-match-an-active-interrupt",
|
|
15121
15121
|
"citations": [
|
|
@@ -15128,7 +15128,7 @@
|
|
|
15128
15128
|
{
|
|
15129
15129
|
"id": "openwop.it.interrupt-approval.a-refine-resolve-round-trips-action-and-the-structured-feedback-it-requires",
|
|
15130
15130
|
"file": "interrupt-approval.test.ts",
|
|
15131
|
-
"line":
|
|
15131
|
+
"line": 136,
|
|
15132
15132
|
"title": "a refine resolve round-trips `action` and the structured feedback it requires",
|
|
15133
15133
|
"explicitId": "openwop.it.interrupt-approval.a-refine-resolve-round-trips-action-and-the-structured-feedback-it-requires",
|
|
15134
15134
|
"citations": [
|
|
@@ -15153,7 +15153,7 @@
|
|
|
15153
15153
|
{
|
|
15154
15154
|
"id": "openwop.it.interrupt-approval.refuses-a-refine-resolution-that-supplies-no-refinefeedback",
|
|
15155
15155
|
"file": "interrupt-approval.test.ts",
|
|
15156
|
-
"line":
|
|
15156
|
+
"line": 187,
|
|
15157
15157
|
"title": "refuses a refine resolution that supplies no refineFeedback",
|
|
15158
15158
|
"explicitId": "openwop.it.interrupt-approval.refuses-a-refine-resolution-that-supplies-no-refinefeedback",
|
|
15159
15159
|
"citations": [
|
|
@@ -15166,7 +15166,7 @@
|
|
|
15166
15166
|
{
|
|
15167
15167
|
"id": "openwop.it.interrupt-approval.an-edit-accept-resolve-round-trips-action-and-the-edited-artifact-it-requires",
|
|
15168
15168
|
"file": "interrupt-approval.test.ts",
|
|
15169
|
-
"line":
|
|
15169
|
+
"line": 215,
|
|
15170
15170
|
"title": "an edit-accept resolve round-trips `action` and the edited artifact it requires",
|
|
15171
15171
|
"explicitId": "openwop.it.interrupt-approval.an-edit-accept-resolve-round-trips-action-and-the-edited-artifact-it-requires",
|
|
15172
15172
|
"citations": [
|
|
@@ -15191,7 +15191,7 @@
|
|
|
15191
15191
|
{
|
|
15192
15192
|
"id": "openwop.it.interrupt-approval.refuses-an-edit-accept-resolution-that-supplies-no-editedartifactdata",
|
|
15193
15193
|
"file": "interrupt-approval.test.ts",
|
|
15194
|
-
"line":
|
|
15194
|
+
"line": 266,
|
|
15195
15195
|
"title": "refuses an edit-accept resolution that supplies no editedArtifactData",
|
|
15196
15196
|
"explicitId": "openwop.it.interrupt-approval.refuses-an-edit-accept-resolution-that-supplies-no-editedartifactdata",
|
|
15197
15197
|
"citations": [
|
|
@@ -15328,7 +15328,7 @@
|
|
|
15328
15328
|
{
|
|
15329
15329
|
"id": "openwop.it.interrupt-auth-required-resume.valid-bearer-with-approvals-respond-drives-terminal-completed",
|
|
15330
15330
|
"file": "interrupt-auth-required-resume.test.ts",
|
|
15331
|
-
"line":
|
|
15331
|
+
"line": 38,
|
|
15332
15332
|
"title": "valid bearer with approvals:respond drives terminal completed",
|
|
15333
15333
|
"explicitId": "openwop.it.interrupt-auth-required-resume.valid-bearer-with-approvals-respond-drives-terminal-completed",
|
|
15334
15334
|
"citations": [
|
|
@@ -15341,7 +15341,7 @@
|
|
|
15341
15341
|
{
|
|
15342
15342
|
"id": "openwop.it.interrupt-auth-required-resume.bearer-without-approvals-respond-scope-is-rejected",
|
|
15343
15343
|
"file": "interrupt-auth-required-resume.test.ts",
|
|
15344
|
-
"line":
|
|
15344
|
+
"line": 62,
|
|
15345
15345
|
"title": "bearer without approvals:respond scope is rejected",
|
|
15346
15346
|
"explicitId": "openwop.it.interrupt-auth-required-resume.bearer-without-approvals-respond-scope-is-rejected",
|
|
15347
15347
|
"citations": [
|
|
@@ -15375,7 +15375,7 @@
|
|
|
15375
15375
|
{
|
|
15376
15376
|
"id": "openwop.it.interrupt-external-event-correlation.signed-token-post-with-matching-correlation-drives-terminal-completed",
|
|
15377
15377
|
"file": "interrupt-external-event-correlation.test.ts",
|
|
15378
|
-
"line":
|
|
15378
|
+
"line": 52,
|
|
15379
15379
|
"title": "signed-token POST with matching correlation drives terminal completed",
|
|
15380
15380
|
"explicitId": "openwop.it.interrupt-external-event-correlation.signed-token-post-with-matching-correlation-drives-terminal-completed",
|
|
15381
15381
|
"citations": [
|
|
@@ -15396,7 +15396,7 @@
|
|
|
15396
15396
|
{
|
|
15397
15397
|
"id": "openwop.it.interrupt-external-event-correlation.correlation-mismatch-returns-422-and-leaves-run-suspended",
|
|
15398
15398
|
"file": "interrupt-external-event-correlation.test.ts",
|
|
15399
|
-
"line":
|
|
15399
|
+
"line": 88,
|
|
15400
15400
|
"title": "correlation mismatch returns 422 and leaves run suspended",
|
|
15401
15401
|
"explicitId": "openwop.it.interrupt-external-event-correlation.correlation-mismatch-returns-422-and-leaves-run-suspended",
|
|
15402
15402
|
"citations": [
|
|
@@ -15413,7 +15413,7 @@
|
|
|
15413
15413
|
{
|
|
15414
15414
|
"id": "openwop.it.interrupt-parent-child-cascade.child-transitions-to-cancelled-when-parent-is-cancelled-mid-suspend",
|
|
15415
15415
|
"file": "interrupt-parent-child-cascade.test.ts",
|
|
15416
|
-
"line":
|
|
15416
|
+
"line": 51,
|
|
15417
15417
|
"title": "child transitions to cancelled when parent is cancelled mid-suspend",
|
|
15418
15418
|
"explicitId": "openwop.it.interrupt-parent-child-cascade.child-transitions-to-cancelled-when-parent-is-cancelled-mid-suspend",
|
|
15419
15419
|
"citations": [
|
|
@@ -15430,7 +15430,7 @@
|
|
|
15430
15430
|
{
|
|
15431
15431
|
"id": "openwop.it.interrupt-parent-child-cascade.attempting-to-resolve-the-cascaded-child-interrupt-is-rejected",
|
|
15432
15432
|
"file": "interrupt-parent-child-cascade.test.ts",
|
|
15433
|
-
"line":
|
|
15433
|
+
"line": 84,
|
|
15434
15434
|
"title": "attempting to resolve the cascaded child interrupt is rejected",
|
|
15435
15435
|
"explicitId": "openwop.it.interrupt-parent-child-cascade.attempting-to-resolve-the-cascaded-child-interrupt-is-rejected",
|
|
15436
15436
|
"citations": [
|
|
@@ -15443,7 +15443,7 @@
|
|
|
15443
15443
|
{
|
|
15444
15444
|
"id": "openwop.it.interrupt-quorum-resolution.first-two-accepts-persist-without-resuming-third-accept-drives-terminal-complete",
|
|
15445
15445
|
"file": "interrupt-quorum-resolution.test.ts",
|
|
15446
|
-
"line":
|
|
15446
|
+
"line": 39,
|
|
15447
15447
|
"title": "first two accepts persist without resuming; third accept drives terminal completed",
|
|
15448
15448
|
"explicitId": "openwop.it.interrupt-quorum-resolution.first-two-accepts-persist-without-resuming-third-accept-drives-terminal-complete",
|
|
15449
15449
|
"citations": [
|
|
@@ -15466,7 +15466,7 @@
|
|
|
15466
15466
|
{
|
|
15467
15467
|
"id": "openwop.it.interrupt-quorum-resolution.two-rejects-out-of-three-votes-trigger-the-majority-reject-termination",
|
|
15468
15468
|
"file": "interrupt-quorum-resolution.test.ts",
|
|
15469
|
-
"line":
|
|
15469
|
+
"line": 82,
|
|
15470
15470
|
"title": "two rejects out of three votes trigger the majority-reject termination",
|
|
15471
15471
|
"explicitId": "openwop.it.interrupt-quorum-resolution.two-rejects-out-of-three-votes-trigger-the-majority-reject-termination",
|
|
15472
15472
|
"citations": [
|
|
@@ -15479,7 +15479,7 @@
|
|
|
15479
15479
|
{
|
|
15480
15480
|
"id": "openwop.it.interrupt-token-matrix.malformed-token-returns-400-or-404-never-200",
|
|
15481
15481
|
"file": "interrupt-token-matrix.test.ts",
|
|
15482
|
-
"line":
|
|
15482
|
+
"line": 50,
|
|
15483
15483
|
"title": "malformed token returns 400 or 404 (NEVER 200)",
|
|
15484
15484
|
"explicitId": "openwop.it.interrupt-token-matrix.malformed-token-returns-400-or-404-never-200",
|
|
15485
15485
|
"citations": [
|
|
@@ -15492,7 +15492,7 @@
|
|
|
15492
15492
|
{
|
|
15493
15493
|
"id": "openwop.it.interrupt-token-matrix.well-formed-but-unknown-token-returns-404",
|
|
15494
15494
|
"file": "interrupt-token-matrix.test.ts",
|
|
15495
|
-
"line":
|
|
15495
|
+
"line": 61,
|
|
15496
15496
|
"title": "well-formed but unknown token returns 404",
|
|
15497
15497
|
"explicitId": "openwop.it.interrupt-token-matrix.well-formed-but-unknown-token-returns-404",
|
|
15498
15498
|
"citations": [
|
|
@@ -15505,7 +15505,7 @@
|
|
|
15505
15505
|
{
|
|
15506
15506
|
"id": "openwop.it.interrupt-token-matrix.replay-after-successful-resolve-returns-409-or-404",
|
|
15507
15507
|
"file": "interrupt-token-matrix.test.ts",
|
|
15508
|
-
"line":
|
|
15508
|
+
"line": 74,
|
|
15509
15509
|
"title": "replay after successful resolve returns 409 or 404",
|
|
15510
15510
|
"explicitId": "openwop.it.interrupt-token-matrix.replay-after-successful-resolve-returns-409-or-404",
|
|
15511
15511
|
"citations": [
|
|
@@ -15518,7 +15518,7 @@
|
|
|
15518
15518
|
{
|
|
15519
15519
|
"id": "openwop.it.interrupt-token-matrix.unknown-token-returns-404-on-post",
|
|
15520
15520
|
"file": "interrupt-token-matrix.test.ts",
|
|
15521
|
-
"line":
|
|
15521
|
+
"line": 138,
|
|
15522
15522
|
"title": "unknown token returns 404 on POST",
|
|
15523
15523
|
"explicitId": "openwop.it.interrupt-token-matrix.unknown-token-returns-404-on-post",
|
|
15524
15524
|
"citations": [
|
|
@@ -15531,7 +15531,7 @@
|
|
|
15531
15531
|
{
|
|
15532
15532
|
"id": "openwop.it.interruptRace.concurrent-cancel-interrupt-resolve-resolves-to-one-of-cancelled-or-completed",
|
|
15533
15533
|
"file": "interruptRace.test.ts",
|
|
15534
|
-
"line":
|
|
15534
|
+
"line": 55,
|
|
15535
15535
|
"title": "concurrent cancel + interrupt-resolve resolves to one of: cancelled or completed",
|
|
15536
15536
|
"explicitId": "openwop.it.interruptRace.concurrent-cancel-interrupt-resolve-resolves-to-one-of-cancelled-or-completed",
|
|
15537
15537
|
"citations": [
|
|
@@ -15562,7 +15562,7 @@
|
|
|
15562
15562
|
{
|
|
15563
15563
|
"id": "openwop.it.interruptRace.cancel-of-a-completed-run-returns-200-with-the-existing-terminal-status-idempote",
|
|
15564
15564
|
"file": "interruptRace.test.ts",
|
|
15565
|
-
"line":
|
|
15565
|
+
"line": 168,
|
|
15566
15566
|
"title": "cancel of a completed run returns 200 with the existing terminal status (idempotent)",
|
|
15567
15567
|
"explicitId": "openwop.it.interruptRace.cancel-of-a-completed-run-returns-200-with-the-existing-terminal-status-idempote",
|
|
15568
15568
|
"citations": [
|
|
@@ -17826,7 +17826,7 @@
|
|
|
17826
17826
|
{
|
|
17827
17827
|
"id": "openwop.it.multi-agent-confidence-escalation.confidenceescalationfloor-when-advertised-must-be-in-0-5-1-0",
|
|
17828
17828
|
"file": "multi-agent-confidence-escalation.test.ts",
|
|
17829
|
-
"line":
|
|
17829
|
+
"line": 91,
|
|
17830
17830
|
"title": "confidenceEscalationFloor (when advertised) MUST be in [0.5, 1.0]",
|
|
17831
17831
|
"explicitId": "openwop.it.multi-agent-confidence-escalation.confidenceescalationfloor-when-advertised-must-be-in-0-5-1-0",
|
|
17832
17832
|
"citations": [
|
|
@@ -17839,7 +17839,7 @@
|
|
|
17839
17839
|
{
|
|
17840
17840
|
"id": "openwop.it.multi-agent-confidence-escalation.happy-path-low-confidence-decision-confidence-escalated-event-clarification-inte",
|
|
17841
17841
|
"file": "multi-agent-confidence-escalation.test.ts",
|
|
17842
|
-
"line":
|
|
17842
|
+
"line": 115,
|
|
17843
17843
|
"title": "happy-path: low-confidence decision → confidence-escalated event + clarification interrupt + zero dispatch events",
|
|
17844
17844
|
"explicitId": "openwop.it.multi-agent-confidence-escalation.happy-path-low-confidence-decision-confidence-escalated-event-clarification-inte",
|
|
17845
17845
|
"citations": [
|
|
@@ -17891,7 +17891,7 @@
|
|
|
17891
17891
|
{
|
|
17892
17892
|
"id": "openwop.it.multi-agent-handoff-state-machine.capabilities-multiagent-executionmodel-when-present-conforms-to-rfc-0037-c",
|
|
17893
17893
|
"file": "multi-agent-handoff-state-machine.test.ts",
|
|
17894
|
-
"line":
|
|
17894
|
+
"line": 70,
|
|
17895
17895
|
"title": "capabilities.multiAgent.executionModel (when present) conforms to RFC 0037 §C",
|
|
17896
17896
|
"explicitId": "openwop.it.multi-agent-handoff-state-machine.capabilities-multiagent-executionmodel-when-present-conforms-to-rfc-0037-c",
|
|
17897
17897
|
"citations": [
|
|
@@ -17913,7 +17913,7 @@
|
|
|
17913
17913
|
{
|
|
17914
17914
|
"id": "openwop.it.multi-agent-handoff-state-machine.happy-path-dispatch-began-dispatch-succeeded-child-completed-output-harvested-fi",
|
|
17915
17915
|
"file": "multi-agent-handoff-state-machine.test.ts",
|
|
17916
|
-
"line":
|
|
17916
|
+
"line": 123,
|
|
17917
17917
|
"title": "happy-path: dispatch.began → dispatch.succeeded → child.completed → output.harvested fire in causation order",
|
|
17918
17918
|
"explicitId": "openwop.it.multi-agent-handoff-state-machine.happy-path-dispatch-began-dispatch-succeeded-child-completed-output-harvested-fi",
|
|
17919
17919
|
"citations": [
|
|
@@ -17997,7 +17997,7 @@
|
|
|
17997
17997
|
{
|
|
17998
17998
|
"id": "openwop.it.multi-node-ordering.a-b-c-node-completed-events-arrive-in-dag-order-by-sequence",
|
|
17999
17999
|
"file": "multi-node-ordering.test.ts",
|
|
18000
|
-
"line":
|
|
18000
|
+
"line": 36,
|
|
18001
18001
|
"title": "a, b, c node.completed events arrive in DAG order by sequence",
|
|
18002
18002
|
"explicitId": "openwop.it.multi-node-ordering.a-b-c-node-completed-events-arrive-in-dag-order-by-sequence",
|
|
18003
18003
|
"citations": [
|
|
@@ -18364,7 +18364,7 @@
|
|
|
18364
18364
|
{
|
|
18365
18365
|
"id": "openwop.it.node-failed-payload-shape.every-node-failed-on-the-conformance-failure-run-validates-against-nodefailed-er",
|
|
18366
18366
|
"file": "node-failed-payload-shape.test.ts",
|
|
18367
|
-
"line":
|
|
18367
|
+
"line": 50,
|
|
18368
18368
|
"title": "every node.failed on the conformance-failure run validates against §nodeFailed (error: { code, message } is an object, not a string)",
|
|
18369
18369
|
"explicitId": "openwop.it.node-failed-payload-shape.every-node-failed-on-the-conformance-failure-run-validates-against-nodefailed-er",
|
|
18370
18370
|
"citations": [
|
|
@@ -18590,7 +18590,7 @@
|
|
|
18590
18590
|
{
|
|
18591
18591
|
"id": "openwop.it.orchestratorConservativePath.supervisor-below-threshold-suspends-with-reason-low-confidence-ratified-decision",
|
|
18592
18592
|
"file": "orchestratorConservativePath.test.ts",
|
|
18593
|
-
"line":
|
|
18593
|
+
"line": 37,
|
|
18594
18594
|
"title": "supervisor below threshold suspends with reason=low-confidence; ratified decision follows after resume",
|
|
18595
18595
|
"explicitId": "openwop.it.orchestratorConservativePath.supervisor-below-threshold-suspends-with-reason-low-confidence-ratified-decision",
|
|
18596
18596
|
"citations": [
|
|
@@ -18603,7 +18603,7 @@
|
|
|
18603
18603
|
{
|
|
18604
18604
|
"id": "openwop.it.orchestratorDispatch.emits-runorchestrator-decided-next-worker-between-supervisor-dispatch",
|
|
18605
18605
|
"file": "orchestratorDispatch.test.ts",
|
|
18606
|
-
"line":
|
|
18606
|
+
"line": 46,
|
|
18607
18607
|
"title": "emits runOrchestrator.decided{next-worker} between supervisor + dispatch",
|
|
18608
18608
|
"explicitId": "openwop.it.orchestratorDispatch.emits-runorchestrator-decided-next-worker-between-supervisor-dispatch",
|
|
18609
18609
|
"citations": [
|
|
@@ -18624,7 +18624,7 @@
|
|
|
18624
18624
|
{
|
|
18625
18625
|
"id": "openwop.it.orchestratorTermination.terminate-is-the-final-orchestrator-decision-run-completes-cleanly",
|
|
18626
18626
|
"file": "orchestratorTermination.test.ts",
|
|
18627
|
-
"line":
|
|
18627
|
+
"line": 35,
|
|
18628
18628
|
"title": "terminate is the final orchestrator decision; run completes cleanly",
|
|
18629
18629
|
"explicitId": "openwop.it.orchestratorTermination.terminate-is-the-final-orchestrator-decision-run-completes-cleanly",
|
|
18630
18630
|
"citations": [
|
|
@@ -18844,7 +18844,7 @@
|
|
|
18844
18844
|
{
|
|
18845
18845
|
"id": "openwop.it.owner-subject-echo.subject-is-consistent-with-the-owner-triple-b-2-and-the-actor-chain-is-bounded-b",
|
|
18846
18846
|
"file": "owner-subject-echo.test.ts",
|
|
18847
|
-
"line":
|
|
18847
|
+
"line": 89,
|
|
18848
18848
|
"title": "subject is consistent with the owner triple (§B.2) and the actor chain is bounded (§B.5)",
|
|
18849
18849
|
"explicitId": "openwop.it.owner-subject-echo.subject-is-consistent-with-the-owner-triple-b-2-and-the-actor-chain-is-bounded-b",
|
|
18850
18850
|
"citations": [
|
|
@@ -18877,7 +18877,7 @@
|
|
|
18877
18877
|
{
|
|
18878
18878
|
"id": "openwop.it.owner-subject-echo.run-started-echoes-the-snapshot-subject-verbatim-b-2-rfc-0048-c",
|
|
18879
18879
|
"file": "owner-subject-echo.test.ts",
|
|
18880
|
-
"line":
|
|
18880
|
+
"line": 112,
|
|
18881
18881
|
"title": "run.started echoes the snapshot subject verbatim (§B.2, RFC 0048 §C)",
|
|
18882
18882
|
"explicitId": "openwop.it.owner-subject-echo.run-started-echoes-the-snapshot-subject-verbatim-b-2-rfc-0048-c",
|
|
18883
18883
|
"citations": [
|
|
@@ -18894,7 +18894,7 @@
|
|
|
18894
18894
|
{
|
|
18895
18895
|
"id": "openwop.it.owner-subject-echo.a-fork-copies-owner-tenant-and-owner-subject-verbatim-onto-the-child-b-4",
|
|
18896
18896
|
"file": "owner-subject-echo.test.ts",
|
|
18897
|
-
"line":
|
|
18897
|
+
"line": 130,
|
|
18898
18898
|
"title": "a fork copies owner.tenant and owner.subject verbatim onto the child (§B.4)",
|
|
18899
18899
|
"explicitId": "openwop.it.owner-subject-echo.a-fork-copies-owner-tenant-and-owner-subject-verbatim-onto-the-child-b-4",
|
|
18900
18900
|
"citations": [
|
|
@@ -19542,7 +19542,7 @@
|
|
|
19542
19542
|
{
|
|
19543
19543
|
"id": "openwop.it.pause-resume.pause-transitions-to-paused-resume-returns-the-run-to-running",
|
|
19544
19544
|
"file": "pause-resume.test.ts",
|
|
19545
|
-
"line":
|
|
19545
|
+
"line": 85,
|
|
19546
19546
|
"title": "pause transitions to paused; resume returns the run to running",
|
|
19547
19547
|
"explicitId": "openwop.it.pause-resume.pause-transitions-to-paused-resume-returns-the-run-to-running",
|
|
19548
19548
|
"citations": [
|
|
@@ -19559,7 +19559,7 @@
|
|
|
19559
19559
|
{
|
|
19560
19560
|
"id": "openwop.it.pause-resume.resuming-a-running-not-paused-run-returns-409-with-details-runstatus",
|
|
19561
19561
|
"file": "pause-resume.test.ts",
|
|
19562
|
-
"line":
|
|
19562
|
+
"line": 134,
|
|
19563
19563
|
"title": "resuming a running (not paused) run returns 409 with details.runStatus",
|
|
19564
19564
|
"explicitId": "openwop.it.pause-resume.resuming-a-running-not-paused-run-returns-409-with-details-runstatus",
|
|
19565
19565
|
"citations": [
|
|
@@ -19576,7 +19576,7 @@
|
|
|
19576
19576
|
{
|
|
19577
19577
|
"id": "openwop.it.pause-resume.pause-on-an-already-paused-run-returns-409-with-details-runstatus-paused-unless",
|
|
19578
19578
|
"file": "pause-resume.test.ts",
|
|
19579
|
-
"line":
|
|
19579
|
+
"line": 169,
|
|
19580
19580
|
"title": ":pause on an already-paused run returns 409 with details.runStatus paused, unless the request carries the original Idempotency-Key",
|
|
19581
19581
|
"explicitId": "openwop.it.pause-resume.pause-on-an-already-paused-run-returns-409-with-details-runstatus-paused-unless",
|
|
19582
19582
|
"citations": [
|
|
@@ -19605,7 +19605,7 @@
|
|
|
19605
19605
|
{
|
|
19606
19606
|
"id": "openwop.it.pause-resume.pause-on-a-completed-cancelled-failed-run-must-return-409",
|
|
19607
19607
|
"file": "pause-resume.test.ts",
|
|
19608
|
-
"line":
|
|
19608
|
+
"line": 231,
|
|
19609
19609
|
"title": ":pause on a completed/cancelled/failed run MUST return 409",
|
|
19610
19610
|
"explicitId": "openwop.it.pause-resume.pause-on-a-completed-cancelled-failed-run-must-return-409",
|
|
19611
19611
|
"citations": [
|
|
@@ -19618,7 +19618,7 @@
|
|
|
19618
19618
|
{
|
|
19619
19619
|
"id": "openwop.it.pause-resume.under-drain-current-node-node-completed-precedes-run-paused-in-the-log",
|
|
19620
19620
|
"file": "pause-resume.test.ts",
|
|
19621
|
-
"line":
|
|
19621
|
+
"line": 256,
|
|
19622
19622
|
"title": "under drain-current-node node.completed precedes run.paused in the log",
|
|
19623
19623
|
"explicitId": "openwop.it.pause-resume.under-drain-current-node-node-completed-precedes-run-paused-in-the-log",
|
|
19624
19624
|
"citations": [
|
|
@@ -19636,7 +19636,7 @@
|
|
|
19636
19636
|
{
|
|
19637
19637
|
"id": "openwop.it.pause-resume.pause-must-not-silently-override-an-active-interrupt-suspend",
|
|
19638
19638
|
"file": "pause-resume.test.ts",
|
|
19639
|
-
"line":
|
|
19639
|
+
"line": 296,
|
|
19640
19640
|
"title": ":pause MUST NOT silently override an active interrupt suspend",
|
|
19641
19641
|
"explicitId": "openwop.it.pause-resume.pause-must-not-silently-override-an-active-interrupt-suspend",
|
|
19642
19642
|
"citations": [
|
|
@@ -19653,7 +19653,7 @@
|
|
|
19653
19653
|
{
|
|
19654
19654
|
"id": "openwop.it.pause-resume.every-drainpolicy-advertised-by-the-host-is-accepted-on-pause",
|
|
19655
19655
|
"file": "pause-resume.test.ts",
|
|
19656
|
-
"line":
|
|
19656
|
+
"line": 353,
|
|
19657
19657
|
"title": "every drainPolicy advertised by the host is accepted on :pause",
|
|
19658
19658
|
"explicitId": "openwop.it.pause-resume.every-drainpolicy-advertised-by-the-host-is-accepted-on-pause",
|
|
19659
19659
|
"citations": [
|
|
@@ -20400,7 +20400,7 @@
|
|
|
20400
20400
|
{
|
|
20401
20401
|
"id": "openwop.it.prompt-all-four-kinds-events.emits-agent-promptresolved-prompt-composed-for-system-user-schema-hint-and-few-s",
|
|
20402
20402
|
"file": "prompt-all-four-kinds-events.test.ts",
|
|
20403
|
-
"line":
|
|
20403
|
+
"line": 88,
|
|
20404
20404
|
"title": "emits agent.promptResolved + prompt.composed for system, user, schema-hint, and few-shot kinds",
|
|
20405
20405
|
"explicitId": "openwop.it.prompt-all-four-kinds-events.emits-agent-promptresolved-prompt-composed-for-system-user-schema-hint-and-few-s",
|
|
20406
20406
|
"citations": [
|
|
@@ -20436,7 +20436,7 @@
|
|
|
20436
20436
|
{
|
|
20437
20437
|
"id": "openwop.it.prompt-all-four-kinds-events.emits-the-first-agent-promptresolved-before-the-first-prompt-composed-resolution",
|
|
20438
20438
|
"file": "prompt-all-four-kinds-events.test.ts",
|
|
20439
|
-
"line":
|
|
20439
|
+
"line": 179,
|
|
20440
20440
|
"title": "emits the first agent.promptResolved before the first prompt.composed (resolution-precedes-composition ordering)",
|
|
20441
20441
|
"explicitId": "openwop.it.prompt-all-four-kinds-events.emits-the-first-agent-promptresolved-before-the-first-prompt-composed-resolution",
|
|
20442
20442
|
"citations": [
|
|
@@ -20547,7 +20547,7 @@
|
|
|
20547
20547
|
{
|
|
20548
20548
|
"id": "openwop.it.prompt-end-to-end-events.emits-agent-promptresolved-with-chain-applied-true-for-layer-node-when-systempro",
|
|
20549
20549
|
"file": "prompt-end-to-end-events.test.ts",
|
|
20550
|
-
"line":
|
|
20550
|
+
"line": 91,
|
|
20551
20551
|
"title": "emits agent.promptResolved with chain[].applied: true for layer \"node\" when systemPromptRef is set on node.config",
|
|
20552
20552
|
"explicitId": "openwop.it.prompt-end-to-end-events.emits-agent-promptresolved-with-chain-applied-true-for-layer-node-when-systempro",
|
|
20553
20553
|
"citations": [
|
|
@@ -20580,7 +20580,7 @@
|
|
|
20580
20580
|
{
|
|
20581
20581
|
"id": "openwop.it.prompt-end-to-end-events.emits-prompt-composed-with-sha256-hex64-hash-non-empty-composed-body-for-system",
|
|
20582
20582
|
"file": "prompt-end-to-end-events.test.ts",
|
|
20583
|
-
"line":
|
|
20583
|
+
"line": 144,
|
|
20584
20584
|
"title": "emits prompt.composed with sha256:<hex64> hash + non-empty composed body for system-kind template",
|
|
20585
20585
|
"explicitId": "openwop.it.prompt-end-to-end-events.emits-prompt-composed-with-sha256-hex64-hash-non-empty-composed-body-for-system",
|
|
20586
20586
|
"citations": [
|
|
@@ -20605,7 +20605,7 @@
|
|
|
20605
20605
|
{
|
|
20606
20606
|
"id": "openwop.it.prompt-end-to-end-events.emits-agent-promptresolved-before-prompt-composed-causal-ordering",
|
|
20607
20607
|
"file": "prompt-end-to-end-events.test.ts",
|
|
20608
|
-
"line":
|
|
20608
|
+
"line": 191,
|
|
20609
20609
|
"title": "emits agent.promptResolved before prompt.composed (causal ordering)",
|
|
20610
20610
|
"explicitId": "openwop.it.prompt-end-to-end-events.emits-agent-promptresolved-before-prompt-composed-causal-ordering",
|
|
20611
20611
|
"citations": [
|
|
@@ -22502,7 +22502,7 @@
|
|
|
22502
22502
|
{
|
|
22503
22503
|
"id": "openwop.it.replay-fork-arbitrary.mid-fromseq-replay-fork-produces-a-new-run-that-reaches-completed",
|
|
22504
22504
|
"file": "replay-fork-arbitrary.test.ts",
|
|
22505
|
-
"line":
|
|
22505
|
+
"line": 129,
|
|
22506
22506
|
"title": "mid-fromSeq replay fork produces a new run that reaches `completed`",
|
|
22507
22507
|
"explicitId": "openwop.it.replay-fork-arbitrary.mid-fromseq-replay-fork-produces-a-new-run-that-reaches-completed",
|
|
22508
22508
|
"citations": [
|
|
@@ -22537,7 +22537,7 @@
|
|
|
22537
22537
|
{
|
|
22538
22538
|
"id": "openwop.it.replay-fork-arbitrary.mid-fromseq-determinism-same-source-same-fromseq-identical-post-fork-events-modu",
|
|
22539
22539
|
"file": "replay-fork-arbitrary.test.ts",
|
|
22540
|
-
"line":
|
|
22540
|
+
"line": 208,
|
|
22541
22541
|
"title": "mid-fromSeq determinism — same source + same fromSeq → identical post-fork events (modulo IDs + timestamps)",
|
|
22542
22542
|
"explicitId": "openwop.it.replay-fork-arbitrary.mid-fromseq-determinism-same-source-same-fromseq-identical-post-fork-events-modu",
|
|
22543
22543
|
"citations": [
|
|
@@ -22556,7 +22556,7 @@
|
|
|
22556
22556
|
{
|
|
22557
22557
|
"id": "openwop.it.replay-fork-arbitrary.mid-fromseq-branch-fork-with-empty-overlay-produces-a-new-run-that-reaches-compl",
|
|
22558
22558
|
"file": "replay-fork-arbitrary.test.ts",
|
|
22559
|
-
"line":
|
|
22559
|
+
"line": 306,
|
|
22560
22560
|
"title": "mid-fromSeq branch fork with empty overlay produces a new run that reaches `completed`",
|
|
22561
22561
|
"explicitId": "openwop.it.replay-fork-arbitrary.mid-fromseq-branch-fork-with-empty-overlay-produces-a-new-run-that-reaches-compl",
|
|
22562
22562
|
"citations": [
|
|
@@ -23255,7 +23255,7 @@
|
|
|
23255
23255
|
{
|
|
23256
23256
|
"id": "openwop.it.restart-during-run.mid-run-sigkill-on-the-host-process-restart-at-the-same-port-db-resumes-to-termi",
|
|
23257
23257
|
"file": "restart-during-run.test.ts",
|
|
23258
|
-
"line":
|
|
23258
|
+
"line": 89,
|
|
23259
23259
|
"title": "mid-run SIGKILL on the host process; restart at the same port + DB resumes to terminal",
|
|
23260
23260
|
"explicitId": "openwop.it.restart-during-run.mid-run-sigkill-on-the-host-process-restart-at-the-same-port-db-resumes-to-termi",
|
|
23261
23261
|
"citations": [
|
|
@@ -24587,7 +24587,7 @@
|
|
|
24587
24587
|
{
|
|
24588
24588
|
"id": "openwop.it.secret-leakage-otel-attribute.no-otel-span-attribute-must-contain-the-byok-canary-plaintext-for-a-run-that-res",
|
|
24589
24589
|
"file": "secret-leakage-otel-attribute.test.ts",
|
|
24590
|
-
"line":
|
|
24590
|
+
"line": 113,
|
|
24591
24591
|
"title": "NO OTel span attribute MUST contain the BYOK canary plaintext for a run that resolved it",
|
|
24592
24592
|
"explicitId": "openwop.it.secret-leakage-otel-attribute.no-otel-span-attribute-must-contain-the-byok-canary-plaintext-for-a-run-that-res",
|
|
24593
24593
|
"citations": [
|
|
@@ -24612,7 +24612,7 @@
|
|
|
24612
24612
|
{
|
|
24613
24613
|
"id": "openwop.it.secret-leakage-otel-attribute.no-debug-bundle-field-must-contain-the-byok-canary-plaintext-for-a-run-that-reso",
|
|
24614
24614
|
"file": "secret-leakage-otel-attribute.test.ts",
|
|
24615
|
-
"line":
|
|
24615
|
+
"line": 183,
|
|
24616
24616
|
"title": "NO debug-bundle field MUST contain the BYOK canary plaintext for a run that resolved it",
|
|
24617
24617
|
"explicitId": "openwop.it.secret-leakage-otel-attribute.no-debug-bundle-field-must-contain-the-byok-canary-plaintext-for-a-run-that-reso",
|
|
24618
24618
|
"citations": [
|
|
@@ -24629,7 +24629,7 @@
|
|
|
24629
24629
|
{
|
|
24630
24630
|
"id": "openwop.it.secret-leakage-otel-attribute.no-real-exported-otel-span-metric-attribute-must-contain-the-byok-canary-plainte",
|
|
24631
24631
|
"file": "secret-leakage-otel-attribute.test.ts",
|
|
24632
|
-
"line":
|
|
24632
|
+
"line": 237,
|
|
24633
24633
|
"title": "NO real-exported OTel span/metric attribute MUST contain the BYOK canary plaintext",
|
|
24634
24634
|
"explicitId": "openwop.it.secret-leakage-otel-attribute.no-real-exported-otel-span-metric-attribute-must-contain-the-byok-canary-plainte",
|
|
24635
24635
|
"citations": [
|
|
@@ -24643,7 +24643,7 @@
|
|
|
24643
24643
|
{
|
|
24644
24644
|
"id": "openwop.it.secret-leakage-otel-attribute.when-secrets-supported-is-true-observability-testseams-advertisements-must-be-bo",
|
|
24645
24645
|
"file": "secret-leakage-otel-attribute.test.ts",
|
|
24646
|
-
"line":
|
|
24646
|
+
"line": 281,
|
|
24647
24647
|
"title": "when secrets.supported is true, observability.testSeams advertisements MUST be boolean if present",
|
|
24648
24648
|
"explicitId": "openwop.it.secret-leakage-otel-attribute.when-secrets-supported-is-true-observability-testseams-advertisements-must-be-bo",
|
|
24649
24649
|
"citations": [
|
|
@@ -25336,7 +25336,7 @@
|
|
|
25336
25336
|
{
|
|
25337
25337
|
"id": "openwop.it.stream-text-fixture.delivers-the-mocked-tokens-in-order-terminates-with-islast-meta-and-server-close",
|
|
25338
25338
|
"file": "stream-text-fixture.test.ts",
|
|
25339
|
-
"line":
|
|
25339
|
+
"line": 95,
|
|
25340
25340
|
"title": "delivers the mocked tokens in order, terminates with isLast + meta, and server-closes",
|
|
25341
25341
|
"explicitId": "openwop.it.stream-text-fixture.delivers-the-mocked-tokens-in-order-terminates-with-islast-meta-and-server-close",
|
|
25342
25342
|
"citations": [
|
|
@@ -25389,7 +25389,7 @@
|
|
|
25389
25389
|
{
|
|
25390
25390
|
"id": "openwop.it.stream-text-fixture.an-unknown-mockprovider-id-is-rejected-with-400-unsupported-mock-provider",
|
|
25391
25391
|
"file": "stream-text-fixture.test.ts",
|
|
25392
|
-
"line":
|
|
25392
|
+
"line": 198,
|
|
25393
25393
|
"title": "an unknown mockProvider.id is rejected with 400 unsupported_mock_provider",
|
|
25394
25394
|
"explicitId": "openwop.it.stream-text-fixture.an-unknown-mockprovider-id-is-rejected-with-400-unsupported-mock-provider",
|
|
25395
25395
|
"citations": [
|
|
@@ -25406,7 +25406,7 @@
|
|
|
25406
25406
|
{
|
|
25407
25407
|
"id": "openwop.it.streamReconnect.reconnect-with-last-event-id-resumes-without-loss-or-duplication",
|
|
25408
25408
|
"file": "streamReconnect.test.ts",
|
|
25409
|
-
"line":
|
|
25409
|
+
"line": 58,
|
|
25410
25410
|
"title": "reconnect with Last-Event-ID resumes without loss or duplication",
|
|
25411
25411
|
"explicitId": "openwop.it.streamReconnect.reconnect-with-last-event-id-resumes-without-loss-or-duplication",
|
|
25412
25412
|
"citations": [
|
|
@@ -25428,7 +25428,7 @@
|
|
|
25428
25428
|
{
|
|
25429
25429
|
"id": "openwop.it.streamReconnect.reconnect-with-last-event-id-equal-to-terminal-seq-closes-immediately",
|
|
25430
25430
|
"file": "streamReconnect.test.ts",
|
|
25431
|
-
"line":
|
|
25431
|
+
"line": 124,
|
|
25432
25432
|
"title": "reconnect with Last-Event-ID equal to terminal seq closes immediately",
|
|
25433
25433
|
"explicitId": "openwop.it.streamReconnect.reconnect-with-last-event-id-equal-to-terminal-seq-closes-immediately",
|
|
25434
25434
|
"citations": [
|
|
@@ -25673,7 +25673,7 @@
|
|
|
25673
25673
|
{
|
|
25674
25674
|
"id": "openwop.it.subworkflow.parent-run-reaches-terminal-completed-and-child-variable-is-propagated-via-outpu",
|
|
25675
25675
|
"file": "subworkflow.test.ts",
|
|
25676
|
-
"line":
|
|
25676
|
+
"line": 54,
|
|
25677
25677
|
"title": "parent run reaches terminal completed and child variable is propagated via outputMapping",
|
|
25678
25678
|
"explicitId": "openwop.it.subworkflow.parent-run-reaches-terminal-completed-and-child-variable-is-propagated-via-outpu",
|
|
25679
25679
|
"citations": [
|
|
@@ -25690,7 +25690,7 @@
|
|
|
25690
25690
|
{
|
|
25691
25691
|
"id": "openwop.it.subworkflow.child-run-is-created-with-parent-linkage-fields-and-reaches-terminal-completed",
|
|
25692
25692
|
"file": "subworkflow.test.ts",
|
|
25693
|
-
"line":
|
|
25693
|
+
"line": 77,
|
|
25694
25694
|
"title": "child run is created with parent linkage fields and reaches terminal completed",
|
|
25695
25695
|
"explicitId": "openwop.it.subworkflow.child-run-is-created-with-parent-linkage-fields-and-reaches-terminal-completed",
|
|
25696
25696
|
"citations": [
|
|
@@ -33489,7 +33489,7 @@
|
|
|
33489
33489
|
{
|
|
33490
33490
|
"id": "openwop.it.v2-run-list.two-runs-the-caller-just-created-appear-every-id-is-bound-to-the-caller-s-tenant",
|
|
33491
33491
|
"file": "v2-run-list.test.ts",
|
|
33492
|
-
"line":
|
|
33492
|
+
"line": 59,
|
|
33493
33493
|
"title": "two runs the caller just created appear, every id is bound to the caller's tenant, and no page exceeds maxPageSize",
|
|
33494
33494
|
"explicitId": "openwop.requirement.0182.run-list.tenant-scoped",
|
|
33495
33495
|
"citations": [
|
|
@@ -33513,6 +33513,11 @@
|
|
|
33513
33513
|
"requirement": null,
|
|
33514
33514
|
"interpolated": true
|
|
33515
33515
|
},
|
|
33516
|
+
{
|
|
33517
|
+
"section": "spec/v2/core/runs.md §List",
|
|
33518
|
+
"requirement": null,
|
|
33519
|
+
"interpolated": true
|
|
33520
|
+
},
|
|
33516
33521
|
{
|
|
33517
33522
|
"section": "spec/v2/core/identity.md §5",
|
|
33518
33523
|
"requirement": null,
|
|
@@ -33523,7 +33528,7 @@
|
|
|
33523
33528
|
{
|
|
33524
33529
|
"id": "openwop.it.v2-run-list.a-cursor-the-host-did-not-mint-is-refused-400-validation-error",
|
|
33525
33530
|
"file": "v2-run-list.test.ts",
|
|
33526
|
-
"line":
|
|
33531
|
+
"line": 82,
|
|
33527
33532
|
"title": "a cursor the host did not mint is refused 400 validation_error",
|
|
33528
33533
|
"explicitId": "openwop.requirement.0182.run-list.cursor-refused",
|
|
33529
33534
|
"citations": [
|
|
@@ -33541,7 +33546,7 @@
|
|
|
33541
33546
|
{
|
|
33542
33547
|
"id": "openwop.it.v2-run-list.when-the-filters-facet-names-workflowid-a-filtered-list-contains-only-that-workf",
|
|
33543
33548
|
"file": "v2-run-list.test.ts",
|
|
33544
|
-
"line":
|
|
33549
|
+
"line": 91,
|
|
33545
33550
|
"title": "when the filters facet names workflowId, a filtered list contains only that workflow",
|
|
33546
33551
|
"explicitId": "openwop.requirement.0182.run-list.filter-exact",
|
|
33547
33552
|
"citations": [
|
|
@@ -35122,7 +35127,7 @@
|
|
|
35122
35127
|
{
|
|
35123
35128
|
"id": "openwop.it.version-fold.each-version-in-min-current-max-completes-snapshot-and-event-log-stay-readable",
|
|
35124
35129
|
"file": "version-fold.test.ts",
|
|
35125
|
-
"line":
|
|
35130
|
+
"line": 85,
|
|
35126
35131
|
"title": "each version in [min, current, max] completes + snapshot and event log stay readable",
|
|
35127
35132
|
"explicitId": "openwop.it.version-fold.each-version-in-min-current-max-completes-snapshot-and-event-log-stay-readable",
|
|
35128
35133
|
"citations": [
|
|
@@ -35160,7 +35165,7 @@
|
|
|
35160
35165
|
{
|
|
35161
35166
|
"id": "openwop.it.version-fold.a-forced-version-outside-the-advertised-range-is-rejected-with-400-unsupported-f",
|
|
35162
35167
|
"file": "version-fold.test.ts",
|
|
35163
|
-
"line":
|
|
35168
|
+
"line": 170,
|
|
35164
35169
|
"title": "a forced version outside the advertised range is rejected with 400 unsupported_force_engine_version",
|
|
35165
35170
|
"explicitId": "openwop.it.version-fold.a-forced-version-outside-the-advertised-range-is-rejected-with-400-unsupported-f",
|
|
35166
35171
|
"citations": [
|