agentfootprint 9.40.0 → 9.43.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 (404) hide show
  1. package/AGENTS.md +30 -1
  2. package/CLAUDE.md +4 -1
  3. package/ai-instructions/claude-code/SKILL.md +31 -1
  4. package/dist/adapters/hosting/agentcore.js +71 -10
  5. package/dist/adapters/hosting/agentcore.js.map +1 -1
  6. package/dist/adapters/hosting/firestoreSessions.js +184 -14
  7. package/dist/adapters/hosting/firestoreSessions.js.map +1 -1
  8. package/dist/adapters/hosting/googleAgentEngine.js +29 -0
  9. package/dist/adapters/hosting/googleAgentEngine.js.map +1 -1
  10. package/dist/adapters/memory/agentcore.js +3 -1
  11. package/dist/adapters/memory/agentcore.js.map +1 -1
  12. package/dist/artifacts/conformance/cases.js +840 -0
  13. package/dist/artifacts/conformance/cases.js.map +1 -0
  14. package/dist/artifacts/conformance/index.js +18 -0
  15. package/dist/artifacts/conformance/index.js.map +1 -0
  16. package/dist/artifacts/conformance/run.js +223 -0
  17. package/dist/artifacts/conformance/run.js.map +1 -0
  18. package/dist/artifacts/conformance/types.js +11 -0
  19. package/dist/artifacts/conformance/types.js.map +1 -0
  20. package/dist/artifacts/index.js +10 -1
  21. package/dist/artifacts/index.js.map +1 -1
  22. package/dist/core/Agent.js +100 -1
  23. package/dist/core/Agent.js.map +1 -1
  24. package/dist/core/agent/AgentBuilder.js +56 -1
  25. package/dist/core/agent/AgentBuilder.js.map +1 -1
  26. package/dist/core/agent/buildAgentChart.js +5 -1
  27. package/dist/core/agent/buildAgentChart.js.map +1 -1
  28. package/dist/core/agent/buildDynamicAgentChart.js +5 -1
  29. package/dist/core/agent/buildDynamicAgentChart.js.map +1 -1
  30. package/dist/core/agent/coverage/absent.js +163 -0
  31. package/dist/core/agent/coverage/absent.js.map +1 -0
  32. package/dist/core/agent/coverage/answer.js +90 -0
  33. package/dist/core/agent/coverage/answer.js.map +1 -0
  34. package/dist/core/agent/coverage/evidence.js +90 -0
  35. package/dist/core/agent/coverage/evidence.js.map +1 -0
  36. package/dist/core/agent/coverage/index.js +37 -0
  37. package/dist/core/agent/coverage/index.js.map +1 -0
  38. package/dist/core/agent/coverage/items.js +91 -0
  39. package/dist/core/agent/coverage/items.js.map +1 -0
  40. package/dist/core/agent/coverage/ledger.js +131 -0
  41. package/dist/core/agent/coverage/ledger.js.map +1 -0
  42. package/dist/core/agent/coverage/read.js +56 -0
  43. package/dist/core/agent/coverage/read.js.map +1 -0
  44. package/dist/core/agent/coverage/types.js +15 -0
  45. package/dist/core/agent/coverage/types.js.map +1 -0
  46. package/dist/core/agent/evidence/evidenceIndex.js +18 -1
  47. package/dist/core/agent/evidence/evidenceIndex.js.map +1 -1
  48. package/dist/core/agent/runManifest.js +102 -0
  49. package/dist/core/agent/runManifest.js.map +1 -0
  50. package/dist/core/agent/stages/prepareFinal.js +44 -3
  51. package/dist/core/agent/stages/prepareFinal.js.map +1 -1
  52. package/dist/core/agent/stages/toolCalls.js +109 -3
  53. package/dist/core/agent/stages/toolCalls.js.map +1 -1
  54. package/dist/core/agent/toolEffects.js +1 -1
  55. package/dist/debug.js +49 -25
  56. package/dist/debug.js.map +1 -1
  57. package/dist/esm/adapters/hosting/agentcore.d.ts +8 -0
  58. package/dist/esm/adapters/hosting/agentcore.js +71 -10
  59. package/dist/esm/adapters/hosting/agentcore.js.map +1 -1
  60. package/dist/esm/adapters/hosting/firestoreSessions.d.ts +162 -14
  61. package/dist/esm/adapters/hosting/firestoreSessions.js +182 -13
  62. package/dist/esm/adapters/hosting/firestoreSessions.js.map +1 -1
  63. package/dist/esm/adapters/hosting/googleAgentEngine.d.ts +16 -1
  64. package/dist/esm/adapters/hosting/googleAgentEngine.js +29 -0
  65. package/dist/esm/adapters/hosting/googleAgentEngine.js.map +1 -1
  66. package/dist/esm/adapters/memory/agentcore.js +3 -1
  67. package/dist/esm/adapters/memory/agentcore.js.map +1 -1
  68. package/dist/esm/artifacts/conformance/cases.d.ts +23 -0
  69. package/dist/esm/artifacts/conformance/cases.js +837 -0
  70. package/dist/esm/artifacts/conformance/cases.js.map +1 -0
  71. package/dist/esm/artifacts/conformance/index.d.ts +11 -0
  72. package/dist/esm/artifacts/conformance/index.js +11 -0
  73. package/dist/esm/artifacts/conformance/index.js.map +1 -0
  74. package/dist/esm/artifacts/conformance/run.d.ts +47 -0
  75. package/dist/esm/artifacts/conformance/run.js +217 -0
  76. package/dist/esm/artifacts/conformance/run.js.map +1 -0
  77. package/dist/esm/artifacts/conformance/types.d.ts +197 -0
  78. package/dist/esm/artifacts/conformance/types.js +10 -0
  79. package/dist/esm/artifacts/conformance/types.js.map +1 -0
  80. package/dist/esm/artifacts/index.d.ts +1 -0
  81. package/dist/esm/artifacts/index.js +5 -0
  82. package/dist/esm/artifacts/index.js.map +1 -1
  83. package/dist/esm/core/Agent.d.ts +34 -1
  84. package/dist/esm/core/Agent.js +100 -1
  85. package/dist/esm/core/Agent.js.map +1 -1
  86. package/dist/esm/core/agent/AgentBuilder.d.ts +43 -0
  87. package/dist/esm/core/agent/AgentBuilder.js +56 -1
  88. package/dist/esm/core/agent/AgentBuilder.js.map +1 -1
  89. package/dist/esm/core/agent/buildAgentChart.d.ts +9 -0
  90. package/dist/esm/core/agent/buildAgentChart.js +6 -2
  91. package/dist/esm/core/agent/buildAgentChart.js.map +1 -1
  92. package/dist/esm/core/agent/buildDynamicAgentChart.js +6 -2
  93. package/dist/esm/core/agent/buildDynamicAgentChart.js.map +1 -1
  94. package/dist/esm/core/agent/coverage/absent.d.ts +104 -0
  95. package/dist/esm/core/agent/coverage/absent.js +157 -0
  96. package/dist/esm/core/agent/coverage/absent.js.map +1 -0
  97. package/dist/esm/core/agent/coverage/answer.d.ts +46 -0
  98. package/dist/esm/core/agent/coverage/answer.js +86 -0
  99. package/dist/esm/core/agent/coverage/answer.js.map +1 -0
  100. package/dist/esm/core/agent/coverage/evidence.d.ts +68 -0
  101. package/dist/esm/core/agent/coverage/evidence.js +86 -0
  102. package/dist/esm/core/agent/coverage/evidence.js.map +1 -0
  103. package/dist/esm/core/agent/coverage/index.d.ts +17 -0
  104. package/dist/esm/core/agent/coverage/index.js +17 -0
  105. package/dist/esm/core/agent/coverage/index.js.map +1 -0
  106. package/dist/esm/core/agent/coverage/items.d.ts +35 -0
  107. package/dist/esm/core/agent/coverage/items.js +85 -0
  108. package/dist/esm/core/agent/coverage/items.js.map +1 -0
  109. package/dist/esm/core/agent/coverage/ledger.d.ts +80 -0
  110. package/dist/esm/core/agent/coverage/ledger.js +125 -0
  111. package/dist/esm/core/agent/coverage/ledger.js.map +1 -0
  112. package/dist/esm/core/agent/coverage/read.d.ts +51 -0
  113. package/dist/esm/core/agent/coverage/read.js +52 -0
  114. package/dist/esm/core/agent/coverage/read.js.map +1 -0
  115. package/dist/esm/core/agent/coverage/types.d.ts +142 -0
  116. package/dist/esm/core/agent/coverage/types.js +14 -0
  117. package/dist/esm/core/agent/coverage/types.js.map +1 -0
  118. package/dist/esm/core/agent/evidence/evidenceIndex.d.ts +7 -0
  119. package/dist/esm/core/agent/evidence/evidenceIndex.js +18 -1
  120. package/dist/esm/core/agent/evidence/evidenceIndex.js.map +1 -1
  121. package/dist/esm/core/agent/runManifest.d.ts +80 -0
  122. package/dist/esm/core/agent/runManifest.js +98 -0
  123. package/dist/esm/core/agent/runManifest.js.map +1 -0
  124. package/dist/esm/core/agent/stages/prepareFinal.d.ts +18 -0
  125. package/dist/esm/core/agent/stages/prepareFinal.js +42 -2
  126. package/dist/esm/core/agent/stages/prepareFinal.js.map +1 -1
  127. package/dist/esm/core/agent/stages/toolCalls.js +109 -3
  128. package/dist/esm/core/agent/stages/toolCalls.js.map +1 -1
  129. package/dist/esm/core/agent/toolEffects.d.ts +2 -2
  130. package/dist/esm/core/agent/toolEffects.js +1 -1
  131. package/dist/esm/core/agent/types.d.ts +14 -0
  132. package/dist/esm/debug.d.ts +1 -0
  133. package/dist/esm/debug.js +7 -0
  134. package/dist/esm/debug.js.map +1 -1
  135. package/dist/esm/events/payloads.d.ts +205 -0
  136. package/dist/esm/events/registry.d.ts +7 -1
  137. package/dist/esm/events/registry.js +6 -0
  138. package/dist/esm/events/registry.js.map +1 -1
  139. package/dist/esm/hosting/conformance/cases.d.ts +2 -1
  140. package/dist/esm/hosting/conformance/cases.js +88 -2
  141. package/dist/esm/hosting/conformance/cases.js.map +1 -1
  142. package/dist/esm/hosting/conformance/types.d.ts +7 -7
  143. package/dist/esm/hosting/errors.d.ts +28 -0
  144. package/dist/esm/hosting/errors.js +40 -0
  145. package/dist/esm/hosting/errors.js.map +1 -1
  146. package/dist/esm/hosting/index.d.ts +11 -3
  147. package/dist/esm/hosting/index.js +15 -2
  148. package/dist/esm/hosting/index.js.map +1 -1
  149. package/dist/esm/hosting/memorySessions.js +39 -0
  150. package/dist/esm/hosting/memorySessions.js.map +1 -1
  151. package/dist/esm/hosting/sessionRetention.d.ts +56 -0
  152. package/dist/esm/hosting/sessionRetention.js +69 -0
  153. package/dist/esm/hosting/sessionRetention.js.map +1 -0
  154. package/dist/esm/hosting/sqliteSessions.d.ts +11 -1
  155. package/dist/esm/hosting/sqliteSessions.js +51 -0
  156. package/dist/esm/hosting/sqliteSessions.js.map +1 -1
  157. package/dist/esm/hosting/types.d.ts +184 -0
  158. package/dist/esm/hosting/types.js +9 -0
  159. package/dist/esm/hosting/types.js.map +1 -1
  160. package/dist/esm/hosting-providers.d.ts +15 -11
  161. package/dist/esm/hosting-providers.js +21 -11
  162. package/dist/esm/hosting-providers.js.map +1 -1
  163. package/dist/esm/index.d.ts +2 -0
  164. package/dist/esm/index.js +25 -0
  165. package/dist/esm/index.js.map +1 -1
  166. package/dist/esm/lib/context-bisect/arms/apply.d.ts +54 -0
  167. package/dist/esm/lib/context-bisect/arms/apply.js +41 -0
  168. package/dist/esm/lib/context-bisect/arms/apply.js.map +1 -0
  169. package/dist/esm/lib/context-bisect/arms/compare.d.ts +27 -0
  170. package/dist/esm/lib/context-bisect/arms/compare.js +112 -0
  171. package/dist/esm/lib/context-bisect/arms/compare.js.map +1 -0
  172. package/dist/esm/lib/context-bisect/arms/index.d.ts +16 -0
  173. package/dist/esm/lib/context-bisect/arms/index.js +16 -0
  174. package/dist/esm/lib/context-bisect/arms/index.js.map +1 -0
  175. package/dist/esm/lib/context-bisect/arms/manifest.d.ts +79 -0
  176. package/dist/esm/lib/context-bisect/arms/manifest.js +199 -0
  177. package/dist/esm/lib/context-bisect/arms/manifest.js.map +1 -0
  178. package/dist/esm/lib/context-bisect/arms/probe.d.ts +54 -0
  179. package/dist/esm/lib/context-bisect/arms/probe.js +125 -0
  180. package/dist/esm/lib/context-bisect/arms/probe.js.map +1 -0
  181. package/dist/esm/lib/context-bisect/arms/types.d.ts +319 -0
  182. package/dist/esm/lib/context-bisect/arms/types.js +67 -0
  183. package/dist/esm/lib/context-bisect/arms/types.js.map +1 -0
  184. package/dist/esm/lib/context-bisect/arms/validate.d.ts +26 -0
  185. package/dist/esm/lib/context-bisect/arms/validate.js +122 -0
  186. package/dist/esm/lib/context-bisect/arms/validate.js.map +1 -0
  187. package/dist/esm/lib/context-bisect/arms/verdict.d.ts +53 -0
  188. package/dist/esm/lib/context-bisect/arms/verdict.js +103 -0
  189. package/dist/esm/lib/context-bisect/arms/verdict.js.map +1 -0
  190. package/dist/esm/lib/context-bisect/index.d.ts +1 -0
  191. package/dist/esm/lib/context-bisect/index.js +5 -0
  192. package/dist/esm/lib/context-bisect/index.js.map +1 -1
  193. package/dist/esm/lib/injection-engine/index.d.ts +1 -1
  194. package/dist/esm/lib/injection-engine/index.js +3 -1
  195. package/dist/esm/lib/injection-engine/index.js.map +1 -1
  196. package/dist/esm/lib/injection-engine/skillExamples.d.ts +16 -13
  197. package/dist/esm/lib/injection-engine/skillExamples.js +16 -60
  198. package/dist/esm/lib/injection-engine/skillExamples.js.map +1 -1
  199. package/dist/esm/lib/injection-engine/skillGraph.d.ts +50 -0
  200. package/dist/esm/lib/injection-engine/skillGraph.js +52 -1
  201. package/dist/esm/lib/injection-engine/skillGraph.js.map +1 -1
  202. package/dist/esm/lib/injection-engine/skillGraphCheckup.d.ts +6 -5
  203. package/dist/esm/lib/injection-engine/skillGraphCheckup.js.map +1 -1
  204. package/dist/esm/lib/injection-engine/skillNeverRoutes.d.ts +131 -0
  205. package/dist/esm/lib/injection-engine/skillNeverRoutes.js +228 -0
  206. package/dist/esm/lib/injection-engine/skillNeverRoutes.js.map +1 -0
  207. package/dist/esm/lib/injection-engine/skillPartition.d.ts +69 -0
  208. package/dist/esm/lib/injection-engine/skillPartition.js +273 -0
  209. package/dist/esm/lib/injection-engine/skillPartition.js.map +1 -0
  210. package/dist/esm/lib/injection-engine/skillsFromDir.d.ts +83 -3
  211. package/dist/esm/lib/injection-engine/skillsFromDir.js +118 -7
  212. package/dist/esm/lib/injection-engine/skillsFromDir.js.map +1 -1
  213. package/dist/esm/lib/injection-engine/skillsFromDirRoutes.d.ts +105 -0
  214. package/dist/esm/lib/injection-engine/skillsFromDirRoutes.js +169 -0
  215. package/dist/esm/lib/injection-engine/skillsFromDirRoutes.js.map +1 -0
  216. package/dist/esm/lib/injection-engine/startRuleClaim.d.ts +91 -0
  217. package/dist/esm/lib/injection-engine/startRuleClaim.js +78 -0
  218. package/dist/esm/lib/injection-engine/startRuleClaim.js.map +1 -0
  219. package/dist/esm/lib/injection-engine/toolOutcome.d.ts +12 -3
  220. package/dist/esm/lib/injection-engine/toolOutcome.js +2 -1
  221. package/dist/esm/lib/injection-engine/toolOutcome.js.map +1 -1
  222. package/dist/esm/memory/define.js +12 -0
  223. package/dist/esm/memory/define.js.map +1 -1
  224. package/dist/esm/memory/define.types.d.ts +27 -0
  225. package/dist/esm/memory/define.types.js.map +1 -1
  226. package/dist/esm/strategies/attach.js.map +1 -1
  227. package/dist/events/registry.js +6 -0
  228. package/dist/events/registry.js.map +1 -1
  229. package/dist/hosting/conformance/cases.js +88 -2
  230. package/dist/hosting/conformance/cases.js.map +1 -1
  231. package/dist/hosting/errors.js +42 -1
  232. package/dist/hosting/errors.js.map +1 -1
  233. package/dist/hosting/index.js +18 -2
  234. package/dist/hosting/index.js.map +1 -1
  235. package/dist/hosting/memorySessions.js +39 -0
  236. package/dist/hosting/memorySessions.js.map +1 -1
  237. package/dist/hosting/sessionRetention.js +73 -0
  238. package/dist/hosting/sessionRetention.js.map +1 -0
  239. package/dist/hosting/sqliteSessions.js +51 -0
  240. package/dist/hosting/sqliteSessions.js.map +1 -1
  241. package/dist/hosting/types.js +10 -1
  242. package/dist/hosting/types.js.map +1 -1
  243. package/dist/hosting-providers.js +21 -11
  244. package/dist/hosting-providers.js.map +1 -1
  245. package/dist/index.js +78 -38
  246. package/dist/index.js.map +1 -1
  247. package/dist/lib/context-bisect/arms/apply.js +45 -0
  248. package/dist/lib/context-bisect/arms/apply.js.map +1 -0
  249. package/dist/lib/context-bisect/arms/compare.js +116 -0
  250. package/dist/lib/context-bisect/arms/compare.js.map +1 -0
  251. package/dist/lib/context-bisect/arms/index.js +35 -0
  252. package/dist/lib/context-bisect/arms/index.js.map +1 -0
  253. package/dist/lib/context-bisect/arms/manifest.js +207 -0
  254. package/dist/lib/context-bisect/arms/manifest.js.map +1 -0
  255. package/dist/lib/context-bisect/arms/probe.js +132 -0
  256. package/dist/lib/context-bisect/arms/probe.js.map +1 -0
  257. package/dist/lib/context-bisect/arms/types.js +68 -0
  258. package/dist/lib/context-bisect/arms/types.js.map +1 -0
  259. package/dist/lib/context-bisect/arms/validate.js +128 -0
  260. package/dist/lib/context-bisect/arms/validate.js.map +1 -0
  261. package/dist/lib/context-bisect/arms/verdict.js +107 -0
  262. package/dist/lib/context-bisect/arms/verdict.js.map +1 -0
  263. package/dist/lib/context-bisect/index.js +23 -1
  264. package/dist/lib/context-bisect/index.js.map +1 -1
  265. package/dist/lib/injection-engine/index.js +4 -1
  266. package/dist/lib/injection-engine/index.js.map +1 -1
  267. package/dist/lib/injection-engine/skillExamples.js +24 -68
  268. package/dist/lib/injection-engine/skillExamples.js.map +1 -1
  269. package/dist/lib/injection-engine/skillGraph.js +52 -1
  270. package/dist/lib/injection-engine/skillGraph.js.map +1 -1
  271. package/dist/lib/injection-engine/skillGraphCheckup.js.map +1 -1
  272. package/dist/lib/injection-engine/skillNeverRoutes.js +234 -0
  273. package/dist/lib/injection-engine/skillNeverRoutes.js.map +1 -0
  274. package/dist/lib/injection-engine/skillPartition.js +277 -0
  275. package/dist/lib/injection-engine/skillPartition.js.map +1 -0
  276. package/dist/lib/injection-engine/skillsFromDir.js +121 -9
  277. package/dist/lib/injection-engine/skillsFromDir.js.map +1 -1
  278. package/dist/lib/injection-engine/skillsFromDirRoutes.js +174 -0
  279. package/dist/lib/injection-engine/skillsFromDirRoutes.js.map +1 -0
  280. package/dist/lib/injection-engine/startRuleClaim.js +85 -0
  281. package/dist/lib/injection-engine/startRuleClaim.js.map +1 -0
  282. package/dist/lib/injection-engine/toolOutcome.js +2 -1
  283. package/dist/lib/injection-engine/toolOutcome.js.map +1 -1
  284. package/dist/memory/define.js +12 -0
  285. package/dist/memory/define.js.map +1 -1
  286. package/dist/memory/define.types.js.map +1 -1
  287. package/dist/strategies/attach.js.map +1 -1
  288. package/dist/types/adapters/hosting/agentcore.d.ts +8 -0
  289. package/dist/types/adapters/hosting/agentcore.d.ts.map +1 -1
  290. package/dist/types/adapters/hosting/firestoreSessions.d.ts +162 -14
  291. package/dist/types/adapters/hosting/firestoreSessions.d.ts.map +1 -1
  292. package/dist/types/adapters/hosting/googleAgentEngine.d.ts +16 -1
  293. package/dist/types/adapters/hosting/googleAgentEngine.d.ts.map +1 -1
  294. package/dist/types/adapters/memory/agentcore.d.ts.map +1 -1
  295. package/dist/types/artifacts/conformance/cases.d.ts +24 -0
  296. package/dist/types/artifacts/conformance/cases.d.ts.map +1 -0
  297. package/dist/types/artifacts/conformance/index.d.ts +12 -0
  298. package/dist/types/artifacts/conformance/index.d.ts.map +1 -0
  299. package/dist/types/artifacts/conformance/run.d.ts +48 -0
  300. package/dist/types/artifacts/conformance/run.d.ts.map +1 -0
  301. package/dist/types/artifacts/conformance/types.d.ts +198 -0
  302. package/dist/types/artifacts/conformance/types.d.ts.map +1 -0
  303. package/dist/types/artifacts/index.d.ts +1 -0
  304. package/dist/types/artifacts/index.d.ts.map +1 -1
  305. package/dist/types/core/Agent.d.ts +34 -1
  306. package/dist/types/core/Agent.d.ts.map +1 -1
  307. package/dist/types/core/agent/AgentBuilder.d.ts +43 -0
  308. package/dist/types/core/agent/AgentBuilder.d.ts.map +1 -1
  309. package/dist/types/core/agent/buildAgentChart.d.ts +9 -0
  310. package/dist/types/core/agent/buildAgentChart.d.ts.map +1 -1
  311. package/dist/types/core/agent/buildDynamicAgentChart.d.ts.map +1 -1
  312. package/dist/types/core/agent/coverage/absent.d.ts +105 -0
  313. package/dist/types/core/agent/coverage/absent.d.ts.map +1 -0
  314. package/dist/types/core/agent/coverage/answer.d.ts +47 -0
  315. package/dist/types/core/agent/coverage/answer.d.ts.map +1 -0
  316. package/dist/types/core/agent/coverage/evidence.d.ts +69 -0
  317. package/dist/types/core/agent/coverage/evidence.d.ts.map +1 -0
  318. package/dist/types/core/agent/coverage/index.d.ts +18 -0
  319. package/dist/types/core/agent/coverage/index.d.ts.map +1 -0
  320. package/dist/types/core/agent/coverage/items.d.ts +36 -0
  321. package/dist/types/core/agent/coverage/items.d.ts.map +1 -0
  322. package/dist/types/core/agent/coverage/ledger.d.ts +81 -0
  323. package/dist/types/core/agent/coverage/ledger.d.ts.map +1 -0
  324. package/dist/types/core/agent/coverage/read.d.ts +52 -0
  325. package/dist/types/core/agent/coverage/read.d.ts.map +1 -0
  326. package/dist/types/core/agent/coverage/types.d.ts +143 -0
  327. package/dist/types/core/agent/coverage/types.d.ts.map +1 -0
  328. package/dist/types/core/agent/evidence/evidenceIndex.d.ts +7 -0
  329. package/dist/types/core/agent/evidence/evidenceIndex.d.ts.map +1 -1
  330. package/dist/types/core/agent/runManifest.d.ts +81 -0
  331. package/dist/types/core/agent/runManifest.d.ts.map +1 -0
  332. package/dist/types/core/agent/stages/prepareFinal.d.ts +18 -0
  333. package/dist/types/core/agent/stages/prepareFinal.d.ts.map +1 -1
  334. package/dist/types/core/agent/stages/toolCalls.d.ts.map +1 -1
  335. package/dist/types/core/agent/toolEffects.d.ts +2 -2
  336. package/dist/types/core/agent/types.d.ts +14 -0
  337. package/dist/types/core/agent/types.d.ts.map +1 -1
  338. package/dist/types/debug.d.ts +1 -0
  339. package/dist/types/debug.d.ts.map +1 -1
  340. package/dist/types/events/payloads.d.ts +205 -0
  341. package/dist/types/events/payloads.d.ts.map +1 -1
  342. package/dist/types/events/registry.d.ts +7 -1
  343. package/dist/types/events/registry.d.ts.map +1 -1
  344. package/dist/types/hosting/conformance/cases.d.ts +2 -1
  345. package/dist/types/hosting/conformance/cases.d.ts.map +1 -1
  346. package/dist/types/hosting/conformance/types.d.ts +7 -7
  347. package/dist/types/hosting/conformance/types.d.ts.map +1 -1
  348. package/dist/types/hosting/errors.d.ts +28 -0
  349. package/dist/types/hosting/errors.d.ts.map +1 -1
  350. package/dist/types/hosting/index.d.ts +11 -3
  351. package/dist/types/hosting/index.d.ts.map +1 -1
  352. package/dist/types/hosting/memorySessions.d.ts.map +1 -1
  353. package/dist/types/hosting/sessionRetention.d.ts +57 -0
  354. package/dist/types/hosting/sessionRetention.d.ts.map +1 -0
  355. package/dist/types/hosting/sqliteSessions.d.ts +11 -1
  356. package/dist/types/hosting/sqliteSessions.d.ts.map +1 -1
  357. package/dist/types/hosting/types.d.ts +184 -0
  358. package/dist/types/hosting/types.d.ts.map +1 -1
  359. package/dist/types/hosting-providers.d.ts +15 -11
  360. package/dist/types/hosting-providers.d.ts.map +1 -1
  361. package/dist/types/index.d.ts +2 -0
  362. package/dist/types/index.d.ts.map +1 -1
  363. package/dist/types/lib/context-bisect/arms/apply.d.ts +55 -0
  364. package/dist/types/lib/context-bisect/arms/apply.d.ts.map +1 -0
  365. package/dist/types/lib/context-bisect/arms/compare.d.ts +28 -0
  366. package/dist/types/lib/context-bisect/arms/compare.d.ts.map +1 -0
  367. package/dist/types/lib/context-bisect/arms/index.d.ts +17 -0
  368. package/dist/types/lib/context-bisect/arms/index.d.ts.map +1 -0
  369. package/dist/types/lib/context-bisect/arms/manifest.d.ts +80 -0
  370. package/dist/types/lib/context-bisect/arms/manifest.d.ts.map +1 -0
  371. package/dist/types/lib/context-bisect/arms/probe.d.ts +55 -0
  372. package/dist/types/lib/context-bisect/arms/probe.d.ts.map +1 -0
  373. package/dist/types/lib/context-bisect/arms/types.d.ts +320 -0
  374. package/dist/types/lib/context-bisect/arms/types.d.ts.map +1 -0
  375. package/dist/types/lib/context-bisect/arms/validate.d.ts +27 -0
  376. package/dist/types/lib/context-bisect/arms/validate.d.ts.map +1 -0
  377. package/dist/types/lib/context-bisect/arms/verdict.d.ts +54 -0
  378. package/dist/types/lib/context-bisect/arms/verdict.d.ts.map +1 -0
  379. package/dist/types/lib/context-bisect/index.d.ts +1 -0
  380. package/dist/types/lib/context-bisect/index.d.ts.map +1 -1
  381. package/dist/types/lib/injection-engine/index.d.ts +1 -1
  382. package/dist/types/lib/injection-engine/index.d.ts.map +1 -1
  383. package/dist/types/lib/injection-engine/skillExamples.d.ts +16 -13
  384. package/dist/types/lib/injection-engine/skillExamples.d.ts.map +1 -1
  385. package/dist/types/lib/injection-engine/skillGraph.d.ts +50 -0
  386. package/dist/types/lib/injection-engine/skillGraph.d.ts.map +1 -1
  387. package/dist/types/lib/injection-engine/skillGraphCheckup.d.ts +6 -5
  388. package/dist/types/lib/injection-engine/skillGraphCheckup.d.ts.map +1 -1
  389. package/dist/types/lib/injection-engine/skillNeverRoutes.d.ts +132 -0
  390. package/dist/types/lib/injection-engine/skillNeverRoutes.d.ts.map +1 -0
  391. package/dist/types/lib/injection-engine/skillPartition.d.ts +70 -0
  392. package/dist/types/lib/injection-engine/skillPartition.d.ts.map +1 -0
  393. package/dist/types/lib/injection-engine/skillsFromDir.d.ts +83 -3
  394. package/dist/types/lib/injection-engine/skillsFromDir.d.ts.map +1 -1
  395. package/dist/types/lib/injection-engine/skillsFromDirRoutes.d.ts +106 -0
  396. package/dist/types/lib/injection-engine/skillsFromDirRoutes.d.ts.map +1 -0
  397. package/dist/types/lib/injection-engine/startRuleClaim.d.ts +92 -0
  398. package/dist/types/lib/injection-engine/startRuleClaim.d.ts.map +1 -0
  399. package/dist/types/lib/injection-engine/toolOutcome.d.ts +12 -3
  400. package/dist/types/lib/injection-engine/toolOutcome.d.ts.map +1 -1
  401. package/dist/types/memory/define.d.ts.map +1 -1
  402. package/dist/types/memory/define.types.d.ts +27 -0
  403. package/dist/types/memory/define.types.d.ts.map +1 -1
  404. package/package.json +1 -1
