@nanonets/graft 0.24.1 → 0.25.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 (480) hide show
  1. package/README.md +26 -21
  2. package/dist/blast/render.js +1 -1
  3. package/dist/blast/render.js.map +1 -1
  4. package/dist/brand.js +1 -1
  5. package/dist/brand.js.map +1 -1
  6. package/dist/check/learning-edits.d.ts +18 -3
  7. package/dist/check/learning-edits.d.ts.map +1 -1
  8. package/dist/check/learning-edits.js +54 -10
  9. package/dist/check/learning-edits.js.map +1 -1
  10. package/dist/check/local-check.d.ts +7 -3
  11. package/dist/check/local-check.d.ts.map +1 -1
  12. package/dist/check/local-check.js +55 -11
  13. package/dist/check/local-check.js.map +1 -1
  14. package/dist/check/types.d.ts +11 -2
  15. package/dist/check/types.d.ts.map +1 -1
  16. package/dist/claude/format.d.ts +11 -7
  17. package/dist/claude/format.d.ts.map +1 -1
  18. package/dist/claude/format.js +50 -28
  19. package/dist/claude/format.js.map +1 -1
  20. package/dist/claude/hook-io.js +1 -1
  21. package/dist/claude/hook-io.js.map +1 -1
  22. package/dist/claude/hook-layers.d.ts +4 -2
  23. package/dist/claude/hook-layers.d.ts.map +1 -1
  24. package/dist/claude/hook-layers.js +21 -4
  25. package/dist/claude/hook-layers.js.map +1 -1
  26. package/dist/claude/hooks.d.ts +9 -32
  27. package/dist/claude/hooks.d.ts.map +1 -1
  28. package/dist/claude/hooks.js +154 -350
  29. package/dist/claude/hooks.js.map +1 -1
  30. package/dist/claude/init.d.ts.map +1 -1
  31. package/dist/claude/init.js +56 -18
  32. package/dist/claude/init.js.map +1 -1
  33. package/dist/claude/note-signals.d.ts +6 -0
  34. package/dist/claude/note-signals.d.ts.map +1 -1
  35. package/dist/claude/note-signals.js +14 -3
  36. package/dist/claude/note-signals.js.map +1 -1
  37. package/dist/claude/post-bash.d.ts +26 -0
  38. package/dist/claude/post-bash.d.ts.map +1 -0
  39. package/dist/claude/post-bash.js +191 -0
  40. package/dist/claude/post-bash.js.map +1 -0
  41. package/dist/claude/pre-bash-skills.d.ts +21 -0
  42. package/dist/claude/pre-bash-skills.d.ts.map +1 -0
  43. package/dist/claude/pre-bash-skills.js +253 -0
  44. package/dist/claude/pre-bash-skills.js.map +1 -0
  45. package/dist/claude/pre-bash.d.ts +50 -0
  46. package/dist/claude/pre-bash.d.ts.map +1 -0
  47. package/dist/claude/pre-bash.js +245 -0
  48. package/dist/claude/pre-bash.js.map +1 -0
  49. package/dist/claude/prompt-consent.d.ts +19 -0
  50. package/dist/claude/prompt-consent.d.ts.map +1 -0
  51. package/dist/claude/prompt-consent.js +14 -0
  52. package/dist/claude/prompt-consent.js.map +1 -0
  53. package/dist/claude/prompt-hook.d.ts +76 -0
  54. package/dist/claude/prompt-hook.d.ts.map +1 -0
  55. package/dist/claude/prompt-hook.js +303 -0
  56. package/dist/claude/prompt-hook.js.map +1 -0
  57. package/dist/claude/prompt-skills.d.ts +19 -0
  58. package/dist/claude/prompt-skills.d.ts.map +1 -0
  59. package/dist/claude/prompt-skills.js +305 -0
  60. package/dist/claude/prompt-skills.js.map +1 -0
  61. package/dist/claude/session-metrics.js +4 -4
  62. package/dist/claude/session-metrics.js.map +1 -1
  63. package/dist/claude/settings-merge.d.ts +10 -0
  64. package/dist/claude/settings-merge.d.ts.map +1 -1
  65. package/dist/claude/settings-merge.js +46 -17
  66. package/dist/claude/settings-merge.js.map +1 -1
  67. package/dist/claude/shim-template.d.ts.map +1 -1
  68. package/dist/claude/shim-template.js +86 -28
  69. package/dist/claude/shim-template.js.map +1 -1
  70. package/dist/claude/skill-template.d.ts +2 -0
  71. package/dist/claude/skill-template.d.ts.map +1 -1
  72. package/dist/claude/skill-template.js +53 -34
  73. package/dist/claude/skill-template.js.map +1 -1
  74. package/dist/claude/skill-use.d.ts +16 -0
  75. package/dist/claude/skill-use.d.ts.map +1 -0
  76. package/dist/claude/skill-use.js +78 -0
  77. package/dist/claude/skill-use.js.map +1 -0
  78. package/dist/claude/skills-wiring.d.ts +26 -0
  79. package/dist/claude/skills-wiring.d.ts.map +1 -0
  80. package/dist/claude/skills-wiring.js +110 -0
  81. package/dist/claude/skills-wiring.js.map +1 -0
  82. package/dist/claude/start-init.d.ts +13 -0
  83. package/dist/claude/start-init.d.ts.map +1 -0
  84. package/dist/claude/start-init.js +75 -0
  85. package/dist/claude/start-init.js.map +1 -0
  86. package/dist/claude/start-skills.d.ts +31 -0
  87. package/dist/claude/start-skills.d.ts.map +1 -0
  88. package/dist/claude/start-skills.js +274 -0
  89. package/dist/claude/start-skills.js.map +1 -0
  90. package/dist/claude/state.d.ts +19 -7
  91. package/dist/claude/state.d.ts.map +1 -1
  92. package/dist/claude/state.js +59 -4
  93. package/dist/claude/state.js.map +1 -1
  94. package/dist/claude/stop-skills.d.ts +23 -0
  95. package/dist/claude/stop-skills.d.ts.map +1 -0
  96. package/dist/claude/stop-skills.js +233 -0
  97. package/dist/claude/stop-skills.js.map +1 -0
  98. package/dist/claude/stop.d.ts +23 -0
  99. package/dist/claude/stop.d.ts.map +1 -0
  100. package/dist/claude/stop.js +219 -0
  101. package/dist/claude/stop.js.map +1 -0
  102. package/dist/claude/tally.d.ts +29 -41
  103. package/dist/claude/tally.d.ts.map +1 -1
  104. package/dist/claude/tally.js +111 -165
  105. package/dist/claude/tally.js.map +1 -1
  106. package/dist/claude/walls-hook.d.ts +52 -0
  107. package/dist/claude/walls-hook.d.ts.map +1 -0
  108. package/dist/claude/walls-hook.js +279 -0
  109. package/dist/claude/walls-hook.js.map +1 -0
  110. package/dist/cli-epilogue.d.ts.map +1 -1
  111. package/dist/cli-epilogue.js +24 -14
  112. package/dist/cli-epilogue.js.map +1 -1
  113. package/dist/cli-meta.js +3 -3
  114. package/dist/cli-meta.js.map +1 -1
  115. package/dist/cli-picker.d.ts.map +1 -1
  116. package/dist/cli-picker.js +8 -6
  117. package/dist/cli-picker.js.map +1 -1
  118. package/dist/cli.d.ts.map +1 -1
  119. package/dist/cli.js +238 -402
  120. package/dist/cli.js.map +1 -1
  121. package/dist/cloud/head-learnings.d.ts +13 -0
  122. package/dist/cloud/head-learnings.d.ts.map +1 -0
  123. package/dist/cloud/head-learnings.js +84 -0
  124. package/dist/cloud/head-learnings.js.map +1 -0
  125. package/dist/cloud/lookup-activity.d.ts +5 -3
  126. package/dist/cloud/lookup-activity.d.ts.map +1 -1
  127. package/dist/cloud/lookup-activity.js +8 -8
  128. package/dist/cloud/lookup-activity.js.map +1 -1
  129. package/dist/cloud/nudge.d.ts +15 -7
  130. package/dist/cloud/nudge.d.ts.map +1 -1
  131. package/dist/cloud/nudge.js +42 -33
  132. package/dist/cloud/nudge.js.map +1 -1
  133. package/dist/cloud/onboarding.d.ts +37 -1
  134. package/dist/cloud/onboarding.d.ts.map +1 -1
  135. package/dist/cloud/onboarding.js +77 -1
  136. package/dist/cloud/onboarding.js.map +1 -1
  137. package/dist/cloud/other-repos.d.ts +39 -0
  138. package/dist/cloud/other-repos.d.ts.map +1 -0
  139. package/dist/cloud/other-repos.js +137 -0
  140. package/dist/cloud/other-repos.js.map +1 -0
  141. package/dist/cloud/pair.d.ts +17 -7
  142. package/dist/cloud/pair.d.ts.map +1 -1
  143. package/dist/cloud/pair.js +81 -60
  144. package/dist/cloud/pair.js.map +1 -1
  145. package/dist/cloud/workspace-sync.d.ts +67 -11
  146. package/dist/cloud/workspace-sync.d.ts.map +1 -1
  147. package/dist/cloud/workspace-sync.js +299 -55
  148. package/dist/cloud/workspace-sync.js.map +1 -1
  149. package/dist/cloud/workspace.d.ts +74 -10
  150. package/dist/cloud/workspace.d.ts.map +1 -1
  151. package/dist/cloud/workspace.js +96 -8
  152. package/dist/cloud/workspace.js.map +1 -1
  153. package/dist/hosts/claude-global.js +1 -1
  154. package/dist/hosts/claude-global.js.map +1 -1
  155. package/dist/hosts/codex-hooks.d.ts +6 -0
  156. package/dist/hosts/codex-hooks.d.ts.map +1 -1
  157. package/dist/hosts/codex-hooks.js +89 -16
  158. package/dist/hosts/codex-hooks.js.map +1 -1
  159. package/dist/hosts/codex-trust.d.ts +28 -0
  160. package/dist/hosts/codex-trust.d.ts.map +1 -0
  161. package/dist/hosts/codex-trust.js +280 -0
  162. package/dist/hosts/codex-trust.js.map +1 -0
  163. package/dist/hosts/cursor-hooks.d.ts.map +1 -1
  164. package/dist/hosts/cursor-hooks.js +3 -1
  165. package/dist/hosts/cursor-hooks.js.map +1 -1
  166. package/dist/init/candidates.d.ts +60 -0
  167. package/dist/init/candidates.d.ts.map +1 -0
  168. package/dist/init/candidates.js +202 -0
  169. package/dist/init/candidates.js.map +1 -0
  170. package/dist/init/claude-call.d.ts +51 -0
  171. package/dist/init/claude-call.d.ts.map +1 -0
  172. package/dist/init/claude-call.js +199 -0
  173. package/dist/init/claude-call.js.map +1 -0
  174. package/dist/init/discover-worker.d.ts +18 -0
  175. package/dist/init/discover-worker.d.ts.map +1 -0
  176. package/dist/init/discover-worker.js +111 -0
  177. package/dist/init/discover-worker.js.map +1 -0
  178. package/dist/init/handover.d.ts +16 -0
  179. package/dist/init/handover.d.ts.map +1 -0
  180. package/dist/init/handover.js +92 -0
  181. package/dist/init/handover.js.map +1 -0
  182. package/dist/init/howtos.d.ts +20 -0
  183. package/dist/init/howtos.d.ts.map +1 -0
  184. package/dist/init/howtos.js +90 -0
  185. package/dist/init/howtos.js.map +1 -0
  186. package/dist/init/init-record.d.ts +134 -0
  187. package/dist/init/init-record.d.ts.map +1 -0
  188. package/dist/init/init-record.js +339 -0
  189. package/dist/init/init-record.js.map +1 -0
  190. package/dist/init/install-paths.d.ts +6 -0
  191. package/dist/init/install-paths.d.ts.map +1 -0
  192. package/dist/init/install-paths.js +87 -0
  193. package/dist/init/install-paths.js.map +1 -0
  194. package/dist/init/keep-answer.d.ts +43 -0
  195. package/dist/init/keep-answer.d.ts.map +1 -0
  196. package/dist/init/keep-answer.js +118 -0
  197. package/dist/init/keep-answer.js.map +1 -0
  198. package/dist/init/keep-gate.d.ts +30 -0
  199. package/dist/init/keep-gate.d.ts.map +1 -0
  200. package/dist/init/keep-gate.js +178 -0
  201. package/dist/init/keep-gate.js.map +1 -0
  202. package/dist/init/keep-list.d.ts +67 -0
  203. package/dist/init/keep-list.d.ts.map +1 -0
  204. package/dist/init/keep-list.js +232 -0
  205. package/dist/init/keep-list.js.map +1 -0
  206. package/dist/init/keep.d.ts +52 -0
  207. package/dist/init/keep.d.ts.map +1 -0
  208. package/dist/init/keep.js +393 -0
  209. package/dist/init/keep.js.map +1 -0
  210. package/dist/init/look-back-mine.d.ts +37 -0
  211. package/dist/init/look-back-mine.d.ts.map +1 -0
  212. package/dist/init/look-back-mine.js +215 -0
  213. package/dist/init/look-back-mine.js.map +1 -0
  214. package/dist/init/look-back.d.ts +81 -0
  215. package/dist/init/look-back.d.ts.map +1 -0
  216. package/dist/init/look-back.js +170 -0
  217. package/dist/init/look-back.js.map +1 -0
  218. package/dist/init/miners.d.ts +46 -0
  219. package/dist/init/miners.d.ts.map +1 -0
  220. package/dist/init/miners.js +141 -0
  221. package/dist/init/miners.js.map +1 -0
  222. package/dist/init/name-call.d.ts +37 -0
  223. package/dist/init/name-call.d.ts.map +1 -0
  224. package/dist/init/name-call.js +151 -0
  225. package/dist/init/name-call.js.map +1 -0
  226. package/dist/init/plain-file.d.ts.map +1 -1
  227. package/dist/init/plain-file.js +3 -0
  228. package/dist/init/plain-file.js.map +1 -1
  229. package/dist/init/prefs.d.ts +70 -0
  230. package/dist/init/prefs.d.ts.map +1 -0
  231. package/dist/init/prefs.js +282 -0
  232. package/dist/init/prefs.js.map +1 -0
  233. package/dist/init/relay.d.ts +15 -0
  234. package/dist/init/relay.d.ts.map +1 -0
  235. package/dist/init/relay.js +15 -0
  236. package/dist/init/relay.js.map +1 -0
  237. package/dist/init/replay-runs.d.ts +121 -0
  238. package/dist/init/replay-runs.d.ts.map +1 -0
  239. package/dist/init/replay-runs.js +457 -0
  240. package/dist/init/replay-runs.js.map +1 -0
  241. package/dist/init/replay-tamper.d.ts +18 -0
  242. package/dist/init/replay-tamper.d.ts.map +1 -0
  243. package/dist/init/replay-tamper.js +87 -0
  244. package/dist/init/replay-tamper.js.map +1 -0
  245. package/dist/init/review-screen.d.ts +74 -0
  246. package/dist/init/review-screen.d.ts.map +1 -0
  247. package/dist/init/review-screen.js +258 -0
  248. package/dist/init/review-screen.js.map +1 -0
  249. package/dist/init/review-tty.d.ts +29 -0
  250. package/dist/init/review-tty.d.ts.map +1 -0
  251. package/dist/init/review-tty.js +218 -0
  252. package/dist/init/review-tty.js.map +1 -0
  253. package/dist/init/review.d.ts +12 -0
  254. package/dist/init/review.d.ts.map +1 -0
  255. package/dist/init/review.js +12 -0
  256. package/dist/init/review.js.map +1 -0
  257. package/dist/init/run.d.ts +87 -0
  258. package/dist/init/run.d.ts.map +1 -0
  259. package/dist/init/run.js +347 -0
  260. package/dist/init/run.js.map +1 -0
  261. package/dist/init/sessions.d.ts +63 -0
  262. package/dist/init/sessions.d.ts.map +1 -0
  263. package/dist/init/sessions.js +377 -0
  264. package/dist/init/sessions.js.map +1 -0
  265. package/dist/init/transcript.d.ts +81 -0
  266. package/dist/init/transcript.d.ts.map +1 -0
  267. package/dist/init/transcript.js +216 -0
  268. package/dist/init/transcript.js.map +1 -0
  269. package/dist/init/types.d.ts +139 -0
  270. package/dist/init/types.d.ts.map +1 -0
  271. package/dist/init/types.js +2 -0
  272. package/dist/init/types.js.map +1 -0
  273. package/dist/notes/cold-start.d.ts +5 -213
  274. package/dist/notes/cold-start.d.ts.map +1 -1
  275. package/dist/notes/cold-start.js +5 -654
  276. package/dist/notes/cold-start.js.map +1 -1
  277. package/dist/notes/edit-overlap.d.ts.map +1 -1
  278. package/dist/notes/edit-overlap.js +4 -1
  279. package/dist/notes/edit-overlap.js.map +1 -1
  280. package/dist/notes/notes.d.ts +8 -4
  281. package/dist/notes/notes.d.ts.map +1 -1
  282. package/dist/notes/notes.js +9 -7
  283. package/dist/notes/notes.js.map +1 -1
  284. package/dist/notes/pr-reviews.d.ts +4 -0
  285. package/dist/notes/pr-reviews.d.ts.map +1 -1
  286. package/dist/notes/pr-reviews.js +6 -5
  287. package/dist/notes/pr-reviews.js.map +1 -1
  288. package/dist/notes/repo-trail.d.ts +1 -1
  289. package/dist/notes/repo-trail.d.ts.map +1 -1
  290. package/dist/notes/repo-trail.js +24 -4
  291. package/dist/notes/repo-trail.js.map +1 -1
  292. package/dist/search/grep.d.ts.map +1 -1
  293. package/dist/search/grep.js +4 -2
  294. package/dist/search/grep.js.map +1 -1
  295. package/dist/search/user-regexp.d.ts +26 -0
  296. package/dist/search/user-regexp.d.ts.map +1 -0
  297. package/dist/search/user-regexp.js +150 -0
  298. package/dist/search/user-regexp.js.map +1 -0
  299. package/dist/skills/anchors-cli.d.ts +5 -0
  300. package/dist/skills/anchors-cli.d.ts.map +1 -1
  301. package/dist/skills/anchors-cli.js +7 -2
  302. package/dist/skills/anchors-cli.js.map +1 -1
  303. package/dist/skills/anchors-wide.js +2 -2
  304. package/dist/skills/anchors-wide.js.map +1 -1
  305. package/dist/skills/cli-skills-1b.d.ts +17 -0
  306. package/dist/skills/cli-skills-1b.d.ts.map +1 -0
  307. package/dist/skills/cli-skills-1b.js +166 -0
  308. package/dist/skills/cli-skills-1b.js.map +1 -0
  309. package/dist/skills/cli-skills-2.d.ts +35 -0
  310. package/dist/skills/cli-skills-2.d.ts.map +1 -0
  311. package/dist/skills/cli-skills-2.js +129 -0
  312. package/dist/skills/cli-skills-2.js.map +1 -0
  313. package/dist/skills/cli-skills-report-1b.d.ts +49 -0
  314. package/dist/skills/cli-skills-report-1b.d.ts.map +1 -0
  315. package/dist/skills/cli-skills-report-1b.js +191 -0
  316. package/dist/skills/cli-skills-report-1b.js.map +1 -0
  317. package/dist/skills/cli-skills-report.d.ts +86 -0
  318. package/dist/skills/cli-skills-report.d.ts.map +1 -0
  319. package/dist/skills/cli-skills-report.js +121 -0
  320. package/dist/skills/cli-skills-report.js.map +1 -0
  321. package/dist/skills/cli-skills.d.ts +30 -0
  322. package/dist/skills/cli-skills.d.ts.map +1 -0
  323. package/dist/skills/cli-skills.js +379 -0
  324. package/dist/skills/cli-skills.js.map +1 -0
  325. package/dist/skills/compile-split.d.ts.map +1 -1
  326. package/dist/skills/compile-split.js +18 -0
  327. package/dist/skills/compile-split.js.map +1 -1
  328. package/dist/skills/compile-words.d.ts +4 -1
  329. package/dist/skills/compile-words.d.ts.map +1 -1
  330. package/dist/skills/compile-words.js +68 -8
  331. package/dist/skills/compile-words.js.map +1 -1
  332. package/dist/skills/compile.d.ts +7 -0
  333. package/dist/skills/compile.d.ts.map +1 -1
  334. package/dist/skills/compile.js +17 -0
  335. package/dist/skills/compile.js.map +1 -1
  336. package/dist/skills/credit.d.ts +86 -0
  337. package/dist/skills/credit.d.ts.map +1 -0
  338. package/dist/skills/credit.js +259 -0
  339. package/dist/skills/credit.js.map +1 -0
  340. package/dist/skills/fold-gated.d.ts +3 -0
  341. package/dist/skills/fold-gated.d.ts.map +1 -0
  342. package/dist/skills/fold-gated.js +78 -0
  343. package/dist/skills/fold-gated.js.map +1 -0
  344. package/dist/skills/fold.d.ts +87 -0
  345. package/dist/skills/fold.d.ts.map +1 -0
  346. package/dist/skills/fold.js +348 -0
  347. package/dist/skills/fold.js.map +1 -0
  348. package/dist/skills/follow-learnings.d.ts +128 -0
  349. package/dist/skills/follow-learnings.d.ts.map +1 -0
  350. package/dist/skills/follow-learnings.js +278 -0
  351. package/dist/skills/follow-learnings.js.map +1 -0
  352. package/dist/skills/learning-steps.d.ts +43 -0
  353. package/dist/skills/learning-steps.d.ts.map +1 -0
  354. package/dist/skills/learning-steps.js +294 -0
  355. package/dist/skills/learning-steps.js.map +1 -0
  356. package/dist/skills/lesson-gate.d.ts +25 -0
  357. package/dist/skills/lesson-gate.d.ts.map +1 -0
  358. package/dist/skills/lesson-gate.js +316 -0
  359. package/dist/skills/lesson-gate.js.map +1 -0
  360. package/dist/skills/offer-drift.d.ts +35 -0
  361. package/dist/skills/offer-drift.d.ts.map +1 -0
  362. package/dist/skills/offer-drift.js +98 -0
  363. package/dist/skills/offer-drift.js.map +1 -0
  364. package/dist/skills/offer-lesson.d.ts +31 -0
  365. package/dist/skills/offer-lesson.d.ts.map +1 -0
  366. package/dist/skills/offer-lesson.js +123 -0
  367. package/dist/skills/offer-lesson.js.map +1 -0
  368. package/dist/skills/offer-lines.d.ts +40 -0
  369. package/dist/skills/offer-lines.d.ts.map +1 -0
  370. package/dist/skills/offer-lines.js +80 -0
  371. package/dist/skills/offer-lines.js.map +1 -0
  372. package/dist/skills/offer-moment.d.ts +102 -0
  373. package/dist/skills/offer-moment.d.ts.map +1 -0
  374. package/dist/skills/offer-moment.js +260 -0
  375. package/dist/skills/offer-moment.js.map +1 -0
  376. package/dist/skills/offer-repair.d.ts +36 -0
  377. package/dist/skills/offer-repair.d.ts.map +1 -0
  378. package/dist/skills/offer-repair.js +212 -0
  379. package/dist/skills/offer-repair.js.map +1 -0
  380. package/dist/skills/offer-retire.d.ts +53 -0
  381. package/dist/skills/offer-retire.d.ts.map +1 -0
  382. package/dist/skills/offer-retire.js +149 -0
  383. package/dist/skills/offer-retire.js.map +1 -0
  384. package/dist/skills/offer-update.d.ts +54 -0
  385. package/dist/skills/offer-update.d.ts.map +1 -0
  386. package/dist/skills/offer-update.js +115 -0
  387. package/dist/skills/offer-update.js.map +1 -0
  388. package/dist/skills/offer-words-1b.d.ts +32 -0
  389. package/dist/skills/offer-words-1b.d.ts.map +1 -0
  390. package/dist/skills/offer-words-1b.js +80 -0
  391. package/dist/skills/offer-words-1b.js.map +1 -0
  392. package/dist/skills/offer-words-2.d.ts +123 -0
  393. package/dist/skills/offer-words-2.d.ts.map +1 -0
  394. package/dist/skills/offer-words-2.js +194 -0
  395. package/dist/skills/offer-words-2.js.map +1 -0
  396. package/dist/skills/offer-words.d.ts +65 -0
  397. package/dist/skills/offer-words.d.ts.map +1 -0
  398. package/dist/skills/offer-words.js +205 -0
  399. package/dist/skills/offer-words.js.map +1 -0
  400. package/dist/skills/offers.d.ts +66 -0
  401. package/dist/skills/offers.d.ts.map +1 -0
  402. package/dist/skills/offers.js +284 -0
  403. package/dist/skills/offers.js.map +1 -0
  404. package/dist/skills/runblock.d.ts +2 -0
  405. package/dist/skills/runblock.d.ts.map +1 -1
  406. package/dist/skills/runblock.js +11 -6
  407. package/dist/skills/runblock.js.map +1 -1
  408. package/dist/skills/save-gate.d.ts +64 -0
  409. package/dist/skills/save-gate.d.ts.map +1 -0
  410. package/dist/skills/save-gate.js +354 -0
  411. package/dist/skills/save-gate.js.map +1 -0
  412. package/dist/skills/save-verify.d.ts +59 -0
  413. package/dist/skills/save-verify.d.ts.map +1 -0
  414. package/dist/skills/save-verify.js +390 -0
  415. package/dist/skills/save-verify.js.map +1 -0
  416. package/dist/skills/settings.d.ts +12 -2
  417. package/dist/skills/settings.d.ts.map +1 -1
  418. package/dist/skills/settings.js +24 -2
  419. package/dist/skills/settings.js.map +1 -1
  420. package/dist/skills/skills.d.ts +26 -8
  421. package/dist/skills/skills.d.ts.map +1 -1
  422. package/dist/skills/skills.js +105 -52
  423. package/dist/skills/skills.js.map +1 -1
  424. package/dist/skills/types.d.ts +8 -0
  425. package/dist/skills/types.d.ts.map +1 -1
  426. package/dist/skills/update-gate.d.ts +36 -0
  427. package/dist/skills/update-gate.d.ts.map +1 -0
  428. package/dist/skills/update-gate.js +357 -0
  429. package/dist/skills/update-gate.js.map +1 -0
  430. package/dist/skills/update-plan.d.ts +40 -0
  431. package/dist/skills/update-plan.d.ts.map +1 -0
  432. package/dist/skills/update-plan.js +196 -0
  433. package/dist/skills/update-plan.js.map +1 -0
  434. package/dist/skills/value-line.d.ts +94 -0
  435. package/dist/skills/value-line.d.ts.map +1 -0
  436. package/dist/skills/value-line.js +355 -0
  437. package/dist/skills/value-line.js.map +1 -0
  438. package/dist/telemetry/contract.d.ts +15 -1
  439. package/dist/telemetry/contract.d.ts.map +1 -1
  440. package/dist/telemetry/contract.js +80 -11
  441. package/dist/telemetry/contract.js.map +1 -1
  442. package/dist/telemetry/gate.js +4 -4
  443. package/dist/telemetry/gate.js.map +1 -1
  444. package/dist/telemetry/index.d.ts +1 -1
  445. package/dist/telemetry/index.d.ts.map +1 -1
  446. package/dist/telemetry/index.js +1 -1
  447. package/dist/telemetry/index.js.map +1 -1
  448. package/dist/telemetry/notice.js +5 -5
  449. package/dist/telemetry/notice.js.map +1 -1
  450. package/dist/telemetry/queue.d.ts.map +1 -1
  451. package/dist/telemetry/queue.js +7 -7
  452. package/dist/telemetry/queue.js.map +1 -1
  453. package/dist/telemetry/track.d.ts.map +1 -1
  454. package/dist/telemetry/track.js +4 -3
  455. package/dist/telemetry/track.js.map +1 -1
  456. package/dist/trace/checks.d.ts.map +1 -1
  457. package/dist/trace/checks.js +10 -2
  458. package/dist/trace/checks.js.map +1 -1
  459. package/dist/trace/gate-file.d.ts +1 -1
  460. package/dist/trace/gate-file.d.ts.map +1 -1
  461. package/dist/trace/gate-file.js +3 -3
  462. package/dist/trace/gate-file.js.map +1 -1
  463. package/dist/upkeep-run.d.ts.map +1 -1
  464. package/dist/upkeep-run.js +2 -23
  465. package/dist/upkeep-run.js.map +1 -1
  466. package/dist/upkeep.d.ts.map +1 -1
  467. package/dist/upkeep.js +2 -3
  468. package/dist/upkeep.js.map +1 -1
  469. package/dist/util/private-fs.d.ts +6 -0
  470. package/dist/util/private-fs.d.ts.map +1 -1
  471. package/dist/util/private-fs.js +9 -1
  472. package/dist/util/private-fs.js.map +1 -1
  473. package/dist/util/state.d.ts.map +1 -1
  474. package/dist/util/state.js +17 -3
  475. package/dist/util/state.js.map +1 -1
  476. package/package.json +1 -1
  477. package/dist/skills/found-skill.d.ts +0 -35
  478. package/dist/skills/found-skill.d.ts.map +0 -1
  479. package/dist/skills/found-skill.js +0 -66
  480. package/dist/skills/found-skill.js.map +0 -1
