agentfootprint 7.22.0 → 7.22.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/dist/adapters/hosting/agentcore.js +68 -8
- package/dist/adapters/hosting/agentcore.js.map +1 -1
- package/dist/adapters/memory/agentcore.js +116 -11
- package/dist/adapters/memory/agentcore.js.map +1 -1
- package/dist/esm/adapters/hosting/agentcore.d.ts +34 -4
- package/dist/esm/adapters/hosting/agentcore.js +68 -8
- package/dist/esm/adapters/hosting/agentcore.js.map +1 -1
- package/dist/esm/adapters/memory/agentcore.d.ts +59 -1
- package/dist/esm/adapters/memory/agentcore.js +114 -10
- package/dist/esm/adapters/memory/agentcore.js.map +1 -1
- package/dist/esm/hosting/envelope.d.ts +31 -2
- package/dist/esm/hosting/envelope.js +42 -7
- package/dist/esm/hosting/envelope.js.map +1 -1
- package/dist/esm/hosting/errors.d.ts +44 -1
- package/dist/esm/hosting/errors.js +81 -1
- package/dist/esm/hosting/errors.js.map +1 -1
- package/dist/esm/hosting/index.d.ts +5 -1
- package/dist/esm/hosting/index.js +5 -1
- package/dist/esm/hosting/index.js.map +1 -1
- package/dist/esm/hosting/standingAgent.d.ts +9 -0
- package/dist/esm/hosting/standingAgent.js +30 -9
- package/dist/esm/hosting/standingAgent.js.map +1 -1
- package/dist/esm/lib/storedPreview.d.ts +58 -0
- package/dist/esm/lib/storedPreview.js +97 -0
- package/dist/esm/lib/storedPreview.js.map +1 -0
- package/dist/esm/memory-providers.d.ts +1 -1
- package/dist/esm/memory-providers.js +1 -1
- package/dist/esm/memory-providers.js.map +1 -1
- package/dist/hosting/envelope.js +42 -7
- package/dist/hosting/envelope.js.map +1 -1
- package/dist/hosting/errors.js +83 -2
- package/dist/hosting/errors.js.map +1 -1
- package/dist/hosting/index.js +6 -1
- package/dist/hosting/index.js.map +1 -1
- package/dist/hosting/standingAgent.js +29 -8
- package/dist/hosting/standingAgent.js.map +1 -1
- package/dist/lib/storedPreview.js +102 -0
- package/dist/lib/storedPreview.js.map +1 -0
- package/dist/memory-providers.js +2 -1
- package/dist/memory-providers.js.map +1 -1
- package/dist/types/adapters/hosting/agentcore.d.ts +34 -4
- package/dist/types/adapters/hosting/agentcore.d.ts.map +1 -1
- package/dist/types/adapters/memory/agentcore.d.ts +59 -1
- package/dist/types/adapters/memory/agentcore.d.ts.map +1 -1
- package/dist/types/hosting/envelope.d.ts +31 -2
- package/dist/types/hosting/envelope.d.ts.map +1 -1
- package/dist/types/hosting/errors.d.ts +44 -1
- package/dist/types/hosting/errors.d.ts.map +1 -1
- package/dist/types/hosting/index.d.ts +5 -1
- package/dist/types/hosting/index.d.ts.map +1 -1
- package/dist/types/hosting/standingAgent.d.ts +9 -0
- package/dist/types/hosting/standingAgent.d.ts.map +1 -1
- package/dist/types/lib/storedPreview.d.ts +59 -0
- package/dist/types/lib/storedPreview.d.ts.map +1 -0
- package/dist/types/memory-providers.d.ts +1 -1
- package/dist/types/memory-providers.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -47,9 +47,67 @@ import type { MemoryIdentity } from '../../memory/identity/index.js';
|
|
|
47
47
|
export interface AgentCoreEvent {
|
|
48
48
|
/** AgentCore server-assigned event id (needed to delete it). */
|
|
49
49
|
readonly eventId: string;
|
|
50
|
-
/**
|
|
50
|
+
/**
|
|
51
|
+
* The MemoryEntry decoded from the event's blob payload.
|
|
52
|
+
*
|
|
53
|
+
* `null` means the event carried **no blob at all** — nothing in it ever
|
|
54
|
+
* claimed to be one of this store's entries (AgentCore writes events of its
|
|
55
|
+
* own into the same log), so it is skipped as an absence.
|
|
56
|
+
*
|
|
57
|
+
* A blob that IS present and cannot be decoded never arrives here: it raises
|
|
58
|
+
* {@link UnreadableMemoryEntryError} at the decode step instead. An unreadable
|
|
59
|
+
* stored memory and an absent one are different facts, and only one of them is
|
|
60
|
+
* safe to answer with silence.
|
|
61
|
+
*/
|
|
51
62
|
readonly entry: MemoryEntry | null;
|
|
52
63
|
}
|
|
64
|
+
/**
|
|
65
|
+
* Thrown when an event carries a blob that is **present but unreadable** where a
|
|
66
|
+
* `MemoryEntry` should be.
|
|
67
|
+
*
|
|
68
|
+
* The same law the session store inherits from `hosting/envelope`, applied to
|
|
69
|
+
* this port's own shape: an unreadable stored memory and an absent one are
|
|
70
|
+
* different facts, and only one of them is safe to answer with silence. A
|
|
71
|
+
* memory that exists and cannot be decoded, quietly skipped, is an agent that
|
|
72
|
+
* answers as if it were never told — indistinguishable from working, until
|
|
73
|
+
* somebody notices the assistant has forgotten a customer's address.
|
|
74
|
+
*
|
|
75
|
+
* ── Why the law lives HERE and not in a shared reader ────────────────────────
|
|
76
|
+
* `MemoryStore` has no envelope and no shared reading path — nothing on this
|
|
77
|
+
* port corresponds to `hosting`'s `readFormat`, the single choke point every
|
|
78
|
+
* session adapter reads through — so the refusal belongs at the one place raw
|
|
79
|
+
* bytes become an entry: this adapter's decode step. If a `MemoryStore` reading
|
|
80
|
+
* path ever grows such a choke point, the law moves there and this becomes a
|
|
81
|
+
* caller of it.
|
|
82
|
+
*
|
|
83
|
+
* ── Why this one QUOTES NOTHING, where the session refusal quotes a prefix ───
|
|
84
|
+
* Same discipline — "never the stored content" — and the same shared helper, but
|
|
85
|
+
* a different answer, because the two shapes differ in where content begins. A
|
|
86
|
+
* `CheckpointEnvelope` opens `{ format, data, savedAt }`, so a capped prefix is
|
|
87
|
+
* metadata. A `MemoryEntry` opens `{ id, value, … }`, so its SECOND field is the
|
|
88
|
+
* thing somebody asked the agent to remember, and even a short prefix would
|
|
89
|
+
* print it. `storedShape` therefore reports type, length, JSON-ness and the
|
|
90
|
+
* opening character and nothing else — still enough to recognise "an object
|
|
91
|
+
* stringified by something that was not JSON", which is the only diagnosis this
|
|
92
|
+
* message needs to support.
|
|
93
|
+
*/
|
|
94
|
+
export declare class UnreadableMemoryEntryError extends TypeError {
|
|
95
|
+
readonly code: "ERR_UNREADABLE_MEMORY_ENTRY";
|
|
96
|
+
/** AgentCore's id for the event those bytes came from. */
|
|
97
|
+
readonly eventId: string;
|
|
98
|
+
/** The AgentCore session (this store's conversation) it was stored under. */
|
|
99
|
+
readonly sessionId: string;
|
|
100
|
+
/**
|
|
101
|
+
* What came back, described by SHAPE — type, length, JSON-ness, opening
|
|
102
|
+
* character. Never a quote: on this port the stored bytes are the memory.
|
|
103
|
+
*/
|
|
104
|
+
readonly storedShape: string;
|
|
105
|
+
constructor(input: {
|
|
106
|
+
eventId: string;
|
|
107
|
+
sessionId: string;
|
|
108
|
+
stored: unknown;
|
|
109
|
+
});
|
|
110
|
+
}
|
|
53
111
|
/**
|
|
54
112
|
* Minimal, entry-semantic surface the store uses. The real implementation
|
|
55
113
|
* (`createAgentCoreClient`) maps these onto `CreateEvent` / `ListEvents` /
|
|
@@ -41,6 +41,65 @@
|
|
|
41
41
|
* in use. Emits: N/A (storage adapters don't emit).
|
|
42
42
|
*/
|
|
43
43
|
import { lazyRequire } from '../../lib/lazyRequire.js';
|
|
44
|
+
import { describeStoredShape } from '../../lib/storedPreview.js';
|
|
45
|
+
/**
|
|
46
|
+
* Thrown when an event carries a blob that is **present but unreadable** where a
|
|
47
|
+
* `MemoryEntry` should be.
|
|
48
|
+
*
|
|
49
|
+
* The same law the session store inherits from `hosting/envelope`, applied to
|
|
50
|
+
* this port's own shape: an unreadable stored memory and an absent one are
|
|
51
|
+
* different facts, and only one of them is safe to answer with silence. A
|
|
52
|
+
* memory that exists and cannot be decoded, quietly skipped, is an agent that
|
|
53
|
+
* answers as if it were never told — indistinguishable from working, until
|
|
54
|
+
* somebody notices the assistant has forgotten a customer's address.
|
|
55
|
+
*
|
|
56
|
+
* ── Why the law lives HERE and not in a shared reader ────────────────────────
|
|
57
|
+
* `MemoryStore` has no envelope and no shared reading path — nothing on this
|
|
58
|
+
* port corresponds to `hosting`'s `readFormat`, the single choke point every
|
|
59
|
+
* session adapter reads through — so the refusal belongs at the one place raw
|
|
60
|
+
* bytes become an entry: this adapter's decode step. If a `MemoryStore` reading
|
|
61
|
+
* path ever grows such a choke point, the law moves there and this becomes a
|
|
62
|
+
* caller of it.
|
|
63
|
+
*
|
|
64
|
+
* ── Why this one QUOTES NOTHING, where the session refusal quotes a prefix ───
|
|
65
|
+
* Same discipline — "never the stored content" — and the same shared helper, but
|
|
66
|
+
* a different answer, because the two shapes differ in where content begins. A
|
|
67
|
+
* `CheckpointEnvelope` opens `{ format, data, savedAt }`, so a capped prefix is
|
|
68
|
+
* metadata. A `MemoryEntry` opens `{ id, value, … }`, so its SECOND field is the
|
|
69
|
+
* thing somebody asked the agent to remember, and even a short prefix would
|
|
70
|
+
* print it. `storedShape` therefore reports type, length, JSON-ness and the
|
|
71
|
+
* opening character and nothing else — still enough to recognise "an object
|
|
72
|
+
* stringified by something that was not JSON", which is the only diagnosis this
|
|
73
|
+
* message needs to support.
|
|
74
|
+
*/
|
|
75
|
+
export class UnreadableMemoryEntryError extends TypeError {
|
|
76
|
+
code = 'ERR_UNREADABLE_MEMORY_ENTRY';
|
|
77
|
+
/** AgentCore's id for the event those bytes came from. */
|
|
78
|
+
eventId;
|
|
79
|
+
/** The AgentCore session (this store's conversation) it was stored under. */
|
|
80
|
+
sessionId;
|
|
81
|
+
/**
|
|
82
|
+
* What came back, described by SHAPE — type, length, JSON-ness, opening
|
|
83
|
+
* character. Never a quote: on this port the stored bytes are the memory.
|
|
84
|
+
*/
|
|
85
|
+
storedShape;
|
|
86
|
+
constructor(input) {
|
|
87
|
+
const shape = describeStoredShape(input.stored);
|
|
88
|
+
super(`[memory] AgentCoreStore: event '${input.eventId}' in session '${input.sessionId}' holds ` +
|
|
89
|
+
`a STORED memory this adapter cannot read. An unreadable stored memory and an absent ` +
|
|
90
|
+
`one are different facts, and only one of them is safe to answer with silence — so ` +
|
|
91
|
+
`this refuses rather than handing back a shorter list that reads as "nothing was ` +
|
|
92
|
+
`remembered". What the store handed back is ${shape}; none of it is quoted here, ` +
|
|
93
|
+
`because on this port those bytes ARE the memory. Entries written before 7.22.1 were ` +
|
|
94
|
+
`stored as objects and come back as this service's own toString() rendering, which is ` +
|
|
95
|
+
`lossy and cannot be decoded: delete them, or point this store at a fresh memory ` +
|
|
96
|
+
`resource.`);
|
|
97
|
+
this.name = 'UnreadableMemoryEntryError';
|
|
98
|
+
this.eventId = input.eventId;
|
|
99
|
+
this.sessionId = input.sessionId;
|
|
100
|
+
this.storedShape = shape;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
44
103
|
const ID_MAX = 99;
|
|
45
104
|
/** Build an AgentCore-safe id from arbitrary identity parts (`[A-Za-z0-9_-]`, bounded). */
|
|
46
105
|
function safeId(prefix, raw) {
|
|
@@ -339,14 +398,48 @@ function fnv1a(s) {
|
|
|
339
398
|
}
|
|
340
399
|
return (h >>> 0).toString(36);
|
|
341
400
|
}
|
|
342
|
-
/**
|
|
343
|
-
|
|
401
|
+
/**
|
|
402
|
+
* Pull the MemoryEntry out of an AgentCore event's `payload` (a single `blob`
|
|
403
|
+
* document) — this adapter's ONE decode step, and therefore the only place that
|
|
404
|
+
* can tell "no entry here" apart from "an entry nobody can read".
|
|
405
|
+
*
|
|
406
|
+
* ── Why a string is the normal case ──────────────────────────────────────────
|
|
407
|
+
* Entries are written as JSON **text** (see `createEvent` below), so the blob
|
|
408
|
+
* comes back a string and is parsed here. Objects are still accepted: a
|
|
409
|
+
* caller-supplied `client` may hand back a real object, and refusing it would
|
|
410
|
+
* break a seam that never had this problem.
|
|
411
|
+
*
|
|
412
|
+
* Three outcomes, and the middle one is the fix:
|
|
413
|
+
* • no `blob` in any part → `null`. Nothing claimed to be an entry — AgentCore
|
|
414
|
+
* writes events of its own into the same log — so it is skipped.
|
|
415
|
+
* • a blob that cannot be decoded → **throws** {@link UnreadableMemoryEntryError}.
|
|
416
|
+
* Skipping it would shorten a `list()` by one and read as "that memory was
|
|
417
|
+
* never stored", which is the silent failure this release exists to end.
|
|
418
|
+
* • a decodable blob → the entry.
|
|
419
|
+
*/
|
|
420
|
+
function entryFromPayload(payload, event) {
|
|
344
421
|
if (!Array.isArray(payload))
|
|
345
422
|
return null;
|
|
346
423
|
for (const p of payload) {
|
|
347
|
-
|
|
348
|
-
|
|
424
|
+
if (!p || typeof p !== 'object' || !('blob' in p))
|
|
425
|
+
continue;
|
|
426
|
+
const blob = p.blob;
|
|
427
|
+
// A part with no blob VALUE is not an entry either — keep looking.
|
|
428
|
+
if (blob === null || blob === undefined)
|
|
429
|
+
continue;
|
|
430
|
+
if (typeof blob === 'object')
|
|
349
431
|
return blob;
|
|
432
|
+
if (typeof blob === 'string') {
|
|
433
|
+
try {
|
|
434
|
+
const parsed = JSON.parse(blob);
|
|
435
|
+
if (parsed !== null && typeof parsed === 'object')
|
|
436
|
+
return parsed;
|
|
437
|
+
}
|
|
438
|
+
catch {
|
|
439
|
+
/* fall through to the refusal, with the ORIGINAL bytes to describe */
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
throw new UnreadableMemoryEntryError({ ...event, stored: blob });
|
|
350
443
|
}
|
|
351
444
|
return null;
|
|
352
445
|
}
|
|
@@ -382,13 +475,21 @@ function createAgentCoreClient(region, injected) {
|
|
|
382
475
|
};
|
|
383
476
|
return {
|
|
384
477
|
async createEvent({ memoryId, actorId, sessionId, entry }) {
|
|
385
|
-
// The entry is stored as a single `blob` document (PayloadType.blob =
|
|
478
|
+
// The entry is stored as a single `blob` document (PayloadType.blob =
|
|
479
|
+
// __DocumentType), and it goes in as JSON TEXT, not as the object.
|
|
480
|
+
// Field-learned on the session store and true of every blob this service
|
|
481
|
+
// holds: hand it an object and it stores its own host language's
|
|
482
|
+
// `toString()` rendering — `{id=m-1, value={...}}` — and returns THAT
|
|
483
|
+
// string, which is not JSON and cannot be turned back into an entry. A
|
|
484
|
+
// `MemoryEntry` is defined as something a store can hold (the port's
|
|
485
|
+
// stores round-trip it through JSON already), so the encoding is ours to
|
|
486
|
+
// pick and the honest pick is the one whose bytes come back unchanged.
|
|
386
487
|
await send(mod.CreateEventCommand, 'CreateEventCommand', {
|
|
387
488
|
memoryId,
|
|
388
489
|
actorId,
|
|
389
490
|
sessionId,
|
|
390
491
|
eventTimestamp: new Date(),
|
|
391
|
-
payload: [{ blob: entry }],
|
|
492
|
+
payload: [{ blob: JSON.stringify(entry) }],
|
|
392
493
|
});
|
|
393
494
|
},
|
|
394
495
|
async listEvents({ memoryId, actorId, sessionId, maxResults, nextToken }) {
|
|
@@ -400,10 +501,13 @@ function createAgentCoreClient(region, injected) {
|
|
|
400
501
|
...(maxResults !== undefined && { maxResults }),
|
|
401
502
|
...(nextToken !== undefined && { nextToken }),
|
|
402
503
|
}));
|
|
403
|
-
const events = (r?.events ?? []).map((ev) =>
|
|
404
|
-
eventId
|
|
405
|
-
entry
|
|
406
|
-
|
|
504
|
+
const events = (r?.events ?? []).map((ev) => {
|
|
505
|
+
const eventId = ev.eventId ?? '';
|
|
506
|
+
// A page containing one unreadable entry fails the READ. Returning the
|
|
507
|
+
// rest would be a list that is quietly one memory short, which is the
|
|
508
|
+
// shape of the failure nobody notices.
|
|
509
|
+
return { eventId, entry: entryFromPayload(ev.payload, { eventId, sessionId }) };
|
|
510
|
+
});
|
|
407
511
|
return r?.nextToken ? { events, nextToken: r.nextToken } : { events };
|
|
408
512
|
},
|
|
409
513
|
async deleteEvent({ memoryId, actorId, sessionId, eventId }) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentcore.js","sourceRoot":"","sources":["../../../../src/adapters/memory/agentcore.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agentcore.js","sourceRoot":"","sources":["../../../../src/adapters/memory/agentcore.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,24 @@
|
|
|
19
19
|
* while a person is still waiting on a question nobody mentioned. That is a
|
|
20
20
|
* half-restore wearing a happy path, which is the exact failure the format field
|
|
21
21
|
* exists to prevent.
|
|
22
|
+
*
|
|
23
|
+
* ── The same rule one step earlier: unreadable ≠ absent ──────────────────────
|
|
24
|
+
* A format nobody knows is one way a store can hand back something unusable.
|
|
25
|
+
* The other is bytes that are not an envelope at all — a store that kept its own
|
|
26
|
+
* encoding and gave back its host language's `toString()` of the object rather
|
|
27
|
+
* than the object, say. **An unreadable stored conversation and an absent one
|
|
28
|
+
* are different facts, and only one of them is safe to answer with a fresh
|
|
29
|
+
* start.** Absent is ordinary. Unreadable means a conversation EXISTS and this
|
|
30
|
+
* runtime cannot see it, and answering that with a fresh start is invisible from
|
|
31
|
+
* the outside — it looks exactly like a new user — until a deployment boundary
|
|
32
|
+
* hands somebody a blank slate where their conversation was.
|
|
33
|
+
*
|
|
34
|
+
* So {@link readFormat} — the ONE place a stored value is inspected, and
|
|
35
|
+
* therefore the place every reader and every store adapter inherits from —
|
|
36
|
+
* raises {@link UnreadableEnvelopeError} by name, with the session and a short
|
|
37
|
+
* prefix of what it found. Decoding is an adapter's business (only the adapter
|
|
38
|
+
* knows its transport's encoding); "these bytes are nobody's readable session"
|
|
39
|
+
* is everybody's, so it is refused here, once.
|
|
22
40
|
*/
|
|
23
41
|
import { type AgentRunCheckpoint } from '../core/runCheckpoint.js';
|
|
24
42
|
import type { CheckpointEnvelope, ConversationEnvelope, PausedRun, PausedRunEnvelope } from './types.js';
|
|
@@ -58,6 +76,10 @@ export declare function toPausedEnvelope(paused: PausedRun): PausedRunEnvelope;
|
|
|
58
76
|
* else wrote, in a format this runtime may not know, and typing the parameter
|
|
59
77
|
* as the happy shape would be assuming the very thing that needs checking.
|
|
60
78
|
*
|
|
79
|
+
* @throws UnreadableEnvelopeError when what came back is present but is not an
|
|
80
|
+
* envelope at all — bytes a store kept in its own encoding, say. Never
|
|
81
|
+
* `undefined`: a conversation that exists and cannot be read is not the same
|
|
82
|
+
* fact as one that was never there.
|
|
61
83
|
* @throws TypeError naming the format when it is one this runtime cannot read;
|
|
62
84
|
* naming the missing field when the conversation inside is malformed; and
|
|
63
85
|
* pointing at {@link readPausedRun} when the envelope holds a paused run,
|
|
@@ -82,13 +104,20 @@ export declare function readPausedRun(envelope: unknown): PausedRun;
|
|
|
82
104
|
* produced them rather than whoever read them next; it has no business caring
|
|
83
105
|
* whether the session inside is mid-conversation or mid-question.
|
|
84
106
|
*
|
|
107
|
+
* Pass `sessionId` and the refusal names the conversation, which is what turns
|
|
108
|
+
* a log line into an incident somebody can act on. Pass it whenever you have it
|
|
109
|
+
* — a store always does.
|
|
110
|
+
*
|
|
111
|
+
* @throws UnreadableEnvelopeError when the stored value is present but is not an
|
|
112
|
+
* envelope at all. That is the case a store must NOT answer with `undefined`:
|
|
113
|
+
* see the module header.
|
|
85
114
|
* @throws TypeError naming the format when this runtime cannot read it, or the
|
|
86
115
|
* missing field when the payload is malformed.
|
|
87
116
|
*
|
|
88
117
|
* @example
|
|
89
118
|
* async hydrate(sessionId) {
|
|
90
119
|
* const stored = await myStore.get(sessionId);
|
|
91
|
-
* return stored === undefined ? undefined : checkEnvelope(stored);
|
|
120
|
+
* return stored === undefined ? undefined : checkEnvelope(stored, sessionId);
|
|
92
121
|
* }
|
|
93
122
|
*/
|
|
94
|
-
export declare function checkEnvelope(envelope: unknown): CheckpointEnvelope;
|
|
123
|
+
export declare function checkEnvelope(envelope: unknown, sessionId?: string): CheckpointEnvelope;
|
|
@@ -19,7 +19,26 @@
|
|
|
19
19
|
* while a person is still waiting on a question nobody mentioned. That is a
|
|
20
20
|
* half-restore wearing a happy path, which is the exact failure the format field
|
|
21
21
|
* exists to prevent.
|
|
22
|
+
*
|
|
23
|
+
* ── The same rule one step earlier: unreadable ≠ absent ──────────────────────
|
|
24
|
+
* A format nobody knows is one way a store can hand back something unusable.
|
|
25
|
+
* The other is bytes that are not an envelope at all — a store that kept its own
|
|
26
|
+
* encoding and gave back its host language's `toString()` of the object rather
|
|
27
|
+
* than the object, say. **An unreadable stored conversation and an absent one
|
|
28
|
+
* are different facts, and only one of them is safe to answer with a fresh
|
|
29
|
+
* start.** Absent is ordinary. Unreadable means a conversation EXISTS and this
|
|
30
|
+
* runtime cannot see it, and answering that with a fresh start is invisible from
|
|
31
|
+
* the outside — it looks exactly like a new user — until a deployment boundary
|
|
32
|
+
* hands somebody a blank slate where their conversation was.
|
|
33
|
+
*
|
|
34
|
+
* So {@link readFormat} — the ONE place a stored value is inspected, and
|
|
35
|
+
* therefore the place every reader and every store adapter inherits from —
|
|
36
|
+
* raises {@link UnreadableEnvelopeError} by name, with the session and a short
|
|
37
|
+
* prefix of what it found. Decoding is an adapter's business (only the adapter
|
|
38
|
+
* knows its transport's encoding); "these bytes are nobody's readable session"
|
|
39
|
+
* is everybody's, so it is refused here, once.
|
|
22
40
|
*/
|
|
41
|
+
import { UnreadableEnvelopeError } from './errors.js';
|
|
23
42
|
import { validateCheckpoint } from '../core/runCheckpoint.js';
|
|
24
43
|
/** Every format this runtime can read. Add, never redefine. */
|
|
25
44
|
const KNOWN_FORMATS = ['conversation-v1', 'flowchart-v1'];
|
|
@@ -63,6 +82,10 @@ export function toPausedEnvelope(paused) {
|
|
|
63
82
|
* else wrote, in a format this runtime may not know, and typing the parameter
|
|
64
83
|
* as the happy shape would be assuming the very thing that needs checking.
|
|
65
84
|
*
|
|
85
|
+
* @throws UnreadableEnvelopeError when what came back is present but is not an
|
|
86
|
+
* envelope at all — bytes a store kept in its own encoding, say. Never
|
|
87
|
+
* `undefined`: a conversation that exists and cannot be read is not the same
|
|
88
|
+
* fact as one that was never there.
|
|
66
89
|
* @throws TypeError naming the format when it is one this runtime cannot read;
|
|
67
90
|
* naming the missing field when the conversation inside is malformed; and
|
|
68
91
|
* pointing at {@link readPausedRun} when the envelope holds a paused run,
|
|
@@ -101,17 +124,24 @@ export function readPausedRun(envelope) {
|
|
|
101
124
|
* produced them rather than whoever read them next; it has no business caring
|
|
102
125
|
* whether the session inside is mid-conversation or mid-question.
|
|
103
126
|
*
|
|
127
|
+
* Pass `sessionId` and the refusal names the conversation, which is what turns
|
|
128
|
+
* a log line into an incident somebody can act on. Pass it whenever you have it
|
|
129
|
+
* — a store always does.
|
|
130
|
+
*
|
|
131
|
+
* @throws UnreadableEnvelopeError when the stored value is present but is not an
|
|
132
|
+
* envelope at all. That is the case a store must NOT answer with `undefined`:
|
|
133
|
+
* see the module header.
|
|
104
134
|
* @throws TypeError naming the format when this runtime cannot read it, or the
|
|
105
135
|
* missing field when the payload is malformed.
|
|
106
136
|
*
|
|
107
137
|
* @example
|
|
108
138
|
* async hydrate(sessionId) {
|
|
109
139
|
* const stored = await myStore.get(sessionId);
|
|
110
|
-
* return stored === undefined ? undefined : checkEnvelope(stored);
|
|
140
|
+
* return stored === undefined ? undefined : checkEnvelope(stored, sessionId);
|
|
111
141
|
* }
|
|
112
142
|
*/
|
|
113
|
-
export function checkEnvelope(envelope) {
|
|
114
|
-
if (readFormat(envelope) === 'flowchart-v1') {
|
|
143
|
+
export function checkEnvelope(envelope, sessionId) {
|
|
144
|
+
if (readFormat(envelope, sessionId) === 'flowchart-v1') {
|
|
115
145
|
validatePausedRun(envelope.data);
|
|
116
146
|
}
|
|
117
147
|
else {
|
|
@@ -120,12 +150,17 @@ export function checkEnvelope(envelope) {
|
|
|
120
150
|
return envelope;
|
|
121
151
|
}
|
|
122
152
|
/**
|
|
123
|
-
* The one place a
|
|
124
|
-
* same thing in the same words
|
|
153
|
+
* The one place a stored value is inspected, so every refusal in this file says
|
|
154
|
+
* the same thing in the same words — and so the "unreadable is not absent" law
|
|
155
|
+
* holds for every reader here and every store adapter that calls one, including
|
|
156
|
+
* ones nobody has written yet.
|
|
125
157
|
*/
|
|
126
|
-
function readFormat(envelope) {
|
|
158
|
+
function readFormat(envelope, sessionId) {
|
|
127
159
|
if (!envelope || typeof envelope !== 'object' || Array.isArray(envelope)) {
|
|
128
|
-
|
|
160
|
+
// Present but not an envelope. NOT `undefined`, NOT a fresh start: see the
|
|
161
|
+
// module header. Still a `TypeError` by ancestry, so an existing catch is
|
|
162
|
+
// unaffected — it just has a name and a session now.
|
|
163
|
+
throw new UnreadableEnvelopeError(envelope, sessionId);
|
|
129
164
|
}
|
|
130
165
|
const found = envelope.format;
|
|
131
166
|
if (typeof found !== 'string' || !KNOWN_FORMATS.includes(found)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../../src/hosting/envelope.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../../src/hosting/envelope.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAA2B,MAAM,0BAA0B,CAAC;AAQvF,+DAA+D;AAC/D,MAAM,aAAa,GAAsB,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAC;AAE7E;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAC,UAA8B;IACvD,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;AAC9E,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAiB;IAChD,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;AACvE,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,YAAY,CAAC,QAAiB;IAC5C,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,cAAc,EAAE,CAAC;QAC5C,MAAM,IAAI,SAAS,CACjB,mFAAmF;YACjF,mFAAmF;YACnF,kFAAkF;YAClF,uDAAuD,CAC1D,CAAC;IACJ,CAAC;IACD,OAAO,kBAAkB,CAAE,QAAiC,CAAC,IAAI,CAAC,CAAC;AACrE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,QAAiB;IAC7C,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,iBAAiB,EAAE,CAAC;QAC/C,MAAM,IAAI,SAAS,CACjB,sFAAsF;YACpF,6EAA6E,CAChF,CAAC;IACJ,CAAC;IACD,OAAO,iBAAiB,CAAE,QAA8B,CAAC,IAAI,CAAC,CAAC;AACjE,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,aAAa,CAAC,QAAiB,EAAE,SAAkB;IACjE,IAAI,UAAU,CAAC,QAAQ,EAAE,SAAS,CAAC,KAAK,cAAc,EAAE,CAAC;QACvD,iBAAiB,CAAE,QAA8B,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC;SAAM,CAAC;QACN,kBAAkB,CAAE,QAAiC,CAAC,IAAI,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,QAA8B,CAAC;AACxC,CAAC;AAED;;;;;GAKG;AACH,SAAS,UAAU,CAAC,QAAiB,EAAE,SAAkB;IACvD,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzE,2EAA2E;QAC3E,0EAA0E;QAC1E,qDAAqD;QACrD,MAAM,IAAI,uBAAuB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACzD,CAAC;IACD,MAAM,KAAK,GAAI,QAAwC,CAAC,MAAM,CAAC;IAC/D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,SAAS,CACjB,wCAAwC,MAAM,CAAC,KAAK,CAAC,KAAK;YACxD,uBAAuB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;YACnD,6EAA6E;YAC7E,sDAAsD,CACzD,CAAC;IACJ,CAAC;IACD,OAAO,KAA2C,CAAC;AACrD,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,iBAAiB,CAAC,KAAc;IACvC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,MAAM,IAAI,SAAS,CAAC,wCAAwC,CAAC,CAAC;IAChE,CAAC;IACD,MAAM,GAAG,GAAG,KAA2B,CAAC;IACxC,MAAM,EAAE,GAAG,GAAG,CAAC,UAAiD,CAAC;IACjE,IAAI,CAAC,EAAE,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;QAClC,MAAM,IAAI,SAAS,CACjB,8DAA8D;YAC5D,gFAAgF;YAChF,6BAA6B,CAChC,CAAC;IACJ,CAAC;IACD,IACE,OAAO,EAAE,CAAC,aAAa,KAAK,QAAQ;QACpC,CAAC,EAAE,CAAC,WAAW;QACf,OAAO,EAAE,CAAC,WAAW,KAAK,QAAQ,EAClC,CAAC;QACD,MAAM,IAAI,SAAS,CACjB,+EAA+E;YAC7E,qFAAqF,CACxF,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,SAAS,CACjB,2EAA2E,CAC5E,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACpD,MAAM,IAAI,SAAS,CACjB,+EAA+E;YAC7E,yEAAyE,CAC5E,CAAC;IACJ,CAAC;IACD,kBAAkB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACrC,OAAO,GAAgB,CAAC;AAC1B,CAAC"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* same words.
|
|
4
4
|
*
|
|
5
5
|
* A refusal that varies by adapter is a refusal nobody can write a test or a
|
|
6
|
-
* runbook against. These
|
|
6
|
+
* runbook against. These six carry a stable `code`, name WHO refused, and say
|
|
7
7
|
* what the caller should do instead. Adapters map the codes onto whatever their
|
|
8
8
|
* transport uses to say "no" — that mapping is the adapter's business and lives
|
|
9
9
|
* in the adapter, never here.
|
|
@@ -110,6 +110,49 @@ export declare class NoPendingAskError extends Error {
|
|
|
110
110
|
readonly sessionId: string;
|
|
111
111
|
constructor(sessionId: string);
|
|
112
112
|
}
|
|
113
|
+
/**
|
|
114
|
+
* Thrown when a store hands back something that is **present but unreadable**
|
|
115
|
+
* where a `CheckpointEnvelope` should be.
|
|
116
|
+
*
|
|
117
|
+
* The law, in the words of the field report that bought it:
|
|
118
|
+
*
|
|
119
|
+
* > *An unreadable stored conversation and an absent one are different facts,
|
|
120
|
+
* > and only one of them is safe to answer with a fresh start.*
|
|
121
|
+
*
|
|
122
|
+
* Absent is ordinary — a new session has no conversation, and answering it
|
|
123
|
+
* fresh is exactly right. Unreadable is not ordinary: a conversation EXISTS,
|
|
124
|
+
* somebody is in the middle of it, and starting fresh over the top of it looks
|
|
125
|
+
* identical to the happy path from the outside. Nobody finds that until a
|
|
126
|
+
* deployment boundary hands a user a stranger's blank slate. So this refuses,
|
|
127
|
+
* loudly, naming the session — the one thing a silent `undefined` could never
|
|
128
|
+
* do.
|
|
129
|
+
*
|
|
130
|
+
* It extends `TypeError` because that is what it always was: the refusal gained
|
|
131
|
+
* a name, a `code` and the session it is about, but a caller who was already
|
|
132
|
+
* catching a `TypeError` from a reader keeps working.
|
|
133
|
+
*
|
|
134
|
+
* `storedPreview` quotes at most 64 characters (`STORED_PREVIEW_LIMIT`, in
|
|
135
|
+
* `lib/storedPreview` — one cap, shared by every adapter that has to describe
|
|
136
|
+
* bytes it could not read) — enough to recognise a mangled encoding at a
|
|
137
|
+
* glance, never the conversation itself.
|
|
138
|
+
*/
|
|
139
|
+
export declare class UnreadableEnvelopeError extends TypeError {
|
|
140
|
+
readonly code: "ERR_UNREADABLE_ENVELOPE";
|
|
141
|
+
/** The session those bytes were stored under, when the refuser knows it. */
|
|
142
|
+
readonly sessionId?: string;
|
|
143
|
+
/** A short, deliberately truncated rendering of what the store handed back. */
|
|
144
|
+
readonly storedPreview: string;
|
|
145
|
+
constructor(stored: unknown, sessionId?: string);
|
|
146
|
+
/**
|
|
147
|
+
* The same refusal, naming the session — for a reader that knew the bytes
|
|
148
|
+
* were unreadable but not whose conversation they were.
|
|
149
|
+
*
|
|
150
|
+
* Returns a copy rather than mutating: an error already thrown past somebody
|
|
151
|
+
* is a fact about a moment, and editing it under them is how two stack traces
|
|
152
|
+
* end up disagreeing about what happened.
|
|
153
|
+
*/
|
|
154
|
+
withSession(sessionId: string): UnreadableEnvelopeError;
|
|
155
|
+
}
|
|
113
156
|
/**
|
|
114
157
|
* Assert that a host can do something, and throw a corrective error naming the
|
|
115
158
|
* adapter when it cannot.
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* same words.
|
|
4
4
|
*
|
|
5
5
|
* A refusal that varies by adapter is a refusal nobody can write a test or a
|
|
6
|
-
* runbook against. These
|
|
6
|
+
* runbook against. These six carry a stable `code`, name WHO refused, and say
|
|
7
7
|
* what the caller should do instead. Adapters map the codes onto whatever their
|
|
8
8
|
* transport uses to say "no" — that mapping is the adapter's business and lives
|
|
9
9
|
* in the adapter, never here.
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
* `Error`: nothing branches on "I forgot to feature-detect", it just needs to
|
|
18
18
|
* say so loudly and name the adapter it is talking about.
|
|
19
19
|
*/
|
|
20
|
+
import { previewStored } from '../lib/storedPreview.js';
|
|
20
21
|
/**
|
|
21
22
|
* Thrown when a request arrives at a host that is shutting down or shut down.
|
|
22
23
|
*
|
|
@@ -167,6 +168,85 @@ export class NoPendingAskError extends Error {
|
|
|
167
168
|
this.sessionId = sessionId;
|
|
168
169
|
}
|
|
169
170
|
}
|
|
171
|
+
/**
|
|
172
|
+
* An already-computed preview, so {@link UnreadableEnvelopeError.withSession}
|
|
173
|
+
* can copy a refusal without being handed the stored bytes a second time. Not
|
|
174
|
+
* exported: nothing outside this file should be able to hand-write a preview.
|
|
175
|
+
*/
|
|
176
|
+
class StoredPreview {
|
|
177
|
+
text;
|
|
178
|
+
constructor(text) {
|
|
179
|
+
this.text = text;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Thrown when a store hands back something that is **present but unreadable**
|
|
184
|
+
* where a `CheckpointEnvelope` should be.
|
|
185
|
+
*
|
|
186
|
+
* The law, in the words of the field report that bought it:
|
|
187
|
+
*
|
|
188
|
+
* > *An unreadable stored conversation and an absent one are different facts,
|
|
189
|
+
* > and only one of them is safe to answer with a fresh start.*
|
|
190
|
+
*
|
|
191
|
+
* Absent is ordinary — a new session has no conversation, and answering it
|
|
192
|
+
* fresh is exactly right. Unreadable is not ordinary: a conversation EXISTS,
|
|
193
|
+
* somebody is in the middle of it, and starting fresh over the top of it looks
|
|
194
|
+
* identical to the happy path from the outside. Nobody finds that until a
|
|
195
|
+
* deployment boundary hands a user a stranger's blank slate. So this refuses,
|
|
196
|
+
* loudly, naming the session — the one thing a silent `undefined` could never
|
|
197
|
+
* do.
|
|
198
|
+
*
|
|
199
|
+
* It extends `TypeError` because that is what it always was: the refusal gained
|
|
200
|
+
* a name, a `code` and the session it is about, but a caller who was already
|
|
201
|
+
* catching a `TypeError` from a reader keeps working.
|
|
202
|
+
*
|
|
203
|
+
* `storedPreview` quotes at most 64 characters (`STORED_PREVIEW_LIMIT`, in
|
|
204
|
+
* `lib/storedPreview` — one cap, shared by every adapter that has to describe
|
|
205
|
+
* bytes it could not read) — enough to recognise a mangled encoding at a
|
|
206
|
+
* glance, never the conversation itself.
|
|
207
|
+
*/
|
|
208
|
+
export class UnreadableEnvelopeError extends TypeError {
|
|
209
|
+
code = 'ERR_UNREADABLE_ENVELOPE';
|
|
210
|
+
/** The session those bytes were stored under, when the refuser knows it. */
|
|
211
|
+
sessionId;
|
|
212
|
+
/** A short, deliberately truncated rendering of what the store handed back. */
|
|
213
|
+
storedPreview;
|
|
214
|
+
constructor(stored, sessionId) {
|
|
215
|
+
const preview = stored instanceof StoredPreview ? stored.text : previewStored(stored);
|
|
216
|
+
super(`[hosting] ` +
|
|
217
|
+
(sessionId === undefined
|
|
218
|
+
? `a stored session is present but unreadable`
|
|
219
|
+
: `session '${sessionId}' has a STORED conversation this runtime cannot read`) +
|
|
220
|
+
`. An unreadable stored conversation and an absent one are different facts, and ` +
|
|
221
|
+
`only one of them is safe to answer with a fresh start — so this refuses instead ` +
|
|
222
|
+
`of starting over on top of a conversation that exists. ` +
|
|
223
|
+
`What the store handed back looks like: ${preview}. ` +
|
|
224
|
+
`Only a short prefix is ever quoted here — the rest of those bytes is the ` +
|
|
225
|
+
`conversation. ` +
|
|
226
|
+
`Expected { format, data, savedAt } as written by toEnvelope() / toPausedEnvelope(). ` +
|
|
227
|
+
`A store that keeps its own encoding must decode back to that object before ` +
|
|
228
|
+
`handing it over.`);
|
|
229
|
+
this.name = 'UnreadableEnvelopeError';
|
|
230
|
+
if (sessionId !== undefined)
|
|
231
|
+
this.sessionId = sessionId;
|
|
232
|
+
this.storedPreview = preview;
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* The same refusal, naming the session — for a reader that knew the bytes
|
|
236
|
+
* were unreadable but not whose conversation they were.
|
|
237
|
+
*
|
|
238
|
+
* Returns a copy rather than mutating: an error already thrown past somebody
|
|
239
|
+
* is a fact about a moment, and editing it under them is how two stack traces
|
|
240
|
+
* end up disagreeing about what happened.
|
|
241
|
+
*/
|
|
242
|
+
withSession(sessionId) {
|
|
243
|
+
if (this.sessionId !== undefined)
|
|
244
|
+
return this;
|
|
245
|
+
const named = new UnreadableEnvelopeError(new StoredPreview(this.storedPreview), sessionId);
|
|
246
|
+
named.cause = this;
|
|
247
|
+
return named;
|
|
248
|
+
}
|
|
249
|
+
}
|
|
170
250
|
/**
|
|
171
251
|
* Assert that a host can do something, and throw a corrective error naming the
|
|
172
252
|
* adapter when it cannot.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/hosting/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/hosting/errors.ts"],"names":[],"mappings":"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"}
|