@@ -93,12 +93,21 @@
93
93
  * visible wherever the graph reports its problems — because a reader who meets
94
94
  * it only in prose docs will meet a clean report first.
95
95
  *
96
+ * ## The opposite assertion lives next door
97
+ *
98
+ * Everything here is POSITIVE: this rule claims this phrase. The negative form
99
+ * — a phrase that must claim NO skill, which is the assertion that catches
100
+ * over-triggering — is `skillNeverRoutes.ts`, declared on the GRAPH rather than
101
+ * on a rule (a phrase that must route nowhere belongs to no skill). Both ask
102
+ * `startRuleClaim.ts` the same question and differ only in which answer is a
103
+ * defect; a phrase declared BOTH ways is reported there as the contradiction it
104
+ * is.
105
+ *
96
106
  * Composed into `graph.checkup()` by `skillGraph.ts`, exactly like
97
107
  * `skillContract`/`skillIntent`/`skillVocabulary`: this module owns the rule
98
108
  * AND its boundaries, and reports in the shared `GraphProblem` voice.
99
109
  */
100
- import type { InjectionContext } from './types.js';
101
- import { type SkillMatchData } from './skillMatch.js';
110
+ import { type StartRuleDecl } from './startRuleClaim.js';
102
111
  import type { GraphProblem } from './skillGraphCheckup.js';
