clementine-agent 1.18.7 → 1.18.9

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 (368) hide show
  1. package/dist/agent/assistant.d.ts +4 -2
  2. package/dist/agent/assistant.js +108 -30
  3. package/dist/agent/self-improve.d.ts +34 -0
  4. package/dist/agent/self-improve.js +282 -42
  5. package/dist/gateway/router.js +1 -0
  6. package/dist/memory/store.d.ts +12 -0
  7. package/dist/memory/store.js +51 -0
  8. package/dist/tools/shared.d.ts +12 -0
  9. package/dist/types.d.ts +3 -1
  10. package/package.json +1 -1
  11. package/dist/agent/advisor-rules/context.d.ts.map +0 -1
  12. package/dist/agent/advisor-rules/context.js.map +0 -1
  13. package/dist/agent/advisor-rules/engine.d.ts.map +0 -1
  14. package/dist/agent/advisor-rules/engine.js.map +0 -1
  15. package/dist/agent/advisor-rules/loader.d.ts.map +0 -1
  16. package/dist/agent/advisor-rules/loader.js.map +0 -1
  17. package/dist/agent/advisor-rules/types.d.ts.map +0 -1
  18. package/dist/agent/advisor-rules/types.js.map +0 -1
  19. package/dist/agent/agent-manager.d.ts.map +0 -1
  20. package/dist/agent/agent-manager.js.map +0 -1
  21. package/dist/agent/assistant.d.ts.map +0 -1
  22. package/dist/agent/assistant.js.map +0 -1
  23. package/dist/agent/auto-skills.d.ts.map +0 -1
  24. package/dist/agent/auto-skills.js.map +0 -1
  25. package/dist/agent/auto-update.d.ts.map +0 -1
  26. package/dist/agent/auto-update.js.map +0 -1
  27. package/dist/agent/background-tasks.d.ts.map +0 -1
  28. package/dist/agent/background-tasks.js.map +0 -1
  29. package/dist/agent/brain-digest.d.ts.map +0 -1
  30. package/dist/agent/brain-digest.js.map +0 -1
  31. package/dist/agent/budget-enforcement.d.ts.map +0 -1
  32. package/dist/agent/budget-enforcement.js.map +0 -1
  33. package/dist/agent/complexity-classifier.d.ts.map +0 -1
  34. package/dist/agent/complexity-classifier.js.map +0 -1
  35. package/dist/agent/contradiction-validator.d.ts.map +0 -1
  36. package/dist/agent/contradiction-validator.js.map +0 -1
  37. package/dist/agent/crash-forensics.d.ts.map +0 -1
  38. package/dist/agent/crash-forensics.js.map +0 -1
  39. package/dist/agent/daily-planner.d.ts.map +0 -1
  40. package/dist/agent/daily-planner.js.map +0 -1
  41. package/dist/agent/decision-reflection.d.ts.map +0 -1
  42. package/dist/agent/decision-reflection.js.map +0 -1
  43. package/dist/agent/execution-advisor.d.ts.map +0 -1
  44. package/dist/agent/execution-advisor.js.map +0 -1
  45. package/dist/agent/hooks.d.ts.map +0 -1
  46. package/dist/agent/hooks.js.map +0 -1
  47. package/dist/agent/insight-engine.d.ts.map +0 -1
  48. package/dist/agent/insight-engine.js.map +0 -1
  49. package/dist/agent/intent-classifier.d.ts.map +0 -1
  50. package/dist/agent/intent-classifier.js.map +0 -1
  51. package/dist/agent/link-extractor.d.ts.map +0 -1
  52. package/dist/agent/link-extractor.js.map +0 -1
  53. package/dist/agent/mcp-bridge.d.ts.map +0 -1
  54. package/dist/agent/mcp-bridge.js.map +0 -1
  55. package/dist/agent/mcp-circuit-breaker.d.ts.map +0 -1
  56. package/dist/agent/mcp-circuit-breaker.js.map +0 -1
  57. package/dist/agent/mcp-schemas.d.ts.map +0 -1
  58. package/dist/agent/mcp-schemas.js.map +0 -1
  59. package/dist/agent/metacognition.d.ts.map +0 -1
  60. package/dist/agent/metacognition.js.map +0 -1
  61. package/dist/agent/orchestrator.d.ts.map +0 -1
  62. package/dist/agent/orchestrator.js.map +0 -1
  63. package/dist/agent/proactive-engine.d.ts.map +0 -1
  64. package/dist/agent/proactive-engine.js.map +0 -1
  65. package/dist/agent/proactive-ledger.d.ts.map +0 -1
  66. package/dist/agent/proactive-ledger.js.map +0 -1
  67. package/dist/agent/prompt-cache.d.ts.map +0 -1
  68. package/dist/agent/prompt-cache.js.map +0 -1
  69. package/dist/agent/prompt-evolver.d.ts.map +0 -1
  70. package/dist/agent/prompt-evolver.js.map +0 -1
  71. package/dist/agent/prompt-overrides/loader.d.ts.map +0 -1
  72. package/dist/agent/prompt-overrides/loader.js.map +0 -1
  73. package/dist/agent/prompt-overrides/types.d.ts.map +0 -1
  74. package/dist/agent/prompt-overrides/types.js.map +0 -1
  75. package/dist/agent/role-scaffolds.d.ts.map +0 -1
  76. package/dist/agent/role-scaffolds.js.map +0 -1
  77. package/dist/agent/route-classifier.d.ts.map +0 -1
  78. package/dist/agent/route-classifier.js.map +0 -1
  79. package/dist/agent/safe-restart.d.ts.map +0 -1
  80. package/dist/agent/safe-restart.js.map +0 -1
  81. package/dist/agent/self-improve-loop.d.ts.map +0 -1
  82. package/dist/agent/self-improve-loop.js.map +0 -1
  83. package/dist/agent/self-improve.d.ts.map +0 -1
  84. package/dist/agent/self-improve.js.map +0 -1
  85. package/dist/agent/session-event-log.d.ts.map +0 -1
  86. package/dist/agent/session-event-log.js.map +0 -1
  87. package/dist/agent/session-store-adapter.d.ts.map +0 -1
  88. package/dist/agent/session-store-adapter.js.map +0 -1
  89. package/dist/agent/skill-extractor.d.ts.map +0 -1
  90. package/dist/agent/skill-extractor.js.map +0 -1
  91. package/dist/agent/source-mods.d.ts.map +0 -1
  92. package/dist/agent/source-mods.js.map +0 -1
  93. package/dist/agent/source-preflight.d.ts.map +0 -1
  94. package/dist/agent/source-preflight.js.map +0 -1
  95. package/dist/agent/stall-guard.d.ts.map +0 -1
  96. package/dist/agent/stall-guard.js.map +0 -1
  97. package/dist/agent/strategic-planner.d.ts.map +0 -1
  98. package/dist/agent/strategic-planner.js.map +0 -1
  99. package/dist/agent/team-bus.d.ts.map +0 -1
  100. package/dist/agent/team-bus.js.map +0 -1
  101. package/dist/agent/team-router.d.ts.map +0 -1
  102. package/dist/agent/team-router.js.map +0 -1
  103. package/dist/agent/tool-loop-detector.d.ts.map +0 -1
  104. package/dist/agent/tool-loop-detector.js.map +0 -1
  105. package/dist/agent/tool-router.d.ts.map +0 -1
  106. package/dist/agent/tool-router.js.map +0 -1
  107. package/dist/agent/turn-policy.d.ts.map +0 -1
  108. package/dist/agent/turn-policy.js.map +0 -1
  109. package/dist/agent/webhook-actions.d.ts.map +0 -1
  110. package/dist/agent/webhook-actions.js.map +0 -1
  111. package/dist/agent/workflow-runner.d.ts.map +0 -1
  112. package/dist/agent/workflow-runner.js.map +0 -1
  113. package/dist/agent/workflow-variables.d.ts.map +0 -1
  114. package/dist/agent/workflow-variables.js.map +0 -1
  115. package/dist/analytics/tool-usage.d.ts.map +0 -1
  116. package/dist/analytics/tool-usage.js.map +0 -1
  117. package/dist/brain/adapters/common.d.ts.map +0 -1
  118. package/dist/brain/adapters/common.js.map +0 -1
  119. package/dist/brain/adapters/csv.d.ts.map +0 -1
  120. package/dist/brain/adapters/csv.js.map +0 -1
  121. package/dist/brain/adapters/docx.d.ts.map +0 -1
  122. package/dist/brain/adapters/docx.js.map +0 -1
  123. package/dist/brain/adapters/email.d.ts.map +0 -1
  124. package/dist/brain/adapters/email.js.map +0 -1
  125. package/dist/brain/adapters/index.d.ts.map +0 -1
  126. package/dist/brain/adapters/index.js.map +0 -1
  127. package/dist/brain/adapters/json.d.ts.map +0 -1
  128. package/dist/brain/adapters/json.js.map +0 -1
  129. package/dist/brain/adapters/markdown.d.ts.map +0 -1
  130. package/dist/brain/adapters/markdown.js.map +0 -1
  131. package/dist/brain/adapters/pdf.d.ts.map +0 -1
  132. package/dist/brain/adapters/pdf.js.map +0 -1
  133. package/dist/brain/adapters/rest.d.ts.map +0 -1
  134. package/dist/brain/adapters/rest.js.map +0 -1
  135. package/dist/brain/batch-summary.d.ts.map +0 -1
  136. package/dist/brain/batch-summary.js.map +0 -1
  137. package/dist/brain/connector-recipes.d.ts.map +0 -1
  138. package/dist/brain/connector-recipes.js.map +0 -1
  139. package/dist/brain/format-detector.d.ts.map +0 -1
  140. package/dist/brain/format-detector.js.map +0 -1
  141. package/dist/brain/graph-extractor.d.ts.map +0 -1
  142. package/dist/brain/graph-extractor.js.map +0 -1
  143. package/dist/brain/ingest-scheduler.d.ts.map +0 -1
  144. package/dist/brain/ingest-scheduler.js.map +0 -1
  145. package/dist/brain/ingestion-pipeline.d.ts.map +0 -1
  146. package/dist/brain/ingestion-pipeline.js.map +0 -1
  147. package/dist/brain/intelligence.d.ts.map +0 -1
  148. package/dist/brain/intelligence.js.map +0 -1
  149. package/dist/brain/llm-client.d.ts.map +0 -1
  150. package/dist/brain/llm-client.js.map +0 -1
  151. package/dist/brain/source-registry.d.ts.map +0 -1
  152. package/dist/brain/source-registry.js.map +0 -1
  153. package/dist/channels/discord-agent-bot.d.ts.map +0 -1
  154. package/dist/channels/discord-agent-bot.js.map +0 -1
  155. package/dist/channels/discord-bot-manager.d.ts.map +0 -1
  156. package/dist/channels/discord-bot-manager.js.map +0 -1
  157. package/dist/channels/discord-utils.d.ts.map +0 -1
  158. package/dist/channels/discord-utils.js.map +0 -1
  159. package/dist/channels/discord.d.ts.map +0 -1
  160. package/dist/channels/discord.js.map +0 -1
  161. package/dist/channels/slack-agent-bot.d.ts.map +0 -1
  162. package/dist/channels/slack-agent-bot.js.map +0 -1
  163. package/dist/channels/slack-bot-manager.d.ts.map +0 -1
  164. package/dist/channels/slack-bot-manager.js.map +0 -1
  165. package/dist/channels/slack-utils.d.ts.map +0 -1
  166. package/dist/channels/slack-utils.js.map +0 -1
  167. package/dist/channels/slack.d.ts.map +0 -1
  168. package/dist/channels/slack.js.map +0 -1
  169. package/dist/channels/telegram.d.ts.map +0 -1
  170. package/dist/channels/telegram.js.map +0 -1
  171. package/dist/channels/webhook.d.ts.map +0 -1
  172. package/dist/channels/webhook.js.map +0 -1
  173. package/dist/channels/whatsapp.d.ts.map +0 -1
  174. package/dist/channels/whatsapp.js.map +0 -1
  175. package/dist/cli/browser.d.ts.map +0 -1
  176. package/dist/cli/browser.js.map +0 -1
  177. package/dist/cli/chat.d.ts.map +0 -1
  178. package/dist/cli/chat.js.map +0 -1
  179. package/dist/cli/cron.d.ts.map +0 -1
  180. package/dist/cli/cron.js.map +0 -1
  181. package/dist/cli/dashboard.d.ts.map +0 -1
  182. package/dist/cli/dashboard.js.map +0 -1
  183. package/dist/cli/index.d.ts.map +0 -1
  184. package/dist/cli/index.js.map +0 -1
  185. package/dist/cli/ingest.d.ts.map +0 -1
  186. package/dist/cli/ingest.js.map +0 -1
  187. package/dist/cli/routes/delegations.d.ts.map +0 -1
  188. package/dist/cli/routes/delegations.js.map +0 -1
  189. package/dist/cli/routes/digest.d.ts.map +0 -1
  190. package/dist/cli/routes/digest.js.map +0 -1
  191. package/dist/cli/routes/goals.d.ts.map +0 -1
  192. package/dist/cli/routes/goals.js.map +0 -1
  193. package/dist/cli/routes/workflows.d.ts.map +0 -1
  194. package/dist/cli/routes/workflows.js.map +0 -1
  195. package/dist/cli/setup.d.ts.map +0 -1
  196. package/dist/cli/setup.js.map +0 -1
  197. package/dist/cli/tunnel.d.ts.map +0 -1
  198. package/dist/cli/tunnel.js.map +0 -1
  199. package/dist/cli/version-check.d.ts.map +0 -1
  200. package/dist/cli/version-check.js.map +0 -1
  201. package/dist/config/clementine-json.d.ts.map +0 -1
  202. package/dist/config/clementine-json.js.map +0 -1
  203. package/dist/config/config-doctor.d.ts.map +0 -1
  204. package/dist/config/config-doctor.js.map +0 -1
  205. package/dist/config/effective-config.d.ts.map +0 -1
  206. package/dist/config/effective-config.js.map +0 -1
  207. package/dist/config/env-parser.d.ts.map +0 -1
  208. package/dist/config/env-parser.js.map +0 -1
  209. package/dist/config/harden-permissions.d.ts.map +0 -1
  210. package/dist/config/harden-permissions.js.map +0 -1
  211. package/dist/config/integrations-registry.d.ts.map +0 -1
  212. package/dist/config/integrations-registry.js.map +0 -1
  213. package/dist/config/keychain-first-run-wizard.d.ts.map +0 -1
  214. package/dist/config/keychain-first-run-wizard.js.map +0 -1
  215. package/dist/config/keychain-fix-acl.d.ts.map +0 -1
  216. package/dist/config/keychain-fix-acl.js.map +0 -1
  217. package/dist/config/migrate-from-keychain.d.ts.map +0 -1
  218. package/dist/config/migrate-from-keychain.js.map +0 -1
  219. package/dist/config/migrate-keychain.d.ts.map +0 -1
  220. package/dist/config/migrate-keychain.js.map +0 -1
  221. package/dist/config.d.ts.map +0 -1
  222. package/dist/config.js.map +0 -1
  223. package/dist/dashboard/builder/dry-run.d.ts.map +0 -1
  224. package/dist/dashboard/builder/dry-run.js.map +0 -1
  225. package/dist/dashboard/builder/events.d.ts.map +0 -1
  226. package/dist/dashboard/builder/events.js.map +0 -1
  227. package/dist/dashboard/builder/mcp-invoke.d.ts.map +0 -1
  228. package/dist/dashboard/builder/mcp-invoke.js.map +0 -1
  229. package/dist/dashboard/builder/runner.d.ts.map +0 -1
  230. package/dist/dashboard/builder/runner.js.map +0 -1
  231. package/dist/dashboard/builder/serializer.d.ts.map +0 -1
  232. package/dist/dashboard/builder/serializer.js.map +0 -1
  233. package/dist/dashboard/builder/snapshots.d.ts.map +0 -1
  234. package/dist/dashboard/builder/snapshots.js.map +0 -1
  235. package/dist/dashboard/builder/validation.d.ts.map +0 -1
  236. package/dist/dashboard/builder/validation.js.map +0 -1
  237. package/dist/events/bus.d.ts.map +0 -1
  238. package/dist/events/bus.js.map +0 -1
  239. package/dist/gateway/agent-heartbeat-manager.d.ts.map +0 -1
  240. package/dist/gateway/agent-heartbeat-manager.js.map +0 -1
  241. package/dist/gateway/agent-heartbeat-scheduler.d.ts.map +0 -1
  242. package/dist/gateway/agent-heartbeat-scheduler.js.map +0 -1
  243. package/dist/gateway/claim-tracker.d.ts.map +0 -1
  244. package/dist/gateway/claim-tracker.js.map +0 -1
  245. package/dist/gateway/cron-scheduler.d.ts.map +0 -1
  246. package/dist/gateway/cron-scheduler.js.map +0 -1
  247. package/dist/gateway/delivery-queue.d.ts.map +0 -1
  248. package/dist/gateway/delivery-queue.js.map +0 -1
  249. package/dist/gateway/failure-diagnostics.d.ts.map +0 -1
  250. package/dist/gateway/failure-diagnostics.js.map +0 -1
  251. package/dist/gateway/failure-monitor.d.ts.map +0 -1
  252. package/dist/gateway/failure-monitor.js.map +0 -1
  253. package/dist/gateway/fix-applier.d.ts.map +0 -1
  254. package/dist/gateway/fix-applier.js.map +0 -1
  255. package/dist/gateway/fix-verification.d.ts.map +0 -1
  256. package/dist/gateway/fix-verification.js.map +0 -1
  257. package/dist/gateway/heartbeat-scheduler.d.ts.map +0 -1
  258. package/dist/gateway/heartbeat-scheduler.js.map +0 -1
  259. package/dist/gateway/heartbeat.d.ts.map +0 -1
  260. package/dist/gateway/heartbeat.js.map +0 -1
  261. package/dist/gateway/lanes.d.ts.map +0 -1
  262. package/dist/gateway/lanes.js.map +0 -1
  263. package/dist/gateway/notifications.d.ts.map +0 -1
  264. package/dist/gateway/notifications.js.map +0 -1
  265. package/dist/gateway/outcome-grader.d.ts.map +0 -1
  266. package/dist/gateway/outcome-grader.js.map +0 -1
  267. package/dist/gateway/router.d.ts.map +0 -1
  268. package/dist/gateway/router.js.map +0 -1
  269. package/dist/index.d.ts.map +0 -1
  270. package/dist/index.js.map +0 -1
  271. package/dist/integrations/composio/client.d.ts.map +0 -1
  272. package/dist/integrations/composio/client.js.map +0 -1
  273. package/dist/integrations/composio/mcp-bridge.d.ts.map +0 -1
  274. package/dist/integrations/composio/mcp-bridge.js.map +0 -1
  275. package/dist/integrations/tool-preferences.d.ts.map +0 -1
  276. package/dist/integrations/tool-preferences.js.map +0 -1
  277. package/dist/memory/chunker.d.ts.map +0 -1
  278. package/dist/memory/chunker.js.map +0 -1
  279. package/dist/memory/consolidation.d.ts.map +0 -1
  280. package/dist/memory/consolidation.js.map +0 -1
  281. package/dist/memory/context-assembler.d.ts.map +0 -1
  282. package/dist/memory/context-assembler.js.map +0 -1
  283. package/dist/memory/embeddings.d.ts.map +0 -1
  284. package/dist/memory/embeddings.js.map +0 -1
  285. package/dist/memory/graph-store.d.ts.map +0 -1
  286. package/dist/memory/graph-store.js.map +0 -1
  287. package/dist/memory/hot-cache.d.ts.map +0 -1
  288. package/dist/memory/hot-cache.js.map +0 -1
  289. package/dist/memory/integrity.d.ts.map +0 -1
  290. package/dist/memory/integrity.js.map +0 -1
  291. package/dist/memory/maintenance.d.ts.map +0 -1
  292. package/dist/memory/maintenance.js.map +0 -1
  293. package/dist/memory/mmr.d.ts.map +0 -1
  294. package/dist/memory/mmr.js.map +0 -1
  295. package/dist/memory/search.d.ts.map +0 -1
  296. package/dist/memory/search.js.map +0 -1
  297. package/dist/memory/seed-user-model.d.ts.map +0 -1
  298. package/dist/memory/seed-user-model.js.map +0 -1
  299. package/dist/memory/store.d.ts.map +0 -1
  300. package/dist/memory/store.js.map +0 -1
  301. package/dist/memory/write-queue.d.ts.map +0 -1
  302. package/dist/memory/write-queue.js.map +0 -1
  303. package/dist/secrets/auth-profiles.d.ts.map +0 -1
  304. package/dist/secrets/auth-profiles.js.map +0 -1
  305. package/dist/secrets/keychain.d.ts.map +0 -1
  306. package/dist/secrets/keychain.js.map +0 -1
  307. package/dist/secrets/resolver.d.ts.map +0 -1
  308. package/dist/secrets/resolver.js.map +0 -1
  309. package/dist/secrets/sensitivity.d.ts.map +0 -1
  310. package/dist/secrets/sensitivity.js.map +0 -1
  311. package/dist/security/integrity.d.ts.map +0 -1
  312. package/dist/security/integrity.js.map +0 -1
  313. package/dist/security/patterns.d.ts.map +0 -1
  314. package/dist/security/patterns.js.map +0 -1
  315. package/dist/security/redact.d.ts.map +0 -1
  316. package/dist/security/redact.js.map +0 -1
  317. package/dist/security/scanner.d.ts.map +0 -1
  318. package/dist/security/scanner.js.map +0 -1
  319. package/dist/tools/admin-tools.d.ts.map +0 -1
  320. package/dist/tools/admin-tools.js.map +0 -1
  321. package/dist/tools/agent-heartbeat-tools.d.ts.map +0 -1
  322. package/dist/tools/agent-heartbeat-tools.js.map +0 -1
  323. package/dist/tools/artifact-tools.d.ts.map +0 -1
  324. package/dist/tools/artifact-tools.js.map +0 -1
  325. package/dist/tools/background-task-tools.d.ts.map +0 -1
  326. package/dist/tools/background-task-tools.js.map +0 -1
  327. package/dist/tools/brain-tools.d.ts.map +0 -1
  328. package/dist/tools/brain-tools.js.map +0 -1
  329. package/dist/tools/builder-tools.d.ts.map +0 -1
  330. package/dist/tools/builder-tools.js.map +0 -1
  331. package/dist/tools/decision-reflection-tools.d.ts.map +0 -1
  332. package/dist/tools/decision-reflection-tools.js.map +0 -1
  333. package/dist/tools/external-tools.d.ts.map +0 -1
  334. package/dist/tools/external-tools.js.map +0 -1
  335. package/dist/tools/goal-tools.d.ts.map +0 -1
  336. package/dist/tools/goal-tools.js.map +0 -1
  337. package/dist/tools/mcp-server.d.ts.map +0 -1
  338. package/dist/tools/mcp-server.js.map +0 -1
  339. package/dist/tools/memory-tools.d.ts.map +0 -1
  340. package/dist/tools/memory-tools.js.map +0 -1
  341. package/dist/tools/session-tools.d.ts.map +0 -1
  342. package/dist/tools/session-tools.js.map +0 -1
  343. package/dist/tools/shared.d.ts.map +0 -1
  344. package/dist/tools/shared.js.map +0 -1
  345. package/dist/tools/team-tools.d.ts.map +0 -1
  346. package/dist/tools/team-tools.js.map +0 -1
  347. package/dist/tools/tool-meta.d.ts.map +0 -1
  348. package/dist/tools/tool-meta.js.map +0 -1
  349. package/dist/tools/vault-tools.d.ts.map +0 -1
  350. package/dist/tools/vault-tools.js.map +0 -1
  351. package/dist/types.d.ts.map +0 -1
  352. package/dist/types.js.map +0 -1
  353. package/dist/vault-migrations/0001-add-execution-framework.d.ts.map +0 -1
  354. package/dist/vault-migrations/0001-add-execution-framework.js.map +0 -1
  355. package/dist/vault-migrations/0002-add-agentic-communication.d.ts.map +0 -1
  356. package/dist/vault-migrations/0002-add-agentic-communication.js.map +0 -1
  357. package/dist/vault-migrations/0003-update-execution-pipeline-narration.d.ts.map +0 -1
  358. package/dist/vault-migrations/0003-update-execution-pipeline-narration.js.map +0 -1
  359. package/dist/vault-migrations/0004-backfill-schema-versions.d.ts.map +0 -1
  360. package/dist/vault-migrations/0004-backfill-schema-versions.js.map +0 -1
  361. package/dist/vault-migrations/0005-create-clementine-json.d.ts.map +0 -1
  362. package/dist/vault-migrations/0005-create-clementine-json.js.map +0 -1
  363. package/dist/vault-migrations/helpers.d.ts.map +0 -1
  364. package/dist/vault-migrations/helpers.js.map +0 -1
  365. package/dist/vault-migrations/runner.d.ts.map +0 -1
  366. package/dist/vault-migrations/runner.js.map +0 -1
  367. package/dist/vault-migrations/types.d.ts.map +0 -1
  368. package/dist/vault-migrations/types.js.map +0 -1
