agentfootprint 8.0.0 → 8.2.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 (148) hide show
  1. package/AGENTS.md +14 -9
  2. package/README.md +11 -7
  3. package/ai-instructions/claude-code/SKILL.md +1 -1
  4. package/ai-instructions/clinerules +1 -1
  5. package/ai-instructions/copilot-instructions.md +1 -1
  6. package/ai-instructions/cursor/agentfootprint.md +1 -1
  7. package/ai-instructions/kiro/agentfootprint.md +1 -1
  8. package/ai-instructions/windsurfrules +1 -1
  9. package/dist/adapters/llm/OllamaProvider.js +628 -0
  10. package/dist/adapters/llm/OllamaProvider.js.map +1 -0
  11. package/dist/adapters/llm/OpenAIProvider.js +12 -21
  12. package/dist/adapters/llm/OpenAIProvider.js.map +1 -1
  13. package/dist/adapters/llm/createProvider.js +35 -6
  14. package/dist/adapters/llm/createProvider.js.map +1 -1
  15. package/dist/core/Agent.js +44 -1
  16. package/dist/core/Agent.js.map +1 -1
  17. package/dist/core/agent/stages/seed.js +10 -0
  18. package/dist/core/agent/stages/seed.js.map +1 -1
  19. package/dist/core/agent/stages/window.js +21 -0
  20. package/dist/core/agent/stages/window.js.map +1 -1
  21. package/dist/core/agent/window/errors.js +4 -3
  22. package/dist/core/agent/window/errors.js.map +1 -1
  23. package/dist/core/agent/window/folded.js +98 -0
  24. package/dist/core/agent/window/folded.js.map +1 -0
  25. package/dist/core/agent/window/index.js +9 -1
  26. package/dist/core/agent/window/index.js.map +1 -1
  27. package/dist/core/agent/window/options.js +18 -2
  28. package/dist/core/agent/window/options.js.map +1 -1
  29. package/dist/core/agent/window/strategies/slidingWindow.js +2 -2
  30. package/dist/core/agent/window/strategies/summarizeOldest.js +25 -2
  31. package/dist/core/agent/window/strategies/summarizeOldest.js.map +1 -1
  32. package/dist/core/agent/window/summarize.js +27 -1
  33. package/dist/core/agent/window/summarize.js.map +1 -1
  34. package/dist/core/agent/window/types.js +6 -0
  35. package/dist/core/agent/window/types.js.map +1 -1
  36. package/dist/core/runCheckpoint.js +9 -1
  37. package/dist/core/runCheckpoint.js.map +1 -1
  38. package/dist/esm/adapters/llm/OllamaProvider.d.ts +182 -0
  39. package/dist/esm/adapters/llm/OllamaProvider.js +622 -0
  40. package/dist/esm/adapters/llm/OllamaProvider.js.map +1 -0
  41. package/dist/esm/adapters/llm/OpenAIProvider.d.ts +0 -12
  42. package/dist/esm/adapters/llm/OpenAIProvider.js +11 -19
  43. package/dist/esm/adapters/llm/OpenAIProvider.js.map +1 -1
  44. package/dist/esm/adapters/llm/createProvider.d.ts +25 -8
  45. package/dist/esm/adapters/llm/createProvider.js +35 -6
  46. package/dist/esm/adapters/llm/createProvider.js.map +1 -1
  47. package/dist/esm/core/Agent.d.ts +17 -0
  48. package/dist/esm/core/Agent.js +44 -1
  49. package/dist/esm/core/Agent.js.map +1 -1
  50. package/dist/esm/core/agent/stages/seed.d.ts +11 -0
  51. package/dist/esm/core/agent/stages/seed.js +10 -0
  52. package/dist/esm/core/agent/stages/seed.js.map +1 -1
  53. package/dist/esm/core/agent/stages/window.d.ts +13 -0
  54. package/dist/esm/core/agent/stages/window.js +21 -0
  55. package/dist/esm/core/agent/stages/window.js.map +1 -1
  56. package/dist/esm/core/agent/types.d.ts +15 -1
  57. package/dist/esm/core/agent/window/errors.js +4 -3
  58. package/dist/esm/core/agent/window/errors.js.map +1 -1
  59. package/dist/esm/core/agent/window/folded.d.ts +90 -0
  60. package/dist/esm/core/agent/window/folded.js +92 -0
  61. package/dist/esm/core/agent/window/folded.js.map +1 -0
  62. package/dist/esm/core/agent/window/index.d.ts +7 -1
  63. package/dist/esm/core/agent/window/index.js +6 -0
  64. package/dist/esm/core/agent/window/index.js.map +1 -1
  65. package/dist/esm/core/agent/window/options.d.ts +7 -1
  66. package/dist/esm/core/agent/window/options.js +17 -1
  67. package/dist/esm/core/agent/window/options.js.map +1 -1
  68. package/dist/esm/core/agent/window/strategies/slidingWindow.d.ts +2 -2
  69. package/dist/esm/core/agent/window/strategies/slidingWindow.js +2 -2
  70. package/dist/esm/core/agent/window/strategies/summarizeOldest.d.ts +4 -2
  71. package/dist/esm/core/agent/window/strategies/summarizeOldest.js +25 -2
  72. package/dist/esm/core/agent/window/strategies/summarizeOldest.js.map +1 -1
  73. package/dist/esm/core/agent/window/strategy.d.ts +26 -1
  74. package/dist/esm/core/agent/window/summarize.d.ts +11 -0
  75. package/dist/esm/core/agent/window/summarize.js +27 -1
  76. package/dist/esm/core/agent/window/summarize.js.map +1 -1
  77. package/dist/esm/core/agent/window/types.d.ts +106 -1
  78. package/dist/esm/core/agent/window/types.js +6 -0
  79. package/dist/esm/core/agent/window/types.js.map +1 -1
  80. package/dist/esm/core/runCheckpoint.d.ts +32 -1
  81. package/dist/esm/core/runCheckpoint.js +9 -1
  82. package/dist/esm/core/runCheckpoint.js.map +1 -1
  83. package/dist/esm/index.d.ts +1 -1
  84. package/dist/esm/index.js +6 -1
  85. package/dist/esm/index.js.map +1 -1
  86. package/dist/esm/providers.d.ts +13 -5
  87. package/dist/esm/providers.js +13 -5
  88. package/dist/esm/providers.js.map +1 -1
  89. package/dist/esm/thinking/OllamaThinkingHandler.d.ts +60 -0
  90. package/dist/esm/thinking/OllamaThinkingHandler.js +107 -0
  91. package/dist/esm/thinking/OllamaThinkingHandler.js.map +1 -0
  92. package/dist/esm/thinking/index.d.ts +1 -0
  93. package/dist/esm/thinking/index.js +1 -0
  94. package/dist/esm/thinking/index.js.map +1 -1
  95. package/dist/esm/thinking/registry.js +2 -0
  96. package/dist/esm/thinking/registry.js.map +1 -1
  97. package/dist/index.js +9 -2
  98. package/dist/index.js.map +1 -1
  99. package/dist/providers.js +16 -6
  100. package/dist/providers.js.map +1 -1
  101. package/dist/thinking/OllamaThinkingHandler.js +111 -0
  102. package/dist/thinking/OllamaThinkingHandler.js.map +1 -0
  103. package/dist/thinking/index.js +4 -1
  104. package/dist/thinking/index.js.map +1 -1
  105. package/dist/thinking/registry.js +2 -0
  106. package/dist/thinking/registry.js.map +1 -1
  107. package/dist/types/adapters/llm/OllamaProvider.d.ts +183 -0
  108. package/dist/types/adapters/llm/OllamaProvider.d.ts.map +1 -0
  109. package/dist/types/adapters/llm/OpenAIProvider.d.ts +0 -12
  110. package/dist/types/adapters/llm/OpenAIProvider.d.ts.map +1 -1
  111. package/dist/types/adapters/llm/createProvider.d.ts +25 -8
  112. package/dist/types/adapters/llm/createProvider.d.ts.map +1 -1
  113. package/dist/types/core/Agent.d.ts +17 -0
  114. package/dist/types/core/Agent.d.ts.map +1 -1
  115. package/dist/types/core/agent/stages/seed.d.ts +11 -0
  116. package/dist/types/core/agent/stages/seed.d.ts.map +1 -1
  117. package/dist/types/core/agent/stages/window.d.ts +13 -0
  118. package/dist/types/core/agent/stages/window.d.ts.map +1 -1
  119. package/dist/types/core/agent/types.d.ts +15 -1
  120. package/dist/types/core/agent/types.d.ts.map +1 -1
  121. package/dist/types/core/agent/window/errors.d.ts.map +1 -1
  122. package/dist/types/core/agent/window/folded.d.ts +91 -0
  123. package/dist/types/core/agent/window/folded.d.ts.map +1 -0
  124. package/dist/types/core/agent/window/index.d.ts +7 -1
  125. package/dist/types/core/agent/window/index.d.ts.map +1 -1
  126. package/dist/types/core/agent/window/options.d.ts +7 -1
  127. package/dist/types/core/agent/window/options.d.ts.map +1 -1
  128. package/dist/types/core/agent/window/strategies/slidingWindow.d.ts +2 -2
  129. package/dist/types/core/agent/window/strategies/summarizeOldest.d.ts +4 -2
  130. package/dist/types/core/agent/window/strategies/summarizeOldest.d.ts.map +1 -1
  131. package/dist/types/core/agent/window/strategy.d.ts +26 -1
  132. package/dist/types/core/agent/window/strategy.d.ts.map +1 -1
  133. package/dist/types/core/agent/window/summarize.d.ts +11 -0
  134. package/dist/types/core/agent/window/summarize.d.ts.map +1 -1
  135. package/dist/types/core/agent/window/types.d.ts +106 -1
  136. package/dist/types/core/agent/window/types.d.ts.map +1 -1
  137. package/dist/types/core/runCheckpoint.d.ts +32 -1
  138. package/dist/types/core/runCheckpoint.d.ts.map +1 -1
  139. package/dist/types/index.d.ts +1 -1
  140. package/dist/types/index.d.ts.map +1 -1
  141. package/dist/types/providers.d.ts +13 -5
  142. package/dist/types/providers.d.ts.map +1 -1
  143. package/dist/types/thinking/OllamaThinkingHandler.d.ts +61 -0
  144. package/dist/types/thinking/OllamaThinkingHandler.d.ts.map +1 -0
  145. package/dist/types/thinking/index.d.ts +1 -0
  146. package/dist/types/thinking/index.d.ts.map +1 -1
  147. package/dist/types/thinking/registry.d.ts.map +1 -1
  148. package/package.json +3 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OllamaThinkingHandler.js","sourceRoot":"","sources":["../../../src/thinking/OllamaThinkingHandler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAeH,6EAA6E;AAC7E,MAAM,SAAS,GAAG,oCAAoC,CAAC;AAEvD;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAY;IAChD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,CAAC;IACxC,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,+DAA+D;IAC/D,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC;IACxB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACtC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,aAAa,CAAC,GAAY;IACjC,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,MAAM,IAAI,GAAG,CAAC;AAClE,CAAC;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAoB;IACpD,EAAE,EAAE,QAAQ;IACZ,aAAa,EAAE,CAAC,QAAQ,CAAC;IAEzB,SAAS,CAAC,GAAY;QACpB,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI;YAAE,OAAO,EAAE,CAAC;QAEjD,sEAAsE;QACtE,qEAAqE;QACrE,6CAA6C;QAC7C,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;QAExD,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACzB,OAAO,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9E,CAAC;YACD,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC1B,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ;oBAAE,OAAO,EAAE,CAAC;gBAC/C,OAAO,qBAAqB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;QAED,wEAAwE;QACxE,mEAAmE;QACnE,kDAAkD;QAClD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,UAAU,CAAC,KAAc;QACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,EAAE,CAAC;QAC3D,MAAM,OAAO,GAAI,KAA8C,CAAC,OAAO,CAAC;QACxE,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,CAAC;QACnC,OAAO,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAChG,CAAC;CACF,CAAC;AAEF,iFAAiF;AACjF,SAAS,cAAc,CAAC,IAAY;IAClC,MAAM,MAAM,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACtD,CAAC;AAED,SAAS,OAAO,CAAC,OAAe;IAC9B,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;AACvC,CAAC"}
