@remnic/core 9.7.9 → 9.7.11
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/access-admin-ops-surface.js +5 -5
- package/dist/access-boundary.d.ts +1 -1
- package/dist/access-boundary.js +6 -6
- package/dist/access-cli.js +36 -36
- package/dist/access-http.d.ts +2 -1
- package/dist/access-http.js +10 -10
- package/dist/access-identity-continuity-surface.js +5 -5
- package/dist/access-lcm-surface.js +5 -5
- package/dist/access-mcp.js +9 -9
- package/dist/access-observe-write-surface.js +5 -5
- package/dist/access-operations-batch.js +7 -7
- package/dist/access-operations.d.ts +4 -4
- package/dist/access-operations.js +8 -8
- package/dist/access-recall-surface.js +5 -5
- package/dist/access-schema.d.ts +64 -64
- package/dist/access-service.js +5 -5
- package/dist/access-surface-catalog.js +2 -0
- package/dist/access-surface-catalog.js.map +1 -1
- package/dist/briefing.js +3 -3
- package/dist/causal-consolidation.js +4 -4
- package/dist/{chunk-HHAA35A3.js → chunk-2VN4JAX7.js} +548 -161
- package/dist/chunk-2VN4JAX7.js.map +1 -0
- package/dist/{chunk-MLT5EG6K.js → chunk-3OQ4IZJN.js} +4 -4
- package/dist/{chunk-DLPXS7BE.js → chunk-5U65RIVI.js} +348 -49
- package/dist/chunk-5U65RIVI.js.map +1 -0
- package/dist/{chunk-QKVX4Y6D.js → chunk-673NPXE3.js} +2 -2
- package/dist/{chunk-POUD5BLV.js → chunk-6LM6PPDX.js} +4 -2
- package/dist/chunk-6LM6PPDX.js.map +1 -0
- package/dist/chunk-7XRUYC6G.js +1794 -0
- package/dist/chunk-7XRUYC6G.js.map +1 -0
- package/dist/{chunk-5CFHYQU3.js → chunk-DLWYAN6A.js} +2 -2
- package/dist/{chunk-TY43GBX2.js → chunk-EQF5763Z.js} +2 -2
- package/dist/{chunk-SKXBOZDF.js → chunk-GHVJASQ4.js} +3 -3
- package/dist/{chunk-YGAOLHKN.js → chunk-JYRFO4EH.js} +4 -4
- package/dist/{chunk-F3FC7SMO.js → chunk-JZM5QUTE.js} +2 -2
- package/dist/{chunk-PV7E2FGY.js → chunk-KXLRMM35.js} +6 -6
- package/dist/{chunk-PHXCPVSX.js → chunk-L4H6MQ7I.js} +2 -2
- package/dist/{chunk-FKCJH7KP.js → chunk-LQKITFGB.js} +2 -2
- package/dist/{chunk-27VEKQQA.js → chunk-MXRMNKSY.js} +3 -3
- package/dist/{chunk-EIKBKQ6L.js → chunk-QHT4W3RU.js} +127 -9
- package/dist/chunk-QHT4W3RU.js.map +1 -0
- package/dist/{chunk-CDGGQGUU.js → chunk-SBFDL2EQ.js} +2 -2
- package/dist/{chunk-I2THZUAF.js → chunk-SECMZACR.js} +2 -2
- package/dist/{chunk-JU3GHO6J.js → chunk-TGBJ2OMK.js} +2 -2
- package/dist/{chunk-DE6ENYLG.js → chunk-TXLGHDHS.js} +2 -2
- package/dist/{chunk-KGNFFCZJ.js → chunk-U4KHQTJ6.js} +2 -2
- package/dist/{chunk-Y5U35ZVS.js → chunk-UTDA43TB.js} +2 -2
- package/dist/{chunk-CK6RI52P.js → chunk-VCEH5UYS.js} +2 -2
- package/dist/{chunk-UXWGPODH.js → chunk-VRAD2FGO.js} +7 -7
- package/dist/{chunk-KKASNHGF.js → chunk-W6R43NLA.js} +19 -19
- package/dist/{chunk-UP25ZZCN.js → chunk-WUDBMLC6.js} +2 -2
- package/dist/{chunk-XG5CGR3K.js → chunk-XF4KOVDK.js} +5 -5
- package/dist/{chunk-KPXAJ77O.js → chunk-YLTG6BO4.js} +2 -2
- package/dist/cli.js +23 -23
- package/dist/compounding/engine.js +3 -3
- package/dist/connectors/codex-materialize-runner.js +3 -3
- package/dist/connectors/index.js +3 -3
- package/dist/entity-retrieval.js +3 -3
- package/dist/index.d.ts +3990 -4
- package/dist/index.js +90 -43
- package/dist/lcm/engine.js +3 -3
- package/dist/lcm/index.js +8 -8
- package/dist/maintenance/memory-governance.js +3 -3
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +3 -3
- package/dist/maintenance/rebuild-memory-projection.js +4 -4
- package/dist/namespaces/migrate.js +4 -4
- package/dist/namespaces/storage.js +3 -3
- package/dist/operator-toolkit.js +7 -7
- package/dist/orchestration/maintenance.js +5 -5
- package/dist/orchestrator.js +36 -36
- package/dist/retrieval-agents.js +2 -2
- package/dist/schemas.d.ts +74 -74
- package/dist/semantic-consolidation.js +4 -4
- package/dist/semantic-rule-promotion.js +3 -3
- package/dist/semantic-rule-verifier.js +3 -3
- package/dist/shared-context/manager.d.ts +8 -8
- package/dist/storage.js +2 -2
- package/dist/temporal-index-compat.d.ts +1 -0
- package/dist/temporal-index-compat.js +16 -0
- package/dist/temporal-index-compat.js.map +1 -0
- package/dist/temporal-index.d.ts +58 -7
- package/dist/temporal-index.js +23 -3
- package/dist/transfer/types.d.ts +66 -66
- package/dist/verified-recall.js +3 -3
- package/package.json +2 -2
- package/src/access-boundary.ts +2 -0
- package/src/access-http.ts +147 -6
- package/src/access-mcp-cancellation.test.ts +2 -2
- package/src/access-operations.ts +2 -0
- package/src/access-surface-catalog.ts +2 -0
- package/src/index.ts +53 -0
- package/src/orchestration/consolidation-run.ts +5 -5
- package/src/orchestration/contradiction-linking-coordinator.ts +2 -2
- package/src/orchestration/lifecycle-policy-coordinator.ts +2 -2
- package/src/orchestration/persistence-index.ts +6 -6
- package/src/orchestration/recall-search-pipeline.ts +36 -21
- package/src/orchestration/semantic-consolidation-coordinator.ts +2 -2
- package/src/orchestrator.ts +0 -4
- package/src/relay/mission-access.test.ts +379 -0
- package/src/relay/mission-access.ts +125 -0
- package/src/relay/mission-fixture.ts +301 -0
- package/src/relay/mission.test.ts +964 -0
- package/src/relay/mission.ts +1725 -0
- package/src/temporal-index-compat.ts +311 -0
- package/src/temporal-index.test.ts +273 -22
- package/src/temporal-index.ts +427 -178
- package/dist/chunk-DLPXS7BE.js.map +0 -1
- package/dist/chunk-EIKBKQ6L.js.map +0 -1
- package/dist/chunk-HHAA35A3.js.map +0 -1
- package/dist/chunk-POUD5BLV.js.map +0 -1
- package/dist/chunk-VCFADTFS.js +0 -467
- package/dist/chunk-VCFADTFS.js.map +0 -1
- /package/dist/{chunk-MLT5EG6K.js.map → chunk-3OQ4IZJN.js.map} +0 -0
- /package/dist/{chunk-QKVX4Y6D.js.map → chunk-673NPXE3.js.map} +0 -0
- /package/dist/{chunk-5CFHYQU3.js.map → chunk-DLWYAN6A.js.map} +0 -0
- /package/dist/{chunk-TY43GBX2.js.map → chunk-EQF5763Z.js.map} +0 -0
- /package/dist/{chunk-SKXBOZDF.js.map → chunk-GHVJASQ4.js.map} +0 -0
- /package/dist/{chunk-YGAOLHKN.js.map → chunk-JYRFO4EH.js.map} +0 -0
- /package/dist/{chunk-F3FC7SMO.js.map → chunk-JZM5QUTE.js.map} +0 -0
- /package/dist/{chunk-PV7E2FGY.js.map → chunk-KXLRMM35.js.map} +0 -0
- /package/dist/{chunk-PHXCPVSX.js.map → chunk-L4H6MQ7I.js.map} +0 -0
- /package/dist/{chunk-FKCJH7KP.js.map → chunk-LQKITFGB.js.map} +0 -0
- /package/dist/{chunk-27VEKQQA.js.map → chunk-MXRMNKSY.js.map} +0 -0
- /package/dist/{chunk-CDGGQGUU.js.map → chunk-SBFDL2EQ.js.map} +0 -0
- /package/dist/{chunk-I2THZUAF.js.map → chunk-SECMZACR.js.map} +0 -0
- /package/dist/{chunk-JU3GHO6J.js.map → chunk-TGBJ2OMK.js.map} +0 -0
- /package/dist/{chunk-DE6ENYLG.js.map → chunk-TXLGHDHS.js.map} +0 -0
- /package/dist/{chunk-KGNFFCZJ.js.map → chunk-U4KHQTJ6.js.map} +0 -0
- /package/dist/{chunk-Y5U35ZVS.js.map → chunk-UTDA43TB.js.map} +0 -0
- /package/dist/{chunk-CK6RI52P.js.map → chunk-VCEH5UYS.js.map} +0 -0
- /package/dist/{chunk-UXWGPODH.js.map → chunk-VRAD2FGO.js.map} +0 -0
- /package/dist/{chunk-KKASNHGF.js.map → chunk-W6R43NLA.js.map} +0 -0
- /package/dist/{chunk-UP25ZZCN.js.map → chunk-WUDBMLC6.js.map} +0 -0
- /package/dist/{chunk-XG5CGR3K.js.map → chunk-XF4KOVDK.js.map} +0 -0
- /package/dist/{chunk-KPXAJ77O.js.map → chunk-YLTG6BO4.js.map} +0 -0
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
import type { RelayMissionEventInput } from "./mission.js";
|
|
2
|
+
|
|
3
|
+
export const RELAY_DEMO_MISSION_ID = "checkout-token-recovery";
|
|
4
|
+
export const RELAY_DEMO_NAMESPACE = "relay-build-week";
|
|
5
|
+
|
|
6
|
+
const sourceEvidence = {
|
|
7
|
+
kind: "source" as const,
|
|
8
|
+
id: "source-checkout-contract",
|
|
9
|
+
label: "Checkout token contract",
|
|
10
|
+
locator: "fixture://checkout-service/src/token-policy.ts",
|
|
11
|
+
capture: "fixture" as const,
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
const testEvidence = {
|
|
15
|
+
kind: "test" as const,
|
|
16
|
+
id: "test-checkout-contract",
|
|
17
|
+
label: "Checkout integration contract",
|
|
18
|
+
locator: "fixture://checkout-service/test/token-policy.test.ts",
|
|
19
|
+
capture: "fixture" as const,
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
const approvalEvidence = {
|
|
23
|
+
kind: "approval" as const,
|
|
24
|
+
id: "approval-build-week-operator",
|
|
25
|
+
label: "Human approval receipt",
|
|
26
|
+
locator: "fixture://relay/approvals/correction-token-refresh.json",
|
|
27
|
+
capture: "fixture" as const,
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
const correctionEvidence = {
|
|
31
|
+
kind: "correction" as const,
|
|
32
|
+
id: "correction-token-refresh",
|
|
33
|
+
label: "Applied Remnic correction",
|
|
34
|
+
locator: "fixture://remnic/corrections/correction-token-refresh.json",
|
|
35
|
+
capture: "fixture" as const,
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
function at(second: number): string {
|
|
39
|
+
return `2026-07-17T18:00:${String(second).padStart(2, "0")}.000Z`;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Deterministic evidence stream shared by contract tests, replay, and the
|
|
44
|
+
* judge-facing fixture mode. Every event has a stable idempotency key and
|
|
45
|
+
* source reference so the resulting receipt is complete without fabricated
|
|
46
|
+
* runtime evidence.
|
|
47
|
+
*/
|
|
48
|
+
export function createRelayMissionFixture(): RelayMissionEventInput[] {
|
|
49
|
+
return [
|
|
50
|
+
{
|
|
51
|
+
occurredAt: at(0),
|
|
52
|
+
idempotencyKey: "fixture-001",
|
|
53
|
+
payload: {
|
|
54
|
+
kind: "mission_started",
|
|
55
|
+
title: "The checkout token split",
|
|
56
|
+
objective: "Resolve a conflicting token refresh policy and prove a cold agent acts on it.",
|
|
57
|
+
runMode: "fixture",
|
|
58
|
+
evidence: [sourceEvidence],
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
occurredAt: at(2),
|
|
63
|
+
idempotencyKey: "fixture-002",
|
|
64
|
+
payload: {
|
|
65
|
+
kind: "agent_status",
|
|
66
|
+
agentId: "agent-atlas",
|
|
67
|
+
sessionId: "session-atlas",
|
|
68
|
+
label: "Atlas",
|
|
69
|
+
role: "Checkout implementation",
|
|
70
|
+
status: "working",
|
|
71
|
+
evidence: [sourceEvidence],
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
occurredAt: at(3),
|
|
76
|
+
idempotencyKey: "fixture-003",
|
|
77
|
+
payload: {
|
|
78
|
+
kind: "agent_status",
|
|
79
|
+
agentId: "agent-nova",
|
|
80
|
+
sessionId: "session-nova",
|
|
81
|
+
label: "Nova",
|
|
82
|
+
role: "Integration verification",
|
|
83
|
+
status: "working",
|
|
84
|
+
evidence: [testEvidence],
|
|
85
|
+
},
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
occurredAt: at(6),
|
|
89
|
+
idempotencyKey: "fixture-004",
|
|
90
|
+
payload: {
|
|
91
|
+
kind: "agent_output",
|
|
92
|
+
agentId: "agent-atlas",
|
|
93
|
+
sessionId: "session-atlas",
|
|
94
|
+
outputId: "output-atlas-policy",
|
|
95
|
+
summary: "Implemented a new token for every checkout retry.",
|
|
96
|
+
evidence: [
|
|
97
|
+
{
|
|
98
|
+
kind: "agent_output",
|
|
99
|
+
id: "output-atlas-policy",
|
|
100
|
+
label: "Atlas one-shot output",
|
|
101
|
+
locator: "fixture://codex/atlas/final-output.txt",
|
|
102
|
+
capture: "fixture",
|
|
103
|
+
},
|
|
104
|
+
],
|
|
105
|
+
},
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
occurredAt: at(7),
|
|
109
|
+
idempotencyKey: "fixture-005",
|
|
110
|
+
payload: {
|
|
111
|
+
kind: "belief_observed",
|
|
112
|
+
agentId: "agent-atlas",
|
|
113
|
+
sessionId: "session-atlas",
|
|
114
|
+
beliefId: "belief-new-token-every-request",
|
|
115
|
+
decisionId: "decision-new-token-every-request",
|
|
116
|
+
statement: "Mint a new checkout token for every request and retry.",
|
|
117
|
+
confidence: 0.91,
|
|
118
|
+
evidence: [
|
|
119
|
+
{
|
|
120
|
+
kind: "memory",
|
|
121
|
+
id: "memory-stale-token-policy",
|
|
122
|
+
label: "Stale project decision",
|
|
123
|
+
locator: "fixture://remnic/memories/memory-stale-token-policy.md",
|
|
124
|
+
capture: "fixture",
|
|
125
|
+
},
|
|
126
|
+
],
|
|
127
|
+
},
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
occurredAt: at(9),
|
|
131
|
+
idempotencyKey: "fixture-006",
|
|
132
|
+
payload: {
|
|
133
|
+
kind: "agent_output",
|
|
134
|
+
agentId: "agent-nova",
|
|
135
|
+
sessionId: "session-nova",
|
|
136
|
+
outputId: "output-nova-policy",
|
|
137
|
+
summary: "The contract requires one token per checkout session, refreshed only after expiry.",
|
|
138
|
+
evidence: [
|
|
139
|
+
{
|
|
140
|
+
kind: "agent_output",
|
|
141
|
+
id: "output-nova-policy",
|
|
142
|
+
label: "Nova one-shot output",
|
|
143
|
+
locator: "fixture://codex/nova/final-output.txt",
|
|
144
|
+
capture: "fixture",
|
|
145
|
+
},
|
|
146
|
+
sourceEvidence,
|
|
147
|
+
],
|
|
148
|
+
},
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
occurredAt: at(10),
|
|
152
|
+
idempotencyKey: "fixture-007",
|
|
153
|
+
payload: {
|
|
154
|
+
kind: "belief_observed",
|
|
155
|
+
agentId: "agent-nova",
|
|
156
|
+
sessionId: "session-nova",
|
|
157
|
+
beliefId: "belief-refresh-after-expiry",
|
|
158
|
+
decisionId: "decision-refresh-after-expiry",
|
|
159
|
+
statement: "Reuse the checkout-session token and refresh it only after expiry.",
|
|
160
|
+
confidence: 0.98,
|
|
161
|
+
evidence: [sourceEvidence],
|
|
162
|
+
},
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
occurredAt: at(12),
|
|
166
|
+
idempotencyKey: "fixture-008",
|
|
167
|
+
payload: {
|
|
168
|
+
kind: "conflict_detected",
|
|
169
|
+
conflictId: "conflict-token-lifecycle",
|
|
170
|
+
decisionIds: ["decision-refresh-after-expiry", "decision-new-token-every-request"],
|
|
171
|
+
agentIds: ["agent-nova", "agent-atlas"],
|
|
172
|
+
summary: "The agents disagree on whether retries reuse or rotate the checkout token.",
|
|
173
|
+
evidence: [sourceEvidence, testEvidence],
|
|
174
|
+
},
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
occurredAt: at(14),
|
|
178
|
+
idempotencyKey: "fixture-009",
|
|
179
|
+
payload: {
|
|
180
|
+
kind: "test_result",
|
|
181
|
+
testId: "test-before-correction",
|
|
182
|
+
decisionId: "decision-new-token-every-request",
|
|
183
|
+
command: "npm test -- token-policy.test.ts",
|
|
184
|
+
status: "failed",
|
|
185
|
+
summary: "Retry minted a second token instead of reusing the session token.",
|
|
186
|
+
durationMs: 418,
|
|
187
|
+
evidence: [testEvidence],
|
|
188
|
+
},
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
occurredAt: at(18),
|
|
192
|
+
idempotencyKey: "fixture-010",
|
|
193
|
+
payload: {
|
|
194
|
+
kind: "correction_proposed",
|
|
195
|
+
correctionId: "correction-token-refresh",
|
|
196
|
+
conflictId: "conflict-token-lifecycle",
|
|
197
|
+
proposedDecisionId: "decision-refresh-after-expiry",
|
|
198
|
+
supersedesDecisionIds: ["decision-new-token-every-request"],
|
|
199
|
+
statement: "Reuse the checkout-session token and refresh it only after expiry.",
|
|
200
|
+
rationale: "The implementation contract and failing integration test agree on session reuse.",
|
|
201
|
+
proposedBy: "agent-resolver",
|
|
202
|
+
evidence: [sourceEvidence, testEvidence],
|
|
203
|
+
},
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
occurredAt: at(21),
|
|
207
|
+
idempotencyKey: "fixture-011",
|
|
208
|
+
payload: {
|
|
209
|
+
kind: "correction_approved",
|
|
210
|
+
correctionId: "correction-token-refresh",
|
|
211
|
+
approvedBy: {
|
|
212
|
+
kind: "human",
|
|
213
|
+
id: "operator-build-week",
|
|
214
|
+
label: "Build Week operator",
|
|
215
|
+
},
|
|
216
|
+
note: "Approve the source-grounded policy and retire the stale decision.",
|
|
217
|
+
evidence: [approvalEvidence],
|
|
218
|
+
},
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
occurredAt: at(23),
|
|
222
|
+
idempotencyKey: "fixture-012",
|
|
223
|
+
payload: {
|
|
224
|
+
kind: "decision_superseded",
|
|
225
|
+
decisionId: "decision-new-token-every-request",
|
|
226
|
+
replacementDecisionId: "decision-refresh-after-expiry",
|
|
227
|
+
correctionId: "correction-token-refresh",
|
|
228
|
+
evidence: [correctionEvidence],
|
|
229
|
+
},
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
occurredAt: at(27),
|
|
233
|
+
idempotencyKey: "fixture-013",
|
|
234
|
+
payload: {
|
|
235
|
+
kind: "recall_observed",
|
|
236
|
+
agentId: "agent-orbit",
|
|
237
|
+
sessionId: "session-orbit-cold",
|
|
238
|
+
recallReceiptId: "recall-orbit-cold",
|
|
239
|
+
decisionId: "decision-refresh-after-expiry",
|
|
240
|
+
query: "What token lifecycle must checkout retries follow?",
|
|
241
|
+
capturedAtAction: true,
|
|
242
|
+
evidence: [
|
|
243
|
+
{
|
|
244
|
+
kind: "recall_audit",
|
|
245
|
+
id: "recall-orbit-cold",
|
|
246
|
+
label: "Cold-start recall audit",
|
|
247
|
+
locator: "fixture://remnic/recall-audit/recall-orbit-cold.json",
|
|
248
|
+
capture: "fixture",
|
|
249
|
+
},
|
|
250
|
+
],
|
|
251
|
+
},
|
|
252
|
+
},
|
|
253
|
+
{
|
|
254
|
+
occurredAt: at(29),
|
|
255
|
+
idempotencyKey: "fixture-014",
|
|
256
|
+
payload: {
|
|
257
|
+
kind: "propagation_verified",
|
|
258
|
+
agentId: "agent-orbit",
|
|
259
|
+
sessionId: "session-orbit-cold",
|
|
260
|
+
correctionId: "correction-token-refresh",
|
|
261
|
+
decisionId: "decision-refresh-after-expiry",
|
|
262
|
+
recallReceiptId: "recall-orbit-cold",
|
|
263
|
+
staleDecisionAbsent: true,
|
|
264
|
+
evidence: [
|
|
265
|
+
{
|
|
266
|
+
kind: "recall_audit",
|
|
267
|
+
id: "recall-orbit-cold",
|
|
268
|
+
label: "Cold-start recall audit",
|
|
269
|
+
locator: "fixture://remnic/recall-audit/recall-orbit-cold.json",
|
|
270
|
+
capture: "fixture",
|
|
271
|
+
},
|
|
272
|
+
],
|
|
273
|
+
},
|
|
274
|
+
},
|
|
275
|
+
{
|
|
276
|
+
occurredAt: at(34),
|
|
277
|
+
idempotencyKey: "fixture-015",
|
|
278
|
+
payload: {
|
|
279
|
+
kind: "test_result",
|
|
280
|
+
testId: "test-after-correction",
|
|
281
|
+
decisionId: "decision-refresh-after-expiry",
|
|
282
|
+
correctionId: "correction-token-refresh",
|
|
283
|
+
command: "npm test -- token-policy.test.ts",
|
|
284
|
+
status: "passed",
|
|
285
|
+
summary: "The cold agent reused the session token and the integration contract passed.",
|
|
286
|
+
durationMs: 391,
|
|
287
|
+
evidence: [testEvidence, correctionEvidence],
|
|
288
|
+
},
|
|
289
|
+
},
|
|
290
|
+
{
|
|
291
|
+
occurredAt: at(36),
|
|
292
|
+
idempotencyKey: "fixture-016",
|
|
293
|
+
payload: {
|
|
294
|
+
kind: "mission_completed",
|
|
295
|
+
outcome: "recovered",
|
|
296
|
+
summary: "One approved correction reached a cold agent and changed the observable outcome.",
|
|
297
|
+
evidence: [testEvidence, approvalEvidence],
|
|
298
|
+
},
|
|
299
|
+
},
|
|
300
|
+
];
|
|
301
|
+
}
|