agentfootprint 2.1.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 +80 -0
- package/CLAUDE.md +80 -0
- package/README.md +51 -1
- package/README.proposed.md +258 -0
- package/ai-instructions/claude-code/SKILL.md +56 -5
- package/ai-instructions/clinerules +44 -5
- package/ai-instructions/copilot-instructions.md +44 -5
- package/ai-instructions/cursor/agentfootprint.md +44 -5
- package/ai-instructions/kiro/agentfootprint.md +44 -5
- package/ai-instructions/windsurfrules +44 -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/core/Agent.js +11 -0
- package/dist/core/Agent.js.map +1 -1
- 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/core/Agent.js +11 -0
- package/dist/esm/core/Agent.js.map +1 -1
- package/dist/esm/index.js +6 -1
- 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 +9 -0
- package/dist/esm/lib/mcp/index.js.map +1 -0
- package/dist/esm/lib/mcp/mcpClient.js +176 -0
- package/dist/esm/lib/mcp/mcpClient.js.map +1 -0
- package/dist/esm/lib/mcp/mockMcpClient.js +97 -0
- package/dist/esm/lib/mcp/mockMcpClient.js.map +1 -0
- package/dist/esm/lib/mcp/types.js +24 -0
- package/dist/esm/lib/mcp/types.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 +8 -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 +14 -0
- package/dist/lib/mcp/index.js.map +1 -0
- package/dist/lib/mcp/mcpClient.js +180 -0
- package/dist/lib/mcp/mcpClient.js.map +1 -0
- package/dist/lib/mcp/mockMcpClient.js +101 -0
- package/dist/lib/mcp/mockMcpClient.js.map +1 -0
- package/dist/lib/mcp/types.js +25 -0
- package/dist/lib/mcp/types.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/core/Agent.d.ts +7 -0
- package/dist/types/core/Agent.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -1
- 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 +10 -0
- package/dist/types/lib/mcp/index.d.ts.map +1 -0
- package/dist/types/lib/mcp/mcpClient.d.ts +47 -0
- package/dist/types/lib/mcp/mcpClient.d.ts.map +1 -0
- 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 +134 -0
- package/dist/types/lib/mcp/types.d.ts.map +1 -0
- 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
|
@@ -41,15 +41,25 @@ Every "agent feature" is content flowing into one of:
|
|
|
41
41
|
- `messages` array — history / RAG / memory replay / injected instructions
|
|
42
42
|
- `tools` array — Tool schemas (registered + Skill-attached)
|
|
43
43
|
|
|
44
|
+
## Mock-first development (RECOMMENDED)
|
|
45
|
+
|
|
46
|
+
Build with `mock()` provider + `InMemoryStore` + `mockEmbedder()` + inline tool closures first; swap real infra (Anthropic / OpenAI / Bedrock / Redis / Pinecone / real MCP) after the flow is right. Default code suggestions to mocks unless the user has set up keys/endpoints.
|
|
47
|
+
|
|
48
|
+
| Mock | Production swap |
|
|
49
|
+
|---|---|
|
|
50
|
+
| `mock({ reply })` · `mock({ replies })` for scripted multi-turn | `anthropic()` / `openai()` / `bedrock()` / `ollama()` |
|
|
51
|
+
| `InMemoryStore` | `RedisStore` (`agentfootprint/memory-redis`) · `AgentCoreStore` (`agentfootprint/memory-agentcore`) · Dynamo · Postgres · Pinecone (planned) |
|
|
52
|
+
| `mockEmbedder()` | OpenAI / Cohere / Bedrock embedder factory |
|
|
53
|
+
| `mockMcpClient({ tools })` — in-memory, no SDK | `mcpClient({ transport })` real server |
|
|
54
|
+
|
|
44
55
|
## Canonical examples
|
|
45
56
|
|
|
46
|
-
### Hello agent
|
|
57
|
+
### Hello agent — mock-first
|
|
47
58
|
|
|
48
59
|
```typescript
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
})
|
|
60
|
+
import { Agent, mock } from 'agentfootprint';
|
|
61
|
+
|
|
62
|
+
const agent = Agent.create({ provider: mock({ reply: 'San Francisco: 72°F.' }), model: 'mock' })
|
|
53
63
|
.system('You are a helpful assistant.')
|
|
54
64
|
.tool(weatherTool)
|
|
55
65
|
.build();
|
|
@@ -57,6 +67,13 @@ const agent = Agent.create({
|
|
|
57
67
|
const result = await agent.run({ message: 'Weather in SF?' });
|
|
58
68
|
```
|
|
59
69
|
|
|
70
|
+
To swap to a real provider, change ONE line:
|
|
71
|
+
|
|
72
|
+
```typescript
|
|
73
|
+
provider: anthropic({ apiKey: process.env.ANTHROPIC_API_KEY! }),
|
|
74
|
+
model: 'claude-sonnet-4-5-20250929',
|
|
75
|
+
```
|
|
76
|
+
|
|
60
77
|
### Tools
|
|
61
78
|
|
|
62
79
|
```typescript
|
|
@@ -115,6 +132,28 @@ await agent.run({
|
|
|
115
132
|
Types: `EPISODIC` · `SEMANTIC` · `NARRATIVE` · `CAUSAL` (snapshot replay ⭐).
|
|
116
133
|
Strategies: `WINDOW` · `BUDGET` · `SUMMARIZE` · `TOP_K` · `EXTRACT` · `DECAY` · `HYBRID`.
|
|
117
134
|
|
|
135
|
+
### MCP (Model Context Protocol — connect to external MCP servers)
|
|
136
|
+
|
|
137
|
+
```typescript
|
|
138
|
+
import { Agent, mcpClient } from 'agentfootprint';
|
|
139
|
+
|
|
140
|
+
const slack = await mcpClient({
|
|
141
|
+
name: 'slack',
|
|
142
|
+
transport: { transport: 'stdio', command: 'npx', args: ['@example/slack-mcp'] },
|
|
143
|
+
});
|
|
144
|
+
|
|
145
|
+
const agent = Agent.create({ provider })
|
|
146
|
+
.tools(await slack.tools()) // bulk-register all server tools
|
|
147
|
+
.build();
|
|
148
|
+
|
|
149
|
+
await slack.close();
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
Transports: `stdio` (local subprocess), `http` (Streamable HTTP). The
|
|
153
|
+
`@modelcontextprotocol/sdk` peer-dep is lazy-required — install it
|
|
154
|
+
when you actually use MCP, not before. `agent.tools(arr)` is the
|
|
155
|
+
bulk-register companion to `agent.tool(t)`.
|
|
156
|
+
|
|
118
157
|
### RAG (retrieval-augmented generation)
|
|
119
158
|
|
|
120
159
|
```typescript
|
|
@@ -41,15 +41,25 @@ Every "agent feature" is content flowing into one of:
|
|
|
41
41
|
- `messages` array — history / RAG / memory replay / injected instructions
|
|
42
42
|
- `tools` array — Tool schemas (registered + Skill-attached)
|
|
43
43
|
|
|
44
|
+
## Mock-first development (RECOMMENDED)
|
|
45
|
+
|
|
46
|
+
Build with `mock()` provider + `InMemoryStore` + `mockEmbedder()` + inline tool closures first; swap real infra (Anthropic / OpenAI / Bedrock / Redis / Pinecone / real MCP) after the flow is right. Default code suggestions to mocks unless the user has set up keys/endpoints.
|
|
47
|
+
|
|
48
|
+
| Mock | Production swap |
|
|
49
|
+
|---|---|
|
|
50
|
+
| `mock({ reply })` · `mock({ replies })` for scripted multi-turn | `anthropic()` / `openai()` / `bedrock()` / `ollama()` |
|
|
51
|
+
| `InMemoryStore` | `RedisStore` (`agentfootprint/memory-redis`) · `AgentCoreStore` (`agentfootprint/memory-agentcore`) · Dynamo · Postgres · Pinecone (planned) |
|
|
52
|
+
| `mockEmbedder()` | OpenAI / Cohere / Bedrock embedder factory |
|
|
53
|
+
| `mockMcpClient({ tools })` — in-memory, no SDK | `mcpClient({ transport })` real server |
|
|
54
|
+
|
|
44
55
|
## Canonical examples
|
|
45
56
|
|
|
46
|
-
### Hello agent
|
|
57
|
+
### Hello agent — mock-first
|
|
47
58
|
|
|
48
59
|
```typescript
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
})
|
|
60
|
+
import { Agent, mock } from 'agentfootprint';
|
|
61
|
+
|
|
62
|
+
const agent = Agent.create({ provider: mock({ reply: 'San Francisco: 72°F.' }), model: 'mock' })
|
|
53
63
|
.system('You are a helpful assistant.')
|
|
54
64
|
.tool(weatherTool)
|
|
55
65
|
.build();
|
|
@@ -57,6 +67,13 @@ const agent = Agent.create({
|
|
|
57
67
|
const result = await agent.run({ message: 'Weather in SF?' });
|
|
58
68
|
```
|
|
59
69
|
|
|
70
|
+
To swap to a real provider, change ONE line:
|
|
71
|
+
|
|
72
|
+
```typescript
|
|
73
|
+
provider: anthropic({ apiKey: process.env.ANTHROPIC_API_KEY! }),
|
|
74
|
+
model: 'claude-sonnet-4-5-20250929',
|
|
75
|
+
```
|
|
76
|
+
|
|
60
77
|
### Tools
|
|
61
78
|
|
|
62
79
|
```typescript
|
|
@@ -115,6 +132,28 @@ await agent.run({
|
|
|
115
132
|
Types: `EPISODIC` · `SEMANTIC` · `NARRATIVE` · `CAUSAL` (snapshot replay ⭐).
|
|
116
133
|
Strategies: `WINDOW` · `BUDGET` · `SUMMARIZE` · `TOP_K` · `EXTRACT` · `DECAY` · `HYBRID`.
|
|
117
134
|
|
|
135
|
+
### MCP (Model Context Protocol — connect to external MCP servers)
|
|
136
|
+
|
|
137
|
+
```typescript
|
|
138
|
+
import { Agent, mcpClient } from 'agentfootprint';
|
|
139
|
+
|
|
140
|
+
const slack = await mcpClient({
|
|
141
|
+
name: 'slack',
|
|
142
|
+
transport: { transport: 'stdio', command: 'npx', args: ['@example/slack-mcp'] },
|
|
143
|
+
});
|
|
144
|
+
|
|
145
|
+
const agent = Agent.create({ provider })
|
|
146
|
+
.tools(await slack.tools()) // bulk-register all server tools
|
|
147
|
+
.build();
|
|
148
|
+
|
|
149
|
+
await slack.close();
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
Transports: `stdio` (local subprocess), `http` (Streamable HTTP). The
|
|
153
|
+
`@modelcontextprotocol/sdk` peer-dep is lazy-required — install it
|
|
154
|
+
when you actually use MCP, not before. `agent.tools(arr)` is the
|
|
155
|
+
bulk-register companion to `agent.tool(t)`.
|
|
156
|
+
|
|
118
157
|
### RAG (retrieval-augmented generation)
|
|
119
158
|
|
|
120
159
|
```typescript
|
|
@@ -41,15 +41,25 @@ Every "agent feature" is content flowing into one of:
|
|
|
41
41
|
- `messages` array — history / RAG / memory replay / injected instructions
|
|
42
42
|
- `tools` array — Tool schemas (registered + Skill-attached)
|
|
43
43
|
|
|
44
|
+
## Mock-first development (RECOMMENDED)
|
|
45
|
+
|
|
46
|
+
Build with `mock()` provider + `InMemoryStore` + `mockEmbedder()` + inline tool closures first; swap real infra (Anthropic / OpenAI / Bedrock / Redis / Pinecone / real MCP) after the flow is right. Default code suggestions to mocks unless the user has set up keys/endpoints.
|
|
47
|
+
|
|
48
|
+
| Mock | Production swap |
|
|
49
|
+
|---|---|
|
|
50
|
+
| `mock({ reply })` · `mock({ replies })` for scripted multi-turn | `anthropic()` / `openai()` / `bedrock()` / `ollama()` |
|
|
51
|
+
| `InMemoryStore` | `RedisStore` (`agentfootprint/memory-redis`) · `AgentCoreStore` (`agentfootprint/memory-agentcore`) · Dynamo · Postgres · Pinecone (planned) |
|
|
52
|
+
| `mockEmbedder()` | OpenAI / Cohere / Bedrock embedder factory |
|
|
53
|
+
| `mockMcpClient({ tools })` — in-memory, no SDK | `mcpClient({ transport })` real server |
|
|
54
|
+
|
|
44
55
|
## Canonical examples
|
|
45
56
|
|
|
46
|
-
### Hello agent
|
|
57
|
+
### Hello agent — mock-first
|
|
47
58
|
|
|
48
59
|
```typescript
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
})
|
|
60
|
+
import { Agent, mock } from 'agentfootprint';
|
|
61
|
+
|
|
62
|
+
const agent = Agent.create({ provider: mock({ reply: 'San Francisco: 72°F.' }), model: 'mock' })
|
|
53
63
|
.system('You are a helpful assistant.')
|
|
54
64
|
.tool(weatherTool)
|
|
55
65
|
.build();
|
|
@@ -57,6 +67,13 @@ const agent = Agent.create({
|
|
|
57
67
|
const result = await agent.run({ message: 'Weather in SF?' });
|
|
58
68
|
```
|
|
59
69
|
|
|
70
|
+
To swap to a real provider, change ONE line:
|
|
71
|
+
|
|
72
|
+
```typescript
|
|
73
|
+
provider: anthropic({ apiKey: process.env.ANTHROPIC_API_KEY! }),
|
|
74
|
+
model: 'claude-sonnet-4-5-20250929',
|
|
75
|
+
```
|
|
76
|
+
|
|
60
77
|
### Tools
|
|
61
78
|
|
|
62
79
|
```typescript
|
|
@@ -115,6 +132,28 @@ await agent.run({
|
|
|
115
132
|
Types: `EPISODIC` · `SEMANTIC` · `NARRATIVE` · `CAUSAL` (snapshot replay ⭐).
|
|
116
133
|
Strategies: `WINDOW` · `BUDGET` · `SUMMARIZE` · `TOP_K` · `EXTRACT` · `DECAY` · `HYBRID`.
|
|
117
134
|
|
|
135
|
+
### MCP (Model Context Protocol — connect to external MCP servers)
|
|
136
|
+
|
|
137
|
+
```typescript
|
|
138
|
+
import { Agent, mcpClient } from 'agentfootprint';
|
|
139
|
+
|
|
140
|
+
const slack = await mcpClient({
|
|
141
|
+
name: 'slack',
|
|
142
|
+
transport: { transport: 'stdio', command: 'npx', args: ['@example/slack-mcp'] },
|
|
143
|
+
});
|
|
144
|
+
|
|
145
|
+
const agent = Agent.create({ provider })
|
|
146
|
+
.tools(await slack.tools()) // bulk-register all server tools
|
|
147
|
+
.build();
|
|
148
|
+
|
|
149
|
+
await slack.close();
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
Transports: `stdio` (local subprocess), `http` (Streamable HTTP). The
|
|
153
|
+
`@modelcontextprotocol/sdk` peer-dep is lazy-required — install it
|
|
154
|
+
when you actually use MCP, not before. `agent.tools(arr)` is the
|
|
155
|
+
bulk-register companion to `agent.tool(t)`.
|
|
156
|
+
|
|
118
157
|
### RAG (retrieval-augmented generation)
|
|
119
158
|
|
|
120
159
|
```typescript
|
|
@@ -41,15 +41,25 @@ Every "agent feature" is content flowing into one of:
|
|
|
41
41
|
- `messages` array — history / RAG / memory replay / injected instructions
|
|
42
42
|
- `tools` array — Tool schemas (registered + Skill-attached)
|
|
43
43
|
|
|
44
|
+
## Mock-first development (RECOMMENDED)
|
|
45
|
+
|
|
46
|
+
Build with `mock()` provider + `InMemoryStore` + `mockEmbedder()` + inline tool closures first; swap real infra (Anthropic / OpenAI / Bedrock / Redis / Pinecone / real MCP) after the flow is right. Default code suggestions to mocks unless the user has set up keys/endpoints.
|
|
47
|
+
|
|
48
|
+
| Mock | Production swap |
|
|
49
|
+
|---|---|
|
|
50
|
+
| `mock({ reply })` · `mock({ replies })` for scripted multi-turn | `anthropic()` / `openai()` / `bedrock()` / `ollama()` |
|
|
51
|
+
| `InMemoryStore` | `RedisStore` (`agentfootprint/memory-redis`) · `AgentCoreStore` (`agentfootprint/memory-agentcore`) · Dynamo · Postgres · Pinecone (planned) |
|
|
52
|
+
| `mockEmbedder()` | OpenAI / Cohere / Bedrock embedder factory |
|
|
53
|
+
| `mockMcpClient({ tools })` — in-memory, no SDK | `mcpClient({ transport })` real server |
|
|
54
|
+
|
|
44
55
|
## Canonical examples
|
|
45
56
|
|
|
46
|
-
### Hello agent
|
|
57
|
+
### Hello agent — mock-first
|
|
47
58
|
|
|
48
59
|
```typescript
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
})
|
|
60
|
+
import { Agent, mock } from 'agentfootprint';
|
|
61
|
+
|
|
62
|
+
const agent = Agent.create({ provider: mock({ reply: 'San Francisco: 72°F.' }), model: 'mock' })
|
|
53
63
|
.system('You are a helpful assistant.')
|
|
54
64
|
.tool(weatherTool)
|
|
55
65
|
.build();
|
|
@@ -57,6 +67,13 @@ const agent = Agent.create({
|
|
|
57
67
|
const result = await agent.run({ message: 'Weather in SF?' });
|
|
58
68
|
```
|
|
59
69
|
|
|
70
|
+
To swap to a real provider, change ONE line:
|
|
71
|
+
|
|
72
|
+
```typescript
|
|
73
|
+
provider: anthropic({ apiKey: process.env.ANTHROPIC_API_KEY! }),
|
|
74
|
+
model: 'claude-sonnet-4-5-20250929',
|
|
75
|
+
```
|
|
76
|
+
|
|
60
77
|
### Tools
|
|
61
78
|
|
|
62
79
|
```typescript
|
|
@@ -115,6 +132,28 @@ await agent.run({
|
|
|
115
132
|
Types: `EPISODIC` · `SEMANTIC` · `NARRATIVE` · `CAUSAL` (snapshot replay ⭐).
|
|
116
133
|
Strategies: `WINDOW` · `BUDGET` · `SUMMARIZE` · `TOP_K` · `EXTRACT` · `DECAY` · `HYBRID`.
|
|
117
134
|
|
|
135
|
+
### MCP (Model Context Protocol — connect to external MCP servers)
|
|
136
|
+
|
|
137
|
+
```typescript
|
|
138
|
+
import { Agent, mcpClient } from 'agentfootprint';
|
|
139
|
+
|
|
140
|
+
const slack = await mcpClient({
|
|
141
|
+
name: 'slack',
|
|
142
|
+
transport: { transport: 'stdio', command: 'npx', args: ['@example/slack-mcp'] },
|
|
143
|
+
});
|
|
144
|
+
|
|
145
|
+
const agent = Agent.create({ provider })
|
|
146
|
+
.tools(await slack.tools()) // bulk-register all server tools
|
|
147
|
+
.build();
|
|
148
|
+
|
|
149
|
+
await slack.close();
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
Transports: `stdio` (local subprocess), `http` (Streamable HTTP). The
|
|
153
|
+
`@modelcontextprotocol/sdk` peer-dep is lazy-required — install it
|
|
154
|
+
when you actually use MCP, not before. `agent.tools(arr)` is the
|
|
155
|
+
bulk-register companion to `agent.tool(t)`.
|
|
156
|
+
|
|
118
157
|
### RAG (retrieval-augmented generation)
|
|
119
158
|
|
|
120
159
|
```typescript
|
|
@@ -41,15 +41,25 @@ Every "agent feature" is content flowing into one of:
|
|
|
41
41
|
- `messages` array — history / RAG / memory replay / injected instructions
|
|
42
42
|
- `tools` array — Tool schemas (registered + Skill-attached)
|
|
43
43
|
|
|
44
|
+
## Mock-first development (RECOMMENDED)
|
|
45
|
+
|
|
46
|
+
Build with `mock()` provider + `InMemoryStore` + `mockEmbedder()` + inline tool closures first; swap real infra (Anthropic / OpenAI / Bedrock / Redis / Pinecone / real MCP) after the flow is right. Default code suggestions to mocks unless the user has set up keys/endpoints.
|
|
47
|
+
|
|
48
|
+
| Mock | Production swap |
|
|
49
|
+
|---|---|
|
|
50
|
+
| `mock({ reply })` · `mock({ replies })` for scripted multi-turn | `anthropic()` / `openai()` / `bedrock()` / `ollama()` |
|
|
51
|
+
| `InMemoryStore` | `RedisStore` (`agentfootprint/memory-redis`) · `AgentCoreStore` (`agentfootprint/memory-agentcore`) · Dynamo · Postgres · Pinecone (planned) |
|
|
52
|
+
| `mockEmbedder()` | OpenAI / Cohere / Bedrock embedder factory |
|
|
53
|
+
| `mockMcpClient({ tools })` — in-memory, no SDK | `mcpClient({ transport })` real server |
|
|
54
|
+
|
|
44
55
|
## Canonical examples
|
|
45
56
|
|
|
46
|
-
### Hello agent
|
|
57
|
+
### Hello agent — mock-first
|
|
47
58
|
|
|
48
59
|
```typescript
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
})
|
|
60
|
+
import { Agent, mock } from 'agentfootprint';
|
|
61
|
+
|
|
62
|
+
const agent = Agent.create({ provider: mock({ reply: 'San Francisco: 72°F.' }), model: 'mock' })
|
|
53
63
|
.system('You are a helpful assistant.')
|
|
54
64
|
.tool(weatherTool)
|
|
55
65
|
.build();
|
|
@@ -57,6 +67,13 @@ const agent = Agent.create({
|
|
|
57
67
|
const result = await agent.run({ message: 'Weather in SF?' });
|
|
58
68
|
```
|
|
59
69
|
|
|
70
|
+
To swap to a real provider, change ONE line:
|
|
71
|
+
|
|
72
|
+
```typescript
|
|
73
|
+
provider: anthropic({ apiKey: process.env.ANTHROPIC_API_KEY! }),
|
|
74
|
+
model: 'claude-sonnet-4-5-20250929',
|
|
75
|
+
```
|
|
76
|
+
|
|
60
77
|
### Tools
|
|
61
78
|
|
|
62
79
|
```typescript
|
|
@@ -115,6 +132,28 @@ await agent.run({
|
|
|
115
132
|
Types: `EPISODIC` · `SEMANTIC` · `NARRATIVE` · `CAUSAL` (snapshot replay ⭐).
|
|
116
133
|
Strategies: `WINDOW` · `BUDGET` · `SUMMARIZE` · `TOP_K` · `EXTRACT` · `DECAY` · `HYBRID`.
|
|
117
134
|
|
|
135
|
+
### MCP (Model Context Protocol — connect to external MCP servers)
|
|
136
|
+
|
|
137
|
+
```typescript
|
|
138
|
+
import { Agent, mcpClient } from 'agentfootprint';
|
|
139
|
+
|
|
140
|
+
const slack = await mcpClient({
|
|
141
|
+
name: 'slack',
|
|
142
|
+
transport: { transport: 'stdio', command: 'npx', args: ['@example/slack-mcp'] },
|
|
143
|
+
});
|
|
144
|
+
|
|
145
|
+
const agent = Agent.create({ provider })
|
|
146
|
+
.tools(await slack.tools()) // bulk-register all server tools
|
|
147
|
+
.build();
|
|
148
|
+
|
|
149
|
+
await slack.close();
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
Transports: `stdio` (local subprocess), `http` (Streamable HTTP). The
|
|
153
|
+
`@modelcontextprotocol/sdk` peer-dep is lazy-required — install it
|
|
154
|
+
when you actually use MCP, not before. `agent.tools(arr)` is the
|
|
155
|
+
bulk-register companion to `agent.tool(t)`.
|
|
156
|
+
|
|
118
157
|
### RAG (retrieval-augmented generation)
|
|
119
158
|
|
|
120
159
|
```typescript
|
|
@@ -8,33 +8,6 @@
|
|
|
8
8
|
* recorders, or compositions.
|
|
9
9
|
* Emits: N/A — providers don't emit; recorders observe via Agent.
|
|
10
10
|
*
|
|
11
|
-
* ─── 7-panel design review (2026-04-28) ─────────────────────────────
|
|
12
|
-
*
|
|
13
|
-
* LLM-AI system design ✓ Native tool_use blocks. Round-trips
|
|
14
|
-
* assistant tool_calls via the new
|
|
15
|
-
* `LLMMessage.toolCalls` field — preserves
|
|
16
|
-
* multi-iteration ReAct correctness.
|
|
17
|
-
* Performance ✓ Single SDK call per `complete()`. Stream
|
|
18
|
-
* uses SDK's native iterator; no buffering.
|
|
19
|
-
* Scalability ✓ Stateless adapter. Concurrent runs share
|
|
20
|
-
* one provider instance freely.
|
|
21
|
-
* Research alignment ✓ Mirrors v1 AnthropicAdapter's tested
|
|
22
|
-
* message-conversion logic (origin/main
|
|
23
|
-
* `c6e11d0`); tool-result merge follows the
|
|
24
|
-
* documented Anthropic API expectation.
|
|
25
|
-
* Flexibility ✓ `_client` injection point for tests.
|
|
26
|
-
* `apiKey` falls back to env. `maxTokens`
|
|
27
|
-
* override per-construction or per-request.
|
|
28
|
-
* Abstraction-modular ✓ Two converters (toAnthropicMessages,
|
|
29
|
-
* fromAnthropicResponse) isolate the
|
|
30
|
-
* shape-shifting; `complete()` and
|
|
31
|
-
* `stream()` reuse them.
|
|
32
|
-
* Software engineering ✓ Duck-typed SDK shape (no hard import).
|
|
33
|
-
* Errors wrapped with provider tag for
|
|
34
|
-
* uniform downstream handling. Tests cover
|
|
35
|
-
* unit + scenario + integration + property
|
|
36
|
-
* + security + performance + ROI.
|
|
37
|
-
*
|
|
38
11
|
* ─── Limitations ────────────────────────────────────────────────────
|
|
39
12
|
*
|
|
40
13
|
* • Multi-modal content (images, video) NOT supported — the framework's
|
|
@@ -43,10 +16,6 @@
|
|
|
43
16
|
* in lockstep.
|
|
44
17
|
* • `responseFormat` (JSON-Schema-coerced output) NOT exposed
|
|
45
18
|
* — consumers can pass schema instructions via `systemPrompt`.
|
|
46
|
-
*
|
|
47
|
-
* ─── 7-pattern test coverage ────────────────────────────────────────
|
|
48
|
-
*
|
|
49
|
-
* See `test/adapters/llm/AnthropicProvider/*.test.ts`.
|
|
50
19
|
*/
|
|
51
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
52
21
|
exports.AnthropicProvider = exports.anthropic = void 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnthropicProvider.js","sourceRoot":"","sources":["../../../src/adapters/llm/AnthropicProvider.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"AnthropicProvider.js","sourceRoot":"","sources":["../../../src/adapters/llm/AnthropicProvider.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;;AAiFH;;;;;;;;;;;;;GAaG;AACH,SAAgB,SAAS,CAAC,UAAoC,EAAE;IAC9D,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,4BAA4B,CAAC;IAC1E,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,IAAI,CAAC;IAE1D,MAAM,QAAQ,GAAgB;QAC5B,IAAI,EAAE,WAAW;QACjB,KAAK,CAAC,QAAQ,CAAC,GAAe;YAC5B,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE,YAAY,EAAE,gBAAgB,CAAC,CAAC;YAChE,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACrD,OAAO,qBAAqB,CAAC,OAAO,CAAC,CAAC;YACxC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;QACD,KAAK,CAAC,CAAC,MAAM,CAAC,GAAe;YAC3B,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE,YAAY,EAAE,gBAAgB,CAAC,CAAC;YAChE,IAAI,MAAuB,CAAC;YAC5B,IAAI,CAAC;gBACH,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC1C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;YACvB,CAAC;YACD,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,IAAI,CAAC;gBACH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;oBACjC,IACE,KAAK,CAAC,IAAI,KAAK,qBAAqB;wBACpC,KAAK,CAAC,KAAK,EAAE,IAAI,KAAK,YAAY;wBAClC,KAAK,CAAC,KAAK,CAAC,IAAI,EAChB,CAAC;wBACD,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;wBAC7D,UAAU,EAAE,CAAC;oBACf,CAAC;gBACH,CAAC;gBACD,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,YAAY,EAAE,CAAC;gBAC1C,MAAM,QAAQ,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;gBAC9C,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC1D,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;KACF,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC;AA9CD,8BA8CC;AAED;;;GAGG;AACH,MAAa,iBAAiB;IACnB,IAAI,GAAG,WAAW,CAAC;IACX,KAAK,CAAc;IAEpC,YAAY,UAAoC,EAAE;QAChD,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,QAAQ,CAAC,GAAe;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,CAAC,GAAe;QACpB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5D,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;CACF;AAlBD,8CAkBC;AAED,uEAAuE;AAEvE,SAAS,aAAa,CAAC,OAAiC;IACtD,IAAI,OAAO,CAAC,OAAO;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC;IAC5C,IAAI,SAA6D,CAAC;IAClE,IAAI,CAAC;QACH,qGAAqG;QACrG,MAAM,GAAG,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;QACzC,SAAS,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAuD,CAAC;IACzF,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,iDAAiD;YAC/C,6CAA6C;YAC7C,yCAAyC,CAC5C,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IAC/D,OAAO,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,WAAW,CAClB,GAAe,EACf,YAAoB,EACpB,gBAAwB;IAExB,MAAM,MAAM,GAA0B;QACpC,KAAK,EAAE,GAAG,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK;QAC3D,UAAU,EAAE,GAAG,CAAC,SAAS,IAAI,gBAAgB;QAC7C,QAAQ,EAAE,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC;KAC5C,CAAC;IACF,IAAI,GAAG,CAAC,YAAY;QAAE,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC;IACvD,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACrF,IAAI,GAAG,CAAC,WAAW,KAAK,SAAS;QAAE,MAAM,CAAC,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC;IACxE,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,CAAC,cAAc,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;IAC3E,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,mBAAmB,CAAC,QAA+B;IAC1D,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;YAAE,SAAS,CAAC,sCAAsC;QACzE,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YAClD,SAAS;QACX,CAAC;QACD,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC3B,MAAM,MAAM,GAA4B,EAAE,CAAC;YAC3C,IAAI,CAAC,CAAC,OAAO;gBAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YAC9D,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;gBAChB,KAAK,MAAM,EAAE,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;oBAC7B,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,UAAU;wBAChB,EAAE,EAAE,EAAE,CAAC,EAAE;wBACT,IAAI,EAAE,EAAE,CAAC,IAAI;wBACb,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE;qBACtB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE;aACtD,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACtB,MAAM,KAAK,GAA0B;gBACnC,IAAI,EAAE,aAAa;gBACnB,WAAW,EAAE,CAAC,CAAC,UAAU,IAAI,EAAE;gBAC/B,OAAO,EAAE,CAAC,CAAC,OAAO;aACnB,CAAC;YACF,oEAAoE;YACpE,sEAAsE;YACtE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACvC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBAChE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAClD,CAAC;YACD,SAAS;QACX,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,eAAe,CAAC,MAAqB;IAC5C,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,YAAY,EAAE,EAAE,GAAG,MAAM,CAAC,WAAW,EAAE;KACxC,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAyB;IACtD,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,MAAM,SAAS,GAAkE,EAAE,CAAC;IACpF,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;YAAE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aACjD,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACnC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IACD,OAAO;QACL,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,SAAS;QACT,KAAK,EAAE;YACL,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,YAAY;YACjC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,aAAa;SACpC;QACD,UAAU,EAAE,mBAAmB,CAAC,OAAO,CAAC,WAAW,CAAC;QACpD,WAAW,EAAE,OAAO,CAAC,EAAE;KACxB,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAW;IACtC,+DAA+D;IAC/D,oEAAoE;IACpE,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,UAAU;YACb,OAAO,MAAM,CAAC;QAChB,KAAK,UAAU;YACb,OAAO,UAAU,CAAC;QACpB,KAAK,YAAY;YACf,OAAO,YAAY,CAAC;QACtB;YACE,OAAO,GAAG,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,GAAY;IAC7B,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;QACzB,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,eAAe,GAAG,CAAC,OAAO,EAAE,CAAC,EAAE;YAC5D,IAAI,EAAE,wBAAwB;YAC9B,KAAK,EAAE,GAAG;YACV,iEAAiE;YACjE,MAAM,EAAG,GAA2B,CAAC,MAAM;SAC5C,CAAC,CAAC;IACL,CAAC;IACD,OAAO,IAAI,KAAK,CAAC,eAAe,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACjD,CAAC"}
|
|
@@ -11,40 +11,14 @@
|
|
|
11
11
|
*
|
|
12
12
|
* Requires: `npm install @aws-sdk/client-bedrock-runtime`
|
|
13
13
|
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
* LLM-AI system design ✓ Converse API is model-agnostic — one
|
|
17
|
-
* adapter covers every Bedrock-hosted
|
|
18
|
-
* model. tool_use / tool_result blocks
|
|
19
|
-
* map cleanly to toolCalls.
|
|
20
|
-
* Performance ✓ Single SDK send() per `complete()`;
|
|
21
|
-
* ConverseStream for `stream()` yields
|
|
22
|
-
* deltas natively.
|
|
23
|
-
* Scalability ✓ Stateless adapter. AWS SDK handles
|
|
24
|
-
* credential refresh + region routing.
|
|
25
|
-
* Research alignment ✓ Mirrors v1 BedrockAdapter (origin/main
|
|
26
|
-
* `c6e11d0`). Maps same field renames
|
|
27
|
-
* (toolUseId, inputSchema.json, etc.).
|
|
28
|
-
* Flexibility ✓ `region` + `client` injectable. Model
|
|
29
|
-
* id passes through for fine-grained
|
|
30
|
-
* routing (cross-region inference profiles
|
|
31
|
-
* work as-is).
|
|
32
|
-
* Abstraction-modular ✓ Separate converters mirror the
|
|
33
|
-
* Anthropic/OpenAI adapters. Easy to keep
|
|
34
|
-
* in lockstep when LLMMessage evolves.
|
|
35
|
-
* Software engineering ✓ Duck-typed SDK shape. Errors wrapped
|
|
36
|
-
* with provider tag. Tests cover the
|
|
37
|
-
* 7-pattern matrix.
|
|
14
|
+
* The Converse API is model-agnostic — one adapter covers every
|
|
15
|
+
* Bedrock-hosted model (Claude, Llama, Mistral, Titan, Mixtral, ...).
|
|
38
16
|
*
|
|
39
17
|
* ─── Limitations ────────────────────────────────────────────────────
|
|
40
18
|
*
|
|
41
19
|
* • Multi-modal NOT supported (text content only).
|
|
42
20
|
* • Guardrail integration NOT exposed yet — pass via the SDK client
|
|
43
21
|
* directly if needed.
|
|
44
|
-
*
|
|
45
|
-
* ─── 7-pattern test coverage ────────────────────────────────────────
|
|
46
|
-
*
|
|
47
|
-
* See `test/adapters/unit/BedrockProvider.test.ts`.
|
|
48
22
|
*/
|
|
49
23
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
24
|
exports.BedrockProvider = exports.bedrock = void 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BedrockProvider.js","sourceRoot":"","sources":["../../../src/adapters/llm/BedrockProvider.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"BedrockProvider.js","sourceRoot":"","sources":["../../../src/adapters/llm/BedrockProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,41 +13,11 @@
|
|
|
13
13
|
* header for direct browser-to-API calls. This is intentional — production
|
|
14
14
|
* apps should proxy through a backend.
|
|
15
15
|
*
|
|
16
|
-
* ─── 7-panel design review (2026-04-28) ─────────────────────────────
|
|
17
|
-
*
|
|
18
|
-
* LLM-AI system design ✓ Same message + tool conversion as the
|
|
19
|
-
* Node `AnthropicProvider`. Native tool_use
|
|
20
|
-
* blocks; `LLMMessage.toolCalls` round-trip.
|
|
21
|
-
* Performance ✓ One fetch() per `complete()`. Stream
|
|
22
|
-
* uses native `ReadableStream` via SSE
|
|
23
|
-
* parsing — no buffering past one chunk.
|
|
24
|
-
* Scalability ✓ Stateless. Multiple agents share one
|
|
25
|
-
* provider; browser fetch handles
|
|
26
|
-
* concurrent requests fine.
|
|
27
|
-
* Research alignment ✓ Mirrors v1 BrowserAnthropicAdapter
|
|
28
|
-
* (origin/main `c6e11d0`). Same headers,
|
|
29
|
-
* same SSE event shape.
|
|
30
|
-
* Flexibility ✓ `apiUrl` override for proxy/edge
|
|
31
|
-
* deployments. Custom `fetch` injection
|
|
32
|
-
* for tests + workers.
|
|
33
|
-
* Abstraction-modular ✓ Re-uses `toAnthropicMessages` /
|
|
34
|
-
* `fromAnthropicResponse` semantics from
|
|
35
|
-
* the Node adapter (small duplication kept
|
|
36
|
-
* local — both files stay readable).
|
|
37
|
-
* Software engineering ✓ Zero peer deps (browser fetch is
|
|
38
|
-
* ambient). Errors wrapped with status
|
|
39
|
-
* for `withRetry` policy hooks. SSE parser
|
|
40
|
-
* handles partial chunks.
|
|
41
|
-
*
|
|
42
16
|
* ─── Limitations ────────────────────────────────────────────────────
|
|
43
17
|
*
|
|
44
|
-
* • Multi-modal NOT .
|
|
18
|
+
* • Multi-modal NOT supported.
|
|
45
19
|
* • Browser CORS — works because Anthropic explicitly allows the
|
|
46
20
|
* dangerous-direct header. Future API changes could require a proxy.
|
|
47
|
-
*
|
|
48
|
-
* ─── 7-pattern test coverage ────────────────────────────────────────
|
|
49
|
-
*
|
|
50
|
-
* See `test/adapters/unit/BrowserAnthropicProvider.test.ts`.
|
|
51
21
|
*/
|
|
52
22
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
23
|
exports.BrowserAnthropicProvider = exports.browserAnthropic = void 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BrowserAnthropicProvider.js","sourceRoot":"","sources":["../../../src/adapters/llm/BrowserAnthropicProvider.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"BrowserAnthropicProvider.js","sourceRoot":"","sources":["../../../src/adapters/llm/BrowserAnthropicProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,21 +11,11 @@
|
|
|
11
11
|
* Also works with OpenAI-compatible endpoints (Ollama, Together, vLLM)
|
|
12
12
|
* via `apiUrl`.
|
|
13
13
|
*
|
|
14
|
-
* ─── 7-panel review ─────────────────────────────────────────────────
|
|
15
|
-
*
|
|
16
|
-
* Same posture as `BrowserAnthropicProvider`: native fetch, SSE
|
|
17
|
-
* parser, stateless, error-wrapped, message-conversion mirrors the
|
|
18
|
-
* Node `OpenAIProvider`. See that adapter's review for full rubric.
|
|
19
|
-
*
|
|
20
14
|
* ─── Limitations ────────────────────────────────────────────────────
|
|
21
15
|
*
|
|
22
|
-
* • Multi-modal NOT .
|
|
16
|
+
* • Multi-modal NOT supported.
|
|
23
17
|
* • CORS depends on the endpoint — OpenAI requires the user-supplied
|
|
24
18
|
* key in the Authorization header, which they'll do explicitly.
|
|
25
|
-
*
|
|
26
|
-
* ─── 7-pattern test coverage ────────────────────────────────────────
|
|
27
|
-
*
|
|
28
|
-
* See `test/adapters/unit/BrowserOpenAIProvider.test.ts`.
|
|
29
19
|
*/
|
|
30
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
31
21
|
exports.BrowserOpenAIProvider = exports.browserOpenai = void 0;
|