103
112
  /**
104
113
  * The statement the check-up makes about its own reach, carried on
@@ -111,18 +120,12 @@ export declare const EXAMPLES_BOUNDARY: string;
111
120
  * only the order-independent check (self-match) could run. */
112
121
  export declare const EXAMPLES_ORDER_NOT_CHECKED: string;
113
122
  /**
114
- * The slice of an entry declaration this module reads — structural, so
115
- * `skillGraph.ts`'s module-private `EntryDecl` satisfies it unchanged (the
116
- * same trick `skillIntent.ts` uses).
123
+ * The slice of an entry declaration this module reads — the shared claim shape
124
+ * ({@link StartRuleDecl}, which owns "who claims a phrase") plus the one field
125
+ * only this check reads. Structural, so `skillGraph.ts`'s module-private
126
+ * `EntryDecl` satisfies it unchanged (the same trick `skillIntent.ts` uses).
117
127
  */
118
- export interface ExampleRuleDecl {
119
- readonly id: string;
120
- /** The compiled condition (from `match:`) or the author's `when`. Absent on
121
- * an unconditional entry and on an intent rule (no sync predicate). */
122
- readonly when?: (ctx: InjectionContext) => boolean;
123
- /** The serializable matcher behind `when`, when declared as data — quoted
124
- * back in the messages, and the one way to spot the intent arm. */
125
- readonly match?: SkillMatchData;
128
+ export interface ExampleRuleDecl extends StartRuleDecl {
126
129
  /** The phrasings this rule claims (build-time TEST material). */
127
130
  readonly examples?: readonly string[];
128
131
  }
@@ -1 +1 @@
1
- {"version":3,"file":"skillExamples.d.ts","sourceRoot":"","sources":["../../../../src/lib/injection-engine/skillExamples.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkGG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAqB,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,QAEsC,CAAC;AAErE;+DAC+D;AAC/D,eAAO,MAAM,0BAA0B,QAG4B,CAAC;AAEpE;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB;4EACwE;IACxE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,OAAO,CAAC;IACnD;wEACoE;IACpE,QAAQ,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC;IAChC,iEAAiE;IACjE,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACvC;AAED;gEACgE;AAChE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAC;IAC3C,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAOD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,OAAO,EACjB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE;IAAE,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,GACnE,SAAS,MAAM,EAAE,GAAG,SAAS,CAgD/B;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAC5C,QAAQ,CAAC,OAAO,EAAE,SAAS,eAAe,EAAE,CAAC;IAC7C,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;CACjC,GAAG,eAAe,CAwMlB"}
1
+ {"version":3,"file":"skillExamples.d.ts","sourceRoot":"","sources":["../../../../src/lib/injection-engine/skillExamples.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4GG;AAEH,OAAO,EAKL,KAAK,aAAa,EACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,QAEsC,CAAC;AAErE;+DAC+D;AAC/D,eAAO,MAAM,0BAA0B,QAG4B,CAAC;AAEpE;;;;;GAKG;AACH,MAAM,WAAW,eAAgB,SAAQ,aAAa;IACpD,iEAAiE;IACjE,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACvC;AAED;gEACgE;AAChE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAC;IAC3C,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAOD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,OAAO,EACjB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE;IAAE,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,GACnE,SAAS,MAAM,EAAE,GAAG,SAAS,CAgD/B;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAC5C,QAAQ,CAAC,OAAO,EAAE,SAAS,eAAe,EAAE,CAAC;IAC7C,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;CACjC,GAAG,eAAe,CAyLlB"}
@@ -208,6 +208,16 @@ export interface SkillGraphFlatConfig {
208
208
  * See {@link BuildOptions.scopeTools}.
209
209
  */
210
210
  readonly scopeTools?: boolean;
211
+ /**
212
+ * Phrasings this graph must claim NOWHERE — the negative routing rows. Same
213
+ * machine as `.neverRoutes([...])`; see that method for what the check
214
+ * proves and what it deliberately does not. A row a declared start rule
215
+ * claims is an ERROR (`never-routes-claimed`), naming the rule.
216
+ *
217
+ * @example
218
+ * skillGraph({ skills, start: { rules }, neverRoutes: ['what is the weather'] });
219
+ */
220
+ readonly neverRoutes?: readonly string[];
211
221
  readonly check?: GraphCheckMode;
212
222
  /** Baseline agent tool names — see {@link BuildOptions.knownTools}. */
213
223
  readonly knownTools?: readonly string[];
@@ -232,6 +242,10 @@ export interface SkillGraphTreeConfig {
232
242
  readonly scopeTools?: boolean;
233
243
  readonly start?: never;
234
244
  readonly steps?: never;
245
+ /** A tree has no start RULES for a negative row to be judged against, so the
246
+ * type refuses it here and `build()` refuses it at runtime (see
247
+ * {@link SkillGraphBuilder.neverRoutes}). */
248
+ readonly neverRoutes?: never;
235
249
  readonly check?: GraphCheckMode;
236
250
  /** Baseline agent tool names — see {@link BuildOptions.knownTools}. */
237
251
  readonly knownTools?: readonly string[];
@@ -815,6 +829,42 @@ export interface SkillGraphBuilder {
815
829
  * router per graph. Flat graphs only.
816
830
  */
817
831
  classify(scorer: IntentScorer, policy?: Partial<RoutingPolicy>): SkillGraphBuilder;
832
+ /**
833
+ * Declare phrasings this graph must claim **NOWHERE** — the negative form of
834
+ * a rule's `examples`, and the one that catches the expensive failure.
835
+ *
836
+ * An under-triggering skill costs a turn (the model tier picks instead). An
837
+ * OVER-triggering skill costs the answer: the wrong body enters the system
838
+ * prompt and the wrong tools enter the tools slot, and everything said after
839
+ * that is shaped by a skill with no business in the turn.
840
+ *
841
+ * It is declared on the GRAPH, not on a skill, because a phrase that must
842
+ * route nowhere belongs to no skill: the assertion is satisfied only when
843
+ * EVERY rule declines, and a row hung on one skill would vanish the day that
844
+ * skill was deleted — exactly when a graph is re-partitioned, which is
845
+ * exactly when over-triggering appears.
846
+ *
847
+ * `graph.checkup()` runs every declared start condition over the phrase on a
848
+ * cold-start context and reports the rule that claims it, BY NAME, as an
849
+ * ERROR (`never-routes-claimed`) — so a default `.build()` refuses.
850
+ *
851
+ * **What it proves, exactly:** no declared start RULE claims the phrase. Not
852
+ * "no routing at all": an intent rule is judged by a classifier at run time, a
853
+ * scorer / `.entryByRead()` menu ranks descriptions, and `read_skill` can
854
+ * always open an open skill by name. That statement rides the report itself
855
+ * (`checkup().notes`).
856
+ *
857
+ * Accepts one phrase or a list; call it as often as you like (rows
858
+ * accumulate). A duplicate row is refused — one row already asserts it
859
+ * against every rule.
860
+ *
861
+ * @example
862
+ * skillGraph()
863
+ * .entry(billing, { match: { keywords: ['refund', 'charge'] } })
864
+ * .neverRoutes(["what's the weather in Berlin"])
865
+ * .build();
866
+ */
867
+ neverRoutes(phrases: string | readonly string[]): SkillGraphBuilder;
818
868
  build(opts?: BuildOptions): SkillGraph;
819
869
  }
820
870
  export declare function skillGraph(): SkillGraphBuilder;
@@ -1 +1 @@
1
- {"version":3,"file":"skillGraph.d.ts","sourceRoot":"","sources":["../../../../src/lib/injection-engine/skillGraph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skillGraph.d.ts","sourceRoot":"","sources":["../../../../src/lib/injection-engine/skillGraph.ts"],"names":[],"mappings":"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"}
@@ -34,7 +34,7 @@ import { type SkillMatchData } from './skillMatch.js';
34
34
  * engine-type-free, which is what keeps that law intact here).
35
35
  */
36
36
  export type CheckupTriggerKind = 'always' | 'rule' | 'on-tool-return' | 'llm-activated';
37
- export type GraphProblemCode = 'unknown-skill' | 'no-entry' | 'unreachable-skill' | 'model-edge-only' | 'multi-entry-fanout' | 'dead-entry-step' | 'ambiguous-routes' | 'self-loop' | 'rule-id-exists' | 'overlapping-rules' | 'rules-shadowed-by-order' | 'intent-without-classify' | 'duplicate-intent-example' | 'overlapping-intents' | 'body-foreign-tool' | 'body-unknown-tool' | 'example-misses-own-rule' | 'example-shadowed-by-earlier' | 'example-shadowed-by-default' | 'example-unclaimed' | 'artifact-kind-unsatisfied';
37
+ export type GraphProblemCode = 'unknown-skill' | 'no-entry' | 'unreachable-skill' | 'model-edge-only' | 'multi-entry-fanout' | 'dead-entry-step' | 'ambiguous-routes' | 'self-loop' | 'rule-id-exists' | 'overlapping-rules' | 'rules-shadowed-by-order' | 'intent-without-classify' | 'duplicate-intent-example' | 'overlapping-intents' | 'body-foreign-tool' | 'body-unknown-tool' | 'example-misses-own-rule' | 'example-shadowed-by-earlier' | 'example-shadowed-by-default' | 'example-unclaimed' | 'never-routes-claimed' | 'never-routes-by-default' | 'never-routes-contradicts-example' | 'tools-share-prefix' | 'few-declared-edges' | 'skill-wraps-one-tool' | 'artifact-kind-unsatisfied';
38
38
  /** One issue found by the check-up. `kind: 'error'` fails `ok` (and `'throw'`). */
39
39
  export interface GraphProblem {
40
40
  readonly kind: 'error' | 'warning';
@@ -45,10 +45,11 @@ export interface GraphProblem {
45
45
  readonly from?: string;
46
46
  readonly to?: string;
47
47
  /**
48
- * The declared example phrase this problem is about — present only on the
49
- * `example-*` codes, which are the only checks that reason about a concrete
50
- * phrase. The message always quotes it too; this is the same string as data,
51
- * so a tool can group by phrase without parsing prose.
48
+ * The declared phrase this problem is about — present on the `example-*`
49
+ * codes and on the `never-routes-*` ones, the checks that reason about a
50
+ * concrete phrase (in the positive and the negative direction respectively).
51
+ * The message always quotes it too; this is the same string as data, so a
52
+ * tool can group by phrase without parsing prose.
52
53
  */
53
54
  readonly example?: string;
54
55
  }
@@ -1 +1 @@
1
- {"version":3,"file":"skillGraphCheckup.d.ts","sourceRoot":"","sources":["../../../../src/lib/injection-engine/skillGraphCheckup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEvE;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,MAAM,GAAG,gBAAgB,GAAG,eAAe,CAAC;AAExF,MAAM,MAAM,gBAAgB,GACxB,eAAe,GACf,UAAU,GACV,mBAAmB,GACnB,iBAAiB,GACjB,oBAAoB,GACpB,iBAAiB,GACjB,kBAAkB,GAClB,WAAW,GAEX,gBAAgB,GAKhB,mBAAmB,GACnB,yBAAyB,GAIzB,yBAAyB,GAIzB,0BAA0B,GAG1B,qBAAqB,GAIrB,mBAAmB,GACnB,mBAAmB,GAInB,yBAAyB,GAKzB,6BAA6B,GAO7B,6BAA6B,GAO7B,mBAAmB,GAInB,2BAA2B,CAAC;AAMhC,mFAAmF;AACnF,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,qEAAqE;IACrE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,0EAA0E;AAC1E,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAC;IAC3C;;;;;;;;OAQG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC;AAED,gDAAgD;AAChD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB;qDACiD;IACjD,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B;;;+EAG2E;IAC3E,QAAQ,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC;CACjC;AAED,MAAM,WAAW,YAAY;IAC3B,mCAAmC;IACnC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACvC,oFAAoF;IACpF,QAAQ,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;IAC1C,+EAA+E;IAC/E,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACzF,sFAAsF;IACtF,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC;;;;;;;OAOG;IACH,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC/D;;;;;;;;OAQG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,8BAA8B;AAC9B,wBAAgB,YAAY,CAAC,KAAK,EAAE,YAAY,GAAG,YAAY,CAwV9D;AA2CD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAI3D"}
1
+ {"version":3,"file":"skillGraphCheckup.d.ts","sourceRoot":"","sources":["../../../../src/lib/injection-engine/skillGraphCheckup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEvE;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,MAAM,GAAG,gBAAgB,GAAG,eAAe,CAAC;AAExF,MAAM,MAAM,gBAAgB,GACxB,eAAe,GACf,UAAU,GACV,mBAAmB,GACnB,iBAAiB,GACjB,oBAAoB,GACpB,iBAAiB,GACjB,kBAAkB,GAClB,WAAW,GAEX,gBAAgB,GAKhB,mBAAmB,GACnB,yBAAyB,GAIzB,yBAAyB,GAIzB,0BAA0B,GAG1B,qBAAqB,GAIrB,mBAAmB,GACnB,mBAAmB,GAInB,yBAAyB,GAKzB,6BAA6B,GAO7B,6BAA6B,GAO7B,mBAAmB,GAOnB,sBAAsB,GAKtB,yBAAyB,GAIzB,kCAAkC,GAOlC,oBAAoB,GAEpB,oBAAoB,GAEpB,sBAAsB,GAGtB,2BAA2B,CAAC;AAMhC,mFAAmF;AACnF,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,qEAAqE;IACrE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,0EAA0E;AAC1E,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAC;IAC3C;;;;;;;;OAQG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC;AAED,gDAAgD;AAChD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB;qDACiD;IACjD,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B;;;+EAG2E;IAC3E,QAAQ,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC;CACjC;AAED,MAAM,WAAW,YAAY;IAC3B,mCAAmC;IACnC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACvC,oFAAoF;IACpF,QAAQ,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;IAC1C,+EAA+E;IAC/E,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACzF,sFAAsF;IACtF,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC;;;;;;;OAOG;IACH,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC/D;;;;;;;;OAQG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,8BAA8B;AAC9B,wBAAgB,YAAY,CAAC,KAAK,EAAE,YAAY,GAAG,YAAY,CAwV9D;AA2CD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAI3D"}
@@ -0,0 +1,132 @@
1
+ /**
2
+ * skillNeverRoutes — the NEGATIVE routing row: a phrase this graph must claim
3
+ * NOWHERE.
4
+ *
5
+ * ## Why the negative form is the valuable one
6
+ *
7
+ * `skillExamples.ts` pins the positive assertion — this rule claims this
8
+ * phrasing — and it cannot state the opposite. Field use says the opposite is
9
+ * the one that catches the expensive failure. An UNDER-triggering skill costs a
10
+ * turn: the deterministic layer declines, the model tier picks, and the answer
11
+ * is usually still reachable. An OVER-triggering skill costs the whole answer:
12
+ * the wrong body enters the system prompt, the wrong tools enter the tools
13
+ * slot, and everything the model then says is shaped by a skill that had no
14
+ * business in the turn. One reviewer of a production graph had written his own
15
+ * harness for exactly this, outside the library, because the library could only
16
+ * express the cheap half.
17
+ *
18
+ * ## Where a negative row lives, and why it is NOT on a skill
19
+ *
20
+ * `examples` sits on the rule it is about. A negative row cannot: the phrase it
21
+ * describes belongs to NO skill, and hanging it on one would make three things
22
+ * wrong at once —
23
+ *
24
+ * • it would read as that skill's business ("weather questions, filed under
25
+ * billing") when the point is that it is nobody's;
26
+ * • the assertion is satisfied only when EVERY rule declines, so a row read
27
+ * as one rule's property would be checked against one rule and pass while
28
+ * another rule swallowed the phrase;
29
+ * • deleting the skill would delete the assertion — exactly when a graph is
30
+ * re-partitioned, which is exactly when over-triggering is introduced.
31
+ *
32
+ * A negative row is a property of the PARTITION, so it is declared at the graph
33
+ * level (`.neverRoutes([...])` / `neverRoutes: [...]`) and judged against every
34
+ * rule in declaration order.
35
+ *
36
+ * ## What is asserted — precisely, and what it does NOT cover
37
+ *
38
+ * The claim this module proves is: **no declared start RULE claims the
39
+ * phrase.** It runs the compiled conditions on a cold-start context, exactly as
40
+ * `skillExamples.ts` does, and reports the rule that says yes.
41
+ *
42
+ * It does NOT prove "no routing at all occurs", and could not without becoming
43
+ * a different kind of check:
44
+ *
45
+ * • an INTENT rule compiles to no sync predicate — a classifier judges it at
46
+ * run time, with a scorer (and, for `llmClassifier`, a model call). Running
47
+ * that would make the check async, non-deterministic, and in the LLM case
48
+ * billable — `graph.checkupIntents()` is where scorer-dependent auditing
49
+ * already lives;
50
+ * • a scorer menu (`.entryBy()`) and `.entryByRead()` RANK descriptions;
51
+ * there is no claim to run;
52
+ * • the model tier can open any open skill by name with `read_skill`, at
53
+ * which point no declaration is deciding anything.
54
+ *
55
+ * That statement ships on the report as {@link NEVER_ROUTES_BOUNDARY}, next to
56
+ * the problems, for the same reason the examples boundary does: a reader who
57
+ * meets a boundary only in prose docs meets a clean report first.
58
+ *
59
+ * A predicate that THROWS on the cold context counts as a no-match here, and is
60
+ * not reported — because routing itself treats a throw as a no-match, so the
61
+ * phrase really does not route through that rule. Its own rule's `examples`
62
+ * report the throw as an error (that is a defect in the rule, not in the
63
+ * partition).
64
+ *
65
+ * Composed into `graph.checkup()` by `skillGraph.ts`, like every other domain
66
+ * check, and reporting in the shared `GraphProblem` voice.
67
+ *
68
+ * Zone: PURE CORE. Pinned by
69
+ * `test/lib/injection-engine/skill-graph-fence.test.ts`.
70
+ */
71
+ import type { GraphProblem } from './skillGraphCheckup.js';
72
+ import { type StartRuleDecl } from './startRuleClaim.js';
73
+ /**
74
+ * The statement the negative check makes about its own reach, carried on
75
+ * `GraphCheckup.notes` whenever a graph declared any negative row. Same voice
76
+ * as `EXAMPLES_BOUNDARY` (skillExamples.ts): silence here is evidence about the declared
77
+ * RULES, and about nothing downstream of them.
78
+ */
79
+ export declare const NEVER_ROUTES_BOUNDARY: string;
80
+ /** The slice of an entry declaration this check reads: the shared claim shape,
81
+ * plus the POSITIVE phrases the same rule declared (a phrase asserted both
82
+ * ways is a contradiction the author wrote, and is reported as one). */
83
+ export interface NeverRoutesRuleDecl extends StartRuleDecl {
84
+ readonly examples?: readonly string[];
85
+ }
86
+ /** What {@link checkNeverRoutes} found, plus what it wants to say about its own
87
+ * reach. Both empty when the graph declared no negative row. */
88
+ export interface NeverRoutesCheckup {
89
+ readonly problems: readonly GraphProblem[];
90
+ readonly notes: readonly string[];
91
+ }
92
+ /** How two phrases are compared for "the same phrase": trimmed and
93
+ * case-folded, the same normalization `duplicate-intent-example` uses — an
94
+ * author who writes one row in two casings meant one row. Exported so the
95
+ * builder's accumulated-rows set is keyed the SAME way the refusal is; two
96
+ * spellings of one rule is how a duplicate slips through. */
97
+ export declare function neverRouteKey(phrase: string): string;
98
+ /**
99
+ * Validate a graph-level `neverRoutes` list at DECLARATION time, refusing every
100
+ * shape whose check-up answer could only mislead — each refusal naming the fix:
101
+ *
102
+ * • not an array / an EMPTY array — nothing to assert, and a check-up that
103
+ * passes in silence reads as coverage;
104
+ * • a non-string or blank entry — there is no phrase to run a matcher on;
105
+ * • a phrase already declared — a repeat asserts nothing the first one did
106
+ * not, and reads as if two different phrasings were meant.
107
+ *
108
+ * A single string is accepted and read as a one-row list: `.neverRoutes('what
109
+ * is the weather')` is the commonest call, and making the author type brackets
110
+ * for it buys nothing.
111
+ *
112
+ * Returns a frozen copy of the ROWS THIS CALL ADDS, so the stored list cannot
113
+ * drift from the validated one.
114
+ */
115
+ export declare function validateNeverRoutes(phrases: unknown, where: string, alreadyDeclared: ReadonlySet<string>): readonly string[];
116
+ /**
117
+ * Run the negative rows against the declared start rules. Pure, and
118
+ * byte-identically silent when the graph declared none (one length check and
119
+ * out).
120
+ *
121
+ * Unlike the positive examples, this needs NO `orderDecides` gate: the
122
+ * assertion is "nobody claims it", which every rule has to satisfy, so the
123
+ * order they are read in cannot change the answer. That is also why it is the
124
+ * one phrase check that stays meaningful under a classifier — tier 1 is still
125
+ * read first there, and a rule that claims the phrase still takes the turn
126
+ * before any scorer runs.
127
+ */
128
+ export declare function checkNeverRoutes(input: {
129
+ readonly entries: readonly NeverRoutesRuleDecl[];
130
+ readonly phrases: readonly string[];
131
+ }): NeverRoutesCheckup;
132
+ //# sourceMappingURL=skillNeverRoutes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skillNeverRoutes.d.ts","sourceRoot":"","sources":["../../../../src/lib/injection-engine/skillNeverRoutes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAIL,KAAK,aAAa,EACnB,MAAM,qBAAqB,CAAC;AAE7B;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,QAI6B,CAAC;AAEhE;;yEAEyE;AACzE,MAAM,WAAW,mBAAoB,SAAQ,aAAa;IACxD,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACvC;AAED;iEACiE;AACjE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAC;IAC3C,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAOD;;;;8DAI8D;AAC9D,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,eAAe,EAAE,WAAW,CAAC,MAAM,CAAC,GACnC,SAAS,MAAM,EAAE,CAsCnB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IACtC,QAAQ,CAAC,OAAO,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACjD,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC,GAAG,kBAAkB,CA0FrB"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * skillPartition — three ADVISORY signals about the shape of the partition
3
+ * itself: how a graph cut the world into skills.
4
+ *
5
+ * ## Why the partition is worth a check at all
6
+ *
7
+ * Everything else the check-up reports is a wiring fact — an edge to a skill
8
+ * that is not there, a rule that can never win. The partition is upstream of
9
+ * all of it, and it is the decision with the most leverage: a graph whose
10
+ * skills follow SYSTEMS rather than CAPABILITIES makes one ordinary question
11
+ * cross four skills, and the capability the user actually wanted ends up
12
+ * implemented outside the graph, by hand, where nothing can see it. Field use
13
+ * produced exactly that shape — nineteen skills, ONE declared edge, and tool
14
+ * names carrying the system that owns them (`influx_*`, `pmax_*`, `pstore_*`,
15
+ * `rvtools_*`) with the skills following the prefixes.
16
+ *
17
+ * The important part: all three of those are visible from NAMES AND STRUCTURE
18
+ * ALONE, at build time, with no run and no model. So the runtime can say them.
19
+ *
20
+ * ## Why every one of them is an advisory, and stays one
21
+ *
22
+ * Each signal has a legitimate design behind it:
23
+ *
24
+ * • a skill really can be one system's capability (a weather skill wrapping a
25
+ * weather API is not a mistake);
26
+ * • a deliberately FLAT menu of independent skills really does declare almost
27
+ * no edges — a scorer or the model picks, and there is nothing to hand off;
28
+ * • a one-call capability really can be one tool with a short body.
29
+ *
30
+ * So none of them is ever an error, and none of them says "this is wrong". Each
31
+ * message states the SIGNAL AS A FACT the author can check against their own
32
+ * intent — "your 19 skills declare 1 route", "every tool in `powerstore` shares
33
+ * the prefix `pstore_`" — and then names the design each fact usually indicates
34
+ * and the design it is also consistent with. This library's check-up teaches;
35
+ * it does not grade.
36
+ *
37
+ * ## The thresholds, and why each one is where it is
38
+ *
39
+ * Named constants below, each with the argument beside it. They are chosen so a
40
+ * SMALL graph is silent (small graphs have no partition problem worth naming),
41
+ * so a trivially-true observation is never dressed up as a finding (one tool
42
+ * shares a prefix with itself), and so the commonest honest naming convention —
43
+ * a VERB first — never fires.
44
+ *
45
+ * Zone: PURE CORE. Pinned by
46
+ * `test/lib/injection-engine/skill-graph-fence.test.ts`.
47
+ */
48
+ import type { GraphProblem } from './skillGraphCheckup.js';
49
+ import type { Injection } from './types.js';
50
+ /** What the partition check reads. Counts, because that is what the signals
51
+ * are about — no check here reasons about which edge goes where. */
52
+ export interface PartitionInput {
53
+ /** Every skill in the graph (wired or not). */
54
+ readonly skills: readonly Injection[];
55
+ /** Declared routes, of any kind (a bare/model edge is still a declared
56
+ * handoff — the signal is about handoffs that were never written down at
57
+ * all, not about how deterministic they are). */
58
+ readonly routeCount: number;
59
+ /** Declared entries — quoted in the ratio message so the fact is complete. */
60
+ readonly entryCount: number;
61
+ /** A decision `tree()` owns its own routing and declares no routes by
62
+ * construction, so the edge-ratio signal does not apply there. */
63
+ readonly isTree: boolean;
64
+ }
65
+ /**
66
+ * Run the three partition signals. Pure, and cheap: one pass over the skills
67
+ * and two integers. Every problem it produces is a WARNING.
68
+ */
69
+ export declare function checkPartition(input: PartitionInput): GraphProblem[];
70
+ //# sourceMappingURL=skillPartition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skillPartition.d.ts","sourceRoot":"","sources":["../../../../src/lib/injection-engine/skillPartition.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AA+G5C;qEACqE;AACrE,MAAM,WAAW,cAAc;IAC7B,+CAA+C;IAC/C,QAAQ,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,CAAC;IACtC;;sDAEkD;IAClD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,8EAA8E;IAC9E,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B;uEACmE;IACnE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,cAAc,GAAG,YAAY,EAAE,CAsFpE"}
@@ -76,9 +76,36 @@
76
76
  * others take `defineSkill`'s defaults.
77
77
  * - unknown frontmatter keys are still IGNORED, not rejected, so a file
78
78
  * carrying another tool's metadata still loads here. `name`,
79
- * `description`, `tools`, `steps` and `onSkip` are the KNOWN keys — a file
80
- * that used one of those five for something else is the one case this
81
- * release can change, and it changes it loudly.
79
+ * `description`, `tools`, `steps`, `onSkip` and `routes` are the KNOWN
80
+ * keys — a file that used one of those six for something else is the one
81
+ * case a release can change, and it changes it loudly.
82
+ *
83
+ * ── The routing, and the door that reads it (9.43.0) ─────────────────────────
84
+ * A runbook says what to do, what to do it with, in what order — and where the
85
+ * work goes NEXT. That last part is the graph, and until now it had to be
86
+ * hand-wired in code even when the files said it plainly. `routes:` closes it:
87
+ *
88
+ * ---
89
+ * name: billing
90
+ * tools: lookup_order, issue_refund
91
+ * routes:
92
+ * - escalation: on issue_refund status=denied
93
+ * - receipts: on issue_refund
94
+ * ---
95
+ *
96
+ * const runbook = await runbookFromDir('./skills', { tools: [...] });
97
+ * const graph = skillGraph({ ...runbook, start: 'billing' });
98
+ *
99
+ * TWO DOORS, one truth: `skillsFromDir` returns skills and REFUSES a file that
100
+ * declares `routes:` (a door that dropped the routing would hand back a graph
101
+ * you believed was declared on disk); {@link runbookFromDir} returns
102
+ * `{ skills, steps }`. Same law as `tools:` — the file PICKS (a route names a
103
+ * skill id this directory declares; an unknown id is refused at load, by name,
104
+ * listing what is available), it never DEFINES. A guard is one of the two DATA
105
+ * conditions a route already has (`on <tool_name>`, `status=<outcome>`), and
106
+ * nothing else: a `when` predicate is CODE, no file can carry code, and that
107
+ * conditional stays in your source. See `skillsFromDirRoutes.ts` for the whole
108
+ * grammar and every refusal.
82
109
  *
83
110
  * A worked example feeding this into a graph:
84
111
  * `examples/features/47-skills-from-dir-graph.ts`.
@@ -111,6 +138,7 @@
111
138
  import type { Injection } from './types.js';
112
139
  import type { Tool } from '../../core/tools.js';
113
140
  import { type SurfaceMode } from './factories/defineSkill.js';
141
+ import type { SkillGraphStep } from './skillGraph.js';
114
142
  export interface SkillsFromDirOptions {
115
143
  /**
116
144
  * Where a loaded skill's body lands once activated. Defaults to
@@ -133,6 +161,31 @@ export interface SkillsFromDirOptions {
133
161
  */
134
162
  readonly tools?: readonly Tool[];
135
163
  }
164
+ /**
165
+ * A whole runbook directory, read as the two things a graph is made of
166
+ * (9.43.0): the skills, and the edges between them.
167
+ *
168
+ * Spreads straight into the graph — the field names are the graph's own, so
169
+ * nothing has to be translated at the call site:
170
+ *
171
+ * const runbook = await runbookFromDir('./skills', { tools });
172
+ * const graph = skillGraph({ ...runbook, start: 'triage' });
173
+ */
174
+ export interface DirRunbook {
175
+ /** Every `SKILL.md` under the directory, as Skill Injections — byte-identical
176
+ * to what `skillsFromDir` returns for the same directory. */
177
+ readonly skills: readonly Injection[];
178
+ /**
179
+ * The declared edges, ready for `skillGraph({ steps })`. In skill-name order,
180
+ * then file order, so a graph built from a directory is stable.
181
+ *
182
+ * NAME NOTE, because two different things are spelled `steps` in this
183
+ * library: a file's own `steps:` key is that SKILL's tool sequence (which
184
+ * rides on the skill, unchanged); these `steps` are the GRAPH's edges, read
185
+ * from each file's `routes:` key. They never meet.
186
+ */
187
+ readonly steps: readonly SkillGraphStep[];
188
+ }
136
189
  /**
137
190
  * Load every `SKILL.md` under `dir` as a Skill Injection.
138
191
  *
@@ -155,4 +208,31 @@ export interface SkillsFromDirOptions {
155
208
  * does not carry, or sequences a tool the file itself did not declare.
156
209
  */
157
210
  export declare function skillsFromDir(dir: string, opts?: SkillsFromDirOptions): Promise<readonly Injection[]>;
211
+ /**
212
+ * Load a directory as a whole RUNBOOK (9.43.0) — the skills AND the edges
213
+ * between them.
214
+ *
215
+ * `skillsFromDir` reads what one skill is; this reads what the skills are TO
216
+ * EACH OTHER, from each file's `routes:` key, and hands back both halves ready
217
+ * for `skillGraph({ ...runbook, start })`. Everything else is identical: same
218
+ * layouts, same frontmatter, same tool registry, same refusals.
219
+ *
220
+ * The routing a file may carry is deliberately small, and the boundary is a
221
+ * security property rather than a limitation — see `skillsFromDirRoutes.ts`:
222
+ * a route NAMES a skill this directory declares (an unknown id is refused at
223
+ * load, by name, listing what is available — never a half-graph), and a guard
224
+ * is one of the two DATA conditions a route already has (`on <tool>`,
225
+ * `status=<outcome>`). A `when` predicate is code, so no file can express one;
226
+ * that conditional stays in your source, where `skillGraph({ steps })` takes it.
227
+ *
228
+ * @param dir - A local filesystem path. Same rule as `skillsFromDir`.
229
+ * @param opts - Applied uniformly to every loaded skill.
230
+ *
231
+ * @throws everything `skillsFromDir` throws, plus: a route to an id no
232
+ * `SKILL.md` in the directory declares (the message lists what is
233
+ * available), a guard the grammar cannot express (the message quotes the
234
+ * whole grammar), a guard naming a tool the file itself does not declare,
235
+ * and a file routing to the same skill twice.
236
+ */
237
+ export declare function runbookFromDir(dir: string, opts?: SkillsFromDirOptions): Promise<DirRunbook>;
158
238
  //# sourceMappingURL=skillsFromDir.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"skillsFromDir.d.ts","sourceRoot":"","sources":["../../../../src/lib/injection-engine/skillsFromDir.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6GG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAEhD,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAmB3E,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IACnC;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,IAAI,EAAE,CAAC;CAClC;AAsBD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,oBAAyB,GAC9B,OAAO,CAAC,SAAS,SAAS,EAAE,CAAC,CAyF/B"}
1
+ {"version":3,"file":"skillsFromDir.d.ts","sourceRoot":"","sources":["../../../../src/lib/injection-engine/skillsFromDir.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAEhD,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAoBtD,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IACnC;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,IAAI,EAAE,CAAC;CAClC;AA2BD;;;;;;;;;GASG;AACH,MAAM,WAAW,UAAU;IACzB;kEAC8D;IAC9D,QAAQ,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,CAAC;IACtC;;;;;;;;OAQG;IACH,QAAQ,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,CAAC;CAC3C;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,oBAAyB,GAC9B,OAAO,CAAC,SAAS,SAAS,EAAE,CAAC,CAoB/B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,oBAAyB,GAC9B,OAAO,CAAC,UAAU,CAAC,CASrB"}