@@ -0,0 +1,196 @@
1
+ /**
2
+ * The change a moment 5 or 6 offer shows, worked out again from disk
3
+ * (phase 2 design 4.11, R14): the run sheet, the skill file as it is now, its
4
+ * unfolded lessons, and the ledger uses from before that run started (never
5
+ * later ones, so a use another session flushed since can't move the plan).
6
+ * One builder (`foldInputFor`) and one plan (`replan`) serve the offer at
7
+ * Stop (c3, through `OfferInput.plan`), both halves of the update gate and
8
+ * `trail skills draft --print`, so they can't disagree: the offer pins the
9
+ * `proposalSha` and `baseHash` this returns, and the gate writes only when
10
+ * they come out the same again.
11
+ *
12
+ * Re-exported from `update-gate.ts`, where the design names `replan`.
13
+ * Loaded only on the update paths, never on the PreToolUse fast path.
14
+ */
15
+ import { createHash } from 'node:crypto';
16
+ import { lstatSync, readdirSync, readFileSync } from 'node:fs';
17
+ import { homedir } from 'node:os';
18
+ import { join } from 'node:path';
19
+ import { joinCarriedSheet, readRunSheet } from '../trace/runs.js';
20
+ import { readJsonSafe, trailPath } from '../util/private-fs.js';
21
+ import { compileRun, proposeName } from './compile.js';
22
+ import { fidelityOf } from './fidelity.js';
23
+ import { fidelityWhere } from './credit-facts.js';
24
+ import { applyFold, planFold, replaceWith } from './fold.js';
25
+ import { readLedger } from './ledger.js';
26
+ import { readLessons } from './lessons.js';
27
+ import { runCheckout } from './run-checkout.js';
28
+ import { rebuildCompiled, rebuildLoose } from './skill-rebuild.js';
29
+ import { parseSkillMd, renderSkillMd, skillHash } from './skillmd.js';
30
+ import { getSkillState } from './state.js';
31
+ import { listAllPersonal, nameTaken } from './store.js';
32
+ import { MAX_SKILL_BYTES } from './store-fs.js';
33
+ import { nextVersion } from './versions.js';
34
+ import { fillParams } from './params.js';
35
+ import { recallMarks, stepLearnings, whose } from './follow-learnings.js';
36
+ const MAX_EARLIER = 4;
37
+ const SESSION_FILES = 64;
38
+ const SESSION_MAX_BYTES = 8 * 1024 * 1024;
39
+ /** The file's text when it is a regular file of at most 64 KB and neither it nor its folder is a link. */
40
+ function ownText(ref) {
41
+ try {
42
+ if (lstatSync(ref.dir).isSymbolicLink())
43
+ return null;
44
+ const s = lstatSync(ref.file);
45
+ if (!s.isFile() || s.size > MAX_SKILL_BYTES)
46
+ return null;
47
+ return readFileSync(ref.file, 'utf8');
48
+ }
49
+ catch {
50
+ return null;
51
+ }
52
+ }
53
+ /** The helper file names in scripts/ (a rebuilt skill names them; a fold never writes them). */
54
+ function scriptNames(dir) {
55
+ try {
56
+ if (!lstatSync(join(dir, 'scripts')).isDirectory())
57
+ return [];
58
+ return readdirSync(join(dir, 'scripts')).filter((n) => !n.startsWith('.') && lstatSync(join(dir, 'scripts', n)).isFile()).sort();
59
+ }
60
+ catch {
61
+ return [];
62
+ }
63
+ }
64
+ /**
65
+ * The block as credit read it (`settleCredit`, and c3's offer at Stop): the newest injection of this skill for the
66
+ * job's runs (the run and the parts a compaction joined into it) gives the params, steps and check, the oldest its
67
+ * `at`, so the fidelity window and so the plan come out the same at Stop, in PreToolUse and in the CLI.
68
+ */
69
+ function injIn(st, skillId, runIds) {
70
+ const all = Array.isArray(st?.injected) ? st.injected : [];
71
+ const mine = all.filter((i) => i && i.skillId === skillId && i.runId !== null && runIds.includes(i.runId) && i.cue !== 'check')
72
+ .sort((a, b) => Date.parse(a.at) - Date.parse(b.at));
73
+ if (!mine.length)
74
+ return null;
75
+ const newest = mine[mine.length - 1];
76
+ return { params: newest.params, steps: newest.steps, check: newest.check, at: mine[0].at };
77
+ }
78
+ /** The run's own session file (its `skills.sessionHash` is the sheet's), among the 64 newest: for draft, which has no session. */
79
+ export function sessionOf(sheet, env) {
80
+ const dir = trailPath(env, 'sessions');
81
+ let names;
82
+ try {
83
+ names = readdirSync(dir).filter((n) => /^[\w.-]+\.json$/.test(n) && !/\.(?:hooks|gate|lesson|update)\.json$/.test(n)).flatMap((n) => {
84
+ const s = lstatSync(join(dir, n));
85
+ return s.isFile() && s.size <= SESSION_MAX_BYTES ? [{ n, t: s.mtimeMs }] : [];
86
+ });
87
+ }
88
+ catch {
89
+ return null;
90
+ }
91
+ for (const { n } of names.sort((a, b) => b.t - a.t).slice(0, SESSION_FILES)) {
92
+ const st = readJsonSafe(join(dir, n))?.skills;
93
+ if (st && typeof st === 'object' && st.sessionHash === sheet.session)
94
+ return st;
95
+ }
96
+ return null;
97
+ }
98
+ function gather(skillId, runId, env, o, needInj) {
99
+ const ref = listAllPersonal(env).find((r) => r.id === skillId);
100
+ if (!ref || ref.scope !== 'personal')
101
+ return null;
102
+ const text = ownText(ref);
103
+ const skill = text === null ? null : parseSkillMd(text, ref.name);
104
+ if (text === null || !skill || skill.meta.trail !== skillId)
105
+ return null;
106
+ const sheet = readRunSheet(runId, env);
107
+ if (!sheet)
108
+ return null;
109
+ const read = (id) => readRunSheet(id, env);
110
+ const joined = joinCarriedSheet(sheet, read);
111
+ const ids = [...new Set([runId, ...(joined.joined ?? []).map((j) => j.id)])];
112
+ const inj = o.inj ?? injIn(o.st, skillId, ids) ?? (needInj ? injIn(sessionOf(sheet, env), skillId, ids) : null);
113
+ if (needInj && !inj)
114
+ return null;
115
+ const home = env.HOME || homedir();
116
+ const repoRoot = runCheckout(joined, env, '');
117
+ // c3's credit flush keys extraShas with the same `where` (one function for both), or two-uses never matches (R10).
118
+ const fid = fidelityOf(skill, inj ?? { params: {}, steps: [] }, joined.calls, fidelityWhere(joined, env));
119
+ const scope = { repoKeys: [sheet.repoKey], checkout: repoRoot, env };
120
+ const c = compileRun(sheet, {
121
+ repoRoot, home, platform: process.platform, prior: null, name: ref.name, moment: 'repeated',
122
+ applies: skill.meta.applies ?? sheet.repoKey, taken: () => false, id: skillId, readSheet: read,
123
+ });
124
+ const fresh = c.ok ? c.skill : null;
125
+ // R14: the uses before this run started, newest last.
126
+ const started = Date.parse(sheet.startedAt);
127
+ const earlier = readLedger(skillId, env).filter((l) => l.event === 'use' && Date.parse(l.at) < started).slice(-MAX_EARLIER);
128
+ const state = getSkillState(skillId, env);
129
+ const hash = skillHash(text);
130
+ const handEdited = !state || (hash !== state.hash && hash !== state.pendingWrite?.hash);
131
+ const base = handEdited ? rebuildLoose(text, skill)
132
+ : rebuildCompiled(text, skill, { source: state.source, helpers: scriptNames(ref.dir), runId: state.runId });
133
+ let splitName;
134
+ try {
135
+ if (fresh)
136
+ splitName = proposeName(sheet, fresh.steps, (n) => nameTaken(n, scope) !== null);
137
+ }
138
+ catch { /* no split name: no split */ }
139
+ // Part 7: the steps the block showed the way a live learning says, as it showed them (the injection's steps).
140
+ const preferred = inj ? recallMarks(skill.steps, stepLearnings({ repoKeys: [sheet.repoKey], checkout: repoRoot, env })).flatMap((m) => [...m.fixes].flatMap(([step, cmd]) => (cmd && inj.steps?.[step - 1] === fillParams(cmd, inj.params ?? {}) ? [{ step, cmd, follows: whose(m.l) }] : []))) : [];
141
+ const input = {
142
+ skill, text, fresh, fid, inj: { params: inj?.params ?? {} }, taken: (n) => nameTaken(n, scope) !== null, ...(preferred.length ? { preferred } : {}),
143
+ earlierExtraShas: earlier.map((u) => u.extraShas ?? []), lessons: readLessons(ref.dir),
144
+ earlierRan: earlier.map((u) => u.stepsRan), earlierChecks: earlier.map((u) => u.check), base, ...(splitName ? { splitName } : {}),
145
+ };
146
+ return { input, ref, state, text, sheet, handEdited };
147
+ }
148
+ /** The fold input for one checked use of the skill (4.2), from disk; null when the skill, the run or its block is gone. */
149
+ export function foldInputFor(skillId, runId, env = process.env, o = {}) {
150
+ try {
151
+ return gather(skillId, runId, env, o, true)?.input ?? null;
152
+ }
153
+ catch {
154
+ return null;
155
+ }
156
+ }
157
+ export const proposalShaOf = (text) => createHash('sha256').update(text, 'utf8').digest('hex').slice(0, 16);
158
+ /**
159
+ * The change again, from the run sheet and the file as they are now (4.11 step 6). Update and extend: `planFold`
160
+ * must give that same op. Replace (drift): the fresh compile as the next version, keeping the skill's id, name and
161
+ * asks. The next version is numbered past every kept one, as the write numbers it. null: nothing to change.
162
+ */
163
+ export function replan(skillId, runId, op, env = process.env, o = {}) {
164
+ try {
165
+ if (op === 'split')
166
+ return null;
167
+ const g = gather(skillId, runId, env, o, op !== 'replace');
168
+ const base = g?.input.base ?? null;
169
+ if (!g || !base || !/^[1-9]\d{0,5}$/.test(String(base.meta.version)))
170
+ return null;
171
+ let next;
172
+ let plan = null;
173
+ if (op === 'replace') {
174
+ if (!g.input.fresh)
175
+ return null;
176
+ next = replaceWith(base, g.input.fresh);
177
+ }
178
+ else {
179
+ const p = planFold(g.input);
180
+ if (p.op !== op)
181
+ return null;
182
+ plan = p;
183
+ next = applyFold(base, plan);
184
+ }
185
+ if (!next)
186
+ return null;
187
+ const version = String(nextVersion(g.ref, Number(base.meta.version)));
188
+ next = { ...next, meta: { ...next.meta, version } };
189
+ const text = renderSkillMd(next);
190
+ return { next, text, proposalSha: proposalShaOf(text), baseHash: skillHash(g.text), current: g.text, handEdited: g.handEdited, plan, base, fresh: g.input.fresh };
191
+ }
192
+ catch {
193
+ return null;
194
+ }
195
+ }
196
+ //# sourceMappingURL=update-plan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-plan.js","sourceRoot":"","sources":["../../src/skills/update-plan.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,94 @@
1
+ import type { Host } from '../trace/host.js';
2
+ /** The words of the line and of the context that carries it (0 rule 6: the words test reads them by value). */
3
+ export declare const VALUE_COPY: {
4
+ readonly head: "Last week in this repo, on this machine:";
5
+ readonly ran: "ran";
6
+ readonly withFailed: "with";
7
+ readonly failedCommand: "failed command";
8
+ readonly before: "the run it came from had";
9
+ readonly inAll: "in all";
10
+ readonly guardrail: "the timeout guardrail stopped";
11
+ readonly command: "command";
12
+ readonly knownError: "known error";
13
+ readonly cameWithIts: "came with its fix";
14
+ readonly cameWithTheir: "came with their fix";
15
+ readonly noticePrefix: "trail:";
16
+ readonly contextHead: "Its weekly count for this repo, for the person:";
17
+ readonly contextTail: "Tell them once at the start of your first reply, in one line, then go on with what they asked.";
18
+ };
19
+ /** The longest line (4.14). */
20
+ export declare const VALUE_MAX = 240;
21
+ /** D117: a hook's bookkeeping lock try; a busy lock drops the count. */
22
+ export declare const VALUE_LOCK_MS = 50;
23
+ /** One skill's week here: uses, uses whose check passed, failed commands summed, and the run it came from. */
24
+ export interface SkillWeek {
25
+ id: string;
26
+ name: string;
27
+ uses: number;
28
+ checked: number;
29
+ failed: number;
30
+ before: {
31
+ commands: number;
32
+ failed: number;
33
+ } | null;
34
+ }
35
+ export interface ValueCounts {
36
+ skills: SkillWeek[];
37
+ guardrailStops: number;
38
+ wallFixes: number;
39
+ }
40
+ export declare function valuePath(env?: NodeJS.ProcessEnv): string;
41
+ /**
42
+ * Stop (3.5): adds this Stop's guardrail stops and wall fixes to today's counts for the repo. Counts only: anything
43
+ * but a non-negative whole number is 0, a repo key that isn't one is refused, and 0 and 0 writes nothing.
44
+ */
45
+ export declare function noteValue(repoKey: string, d: {
46
+ guardrailStops?: number;
47
+ wallFixes?: number;
48
+ }, env?: NodeJS.ProcessEnv, now?: Date): void;
49
+ /**
50
+ * Records that the line went out for the repo today, only while the week is still due: the check and the mark are one
51
+ * locked step, so of sessions that start together and all read "due", one marks it (review). False when busy,
52
+ * refused, or already said this week (the caller then says nothing).
53
+ */
54
+ export declare function markValueSaid(repoKey: string, env?: NodeJS.ProcessEnv, now?: Date): boolean;
55
+ /** Skills on, and on for 7 days or more (P21: there is no week to count before that). */
56
+ export declare function valueWeek(env?: NodeJS.ProcessEnv, now?: Date): boolean;
57
+ /** Once in 7 days per repo, after the first week (4.14). */
58
+ export declare function valueDue(repoKey: string, env?: NodeJS.ProcessEnv, now?: Date): boolean;
59
+ /** The week's counts for these repos (4.14): nothing but the ledgers and value.json. */
60
+ export declare function valueCounts(repoKeys: string[], env?: NodeJS.ProcessEnv, now?: Date): ValueCounts;
61
+ /**
62
+ * The line from the counts (4.14): parts at 0 left out, null when every part is 0. Cut to 240 characters at whole
63
+ * parts, never inside one, so no number is cut short: the most used skill, the guardrail and the fixes come first,
64
+ * then the other skills; what fits is said in the line's own order.
65
+ */
66
+ export declare function valueWords(c: ValueCounts): string | null;
67
+ /** 4.14: the line for these repos, or null when there is nothing to say. */
68
+ export declare function valueLine(repoKeys: string[], env?: NodeJS.ProcessEnv, now?: Date): string | null;
69
+ /**
70
+ * The line as SessionStart context where the host shows no start notice (P20, D107's shape): who it is from, that it
71
+ * is a count for the person, and when to tell them. One line; the quoted line can't close the quote early.
72
+ */
73
+ export declare function valueContext(line: string): string;
74
+ export interface StartValueCtx {
75
+ source: string;
76
+ learn: boolean;
77
+ subagent: boolean;
78
+ host: Host;
79
+ repoKey: string;
80
+ }
81
+ export interface StartValue {
82
+ channel: 'context' | 'notice';
83
+ context?: string;
84
+ notice?: string;
85
+ }
86
+ /**
87
+ * 3.1 step 3: at a startup or resume, in a session where learning runs (interactive, top level, tier A) and in a
88
+ * repo, when the week is due and there is something to say: the line goes out once (marked said first; a busy lock
89
+ * says nothing). A notice where the host shows SessionStart notices, else context. Never throws.
90
+ */
91
+ export declare function startValue(ctx: StartValueCtx, env?: NodeJS.ProcessEnv, now?: Date): StartValue | null;
92
+ /** Stop: the timeout guardrail's sure-fail denies this Stop counted (`guardrailCounts`' telemetry), for `noteValue`. The line names that guardrail, so no other class counts. */
93
+ export declare function guardrailStopsIn(sent: ReadonlyArray<readonly [string, Record<string, string>]>): number;
94
+ //# sourceMappingURL=value-line.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"value-line.d.ts","sourceRoot":"","sources":["../../src/skills/value-line.ts"],"names":[],"mappings":"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"}