agentfootprint 2.2.0 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +52 -0
- package/CLAUDE.md +52 -0
- package/README.md +49 -0
- package/README.proposed.md +258 -0
- package/ai-instructions/claude-code/SKILL.md +24 -5
- package/ai-instructions/clinerules +22 -5
- package/ai-instructions/copilot-instructions.md +22 -5
- package/ai-instructions/cursor/agentfootprint.md +22 -5
- package/ai-instructions/kiro/agentfootprint.md +22 -5
- package/ai-instructions/windsurfrules +22 -5
- package/dist/adapters/llm/AnthropicProvider.js +0 -31
- package/dist/adapters/llm/AnthropicProvider.js.map +1 -1
- package/dist/adapters/llm/BedrockProvider.js +2 -28
- package/dist/adapters/llm/BedrockProvider.js.map +1 -1
- package/dist/adapters/llm/BrowserAnthropicProvider.js +1 -31
- package/dist/adapters/llm/BrowserAnthropicProvider.js.map +1 -1
- package/dist/adapters/llm/BrowserOpenAIProvider.js +1 -11
- package/dist/adapters/llm/BrowserOpenAIProvider.js.map +1 -1
- package/dist/adapters/llm/MockProvider.js +35 -1
- package/dist/adapters/llm/MockProvider.js.map +1 -1
- package/dist/adapters/llm/OpenAIProvider.js +3 -29
- package/dist/adapters/llm/OpenAIProvider.js.map +1 -1
- package/dist/adapters/memory/agentcore.js +305 -0
- package/dist/adapters/memory/agentcore.js.map +1 -0
- package/dist/adapters/memory/redis.js +287 -0
- package/dist/adapters/memory/redis.js.map +1 -0
- package/dist/esm/adapters/llm/AnthropicProvider.js +0 -31
- package/dist/esm/adapters/llm/AnthropicProvider.js.map +1 -1
- package/dist/esm/adapters/llm/BedrockProvider.js +2 -28
- package/dist/esm/adapters/llm/BedrockProvider.js.map +1 -1
- package/dist/esm/adapters/llm/BrowserAnthropicProvider.js +1 -31
- package/dist/esm/adapters/llm/BrowserAnthropicProvider.js.map +1 -1
- package/dist/esm/adapters/llm/BrowserOpenAIProvider.js +1 -11
- package/dist/esm/adapters/llm/BrowserOpenAIProvider.js.map +1 -1
- package/dist/esm/adapters/llm/MockProvider.js +35 -1
- package/dist/esm/adapters/llm/MockProvider.js.map +1 -1
- package/dist/esm/adapters/llm/OpenAIProvider.js +3 -29
- package/dist/esm/adapters/llm/OpenAIProvider.js.map +1 -1
- package/dist/esm/adapters/memory/agentcore.js +301 -0
- package/dist/esm/adapters/memory/agentcore.js.map +1 -0
- package/dist/esm/adapters/memory/redis.js +283 -0
- package/dist/esm/adapters/memory/redis.js.map +1 -0
- package/dist/esm/index.js +2 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/injection-engine/index.js +0 -54
- package/dist/esm/lib/injection-engine/index.js.map +1 -1
- package/dist/esm/lib/mcp/index.js +1 -0
- package/dist/esm/lib/mcp/index.js.map +1 -1
- package/dist/esm/lib/mcp/mcpClient.js +29 -24
- package/dist/esm/lib/mcp/mcpClient.js.map +1 -1
- package/dist/esm/lib/mcp/mockMcpClient.js +97 -0
- package/dist/esm/lib/mcp/mockMcpClient.js.map +1 -0
- package/dist/esm/lib/rag/defineRAG.js +0 -18
- package/dist/esm/lib/rag/defineRAG.js.map +1 -1
- package/dist/esm/lib/rag/indexDocuments.js +39 -4
- package/dist/esm/lib/rag/indexDocuments.js.map +1 -1
- package/dist/esm/memory/causal/loadSnapshot.js +1 -1
- package/dist/esm/memory/define.js +0 -14
- package/dist/esm/memory/define.js.map +1 -1
- package/dist/esm/memory/define.types.js +0 -10
- package/dist/esm/memory/define.types.js.map +1 -1
- package/dist/esm/resilience/index.js +0 -44
- package/dist/esm/resilience/index.js.map +1 -1
- package/dist/esm/stream.js +0 -29
- package/dist/esm/stream.js.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/instructions.js +21 -0
- package/dist/instructions.js.map +1 -0
- package/dist/lib/injection-engine/index.js +0 -54
- package/dist/lib/injection-engine/index.js.map +1 -1
- package/dist/lib/instructions/defineInstruction.js +35 -0
- package/dist/lib/instructions/defineInstruction.js.map +1 -0
- package/dist/lib/instructions/evaluator.js +38 -0
- package/dist/lib/instructions/evaluator.js.map +1 -0
- package/dist/lib/instructions/index.js +48 -0
- package/dist/lib/instructions/index.js.map +1 -0
- package/dist/lib/instructions/types.js +22 -0
- package/dist/lib/instructions/types.js.map +1 -0
- package/dist/lib/mcp/index.js +3 -1
- package/dist/lib/mcp/index.js.map +1 -1
- package/dist/lib/mcp/mcpClient.js +29 -24
- package/dist/lib/mcp/mcpClient.js.map +1 -1
- package/dist/lib/mcp/mockMcpClient.js +101 -0
- package/dist/lib/mcp/mockMcpClient.js.map +1 -0
- package/dist/lib/rag/defineRAG.js +0 -18
- package/dist/lib/rag/defineRAG.js.map +1 -1
- package/dist/lib/rag/indexDocuments.js +39 -4
- package/dist/lib/rag/indexDocuments.js.map +1 -1
- package/dist/memory/causal/loadSnapshot.js +1 -1
- package/dist/memory/conversationHelpers.js +39 -0
- package/dist/memory/conversationHelpers.js.map +1 -0
- package/dist/memory/define.js +0 -14
- package/dist/memory/define.js.map +1 -1
- package/dist/memory/define.types.js +0 -10
- package/dist/memory/define.types.js.map +1 -1
- package/dist/resilience/index.js +0 -44
- package/dist/resilience/index.js.map +1 -1
- package/dist/stream.js +0 -29
- package/dist/stream.js.map +1 -1
- package/dist/types/adapters/llm/AnthropicProvider.d.ts +0 -31
- package/dist/types/adapters/llm/AnthropicProvider.d.ts.map +1 -1
- package/dist/types/adapters/llm/BedrockProvider.d.ts +2 -28
- package/dist/types/adapters/llm/BedrockProvider.d.ts.map +1 -1
- package/dist/types/adapters/llm/BrowserAnthropicProvider.d.ts +1 -31
- package/dist/types/adapters/llm/BrowserAnthropicProvider.d.ts.map +1 -1
- package/dist/types/adapters/llm/BrowserOpenAIProvider.d.ts +1 -11
- package/dist/types/adapters/llm/BrowserOpenAIProvider.d.ts.map +1 -1
- package/dist/types/adapters/llm/MockProvider.d.ts +45 -0
- package/dist/types/adapters/llm/MockProvider.d.ts.map +1 -1
- package/dist/types/adapters/llm/OpenAIProvider.d.ts +3 -29
- package/dist/types/adapters/llm/OpenAIProvider.d.ts.map +1 -1
- package/dist/types/adapters/memory/agentcore.d.ts +157 -0
- package/dist/types/adapters/memory/agentcore.d.ts.map +1 -0
- package/dist/types/adapters/memory/redis.d.ts +126 -0
- package/dist/types/adapters/memory/redis.d.ts.map +1 -0
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/instructions.d.ts +5 -0
- package/dist/types/instructions.d.ts.map +1 -0
- package/dist/types/lib/injection-engine/index.d.ts +0 -54
- package/dist/types/lib/injection-engine/index.d.ts.map +1 -1
- package/dist/types/lib/instructions/defineInstruction.d.ts +22 -0
- package/dist/types/lib/instructions/defineInstruction.d.ts.map +1 -0
- package/dist/types/lib/instructions/evaluator.d.ts +11 -0
- package/dist/types/lib/instructions/evaluator.d.ts.map +1 -0
- package/dist/types/lib/instructions/index.d.ts +44 -0
- package/dist/types/lib/instructions/index.d.ts.map +1 -0
- package/dist/types/lib/instructions/types.d.ts +100 -0
- package/dist/types/lib/instructions/types.d.ts.map +1 -0
- package/dist/types/lib/mcp/index.d.ts +1 -0
- package/dist/types/lib/mcp/index.d.ts.map +1 -1
- package/dist/types/lib/mcp/mcpClient.d.ts +0 -17
- package/dist/types/lib/mcp/mcpClient.d.ts.map +1 -1
- package/dist/types/lib/mcp/mockMcpClient.d.ts +66 -0
- package/dist/types/lib/mcp/mockMcpClient.d.ts.map +1 -0
- package/dist/types/lib/mcp/types.d.ts +2 -0
- package/dist/types/lib/mcp/types.d.ts.map +1 -1
- package/dist/types/lib/rag/defineRAG.d.ts +18 -21
- package/dist/types/lib/rag/defineRAG.d.ts.map +1 -1
- package/dist/types/lib/rag/indexDocuments.d.ts +30 -1
- package/dist/types/lib/rag/indexDocuments.d.ts.map +1 -1
- package/dist/types/memory/causal/loadSnapshot.d.ts +1 -1
- package/dist/types/memory/conversationHelpers.d.ts +19 -0
- package/dist/types/memory/conversationHelpers.d.ts.map +1 -0
- package/dist/types/memory/define.d.ts +0 -14
- package/dist/types/memory/define.d.ts.map +1 -1
- package/dist/types/memory/define.types.d.ts +2 -12
- package/dist/types/memory/define.types.d.ts.map +1 -1
- package/dist/types/resilience/index.d.ts +0 -44
- package/dist/types/resilience/index.d.ts.map +1 -1
- package/dist/types/stream.d.ts +0 -29
- package/dist/types/stream.d.ts.map +1 -1
- package/package.json +20 -1
|
@@ -36,6 +36,14 @@ const DEFAULT_IDENTITY = { conversationId: '_global' };
|
|
|
36
36
|
* Embed + persist documents. Returns the count actually indexed
|
|
37
37
|
* (skips duplicates if the store rejects them). Throws on embedder
|
|
38
38
|
* failure or store error — fail loud at startup is desirable.
|
|
39
|
+
*
|
|
40
|
+
* **Re-indexing semantics:** entries are written with `version: 1` and
|
|
41
|
+
* `putMany` (most adapters: last-write-wins). Re-running this helper
|
|
42
|
+
* after the store has been mutated by other writers may stomp their
|
|
43
|
+
* versions. For idempotent corpus refresh, either delete-then-index
|
|
44
|
+
* or use a custom upsert via `store.putIfVersion()` per document. A
|
|
45
|
+
* first-class `mode: 'upsert' | 'replace'` API is planned for a
|
|
46
|
+
* future release.
|
|
39
47
|
*/
|
|
40
48
|
async function indexDocuments(store, embedder, documents, options = {}) {
|
|
41
49
|
if (!store)
|
|
@@ -48,11 +56,21 @@ async function indexDocuments(store, embedder, documents, options = {}) {
|
|
|
48
56
|
const embedderId = options.embedderId ?? 'default-embedder';
|
|
49
57
|
const now = Date.now();
|
|
50
58
|
const ttl = options.ttlMs ? now + options.ttlMs : undefined;
|
|
51
|
-
// Embed in batch when supported, else fall back to
|
|
59
|
+
// Embed in batch when supported, else fall back to capped-concurrency
|
|
60
|
+
// single calls. Unlimited concurrency on a large corpus would
|
|
61
|
+
// saturate embedder rate limits; cap defaults to 8.
|
|
52
62
|
const texts = documents.map((d) => d.content);
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
63
|
+
let vectors;
|
|
64
|
+
if (embedder.embedBatch) {
|
|
65
|
+
vectors = await embedder.embedBatch({
|
|
66
|
+
texts,
|
|
67
|
+
...(options.signal && { signal: options.signal }),
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
const limit = Math.max(1, options.maxConcurrency ?? 8);
|
|
72
|
+
vectors = await embedWithConcurrency(embedder, texts, limit, options.signal);
|
|
73
|
+
}
|
|
56
74
|
const entries = documents.map((doc, i) => {
|
|
57
75
|
const vec = vectors[i];
|
|
58
76
|
return {
|
|
@@ -74,4 +92,21 @@ async function indexDocuments(store, embedder, documents, options = {}) {
|
|
|
74
92
|
return entries.length;
|
|
75
93
|
}
|
|
76
94
|
exports.indexDocuments = indexDocuments;
|
|
95
|
+
async function embedWithConcurrency(embedder, texts, limit, signal) {
|
|
96
|
+
const results = new Array(texts.length);
|
|
97
|
+
let next = 0;
|
|
98
|
+
const workers = Array.from({ length: Math.min(limit, texts.length) }, async () => {
|
|
99
|
+
for (;;) {
|
|
100
|
+
const i = next++;
|
|
101
|
+
if (i >= texts.length)
|
|
102
|
+
return;
|
|
103
|
+
results[i] = await embedder.embed({
|
|
104
|
+
text: texts[i],
|
|
105
|
+
...(signal && { signal }),
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
await Promise.all(workers);
|
|
110
|
+
return results;
|
|
111
|
+
}
|
|
77
112
|
//# sourceMappingURL=indexDocuments.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indexDocuments.js","sourceRoot":"","sources":["../../../src/lib/rag/indexDocuments.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;;;
|
|
1
|
+
{"version":3,"file":"indexDocuments.js","sourceRoot":"","sources":["../../../src/lib/rag/indexDocuments.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* Strict-threshold semantics:
|
|
14
14
|
* When `minScore` is set and no past snapshot meets it, returns an
|
|
15
15
|
* empty `formatted`. NO fallback — garbage past context is worse than
|
|
16
|
-
* no context.
|
|
16
|
+
* no context.
|
|
17
17
|
*
|
|
18
18
|
* Empty-query handling:
|
|
19
19
|
* No user message → no embedding → no search → empty result.
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Pure functions for conversation message management.
|
|
4
|
+
* No state — just transformations on message arrays.
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.createToolResults = exports.lastMessageHasToolCalls = exports.lastAssistantMessage = exports.lastMessage = exports.appendMessage = void 0;
|
|
8
|
+
const types_1 = require("../types");
|
|
9
|
+
/** Append a message to the conversation. Returns new array. */
|
|
10
|
+
function appendMessage(messages, message) {
|
|
11
|
+
return [...messages, message];
|
|
12
|
+
}
|
|
13
|
+
exports.appendMessage = appendMessage;
|
|
14
|
+
/** Get the last message in the conversation. */
|
|
15
|
+
function lastMessage(messages) {
|
|
16
|
+
return messages[messages.length - 1];
|
|
17
|
+
}
|
|
18
|
+
exports.lastMessage = lastMessage;
|
|
19
|
+
/** Get the last assistant message. */
|
|
20
|
+
function lastAssistantMessage(messages) {
|
|
21
|
+
for (let i = messages.length - 1; i >= 0; i--) {
|
|
22
|
+
if (messages[i].role === 'assistant')
|
|
23
|
+
return messages[i];
|
|
24
|
+
}
|
|
25
|
+
return undefined;
|
|
26
|
+
}
|
|
27
|
+
exports.lastAssistantMessage = lastAssistantMessage;
|
|
28
|
+
/** Check if the last assistant message has tool calls. */
|
|
29
|
+
function lastMessageHasToolCalls(messages) {
|
|
30
|
+
const last = lastAssistantMessage(messages);
|
|
31
|
+
return last ? (0, types_1.hasToolCalls)(last) : false;
|
|
32
|
+
}
|
|
33
|
+
exports.lastMessageHasToolCalls = lastMessageHasToolCalls;
|
|
34
|
+
/** Create tool result messages from a map of tool call ID → result. */
|
|
35
|
+
function createToolResults(results) {
|
|
36
|
+
return results.map((r) => (0, types_1.toolResultMessage)(r.content, r.toolCallId));
|
|
37
|
+
}
|
|
38
|
+
exports.createToolResults = createToolResults;
|
|
39
|
+
//# sourceMappingURL=conversationHelpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversationHelpers.js","sourceRoot":"","sources":["../../src/memory/conversationHelpers.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,oCAA2D;AAE3D,+DAA+D;AAC/D,SAAgB,aAAa,CAAC,QAAmB,EAAE,OAAgB;IACjE,OAAO,CAAC,GAAG,QAAQ,EAAE,OAAO,CAAC,CAAC;AAChC,CAAC;AAFD,sCAEC;AAED,gDAAgD;AAChD,SAAgB,WAAW,CAAC,QAAmB;IAC7C,OAAO,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACvC,CAAC;AAFD,kCAEC;AAED,sCAAsC;AACtC,SAAgB,oBAAoB,CAAC,QAAmB;IACtD,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9C,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW;YAAE,OAAO,QAAQ,CAAC,CAAC,CAAqB,CAAC;IAC/E,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AALD,oDAKC;AAED,0DAA0D;AAC1D,SAAgB,uBAAuB,CAAC,QAAmB;IACzD,MAAM,IAAI,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAC5C,OAAO,IAAI,CAAC,CAAC,CAAC,IAAA,oBAAY,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAC3C,CAAC;AAHD,0DAGC;AAED,uEAAuE;AACvE,SAAgB,iBAAiB,CAC/B,OAAuD;IAEvD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,yBAAiB,EAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;AACxE,CAAC;AAJD,8CAIC"}
|
package/dist/memory/define.js
CHANGED
|
@@ -24,22 +24,8 @@
|
|
|
24
24
|
* `agentfootprint.context.injected` with `source: 'memory'`
|
|
25
25
|
* when their formatter writes to the messages slot.
|
|
26
26
|
*
|
|
27
|
-
* 8-panel review (2026-04-28):
|
|
28
|
-
* - LLM Systems ✅ asRole knob honored when present, defaults to 'system'
|
|
29
|
-
* - Architect ✅ per-id scope keys (`memoryInjectionKey(id)`)
|
|
30
|
-
* - API Designer ✅ one factory; CAUSAL stays here, no separate snapshotMemory
|
|
31
|
-
* - Performance ✅ default `MEMORY_TIMING.TURN_START`; pipelines compiled once
|
|
32
|
-
* - Privacy ✅ redact field passes through
|
|
33
|
-
* - ML / IR ✅ threshold maps to semantic.minScore strictly; no fallback
|
|
34
|
-
* - SoftEng ✅ unsupported combos throw with clear remediation hint
|
|
35
|
-
* - TS Engineer ✅ discriminated union narrowing preserved across switches
|
|
36
|
-
*
|
|
37
|
-
* Book reference: AI Agents — The Definitive Guide, Ch 10 (Memory,
|
|
38
|
-
* Autonomy, Long-Horizon Use — chapter still unavailable in pre-pub).
|
|
39
|
-
*
|
|
40
27
|
* @see ./define.types.ts for the const-objects + types
|
|
41
28
|
* @see ./pipeline/*.ts for the existing pipeline factories this dispatches to
|
|
42
|
-
* @see MEMORY.md load-bearing design memory
|
|
43
29
|
*/
|
|
44
30
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
45
31
|
exports.unwrapMemoryFlowChart = exports.defineMemory = void 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define.js","sourceRoot":"","sources":["../../src/memory/define.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"define.js","sourceRoot":"","sources":["../../src/memory/define.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,16 +33,6 @@
|
|
|
33
33
|
* `agentfootprint.context.injected` event with `source: 'memory'`
|
|
34
34
|
* when its read subflow places content into the messages slot.
|
|
35
35
|
*
|
|
36
|
-
* 8-panel review (2026-04-28):
|
|
37
|
-
* - LLM Systems ✅ asRole knob added so memories can land as user/system/assistant
|
|
38
|
-
* - Architect ✅ per-id scope keys (`memoryInjection_${id}`) — multi-memory layering safe
|
|
39
|
-
* - API Designer ✅ ONE factory for all four types incl. Causal (no separate `snapshotMemory`)
|
|
40
|
-
* - Performance ✅ default `MEMORY_TIMING.TURN_START` (was per-iteration — perf trap)
|
|
41
|
-
* - Privacy ✅ `redact?` API hook reserved
|
|
42
|
-
* - ML / IR ✅ causal snapshots tagged with original query for retrieval embedding
|
|
43
|
-
* - SoftEng ✅ discriminated union with `kind` discriminator → full TS narrowing
|
|
44
|
-
* - TS Engineer ✅ generic over `MemoryEntry<T>` payload preserves type-safety
|
|
45
|
-
*
|
|
46
36
|
* @see ./define.ts for the `defineMemory()` factory itself
|
|
47
37
|
* @see ../../docs-site for guides + the 7 strategy examples
|
|
48
38
|
* @see MEMORY.md for the load-bearing design memory
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define.types.js","sourceRoot":"","sources":["../../src/memory/define.types.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"define.types.js","sourceRoot":"","sources":["../../src/memory/define.types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;;;AAOH,uEAAuE;AAEvE;;;;;;;;GAQG;AACU,QAAA,YAAY,GAAG;IAC1B,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,WAAW;IACtB,MAAM,EAAE,QAAQ;CACR,CAAC;AAGX;;;;;;GAMG;AACU,QAAA,iBAAiB,GAAG;IAC/B,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,WAAW;IACtB,KAAK,EAAE,MAAM;IACb,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;CACR,CAAC;AAGX;;;;;;GAMG;AACU,QAAA,aAAa,GAAG;IAC3B,eAAe,EAAE,iBAAiB;IAClC,UAAU,EAAE,YAAY;CAChB,CAAC;AAGX;;;;;;;;GAQG;AACU,QAAA,oBAAoB,GAAG;IAClC,SAAS,EAAE,WAAW;IACtB,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,WAAW;IACtB,IAAI,EAAE,MAAM;CACJ,CAAC;AA4MX,uEAAuE;AAEvE,SAAgB,YAAY,CAAC,KAAa;IACxC,OAAQ,MAAM,CAAC,MAAM,CAAC,oBAAY,CAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACnE,CAAC;AAFD,oCAEC;AAED,SAAgB,oBAAoB,CAAC,KAAa;IAChD,OAAQ,MAAM,CAAC,MAAM,CAAC,yBAAiB,CAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACxE,CAAC;AAFD,oDAEC;AAED,SAAgB,cAAc,CAAC,KAAa;IAC1C,OAAQ,MAAM,CAAC,MAAM,CAAC,qBAAa,CAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACpE,CAAC;AAFD,wCAEC;AAED,SAAgB,oBAAoB,CAAC,KAAa;IAChD,OAAQ,MAAM,CAAC,MAAM,CAAC,4BAAoB,CAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC3E,CAAC;AAFD,oDAEC;AAED,uEAAuE;AAEvE;;;;;GAKG;AACU,QAAA,2BAA2B,GAAG,kBAA2B,CAAC;AAEvE,SAAgB,kBAAkB,CAAC,EAAU;IAC3C,OAAO,GAAG,mCAA2B,GAAG,EAAE,EAAE,CAAC;AAC/C,CAAC;AAFD,gDAEC;AAED,SAAgB,oBAAoB,CAAC,GAAW;IAC9C,OAAO,GAAG,CAAC,UAAU,CAAC,mCAA2B,CAAC,CAAC;AACrD,CAAC;AAFD,oDAEC"}
|
package/dist/resilience/index.js
CHANGED
|
@@ -15,50 +15,6 @@
|
|
|
15
15
|
*
|
|
16
16
|
* Reads as: try anthropic; on failure fall back to openai; the whole
|
|
17
17
|
* chain is wrapped in retry with 5 attempts.
|
|
18
|
-
*
|
|
19
|
-
* ─── 7-panel design review (2026-04-28) ────────────────────────────
|
|
20
|
-
*
|
|
21
|
-
* LLM-AI system design ✓ Decorator pattern around the existing
|
|
22
|
-
* `LLMProvider` port — no new contract.
|
|
23
|
-
* Stacks naturally; observation hooks
|
|
24
|
-
* (`onRetry`, `onFallback`) keep the
|
|
25
|
-
* recorder ecosystem informed.
|
|
26
|
-
* Performance ✓ Zero overhead on success path (one
|
|
27
|
-
* `try/await` per call). Backoff delays
|
|
28
|
-
* use AbortSignal-aware sleep — no busy
|
|
29
|
-
* wait, no leaked timers.
|
|
30
|
-
* Scalability ✓ Per-call state only. Composition is
|
|
31
|
-
* constant-time per attempt; chain depth
|
|
32
|
-
* doesn't grow runtime cost.
|
|
33
|
-
* Research alignment ✓ Right-fold of `withFallback` matches
|
|
34
|
-
* the standard chain-of-responsibility
|
|
35
|
-
* shape. No exotic resumption — once a
|
|
36
|
-
* stream yields, it commits.
|
|
37
|
-
* Flexibility ✓ Predicates (`shouldRetry`,
|
|
38
|
-
* `shouldFallback`) and hooks
|
|
39
|
-
* (`onRetry`, `onFallback`) make every
|
|
40
|
-
* policy decision overridable. Default
|
|
41
|
-
* policies match common real-world signals
|
|
42
|
-
* (4xx skip, 429 retry, AbortError pass).
|
|
43
|
-
* Abstraction-modular ✓ Three primitives, one purpose each.
|
|
44
|
-
* `fallbackProvider` is sugar over chained
|
|
45
|
-
* `withFallback`. No surprises.
|
|
46
|
-
* Software engineering ✓ Pure decorators — no shared state.
|
|
47
|
-
* Every option has a documented default.
|
|
48
|
-
* Tests cover unit + scenario + integration
|
|
49
|
-
* + property + security + performance + ROI.
|
|
50
|
-
*
|
|
51
|
-
* ─── 7-pattern test coverage ───────────────────────────────────────
|
|
52
|
-
*
|
|
53
|
-
* Unit test/resilience/unit/withRetry.test.ts
|
|
54
|
-
* test/resilience/unit/withFallback.test.ts
|
|
55
|
-
* test/resilience/unit/fallbackProvider.test.ts
|
|
56
|
-
* Scenario resilience-patterns.test.ts → "production recipes"
|
|
57
|
-
* Integration resilience-patterns.test.ts → "Agent + resilient provider"
|
|
58
|
-
* Property resilience-patterns.test.ts → "invariants"
|
|
59
|
-
* Security resilience-patterns.test.ts → "hostile inputs"
|
|
60
|
-
* Performance resilience-patterns.test.ts → "performance"
|
|
61
|
-
* ROI resilience-patterns.test.ts → "realistic SLO budgets"
|
|
62
18
|
*/
|
|
63
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
64
20
|
exports.fallbackProvider = exports.withFallback = exports.withRetry = void 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/resilience/index.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/resilience/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;;AAEH,+CAAkE;AAAzD,yGAAA,SAAS,OAAA;AAClB,qDAA2E;AAAlE,+GAAA,YAAY,OAAA;AACrB,6DAAuF;AAA9E,uHAAA,gBAAgB,OAAA"}
|
package/dist/stream.js
CHANGED
|
@@ -8,35 +8,6 @@
|
|
|
8
8
|
* framework that accepts an async iterable response body
|
|
9
9
|
* (Fetch Response, Express res.write, Hono streaming, etc.).
|
|
10
10
|
* Emits: N/A — observes only.
|
|
11
|
-
*
|
|
12
|
-
* ─── 7-panel design review (2026-04-28) ─────────────────────────────
|
|
13
|
-
*
|
|
14
|
-
* LLM-AI system design ✓ One-line-per-event SSE format. Each
|
|
15
|
-
* event = one observation; each chunk
|
|
16
|
-
* includes the `runtimeStageId` for
|
|
17
|
-
* cross-view binding.
|
|
18
|
-
* Performance ✓ AsyncIterable<string> — no buffering;
|
|
19
|
-
* yields each event as it arrives. Stops
|
|
20
|
-
* naturally when the run completes.
|
|
21
|
-
* Scalability ✓ Per-run instance. No shared state;
|
|
22
|
-
* many concurrent SSE streams safe.
|
|
23
|
-
* Research alignment ✓ Standard SSE wire format
|
|
24
|
-
* (text/event-stream). Browsers'
|
|
25
|
-
* native EventSource API consumes directly.
|
|
26
|
-
* Flexibility ✓ `format` option for full event payload
|
|
27
|
-
* vs slim text-only mode (chat UIs that
|
|
28
|
-
* only want token deltas). `filter`
|
|
29
|
-
* predicate gates events.
|
|
30
|
-
* Abstraction-modular ✓ One function (`toSSE`) + one class
|
|
31
|
-
* (`SSEFormatter`); class is sugar for
|
|
32
|
-
* consumers who prefer .pipeTo() shape.
|
|
33
|
-
* Software engineering ✓ Pure observer. No global state. Tests
|
|
34
|
-
* cover unit + scenario + property +
|
|
35
|
-
* security + performance.
|
|
36
|
-
*
|
|
37
|
-
* ─── 7-pattern test coverage ────────────────────────────────────────
|
|
38
|
-
*
|
|
39
|
-
* See `test/stream/unit/SSEFormatter.test.ts`.
|
|
40
11
|
*/
|
|
41
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
13
|
exports.encodeSSE = exports.SSEFormatter = exports.toSSE = void 0;
|
package/dist/stream.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream.js","sourceRoot":"","sources":["../src/stream.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"stream.js","sourceRoot":"","sources":["../src/stream.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,33 +7,6 @@
|
|
|
7
7
|
* recorders, or compositions.
|
|
8
8
|
* Emits: N/A — providers don't emit; recorders observe via Agent.
|
|
9
9
|
*
|
|
10
|
-
* ─── 7-panel design review (2026-04-28) ─────────────────────────────
|
|
11
|
-
*
|
|
12
|
-
* LLM-AI system design ✓ Native tool_use blocks. Round-trips
|
|
13
|
-
* assistant tool_calls via the new
|
|
14
|
-
* `LLMMessage.toolCalls` field — preserves
|
|
15
|
-
* multi-iteration ReAct correctness.
|
|
16
|
-
* Performance ✓ Single SDK call per `complete()`. Stream
|
|
17
|
-
* uses SDK's native iterator; no buffering.
|
|
18
|
-
* Scalability ✓ Stateless adapter. Concurrent runs share
|
|
19
|
-
* one provider instance freely.
|
|
20
|
-
* Research alignment ✓ Mirrors v1 AnthropicAdapter's tested
|
|
21
|
-
* message-conversion logic (origin/main
|
|
22
|
-
* `c6e11d0`); tool-result merge follows the
|
|
23
|
-
* documented Anthropic API expectation.
|
|
24
|
-
* Flexibility ✓ `_client` injection point for tests.
|
|
25
|
-
* `apiKey` falls back to env. `maxTokens`
|
|
26
|
-
* override per-construction or per-request.
|
|
27
|
-
* Abstraction-modular ✓ Two converters (toAnthropicMessages,
|
|
28
|
-
* fromAnthropicResponse) isolate the
|
|
29
|
-
* shape-shifting; `complete()` and
|
|
30
|
-
* `stream()` reuse them.
|
|
31
|
-
* Software engineering ✓ Duck-typed SDK shape (no hard import).
|
|
32
|
-
* Errors wrapped with provider tag for
|
|
33
|
-
* uniform downstream handling. Tests cover
|
|
34
|
-
* unit + scenario + integration + property
|
|
35
|
-
* + security + performance + ROI.
|
|
36
|
-
*
|
|
37
10
|
* ─── Limitations ────────────────────────────────────────────────────
|
|
38
11
|
*
|
|
39
12
|
* • Multi-modal content (images, video) NOT supported — the framework's
|
|
@@ -42,10 +15,6 @@
|
|
|
42
15
|
* in lockstep.
|
|
43
16
|
* • `responseFormat` (JSON-Schema-coerced output) NOT exposed
|
|
44
17
|
* — consumers can pass schema instructions via `systemPrompt`.
|
|
45
|
-
*
|
|
46
|
-
* ─── 7-pattern test coverage ────────────────────────────────────────
|
|
47
|
-
*
|
|
48
|
-
* See `test/adapters/llm/AnthropicProvider/*.test.ts`.
|
|
49
18
|
*/
|
|
50
19
|
import type { LLMChunk, LLMProvider, LLMRequest, LLMResponse } from '../types.js';
|
|
51
20
|
interface AnthropicClient {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnthropicProvider.d.ts","sourceRoot":"","sources":["../../../../src/adapters/llm/AnthropicProvider.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"AnthropicProvider.d.ts","sourceRoot":"","sources":["../../../../src/adapters/llm/AnthropicProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,40 +10,14 @@
|
|
|
10
10
|
*
|
|
11
11
|
* Requires: `npm install @aws-sdk/client-bedrock-runtime`
|
|
12
12
|
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* LLM-AI system design ✓ Converse API is model-agnostic — one
|
|
16
|
-
* adapter covers every Bedrock-hosted
|
|
17
|
-
* model. tool_use / tool_result blocks
|
|
18
|
-
* map cleanly to toolCalls.
|
|
19
|
-
* Performance ✓ Single SDK send() per `complete()`;
|
|
20
|
-
* ConverseStream for `stream()` yields
|
|
21
|
-
* deltas natively.
|
|
22
|
-
* Scalability ✓ Stateless adapter. AWS SDK handles
|
|
23
|
-
* credential refresh + region routing.
|
|
24
|
-
* Research alignment ✓ Mirrors v1 BedrockAdapter (origin/main
|
|
25
|
-
* `c6e11d0`). Maps same field renames
|
|
26
|
-
* (toolUseId, inputSchema.json, etc.).
|
|
27
|
-
* Flexibility ✓ `region` + `client` injectable. Model
|
|
28
|
-
* id passes through for fine-grained
|
|
29
|
-
* routing (cross-region inference profiles
|
|
30
|
-
* work as-is).
|
|
31
|
-
* Abstraction-modular ✓ Separate converters mirror the
|
|
32
|
-
* Anthropic/OpenAI adapters. Easy to keep
|
|
33
|
-
* in lockstep when LLMMessage evolves.
|
|
34
|
-
* Software engineering ✓ Duck-typed SDK shape. Errors wrapped
|
|
35
|
-
* with provider tag. Tests cover the
|
|
36
|
-
* 7-pattern matrix.
|
|
13
|
+
* The Converse API is model-agnostic — one adapter covers every
|
|
14
|
+
* Bedrock-hosted model (Claude, Llama, Mistral, Titan, Mixtral, ...).
|
|
37
15
|
*
|
|
38
16
|
* ─── Limitations ────────────────────────────────────────────────────
|
|
39
17
|
*
|
|
40
18
|
* • Multi-modal NOT supported (text content only).
|
|
41
19
|
* • Guardrail integration NOT exposed yet — pass via the SDK client
|
|
42
20
|
* directly if needed.
|
|
43
|
-
*
|
|
44
|
-
* ─── 7-pattern test coverage ────────────────────────────────────────
|
|
45
|
-
*
|
|
46
|
-
* See `test/adapters/unit/BedrockProvider.test.ts`.
|
|
47
21
|
*/
|
|
48
22
|
import type { LLMChunk, LLMProvider, LLMRequest, LLMResponse } from '../types.js';
|
|
49
23
|
interface BedrockClient {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BedrockProvider.d.ts","sourceRoot":"","sources":["../../../../src/adapters/llm/BedrockProvider.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"BedrockProvider.d.ts","sourceRoot":"","sources":["../../../../src/adapters/llm/BedrockProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EACV,QAAQ,EAER,WAAW,EACX,UAAU,EACV,WAAW,EAEZ,MAAM,aAAa,CAAC;AAIrB,UAAU,aAAa;IACrB,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1C;AAED,UAAU,sBAAsB;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjC,UAAU,CAAC,EAAE;QAAE,KAAK,EAAE,WAAW,EAAE,CAAA;KAAE,CAAC;IACtC,eAAe,CAAC,EAAE;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;KAC1B,CAAC;CACH;AAED,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,mBAAmB,EAAE,CAAC;CAChC;AAED,KAAK,mBAAmB,GACpB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,OAAO,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAA;CAAE,GAChF;IACE,UAAU,EAAE;QACV,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACjC,MAAM,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;KAC9B,CAAC;CACH,CAAC;AAEN,UAAU,WAAW;IACnB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;SAAE,CAAC;KAChD,CAAC;CACH;AAkCD,MAAM,WAAW,sBAAsB;IACrC,uEAAuE;IACvE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,gEAAgE;IAChE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,8CAA8C;IAC9C,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;IACjC;;;OAGG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE;QACnB,QAAQ,CAAC,QAAQ,EAAE,KAAK,KAAK,EAAE,sBAAsB,KAAK,OAAO,CAAC;QAClE,QAAQ,CAAC,cAAc,EAAE,KAAK,KAAK,EAAE,sBAAsB,KAAK,OAAO,CAAC;KACzE,CAAC;CACH;AAED,wBAAgB,OAAO,CAAC,OAAO,GAAE,sBAA2B,GAAG,WAAW,CA2EzE;AAED,qBAAa,eAAgB,YAAW,WAAW;IACjD,QAAQ,CAAC,IAAI,aAAa;IAC1B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAc;gBAExB,OAAO,GAAE,sBAA2B;IAIhD,QAAQ,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;IAI/C,MAAM,CAAC,GAAG,EAAE,UAAU,GAAG,aAAa,CAAC,QAAQ,CAAC;CAIjD"}
|
|
@@ -12,41 +12,11 @@
|
|
|
12
12
|
* header for direct browser-to-API calls. This is intentional — production
|
|
13
13
|
* apps should proxy through a backend.
|
|
14
14
|
*
|
|
15
|
-
* ─── 7-panel design review (2026-04-28) ─────────────────────────────
|
|
16
|
-
*
|
|
17
|
-
* LLM-AI system design ✓ Same message + tool conversion as the
|
|
18
|
-
* Node `AnthropicProvider`. Native tool_use
|
|
19
|
-
* blocks; `LLMMessage.toolCalls` round-trip.
|
|
20
|
-
* Performance ✓ One fetch() per `complete()`. Stream
|
|
21
|
-
* uses native `ReadableStream` via SSE
|
|
22
|
-
* parsing — no buffering past one chunk.
|
|
23
|
-
* Scalability ✓ Stateless. Multiple agents share one
|
|
24
|
-
* provider; browser fetch handles
|
|
25
|
-
* concurrent requests fine.
|
|
26
|
-
* Research alignment ✓ Mirrors v1 BrowserAnthropicAdapter
|
|
27
|
-
* (origin/main `c6e11d0`). Same headers,
|
|
28
|
-
* same SSE event shape.
|
|
29
|
-
* Flexibility ✓ `apiUrl` override for proxy/edge
|
|
30
|
-
* deployments. Custom `fetch` injection
|
|
31
|
-
* for tests + workers.
|
|
32
|
-
* Abstraction-modular ✓ Re-uses `toAnthropicMessages` /
|
|
33
|
-
* `fromAnthropicResponse` semantics from
|
|
34
|
-
* the Node adapter (small duplication kept
|
|
35
|
-
* local — both files stay readable).
|
|
36
|
-
* Software engineering ✓ Zero peer deps (browser fetch is
|
|
37
|
-
* ambient). Errors wrapped with status
|
|
38
|
-
* for `withRetry` policy hooks. SSE parser
|
|
39
|
-
* handles partial chunks.
|
|
40
|
-
*
|
|
41
15
|
* ─── Limitations ────────────────────────────────────────────────────
|
|
42
16
|
*
|
|
43
|
-
* • Multi-modal NOT .
|
|
17
|
+
* • Multi-modal NOT supported.
|
|
44
18
|
* • Browser CORS — works because Anthropic explicitly allows the
|
|
45
19
|
* dangerous-direct header. Future API changes could require a proxy.
|
|
46
|
-
*
|
|
47
|
-
* ─── 7-pattern test coverage ────────────────────────────────────────
|
|
48
|
-
*
|
|
49
|
-
* See `test/adapters/unit/BrowserAnthropicProvider.test.ts`.
|
|
50
20
|
*/
|
|
51
21
|
import type { LLMChunk, LLMProvider, LLMRequest, LLMResponse } from '../types.js';
|
|
52
22
|
export interface BrowserAnthropicProviderOptions {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BrowserAnthropicProvider.d.ts","sourceRoot":"","sources":["../../../../src/adapters/llm/BrowserAnthropicProvider.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"BrowserAnthropicProvider.d.ts","sourceRoot":"","sources":["../../../../src/adapters/llm/BrowserAnthropicProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EACV,QAAQ,EAER,WAAW,EACX,UAAU,EACV,WAAW,EAEZ,MAAM,aAAa,CAAC;AA6CrB,MAAM,WAAW,+BAA+B;IAC9C,iEAAiE;IACjE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,8DAA8D;IAC9D,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,wCAAwC;IACxC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,+DAA+D;IAC/D,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,iEAAiE;IACjE,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,KAAK,CAAC;CAChC;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,+BAA+B,GAAG,WAAW,CAuGtF;AAED,qBAAa,wBAAyB,YAAW,WAAW;IAC1D,QAAQ,CAAC,IAAI,uBAAuB;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAc;gBAExB,OAAO,EAAE,+BAA+B;IAIpD,QAAQ,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;IAI/C,MAAM,CAAC,GAAG,EAAE,UAAU,GAAG,aAAa,CAAC,QAAQ,CAAC;CAIjD"}
|
|
@@ -10,21 +10,11 @@
|
|
|
10
10
|
* Also works with OpenAI-compatible endpoints (Ollama, Together, vLLM)
|
|
11
11
|
* via `apiUrl`.
|
|
12
12
|
*
|
|
13
|
-
* ─── 7-panel review ─────────────────────────────────────────────────
|
|
14
|
-
*
|
|
15
|
-
* Same posture as `BrowserAnthropicProvider`: native fetch, SSE
|
|
16
|
-
* parser, stateless, error-wrapped, message-conversion mirrors the
|
|
17
|
-
* Node `OpenAIProvider`. See that adapter's review for full rubric.
|
|
18
|
-
*
|
|
19
13
|
* ─── Limitations ────────────────────────────────────────────────────
|
|
20
14
|
*
|
|
21
|
-
* • Multi-modal NOT .
|
|
15
|
+
* • Multi-modal NOT supported.
|
|
22
16
|
* • CORS depends on the endpoint — OpenAI requires the user-supplied
|
|
23
17
|
* key in the Authorization header, which they'll do explicitly.
|
|
24
|
-
*
|
|
25
|
-
* ─── 7-pattern test coverage ────────────────────────────────────────
|
|
26
|
-
*
|
|
27
|
-
* See `test/adapters/unit/BrowserOpenAIProvider.test.ts`.
|
|
28
18
|
*/
|
|
29
19
|
import type { LLMChunk, LLMProvider, LLMRequest, LLMResponse } from '../types.js';
|
|
30
20
|
export interface BrowserOpenAIProviderOptions {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BrowserOpenAIProvider.d.ts","sourceRoot":"","sources":["../../../../src/adapters/llm/BrowserOpenAIProvider.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"BrowserOpenAIProvider.d.ts","sourceRoot":"","sources":["../../../../src/adapters/llm/BrowserOpenAIProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EACV,QAAQ,EAER,WAAW,EACX,UAAU,EACV,WAAW,EAEZ,MAAM,aAAa,CAAC;AAsErB,MAAM,WAAW,4BAA4B;IAC3C,yBAAyB;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,2DAA2D;IAC3D,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,0BAA0B;IAC1B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,qEAAqE;IACrE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,sCAAsC;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,uDAAuD;IACvD,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,KAAK,CAAC;CAChC;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,4BAA4B,GAAG,WAAW,CAyGhF;AAED,qBAAa,qBAAsB,YAAW,WAAW;IACvD,QAAQ,CAAC,IAAI,oBAAoB;IACjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAc;gBAExB,OAAO,EAAE,4BAA4B;IAIjD,QAAQ,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;IAI/C,MAAM,CAAC,GAAG,EAAE,UAAU,GAAG,aAAa,CAAC,QAAQ,CAAC;CAIjD"}
|
|
@@ -23,10 +23,39 @@
|
|
|
23
23
|
import type { LLMChunk, LLMProvider, LLMRequest, LLMResponse } from '../types.js';
|
|
24
24
|
/** Either a fixed value (in ms) or a random `[min, max]` range (inclusive). */
|
|
25
25
|
export type LatencyMs = number | readonly [number, number];
|
|
26
|
+
/**
|
|
27
|
+
* One scripted reply consumed in order from `MockProviderOptions.replies`.
|
|
28
|
+
* String → plain text content; Partial<LLMResponse> → can include
|
|
29
|
+
* `toolCalls`, `usage`, `stopReason` for tool-using ReAct loops.
|
|
30
|
+
*/
|
|
31
|
+
export type MockReply = string | Partial<LLMResponse>;
|
|
26
32
|
export interface MockProviderOptions {
|
|
27
33
|
readonly name?: string;
|
|
28
34
|
/** Fixed response content. Overrides `respond` when set. */
|
|
29
35
|
readonly reply?: string;
|
|
36
|
+
/**
|
|
37
|
+
* Scripted replies for multi-turn / tool-using agents. Each entry
|
|
38
|
+
* is consumed in order — iteration 1 reads `replies[0]`, iteration
|
|
39
|
+
* 2 reads `replies[1]`, and so on. Use Partial<LLMResponse> to
|
|
40
|
+
* inject `toolCalls`:
|
|
41
|
+
*
|
|
42
|
+
* ```ts
|
|
43
|
+
* mock({
|
|
44
|
+
* replies: [
|
|
45
|
+
* { toolCalls: [{ id: '1', name: 'lookup', args: { id: 42 } }] },
|
|
46
|
+
* { content: 'Found it: refunds take 3 business days.' },
|
|
47
|
+
* ],
|
|
48
|
+
* });
|
|
49
|
+
* ```
|
|
50
|
+
*
|
|
51
|
+
* **Exhaustion semantics:** if the agent calls the LLM more times
|
|
52
|
+
* than there are replies, `complete()` / `stream()` throw a clear
|
|
53
|
+
* error. This makes mock-script bugs loud, not silent. Tune the
|
|
54
|
+
* agent's `maxIterations` to bound the call count.
|
|
55
|
+
*
|
|
56
|
+
* Takes precedence over `reply` and `respond` when set.
|
|
57
|
+
*/
|
|
58
|
+
readonly replies?: readonly MockReply[];
|
|
30
59
|
/**
|
|
31
60
|
* Build the response from the request. Returns either a plain
|
|
32
61
|
* string (renders as content with no tool calls) or a partial
|
|
@@ -69,12 +98,21 @@ export interface MockProviderOptions {
|
|
|
69
98
|
export declare class MockProvider implements LLMProvider {
|
|
70
99
|
readonly name: string;
|
|
71
100
|
private readonly reply?;
|
|
101
|
+
private readonly replies?;
|
|
102
|
+
private repliesCursor;
|
|
72
103
|
private readonly respond;
|
|
73
104
|
private readonly thinkingMs;
|
|
74
105
|
private readonly chunkDelayMs;
|
|
75
106
|
private readonly stopReason;
|
|
76
107
|
private readonly usageOverride;
|
|
77
108
|
constructor(options?: MockProviderOptions);
|
|
109
|
+
/**
|
|
110
|
+
* Reset the scripted-replies cursor. Useful when reusing one
|
|
111
|
+
* `MockProvider` instance across multiple test scenarios — each
|
|
112
|
+
* scenario can `provider.resetReplies()` to start from `replies[0]`
|
|
113
|
+
* again. No-op when `replies` was not supplied.
|
|
114
|
+
*/
|
|
115
|
+
resetReplies(): void;
|
|
78
116
|
/**
|
|
79
117
|
* Convenience factory for the playground / Lens demo defaults: a
|
|
80
118
|
* real-feel mock with 3–8 s of "thinking" before the response and
|
|
@@ -92,6 +130,13 @@ export declare class MockProvider implements LLMProvider {
|
|
|
92
130
|
*/
|
|
93
131
|
stream(req: LLMRequest): AsyncIterable<LLMChunk>;
|
|
94
132
|
private buildResponse;
|
|
133
|
+
/**
|
|
134
|
+
* Resolve the next reply source for one `complete()` / `stream()` call.
|
|
135
|
+
* Priority: `replies` (scripted, throws on exhaustion) → `reply` (single
|
|
136
|
+
* fixed string) → `respond` (callback default). Replies are consumed
|
|
137
|
+
* in order; the cursor is per-instance, not per-request.
|
|
138
|
+
*/
|
|
139
|
+
private consumeNextReply;
|
|
95
140
|
}
|
|
96
141
|
/**
|
|
97
142
|
* Lowercase factory for `MockProvider` — matches the v1 `mock()` import
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MockProvider.d.ts","sourceRoot":"","sources":["../../../../src/adapters/llm/MockProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAElF,+EAA+E;AAC/E,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE3D,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,4DAA4D;IAC5D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACtE;;;;;;;OAOG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC;IAChC,yEAAyE;IACzE,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC;IAC7B;;;;;;;OAOG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,CAAC;IAClC,mDAAmD;IACnD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,kEAAkE;IAClE,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC;QACxB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;CACJ;AAED,qBAAa,YAAa,YAAW,WAAW;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqD;IAC7E,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAY;IACzC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA+B;gBAEjD,OAAO,GAAE,mBAAwB;
|
|
1
|
+
{"version":3,"file":"MockProvider.d.ts","sourceRoot":"","sources":["../../../../src/adapters/llm/MockProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAElF,+EAA+E;AAC/E,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE3D;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;AAEtD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,4DAA4D;IAC5D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,SAAS,EAAE,CAAC;IACxC;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACtE;;;;;;;OAOG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC;IAChC,yEAAyE;IACzE,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC;IAC7B;;;;;;;OAOG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,CAAC;IAClC,mDAAmD;IACnD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,kEAAkE;IAClE,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC;QACxB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;CACJ;AAED,qBAAa,YAAa,YAAW,WAAW;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAuB;IAChD,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqD;IAC7E,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAY;IACzC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA+B;gBAEjD,OAAO,GAAE,mBAAwB;IAiB7C;;;;;OAKG;IACH,YAAY,IAAI,IAAI;IAIpB;;;;;;OAMG;IACH,MAAM,CAAC,SAAS,CAAC,OAAO,GAAE,mBAAwB,GAAG,YAAY;IAQ3D,QAAQ,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;IAKrD;;;;;OAKG;IACI,MAAM,CAAC,GAAG,EAAE,UAAU,GAAG,aAAa,CAAC,QAAQ,CAAC;IAqBvD,OAAO,CAAC,aAAa;IAwBrB;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;CAiBzB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,IAAI,CAAC,OAAO,GAAE,mBAAwB,GAAG,YAAY,CAEpE"}
|