@@ -52,4 +52,5 @@ export type { ThinkingBlock, ThinkingHandler } from './types.js';
52
52
  export { mockThinkingHandler, mockAnthropicRaw, mockOpenAIRaw } from './MockThinkingHandler.js';
53
53
  export { anthropicThinkingHandler } from './AnthropicThinkingHandler.js';
54
54
  export { openAIThinkingHandler } from './OpenAIThinkingHandler.js';
55
+ export { ollamaThinkingHandler, extractInlineThinking, type OllamaRawThinking, } from './OllamaThinkingHandler.js';
55
56
  export { SHIPPED_THINKING_HANDLERS, findThinkingHandler } from './registry.js';
@@ -51,5 +51,6 @@
51
51
  export { mockThinkingHandler, mockAnthropicRaw, mockOpenAIRaw } from './MockThinkingHandler.js';
52
52
  export { anthropicThinkingHandler } from './AnthropicThinkingHandler.js';
53
53
  export { openAIThinkingHandler } from './OpenAIThinkingHandler.js';
54
+ export { ollamaThinkingHandler, extractInlineThinking, } from './OllamaThinkingHandler.js';
54
55
  export { SHIPPED_THINKING_HANDLERS, findThinkingHandler } from './registry.js';
55
56
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/thinking/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAIH,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEhG,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/thinking/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAIH,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEhG,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,EACL,qBAAqB,EACrB,qBAAqB,GAEtB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC"}
@@ -15,6 +15,7 @@
15
15
  */