@@ -251,8 +251,10 @@ export declare class PersonalAssistant {
251
251
  /** Fire-and-forget: extract a reusable skill from a successful execution. */
252
252
  private extractSkillFromExecution;
253
253
  private preRotationFlush;
254
- private lastExtractionTime;
255
- private worthExtracting;
254
+ private lastExtractionTimes;
255
+ private memoryExtractionKey;
256
+ private assessMemoryExtraction;
257
+ private logMemoryExtractionSkip;
256
258
  private spawnMemoryExtraction;
257
259
  private static readonly MEMORY_TOOL_NAMES;
258
260
  private extractMemory;
@@ -1998,8 +1998,27 @@ You have a cost budget per message — not a hard turn limit. Work until the tas
1998
1998
  : isHeartbeat
1999
1999
  ? getHeartbeatSecurityPrompt()
2000
2000
  : getSecurityPrompt();
2001
- // Fallback model: auto-fallback on rate limits (avoid self-referencing)
2002
- const resolvedModel = resolveModel(model) ?? MODEL;
2001
+ // Model routing: keep default/profile/explicit model choices for normal
2002
+ // work, but send no-tool/no-memory interactive fast-path turns to Haiku.
2003
+ // This preserves Sonnet for memory/tool/task work while avoiding a 30s
2004
+ // Sonnet round trip for "hey", "thanks", and simple acknowledgements.
2005
+ const requestedModel = model ?? profile?.model ?? null;
2006
+ const lightweightModelEligible = !requestedModel
2007
+ && !isHeartbeat
2008
+ && !isCron
2009
+ && !isPlanStep
2010
+ && !isUnleashed
2011
+ && toolsDisabledForCall
2012
+ && turnPolicy?.retrievalTier === 'none'
2013
+ && turnPolicy.effort === 'low';
2014
+ const resolvedModel = resolveModel(requestedModel) ?? (lightweightModelEligible ? MODELS.haiku : MODEL);
2015
+ const modelRouteReason = model
2016
+ ? 'explicit'
2017
+ : profile?.model
2018
+ ? 'profile'
2019
+ : lightweightModelEligible
2020
+ ? 'lightweight-fast-path'
2021
+ : 'default';
2003
2022
  const fallback = resolvedModel !== MODELS.sonnet ? MODELS.sonnet : undefined;
2004
2023
  // Capture source at build time so concurrent queries don't race on the global
2005
2024
  const capturedSource = sourceOverride;
@@ -2037,7 +2056,7 @@ You have a cost budget per message — not a hard turn limit. Work until the tas
2037
2056
  }
