@agntk/core 0.3.3 → 1.0.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 (351) hide show
  1. package/dist/advanced/index.d.ts +13 -22
  2. package/dist/advanced/index.d.ts.map +1 -1
  3. package/dist/advanced/index.js +10 -55
  4. package/dist/advanced/index.js.map +1 -1
  5. package/dist/agent.d.ts +2 -35
  6. package/dist/agent.d.ts.map +1 -1
  7. package/dist/agent.js +113 -111
  8. package/dist/agent.js.map +1 -1
  9. package/dist/config/defaults.d.ts +1 -5
  10. package/dist/config/defaults.d.ts.map +1 -1
  11. package/dist/config/defaults.js +1 -11
  12. package/dist/config/defaults.js.map +1 -1
  13. package/dist/config/index.d.ts +5 -1
  14. package/dist/config/index.d.ts.map +1 -1
  15. package/dist/config/index.js +7 -7
  16. package/dist/config/index.js.map +1 -1
  17. package/dist/config/loader.d.ts +0 -40
  18. package/dist/config/loader.d.ts.map +1 -1
  19. package/dist/config/loader.js +3 -80
  20. package/dist/config/loader.js.map +1 -1
  21. package/dist/config/schema.d.ts +117 -788
  22. package/dist/config/schema.d.ts.map +1 -1
  23. package/dist/config/schema.js +52 -63
  24. package/dist/config/schema.js.map +1 -1
  25. package/dist/constants.d.ts +0 -11
  26. package/dist/constants.d.ts.map +1 -1
  27. package/dist/constants.js +0 -17
  28. package/dist/constants.js.map +1 -1
  29. package/dist/evals/assertions.d.ts +0 -35
  30. package/dist/evals/assertions.d.ts.map +1 -1
  31. package/dist/evals/assertions.js +0 -51
  32. package/dist/evals/assertions.js.map +1 -1
  33. package/dist/evals/index.d.ts +0 -5
  34. package/dist/evals/index.d.ts.map +1 -1
  35. package/dist/evals/index.js +0 -5
  36. package/dist/evals/index.js.map +1 -1
  37. package/dist/evals/runner.d.ts +0 -27
  38. package/dist/evals/runner.d.ts.map +1 -1
  39. package/dist/evals/runner.js +3 -45
  40. package/dist/evals/runner.js.map +1 -1
  41. package/dist/evals/types.d.ts +0 -14
  42. package/dist/evals/types.d.ts.map +1 -1
  43. package/dist/evals/types.js +0 -3
  44. package/dist/evals/types.js.map +1 -1
  45. package/dist/guardrails/built-ins.d.ts +0 -28
  46. package/dist/guardrails/built-ins.d.ts.map +1 -1
  47. package/dist/guardrails/built-ins.js +21 -47
  48. package/dist/guardrails/built-ins.js.map +1 -1
  49. package/dist/guardrails/index.d.ts +1 -4
  50. package/dist/guardrails/index.d.ts.map +1 -1
  51. package/dist/guardrails/index.js +1 -4
  52. package/dist/guardrails/index.js.map +1 -1
  53. package/dist/guardrails/runner.d.ts +0 -30
  54. package/dist/guardrails/runner.d.ts.map +1 -1
  55. package/dist/guardrails/runner.js +1 -46
  56. package/dist/guardrails/runner.js.map +1 -1
  57. package/dist/guardrails/types.d.ts +0 -35
  58. package/dist/guardrails/types.d.ts.map +1 -1
  59. package/dist/guardrails/types.js +4 -7
  60. package/dist/guardrails/types.js.map +1 -1
  61. package/dist/index.d.ts +4 -12
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/index.js +2 -31
  64. package/dist/index.js.map +1 -1
  65. package/dist/memory/loader.d.ts +0 -17
  66. package/dist/memory/loader.d.ts.map +1 -1
  67. package/dist/memory/loader.js +5 -27
  68. package/dist/memory/loader.js.map +1 -1
  69. package/dist/memory/store.d.ts +8 -16
  70. package/dist/memory/store.d.ts.map +1 -1
  71. package/dist/memory/store.js +101 -32
  72. package/dist/memory/store.js.map +1 -1
  73. package/dist/memory/types.d.ts +10 -30
  74. package/dist/memory/types.d.ts.map +1 -1
  75. package/dist/memory/types.js +0 -6
  76. package/dist/memory/types.js.map +1 -1
  77. package/dist/models.d.ts +9 -32
  78. package/dist/models.d.ts.map +1 -1
  79. package/dist/models.js +25 -68
  80. package/dist/models.js.map +1 -1
  81. package/dist/observability/index.d.ts +0 -3
  82. package/dist/observability/index.d.ts.map +1 -1
  83. package/dist/observability/index.js +0 -3
  84. package/dist/observability/index.js.map +1 -1
  85. package/dist/observability/langfuse.d.ts +0 -38
  86. package/dist/observability/langfuse.d.ts.map +1 -1
  87. package/dist/observability/langfuse.js +6 -55
  88. package/dist/observability/langfuse.js.map +1 -1
  89. package/dist/observability/types.d.ts +0 -21
  90. package/dist/observability/types.d.ts.map +1 -1
  91. package/dist/observability/types.js +0 -3
  92. package/dist/observability/types.js.map +1 -1
  93. package/dist/presets/tool-preset-registry.d.ts +0 -21
  94. package/dist/presets/tool-preset-registry.d.ts.map +1 -1
  95. package/dist/presets/tool-preset-registry.js +15 -34
  96. package/dist/presets/tool-preset-registry.js.map +1 -1
  97. package/dist/presets/tools.d.ts +41 -39
  98. package/dist/presets/tools.d.ts.map +1 -1
  99. package/dist/presets/tools.js +46 -40
  100. package/dist/presets/tools.js.map +1 -1
  101. package/dist/prompts/context.d.ts +0 -4
  102. package/dist/prompts/context.d.ts.map +1 -1
  103. package/dist/prompts/context.js +21 -33
  104. package/dist/prompts/context.js.map +1 -1
  105. package/dist/prompts/template.d.ts +0 -11
  106. package/dist/prompts/template.d.ts.map +1 -1
  107. package/dist/prompts/template.js +4 -14
  108. package/dist/prompts/template.js.map +1 -1
  109. package/dist/provider-resolver.d.ts +0 -29
  110. package/dist/provider-resolver.d.ts.map +1 -1
  111. package/dist/provider-resolver.js +17 -61
  112. package/dist/provider-resolver.js.map +1 -1
  113. package/dist/reflection.d.ts +0 -34
  114. package/dist/reflection.d.ts.map +1 -1
  115. package/dist/reflection.js +0 -40
  116. package/dist/reflection.js.map +1 -1
  117. package/dist/skills/index.d.ts +0 -3
  118. package/dist/skills/index.d.ts.map +1 -1
  119. package/dist/skills/index.js +0 -3
  120. package/dist/skills/index.js.map +1 -1
  121. package/dist/skills/loader.d.ts +0 -69
  122. package/dist/skills/loader.d.ts.map +1 -1
  123. package/dist/skills/loader.js +38 -130
  124. package/dist/skills/loader.js.map +1 -1
  125. package/dist/skills/types.d.ts +0 -36
  126. package/dist/skills/types.d.ts.map +1 -1
  127. package/dist/skills/types.js +0 -4
  128. package/dist/skills/types.js.map +1 -1
  129. package/dist/system-detect.d.ts +0 -57
  130. package/dist/system-detect.d.ts.map +1 -1
  131. package/dist/system-detect.js +9 -114
  132. package/dist/system-detect.js.map +1 -1
  133. package/dist/tools/approval.d.ts +0 -47
  134. package/dist/tools/approval.d.ts.map +1 -1
  135. package/dist/tools/approval.js +0 -46
  136. package/dist/tools/approval.js.map +1 -1
  137. package/dist/tools/ast-grep/cli.d.ts.map +1 -1
  138. package/dist/tools/ast-grep/cli.js +10 -4
  139. package/dist/tools/ast-grep/cli.js.map +1 -1
  140. package/dist/tools/ast-grep/constants.d.ts.map +1 -1
  141. package/dist/tools/ast-grep/constants.js +7 -14
  142. package/dist/tools/ast-grep/constants.js.map +1 -1
  143. package/dist/tools/ast-grep/downloader.d.ts.map +1 -1
  144. package/dist/tools/ast-grep/downloader.js +1 -4
  145. package/dist/tools/ast-grep/downloader.js.map +1 -1
  146. package/dist/tools/ast-grep/index.d.ts +2 -2
  147. package/dist/tools/ast-grep/index.d.ts.map +1 -1
  148. package/dist/tools/ast-grep/index.js +1 -1
  149. package/dist/tools/ast-grep/index.js.map +1 -1
  150. package/dist/tools/ast-grep/tools.d.ts +4 -4
  151. package/dist/tools/ast-grep/tools.d.ts.map +1 -1
  152. package/dist/tools/ast-grep/tools.js +2 -8
  153. package/dist/tools/ast-grep/tools.js.map +1 -1
  154. package/dist/tools/browser/index.d.ts +4 -4
  155. package/dist/tools/browser/index.d.ts.map +1 -1
  156. package/dist/tools/browser/index.js +2 -3
  157. package/dist/tools/browser/index.js.map +1 -1
  158. package/dist/tools/browser/stream.d.ts +0 -32
  159. package/dist/tools/browser/stream.d.ts.map +1 -1
  160. package/dist/tools/browser/stream.js +0 -53
  161. package/dist/tools/browser/stream.js.map +1 -1
  162. package/dist/tools/browser/tool.d.ts +10 -15
  163. package/dist/tools/browser/tool.d.ts.map +1 -1
  164. package/dist/tools/browser/tool.js +2 -26
  165. package/dist/tools/browser/tool.js.map +1 -1
  166. package/dist/tools/browser/types.d.ts +31 -156
  167. package/dist/tools/browser/types.d.ts.map +1 -1
  168. package/dist/tools/browser/types.js +22 -17
  169. package/dist/tools/browser/types.js.map +1 -1
  170. package/dist/tools/deep-reasoning/constants.d.ts +0 -6
  171. package/dist/tools/deep-reasoning/constants.d.ts.map +1 -1
  172. package/dist/tools/deep-reasoning/constants.js +0 -6
  173. package/dist/tools/deep-reasoning/constants.js.map +1 -1
  174. package/dist/tools/deep-reasoning/engine.d.ts.map +1 -1
  175. package/dist/tools/deep-reasoning/engine.js +0 -1
  176. package/dist/tools/deep-reasoning/engine.js.map +1 -1
  177. package/dist/tools/deep-reasoning/index.d.ts +4 -0
  178. package/dist/tools/deep-reasoning/index.d.ts.map +1 -1
  179. package/dist/tools/deep-reasoning/index.js +4 -3
  180. package/dist/tools/deep-reasoning/index.js.map +1 -1
  181. package/dist/tools/deep-reasoning/tools.d.ts.map +1 -1
  182. package/dist/tools/deep-reasoning/tools.js +8 -1
  183. package/dist/tools/deep-reasoning/tools.js.map +1 -1
  184. package/dist/tools/deep-reasoning/types.d.ts +5 -30
  185. package/dist/tools/deep-reasoning/types.d.ts.map +1 -1
  186. package/dist/tools/deep-reasoning/types.js +10 -1
  187. package/dist/tools/deep-reasoning/types.js.map +1 -1
  188. package/dist/tools/file/index.d.ts +3 -5
  189. package/dist/tools/file/index.d.ts.map +1 -1
  190. package/dist/tools/file/index.js +2 -4
  191. package/dist/tools/file/index.js.map +1 -1
  192. package/dist/tools/file/tools.d.ts +8 -11
  193. package/dist/tools/file/tools.d.ts.map +1 -1
  194. package/dist/tools/file/tools.js +45 -59
  195. package/dist/tools/file/tools.js.map +1 -1
  196. package/dist/tools/glob/cli.d.ts.map +1 -1
  197. package/dist/tools/glob/cli.js +8 -6
  198. package/dist/tools/glob/cli.js.map +1 -1
  199. package/dist/tools/glob/tools.d.ts.map +1 -1
  200. package/dist/tools/glob/tools.js +7 -10
  201. package/dist/tools/glob/tools.js.map +1 -1
  202. package/dist/tools/grep/cli.d.ts.map +1 -1
  203. package/dist/tools/grep/cli.js +0 -2
  204. package/dist/tools/grep/cli.js.map +1 -1
  205. package/dist/tools/grep/constants.d.ts.map +1 -1
  206. package/dist/tools/grep/constants.js +3 -5
  207. package/dist/tools/grep/constants.js.map +1 -1
  208. package/dist/tools/grep/downloader.d.ts.map +1 -1
  209. package/dist/tools/grep/downloader.js +3 -3
  210. package/dist/tools/grep/downloader.js.map +1 -1
  211. package/dist/tools/grep/tools.d.ts +2 -2
  212. package/dist/tools/grep/tools.d.ts.map +1 -1
  213. package/dist/tools/grep/tools.js +8 -14
  214. package/dist/tools/grep/tools.js.map +1 -1
  215. package/dist/tools/index.d.ts +10 -11
  216. package/dist/tools/index.d.ts.map +1 -1
  217. package/dist/tools/index.js +9 -22
  218. package/dist/tools/index.js.map +1 -1
  219. package/dist/tools/model-retry.d.ts +0 -40
  220. package/dist/tools/model-retry.d.ts.map +1 -1
  221. package/dist/tools/model-retry.js +1 -49
  222. package/dist/tools/model-retry.js.map +1 -1
  223. package/dist/tools/plan/constants.d.ts +0 -6
  224. package/dist/tools/plan/constants.d.ts.map +1 -1
  225. package/dist/tools/plan/constants.js +9 -6
  226. package/dist/tools/plan/constants.js.map +1 -1
  227. package/dist/tools/plan/index.d.ts +1 -1
  228. package/dist/tools/plan/index.d.ts.map +1 -1
  229. package/dist/tools/plan/index.js +1 -4
  230. package/dist/tools/plan/index.js.map +1 -1
  231. package/dist/tools/plan/tools.d.ts +2 -2
  232. package/dist/tools/plan/tools.d.ts.map +1 -1
  233. package/dist/tools/plan/tools.js +10 -11
  234. package/dist/tools/plan/tools.js.map +1 -1
  235. package/dist/tools/plan/types.d.ts +22 -32
  236. package/dist/tools/plan/types.d.ts.map +1 -1
  237. package/dist/tools/plan/types.js +11 -3
  238. package/dist/tools/plan/types.js.map +1 -1
  239. package/dist/tools/progress/index.d.ts +3 -22
  240. package/dist/tools/progress/index.d.ts.map +1 -1
  241. package/dist/tools/progress/index.js +19 -34
  242. package/dist/tools/progress/index.js.map +1 -1
  243. package/dist/tools/search-skills.d.ts +0 -23
  244. package/dist/tools/search-skills.d.ts.map +1 -1
  245. package/dist/tools/search-skills.js +3 -32
  246. package/dist/tools/search-skills.js.map +1 -1
  247. package/dist/tools/shell/background.d.ts +2 -18
  248. package/dist/tools/shell/background.d.ts.map +1 -1
  249. package/dist/tools/shell/background.js +45 -48
  250. package/dist/tools/shell/background.js.map +1 -1
  251. package/dist/tools/shell/constants.d.ts +0 -3
  252. package/dist/tools/shell/constants.d.ts.map +1 -1
  253. package/dist/tools/shell/constants.js +16 -6
  254. package/dist/tools/shell/constants.js.map +1 -1
  255. package/dist/tools/shell/index.d.ts +1 -1
  256. package/dist/tools/shell/index.d.ts.map +1 -1
  257. package/dist/tools/shell/index.js +1 -1
  258. package/dist/tools/shell/index.js.map +1 -1
  259. package/dist/tools/shell/tools.d.ts +3 -3
  260. package/dist/tools/shell/tools.d.ts.map +1 -1
  261. package/dist/tools/shell/tools.js +0 -2
  262. package/dist/tools/shell/tools.js.map +1 -1
  263. package/dist/tools/shell/types.d.ts +5 -13
  264. package/dist/tools/shell/types.d.ts.map +1 -1
  265. package/dist/tools/shell/types.js +10 -1
  266. package/dist/tools/shell/types.js.map +1 -1
  267. package/dist/tools/spawn-agent/check-agent.d.ts +45 -0
  268. package/dist/tools/spawn-agent/check-agent.d.ts.map +1 -0
  269. package/dist/tools/spawn-agent/check-agent.js +84 -0
  270. package/dist/tools/spawn-agent/check-agent.js.map +1 -0
  271. package/dist/tools/spawn-agent/index.d.ts +44 -51
  272. package/dist/tools/spawn-agent/index.d.ts.map +1 -1
  273. package/dist/tools/spawn-agent/index.js +196 -84
  274. package/dist/tools/spawn-agent/index.js.map +1 -1
  275. package/dist/tools/spawn-agent/registry.d.ts +36 -0
  276. package/dist/tools/spawn-agent/registry.d.ts.map +1 -0
  277. package/dist/tools/spawn-agent/registry.js +88 -0
  278. package/dist/tools/spawn-agent/registry.js.map +1 -0
  279. package/dist/tools/utils/errors.d.ts +2 -1
  280. package/dist/tools/utils/errors.d.ts.map +1 -1
  281. package/dist/tools/utils/errors.js +2 -1
  282. package/dist/tools/utils/errors.js.map +1 -1
  283. package/dist/tools/utils/shell.d.ts +0 -11
  284. package/dist/tools/utils/shell.d.ts.map +1 -1
  285. package/dist/tools/utils/shell.js +10 -78
  286. package/dist/tools/utils/shell.js.map +1 -1
  287. package/dist/tools/utils/tool-result.d.ts +0 -3
  288. package/dist/tools/utils/tool-result.d.ts.map +1 -1
  289. package/dist/tools/utils/tool-result.js +4 -4
  290. package/dist/tools/utils/tool-result.js.map +1 -1
  291. package/dist/tools/web-search/index.d.ts +4 -0
  292. package/dist/tools/web-search/index.d.ts.map +1 -0
  293. package/dist/tools/web-search/index.js +3 -0
  294. package/dist/tools/web-search/index.js.map +1 -0
  295. package/dist/tools/web-search/tools.d.ts +17 -0
  296. package/dist/tools/web-search/tools.d.ts.map +1 -0
  297. package/dist/tools/web-search/tools.js +81 -0
  298. package/dist/tools/web-search/tools.js.map +1 -0
  299. package/dist/tools/web-search/types.d.ts +16 -0
  300. package/dist/tools/web-search/types.d.ts.map +1 -0
  301. package/dist/tools/web-search/types.js +29 -0
  302. package/dist/tools/web-search/types.js.map +1 -0
  303. package/dist/tools/workspace-middleware.d.ts +14 -0
  304. package/dist/tools/workspace-middleware.d.ts.map +1 -0
  305. package/dist/tools/workspace-middleware.js +97 -0
  306. package/dist/tools/workspace-middleware.js.map +1 -0
  307. package/dist/types/agent.d.ts +1 -66
  308. package/dist/types/agent.d.ts.map +1 -1
  309. package/dist/types/agent.js +0 -6
  310. package/dist/types/agent.js.map +1 -1
  311. package/dist/types/index.d.ts +4 -3
  312. package/dist/types/index.d.ts.map +1 -1
  313. package/dist/types/index.js +3 -3
  314. package/dist/types/index.js.map +1 -1
  315. package/dist/types/lifecycle.d.ts +0 -141
  316. package/dist/types/lifecycle.d.ts.map +1 -1
  317. package/dist/types/lifecycle.js +4 -54
  318. package/dist/types/lifecycle.js.map +1 -1
  319. package/dist/types/streaming.d.ts +0 -4
  320. package/dist/types/streaming.d.ts.map +1 -1
  321. package/dist/types/streaming.js +0 -4
  322. package/dist/types/streaming.js.map +1 -1
  323. package/dist/usage-limits.d.ts +0 -37
  324. package/dist/usage-limits.d.ts.map +1 -1
  325. package/dist/usage-limits.js +1 -40
  326. package/dist/usage-limits.js.map +1 -1
  327. package/dist/workflow/durable-tool.d.ts +0 -84
  328. package/dist/workflow/durable-tool.d.ts.map +1 -1
  329. package/dist/workflow/durable-tool.js +2 -104
  330. package/dist/workflow/durable-tool.js.map +1 -1
  331. package/dist/workflow/hooks.d.ts +0 -215
  332. package/dist/workflow/hooks.d.ts.map +1 -1
  333. package/dist/workflow/hooks.js +15 -221
  334. package/dist/workflow/hooks.js.map +1 -1
  335. package/dist/workflow/index.d.ts +0 -9
  336. package/dist/workflow/index.d.ts.map +1 -1
  337. package/dist/workflow/index.js +0 -12
  338. package/dist/workflow/index.js.map +1 -1
  339. package/dist/workflow/utils.d.ts +0 -24
  340. package/dist/workflow/utils.d.ts.map +1 -1
  341. package/dist/workflow/utils.js +1 -32
  342. package/dist/workflow/utils.js.map +1 -1
  343. package/dist/wrappers/best-of-n.d.ts +0 -35
  344. package/dist/wrappers/best-of-n.d.ts.map +1 -1
  345. package/dist/wrappers/best-of-n.js +4 -53
  346. package/dist/wrappers/best-of-n.js.map +1 -1
  347. package/dist/wrappers/refine-loop.d.ts +36 -0
  348. package/dist/wrappers/refine-loop.d.ts.map +1 -0
  349. package/dist/wrappers/refine-loop.js +135 -0
  350. package/dist/wrappers/refine-loop.js.map +1 -0
  351. package/package.json +14 -8