16
16
  import { anthropicThinkingHandler } from './AnthropicThinkingHandler.js';
17
17
  import { mockThinkingHandler } from './MockThinkingHandler.js';
18
+ import { ollamaThinkingHandler } from './OllamaThinkingHandler.js';
18
19
  import { openAIThinkingHandler } from './OpenAIThinkingHandler.js';
19
20
  /**
20
21
  * All thinking handlers shipped with the library. Append in alphabetical
@@ -23,6 +24,7 @@ import { openAIThinkingHandler } from './OpenAIThinkingHandler.js';
23
24
  export const SHIPPED_THINKING_HANDLERS = [
24
25
  anthropicThinkingHandler,
25
26
  mockThinkingHandler,
27
+ ollamaThinkingHandler,
26
28
  openAIThinkingHandler,
27
29
  ];
28
30
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/thinking/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAGnE;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAA+B;IACnE,wBAAwB;IACxB,mBAAmB;IACnB,qBAAqB;CACtB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,UAAU,mBAAmB,CAAC,YAAoB;IACtD,KAAK,MAAM,OAAO,IAAI,yBAAyB,EAAE,CAAC;QAChD,IAAI,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC;YAAE,OAAO,OAAO,CAAC;IACnE,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/thinking/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAGnE;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAA+B;IACnE,wBAAwB;IACxB,mBAAmB;IACnB,qBAAqB;IACrB,qBAAqB;CACtB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,UAAU,mBAAmB,CAAC,YAAoB;IACtD,KAAK,MAAM,OAAO,IAAI,yBAAyB,EAAE,CAAC;QAChD,IAAI,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC;YAAE,OAAO,OAAO,CAAC;IACnE,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
package/dist/index.js CHANGED
@@ -21,8 +21,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
21
21
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
22
22
  };
23
23
  Object.defineProperty(exports, "__esModule", { value: true });
24
- exports.summarizeOldest = exports.slidingWindow = exports.isDropNotice = exports.isCompactedSummary = exports.DROP_NOTICE_PREFIX = exports.COMPACTED_FRAME_PREFIX = exports.CompactionUnmeasurableError = exports.AgentBuilder = exports.Agent = exports.buildAgentMessageApiChart = exports.LLMCallBuilder = exports.LLMCall = exports.selectCommentaryKey = exports.renderCommentary = exports.extractCommentaryVars = exports.extractAgentName = exports.defaultCommentaryTemplates = exports.CheckInRecorder = exports.minimalEvidenceAssembler = exports.standardEvidenceAssembler = exports.lexicalDriverScorer = exports.isCheckInDecision = exports.checkInDeclined = exports.checkInApproved = exports.ACT_KEYS = exports.actKeyFor = exports.LOOP_MOMENTS = exports.MessageDeniedError = exports.deny = exports.ask = exports.allow = exports.isAskPause = exports.isCheckInPause = exports.isPaused = exports.isPauseRequest = exports.askHuman = exports.pauseHere = exports.makeRunId = exports.RunnerBase = exports.BASELINE_SOURCES = exports.ENGINEERED_SOURCES = exports.isBaselineSource = exports.isEngineeredSource = exports.contextEngineering = exports.COMPOSITION_KEYS = exports.milestoneFor = exports.stageRole = exports.isInjectionKey = exports.injectionKeyForSlot = exports.INJECTION_KEYS = void 0;
25
- exports.indexDocuments = exports.defineRAG = exports.providerFromEnv = exports.Graph = exports.graph = exports.Workflow = exports.workflow = exports.LoopBuilder = exports.Loop = exports.ConditionalBuilder = exports.Conditional = exports.ParallelBuilder = exports.Parallel = exports.SequenceBuilder = exports.Sequence = exports.formatToolContractCheckup = exports.toolContractCheckup = exports.warnIfInvalidToolName = exports.assertValidToolName = exports.defineTool = exports.flowchartAsTool = exports.RunCheckpointError = exports.isSchemaCheckMessage = exports.SCHEMA_TOOL_NAME = exports.SCHEMA_CHECK_FRAME_PREFIX = exports.applyOutputSchema = exports.OutputSchemaError = exports.tokenBudget = void 0;
24
+ exports.isDropNotice = exports.isCompactedSummary = exports.foldedSpanFor = exports.foldedMessages = exports.DROP_NOTICE_PREFIX = exports.COMPACTED_FRAME_PREFIX = exports.CompactionUnmeasurableError = exports.AgentBuilder = exports.Agent = exports.buildAgentMessageApiChart = exports.LLMCallBuilder = exports.LLMCall = exports.selectCommentaryKey = exports.renderCommentary = exports.extractCommentaryVars = exports.extractAgentName = exports.defaultCommentaryTemplates = exports.CheckInRecorder = exports.minimalEvidenceAssembler = exports.standardEvidenceAssembler = exports.lexicalDriverScorer = exports.isCheckInDecision = exports.checkInDeclined = exports.checkInApproved = exports.ACT_KEYS = exports.actKeyFor = exports.LOOP_MOMENTS = exports.MessageDeniedError = exports.deny = exports.ask = exports.allow = exports.isAskPause = exports.isCheckInPause = exports.isPaused = exports.isPauseRequest = exports.askHuman = exports.pauseHere = exports.makeRunId = exports.RunnerBase = exports.BASELINE_SOURCES = exports.ENGINEERED_SOURCES = exports.isBaselineSource = exports.isEngineeredSource = exports.contextEngineering = exports.COMPOSITION_KEYS = exports.milestoneFor = exports.stageRole = exports.isInjectionKey = exports.injectionKeyForSlot = exports.INJECTION_KEYS = void 0;
25
+ exports.indexDocuments = exports.defineRAG = exports.providerFromEnv = exports.Graph = exports.graph = exports.Workflow = exports.workflow = exports.LoopBuilder = exports.Loop = exports.ConditionalBuilder = exports.Conditional = exports.ParallelBuilder = exports.Parallel = exports.SequenceBuilder = exports.Sequence = exports.formatToolContractCheckup = exports.toolContractCheckup = exports.warnIfInvalidToolName = exports.assertValidToolName = exports.defineTool = exports.flowchartAsTool = exports.RunCheckpointError = exports.isSchemaCheckMessage = exports.SCHEMA_TOOL_NAME = exports.SCHEMA_CHECK_FRAME_PREFIX = exports.applyOutputSchema = exports.OutputSchemaError = exports.tokenBudget = exports.summarizeOldest = exports.slidingWindow = void 0;
26
26
  // Side-effect imports — auto-register v2.6+ cache strategies in the
27
27
  // strategy registry. Without these, only the wildcard NoOp is
28
28
  // registered and `Agent.create({ provider: browserAnthropic({...}) })`
@@ -170,10 +170,17 @@ Object.defineProperty(exports, "AgentBuilder", { enumerable: true, get: function
170
170
  // summarizeOldest fold the oldest span into a summary (what `.compaction()` is)
171
171
  // slidingWindow keep the last N turns, drop older ones
172
172
  // tokenBudget counted-token trigger, drop instead of summarize
173
+ //
174
+ // A commit log lives as long as the process; a conversation lives longer. So
175
+ // `.compaction({ retain })` carries the folded originals on the conversation
176
+ // checkpoint too, and `foldedSpanFor(conversation, message)` is the door back
177
+ // to them after a restart.
173
178
  var index_js_2 = require("./core/agent/window/index.js");
174
179
  Object.defineProperty(exports, "CompactionUnmeasurableError", { enumerable: true, get: function () { return index_js_2.CompactionUnmeasurableError; } });
175
180
  Object.defineProperty(exports, "COMPACTED_FRAME_PREFIX", { enumerable: true, get: function () { return index_js_2.COMPACTED_FRAME_PREFIX; } });
176
181
  Object.defineProperty(exports, "DROP_NOTICE_PREFIX", { enumerable: true, get: function () { return index_js_2.DROP_NOTICE_PREFIX; } });
182
+ Object.defineProperty(exports, "foldedMessages", { enumerable: true, get: function () { return index_js_2.foldedMessages; } });
183
+ Object.defineProperty(exports, "foldedSpanFor", { enumerable: true, get: function () { return index_js_2.foldedSpanFor; } });
177
184
  Object.defineProperty(exports, "isCompactedSummary", { enumerable: true, get: function () { return index_js_2.isCompactedSummary; } });
178
185
  Object.defineProperty(exports, "isDropNotice", { enumerable: true, get: function () { return index_js_2.isDropNotice; } });
179
186
  Object.defineProperty(exports, "slidingWindow", { enumerable: true, get: function () { return index_js_2.slidingWindow; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/providers.js CHANGED
@@ -15,17 +15,24 @@
15
15
  *
16
16
  * What's here today:
17
17
  * • `mock` / `MockProvider` — deterministic + realistic-mode mock
18
+ * • `ollama` / `OllamaProvider` — local models, free, no API key
18
19
  * • `anthropic` / `AnthropicProvider` — real provider (Claude)
19
20
  * • `openai` / `OpenAIProvider` — real provider (GPT)
21
+ * • `bedrock`, `azureOpenai`, and the `browser*` variants
22
+ *
23
+ * The ladder these are FOR: `mock()` while you shape the logic →
24
+ * `ollama('<model>')` for a real model that costs nothing and needs no
25
+ * key → a paid API in production. The agent code above them does not
26
+ * change between the three; that is the whole point of the port.
20
27
  *
21
28
  * Bring your own (BYO):
22
- * For Bedrock / Ollama / Cohere / on-prem / fine-tuned models,
23
- * implement the `LLMProvider` interface (see `LLMProvider` exported
24
- * from the main barrel) — `complete()` is required, `stream()` is
25
- * optional. The `MockProvider` source is the canonical reference.
29
+ * For Cohere / on-prem / fine-tuned models, implement the
30
+ * `LLMProvider` interface (see `LLMProvider` exported from the main
31
+ * barrel) — `complete()` is required, `stream()` is optional. The
32
+ * `MockProvider` source is the canonical reference.
26
33
  */
