agentfootprint 2.2.0 → 2.4.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.
Files changed (151) hide show
  1. package/AGENTS.md +52 -0
  2. package/CLAUDE.md +52 -0
  3. package/README.md +286 -209
  4. package/ai-instructions/claude-code/SKILL.md +24 -5
  5. package/ai-instructions/clinerules +22 -5
  6. package/ai-instructions/copilot-instructions.md +22 -5
  7. package/ai-instructions/cursor/agentfootprint.md +22 -5
  8. package/ai-instructions/kiro/agentfootprint.md +22 -5
  9. package/ai-instructions/windsurfrules +22 -5
  10. package/dist/adapters/llm/AnthropicProvider.js +0 -31
  11. package/dist/adapters/llm/AnthropicProvider.js.map +1 -1
  12. package/dist/adapters/llm/BedrockProvider.js +2 -28
  13. package/dist/adapters/llm/BedrockProvider.js.map +1 -1
  14. package/dist/adapters/llm/BrowserAnthropicProvider.js +1 -31
  15. package/dist/adapters/llm/BrowserAnthropicProvider.js.map +1 -1
  16. package/dist/adapters/llm/BrowserOpenAIProvider.js +1 -11
  17. package/dist/adapters/llm/BrowserOpenAIProvider.js.map +1 -1
  18. package/dist/adapters/llm/MockProvider.js +35 -1
  19. package/dist/adapters/llm/MockProvider.js.map +1 -1
  20. package/dist/adapters/llm/OpenAIProvider.js +3 -29
  21. package/dist/adapters/llm/OpenAIProvider.js.map +1 -1
  22. package/dist/adapters/memory/agentcore.js +305 -0
  23. package/dist/adapters/memory/agentcore.js.map +1 -0
  24. package/dist/adapters/memory/redis.js +287 -0
  25. package/dist/adapters/memory/redis.js.map +1 -0
  26. package/dist/core/Agent.js +16 -0
  27. package/dist/core/Agent.js.map +1 -1
  28. package/dist/esm/adapters/llm/AnthropicProvider.js +0 -31
  29. package/dist/esm/adapters/llm/AnthropicProvider.js.map +1 -1
  30. package/dist/esm/adapters/llm/BedrockProvider.js +2 -28
  31. package/dist/esm/adapters/llm/BedrockProvider.js.map +1 -1
  32. package/dist/esm/adapters/llm/BrowserAnthropicProvider.js +1 -31
  33. package/dist/esm/adapters/llm/BrowserAnthropicProvider.js.map +1 -1
  34. package/dist/esm/adapters/llm/BrowserOpenAIProvider.js +1 -11
  35. package/dist/esm/adapters/llm/BrowserOpenAIProvider.js.map +1 -1
  36. package/dist/esm/adapters/llm/MockProvider.js +35 -1
  37. package/dist/esm/adapters/llm/MockProvider.js.map +1 -1
  38. package/dist/esm/adapters/llm/OpenAIProvider.js +3 -29
  39. package/dist/esm/adapters/llm/OpenAIProvider.js.map +1 -1
  40. package/dist/esm/adapters/memory/agentcore.js +301 -0
  41. package/dist/esm/adapters/memory/agentcore.js.map +1 -0
  42. package/dist/esm/adapters/memory/redis.js +283 -0
  43. package/dist/esm/adapters/memory/redis.js.map +1 -0
  44. package/dist/esm/core/Agent.js +16 -0
  45. package/dist/esm/core/Agent.js.map +1 -1
  46. package/dist/esm/index.js +3 -3
  47. package/dist/esm/index.js.map +1 -1
  48. package/dist/esm/lib/injection-engine/SkillRegistry.js +83 -0
  49. package/dist/esm/lib/injection-engine/SkillRegistry.js.map +1 -0
  50. package/dist/esm/lib/injection-engine/factories/defineSkill.js +34 -0
  51. package/dist/esm/lib/injection-engine/factories/defineSkill.js.map +1 -1
  52. package/dist/esm/lib/injection-engine/index.js +2 -55
  53. package/dist/esm/lib/injection-engine/index.js.map +1 -1
  54. package/dist/esm/lib/injection-engine/types.js.map +1 -1
  55. package/dist/esm/lib/mcp/index.js +1 -0
  56. package/dist/esm/lib/mcp/index.js.map +1 -1
  57. package/dist/esm/lib/mcp/mcpClient.js +29 -24
  58. package/dist/esm/lib/mcp/mcpClient.js.map +1 -1
  59. package/dist/esm/lib/mcp/mockMcpClient.js +97 -0
  60. package/dist/esm/lib/mcp/mockMcpClient.js.map +1 -0
  61. package/dist/esm/lib/rag/defineRAG.js +0 -18
  62. package/dist/esm/lib/rag/defineRAG.js.map +1 -1
  63. package/dist/esm/lib/rag/indexDocuments.js +39 -4
  64. package/dist/esm/lib/rag/indexDocuments.js.map +1 -1
  65. package/dist/esm/memory/causal/loadSnapshot.js +1 -1
  66. package/dist/esm/memory/define.js +0 -14
  67. package/dist/esm/memory/define.js.map +1 -1
  68. package/dist/esm/memory/define.types.js +0 -10
  69. package/dist/esm/memory/define.types.js.map +1 -1
  70. package/dist/esm/resilience/index.js +0 -44
  71. package/dist/esm/resilience/index.js.map +1 -1
  72. package/dist/esm/stream.js +0 -29
  73. package/dist/esm/stream.js.map +1 -1
  74. package/dist/index.js +4 -1
  75. package/dist/index.js.map +1 -1
  76. package/dist/lib/injection-engine/SkillRegistry.js +87 -0
  77. package/dist/lib/injection-engine/SkillRegistry.js.map +1 -0
  78. package/dist/lib/injection-engine/factories/defineSkill.js +36 -1
  79. package/dist/lib/injection-engine/factories/defineSkill.js.map +1 -1
  80. package/dist/lib/injection-engine/index.js +4 -55
  81. package/dist/lib/injection-engine/index.js.map +1 -1
  82. package/dist/lib/injection-engine/types.js.map +1 -1
  83. package/dist/lib/mcp/index.js +3 -1
  84. package/dist/lib/mcp/index.js.map +1 -1
  85. package/dist/lib/mcp/mcpClient.js +29 -24
  86. package/dist/lib/mcp/mcpClient.js.map +1 -1
  87. package/dist/lib/mcp/mockMcpClient.js +101 -0
  88. package/dist/lib/mcp/mockMcpClient.js.map +1 -0
  89. package/dist/lib/rag/defineRAG.js +0 -18
  90. package/dist/lib/rag/defineRAG.js.map +1 -1
  91. package/dist/lib/rag/indexDocuments.js +39 -4
  92. package/dist/lib/rag/indexDocuments.js.map +1 -1
  93. package/dist/memory/causal/loadSnapshot.js +1 -1
  94. package/dist/memory/define.js +0 -14
  95. package/dist/memory/define.js.map +1 -1
  96. package/dist/memory/define.types.js +0 -10
  97. package/dist/memory/define.types.js.map +1 -1
  98. package/dist/resilience/index.js +0 -44
  99. package/dist/resilience/index.js.map +1 -1
  100. package/dist/stream.js +0 -29
  101. package/dist/stream.js.map +1 -1
  102. package/dist/types/adapters/llm/AnthropicProvider.d.ts +0 -31
  103. package/dist/types/adapters/llm/AnthropicProvider.d.ts.map +1 -1
  104. package/dist/types/adapters/llm/BedrockProvider.d.ts +2 -28
  105. package/dist/types/adapters/llm/BedrockProvider.d.ts.map +1 -1
  106. package/dist/types/adapters/llm/BrowserAnthropicProvider.d.ts +1 -31
  107. package/dist/types/adapters/llm/BrowserAnthropicProvider.d.ts.map +1 -1
  108. package/dist/types/adapters/llm/BrowserOpenAIProvider.d.ts +1 -11
  109. package/dist/types/adapters/llm/BrowserOpenAIProvider.d.ts.map +1 -1
  110. package/dist/types/adapters/llm/MockProvider.d.ts +45 -0
  111. package/dist/types/adapters/llm/MockProvider.d.ts.map +1 -1
  112. package/dist/types/adapters/llm/OpenAIProvider.d.ts +3 -29
  113. package/dist/types/adapters/llm/OpenAIProvider.d.ts.map +1 -1
  114. package/dist/types/adapters/memory/agentcore.d.ts +157 -0
  115. package/dist/types/adapters/memory/agentcore.d.ts.map +1 -0
  116. package/dist/types/adapters/memory/redis.d.ts +126 -0
  117. package/dist/types/adapters/memory/redis.d.ts.map +1 -0
  118. package/dist/types/core/Agent.d.ts +14 -0
  119. package/dist/types/core/Agent.d.ts.map +1 -1
  120. package/dist/types/index.d.ts +3 -3
  121. package/dist/types/index.d.ts.map +1 -1
  122. package/dist/types/lib/injection-engine/SkillRegistry.d.ts +50 -0
  123. package/dist/types/lib/injection-engine/SkillRegistry.d.ts.map +1 -0
  124. package/dist/types/lib/injection-engine/factories/defineSkill.d.ts +72 -0
  125. package/dist/types/lib/injection-engine/factories/defineSkill.d.ts.map +1 -1
  126. package/dist/types/lib/injection-engine/index.d.ts +2 -55
  127. package/dist/types/lib/injection-engine/index.d.ts.map +1 -1
  128. package/dist/types/lib/injection-engine/types.d.ts +10 -0
  129. package/dist/types/lib/injection-engine/types.d.ts.map +1 -1
  130. package/dist/types/lib/mcp/index.d.ts +1 -0
  131. package/dist/types/lib/mcp/index.d.ts.map +1 -1
  132. package/dist/types/lib/mcp/mcpClient.d.ts +0 -17
  133. package/dist/types/lib/mcp/mcpClient.d.ts.map +1 -1
  134. package/dist/types/lib/mcp/mockMcpClient.d.ts +66 -0
  135. package/dist/types/lib/mcp/mockMcpClient.d.ts.map +1 -0
  136. package/dist/types/lib/mcp/types.d.ts +2 -0
  137. package/dist/types/lib/mcp/types.d.ts.map +1 -1
  138. package/dist/types/lib/rag/defineRAG.d.ts +18 -21
  139. package/dist/types/lib/rag/defineRAG.d.ts.map +1 -1
  140. package/dist/types/lib/rag/indexDocuments.d.ts +30 -1
  141. package/dist/types/lib/rag/indexDocuments.d.ts.map +1 -1
  142. package/dist/types/memory/causal/loadSnapshot.d.ts +1 -1
  143. package/dist/types/memory/define.d.ts +0 -14
  144. package/dist/types/memory/define.d.ts.map +1 -1
  145. package/dist/types/memory/define.types.d.ts +2 -12
  146. package/dist/types/memory/define.types.d.ts.map +1 -1
  147. package/dist/types/resilience/index.d.ts +0 -44
  148. package/dist/types/resilience/index.d.ts.map +1 -1
  149. package/dist/types/stream.d.ts +0 -29
  150. package/dist/types/stream.d.ts.map +1 -1
  151. package/package.json +39 -1
