agentfootprint 9.5.0 → 9.6.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 (108) hide show
  1. package/dist/adapters/llm/AnthropicProvider.js +6 -0
  2. package/dist/adapters/llm/AnthropicProvider.js.map +1 -1
  3. package/dist/adapters/llm/BedrockProvider.js +7 -0
  4. package/dist/adapters/llm/BedrockProvider.js.map +1 -1
  5. package/dist/adapters/llm/BrowserAnthropicProvider.js +13 -0
  6. package/dist/adapters/llm/BrowserAnthropicProvider.js.map +1 -1
  7. package/dist/adapters/llm/BrowserOpenAIProvider.js +14 -0
  8. package/dist/adapters/llm/BrowserOpenAIProvider.js.map +1 -1
  9. package/dist/adapters/llm/OpenAIProvider.js +7 -0
  10. package/dist/adapters/llm/OpenAIProvider.js.map +1 -1
  11. package/dist/adapters/llm/contextWindow.js +284 -0
  12. package/dist/adapters/llm/contextWindow.js.map +1 -0
  13. package/dist/core/Agent.js +13 -0
  14. package/dist/core/Agent.js.map +1 -1
  15. package/dist/core/agent/stages/seed.js +67 -11
  16. package/dist/core/agent/stages/seed.js.map +1 -1
  17. package/dist/core/runCheckpoint.js +102 -2
  18. package/dist/core/runCheckpoint.js.map +1 -1
  19. package/dist/esm/adapters/llm/AnthropicProvider.js +6 -0
  20. package/dist/esm/adapters/llm/AnthropicProvider.js.map +1 -1
  21. package/dist/esm/adapters/llm/BedrockProvider.js +7 -0
  22. package/dist/esm/adapters/llm/BedrockProvider.js.map +1 -1
  23. package/dist/esm/adapters/llm/BrowserAnthropicProvider.js +13 -0
  24. package/dist/esm/adapters/llm/BrowserAnthropicProvider.js.map +1 -1
  25. package/dist/esm/adapters/llm/BrowserOpenAIProvider.js +14 -0
  26. package/dist/esm/adapters/llm/BrowserOpenAIProvider.js.map +1 -1
  27. package/dist/esm/adapters/llm/OpenAIProvider.js +7 -0
  28. package/dist/esm/adapters/llm/OpenAIProvider.js.map +1 -1
  29. package/dist/esm/adapters/llm/contextWindow.d.ts +111 -0
  30. package/dist/esm/adapters/llm/contextWindow.js +277 -0
  31. package/dist/esm/adapters/llm/contextWindow.js.map +1 -0
  32. package/dist/esm/core/Agent.js +13 -0
  33. package/dist/esm/core/Agent.js.map +1 -1
  34. package/dist/esm/core/agent/stages/seed.d.ts +12 -0
  35. package/dist/esm/core/agent/stages/seed.js +67 -11
  36. package/dist/esm/core/agent/stages/seed.js.map +1 -1
  37. package/dist/esm/core/runCheckpoint.d.ts +25 -0
  38. package/dist/esm/core/runCheckpoint.js +100 -1
  39. package/dist/esm/core/runCheckpoint.js.map +1 -1
  40. package/dist/esm/index.d.ts +2 -1
  41. package/dist/esm/index.js +6 -1
  42. package/dist/esm/index.js.map +1 -1
  43. package/dist/esm/memory/causal/writeSnapshot.d.ts +17 -4
  44. package/dist/esm/memory/causal/writeSnapshot.js +31 -27
  45. package/dist/esm/memory/causal/writeSnapshot.js.map +1 -1
  46. package/dist/esm/memory/define.js +17 -1
  47. package/dist/esm/memory/define.js.map +1 -1
  48. package/dist/esm/memory/define.types.d.ts +17 -0
  49. package/dist/esm/memory/define.types.js.map +1 -1
  50. package/dist/esm/memory/index.d.ts +1 -0
  51. package/dist/esm/memory/index.js +1 -0
  52. package/dist/esm/memory/index.js.map +1 -1
  53. package/dist/esm/memory/stages/types.d.ts +13 -3
  54. package/dist/esm/memory/strategies.d.ts +27 -1
  55. package/dist/esm/memory/strategies.js +105 -1
  56. package/dist/esm/memory/strategies.js.map +1 -1
  57. package/dist/esm/memory/turn/index.d.ts +7 -0
  58. package/dist/esm/memory/turn/index.js +11 -0
  59. package/dist/esm/memory/turn/index.js.map +1 -0
  60. package/dist/esm/memory/turn/resolveTurnNumber.d.ts +94 -0
  61. package/dist/esm/memory/turn/resolveTurnNumber.js +75 -0
  62. package/dist/esm/memory/turn/resolveTurnNumber.js.map +1 -0
  63. package/dist/index.js +10 -1
  64. package/dist/index.js.map +1 -1
  65. package/dist/memory/causal/writeSnapshot.js +31 -27
  66. package/dist/memory/causal/writeSnapshot.js.map +1 -1
  67. package/dist/memory/define.js +16 -0
  68. package/dist/memory/define.js.map +1 -1
  69. package/dist/memory/define.types.js.map +1 -1
  70. package/dist/memory/index.js +1 -0
  71. package/dist/memory/index.js.map +1 -1
  72. package/dist/memory/strategies.js +107 -2
  73. package/dist/memory/strategies.js.map +1 -1
  74. package/dist/memory/turn/index.js +16 -0
  75. package/dist/memory/turn/index.js.map +1 -0
  76. package/dist/memory/turn/resolveTurnNumber.js +81 -0
  77. package/dist/memory/turn/resolveTurnNumber.js.map +1 -0
  78. package/dist/types/adapters/llm/AnthropicProvider.d.ts.map +1 -1
  79. package/dist/types/adapters/llm/BedrockProvider.d.ts.map +1 -1
  80. package/dist/types/adapters/llm/BrowserAnthropicProvider.d.ts.map +1 -1
  81. package/dist/types/adapters/llm/BrowserOpenAIProvider.d.ts.map +1 -1
  82. package/dist/types/adapters/llm/OpenAIProvider.d.ts.map +1 -1
  83. package/dist/types/adapters/llm/contextWindow.d.ts +112 -0
  84. package/dist/types/adapters/llm/contextWindow.d.ts.map +1 -0
  85. package/dist/types/core/Agent.d.ts.map +1 -1
  86. package/dist/types/core/agent/stages/seed.d.ts +12 -0
  87. package/dist/types/core/agent/stages/seed.d.ts.map +1 -1
  88. package/dist/types/core/agent/types.d.ts.map +1 -1
  89. package/dist/types/core/runCheckpoint.d.ts +25 -0
  90. package/dist/types/core/runCheckpoint.d.ts.map +1 -1
  91. package/dist/types/index.d.ts +2 -1
  92. package/dist/types/index.d.ts.map +1 -1
  93. package/dist/types/memory/causal/writeSnapshot.d.ts +17 -4
  94. package/dist/types/memory/causal/writeSnapshot.d.ts.map +1 -1
  95. package/dist/types/memory/define.d.ts.map +1 -1
  96. package/dist/types/memory/define.types.d.ts +17 -0
  97. package/dist/types/memory/define.types.d.ts.map +1 -1
  98. package/dist/types/memory/index.d.ts +1 -0
  99. package/dist/types/memory/index.d.ts.map +1 -1
  100. package/dist/types/memory/stages/types.d.ts +13 -3
  101. package/dist/types/memory/stages/types.d.ts.map +1 -1
  102. package/dist/types/memory/strategies.d.ts +27 -1
  103. package/dist/types/memory/strategies.d.ts.map +1 -1
  104. package/dist/types/memory/turn/index.d.ts +8 -0
  105. package/dist/types/memory/turn/index.d.ts.map +1 -0
  106. package/dist/types/memory/turn/resolveTurnNumber.d.ts +95 -0
  107. package/dist/types/memory/turn/resolveTurnNumber.d.ts.map +1 -0
  108. package/package.json +1 -1