27
34
  Object.defineProperty(exports, "__esModule", { value: true });
28
- exports.createProvider = exports.BrowserAzureOpenAIProvider = exports.browserAzureOpenai = exports.BrowserOpenAIProvider = exports.browserOpenai = exports.BrowserAnthropicProvider = exports.browserAnthropic = exports.BedrockProvider = exports.bedrock = exports.azureOpenai = exports.ollama = exports.OpenAIProvider = exports.openai = exports.AnthropicProvider = exports.anthropic = exports.mock = exports.MockProvider = void 0;
35
+ exports.createProvider = exports.BrowserAzureOpenAIProvider = exports.browserAzureOpenai = exports.BrowserOpenAIProvider = exports.browserOpenai = exports.BrowserAnthropicProvider = exports.browserAnthropic = exports.BedrockProvider = exports.bedrock = exports.OllamaUnavailableError = exports.OllamaProvider = exports.ollama = exports.azureOpenai = exports.OpenAIProvider = exports.openai = exports.AnthropicProvider = exports.anthropic = exports.mock = exports.MockProvider = void 0;
29
36
  var MockProvider_js_1 = require("./adapters/llm/MockProvider.js");
30
37
  Object.defineProperty(exports, "MockProvider", { enumerable: true, get: function () { return MockProvider_js_1.MockProvider; } });
31
38
  Object.defineProperty(exports, "mock", { enumerable: true, get: function () { return MockProvider_js_1.mock; } });