@@ -1 +1 @@
1
- {"version":3,"file":"BrowserOpenAIProvider.d.ts","sourceRoot":"","sources":["../../../../src/adapters/llm/BrowserOpenAIProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;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"}
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;IAgB7C;;;;;;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;CAuBtB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,IAAI,CAAC,OAAO,GAAE,mBAAwB,GAAG,YAAY,CAEpE"}
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"}
@@ -7,32 +7,6 @@
7
7
  * recorders, or compositions.
8
8
  * Emits: N/A.
9
9
  *
10
- * ─── 7-panel design review (2026-04-28) ─────────────────────────────
11
- *
12
- * LLM-AI system design ✓ Native function-calling. messages map
13
- * 1:1 to OpenAI shape (system/user/assistant/tool
14
- * roles match) — minimal translation.
15
- * Performance ✓ Single SDK call per `complete()`. Stream
16
- * uses native SSE; deltas yielded as they
17
- * arrive.
18
- * Scalability ✓ Stateless; concurrent runs share one
19
- * provider freely.
20
- * Research alignment ✓ Mirrors v1 OpenAIAdapter conversion logic
21
- * (origin/main `c6e11d0`); same usage
22
- * normalization (prompt_tokens/completion_tokens
23
- * → input/output).
24
- * Flexibility ✓ `baseURL` enables OpenAI-compatible APIs
25
- * (Ollama, Together, Groq, vLLM, LM Studio)
26
- * without a separate adapter — see `ollama()`
27
- * convenience factory below.
28
- * Abstraction-modular ✓ Two converters (`toOpenAIMessages`,
29
- * `fromOpenAIResponse`) isolate the
30
- * shape-shifting; `complete()` and
31
- * `stream()` reuse them.
32
- * Software engineering ✓ Duck-typed SDK. Errors wrapped with
33
- * provider tag. JSON-parsed tool args fall
34
- * back to `{}` on malformed strings.
35
- *
36
10
  * ─── Limitations ────────────────────────────────────────────────────
37
11
  *
38
12
  * • Multi-modal NOT supported (`LLMMessage.content` is
@@ -40,9 +14,9 @@
40
14
  * • `responseFormat` (JSON-mode) NOT exposed — pass schema
41
15
  * instructions via `systemPrompt` for now.
42
16
  *
43
- * ─── 7-pattern test coverage ────────────────────────────────────────
44
- *
45
- * See `test/adapters/unit/OpenAIProvider.test.ts`.
17
+ * The `baseURL` option enables OpenAI-compatible APIs (Ollama, Together,
18
+ * Groq, vLLM, LM Studio) without a separate adapter — see the `ollama()`
19
+ * convenience factory below.
46
20
  */
47
21
  import type { LLMChunk, LLMProvider, LLMRequest, LLMResponse } from '../types.js';
48
22
  interface OpenAIClient {
@@ -1 +1 @@
1
- {"version":3,"file":"OpenAIProvider.d.ts","sourceRoot":"","sources":["../../../../src/adapters/llm/OpenAIProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OpenAIProvider.d.ts","sourceRoot":"","sources":["../../../../src/adapters/llm/OpenAIProvider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,157 @@
1
+ /**
2
+ * AgentCoreStore — AWS Bedrock AgentCore Memory adapter (peer-dep
3
+ * `@aws-sdk/client-bedrock-agent-runtime`).
4
+ *
5
+ * Subpath import: `agentfootprint/memory-agentcore`.
6
+ *
7
+ * import { AgentCoreStore } from 'agentfootprint/memory-agentcore';
8
+ * const store = new AgentCoreStore({
9
+ * memoryId: 'arn:aws:bedrock:us-east-1:...:memory/my-mem',
10
+ * region: 'us-east-1',
11
+ * });
12
+ *
13
+ * Pattern: Adapter (GoF) — translates the `MemoryStore` interface onto
14
+ * AgentCore Memory's session/event model:
15
+ * MemoryIdentity ↔ AgentCore session (sessionId derived
16
+ * from the identity tuple)
17
+ * MemoryEntry ↔ AgentCore event payload (JSON
18
+ * envelope keyed by entry id)
19
+ * putIfVersion ↔ unsupported by AgentCore natively;
20
+ * emulated via list+CAS at adapter level
21
+ * seen / signatures ↔ in-process LRU shadow (AgentCore has
22
+ * no built-in dedup primitive)
23
+ * feedback ↔ in-process accumulator (AgentCore
24
+ * doesn't expose a feedback metric API)
25
+ * search ↔ NOT exposed in v2.3 — AgentCore's
26
+ * retrieve API is opaque (server-side
27
+ * retrieval pipeline). Will land as
28
+ * `agentcoreRetrieve()` in a later release.
29
+ *
30
+ * Role: Outer ring. Lazy-requires the AWS SDK; no runtime cost when
31
+ * another adapter is in use.
32
+ * Emits: N/A (storage adapters don't emit; recorders observe the
33
+ * memory pipeline that calls them).
34
+ *
35
+ * **Caveats** — call out before adopting:
36
+ * 1. AgentCore is session/event-based with built-in summarization.
37
+ * Mixing `defineMemory({ strategy: SUMMARIZE })` on top will
38
+ * double-compress. Pick one summarizer.
39
+ * 2. Optimistic-concurrency `putIfVersion` is emulated; under high
40
+ * concurrent write rates the CAS window is wider than RedisStore.
41
+ * Single-writer scenarios (one server process per session) are
42
+ * fine.
43
+ * 3. seen/feedback are in-process — they don't survive process restart.
44
+ * For durable recognition, implement at a higher layer or use Redis.
45
+ * 4. AWS rate limits apply. Production deployments should wrap with
46
+ * `withRetry` and budget calls per session.
47
+ */
48
+ import type { ListOptions, ListResult, MemoryStore, PutIfVersionResult } from '../../memory/store/types.js';
49
+ import type { MemoryEntry } from '../../memory/entry/index.js';
50
+ import type { MemoryIdentity } from '../../memory/identity/index.js';
51
+ /**
52
+ * Minimal surface over `@aws-sdk/client-bedrock-agent-runtime` that
53
+ * AgentCoreStore touches. Defined locally so we don't take a hard
54
+ * import on the AWS SDK and tests can inject a mock via `_client`.
55
+ */
56
+ export interface AgentCoreLikeClient {
57
+ putEvent(input: {
58
+ memoryId: string;
59
+ sessionId: string;
60
+ eventId: string;
61
+ payload: string;
62
+ }): Promise<unknown>;
63
+ getEvent(input: {
64
+ memoryId: string;
65
+ sessionId: string;
66
+ eventId: string;
67
+ }): Promise<{
68
+ payload?: string;
69
+ } | null>;
70
+ listEvents(input: {
71
+ memoryId: string;
72
+ sessionId: string;
73
+ nextToken?: string;
74
+ maxResults?: number;
75
+ }): Promise<{
76
+ events: ReadonlyArray<{
77
+ eventId: string;
78
+ payload: string;
79
+ }>;
80
+ nextToken?: string;
81
+ }>;
82
+ deleteEvent(input: {
83
+ memoryId: string;
84
+ sessionId: string;
85
+ eventId: string;
86
+ }): Promise<unknown>;
87
+ deleteSession(input: {
88
+ memoryId: string;
89
+ sessionId: string;
90
+ }): Promise<unknown>;
91
+ }
92
+ export interface AgentCoreStoreOptions {
93
+ /** AgentCore Memory ARN or id. Required. */
94
+ readonly memoryId: string;
95
+ /** AWS region. Required when constructing the SDK client internally. */
96
+ readonly region?: string;
97
+ /**
98
+ * Pre-built AgentCore client. Use this to share a single SDK
99
+ * configuration (credentials, retry policy) across the host app.
100
+ * Adapter does NOT call any close lifecycle on a borrowed client.
101
+ */
102
+ readonly client?: AgentCoreLikeClient;
103
+ /** Page size for `listEvents` calls. Default 50. */
104
+ readonly pageSize?: number;
105
+ /**
106
+ * @internal Test injection point. Skips SDK require entirely.
107
+ */
108
+ readonly _client?: AgentCoreLikeClient;
109
+ }
110
+ /**
111
+ * AgentCore Memory-backed `MemoryStore`. Implements every method
112
+ * except `search()`. Vector retrieval via AgentCore's native API
113
+ * lands as a separate read-side helper in a later release.
114
+ *
115
+ * @throws when `@aws-sdk/client-bedrock-agent-runtime` is not
116
+ * installed and no `_client` is supplied.
117
+ */
118
+ export declare class AgentCoreStore implements MemoryStore {
119
+ private readonly client;
120
+ private readonly memoryId;
121
+ private readonly pageSize;
122
+ private closed;
123
+ private readonly signatures;
124
+ private readonly feedbackBag;
125
+ constructor(options: AgentCoreStoreOptions);
126
+ private sessionId;
127
+ private shadowKey;
128
+ private feedbackKey;
129
+ get<T = unknown>(identity: MemoryIdentity, id: string): Promise<MemoryEntry<T> | null>;
130
+ put<T = unknown>(identity: MemoryIdentity, entry: MemoryEntry<T>): Promise<void>;
131
+ putMany<T = unknown>(identity: MemoryIdentity, entries: readonly MemoryEntry<T>[]): Promise<void>;
132
+ /**
133
+ * Emulated optimistic concurrency. AgentCore's PutEvent overwrites
134
+ * unconditionally. We read-then-write inside a JS critical section
135
+ * — adequate for single-writer-per-session deployments. For multi-
136
+ * writer correctness on AgentCore, layer your own coordination.
137
+ */
138
+ putIfVersion<T = unknown>(identity: MemoryIdentity, entry: MemoryEntry<T>, expectedVersion: number): Promise<PutIfVersionResult>;
139
+ list<T = unknown>(identity: MemoryIdentity, options?: ListOptions): Promise<ListResult<T>>;
140
+ delete(identity: MemoryIdentity, id: string): Promise<void>;
141
+ seen(identity: MemoryIdentity, signature: string): Promise<boolean>;
142
+ recordSignature(identity: MemoryIdentity, signature: string): Promise<void>;
143
+ feedback(identity: MemoryIdentity, id: string, usefulness: number): Promise<void>;
144
+ getFeedback(identity: MemoryIdentity, id: string): Promise<{
145
+ average: number;
146
+ count: number;
147
+ } | null>;
148
+ forget(identity: MemoryIdentity): Promise<void>;
149
+ /**
150
+ * Mark the store closed. Subsequent calls throw cleanly. Idempotent.
151
+ * AgentCore is stateless from the client perspective so there's no
152
+ * connection to tear down — the close gate is purely defensive.
153
+ */
154
+ close(): Promise<void>;
155
+ private ensureOpen;
156
+ }
157
+ //# sourceMappingURL=agentcore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentcore.d.ts","sourceRoot":"","sources":["../../../../src/adapters/memory/agentcore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,UAAU,EACV,WAAW,EACX,kBAAkB,EACnB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAGrE;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,KAAK,EAAE;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;IACzC,UAAU,CAAC,KAAK,EAAE;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GAAG,OAAO,CAAC;QACV,MAAM,EAAE,aAAa,CAAC;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;IACH,WAAW,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/F,aAAa,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACjF;AAED,MAAM,WAAW,qBAAqB;IACpC,4CAA4C;IAC5C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,wEAAwE;IACxE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEzB;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAEtC,oDAAoD;IACpD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,mBAAmB,CAAC;CACxC;AAED;;;;;;;GAOG;AACH,qBAAa,cAAe,YAAW,WAAW;IAChD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAC7C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,MAAM,CAAS;IAIvB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkC;IAC7D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqD;gBAErE,OAAO,EAAE,qBAAqB;IAiB1C,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,SAAS;IAGjB,OAAO,CAAC,WAAW;IAMb,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IActF,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAWhF,OAAO,CAAC,CAAC,GAAG,OAAO,EACvB,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,SAAS,WAAW,CAAC,CAAC,CAAC,EAAE,GACjC,OAAO,CAAC,IAAI,CAAC;IAYhB;;;;;OAKG;IACG,YAAY,CAAC,CAAC,GAAG,OAAO,EAC5B,QAAQ,EAAE,cAAc,EACxB,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,EACrB,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,kBAAkB,CAAC;IAYxB,IAAI,CAAC,CAAC,GAAG,OAAO,EACpB,QAAQ,EAAE,cAAc,EACxB,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAmBnB,MAAM,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU3D,IAAI,CAAC,QAAQ,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKnE,eAAe,CAAC,QAAQ,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ3E,QAAQ,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASjF,WAAW,CACf,QAAQ,EAAE,cAAc,EACxB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAO/C,MAAM,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAerD;;;;OAIG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAK5B,OAAO,CAAC,UAAU;CAKnB"}
@@ -0,0 +1,126 @@
1
+ /**
2
+ * RedisStore — Redis-backed `MemoryStore` adapter (peer-dep `ioredis`).
3
+ *
4
+ * Subpath import: `agentfootprint/memory-redis`.
5
+ *
6
+ * import { RedisStore } from 'agentfootprint/memory-redis';
7
+ * const store = new RedisStore({ url: 'redis://localhost:6379' });
8
+ *
9
+ * Pattern: Adapter (GoF) — translates the `MemoryStore` interface onto
10
+ * Redis primitives (key/value for entries, set for signatures,
11
+ * hash for feedback aggregates).
12
+ * Role: Outer ring. Lazy-requires `ioredis`; no runtime cost when
13
+ * another adapter is in use.
14
+ * Emits: N/A (storage adapters don't emit; recorders observe the
15
+ * memory pipeline that calls them).
16
+ *
17
+ * Vector search (`search()`) is NOT implemented in this adapter — RedisSearch
18
+ * is a separate Redis module with its own API surface. A `RedisSearchStore`
19
+ * may ship in a future release. RAG users with v2.3 should use
20
+ * `InMemoryStore` until the search-capable adapter lands.
21
+ *
22
+ * Concurrency model:
23
+ * - `put` / `putMany` use simple SET / pipelined SET (last-write-wins).
24
+ * - `putIfVersion` uses a small Lua script for atomic version compare-and-swap.
25
+ * - Multi-writer correctness ⇒ prefer `putIfVersion` in stage code.
26
+ */
27
+ import type { ListOptions, ListResult, MemoryStore, PutIfVersionResult } from '../../memory/store/types.js';
28
+ import type { MemoryEntry } from '../../memory/entry/index.js';
29
+ import type { MemoryIdentity } from '../../memory/identity/index.js';
30
+ /**
31
+ * Minimal `ioredis` client surface this adapter needs. Defined locally so
32
+ * we don't take a hard import on `ioredis` (lazy peer-dep) and tests can
33
+ * inject a mock implementation via `_client`.
34
+ */
35
+ export interface RedisLikeClient {
36
+ get(key: string): Promise<string | null>;
37
+ set(key: string, value: string, ...args: ReadonlyArray<string | number>): Promise<unknown>;
38
+ del(...keys: ReadonlyArray<string>): Promise<number>;
39
+ sadd(key: string, ...members: ReadonlyArray<string>): Promise<number>;
40
+ srem(key: string, ...members: ReadonlyArray<string>): Promise<number>;
41
+ sismember(key: string, member: string): Promise<number>;
42
+ smembers(key: string): Promise<readonly string[]>;
43
+ hgetall(key: string): Promise<Record<string, string>>;
44
+ hset(key: string, ...args: ReadonlyArray<string | number>): Promise<number>;
45
+ scan(cursor: string, match: 'MATCH', pattern: string, count: 'COUNT', n: number): Promise<readonly [string, readonly string[]]>;
46
+ eval(script: string, numKeys: number, ...args: ReadonlyArray<string | number>): Promise<unknown>;
47
+ pipeline(): RedisLikePipeline;
48
+ quit(): Promise<unknown>;
49
+ }
50
+ export interface RedisLikePipeline {
51
+ set(key: string, value: string, ...args: ReadonlyArray<string | number>): RedisLikePipeline;
52
+ sadd(key: string, ...members: ReadonlyArray<string>): RedisLikePipeline;
53
+ exec(): Promise<unknown>;
54
+ }
55
+ export interface RedisStoreOptions {
56
+ /**
57
+ * Connection URL (e.g. `redis://default:password@host:6379/0`). Required
58
+ * unless `_client` is supplied.
59
+ */
60
+ readonly url?: string;
61
+ /**
62
+ * Pre-built `ioredis` client. Use this when the host app already manages
63
+ * a Redis connection pool. Adapter does NOT call `quit()` on a borrowed
64
+ * client — caller owns the lifecycle.
65
+ */
66
+ readonly client?: RedisLikeClient;
67
+ /** Key prefix for namespace isolation across apps sharing one Redis. Default `'agentfootprint'`. */
68
+ readonly prefix?: string;
69
+ /**
70
+ * SCAN page size when iterating keys. Default 100. Larger = fewer
71
+ * round-trips but more memory per response. Adapter never uses `KEYS *`
72
+ * (which blocks Redis).
73
+ */
74
+ readonly scanCount?: number;
75
+ /**
76
+ * @internal Test injection point. When provided, skips the SDK require.
77
+ */
78
+ readonly _client?: RedisLikeClient;
79
+ }
80
+ /**
81
+ * Redis-backed `MemoryStore`. Implements every method except `search()`.
82
+ *
83
+ * @throws when `ioredis` is not installed and no `_client` is supplied.
84
+ */
85
+ export declare class RedisStore implements MemoryStore {
86
+ private readonly client;
87
+ private readonly prefix;
88
+ private readonly scanCount;
89
+ private readonly ownsClient;
90
+ private closed;
91
+ constructor(options?: RedisStoreOptions);
92
+ private nsKey;
93
+ private entryKey;
94
+ private indexKey;
95
+ private sigKey;
96
+ private feedbackKey;
97
+ get<T = unknown>(identity: MemoryIdentity, id: string): Promise<MemoryEntry<T> | null>;
98
+ put<T = unknown>(identity: MemoryIdentity, entry: MemoryEntry<T>): Promise<void>;
99
+ putMany<T = unknown>(identity: MemoryIdentity, entries: readonly MemoryEntry<T>[]): Promise<void>;
100
+ /**
101
+ * Optimistic concurrency via a small Lua script — atomic
102
+ * compare-and-swap on the JSON-encoded `version` field.
103
+ */
104
+ putIfVersion<T = unknown>(identity: MemoryIdentity, entry: MemoryEntry<T>, expectedVersion: number): Promise<PutIfVersionResult>;
105
+ list<T = unknown>(identity: MemoryIdentity, options?: ListOptions): Promise<ListResult<T>>;
106
+ delete(identity: MemoryIdentity, id: string): Promise<void>;
107
+ seen(identity: MemoryIdentity, signature: string): Promise<boolean>;
108
+ recordSignature(identity: MemoryIdentity, signature: string): Promise<void>;
109
+ feedback(identity: MemoryIdentity, id: string, usefulness: number): Promise<void>;
110
+ getFeedback(identity: MemoryIdentity, id: string): Promise<{
111
+ average: number;
112
+ count: number;
113
+ } | null>;
114
+ /**
115
+ * GDPR — drop every key under this identity's namespace.
116
+ */
117
+ forget(identity: MemoryIdentity): Promise<void>;
118
+ /**
119
+ * Close the underlying Redis connection — only when this adapter
120
+ * owns it. Borrowed clients (passed via `client` option) are left to
121
+ * the caller. Idempotent.
122
+ */
123
+ close(): Promise<void>;
124
+ private ensureOpen;
125
+ }
126
+ //# sourceMappingURL=redis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redis.d.ts","sourceRoot":"","sources":["../../../../src/adapters/memory/redis.ts"],"names":[],"mappings":"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"}
@@ -179,6 +179,20 @@ export declare class AgentBuilder {
179
179
  * Skill stays active for the rest of the turn once activated.
180
180
  */
181
181
  skill(injection: Injection): this;
182
+ /**
183
+ * Bulk-register every Skill in a `SkillRegistry`. Use for shared
184
+ * skill catalogs across multiple Agents — register skills once on
185
+ * the registry; attach the same registry to every consumer Agent.
186
+ *
187
+ * @example
188
+ * const registry = new SkillRegistry();
189
+ * registry.register(billingSkill).register(refundSkill);
190
+ * const supportAgent = Agent.create({ provider }).skills(registry).build();
191
+ * const escalationAgent = Agent.create({ provider }).skills(registry).build();
192
+ */
193
+ skills(registry: {
194
+ list(): readonly Injection[];
195
+ }): this;
182
196
  /**
183
197
  * Register a Steering doc — always-on system-prompt rule.
184
198
  * Use for invariant guidance: output format, persona, safety policies.
@@ -1 +1 @@
1
- {"version":3,"file":"Agent.d.ts","sourceRoot":"","sources":["../../../src/core/Agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Agent.d.ts","sourceRoot":"","sources":["../../../src/core/Agent.ts"],"names":[],"mappings":"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"}
@@ -41,7 +41,7 @@ export { Sequence, SequenceBuilder, type SequenceInput, type SequenceOptions, ty
41
41
  export { Parallel, ParallelBuilder, type BranchOutcome, type MergeFn, type MergeOutcomesFn, type MergeWithLLMOptions, type ParallelInput, type ParallelOptions, type ParallelOutput, } from './core-flow/Parallel.js';
42
42
  export { Conditional, ConditionalBuilder, type ConditionalInput, type ConditionalOptions, type ConditionalOutput, type Predicate, } from './core-flow/Conditional.js';
43
43
  export { Loop, LoopBuilder, type LoopInput, type LoopOptions, type LoopOutput, type UntilGuard, } from './core-flow/Loop.js';
44
- export { MockProvider, mock, type MockProviderOptions } from './adapters/llm/MockProvider.js';
44
+ export { MockProvider, mock, type MockProviderOptions, type MockReply, } from './adapters/llm/MockProvider.js';
45
45
  export { anthropic, AnthropicProvider, type AnthropicProviderOptions, } from './adapters/llm/AnthropicProvider.js';
46
46
  export { openai, OpenAIProvider, ollama, type OpenAIProviderOptions, } from './adapters/llm/OpenAIProvider.js';
47
47
  export { bedrock, BedrockProvider, type BedrockProviderOptions, } from './adapters/llm/BedrockProvider.js';
@@ -49,12 +49,12 @@ export { browserAnthropic, BrowserAnthropicProvider, type BrowserAnthropicProvid
49
49
  export { browserOpenai, BrowserOpenAIProvider, type BrowserOpenAIProviderOptions, } from './adapters/llm/BrowserOpenAIProvider.js';
50
50
  export { createProvider, type ProviderKind, type CreateProviderOptions, } from './adapters/llm/createProvider.js';
51
51
  export { toSSE, SSEFormatter, encodeSSE, type ToSSEOptions } from './stream.js';
52
- export { type Injection, type InjectionTrigger, type InjectionContent, type InjectionContext, type InjectionEvaluation, evaluateInjections, buildInjectionEngineSubflow, type InjectionEngineConfig, defineInstruction, type DefineInstructionOptions, defineSkill, type DefineSkillOptions, defineSteering, type DefineSteeringOptions, defineFact, type DefineFactOptions, } from './lib/injection-engine/index.js';
52
+ export { type Injection, type InjectionTrigger, type InjectionContent, type InjectionContext, type InjectionEvaluation, evaluateInjections, buildInjectionEngineSubflow, type InjectionEngineConfig, defineInstruction, type DefineInstructionOptions, defineSkill, resolveSurfaceMode, SkillRegistry, type DefineSkillOptions, type SurfaceMode, type RefreshPolicy, defineSteering, type DefineSteeringOptions, defineFact, type DefineFactOptions, } from './lib/injection-engine/index.js';
53
53
  export * from './patterns/index.js';
54
54
  export { defaultPipeline, ephemeralPipeline, factPipeline, narrativePipeline, semanticPipeline, autoPipeline, } from './memory/pipeline/index.js';
55
55
  export { heuristicExtractor, llmExtractor, } from './memory/beats/index.js';
56
56
  export { patternFactExtractor, llmFactExtractor, } from './memory/facts/index.js';
57
57
  export { defineMemory, MEMORY_TYPES, MEMORY_STRATEGIES, MEMORY_TIMING, SNAPSHOT_PROJECTIONS, type MemoryType, type MemoryStrategyKind, type MemoryTiming, type SnapshotProjection, type Strategy, type MemoryDefinition, type DefineMemoryOptions, InMemoryStore, mockEmbedder, identityNamespace, type MemoryIdentity, type Embedder, } from './memory/index.js';
58
58
  export { defineRAG, type DefineRAGOptions, indexDocuments, type IndexDocumentsOptions, type RagDocument, } from './lib/rag/index.js';
59
- export { mcpClient, type McpClient, type McpClientOptions, type McpHttpTransport, type McpStdioTransport, type McpTransport, type McpSdkClient, } from './lib/mcp/index.js';
59
+ export { mcpClient, mockMcpClient, type McpClient, type McpClientOptions, type McpHttpTransport, type McpStdioTransport, type McpTransport, type McpSdkClient, type MockMcpClientOptions, type MockMcpTool, } from './lib/mcp/index.js';
60
60
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * SkillRegistry — centralized governance for Skills across one or
3
+ * more Agents.
4
+ *
5
+ * Most apps register Skills directly on the Agent via `.skill(s)`.
6
+ * Once you have multiple Agents that share a common skill catalog
7
+ * (a customer-support pool, a research team, a multi-step workflow
8
+ * where each step uses different overlapping skills), hand-syncing
9
+ * `.skill()` calls per Agent gets fragile.
10
+ *
11
+ * `SkillRegistry` is the answer: register once, attach to many
12
+ * Agents via `.skills(registry)`. Add a Skill to the registry and
13
+ * every consumer Agent picks it up at next build.
14
+ *
15
+ * @example
16
+ * const registry = new SkillRegistry();
17
+ * registry.register(billingSkill);
18
+ * registry.register(refundSkill);
19
+ *
20
+ * const supportAgent = Agent.create({ provider }).skills(registry).build();
21
+ * const escalationAgent = Agent.create({ provider }).skills(registry).build();
22
+ *
23
+ * // Add a new skill — both agents pick it up at next build.
24
+ * registry.register(complianceSkill);
25
+ */
26
+ import type { Injection } from './types.js';
27
+ export declare class SkillRegistry {
28
+ private readonly skills;
29
+ /**
30
+ * Register a skill. Throws if `skill.flavor !== 'skill'` or if a
31
+ * skill with the same id is already registered (use `.replace(...)`
32
+ * to overwrite intentionally).
33
+ */
34
+ register(skill: Injection): this;
35
+ /** Replace an existing skill by id. Throws if id is not registered. */
36
+ replace(id: string, skill: Injection): this;
37
+ /** Remove a skill by id. No-op if not registered. */
38
+ unregister(id: string): this;
39
+ /** Look up by id. Returns undefined if not registered. */
40
+ get(id: string): Injection | undefined;
41
+ /** True iff a skill with the given id is registered. */
42
+ has(id: string): boolean;
43
+ /** All registered skills. Order matches registration order. */
44
+ list(): readonly Injection[];
45
+ /** Number of registered skills. */
46
+ get size(): number;
47
+ /** Drop all registrations. */
48
+ clear(): void;
49
+ }
50
+ //# sourceMappingURL=SkillRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SkillRegistry.d.ts","sourceRoot":"","sources":["../../../../src/lib/injection-engine/SkillRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgC;IAEvD;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAehC,uEAAuE;IACvE,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI;IAoB3C,qDAAqD;IACrD,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAK5B,0DAA0D;IAC1D,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAItC,wDAAwD;IACxD,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIxB,+DAA+D;IAC/D,IAAI,IAAI,SAAS,SAAS,EAAE;IAI5B,mCAAmC;IACnC,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,8BAA8B;IAC9B,KAAK,IAAI,IAAI;CAGd"}