@@ -1,13 +1,9 @@
1
1
  /**
2
- * @agntk/core - System Context Builder
3
- * Builds dynamic context information for agent system prompts
2
+ * @fileoverview System context and prompt building utilities.
3
+ * Handles gathering of environment information, user preferences, and workspace
4
+ * structure to provide contextual information to the AI model.
4
5
  */
5
- import { createLogger } from '@agntk/logger';
6
6
  import { GEOLOCATION_API_URL, GEOLOCATION_ENABLED_DEFAULT } from '../constants.js';
7
- const log = createLogger('@agntk/core:context');
8
- // ============================================================================
9
- // Runtime Detection
10
- // ============================================================================
11
7
  const isNode = typeof process !== 'undefined' && process.versions?.node;
12
8
  async function getNodeInfo() {
13
9
  if (!isNode) {
@@ -30,15 +26,12 @@ function getLocale() {
30
26
  }
31
27
  return 'en-US';
32
28
  }
33
- // ============================================================================
34
- // Location (Optional)
35
- // ============================================================================
36
29
  async function fetchUserLocation() {
37
30
  try {
38
31
  const response = await fetch(GEOLOCATION_API_URL);
39
32
  if (!response.ok)
40
33
  return undefined;
41
- const data = await response.json();
34
+ const data = (await response.json());
42
35
  return {
43
36
  city: data.city,
44
37
  region: data.regionName,
@@ -51,9 +44,6 @@ async function fetchUserLocation() {
51
44
  return undefined;
52
45
  }
53
46
  }
54
- // ============================================================================
55
- // Workspace Map
56
- // ============================================================================
57
47
  async function generateWorkspaceMap(workspaceRoot) {
58
48
  if (!isNode)
59
49
  return '';
@@ -64,13 +54,16 @@ async function generateWorkspaceMap(workspaceRoot) {
64
54
  return '';
65
55
  const entries = fs.readdirSync(workspaceRoot);
66
56
  const topLevel = entries
67
- .filter(e => !e.startsWith('.'))
57
+ .filter((e) => !e.startsWith('.'))
68
58
  .slice(0, 20)
69
- .map(e => {
59
+ .map((e) => {
70
60
  const fullPath = path.join(workspaceRoot, e);
71
61
  const isDir = fs.statSync(fullPath).isDirectory();
72
62
  if (isDir) {
73
- const children = fs.readdirSync(fullPath).filter(c => !c.startsWith('.')).slice(0, 5);
63
+ const children = fs
64
+ .readdirSync(fullPath)
65
+ .filter((c) => !c.startsWith('.'))
66
+ .slice(0, 5);
74
67
  return `${e}/: ${children.join(', ')}${children.length >= 5 ? '...' : ''}`;
75
68
  }
76
69
  return e;
@@ -81,22 +74,27 @@ async function generateWorkspaceMap(workspaceRoot) {
81
74
  return '';
82
75
  }
83
76
  }
84
- // ============================================================================
85
- // Context Builder
86
- // ============================================================================
87
77
  export async function buildSystemContext(options = {}) {
88
78
  const { workspaceRoot, includeWorkspaceMap = false, userLocation, userPreferences, fetchLocation = GEOLOCATION_ENABLED_DEFAULT, } = options;
89
79
  const now = new Date();
90
80
  const nodeInfo = await getNodeInfo();
91
- // Optionally fetch location
92
81
  let location = userLocation;
93
82
  if (!location && fetchLocation) {
94
83
  location = await fetchUserLocation();
95
84
  }
96
85
  const preferences = userPreferences;
97
86
  const context = {
98
- currentTime: now.toLocaleTimeString('en-US', { hour: '2-digit', minute: '2-digit', hour12: true }),
99
- currentDate: now.toLocaleDateString('en-US', { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' }),
87
+ currentTime: now.toLocaleTimeString('en-US', {
88
+ hour: '2-digit',
89
+ minute: '2-digit',
90
+ hour12: true,
91
+ }),
92
+ currentDate: now.toLocaleDateString('en-US', {
93
+ weekday: 'long',
94
+ year: 'numeric',
95
+ month: 'long',
96
+ day: 'numeric',
97
+ }),
100
98
  timezone: location?.timezone || Intl.DateTimeFormat().resolvedOptions().timeZone,
101
99
  platform: nodeInfo.platform,
102
100
  hostname: nodeInfo.hostname,
@@ -111,9 +109,6 @@ export async function buildSystemContext(options = {}) {
111
109
  }
112
110
  return context;
113
111
  }
114
- // ============================================================================
115
- // Formatting
116
- // ============================================================================
117
112
  export function formatSystemContextBlock(context) {
118
113
  const lines = [
119
114
  '# Current Environment',
@@ -124,7 +119,6 @@ export function formatSystemContextBlock(context) {
124
119
  `- **Platform**: ${context.platform}`,
125
120
  `- **User**: ${context.username}`,
126
121
  ];
127
- // Location
128
122
  if (context.userLocation) {
129
123
  const loc = context.userLocation;
130
124
  const locationParts = [loc.city, loc.region, loc.country].filter(Boolean);
@@ -132,7 +126,6 @@ export function formatSystemContextBlock(context) {
132
126
  lines.push(`- **Location**: ${locationParts.join(', ')}`);
133
127
  }
134
128
  }
135
- // Workspace
136
129
  if (context.workspaceRoot) {
137
130
  lines.push(`- **Workspace**: ${context.workspaceRoot}`);
138
131
  }
@@ -143,7 +136,6 @@ export function formatSystemContextBlock(context) {
143
136
  lines.push(context.workspaceMap);
144
137
  lines.push('```');
145
138
  }
146
- // User Preferences
147
139
  if (context.userPreferences) {
148
140
  const prefs = context.userPreferences;
149
141
  lines.push('');
@@ -169,16 +161,12 @@ export function formatSystemContextBlock(context) {
169
161
  }
170
162
  }
171
163
  }
172
- // Appended profile block (from memory system)
173
164
  if (context.userProfileBlock) {
174
165
  lines.push('');
175
166
  lines.push(context.userProfileBlock);
176
167
  }
177
168
  return lines.join('\n');
178
169
  }
179
- // ============================================================================
180
- // Convenience Function
181
- // ============================================================================
182
170
  export async function buildDynamicSystemPrompt(basePrompt, options = {}) {
183
171
  const context = await buildSystemContext(options);
184
172
  const contextBlock = formatSystemContextBlock(context);
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/prompts/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/prompts/context.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,6 @@
1
- /**
2
- * @fileoverview Template engine for variable substitution in prompts.
3
- */
4
1
  interface TemplateContext {
5
2
  [key: string]: string | number | boolean | undefined;
6
3
  }
7
- /**
8
- * Apply template variables to a string.
9
- * Replaces {{variableName}} with the value from context.
10
- *
11
- * @example
12
- * applyTemplate('Hello {{name}}!', { name: 'World' })
13
- * // => 'Hello World!'
14
- */
15
4
  export declare function applyTemplate(template: string, context?: TemplateContext): string;
16
5
  export {};
17
6
  //# sourceMappingURL=template.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/prompts/template.ts"],"names":[],"mappings":"AAAA;;GAEG;AAWH,UAAU,eAAe;IACvB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;CACtD;AAMD;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,MAAM,CAcrF"}
1
+ {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/prompts/template.ts"],"names":[],"mappings":"AAUA,UAAU,eAAe;IACvB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;CACtD;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,MAAM,CAerF"}
@@ -1,22 +1,12 @@
1
1
  /**
2
- * @fileoverview Template engine for variable substitution in prompts.
2
+ * @fileoverview Prompt template utilities for the SDK.
3
+ * Provides functions to replace placeholdings in prompt strings with context
4
+ * variables from both internal and configuration sources.
3
5
  */
4
6
  import { createLogger } from '@agntk/logger';
5
7
  import { getConfig } from '../config/index.js';
6
8
  const log = createLogger('@agntk/core:templates');
7
- // ============================================================================
8
- // Template Engine
9
- // ============================================================================
10
- /**
11
- * Apply template variables to a string.
12
- * Replaces {{variableName}} with the value from context.
13
- *
14
- * @example
15
- * applyTemplate('Hello {{name}}!', { name: 'World' })
16
- * // => 'Hello World!'
17
- */
18
9
  export function applyTemplate(template, context = {}) {
19
- // Merge config variables with explicit context (explicit takes precedence)
20
10
  const config = getConfig();
21
11
  const configVars = config.templates;
22
12
  const mergedContext = { ...configVars?.variables, ...context };
@@ -24,7 +14,7 @@ export function applyTemplate(template, context = {}) {
24
14
  const value = mergedContext[varName];
25
15
  if (value === undefined) {
26
16
  log.debug('Template variable not found', { variable: varName });
27
- return match; // Leave unreplaced if not found
17
+ return match;
28
18
  }
29
19
  return String(value);
30
20
  });
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/prompts/template.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,GAAG,GAAG,YAAY,CAAC,uBAAuB,CAAC,CAAC;AAUlD,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,QAAgB,EAAE,UAA2B,EAAE;IAC3E,2EAA2E;IAC3E,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,UAAU,GAAI,MAAkC,CAAC,SAAwD,CAAC;IAChH,MAAM,aAAa,GAAG,EAAE,GAAG,UAAU,EAAE,SAAS,EAAE,GAAG,OAAO,EAAE,CAAC;IAE/D,OAAO,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QAC3D,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,GAAG,CAAC,KAAK,CAAC,6BAA6B,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;YAChE,OAAO,KAAK,CAAC,CAAC,gCAAgC;QAChD,CAAC;QACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/prompts/template.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,GAAG,GAAG,YAAY,CAAC,uBAAuB,CAAC,CAAC;AAMlD,MAAM,UAAU,aAAa,CAAC,QAAgB,EAAE,UAA2B,EAAE;IAC3E,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,UAAU,GAAI,MAAkC,CAAC,SAE1C,CAAC;IACd,MAAM,aAAa,GAAG,EAAE,GAAG,UAAU,EAAE,SAAS,EAAE,GAAG,OAAO,EAAE,CAAC;IAE/D,OAAO,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QAC3D,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,GAAG,CAAC,KAAK,CAAC,6BAA6B,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;YAChE,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,42 +1,13 @@
1
- /**
2
- * @fileoverview Provider auto-resolution cascade.
3
- *
4
- * Priority:
5
- * 1. BYOK: User has OPENROUTER_API_KEY, OPENAI_API_KEY, or CEREBRAS_API_KEY
6
- * 2. Ollama: Running locally at localhost:11434 (with system-aware model selection)
7
- * 3. Free tier: agntk proxy at api.agntk.dev backed by Cerebras
8
- */
9
1
  import { type OllamaModelRecommendation } from './system-detect.js';
10
2
  export interface ResolvedProvider {
11
- /** Provider name matching PROVIDER_CONFIGS key */
12
3
  provider: string;
13
- /** Human-readable explanation of how this was resolved */
14
4
  source: string;
15
- /** Whether this is the free tier (for display/rate-limit messaging) */
16
5
  isFree: boolean;
17
- /** When provider is 'ollama', hardware-aware model recommendations */
18
6
  ollamaModels?: OllamaModelRecommendation;
19
- /** When provider is 'ollama', the list of models actually installed */
20
7
  ollamaInstalledModels?: string[];
21
- /** When Ollama was skipped despite running, explains why (for CLI display) */
22
8
  ollamaSkipReason?: string;
23
9
  }
24
- /**
25
- * Resolve the best available provider.
26
- *
27
- * Cascade:
28
- * 1. BYOK keys (sync, instant)
29
- * 2. Explicit OLLAMA_ENABLED (sync, instant)
30
- * 3. Ollama auto-detect probe (async, <=500ms)
31
- * 4. Free tier fallback (sync, instant)
32
- */
33
10
  export declare function resolveProvider(): Promise<ResolvedProvider>;
34
- /**
35
- * Get the resolved provider, caching for the process lifetime.
36
- */
37
11
  export declare function getResolvedProvider(): Promise<ResolvedProvider>;
38
- /**
39
- * Reset the cached provider (for testing).
40
- */
41
12
  export declare function resetProviderCache(): void;
42
13
  //# sourceMappingURL=provider-resolver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider-resolver.d.ts","sourceRoot":"","sources":["../src/provider-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAuC,KAAK,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAQtG,MAAM,WAAW,gBAAgB;IAC/B,kDAAkD;IAClD,QAAQ,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,MAAM,EAAE,OAAO,CAAC;IAChB,sEAAsE;IACtE,YAAY,CAAC,EAAE,yBAAyB,CAAC;IACzC,uEAAuE;IACvE,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;IACjC,8EAA8E;IAC9E,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAoID;;;;;;;;GAQG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAiBjE;AASD;;GAEG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAUrE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAGzC"}
1
+ {"version":3,"file":"provider-resolver.d.ts","sourceRoot":"","sources":["../src/provider-resolver.ts"],"names":[],"mappings":"AASA,OAAO,EAGL,KAAK,yBAAyB,EAC/B,MAAM,iBAAiB,CAAC;AAIzB,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IAEjB,MAAM,EAAE,MAAM,CAAC;IAEf,MAAM,EAAE,OAAO,CAAC;IAEhB,YAAY,CAAC,EAAE,yBAAyB,CAAC;IAEzC,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;IAEjC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAyGD,wBAAsB,eAAe,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAajE;AAKD,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAUrE;AAED,wBAAgB,kBAAkB,IAAI,IAAI,CAGzC"}
@@ -1,17 +1,14 @@
1
1
  /**
2
- * @fileoverview Provider auto-resolution cascade.
2
+ * @fileoverview Provider auto-resolution cascade for the SDK.
3
3
  *
4
- * Priority:
5
- * 1. BYOK: User has OPENROUTER_API_KEY, OPENAI_API_KEY, or CEREBRAS_API_KEY
6
- * 2. Ollama: Running locally at localhost:11434 (with system-aware model selection)
7
- * 3. Free tier: agntk proxy at api.agntk.dev backed by Cerebras
4
+ * Determines which LLM provider to use based on a priority cascade:
5
+ * 1. BYOK: User has OPENROUTER_API_KEY, OPENAI_API_KEY, or CEREBRAS_API_KEY.
6
+ * 2. Ollama: Running locally at localhost:11434 (with system-aware model selection).
7
+ * 3. Free tier: agntk proxy at api.agntk.dev backed by Cerebras.
8
8
  */
9
9
  import { createLogger } from '@agntk/logger';
10
- import { detectSystem, recommendOllamaModels } from './system-detect.js';
10
+ import { detectSystem, recommendOllamaModels, } from './system-detect.js';
11
11
  const log = createLogger('@agntk/core:provider-resolver');
12
- // ============================================================================
13
- // BYOK Detection (sync, instant)
14
- // ============================================================================
15
12
  const BYOK_KEYS = [
16
13
  { env: 'OPENROUTER_API_KEY', provider: 'openrouter' },
17
14
  { env: 'OPENAI_API_KEY', provider: 'openai' },
@@ -27,36 +24,22 @@ function checkBYOK() {
27
24
  }
28
25
  return null;
29
26
  }
30
- // ============================================================================
31
- // Ollama Skip Reason (set by probeOllama, read by getFreeTier)
32
- // ============================================================================
33
27
  let _ollamaSkipReason = null;
34
- // ============================================================================
35
- // Ollama Detection
36
- // ============================================================================
37
- /**
38
- * Check if OLLAMA_ENABLED is explicitly set (legacy support).
39
- * Also detects hardware for model recommendation.
40
- */
41
28
  function checkOllamaExplicit() {
42
29
  if (process.env['OLLAMA_ENABLED'] === 'true') {
43
30
  const sysProfile = detectSystem();
44
31
  const models = recommendOllamaModels(sysProfile);
45
32
  log.info('Ollama explicitly enabled via OLLAMA_ENABLED', { tier: models.tier });
46
- return { provider: 'ollama', source: 'OLLAMA_ENABLED=true', isFree: false, ollamaModels: models };
33
+ return {
34
+ provider: 'ollama',
35
+ source: 'OLLAMA_ENABLED=true',
36
+ isFree: false,
37
+ ollamaModels: models,
38
+ };
47
39
  }
48
40
  return null;
49
41
  }
50
- /**
51
- * Probe Ollama at localhost:11434 with a fast health check.
52
- * If Ollama is running AND has at least one model pulled, detect system
53
- * hardware and recommend the best available models.
54
- * Returns within 500ms regardless of whether Ollama is running.
55
- */
56
42
  async function probeOllama() {
57
- // Strip trailing path segments (/api, /v1, etc.) — the probe needs the raw Ollama host.
58
- // Users may set OLLAMA_BASE_URL to "http://localhost:11434/api" or "/v1" for the AI SDK,
59
- // but the native Ollama API lives at the root (e.g. /api/tags, not /api/api/tags).
60
43
  const rawUrl = process.env['OLLAMA_BASE_URL'] || 'http://localhost:11434';
61
44
  const baseUrl = rawUrl.replace(/\/(api|v1)\/?$/, '');
62
45
  const controller = new AbortController();
@@ -69,17 +52,14 @@ async function probeOllama() {
69
52
  clearTimeout(timeout);
70
53
  if (!response.ok)
71
54
  return null;
72
- // Parse which models are actually installed
73
55
  const data = (await response.json());
74
56
  const installedModels = (data.models || []).map((m) => m.name.toLowerCase());
75
57
  if (installedModels.length === 0) {
76
58
  log.info('Ollama running but no models installed', { baseUrl });
77
59
  return null;
78
60
  }
79
- // Detect hardware and recommend the best model from what's actually installed
80
61
  const sysProfile = detectSystem();
81
62
  const recommendation = recommendOllamaModels(sysProfile, installedModels);
82
- // If no usable models found (all sub-8b, no cloud), skip Ollama
83
63
  if (recommendation.noUsableModels) {
84
64
  _ollamaSkipReason =
85
65
  'Ollama running but no 8b+ model found.\n' +
@@ -109,54 +89,33 @@ async function probeOllama() {
109
89
  return null;
110
90
  }
111
91
  }
112
- // ============================================================================
113
- // Free Tier Fallback
114
- // ============================================================================
115
92
  function getFreeTier() {
116
93
  log.info('Using agntk free tier');
117
- const result = { provider: 'agntk-free', source: 'free tier (Cerebras)', isFree: true };
94
+ const result = {
95
+ provider: 'agntk-free',
96
+ source: 'free tier (Cerebras)',
97
+ isFree: true,
98
+ };
118
99
  if (_ollamaSkipReason) {
119
100
  result.ollamaSkipReason = _ollamaSkipReason;
120
101
  }
121
102
  return result;
122
103
  }
123
- // ============================================================================
124
- // Main Cascade
125
- // ============================================================================
126
- /**
127
- * Resolve the best available provider.
128
- *
129
- * Cascade:
130
- * 1. BYOK keys (sync, instant)
131
- * 2. Explicit OLLAMA_ENABLED (sync, instant)
132
- * 3. Ollama auto-detect probe (async, <=500ms)
133
- * 4. Free tier fallback (sync, instant)
134
- */
135
104
  export async function resolveProvider() {
136
105
  _ollamaSkipReason = null;
137
- // 1. BYOK — instant
138
106
  const byok = checkBYOK();
139
107
  if (byok)
140
108
  return byok;
141
- // 2. Explicit Ollama flag — instant
142
109
  const ollamaExplicit = checkOllamaExplicit();
143
110
  if (ollamaExplicit)
144
111
  return ollamaExplicit;
145
- // 3. Ollama auto-detect — max 500ms
146
112
  const ollamaProbe = await probeOllama();
147
113
  if (ollamaProbe)
148
114
  return ollamaProbe;
149
- // 4. Free tier — always available
150
115
  return getFreeTier();
151
116
  }
152
- // ============================================================================
153
- // Caching
154
- // ============================================================================
155
117
  let cachedProvider = null;
156
118
  let resolvePromise = null;
157
- /**
158
- * Get the resolved provider, caching for the process lifetime.
159
- */
160
119
  export async function getResolvedProvider() {
161
120
  if (cachedProvider)
162
121
  return cachedProvider;
@@ -168,9 +127,6 @@ export async function getResolvedProvider() {
168
127
  });
169
128
  return resolvePromise;
170
129
  }
171
- /**
172
- * Reset the cached provider (for testing).
173
- */
174
130
  export function resetProviderCache() {
175
131
  cachedProvider = null;
176
132
  resolvePromise = null;
@@ -1 +1 @@
1
- {"version":3,"file":"provider-resolver.js","sourceRoot":"","sources":["../src/provider-resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider-resolver.js","sourceRoot":"","sources":["../src/provider-resolver.ts"],"names":[],"mappings":"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"}
@@ -1,51 +1,17 @@
1
- /**
2
- * @agntk/core - Reflection Strategies
3
- *
4
- * Implements reflection strategies that inject goal-state prompts between
5
- * agent steps, improving multi-step task completion (+27.7% success in research).
6
- *
7
- * Uses the AI SDK's `prepareStep` hook to augment the system prompt with
8
- * reflection instructions — no extra LLM calls required.
9
- */
10
1
  import type { Tool, StepResult } from 'ai';
11
- /** Available reflection strategies. */
12
2
  export type ReflectionStrategy = 'none' | 'reflact' | 'periodic';
13
- /** Configuration for the reflection system. */
14
3
  export interface ReflectionConfig {
15
- /** Which strategy to use. Default: 'none' */
16
4
  strategy: ReflectionStrategy;
17
- /** For 'periodic' strategy: reflect every N steps. Default: 3 */
18
5
  frequency?: number;
19
- /** Custom reflection prompt template. Uses {goal} placeholder. */
20
6
  promptTemplate?: string;
21
7
  }
22
- /** Input to the prepareStep hook from the AI SDK. */
23
8
  export interface PrepareStepInput<TOOLS extends Record<string, Tool> = Record<string, Tool>> {
24
9
  steps: Array<StepResult<TOOLS>>;
25
10
  stepNumber: number;
26
11
  }
27
- /**
28
- * Build a reflection prompt for the given step, or return undefined if
29
- * no reflection should be injected at this step.
30
- */
31
12
  export declare function buildReflectionPrompt(config: ReflectionConfig, stepNumber: number): string | undefined;
32
- /**
33
- * Create a `prepareStep` function for the AI SDK that injects reflection
34
- * prompts into the system message at appropriate steps.
35
- *
36
- * @param baseSystem - The original system prompt, or a getter that returns
37
- * the current system prompt. Use a getter (`() => prompt`) when the prompt
38
- * is mutated after creation (e.g. memory injection during ensureInit) so
39
- * that reflection always uses the latest value (fixes DESIGN-001 race).
40
- * @param config - The reflection configuration.
41
- * @returns A prepareStep function compatible with AI SDK's ToolLoopAgent.
42
- */
43
13
  export declare function createReflectionPrepareStep<TOOLS extends Record<string, Tool> = Record<string, Tool>>(baseSystem: string | (() => string), config: ReflectionConfig): (input: PrepareStepInput<TOOLS>) => {
44
14
  system?: string;
45
15
  } | undefined;
46
- /**
47
- * Estimate the token overhead of a reflection injection.
48
- * Rough estimate: ~4 chars per token for English text.
49
- */
50
16
  export declare function estimateReflectionTokens(config: ReflectionConfig): number;
51
17
  //# sourceMappingURL=reflection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"reflection.d.ts","sourceRoot":"","sources":["../src/reflection.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAM3C,uCAAuC;AACvC,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;AAEjE,+CAA+C;AAC/C,MAAM,WAAW,gBAAgB;IAC/B,6CAA6C;IAC7C,QAAQ,EAAE,kBAAkB,CAAC;IAE7B,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,kEAAkE;IAClE,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,qDAAqD;AACrD,MAAM,WAAW,gBAAgB,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC;IACzF,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;CACpB;AA4BD;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,gBAAgB,EACxB,UAAU,EAAE,MAAM,GACjB,MAAM,GAAG,SAAS,CAqBpB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EACnG,UAAU,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,EACnC,MAAM,EAAE,gBAAgB,GACvB,CAAC,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,KAAK;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAkBrE;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAQzE"}
1
+ {"version":3,"file":"reflection.d.ts","sourceRoot":"","sources":["../src/reflection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAE3C,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;AAEjE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,kBAAkB,CAAC;IAE7B,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,gBAAgB,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC;IACzF,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;CACpB;AAoBD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,gBAAgB,EACxB,UAAU,EAAE,MAAM,GACjB,MAAM,GAAG,SAAS,CAoBpB;AAED,wBAAgB,2BAA2B,CACzC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EAEzD,UAAU,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,EACnC,MAAM,EAAE,gBAAgB,GACvB,CAAC,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,KAAK;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAerE;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CASzE"}
@@ -1,15 +1,3 @@
1
- /**
2
- * @agntk/core - Reflection Strategies
3
- *
4
- * Implements reflection strategies that inject goal-state prompts between
5
- * agent steps, improving multi-step task completion (+27.7% success in research).
6
- *
7
- * Uses the AI SDK's `prepareStep` hook to augment the system prompt with
8
- * reflection instructions — no extra LLM calls required.
9
- */
10
- // ============================================================================
11
- // Defaults
12
- // ============================================================================
13
1
  const DEFAULT_FREQUENCY = 3;
14
2
  const DEFAULT_REFLACT_TEMPLATE = `<reflection>
15
3
  Before proceeding, reflect on your progress:
@@ -25,46 +13,25 @@ Checkpoint — pause and evaluate:
25
13
  3. Identify any dead ends or wasted steps.
26
14
  4. Plan your next 2-3 actions to reach completion efficiently.
27
15
  </reflection>`;
28
- // ============================================================================
29
- // Reflection Builder
30
- // ============================================================================
31
- /**
32
- * Build a reflection prompt for the given step, or return undefined if
33
- * no reflection should be injected at this step.
34
- */
35
16
  export function buildReflectionPrompt(config, stepNumber) {
36
17
  const { strategy } = config;
37
18
  if (strategy === 'none') {
38
19
  return undefined;
39
20
  }
40
21
  if (strategy === 'reflact') {
41
- // reflact: inject after every step except the first (step 0 = initial call)
42
22
  if (stepNumber === 0)
43
23
  return undefined;
44
24
  return config.promptTemplate ?? DEFAULT_REFLACT_TEMPLATE;
45
25
  }
46
26
  if (strategy === 'periodic') {
47
27
  const frequency = config.frequency ?? DEFAULT_FREQUENCY;
48
- // Inject at step N, 2N, 3N... (never step 0)
49
28
  if (stepNumber === 0 || stepNumber % frequency !== 0)
50
29
  return undefined;
51
30
  return config.promptTemplate ?? DEFAULT_PERIODIC_TEMPLATE;
52
31
  }
53
32
  return undefined;
54
33
  }
55
- /**
56
- * Create a `prepareStep` function for the AI SDK that injects reflection
57
- * prompts into the system message at appropriate steps.
58
- *
59
- * @param baseSystem - The original system prompt, or a getter that returns
60
- * the current system prompt. Use a getter (`() => prompt`) when the prompt
61
- * is mutated after creation (e.g. memory injection during ensureInit) so
62
- * that reflection always uses the latest value (fixes DESIGN-001 race).
63
- * @param config - The reflection configuration.
64
- * @returns A prepareStep function compatible with AI SDK's ToolLoopAgent.
65
- */
66
34
  export function createReflectionPrepareStep(baseSystem, config) {
67
- // If no reflection, return a no-op
68
35
  if (config.strategy === 'none') {
69
36
  return () => undefined;
70
37
  }
@@ -72,25 +39,18 @@ export function createReflectionPrepareStep(baseSystem, config) {
72
39
  const reflection = buildReflectionPrompt(config, stepNumber);
73
40
  if (!reflection)
74
41
  return undefined;
75
- // Resolve base system at call-time so memory/context injected after
76
- // createReflectionPrepareStep() is called is always picked up.
77
42
  const base = typeof baseSystem === 'function' ? baseSystem() : baseSystem;
78
43
  return {
79
44
  system: `${base}\n\n${reflection}`,
80
45
  };
81
46
  };
82
47
  }
83
- /**
84
- * Estimate the token overhead of a reflection injection.
85
- * Rough estimate: ~4 chars per token for English text.
86
- */
87
48
  export function estimateReflectionTokens(config) {
88
49
  const template = config.strategy === 'reflact'
89
50
  ? (config.promptTemplate ?? DEFAULT_REFLACT_TEMPLATE)
90
51
  : config.strategy === 'periodic'
91
52
  ? (config.promptTemplate ?? DEFAULT_PERIODIC_TEMPLATE)
92
53
  : '';
93
- // ~4 chars per token, rough estimate
94
54
  return Math.ceil(template.length / 4);
95
55
  }
96
56
  //# sourceMappingURL=reflection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reflection.js","sourceRoot":"","sources":["../src/reflection.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA6BH,+EAA+E;AAC/E,WAAW;AACX,+EAA+E;AAE/E,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAE5B,MAAM,wBAAwB,GAAG;;;;;;cAMnB,CAAC;AAEf,MAAM,yBAAyB,GAAG;;;;;;cAMpB,CAAC;AAEf,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAAwB,EACxB,UAAkB;IAElB,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAE5B,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,4EAA4E;QAC5E,IAAI,UAAU,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QACvC,OAAO,MAAM,CAAC,cAAc,IAAI,wBAAwB,CAAC;IAC3D,CAAC;IAED,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,iBAAiB,CAAC;QACxD,6CAA6C;QAC7C,IAAI,UAAU,KAAK,CAAC,IAAI,UAAU,GAAG,SAAS,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QACvE,OAAO,MAAM,CAAC,cAAc,IAAI,yBAAyB,CAAC;IAC5D,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,2BAA2B,CACzC,UAAmC,EACnC,MAAwB;IAExB,mCAAmC;IACnC,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;QAC/B,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC;IACzB,CAAC;IAED,OAAO,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE;QACxB,MAAM,UAAU,GAAG,qBAAqB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAC7D,IAAI,CAAC,UAAU;YAAE,OAAO,SAAS,CAAC;QAElC,oEAAoE;QACpE,+DAA+D;QAC/D,MAAM,IAAI,GAAG,OAAO,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;QAE1E,OAAO;YACL,MAAM,EAAE,GAAG,IAAI,OAAO,UAAU,EAAE;SACnC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAAwB;IAC/D,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,KAAK,SAAS;QAC5C,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,IAAI,wBAAwB,CAAC;QACrD,CAAC,CAAC,MAAM,CAAC,QAAQ,KAAK,UAAU;YAChC,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,IAAI,yBAAyB,CAAC;YACtD,CAAC,CAAC,EAAE,CAAC;IACP,qCAAqC;IACrC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACxC,CAAC"}
1
+ {"version":3,"file":"reflection.js","sourceRoot":"","sources":["../src/reflection.ts"],"names":[],"mappings":"AAiBA,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAE5B,MAAM,wBAAwB,GAAG;;;;;;cAMnB,CAAC;AAEf,MAAM,yBAAyB,GAAG;;;;;;cAMpB,CAAC;AAEf,MAAM,UAAU,qBAAqB,CACnC,MAAwB,EACxB,UAAkB;IAElB,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAE5B,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,IAAI,UAAU,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QACvC,OAAO,MAAM,CAAC,cAAc,IAAI,wBAAwB,CAAC;IAC3D,CAAC;IAED,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,iBAAiB,CAAC;QAExD,IAAI,UAAU,KAAK,CAAC,IAAI,UAAU,GAAG,SAAS,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QACvE,OAAO,MAAM,CAAC,cAAc,IAAI,yBAAyB,CAAC;IAC5D,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,2BAA2B,CAGzC,UAAmC,EACnC,MAAwB;IAExB,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;QAC/B,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC;IACzB,CAAC;IAED,OAAO,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE;QACxB,MAAM,UAAU,GAAG,qBAAqB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAC7D,IAAI,CAAC,UAAU;YAAE,OAAO,SAAS,CAAC;QAElC,MAAM,IAAI,GAAG,OAAO,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;QAE1E,OAAO;YACL,MAAM,EAAE,GAAG,IAAI,OAAO,UAAU,EAAE;SACnC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,MAAwB;IAC/D,MAAM,QAAQ,GACZ,MAAM,CAAC,QAAQ,KAAK,SAAS;QAC3B,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,IAAI,wBAAwB,CAAC;QACrD,CAAC,CAAC,MAAM,CAAC,QAAQ,KAAK,UAAU;YAC9B,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,IAAI,yBAAyB,CAAC;YACtD,CAAC,CAAC,EAAE,CAAC;IAEX,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACxC,CAAC"}
@@ -1,6 +1,3 @@
1
- /**
2
- * @fileoverview Skills module public API.
3
- */
4
1
  export type { SkillMeta, SkillContent, SkillsConfig, SkillRequirements } from './types.js';
5
2
  export { type ParsedSkillFrontmatter, type SkillSearchResult, discoverSkills, loadSkillContent, loadSkills, loadSkillsFromPaths, parseSkillFrontmatter, buildSkillsSystemPrompt, searchSkills, filterEligibleSkills, isSkillEligible, } from './loader.js';
6
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/skills/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AACxF,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,YAAY,EACZ,oBAAoB,EACpB,eAAe,GAChB,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/skills/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AACxF,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,YAAY,EACZ,oBAAoB,EACpB,eAAe,GAChB,MAAM,UAAU,CAAC"}