2038
2057
  const composioConnectedSlugs = Object.keys(composioMcpServers);
2039
2058
  const { stable, volatile: volatilePromptPart } = this.buildSystemPrompt({
2040
- isHeartbeat, cronTier: isPlanStep ? null : cronTier, retrievalContext, profile, sessionKey, model, verboseLevel, intentClassification,
2059
+ isHeartbeat, cronTier: isPlanStep ? null : cronTier, retrievalContext, profile, sessionKey, model: resolvedModel, verboseLevel, intentClassification,
2041
2060
  contextTier: turnPolicy?.retrievalTier ?? (retrievalContext ? 'full' : 'core'),
2042
2061
  toolsAvailable: !toolsDisabledForCall,
2043
2062
  composioConnectedSlugs,
@@ -2207,6 +2226,7 @@ You have a cost budget per message — not a hard turn limit. Work until the tas
2207
2226
  const clementineToolAllowlistCount = clementineToolAllowlist === '*'
2208
2227
  ? CLEMENTINE_ALL_TOOL_NAMES.length
2209
2228
  : clementineToolAllowlist.split(',').filter(Boolean).length;
2229
+ const loggedToolRoute = toolsDisabledForCall ? emptyToolRoute() : toolRoute;
2210
2230
  if (allowedTools.length > TOOL_SURFACE_WARN_THRESHOLD) {
2211
2231
  logger.warn({
2212
2232
  sessionKey,
@@ -2218,16 +2238,20 @@ You have a cost budget per message — not a hard turn limit. Work until the tas
2218
2238
  }, 'SDK allowed tool surface above warning threshold');
2219
2239
  }
2220
2240
  logger.info({
2221
- bundles: toolRoute.bundles,
2222
- fullSurface: toolRoute.fullSurface,
2223
- allExternalMcpServers: toolRoute.externalMcpServers === undefined,
2224
- allComposioToolkits: toolRoute.composioToolkits === undefined,
2225
- externalMcpServers: toolRoute.externalMcpServers,
2226
- composioToolkits: toolRoute.composioToolkits,
2241
+ bundles: loggedToolRoute.bundles,
2242
+ candidateBundles: toolsDisabledForCall && toolRoute.bundles.length > 0 ? toolRoute.bundles : undefined,
2243
+ fullSurface: loggedToolRoute.fullSurface,
2244
+ candidateFullSurface: toolsDisabledForCall && toolRoute.fullSurface ? true : undefined,
2245
+ allExternalMcpServers: !toolsDisabledForCall && toolRoute.externalMcpServers === undefined,
2246
+ allComposioToolkits: !toolsDisabledForCall && toolRoute.composioToolkits === undefined,
2247
+ externalMcpServers: toolsDisabledForCall ? [] : toolRoute.externalMcpServers,
2248
+ composioToolkits: toolsDisabledForCall ? [] : toolRoute.composioToolkits,
2227
2249
  mcpServerNames,
2228
2250
  allowedToolCount: toolsDisabledForCall ? 0 : allowedTools.length,
2229
2251
  clementineToolAllowlistCount: toolsDisabledForCall ? 0 : clementineToolAllowlistCount,
2230
- clementineToolAllowlistMode: clementineToolAllowlist === '*' ? 'all' : 'scoped',
2252
+ clementineToolAllowlistMode: toolsDisabledForCall ? 'disabled' : clementineToolAllowlist === '*' ? 'all' : 'scoped',
2253
+ model: resolvedModel,
2254
+ modelRouteReason,
2231
2255
  toolsDisabledForCall,
2232
2256
  isolateClaudeConfig,
2233
2257
  inheritFullClaudeEnv: shouldInheritClaudeEnv,
@@ -2848,12 +2872,16 @@ You have a cost budget per message — not a hard turn limit. Work until the tas
2848
2872
  logger.warn({ err, sessionKey: key }, 'Transcript save failed');
2849
2873
  }
2850
2874
  }
2851
- // Fire background memory extraction (non-blocking)
2852
- if (text.length >= AUTO_MEMORY_MIN_LENGTH &&
2853
- responseText &&
2854
- !responseText.startsWith('Error:') &&
2855
- this.worthExtracting(text, responseText)) {
2856
- this.spawnMemoryExtraction(text, responseText, key, profile).catch(err => logger.debug({ err }, 'Memory extraction failed'));
2875
+ // Fire background memory extraction (non-blocking). Skips are logged with
2876
+ // structured reasons so memory gaps are diagnosable without reading chats.
2877
+ if (responseText && !responseText.startsWith('Error:')) {
2878
+ const extractionDecision = this.assessMemoryExtraction(text, responseText, key, profile);
2879
+ if (extractionDecision.ok) {
2880
+ this.spawnMemoryExtraction(text, responseText, key, profile).catch(err => logger.debug({ err }, 'Memory extraction failed'));
2881
+ }
2882
+ else {
2883
+ this.logMemoryExtractionSkip(extractionDecision.reason, text, responseText, key, profile);
2884
+ }
2857
2885
  }
2858
2886
  // Score outcome-driven salience: for the chunks we retrieved this turn,
2859
2887
  // check which actually showed up in the response and adjust their
@@ -3065,6 +3093,19 @@ You have a cost budget per message — not a hard turn limit. Work until the tas
3065
3093
  ? ((sdkOptions.allowedTools ?? [])
3066
3094
  .filter(t => typeof t === 'string' && t.startsWith(`mcp__${TOOLS_SERVER}__`)).length)
3067
3095
  : 0;
3096
+ const lightweightTraceEligible = !model
3097
+ && !profile?.model
3098
+ && sdkOptions.model === MODELS.haiku
3099
+ && effectiveTurnPolicy?.disableAllTools
3100
+ && rawContext.tier === 'none'
3101
+ && effectiveTurnPolicy.effort === 'low';
3102
+ const modelRouteReason = model
3103
+ ? 'explicit'
3104
+ : profile?.model
3105
+ ? 'profile'
3106
+ : lightweightTraceEligible
3107
+ ? 'lightweight-fast-path'
3108
+ : 'default';
3068
3109
  const serverCount = sdkOptions.mcpServers ? Object.keys(sdkOptions.mcpServers).length : 0;
3069
3110
  logAuditJsonl({
3070
3111
  event_type: 'turn_trace',
@@ -3083,6 +3124,8 @@ You have a cost budget per message — not a hard turn limit. Work until the tas
3083
3124
  estimated_tokens: totalEstimate,
3084
3125
  remaining_tokens: remainingTokens,
3085
3126
  max_turns: sdkOptions.maxTurns,
3127
+ model: sdkOptions.model,
3128
+ model_route_reason: modelRouteReason,
3086
3129
  effort: sdkOptions.effort,
3087
3130
  });
3088
3131
  }
@@ -4149,14 +4192,15 @@ You have a cost budget per message — not a hard turn limit. Work until the tas
4149
4192
  catch { /* non-fatal */ }
4150
4193
  }
4151
4194
  // ── Auto-Memory Extraction ────────────────────────────────────────
4152
- lastExtractionTime = 0;
4153
- worthExtracting(prompt, response) {
4154
- if (response.length < 100)
4155
- return false;
4156
- // Skip very short acknowledgment responses
4157
- if (response.length < 100)
4158
- return false;
4159
- // Only skip pure greetings with no substance at all
4195
+ lastExtractionTimes = new Map();
4196
+ memoryExtractionKey(sessionKey, profile) {
4197
+ return `${profile?.slug ?? 'global'}:${sessionKey ?? 'no-session'}`;
4198
+ }
4199
+ assessMemoryExtraction(prompt, response, sessionKey, profile) {
4200
+ if (!this.memoryStore)
4201
+ return { ok: false, reason: 'no_memory_store' };
4202
+ // Only skip pure greetings with no substance at all. Check this before
4203
+ // length so "hey" is diagnosable as intent, not generic shortness.
4160
4204
  const pureGreetings = [
4161
4205
  'hello', 'hi', 'hey', 'thanks', 'thank you',
4162
4206
  'ok', 'okay', 'sure', 'got it', 'sounds good',
@@ -4164,20 +4208,54 @@ You have a cost budget per message — not a hard turn limit. Work until the tas
4164
4208
  ];
4165
4209
  const lower = prompt.toLowerCase().trim();
4166
4210
  if (pureGreetings.some((g) => lower === g || lower === g + '!' || lower === g + '.')) {
4167
- return false;
4211
+ return { ok: false, reason: 'pure_greeting' };
4212
+ }
4213
+ if (prompt.length < AUTO_MEMORY_MIN_LENGTH || response.length < 100) {
4214
+ return { ok: false, reason: 'too_short' };
4168
4215
  }
4169
- // Rate limit: max 1 extraction per 45 seconds per session
4216
+ // Rate limit per session/agent. The old process-wide throttle meant one
4217
+ // active chat could suppress memory extraction for unrelated agents.
4170
4218
  const now = Date.now();
4171
- if (now - this.lastExtractionTime < 45_000)
4172
- return false;
4173
- this.lastExtractionTime = now;
4174
- return true;
4219
+ const key = this.memoryExtractionKey(sessionKey, profile);
4220
+ const last = this.lastExtractionTimes.get(key) ?? 0;
4221
+ if (now - last < 45_000)
4222
+ return { ok: false, reason: 'rate_limited' };
4223
+ this.lastExtractionTimes.set(key, now);
4224
+ return { ok: true };
4225
+ }
4226
+ logMemoryExtractionSkip(reason, userMessage, assistantResponse, sessionKey, profile) {
4227
+ logger.debug({
4228
+ reason,
4229
+ sessionKey,
4230
+ agentSlug: profile?.slug,
4231
+ promptChars: userMessage.length,
4232
+ responseChars: assistantResponse.length,
4233
+ }, 'Auto-memory extraction skipped');
4234
+ if (!this.memoryStore)
4235
+ return;
4236
+ try {
4237
+ this.memoryStore.logExtraction({
4238
+ sessionKey: sessionKey ?? 'unknown',
4239
+ userMessage: userMessage.slice(0, 500),
4240
+ toolName: 'auto_memory_skip',
4241
+ toolInput: JSON.stringify({
4242
+ reason,
4243
+ promptChars: userMessage.length,
4244
+ responseChars: assistantResponse.length,
4245
+ }),
4246
+ extractedAt: new Date().toISOString(),
4247
+ status: `skipped:${reason}`,
4248
+ agentSlug: profile?.slug,
4249
+ });
4250
+ }
4251
+ catch { /* telemetry only */ }
4175
4252
  }
4176
4253
  async spawnMemoryExtraction(userMessage, assistantResponse, sessionKey, profile) {
4177
4254
  // Guard: skip memory extraction if the user message looks like injection
4178
4255
  const memScan = scanner.scan(userMessage);
4179
4256
  if (memScan.verdict === 'block') {
4180
4257
  logger.info('Skipping memory extraction — message was flagged as injection');
4258
+ this.logMemoryExtractionSkip('injection_blocked', userMessage, assistantResponse, sessionKey, profile);
4181
4259
  return;
4182
4260
  }
4183
4261
  let currentMemory = '';
@@ -10,6 +10,37 @@
10
10
  */
11
11
  import type { SelfImproveConfig, SelfImproveExperiment, SelfImproveState } from '../types.js';
12
12
  import type { PersonalAssistant } from './assistant.js';
13
+ export declare const USER_MODEL_SLOT_KEYS: readonly ["user_facts", "goals", "relationships", "agent_persona"];
14
+ export type UserModelSlotKey = typeof USER_MODEL_SLOT_KEYS[number];
15
+ export interface SelfImproveEvidenceSnapshot {
16
+ feedbackCreatedAt?: string[];
17
+ reflectionCreatedAt?: string[];
18
+ cronErrorStartedAt?: string[];
19
+ cronReflectionAt?: string[];
20
+ triggerUpdatedAt?: string[];
21
+ triggerCount?: number;
22
+ userModelNeedsSeed?: boolean;
23
+ }
24
+ export declare function isPlateauExperiment(entry: Partial<SelfImproveExperiment>): boolean;
25
+ export declare function latestPlateauTime(history: Array<Partial<SelfImproveExperiment>>): number;
26
+ export declare function newestSelfImproveEvidenceTime(evidence: SelfImproveEvidenceSnapshot): number;
27
+ export declare function shouldSkipSelfImproveForPlateau(history: Array<Partial<SelfImproveExperiment>>, evidence: SelfImproveEvidenceSnapshot): {
28
+ skip: boolean;
29
+ reason?: string;
30
+ };
31
+ export declare function shouldAppendPlateauMarker(history: Array<Partial<SelfImproveExperiment>>, nowMs?: number, windowMs?: number): boolean;
32
+ export declare function reconcileSelfImproveStateSnapshot(state: SelfImproveState, actualPending: number, opts?: {
33
+ nowMs?: number;
34
+ maxDurationMs?: number;
35
+ graceMs?: number;
36
+ }): {
37
+ state: SelfImproveState;
38
+ changed: boolean;
39
+ diagnostics: string[];
40
+ };
41
+ export declare function normalizeUserModelSlots(slots: unknown): Partial<Record<UserModelSlotKey, string>>;
42
+ export declare function sanitizeUserModelFrontmatter(frontmatterYaml: string): string;
43
+ export declare function buildUserModelMarkdown(frontmatterYaml: string, slots: Partial<Record<UserModelSlotKey, string>>, updatedAt?: string): string;
13
44
  export declare class SelfImproveLoop {
14
45
  private config;
15
46
  private assistant;
@@ -18,6 +49,9 @@ export declare class SelfImproveLoop {
18
49
  /** Run a focused self-improvement cycle for a specific agent. */
19
50
  runForAgent(agentSlug: string, onProposal?: (experiment: SelfImproveExperiment) => Promise<void>): Promise<SelfImproveState>;
20
51
  private gatherMetrics;
52
+ private evidenceSnapshot;
53
+ private pendingTriggerEvidence;
54
+ private userModelNeedsSeed;
21
55
  private hypothesize;
22
56
  private readCurrentState;
23
57
  private evaluate;