@@ -35,8 +42,11 @@ Object.defineProperty(exports, "AnthropicProvider", { enumerable: true, get: fun
35
42
  var OpenAIProvider_js_1 = require("./adapters/llm/OpenAIProvider.js");
36
43
  Object.defineProperty(exports, "openai", { enumerable: true, get: function () { return OpenAIProvider_js_1.openai; } });
37
44
  Object.defineProperty(exports, "OpenAIProvider", { enumerable: true, get: function () { return OpenAIProvider_js_1.OpenAIProvider; } });
38
- Object.defineProperty(exports, "ollama", { enumerable: true, get: function () { return OpenAIProvider_js_1.ollama; } });
39
45
  Object.defineProperty(exports, "azureOpenai", { enumerable: true, get: function () { return OpenAIProvider_js_1.azureOpenai; } });
46
+ var OllamaProvider_js_1 = require("./adapters/llm/OllamaProvider.js");
47
+ Object.defineProperty(exports, "ollama", { enumerable: true, get: function () { return OllamaProvider_js_1.ollama; } });
48
+ Object.defineProperty(exports, "OllamaProvider", { enumerable: true, get: function () { return OllamaProvider_js_1.OllamaProvider; } });
49
+ Object.defineProperty(exports, "OllamaUnavailableError", { enumerable: true, get: function () { return OllamaProvider_js_1.OllamaUnavailableError; } });
40
50
  var BedrockProvider_js_1 = require("./adapters/llm/BedrockProvider.js");
41
51
  Object.defineProperty(exports, "bedrock", { enumerable: true, get: function () { return BedrockProvider_js_1.bedrock; } });
42
52
  Object.defineProperty(exports, "BedrockProvider", { enumerable: true, get: function () { return BedrockProvider_js_1.BedrockProvider; } });
@@ -1 +1 @@
1
- {"version":3,"file":"providers.js","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;;;AAEH,kEAMwC;AALtC,+GAAA,YAAY,OAAA;AACZ,uGAAA,IAAI,OAAA;AAMN,4EAI6C;AAH3C,iHAAA,SAAS,OAAA;AACT,yHAAA,iBAAiB,OAAA;AAInB,sEAO0C;AANxC,2GAAA,MAAM,OAAA;AACN,mHAAA,cAAc,OAAA;AACd,2GAAA,MAAM,OAAA;AACN,gHAAA,WAAW,OAAA;AAKb,wEAI2C;AAHzC,6GAAA,OAAO,OAAA;AACP,qHAAA,eAAe,OAAA;AAIjB,0FAIoD;AAHlD,+HAAA,gBAAgB,OAAA;AAChB,uIAAA,wBAAwB,OAAA;AAI1B,oFAOiD;AAN/C,yHAAA,aAAa,OAAA;AACb,iIAAA,qBAAqB,OAAA;AAErB,8HAAA,kBAAkB,OAAA;AAClB,sIAAA,0BAA0B,OAAA;AAI5B,sEAI0C;AAHxC,mHAAA,cAAc,OAAA"}
1
+ {"version":3,"file":"providers.js","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;;;AAEH,kEAMwC;AALtC,+GAAA,YAAY,OAAA;AACZ,uGAAA,IAAI,OAAA;AAMN,4EAI6C;AAH3C,iHAAA,SAAS,OAAA;AACT,yHAAA,iBAAiB,OAAA;AAInB,sEAM0C;AALxC,2GAAA,MAAM,OAAA;AACN,mHAAA,cAAc,OAAA;AACd,gHAAA,WAAW,OAAA;AAKb,sEAM0C;AALxC,2GAAA,MAAM,OAAA;AACN,mHAAA,cAAc,OAAA;AACd,2HAAA,sBAAsB,OAAA;AAKxB,wEAI2C;AAHzC,6GAAA,OAAO,OAAA;AACP,qHAAA,eAAe,OAAA;AAIjB,0FAIoD;AAHlD,+HAAA,gBAAgB,OAAA;AAChB,uIAAA,wBAAwB,OAAA;AAI1B,oFAOiD;AAN/C,yHAAA,aAAa,OAAA;AACb,iIAAA,qBAAqB,OAAA;AAErB,8HAAA,kBAAkB,OAAA;AAClB,sIAAA,0BAA0B,OAAA;AAI5B,sEAI0C;AAHxC,mHAAA,cAAc,OAAA"}
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ /**
3
+ * OllamaThinkingHandler — normalizes a local reasoning model's thinking
4
+ * into the framework's `ThinkingBlock[]` contract.
5
+ *
6
+ * Local reasoning models (deepseek-r1, qwen3, gpt-oss, …) reason in the
7
+ * open, and where that reasoning LANDS depends on how they were asked:
8
+ *
9
+ * 1. ASKED (`ollama('qwen3', { think: true })`, or the agent's
10
+ * `.thinking({ budget })`) — Ollama lifts the reasoning out of the
11
+ * answer into `message.thinking`. The adapter forwards it as
12
+ * `{ kind: 'field', thinking }`. This is the good path.
13
+ *
14
+ * 2. NOT ASKED — the same model writes `<think>…</think>` straight into
15
+ * the answer text. The adapter recognizes the shape and forwards the
16
+ * whole answer as `{ kind: 'inline', content }`.
17
+ *
18
+ * **The library recognizes the inline shape; it never rewrites the
19
+ * answer.** Blocks produced from case 2 describe text that is STILL
20
+ * present, verbatim, in `LLMResponse.content` — because silently editing
21
+ * a model's answer is a meaning change, and that is the application's
22
+ * decision to make, not this library's. If you want the reasoning out of
23
+ * the answer, ask for it: turn `think` on, and the model stops putting it
24
+ * there.
25
+ *
26
+ * **No signature** — nothing on this wire is signed, so there is no
27
+ * round-trip integrity invariant (unlike Anthropic). `signature` stays
28
+ * undefined.
29
+ *
30
+ * **No `summary` flag** — this is raw reasoning, not a structured summary
31
+ * (unlike OpenAI's `reasoning_summary`).
32
+ *
33
+ * **`parseChunk`** — the adapter already emits `LLMChunk.thinkingDelta`
34
+ * directly while streaming (Ollama sends `message.thinking` deltas frame
35
+ * by frame), so the framework does not need this to see live reasoning.
36
+ * It is implemented anyway for consumers driving the handler themselves.
37
+ */
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.ollamaThinkingHandler = exports.extractInlineThinking = void 0;
40
+ /** `<think>…</think>`, including an unclosed one from a truncated answer. */
41
+ const THINK_TAG = /<think>([\s\S]*?)(?:<\/think>|$)/gi;
42
+ /**
43
+ * Pull the reasoning out of text that carries `<think>` tags.
44
+ *
45
+ * All tag PARSING lives here, in the handler — the adapter only notices
46
+ * that a `<think` substring is present and tags the payload accordingly.
47
+ * Exported so a consumer driving normalization by hand can reuse it.
48
+ */
49
+ function extractInlineThinking(text) {
50
+ if (!text.includes('<think'))
51
+ return [];
52
+ const out = [];
53
+ // `matchAll` needs the /g flag and a fresh lastIndex per call.
54
+ THINK_TAG.lastIndex = 0;
55
+ for (const match of text.matchAll(THINK_TAG)) {
56
+ const inner = (match[1] ?? '').trim();
57
+ if (inner.length > 0)
58
+ out.push(inner);
59
+ }
60
+ return out;
61
+ }
62
+ exports.extractInlineThinking = extractInlineThinking;
63
+ function isRawThinking(raw) {
64
+ return typeof raw === 'object' && raw !== null && 'kind' in raw;
65
+ }
66
+ exports.ollamaThinkingHandler = {
67
+ id: 'ollama',
68
+ providerNames: ['ollama'],
69
+ normalize(raw) {
70
+ if (raw === undefined || raw === null)
71
+ return [];
72
+ // Bare string — a hand-fed value, or a consumer-authored adapter that
73
+ // passes `message.thinking` straight through. Treat it as reasoning,
74
+ // but still honor tags if they are in there.
75
+ if (typeof raw === 'string')
76
+ return blocksFromText(raw);
77
+ if (isRawThinking(raw)) {
78
+ if (raw.kind === 'field') {
79
+ return typeof raw.thinking === 'string' ? blocksFromText(raw.thinking) : [];
80
+ }
81
+ if (raw.kind === 'inline') {
82
+ if (typeof raw.content !== 'string')
83
+ return [];
84
+ return extractInlineThinking(raw.content).map(toBlock);
85
+ }
86
+ }
87
+ // Unknown shape — empty rather than throw. The framework catches throws
88
+ // and emits parse_failed; graceful empty is the right answer for a
89
+ // wire that may grow fields we have not seen yet.
90
+ return [];
91
+ },
92
+ parseChunk(chunk) {
93
+ if (typeof chunk !== 'object' || chunk === null)
94
+ return {};
95
+ const message = chunk.message;
96
+ const thinking = message?.thinking;
97
+ return typeof thinking === 'string' && thinking.length > 0 ? { thinkingDelta: thinking } : {};
98
+ },
99
+ };
100
+ /** Text → blocks. Tagged text yields one block per tag; plain text one block. */
101
+ function blocksFromText(text) {
102
+ const tagged = extractInlineThinking(text);
103
+ if (tagged.length > 0)
104
+ return tagged.map(toBlock);
105
+ const trimmed = text.trim();
106
+ return trimmed.length > 0 ? [toBlock(trimmed)] : [];
107
+ }
108
+ function toBlock(content) {
109
+ return { type: 'thinking', content };
110
+ }
111
+ //# sourceMappingURL=OllamaThinkingHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OllamaThinkingHandler.js","sourceRoot":"","sources":["../../src/thinking/OllamaThinkingHandler.ts"],"names":[],"mappings":"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"}
@@ -50,7 +50,7 @@
50
50
  * here is the same symbol on the new door, not a copy.
51
51
  */
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
- exports.findThinkingHandler = exports.SHIPPED_THINKING_HANDLERS = exports.openAIThinkingHandler = exports.anthropicThinkingHandler = exports.mockOpenAIRaw = exports.mockAnthropicRaw = exports.mockThinkingHandler = void 0;
53
+ exports.findThinkingHandler = exports.SHIPPED_THINKING_HANDLERS = exports.extractInlineThinking = exports.ollamaThinkingHandler = exports.openAIThinkingHandler = exports.anthropicThinkingHandler = exports.mockOpenAIRaw = exports.mockAnthropicRaw = exports.mockThinkingHandler = void 0;
54
54
  var MockThinkingHandler_js_1 = require("./MockThinkingHandler.js");
55
55
  Object.defineProperty(exports, "mockThinkingHandler", { enumerable: true, get: function () { return MockThinkingHandler_js_1.mockThinkingHandler; } });
56
56
  Object.defineProperty(exports, "mockAnthropicRaw", { enumerable: true, get: function () { return MockThinkingHandler_js_1.mockAnthropicRaw; } });
@@ -59,6 +59,9 @@ var AnthropicThinkingHandler_js_1 = require("./AnthropicThinkingHandler.js");
59
59
  Object.defineProperty(exports, "anthropicThinkingHandler", { enumerable: true, get: function () { return AnthropicThinkingHandler_js_1.anthropicThinkingHandler; } });
60
60
  var OpenAIThinkingHandler_js_1 = require("./OpenAIThinkingHandler.js");
61
61
  Object.defineProperty(exports, "openAIThinkingHandler", { enumerable: true, get: function () { return OpenAIThinkingHandler_js_1.openAIThinkingHandler; } });
62
+ var OllamaThinkingHandler_js_1 = require("./OllamaThinkingHandler.js");
63
+ Object.defineProperty(exports, "ollamaThinkingHandler", { enumerable: true, get: function () { return OllamaThinkingHandler_js_1.ollamaThinkingHandler; } });
64
+ Object.defineProperty(exports, "extractInlineThinking", { enumerable: true, get: function () { return OllamaThinkingHandler_js_1.extractInlineThinking; } });
62
65
  var registry_js_1 = require("./registry.js");
63
66
  Object.defineProperty(exports, "SHIPPED_THINKING_HANDLERS", { enumerable: true, get: function () { return registry_js_1.SHIPPED_THINKING_HANDLERS; } });
64
67
  Object.defineProperty(exports, "findThinkingHandler", { enumerable: true, get: function () { return registry_js_1.findThinkingHandler; } });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/thinking/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;;;AAIH,mEAAgG;AAAvF,6HAAA,mBAAmB,OAAA;AAAE,0HAAA,gBAAgB,OAAA;AAAE,uHAAA,aAAa,OAAA;AAE7D,6EAAyE;AAAhE,uIAAA,wBAAwB,OAAA;AAEjC,uEAAmE;AAA1D,iIAAA,qBAAqB,OAAA;AAE9B,6CAA+E;AAAtE,wHAAA,yBAAyB,OAAA;AAAE,kHAAA,mBAAmB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/thinking/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;;;AAIH,mEAAgG;AAAvF,6HAAA,mBAAmB,OAAA;AAAE,0HAAA,gBAAgB,OAAA;AAAE,uHAAA,aAAa,OAAA;AAE7D,6EAAyE;AAAhE,uIAAA,wBAAwB,OAAA;AAEjC,uEAAmE;AAA1D,iIAAA,qBAAqB,OAAA;AAE9B,uEAIoC;AAHlC,iIAAA,qBAAqB,OAAA;AACrB,iIAAA,qBAAqB,OAAA;AAIvB,6CAA+E;AAAtE,wHAAA,yBAAyB,OAAA;AAAE,kHAAA,mBAAmB,OAAA"}
@@ -18,6 +18,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.findThinkingHandler = exports.SHIPPED_THINKING_HANDLERS = void 0;
19
19
  const AnthropicThinkingHandler_js_1 = require("./AnthropicThinkingHandler.js");
20
20
  const MockThinkingHandler_js_1 = require("./MockThinkingHandler.js");
21
+ const OllamaThinkingHandler_js_1 = require("./OllamaThinkingHandler.js");
21
22
  const OpenAIThinkingHandler_js_1 = require("./OpenAIThinkingHandler.js");
22
23
  /**
23
24
  * All thinking handlers shipped with the library. Append in alphabetical
@@ -26,6 +27,7 @@ const OpenAIThinkingHandler_js_1 = require("./OpenAIThinkingHandler.js");
26
27
  exports.SHIPPED_THINKING_HANDLERS = [
27
28
  AnthropicThinkingHandler_js_1.anthropicThinkingHandler,
28
29
  MockThinkingHandler_js_1.mockThinkingHandler,
30
+ OllamaThinkingHandler_js_1.ollamaThinkingHandler,
29
31
  OpenAIThinkingHandler_js_1.openAIThinkingHandler,
30
32
  ];
31
33
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/thinking/registry.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,+EAAyE;AACzE,qEAA+D;AAC/D,yEAAmE;AAGnE;;;GAGG;AACU,QAAA,yBAAyB,GAA+B;IACnE,sDAAwB;IACxB,4CAAmB;IACnB,gDAAqB;CACtB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,SAAgB,mBAAmB,CAAC,YAAoB;IACtD,KAAK,MAAM,OAAO,IAAI,iCAAyB,EAAE,CAAC;QAChD,IAAI,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC;YAAE,OAAO,OAAO,CAAC;IACnE,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AALD,kDAKC"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/thinking/registry.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,+EAAyE;AACzE,qEAA+D;AAC/D,yEAAmE;AACnE,yEAAmE;AAGnE;;;GAGG;AACU,QAAA,yBAAyB,GAA+B;IACnE,sDAAwB;IACxB,4CAAmB;IACnB,gDAAqB;IACrB,gDAAqB;CACtB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,SAAgB,mBAAmB,CAAC,YAAoB;IACtD,KAAK,MAAM,OAAO,IAAI,iCAAyB,EAAE,CAAC;QAChD,IAAI,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC;YAAE,OAAO,OAAO,CAAC;IACnE,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AALD,kDAKC"}
@@ -0,0 +1,183 @@
1
+ /**
2
+ * OllamaProvider — local models over Ollama's native `/api/chat`.
3
+ *
4
+ * Pattern: Adapter (GoF) + Ports-and-Adapters (Cockburn 2005).
5
+ * Role: Outer ring — translates `LLMRequest`/`LLMResponse` to/from
6
+ * Ollama's native chat wire. Knows nothing about agents,
7
+ * recorders, or compositions.
8
+ * Emits: N/A.
9
+ *
10
+ * ─── Why this exists, and why it talks the native wire ───────────────
11
+ *
12
+ * The adapter ladder is `mock()` → a local model → a paid API, and the
13
+ * strongest version of "the test run and the production run are the same
14
+ * code path" is one where the middle step costs nothing and needs no API
15
+ * key. Through 8.0.0 the middle step needed BOTH a competitor's SDK
16
+ * (`npm install openai`, because `ollama()` was a thin wrapper over
17
+ * `openai({ baseURL })`) and a tolerance for failures labelled `[openai]`.
18
+ * That is not a free rung.
19
+ *
20
+ * So this file owns the wire:
21
+ *
22
+ * • ZERO dependencies — one `fetch` POST and NDJSON. Nothing to install
23
+ * beyond Ollama itself. (Same choice, same reasons, as the two
24
+ * `Browser*Provider` adapters.)
25
+ * • HONEST REFUSALS — a typed {@link OllamaUnavailableError} that names
26
+ * the address it tried and the command to run. Owning the fetch and
27
+ * the status code is what makes that possible; through an SDK you get
28
+ * whatever the SDK decided to throw.
29
+ * • REAL TOKEN COUNTS — `/api/chat` returns `prompt_eval_count` /
30
+ * `eval_count` on every response, streaming or not, with no opt-in
31
+ * flag. Through the OpenAI-compatible endpoint a streamed local call
32
+ * reported ZERO tokens, which silently disarmed `.compaction()` and
33
+ * `costBudget` (see `CompactionUnmeasurableError`, whose message names
34
+ * this exact case).
35
+ * • STRUCTURED THINKING — `message.thinking` is a first-class field on
36
+ * this wire; the OpenAI-compatible layer renames it to a non-standard
37
+ * `reasoning` key that no OpenAI adapter reads. See
38
+ * `OllamaThinkingHandler`.
39
+ *
40
+ * Want the SDK path instead? It is still there and still supported:
41
+ * `openai({ baseURL: 'http://localhost:11434/v1', apiKey: 'ollama' })`.
42
+ *
43
+ * ─── Ceilings (stated, not worked around) ────────────────────────────
44
+ *
45
+ * • TOOL CALLING IS MODEL-DEPENDENT. Ollama forwards a `tools` array to
46
+ * any model; a model that was not trained for tools simply answers in
47
+ * prose and no tool call ever arrives. This adapter does not preflight
48
+ * `/api/show` capabilities to refuse first — a wrong refusal is worse
49
+ * than a weak answer, and the metadata is less reliable than the
50
+ * ceiling being written down. Pick a tool-capable model.
51
+ * • NO FORCED TOOL CHOICE. Ollama does not support `tool_choice` on
52
+ * either wire, so `carriesForcedToolChoice` is `false` and an agent
53
+ * using `.outputSchema(parser, { strategy: 'tool-forced' })` refuses at
54
+ * run start, naming this provider.
55
+ * • NO MULTI-MODAL. The wire carries `images`; `LLMMessage.content` is a
56
+ * string. Same ceiling as every other adapter here.
57
+ * • NO PROMPT CACHING — resolves to the NoOp cache strategy.
58
+ * • NO `providerRef`. The native wire returns no response id, and a
59
+ * fabricated one would point at nothing.
60
+ */
61
+ import type { LLMCallHooks, LLMChunk, LLMProvider, LLMRequest, LLMResponse, WireRole } from '../types.js';
62
+ /** How hard a thinking model should think. Ollama's own vocabulary. */
63
+ export type ThinkLevel = 'low' | 'medium' | 'high' | 'max';
64
+ /**
65
+ * The two failures a local runtime actually has, told in words that
66
+ * contain the fix.
67
+ *
68
+ * Both are things the person at the keyboard can resolve in one command,
69
+ * which is exactly why they get a type instead of a wrapped
70
+ * `ECONNREFUSED` or a bare `404`. `reason` is the discriminator; the
71
+ * message already reads as instructions.
72
+ */
73
+ export declare class OllamaUnavailableError extends Error {
74
+ readonly name = "OllamaUnavailableError";
75
+ /** Which of the two situations this is. */
76
+ readonly reason: 'daemon-unreachable' | 'model-not-pulled';
77
+ /** The address that was tried — the thing to check or change. */
78
+ readonly baseUrl: string;
79
+ /** The model asked for. Absent when the daemon never answered at all. */
80
+ readonly model?: string;
81
+ /** Models this machine DOES have, when the daemon could tell us. */
82
+ readonly availableModels?: readonly string[];
83
+ constructor(init: {
84
+ reason: 'daemon-unreachable' | 'model-not-pulled';
85
+ baseUrl: string;
86
+ model?: string;
87
+ availableModels?: readonly string[];
88
+ cause?: unknown;
89
+ });
90
+ }
91
+ export interface OllamaProviderOptions {
92
+ /**
93
+ * Where Ollama is listening. Defaults to `OLLAMA_HOST` when set,
94
+ * otherwise `http://localhost:11434`. A bare `host:port` gets `http://`.
95
+ *
96
+ * Point it at the ROOT, not at a path — this adapter talks to
97
+ * `/api/chat` and `/api/tags` itself. A URL ending in `/v1` (the
98
+ * OpenAI-compatible path) is accepted and trimmed, so a config written
99
+ * for the 8.0.0 factory keeps working.
100
+ */
101
+ readonly baseUrl?: string;
102
+ /** Shipped-in-8.0.0 spelling of {@link baseUrl}. Still honored. */
103
+ readonly host?: string;
104
+ /** Shipped-in-8.0.0 spelling of {@link baseUrl}. Still honored. */
105
+ readonly baseURL?: string;
106
+ /**
107
+ * Model used when `LLMRequest.model` is the `'ollama'` shorthand.
108
+ * Prefer the positional form: `ollama('qwen3')`.
109
+ */
110
+ readonly defaultModel?: string;
111
+ /** Default token cap when the request doesn't set one. Maps to `num_predict`. */
112
+ readonly defaultMaxTokens?: number;
113
+ /**
114
+ * Ask a thinking model to reason before answering. `true` turns it on;
115
+ * `'low' | 'medium' | 'high' | 'max'` sets how hard.
116
+ *
117
+ * Worth setting on reasoning models (deepseek-r1, qwen3, gpt-oss, …):
118
+ * with `think` on, Ollama lifts the reasoning OUT of the answer into
119
+ * `message.thinking`, where `ollamaThinkingHandler` normalizes it.
120
+ * With it off, the same model leaves `<think>…</think>` sitting in the
121
+ * answer text.
122
+ *
123
+ * A per-request `LLMRequest.thinking` (what `AgentBuilder.thinking()`
124
+ * sets) also turns it on; this option is the always-on default and the
125
+ * only way to name a level.
126
+ */
127
+ readonly think?: boolean | ThinkLevel;
128
+ /** How long Ollama keeps the model in memory after a call, e.g. `'5m'`. */
129
+ readonly keepAlive?: string | number;
130
+ /**
131
+ * How long to wait for the daemon to ANSWER, in ms. Default 10000.
132
+ *
133
+ * This bounds the wait for response headers, NOT generation: a laptop
134
+ * model may take minutes to finish a long answer and that is fine. What
135
+ * it prevents is the failure this whole file exists to avoid — a run
136
+ * that hangs because nothing is listening.
137
+ */
138
+ readonly timeoutMs?: number;
139
+ /** Accepted and ignored — Ollama needs no key. Kept so 8.0.0 configs still typecheck. */
140
+ readonly apiKey?: string;
141
+ /** @internal Custom fetch implementation for tests. */
142
+ readonly _fetch?: typeof fetch;
143
+ }
144
+ /**
145
+ * Build an `LLMProvider` backed by a local Ollama runtime.
146
+ *
147
+ * Free, offline, no API key. The rung between `mock()` and a paid API —
148
+ * and the agent code above it does not change between the three.
149
+ *
150
+ * @example
151
+ * import { Agent } from 'agentfootprint';
152
+ * import { ollama } from 'agentfootprint/providers';
153
+ *
154
+ * const agent = Agent.create({
155
+ * provider: ollama('qwen3'),
156
+ * model: 'qwen3',
157
+ * }).build();
158
+ *
159
+ * @example // reasoning model, thinking lifted out of the answer
160
+ * ollama('deepseek-r1', { think: 'high' });
161
+ *
162
+ * @example // a runtime on another machine
163
+ * ollama('llama3.2', { baseUrl: 'http://192.168.1.20:11434' });
164
+ */
165
+ export declare function ollama(model: string, options?: OllamaProviderOptions): LLMProvider;
166
+ /**
167
+ * Object form, as shipped in 8.0.0. Still supported — `host` / `baseURL` /
168
+ * `defaultModel` / `apiKey` all keep their meaning.
169
+ */
170
+ export declare function ollama(options?: OllamaProviderOptions): LLMProvider;
171
+ /**
172
+ * Class form for consumers who prefer `new OllamaProvider(...)`.
173
+ */
174
+ export declare class OllamaProvider implements LLMProvider {
175
+ readonly name = "ollama";
176
+ readonly carriesInMessages: readonly WireRole[];
177
+ readonly carriesForcedToolChoice = false;
178
+ private readonly inner;
179
+ constructor(model?: string | OllamaProviderOptions, options?: OllamaProviderOptions);
180
+ complete(req: LLMRequest, hooks?: LLMCallHooks): Promise<LLMResponse>;
181
+ stream(req: LLMRequest, hooks?: LLMCallHooks): AsyncIterable<LLMChunk>;
182
+ }
183
+ //# sourceMappingURL=OllamaProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OllamaProvider.d.ts","sourceRoot":"","sources":["../../../../src/adapters/llm/OllamaProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,QAAQ,EAER,WAAW,EACX,UAAU,EACV,WAAW,EAEX,QAAQ,EACT,MAAM,aAAa,CAAC;AAyErB,uEAAuE;AACvE,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC;AAI3D;;;;;;;;GAQG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,SAAkB,IAAI,4BAA4B;IAClD,2CAA2C;IAC3C,QAAQ,CAAC,MAAM,EAAE,oBAAoB,GAAG,kBAAkB,CAAC;IAC3D,iEAAiE;IACjE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,yEAAyE;IACzE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,oEAAoE;IACpE,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;gBAEjC,IAAI,EAAE;QAChB,MAAM,EAAE,oBAAoB,GAAG,kBAAkB,CAAC;QAClD,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QACpC,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB;CAQF;AA6BD,MAAM,WAAW,qBAAqB;IACpC;;;;;;;;OAQG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,mEAAmE;IACnE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,mEAAmE;IACnE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,iFAAiF;IACjF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IACtC,2EAA2E;IAC3E,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrC;;;;;;;OAOG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,yFAAyF;IACzF,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,uDAAuD;IACvD,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,KAAK,CAAC;CAChC;AAoBD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,WAAW,CAAC;AACpF;;;GAGG;AACH,wBAAgB,MAAM,CAAC,OAAO,CAAC,EAAE,qBAAqB,GAAG,WAAW,CAAC;AAsHrE;;GAEG;AACH,qBAAa,cAAe,YAAW,WAAW;IAChD,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,iBAAiB,sBAAuB;IACjD,QAAQ,CAAC,uBAAuB,SAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAc;gBAExB,KAAK,CAAC,EAAE,MAAM,GAAG,qBAAqB,EAAE,OAAO,CAAC,EAAE,qBAAqB;IAMnF,QAAQ,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;IAIrE,MAAM,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,YAAY,GAAG,aAAa,CAAC,QAAQ,CAAC;CAIvE"}
@@ -218,17 +218,5 @@ export interface AzureOpenAIProviderOptions {
218
218
  * }).build();
219
219
  */
220
220
  export declare function azureOpenai(options?: AzureOpenAIProviderOptions): LLMProvider;
221
- /**
222
- * Convenience factory for Ollama (OpenAI-compatible endpoint).
223
- *
224
- * @example
225
- * import { ollama } from 'agentfootprint/llm-providers';
226
- *
227
- * const provider = ollama({ defaultModel: 'llama3.2' });
228
- * // Talks to http://localhost:11434/v1 by default.
229
- */
230
- export declare function ollama(options?: OpenAIProviderOptions & {
231
- readonly host?: string;
232
- }): LLMProvider;
233
221
  export {};
234
222
  //# sourceMappingURL=OpenAIProvider.d.ts.map
@@ -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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"}