@@ -314,6 +314,23 @@ export interface MemoryDefinition<T = unknown> {
314
314
  readonly read: ReadonlyMemoryFlowChart<T>;
315
315
  /** Compiled write subflow. Optional — `EPHEMERAL`-style configs omit. */
316
316
  readonly write?: ReadonlyMemoryFlowChart<T>;
317
+ /**
318
+ * The store this memory reads and writes (9.6.0).
319
+ *
320
+ * The compiled subflows already closed over it — this carries it in the
321
+ * open for the one question a subflow cannot answer from inside itself:
322
+ * **which turn of this conversation is about to happen?** A turn number
323
+ * is the key in `msg-{turn}-{index}` / `snap-{turn}` / `beat-{turn}-{i}`,
324
+ * and the only thing that remembers how far a conversation has got —
325
+ * across processes, across a fresh `Agent` per turn — is the store. The
326
+ * Agent reads this to resolve the turn once per run (`resolveTurnNumber`)
327
+ * before any memory subflow runs.
328
+ *
329
+ * Optional because a `MemoryDefinition` may be hand-built; a definition
330
+ * without it simply keeps whatever turn number its host supplies, which
331
+ * is what every release before 9.6.0 did.
332
+ */
333
+ readonly store?: MemoryStore;
317
334
  /** When `read` runs. Default `TURN_START`. */
318
335
  readonly timing: MemoryTiming;
319
336
  /** Reserved for a future release — patterns to redact before write. */
@@ -1 +1 @@
1
- {"version":3,"file":"define.types.d.ts","sourceRoot":"","sources":["../../../src/memory/define.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"define.types.d.ts","sourceRoot":"","sources":["../../../src/memory/define.types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAI9D;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY;;;;;CAKf,CAAC;AACX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,CAAC;AAE1E;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;CAQpB,CAAC;AACX,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,OAAO,iBAAiB,CAAC,CAAC;AAE5F;;;;;;GAMG;AACH,eAAO,MAAM,aAAa;;;CAGhB,CAAC;AACX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAC;AAE9E;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB;;;;;CAKvB,CAAC;AACX,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,OAAO,oBAAoB,CAAC,CAAC;AAIlG;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,OAAO,iBAAiB,CAAC,MAAM,CAAC;IAC/C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,OAAO,iBAAiB,CAAC,MAAM,CAAC;IAC/C,2EAA2E;IAC3E,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,0DAA0D;IAC1D,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,2EAA2E;IAC3E,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,OAAO,iBAAiB,CAAC,SAAS,CAAC;IAClD,qDAAqD;IACrD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,uEAAuE;IACvE,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC;CAC3B;AAED;;;;GAIG;AACH;;;;;;;;;GASG;AACH,MAAM,MAAM,YAAY,GAAG,qBAAqB,GAAG,qBAAqB,CAAC;AAEzE,uEAAuE;AACvE,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,OAAO,iBAAiB,CAAC,KAAK,CAAC;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,2EAA2E;IAC3E,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;;;;;;OASG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAC7B;;;;;;;OAOG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,kDAAkD;IAClD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC;CAC5B;AAED,mFAAmF;AACnF,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,OAAO,iBAAiB,CAAC,KAAK,CAAC;IAC9C,yFAAyF;IACzF,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACtC,oDAAoD;IACpD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC;CAC5B;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,OAAO,iBAAiB,CAAC,OAAO,CAAC;IAChD,kEAAkE;IAClE,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,KAAK,CAAC;IACtC,wCAAwC;IACxC,QAAQ,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC;IAC3B,8DAA8D;IAC9D,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,iDAAiD;IACjD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,OAAO,iBAAiB,CAAC,KAAK,CAAC;IAC9C;;;;OAIG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,OAAO,iBAAiB,CAAC,MAAM,CAAC;IAC/C,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC;CACvE;AAED,yDAAyD;AACzD,MAAM,MAAM,QAAQ,GAChB,oBAAoB,GACpB,cAAc,GACd,iBAAiB,GACjB,YAAY,GACZ,eAAe,GACf,aAAa,GACb,cAAc,CAAC;AAInB;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB;IACpC,0CAA0C;IAC1C,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,kDAAkD;IAClD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAID;;;;;;;;GAQG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC,GAAG,OAAO;IAC3C,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,0CAA0C;IAC1C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAE9B,4DAA4D;IAC5D,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAE1B,yEAAyE;IACzE,QAAQ,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAC,CAAC,CAAC;IAE1C,yEAAyE;IACzE,QAAQ,CAAC,KAAK,CAAC,EAAE,uBAAuB,CAAC,CAAC,CAAC,CAAC;IAE5C;;;;;;;;;;;;;;;OAeG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC;IAE7B,8CAA8C;IAC9C,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAQ9B,uEAAuE;IACvE,QAAQ,CAAC,MAAM,CAAC,EAAE,qBAAqB,CAAC;IAExC,oEAAoE;IACpE,QAAQ,CAAC,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAEzC;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC;IAEjC;;;;;;;;OAQG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;CAChC;AAED,uDAAuD;AACvD,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,KAAK,CAAC;AAE5C;;;;;;GAMG;AAEH,MAAM,MAAM,uBAAuB,CAAC,EAAE,IAAI;IACxC,QAAQ,CAAC,OAAO,EAAE,yBAAyB,CAAC;CAC7C,CAAC;AAIF;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;IAK/B,QAAQ,CAAC,MAAM,CAAC,EAAE,qBAAqB,CAAC;IAExC;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC;IAEjC;;;;;;;;OAQG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAE5B,iFAAiF;IACjF,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;CAChC;AAED,MAAM,WAAW,qBAAsB,SAAQ,uBAAuB;IACpE,QAAQ,CAAC,IAAI,EAAE,OAAO,YAAY,CAAC,QAAQ,CAAC;CAC7C;AAED,MAAM,WAAW,qBAAsB,SAAQ,uBAAuB;IACpE,QAAQ,CAAC,IAAI,EAAE,OAAO,YAAY,CAAC,QAAQ,CAAC;CAC7C;AAED,MAAM,WAAW,sBAAuB,SAAQ,uBAAuB;IACrE,QAAQ,CAAC,IAAI,EAAE,OAAO,YAAY,CAAC,SAAS,CAAC;CAC9C;AAED,MAAM,WAAW,mBAAoB,SAAQ,uBAAuB;IAClE,QAAQ,CAAC,IAAI,EAAE,OAAO,YAAY,CAAC,MAAM,CAAC;IAC1C,4DAA4D;IAC5D,QAAQ,CAAC,UAAU,CAAC,EAAE,kBAAkB,CAAC;CAC1C;AAED,2EAA2E;AAC3E,MAAM,MAAM,mBAAmB,GAC3B,qBAAqB,GACrB,qBAAqB,GACrB,sBAAsB,GACtB,mBAAmB,CAAC;AAIxB,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,UAAU,CAE/D;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,kBAAkB,CAE/E;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,YAAY,CAEnE;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,kBAAkB,CAE/E;AAID;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,oBAA8B,CAAC;AAEvE,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,6BAA6B,sBAAgC,CAAC;AAE3E,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE3D"}
@@ -14,6 +14,7 @@ export * from './identity/index.js';
14
14
  export * from './pipeline/index.js';
15
15
  export * from './stages/index.js';
16
16
  export * from './store/index.js';
17
+ export * from './turn/index.js';
17
18
  export * from './wire/index.js';
18
19
  export * from './retrieval/index.js';
19
20
  export { MEMORY_TYPES, MEMORY_STRATEGIES, MEMORY_TIMING, SNAPSHOT_PROJECTIONS, MEMORY_INJECTION_KEY_PREFIX, RETRIEVAL_EVIDENCE_KEY_PREFIX, isMemoryType, isMemoryStrategyKind, isMemoryTiming, isSnapshotProjection, memoryInjectionKey, isMemoryInjectionKey, retrievalEvidenceKey, isRetrievalEvidenceKey, type MemoryType, type MemoryStrategyKind, type MemoryTiming, type SnapshotProjection, type Strategy, type MemoryWindowStrategy, type BudgetStrategy, type SummarizeStrategy, type TopKStrategy, type TopKShorthandStrategy, type TopKRetrievalStrategy, type MemoryFlavor, type ExtractStrategy, type DecayStrategy, type HybridStrategy, type MemoryDefinition, type DefineMemoryOptions, type DefineEpisodicOptions, type DefineSemanticOptions, type DefineNarrativeOptions, type DefineCausalOptions, type MemoryRedactionPolicy, } from './define.types.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/memory/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AAGrC,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,oBAAoB,EACpB,2BAA2B,EAC3B,6BAA6B,EAC7B,YAAY,EACZ,oBAAoB,EACpB,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,QAAQ,EACb,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,GAC3B,MAAM,mBAAmB,CAAC;AAQ3B,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,GAC/B,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/memory/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AAGrC,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,oBAAoB,EACpB,2BAA2B,EAC3B,6BAA6B,EAC7B,YAAY,EACZ,oBAAoB,EACpB,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,QAAQ,EACb,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,GAC3B,MAAM,mBAAmB,CAAC;AAQ3B,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,GAC/B,MAAM,iBAAiB,CAAC"}
@@ -24,9 +24,19 @@ export interface MemoryState {
24
24
  */
25
25
  readonly identity: MemoryIdentity;
26
26
  /**
27
- * Run-local turn counter — 1 for the first `agent.run`, 2 for the second,
28
- * and so on within the same conversationId. Written into `MemoryEntry.source`
29
- * by write-side stages for provenance.
27
+ * WHICH TURN of this conversation this pipeline is running for — 1 for the
28
+ * first exchange, 2 for the second, and so on within one `conversationId`.
29
+ * Set by the wire layer before the pipeline runs.
30
+ *
31
+ * Not a label: write-side stages KEY their entries on it (`msg-{turn}-{i}`,
32
+ * `snap-{turn}`, `beat-{turn}-{i}`) and stamp it into `MemoryEntry.source`
33
+ * so recall can say "remembered from turn 5". Two turns that share this
34
+ * number are one turn overwriting the other.
35
+ *
36
+ * Under an Agent it is resolved once per run against the memory stores
37
+ * themselves (`resolveTurnNumber`), so it survives a fresh Agent — or a
38
+ * fresh process — per turn. A host that mounts these subflows itself owns
39
+ * the number: pass a real one, or call `resolveTurnNumber` to derive it.
30
40
  */
31
41
  readonly turnNumber: number;
32
42
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/memory/stages/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,IAAI,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAErE,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAElC;;;;OAIG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B;;;;;;;OAOG;IACH,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IAExC;;;;OAIG;IACH,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;IAE/B;;;;;OAKG;IACH,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;IAEjC;;;;OAIG;IACH,SAAS,EAAE,OAAO,EAAE,CAAC;IAErB;;;;;;;;;;;;;OAaG;IACH,SAAS,CAAC,EAAE,OAAO,uBAAuB,EAAE,iBAAiB,CAAC;IAE9D;;;;OAIG;IACH,WAAW,EAAE,OAAO,EAAE,CAAC;IAEvB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,+BAA+B,EAAE,WAAW,CAAC;IAElE,+EAA+E;IAC/E,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/memory/stages/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,IAAI,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAErE,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAElC;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B;;;;;;;OAOG;IACH,QAAQ,CAAC,sBAAsB,EAAE,MAAM,CAAC;IAExC;;;;OAIG;IACH,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;IAE/B;;;;;OAKG;IACH,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;IAEjC;;;;OAIG;IACH,SAAS,EAAE,OAAO,EAAE,CAAC;IAErB;;;;;;;;;;;;;OAaG;IACH,SAAS,CAAC,EAAE,OAAO,uBAAuB,EAAE,iBAAiB,CAAC;IAE9D;;;;OAIG;IACH,WAAW,EAAE,OAAO,EAAE,CAAC;IAEvB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,+BAA+B,EAAE,WAAW,CAAC;IAElE,+EAA+E;IAC/E,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB"}
@@ -24,7 +24,10 @@
24
24
  * `requirements` is what a host must SUPPLY (an embedder, an LLM, a store
25
25
  * that can search). Empty means the strategy runs anywhere, at $0.
26
26
  *
27
- * Pattern: declared capability descriptors + a guard that enforces them.
27
+ * Pattern: declared capability descriptors + the two guards that enforce
28
+ * them — SHAPE first (`assertStrategyShape`: is this even a
29
+ * strategy?), REQUIREMENTS after (`assertStrategyRequirements`: can
30
+ * this deployment run it?).
28
31
  * Role: memory/ layer-1, beside the const it describes.
29
32
  * Emits: N/A — build-time only.
30
33
  *
@@ -85,6 +88,29 @@ export declare function listMemoryStrategies(): readonly MemoryStrategyInfo[];
85
88
  * not a strategy at all.
86
89
  */
87
90
  export declare function memoryStrategyInfo(kind: string): MemoryStrategyInfo | undefined;
91
+ /**
92
+ * Refuse a strategy whose SHAPE is wrong, before anything reads into it.
93
+ *
94
+ * WHY it runs FIRST, ahead of both the pipeline dispatch and the
95
+ * requirements walk: those two read FIELDS off the strategy
96
+ * (`strategies[0]`, `s.embedder`, `for (const sub of strategy.strategies)`),
97
+ * and a field read off a shape that never had it is a `TypeError` with the
98
+ * library's internals in the text — `Cannot read properties of undefined
99
+ * (reading '0')` for `{ kind: 'hybrid', size: 5 }`, which names neither the
100
+ * option the caller got wrong nor the one they meant. A caller cannot act on
101
+ * that. This guard turns every such read into a refusal that names the
102
+ * field, shows the line that would have worked, and points at the catalogue.
103
+ *
104
+ * It checks SHAPE only — is this an object, does it carry a `kind`, does a
105
+ * `hybrid` carry the array that makes it a hybrid. It deliberately does NOT
106
+ * judge whether the kind is real or legal for the type: the dispatch refuses
107
+ * those and names the alternative for that type, which is the better message.
108
+ *
109
+ * @param strategy the strategy exactly as the caller wrote it — `unknown`,
110
+ * because the whole point is that it may not be a `Strategy`.
111
+ * @param site the call to name in the message, e.g. `defineMemory[chat]`.
112
+ */
113
+ export declare function assertStrategyShape(strategy: unknown, site: string): void;
88
114
  /**
89
115
  * Refuse a config whose strategy declares a requirement the caller did not
90
116
  * supply — by name, at BUILD, with the fix in the message.
@@ -1 +1 @@
1
- {"version":3,"file":"strategies.d.ts","sourceRoot":"","sources":["../../../src/memory/strategies.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,EAGL,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,UAAU,EAEhB,MAAM,mBAAmB,CAAC;AAI3B;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,yBAAyB,GACjC,UAAU,GACV,cAAc,GACd,KAAK,GACL,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AAEpC;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,8EAA8E;IAC9E,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,6EAA6E;IAC7E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,2EAA2E;IAC3E,QAAQ,CAAC,YAAY,EAAE,SAAS,yBAAyB,EAAE,CAAC;IAC5D,6EAA6E;IAC7E,QAAQ,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,CAAC;CACvC;AAsFD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,IAAI,SAAS,kBAAkB,EAAE,CAEpE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAE/E;AAID;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAE3F"}
1
+ {"version":3,"file":"strategies.d.ts","sourceRoot":"","sources":["../../../src/memory/strategies.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,EAGL,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,UAAU,EAEhB,MAAM,mBAAmB,CAAC;AAI3B;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,yBAAyB,GACjC,UAAU,GACV,cAAc,GACd,KAAK,GACL,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AAEpC;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,8EAA8E;IAC9E,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,6EAA6E;IAC7E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,2EAA2E;IAC3E,QAAQ,CAAC,YAAY,EAAE,SAAS,yBAAyB,EAAE,CAAC;IAC5D,6EAA6E;IAC7E,QAAQ,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,CAAC;CACvC;AAsFD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,IAAI,SAAS,kBAAkB,EAAE,CAEpE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAE/E;AAuBD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAEzE;AA6ED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAE3F"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Turn identity — which turn of a conversation is about to happen.
3
+ *
4
+ * One rule, shared by every memory kind, so two turns of one conversation
5
+ * can never write the same turn-stamped ids. See `./resolveTurnNumber.ts`.
6
+ */
7
+ export { maxStoredTurn, resolveTurnNumber, type MaxStoredTurnOptions, type ResolveTurnNumberOptions, } from './resolveTurnNumber.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/memory/turn/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,GAC9B,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * resolveTurnNumber — which turn of this conversation is about to happen?
3
+ *
4
+ * A memory entry's id is turn-stamped (`msg-{turn}-{index}`, `snap-{turn}`,
5
+ * `beat-{turn}-{index}`), so the turn number is not a label: it is the KEY
6
+ * two consecutive turns must not share. Get it wrong and every turn
7
+ * overwrites the previous one — a conversation memory that silently holds
8
+ * exactly one exchange no matter how large the window says it is. That is
9
+ * the bug this function exists to make impossible (9.6.0).
10
+ *
11
+ * **Why the host's own counter is not enough.** A host that runs one Agent
12
+ * instance for a whole conversation can count turns in memory. The shape
13
+ * seen in a production field deployment cannot: it builds a FRESH agent per
14
+ * turn (new process, new instance, same `conversationId`, same store), so
15
+ * anything counted in a variable is back to 1 on every request. The only
16
+ * thing that remembers how far the conversation has got is the STORE.
17
+ *
18
+ * **The rule** — `max(hostTurn, maxStoredTurn + 1)`:
19
+ * - Hosts that track the turn honestly keep their numbering (`hostTurn: 5`
20
+ * → turn 5; gaps preserved — an ordinal, not a count).
21
+ * - A host whose counter is stale still gets a fresh, ordered turn: the
22
+ * second turn of a conversation whose store already holds turn 1 is
23
+ * turn 2, never turn 1 again.
24
+ * - The two sources compose: whichever knows more wins, and neither can
25
+ * drag the conversation backwards.
26
+ *
27
+ * The rule is the one `writeSnapshot` has applied to causal snapshots since
28
+ * 9.1 — this is that carve-out generalised so every memory kind shares one
29
+ * definition of "which turn is this", resolved ONCE per run (in the Agent's
30
+ * seed stage) rather than re-derived per write stage. Re-deriving per stage
31
+ * is not equivalent and is why this is a shared helper: `writeMessages`
32
+ * stamps turn N, and a scan taken after it would read N and answer N+1 — so
33
+ * beats written later in the same turn would carry a turn number no message
34
+ * of theirs has, and their `msg-{turn}-{index}` references would point at
35
+ * entries that do not exist.
36
+ *
37
+ * Cost: one paged `list()` per store per run, on the store the memory was
38
+ * already going to talk to. Bounded by {@link MAX_SCAN_PAGES}.
39
+ *
40
+ * @see ../stages/writeMessages.ts the id format this protects
41
+ * @see ../causal/writeSnapshot.ts the same rule, kept as self-defense for
42
+ * hand-composed (non-Agent) pipelines
43
+ */
44
+ import type { MemoryEntry } from '../entry/index.js';
45
+ import type { MemoryIdentity } from '../identity/index.js';
46
+ import type { MemoryStore } from '../store/index.js';
47
+ export interface MaxStoredTurnOptions {
48
+ /**
49
+ * Which entries count. Default: every entry that carries
50
+ * `source.turn`. `writeSnapshot` narrows this to its own `snap-{n}` ids
51
+ * so that its self-defense stays stable no matter what else shares the
52
+ * namespace.
53
+ */
54
+ readonly turnFor?: (entry: MemoryEntry<unknown>) => number;
55
+ }
56
+ /**
57
+ * The highest turn already stored in this identity's namespace — 0 when the
58
+ * conversation has never been written to.
59
+ *
60
+ * Only LIVE entries are seen: `store.list` drops TTL-expired ones, the same
61
+ * as every read path, so an expired turn 4 does not hold the numbering open.
62
+ */
63
+ export declare function maxStoredTurn(store: MemoryStore, identity: MemoryIdentity, options?: MaxStoredTurnOptions): Promise<number>;
64
+ export interface ResolveTurnNumberOptions {
65
+ /**
66
+ * The durable stores this conversation is written to. Every one is
67
+ * consulted and the highest turn wins, so two memories sharing a
68
+ * conversation agree on which turn it is even when they keep their
69
+ * entries in different backends.
70
+ *
71
+ * Duplicates (the usual case — one store, several memories) are scanned
72
+ * once.
73
+ */
74
+ readonly stores: readonly MemoryStore[];
75
+ /** The conversation namespace to scan. */
76
+ readonly identity: MemoryIdentity;
77
+ /**
78
+ * What the host believes the turn is — a FLOOR, never the last word. The
79
+ * Agent derives it from the conversation it was handed (how many user
80
+ * turns are already in the history), which is right for a followed-up
81
+ * conversation and stale for a fresh agent per turn. Default 1.
82
+ */
83
+ readonly hostTurn?: number;
84
+ }
85
+ /**
86
+ * Resolve the turn number this run should stamp on everything it writes.
87
+ *
88
+ * Returns at least 1, always. A store that throws is NOT swallowed: a memory
89
+ * whose store is unreachable is going to fail on the next read anyway, and a
90
+ * turn number quietly guessed here is how entries overwrite each other.
91
+ */
92
+ export declare function resolveTurnNumber(options: ResolveTurnNumberOptions): Promise<number>;
93
+ /** A host turn below 1 (or not a number at all) means "I do not know" → 1. */
94
+ export declare function normalizeHostTurn(hostTurn: number | undefined): number;
95
+ //# sourceMappingURL=resolveTurnNumber.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveTurnNumber.d.ts","sourceRoot":"","sources":["../../../../src/memory/turn/resolveTurnNumber.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAsBrD,MAAM,WAAW,oBAAoB;IACnC;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,MAAM,CAAC;CAC5D;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CACjC,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,cAAc,EACxB,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,MAAM,CAAC,CAqBjB;AAED,MAAM,WAAW,wBAAwB;IACvC;;;;;;;;OAQG;IACH,QAAQ,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,CAAC;IAExC,0CAA0C;IAC1C,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAElC;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,MAAM,CAAC,CAS1F;AAED,8EAA8E;AAC9E,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAGtE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentfootprint",
3
- "version": "9.5.0",
3
+ "version": "9.6.0",
4
4
  "description": "The explainable agent framework — backtrack a wrong answer to the exact context that caused it (evidence, not guesses). Built on footprintjs.",
5
5
  "license": "MIT",
6
6
  "type": "commonjs",