@nanonets/graft 0.24.0 → 0.24.1

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 (396) hide show
  1. package/dist/ask/ask.d.ts +8 -0
  2. package/dist/ask/ask.d.ts.map +1 -1
  3. package/dist/ask/ask.js +33 -12
  4. package/dist/ask/ask.js.map +1 -1
  5. package/dist/claude/hook-io.d.ts +44 -0
  6. package/dist/claude/hook-io.d.ts.map +1 -0
  7. package/dist/claude/hook-io.js +144 -0
  8. package/dist/claude/hook-io.js.map +1 -0
  9. package/dist/claude/skills-hook-util.d.ts +25 -0
  10. package/dist/claude/skills-hook-util.d.ts.map +1 -0
  11. package/dist/claude/skills-hook-util.js +71 -0
  12. package/dist/claude/skills-hook-util.js.map +1 -0
  13. package/dist/cli-picker.d.ts +24 -0
  14. package/dist/cli-picker.d.ts.map +1 -1
  15. package/dist/cli-picker.js +36 -5
  16. package/dist/cli-picker.js.map +1 -1
  17. package/dist/cli.d.ts.map +1 -1
  18. package/dist/cli.js +278 -29
  19. package/dist/cli.js.map +1 -1
  20. package/dist/cloud/lookup-activity.d.ts +16 -0
  21. package/dist/cloud/lookup-activity.d.ts.map +1 -0
  22. package/dist/cloud/lookup-activity.js +56 -0
  23. package/dist/cloud/lookup-activity.js.map +1 -0
  24. package/dist/cloud/nudge.d.ts.map +1 -1
  25. package/dist/cloud/nudge.js +3 -0
  26. package/dist/cloud/nudge.js.map +1 -1
  27. package/dist/cloud/onboarding.d.ts +237 -0
  28. package/dist/cloud/onboarding.d.ts.map +1 -0
  29. package/dist/cloud/onboarding.js +536 -0
  30. package/dist/cloud/onboarding.js.map +1 -0
  31. package/dist/cloud/pair.d.ts +76 -0
  32. package/dist/cloud/pair.d.ts.map +1 -0
  33. package/dist/cloud/pair.js +249 -0
  34. package/dist/cloud/pair.js.map +1 -0
  35. package/dist/cloud/workspace-sync.d.ts +10 -2
  36. package/dist/cloud/workspace-sync.d.ts.map +1 -1
  37. package/dist/cloud/workspace-sync.js +119 -7
  38. package/dist/cloud/workspace-sync.js.map +1 -1
  39. package/dist/cloud/workspace.d.ts +22 -1
  40. package/dist/cloud/workspace.d.ts.map +1 -1
  41. package/dist/cloud/workspace.js +16 -1
  42. package/dist/cloud/workspace.js.map +1 -1
  43. package/dist/graph/native.d.ts +2 -0
  44. package/dist/graph/native.d.ts.map +1 -1
  45. package/dist/graph/native.js +29 -4
  46. package/dist/graph/native.js.map +1 -1
  47. package/dist/hosts/claude-global.d.ts +14 -0
  48. package/dist/hosts/claude-global.d.ts.map +1 -1
  49. package/dist/hosts/claude-global.js +38 -3
  50. package/dist/hosts/claude-global.js.map +1 -1
  51. package/dist/init/install-record.d.ts +21 -0
  52. package/dist/init/install-record.d.ts.map +1 -0
  53. package/dist/init/install-record.js +144 -0
  54. package/dist/init/install-record.js.map +1 -0
  55. package/dist/init/plain-file.d.ts +11 -0
  56. package/dist/init/plain-file.d.ts.map +1 -0
  57. package/dist/init/plain-file.js +80 -0
  58. package/dist/init/plain-file.js.map +1 -0
  59. package/dist/mcp/brains.d.ts +72 -0
  60. package/dist/mcp/brains.d.ts.map +1 -0
  61. package/dist/mcp/brains.js +220 -0
  62. package/dist/mcp/brains.js.map +1 -0
  63. package/dist/mcp/server.d.ts +3 -1
  64. package/dist/mcp/server.d.ts.map +1 -1
  65. package/dist/mcp/server.js +40 -5
  66. package/dist/mcp/server.js.map +1 -1
  67. package/dist/mcp/tools.d.ts.map +1 -1
  68. package/dist/mcp/tools.js +7 -2
  69. package/dist/mcp/tools.js.map +1 -1
  70. package/dist/notes/cold-start.d.ts +30 -1
  71. package/dist/notes/cold-start.d.ts.map +1 -1
  72. package/dist/notes/cold-start.js +98 -19
  73. package/dist/notes/cold-start.js.map +1 -1
  74. package/dist/notes/every-repo.d.ts +18 -0
  75. package/dist/notes/every-repo.d.ts.map +1 -0
  76. package/dist/notes/every-repo.js +86 -0
  77. package/dist/notes/every-repo.js.map +1 -0
  78. package/dist/notes/guardrails.d.ts +8 -0
  79. package/dist/notes/guardrails.d.ts.map +1 -0
  80. package/dist/notes/guardrails.js +38 -0
  81. package/dist/notes/guardrails.js.map +1 -0
  82. package/dist/notes/lesson-index.d.ts +13 -0
  83. package/dist/notes/lesson-index.d.ts.map +1 -0
  84. package/dist/notes/lesson-index.js +135 -0
  85. package/dist/notes/lesson-index.js.map +1 -0
  86. package/dist/notes/linked-learnings.d.ts +8 -0
  87. package/dist/notes/linked-learnings.d.ts.map +1 -0
  88. package/dist/notes/linked-learnings.js +113 -0
  89. package/dist/notes/linked-learnings.js.map +1 -0
  90. package/dist/notes/replace.d.ts +14 -0
  91. package/dist/notes/replace.d.ts.map +1 -0
  92. package/dist/notes/replace.js +38 -0
  93. package/dist/notes/replace.js.map +1 -0
  94. package/dist/notes/repo-notes-dir.d.ts +2 -0
  95. package/dist/notes/repo-notes-dir.d.ts.map +1 -0
  96. package/dist/notes/repo-notes-dir.js +16 -0
  97. package/dist/notes/repo-notes-dir.js.map +1 -0
  98. package/dist/skills/anchors-cli.d.ts +33 -0
  99. package/dist/skills/anchors-cli.d.ts.map +1 -0
  100. package/dist/skills/anchors-cli.js +274 -0
  101. package/dist/skills/anchors-cli.js.map +1 -0
  102. package/dist/skills/anchors-git.d.ts +29 -0
  103. package/dist/skills/anchors-git.d.ts.map +1 -0
  104. package/dist/skills/anchors-git.js +241 -0
  105. package/dist/skills/anchors-git.js.map +1 -0
  106. package/dist/skills/anchors-wide.d.ts +25 -0
  107. package/dist/skills/anchors-wide.d.ts.map +1 -0
  108. package/dist/skills/anchors-wide.js +481 -0
  109. package/dist/skills/anchors-wide.js.map +1 -0
  110. package/dist/skills/anchors.d.ts +32 -0
  111. package/dist/skills/anchors.d.ts.map +1 -0
  112. package/dist/skills/anchors.js +485 -0
  113. package/dist/skills/anchors.js.map +1 -0
  114. package/dist/skills/check-result.d.ts +26 -0
  115. package/dist/skills/check-result.d.ts.map +1 -0
  116. package/dist/skills/check-result.js +46 -0
  117. package/dist/skills/check-result.js.map +1 -0
  118. package/dist/skills/codex-sandbox.d.ts +6 -0
  119. package/dist/skills/codex-sandbox.d.ts.map +1 -0
  120. package/dist/skills/codex-sandbox.js +55 -0
  121. package/dist/skills/codex-sandbox.js.map +1 -0
  122. package/dist/skills/compile-split.d.ts +57 -0
  123. package/dist/skills/compile-split.d.ts.map +1 -0
  124. package/dist/skills/compile-split.js +532 -0
  125. package/dist/skills/compile-split.js.map +1 -0
  126. package/dist/skills/compile-version.d.ts +37 -0
  127. package/dist/skills/compile-version.d.ts.map +1 -0
  128. package/dist/skills/compile-version.js +56 -0
  129. package/dist/skills/compile-version.js.map +1 -0
  130. package/dist/skills/compile-waits.d.ts +12 -0
  131. package/dist/skills/compile-waits.d.ts.map +1 -0
  132. package/dist/skills/compile-waits.js +52 -0
  133. package/dist/skills/compile-waits.js.map +1 -0
  134. package/dist/skills/compile-words.d.ts +82 -0
  135. package/dist/skills/compile-words.d.ts.map +1 -0
  136. package/dist/skills/compile-words.js +385 -0
  137. package/dist/skills/compile-words.js.map +1 -0
  138. package/dist/skills/compile.d.ts +35 -0
  139. package/dist/skills/compile.d.ts.map +1 -0
  140. package/dist/skills/compile.js +488 -0
  141. package/dist/skills/compile.js.map +1 -0
  142. package/dist/skills/credit-facts.d.ts +8 -0
  143. package/dist/skills/credit-facts.d.ts.map +1 -0
  144. package/dist/skills/credit-facts.js +32 -0
  145. package/dist/skills/credit-facts.js.map +1 -0
  146. package/dist/skills/directive-words.d.ts +11 -0
  147. package/dist/skills/directive-words.d.ts.map +1 -0
  148. package/dist/skills/directive-words.js +33 -0
  149. package/dist/skills/directive-words.js.map +1 -0
  150. package/dist/skills/fidelity.d.ts +42 -0
  151. package/dist/skills/fidelity.d.ts.map +1 -0
  152. package/dist/skills/fidelity.js +138 -0
  153. package/dist/skills/fidelity.js.map +1 -0
  154. package/dist/skills/forget-notice.d.ts +44 -0
  155. package/dist/skills/forget-notice.d.ts.map +1 -0
  156. package/dist/skills/forget-notice.js +131 -0
  157. package/dist/skills/forget-notice.js.map +1 -0
  158. package/dist/skills/found-skill.d.ts +35 -0
  159. package/dist/skills/found-skill.d.ts.map +1 -0
  160. package/dist/skills/found-skill.js +66 -0
  161. package/dist/skills/found-skill.js.map +1 -0
  162. package/dist/skills/front-version.d.ts +12 -0
  163. package/dist/skills/front-version.d.ts.map +1 -0
  164. package/dist/skills/front-version.js +87 -0
  165. package/dist/skills/front-version.js.map +1 -0
  166. package/dist/skills/host-facts.d.ts +51 -0
  167. package/dist/skills/host-facts.d.ts.map +1 -0
  168. package/dist/skills/host-facts.js +134 -0
  169. package/dist/skills/host-facts.js.map +1 -0
  170. package/dist/skills/ledger.d.ts +43 -0
  171. package/dist/skills/ledger.d.ts.map +1 -0
  172. package/dist/skills/ledger.js +336 -0
  173. package/dist/skills/ledger.js.map +1 -0
  174. package/dist/skills/lessons.d.ts +60 -0
  175. package/dist/skills/lessons.d.ts.map +1 -0
  176. package/dist/skills/lessons.js +396 -0
  177. package/dist/skills/lessons.js.map +1 -0
  178. package/dist/skills/offer-answers.d.ts +20 -0
  179. package/dist/skills/offer-answers.d.ts.map +1 -0
  180. package/dist/skills/offer-answers.js +51 -0
  181. package/dist/skills/offer-answers.js.map +1 -0
  182. package/dist/skills/own-folder.d.ts +9 -0
  183. package/dist/skills/own-folder.d.ts.map +1 -0
  184. package/dist/skills/own-folder.js +36 -0
  185. package/dist/skills/own-folder.js.map +1 -0
  186. package/dist/skills/person.d.ts +34 -0
  187. package/dist/skills/person.d.ts.map +1 -0
  188. package/dist/skills/person.js +102 -0
  189. package/dist/skills/person.js.map +1 -0
  190. package/dist/skills/probe-clean.d.ts +9 -0
  191. package/dist/skills/probe-clean.d.ts.map +1 -0
  192. package/dist/skills/probe-clean.js +48 -0
  193. package/dist/skills/probe-clean.js.map +1 -0
  194. package/dist/skills/probes.d.ts +26 -0
  195. package/dist/skills/probes.d.ts.map +1 -0
  196. package/dist/skills/probes.js +225 -0
  197. package/dist/skills/probes.js.map +1 -0
  198. package/dist/skills/recall.d.ts +119 -0
  199. package/dist/skills/recall.d.ts.map +1 -0
  200. package/dist/skills/recall.js +370 -0
  201. package/dist/skills/recall.js.map +1 -0
  202. package/dist/skills/receipts.d.ts +44 -0
  203. package/dist/skills/receipts.d.ts.map +1 -0
  204. package/dist/skills/receipts.js +223 -0
  205. package/dist/skills/receipts.js.map +1 -0
  206. package/dist/skills/run-checkout.d.ts +4 -0
  207. package/dist/skills/run-checkout.d.ts.map +1 -0
  208. package/dist/skills/run-checkout.js +37 -0
  209. package/dist/skills/run-checkout.js.map +1 -0
  210. package/dist/skills/runblock.d.ts +45 -0
  211. package/dist/skills/runblock.d.ts.map +1 -0
  212. package/dist/skills/runblock.js +222 -0
  213. package/dist/skills/runblock.js.map +1 -0
  214. package/dist/skills/save-parse.d.ts +42 -0
  215. package/dist/skills/save-parse.d.ts.map +1 -0
  216. package/dist/skills/save-parse.js +172 -0
  217. package/dist/skills/save-parse.js.map +1 -0
  218. package/dist/skills/save-store.d.ts +12 -0
  219. package/dist/skills/save-store.d.ts.map +1 -0
  220. package/dist/skills/save-store.js +22 -0
  221. package/dist/skills/save-store.js.map +1 -0
  222. package/dist/skills/settings.d.ts +38 -0
  223. package/dist/skills/settings.d.ts.map +1 -0
  224. package/dist/skills/settings.js +133 -0
  225. package/dist/skills/settings.js.map +1 -0
  226. package/dist/skills/skill-diff.d.ts +40 -0
  227. package/dist/skills/skill-diff.d.ts.map +1 -0
  228. package/dist/skills/skill-diff.js +191 -0
  229. package/dist/skills/skill-diff.js.map +1 -0
  230. package/dist/skills/skill-file.d.ts +24 -0
  231. package/dist/skills/skill-file.d.ts.map +1 -0
  232. package/dist/skills/skill-file.js +97 -0
  233. package/dist/skills/skill-file.js.map +1 -0
  234. package/dist/skills/skill-rebuild.d.ts +27 -0
  235. package/dist/skills/skill-rebuild.d.ts.map +1 -0
  236. package/dist/skills/skill-rebuild.js +85 -0
  237. package/dist/skills/skill-rebuild.js.map +1 -0
  238. package/dist/skills/skillmd.d.ts +17 -0
  239. package/dist/skills/skillmd.d.ts.map +1 -0
  240. package/dist/skills/skillmd.js +219 -0
  241. package/dist/skills/skillmd.js.map +1 -0
  242. package/dist/skills/skills.d.ts +2 -0
  243. package/dist/skills/skills.d.ts.map +1 -1
  244. package/dist/skills/skills.js +1 -1
  245. package/dist/skills/skills.js.map +1 -1
  246. package/dist/skills/staleness.d.ts +27 -0
  247. package/dist/skills/staleness.d.ts.map +1 -0
  248. package/dist/skills/staleness.js +178 -0
  249. package/dist/skills/staleness.js.map +1 -0
  250. package/dist/skills/state.d.ts +36 -0
  251. package/dist/skills/state.d.ts.map +1 -0
  252. package/dist/skills/state.js +259 -0
  253. package/dist/skills/state.js.map +1 -0
  254. package/dist/skills/store-fs.d.ts +77 -0
  255. package/dist/skills/store-fs.d.ts.map +1 -0
  256. package/dist/skills/store-fs.js +194 -0
  257. package/dist/skills/store-fs.js.map +1 -0
  258. package/dist/skills/store-held.d.ts +44 -0
  259. package/dist/skills/store-held.d.ts.map +1 -0
  260. package/dist/skills/store-held.js +147 -0
  261. package/dist/skills/store-held.js.map +1 -0
  262. package/dist/skills/store.d.ts +73 -0
  263. package/dist/skills/store.d.ts.map +1 -0
  264. package/dist/skills/store.js +279 -0
  265. package/dist/skills/store.js.map +1 -0
  266. package/dist/skills/validate.d.ts +11 -0
  267. package/dist/skills/validate.d.ts.map +1 -0
  268. package/dist/skills/validate.js +112 -0
  269. package/dist/skills/validate.js.map +1 -0
  270. package/dist/skills/versions-fs.d.ts +45 -0
  271. package/dist/skills/versions-fs.d.ts.map +1 -0
  272. package/dist/skills/versions-fs.js +234 -0
  273. package/dist/skills/versions-fs.js.map +1 -0
  274. package/dist/skills/versions.d.ts +56 -0
  275. package/dist/skills/versions.d.ts.map +1 -0
  276. package/dist/skills/versions.js +351 -0
  277. package/dist/skills/versions.js.map +1 -0
  278. package/dist/trace/checks.d.ts +63 -0
  279. package/dist/trace/checks.d.ts.map +1 -0
  280. package/dist/trace/checks.js +487 -0
  281. package/dist/trace/checks.js.map +1 -0
  282. package/dist/trace/claude.d.ts +124 -0
  283. package/dist/trace/claude.d.ts.map +1 -0
  284. package/dist/trace/claude.js +303 -0
  285. package/dist/trace/claude.js.map +1 -0
  286. package/dist/trace/codex-exec.d.ts +22 -0
  287. package/dist/trace/codex-exec.d.ts.map +1 -0
  288. package/dist/trace/codex-exec.js +129 -0
  289. package/dist/trace/codex-exec.js.map +1 -0
  290. package/dist/trace/codex-meta.d.ts +23 -0
  291. package/dist/trace/codex-meta.d.ts.map +1 -0
  292. package/dist/trace/codex-meta.js +112 -0
  293. package/dist/trace/codex-meta.js.map +1 -0
  294. package/dist/trace/codex.d.ts +33 -0
  295. package/dist/trace/codex.d.ts.map +1 -0
  296. package/dist/trace/codex.js +485 -0
  297. package/dist/trace/codex.js.map +1 -0
  298. package/dist/trace/cursor.d.ts +16 -0
  299. package/dist/trace/cursor.d.ts.map +1 -0
  300. package/dist/trace/cursor.js +133 -0
  301. package/dist/trace/cursor.js.map +1 -0
  302. package/dist/trace/dialect.d.ts +43 -0
  303. package/dist/trace/dialect.d.ts.map +1 -0
  304. package/dist/trace/dialect.js +95 -0
  305. package/dist/trace/dialect.js.map +1 -0
  306. package/dist/trace/epochs.d.ts +10 -0
  307. package/dist/trace/epochs.d.ts.map +1 -0
  308. package/dist/trace/epochs.js +16 -0
  309. package/dist/trace/epochs.js.map +1 -0
  310. package/dist/trace/failure.d.ts +15 -0
  311. package/dist/trace/failure.d.ts.map +1 -0
  312. package/dist/trace/failure.js +69 -0
  313. package/dist/trace/failure.js.map +1 -0
  314. package/dist/trace/gate-file.d.ts +71 -0
  315. package/dist/trace/gate-file.d.ts.map +1 -0
  316. package/dist/trace/gate-file.js +329 -0
  317. package/dist/trace/gate-file.js.map +1 -0
  318. package/dist/trace/guard-fast.d.ts +22 -0
  319. package/dist/trace/guard-fast.d.ts.map +1 -0
  320. package/dist/trace/guard-fast.js +213 -0
  321. package/dist/trace/guard-fast.js.map +1 -0
  322. package/dist/trace/housekeeping.d.ts +5 -0
  323. package/dist/trace/housekeeping.d.ts.map +1 -0
  324. package/dist/trace/housekeeping.js +93 -0
  325. package/dist/trace/housekeeping.js.map +1 -0
  326. package/dist/trace/jobs.d.ts +52 -0
  327. package/dist/trace/jobs.d.ts.map +1 -0
  328. package/dist/trace/jobs.js +182 -0
  329. package/dist/trace/jobs.js.map +1 -0
  330. package/dist/trace/known-repo.d.ts +3 -0
  331. package/dist/trace/known-repo.d.ts.map +1 -0
  332. package/dist/trace/known-repo.js +55 -0
  333. package/dist/trace/known-repo.js.map +1 -0
  334. package/dist/trace/pool.d.ts +40 -0
  335. package/dist/trace/pool.d.ts.map +1 -0
  336. package/dist/trace/pool.js +154 -0
  337. package/dist/trace/pool.js.map +1 -0
  338. package/dist/trace/repairs.d.ts +27 -0
  339. package/dist/trace/repairs.d.ts.map +1 -0
  340. package/dist/trace/repairs.js +303 -0
  341. package/dist/trace/repairs.js.map +1 -0
  342. package/dist/trace/run-calls.d.ts +82 -0
  343. package/dist/trace/run-calls.d.ts.map +1 -0
  344. package/dist/trace/run-calls.js +331 -0
  345. package/dist/trace/run-calls.js.map +1 -0
  346. package/dist/trace/run-join.d.ts +20 -0
  347. package/dist/trace/run-join.d.ts.map +1 -0
  348. package/dist/trace/run-join.js +99 -0
  349. package/dist/trace/run-join.js.map +1 -0
  350. package/dist/trace/run-sheets.d.ts +26 -0
  351. package/dist/trace/run-sheets.d.ts.map +1 -0
  352. package/dist/trace/run-sheets.js +145 -0
  353. package/dist/trace/run-sheets.js.map +1 -0
  354. package/dist/trace/run-turns.d.ts +24 -0
  355. package/dist/trace/run-turns.d.ts.map +1 -0
  356. package/dist/trace/run-turns.js +67 -0
  357. package/dist/trace/run-turns.js.map +1 -0
  358. package/dist/trace/run-verdict.d.ts +24 -0
  359. package/dist/trace/run-verdict.d.ts.map +1 -0
  360. package/dist/trace/run-verdict.js +176 -0
  361. package/dist/trace/run-verdict.js.map +1 -0
  362. package/dist/trace/runs.d.ts +54 -0
  363. package/dist/trace/runs.d.ts.map +1 -0
  364. package/dist/trace/runs.js +501 -0
  365. package/dist/trace/runs.js.map +1 -0
  366. package/dist/trace/skill-session.d.ts +64 -0
  367. package/dist/trace/skill-session.d.ts.map +1 -0
  368. package/dist/trace/skill-session.js +232 -0
  369. package/dist/trace/skill-session.js.map +1 -0
  370. package/dist/trace/tamper.d.ts +12 -0
  371. package/dist/trace/tamper.d.ts.map +1 -0
  372. package/dist/trace/tamper.js +405 -0
  373. package/dist/trace/tamper.js.map +1 -0
  374. package/dist/trace/typed.d.ts +30 -0
  375. package/dist/trace/typed.d.ts.map +1 -0
  376. package/dist/trace/typed.js +132 -0
  377. package/dist/trace/typed.js.map +1 -0
  378. package/dist/trace/wall-state.d.ts +86 -0
  379. package/dist/trace/wall-state.d.ts.map +1 -0
  380. package/dist/trace/wall-state.js +279 -0
  381. package/dist/trace/wall-state.js.map +1 -0
  382. package/dist/trace/walls.d.ts +40 -0
  383. package/dist/trace/walls.d.ts.map +1 -0
  384. package/dist/trace/walls.js +318 -0
  385. package/dist/trace/walls.js.map +1 -0
  386. package/dist/vendor/tree-sitter-swift/LICENSE +21 -0
  387. package/dist/vendor/tree-sitter-swift/node-types.json +30694 -0
  388. package/dist/vendor/tree-sitter-swift/prebuilds/darwin-arm64/tree-sitter-swift.node +0 -0
  389. package/dist/vendor/tree-sitter-swift/prebuilds/darwin-x64/tree-sitter-swift.node +0 -0
  390. package/dist/vendor/tree-sitter-swift/prebuilds/linux-arm64/tree-sitter-swift.node +0 -0
  391. package/dist/vendor/tree-sitter-swift/prebuilds/linux-x64/tree-sitter-swift.node +0 -0
  392. package/dist/vendor/tree-sitter-swift/prebuilds/win32-arm64/tree-sitter-swift.node +0 -0
  393. package/dist/vendor/tree-sitter-swift/prebuilds/win32-x64/tree-sitter-swift.node +0 -0
  394. package/package.json +6 -3
  395. package/scripts/stamp-telemetry-key.mjs +8 -5
  396. package/scripts/vendor-grammars.mjs +35 -0
@@ -0,0 +1,318 @@
1
+ /**
2
+ * The wall catalog (design 4.10): seven errors that a command keeps hitting
3
+ * on a machine for reasons outside the code, each with the fix a person
4
+ * wrote, appended to the agent's context when the error comes back.
5
+ *
6
+ * A class matches only on its own line-anchored patterns, in the first and
7
+ * last 4 KB of the result, never inside quoted or JSON-escaped output (D147:
8
+ * a printed record of another session), and (for four classes) only when a segment of the
9
+ * command runs the program the error belongs to (R28): a log printed by
10
+ * `cat`, or an `echo` an agent writes, matches nothing.
11
+ *
12
+ * The fix texts are constants. Nothing from the command's output reaches
13
+ * them; the only value put in is the remote's SSH address, rebuilt from its
14
+ * https URL and checked. They read as information about the failed command
15
+ * (D88): Trail is the tool the person installed, this is the error it knows,
16
+ * and this command usually fixes it, because. They never tell the agent what
17
+ * to say.
18
+ *
19
+ * Pure. Not on the PreToolUse fast path.
20
+ */
21
+ import { flatLine } from '../notes/flatten.js';
22
+ import { WALL_CLASSES } from '../notes/learning-fields.js';
23
+ import { isLookOnly } from './shell.js';
24
+ import { afterTimeout, shellScript, simpleCommands } from './shell-words.js';
25
+ import { ASSIGN, base, words } from './shell-scan.js';
26
+ import { globWallTied } from './walls-glob.js';
27
+ import { unquotedMatch } from './walls-quoted.js';
28
+ /** Where a shell puts its name before its own error: `zsh:1: `, `bash: line 3: `, `bash: `, `(eval):1: `, `/bin/zsh:1: `. */
29
+ const SHELL = String.raw `(?:(?:\/[\w./-]*\/)?(?:zsh|bash|sh)(?::\d+)?:(?: line \d+:)? |\(eval\):\d+: )?`;
30
+ const at = (body) => new RegExp(`^${SHELL}${body}`, 'm');
31
+ const DOCKER_ENV = 'DOCKER_HOST=unix://$HOME/.colima/default/docker.sock TESTCONTAINERS_DOCKER_SOCKET_OVERRIDE=/var/run/docker.sock TESTCONTAINERS_RYUK_DISABLED=true';
32
+ /** The parts every fix line shares (b7 holds them to the words rules with the other copy constants). */
33
+ export const WALL_COPY = {
34
+ lead: '[trail] Trail, the tool this person installed, recognizes this error',
35
+ lastTime: '[trail] What fixed this here before (a lesson this person kept in Trail, worked on {date1} and {date2}): {lesson}',
36
+ };
37
+ const lead = (what, words) => `${WALL_COPY.lead}${what}: ${words}.`;
38
+ export const WALLS = Object.freeze([
39
+ {
40
+ cls: 'timeout-missing',
41
+ patterns: [at(String.raw `command not found: timeout\s*$`), at(String.raw `timeout: command not found\s*$`)],
42
+ programs: ['timeout'],
43
+ words: '"timeout: command not found"',
44
+ fix: () => `${lead(' from the timeout command', '"timeout: command not found"')} This Mac has no timeout program. `
45
+ + "The usual fix is the same command without timeout, using the Bash tool's own timeout parameter or run_in_background, since neither needs that program.",
46
+ guardrail: {
47
+ title: 'No timeout on this Mac', fileName: 'no-timeout.md', check: 'no-timeout', applies: 'every repo',
48
+ text: "This Mac has no `timeout`. Run long commands in the background, or use the Bash tool's own timeout.",
49
+ },
50
+ },
51
+ {
52
+ cls: 'zsh-no-match',
53
+ patterns: [/^(?:(?:\/[\w./-]*\/)?zsh|\(eval\)):\d*:? no matches found: /m],
54
+ programs: null,
55
+ words: 'zsh "no matches found"',
56
+ fix: () => `${lead('', 'zsh "no matches found"')} zsh expanded an unquoted glob before the command ran. `
57
+ + "The usual fix is to quote that argument ('...*...') or put noglob in front of the command, so the glob reaches the program as written.",
58
+ guardrail: null,
59
+ },
60
+ {
61
+ cls: 'git-https-auth',
62
+ patterns: [at("fatal: could not read Username for 'https://"), /^remote: Invalid username or password/m, /^(?:fatal: )?Authentication failed for 'https:\/\//m],
63
+ programs: ['git', 'gh'],
64
+ words: 'the HTTPS push asking for a username',
65
+ fix: (ctx) => {
66
+ const ssh = goodSsh(ctx.remoteSsh);
67
+ const push = ssh
68
+ ? `The usual fix is git push ${ssh} HEAD, because an SSH push uses this machine's SSH key, not HTTPS credentials.`
69
+ : "The usual fix is to push to the remote's SSH address (git@host:owner/repo.git), because an SSH push uses this machine's SSH key, not HTTPS credentials.";
70
+ const gh = ctx.hasProgram('gh') ? ' gh auth setup-git, run once by the person in their own terminal, also fixes it.' : '';
71
+ return `${lead(' from git', 'the HTTPS push asking for a username')} This remote is HTTPS and git has no credentials for it here. ${push}${gh}`;
72
+ },
73
+ guardrail: {
74
+ title: 'Push over SSH in this repo', fileName: 'push-over-ssh.md', applies: 'this repo',
75
+ text: "This repo's remote is HTTPS and git has no credentials for it here. Push over SSH, to the remote's git@ address.",
76
+ },
77
+ },
78
+ {
79
+ cls: 'docker-rootless',
80
+ // Anywhere on a line (a test runner's `Failed to get provider: ...`), so the match starts at the error's words.
81
+ patterns: [/\brootless Docker not found\b/m, /\bCannot connect to the Docker daemon at unix:\/\//m],
82
+ programs: null,
83
+ words: '"rootless Docker not found"',
84
+ fix: (ctx) => ctx.hasProgram('colima')
85
+ ? `${lead(' from Docker', '"rootless Docker not found"')} Docker on this Mac runs in Colima. The usual fix is colima start if it isn't running, `
86
+ + `then the same command with ${DOCKER_ENV} in front, because test tools look for Docker's default socket and Colima's is elsewhere.`
87
+ : `${lead(' from Docker', '"rootless Docker not found"')} No Docker daemon is running here. It needs Docker Desktop or Colima started on this machine, `
88
+ + 'which is the person\'s step; after that the same command usually works, since only the daemon was missing.',
89
+ guardrail: null,
90
+ },
91
+ {
92
+ cls: 'npm-e401-eotp',
93
+ patterns: [/^npm (?:ERR!|error) code (?:E401|EOTP|ENEEDAUTH)\b/m],
94
+ programs: ['npm', 'npx', 'pnpm', 'yarn'],
95
+ words: 'npm asking for a login or one-time password',
96
+ fix: () => `${lead(' from npm', 'npm asking for a login or one-time password')} Only the person can give npm a fresh login or a one-time password, `
97
+ + 'so the same npm command fails the same way until then. The usual fix is npm login, or the publish itself, run by the person in their own terminal.',
98
+ guardrail: null,
99
+ },
100
+ {
101
+ cls: 'claude-not-logged-in',
102
+ patterns: [/^(?:Error: )?Invalid API key · Please run \/login/m, /^(?:Error: )?Failed to authenticate\b/m, /^(?:Error: )?OAuth session expired\b/m],
103
+ programs: ['claude'],
104
+ words: 'claude not signed in',
105
+ fix: () => `${lead(' from the claude CLI', 'claude not signed in')} The claude CLI isn't signed in on this terminal, `
106
+ + 'so the same claude command fails the same way until it is. The usual fix is the person running claude in their own terminal and signing in there.',
107
+ guardrail: null,
108
+ },
109
+ {
110
+ cls: 'enospc',
111
+ patterns: [/(?:^|: )[Nn]o space left on device\b/m, /(?:^|Error: |code )ENOSPC\b/m],
112
+ programs: null,
113
+ words: '"No space left on device"',
114
+ fix: () => `${lead('', '"No space left on device"')} The disk is full, so writes fail whatever the command is. `
115
+ + 'df -h . shows what is left; the usual fix is freeing space, and which files go is the person\'s call, since deleting can\'t be undone.',
116
+ guardrail: null,
117
+ },
118
+ ]);
119
+ const BY_CLASS = new Map(WALLS.map((w) => [w.cls, w]));
120
+ /** Classes matched on a command that exited 0 (P23): the three that hide behind `| tail` in the corpus. */
121
+ const EXIT_ZERO = new Set(['timeout-missing', 'zsh-no-match', 'docker-rootless']);
122
+ const END = 4 * 1024;
123
+ const MAX_CHAIN = 16;
124
+ const MAX_DEPTH = 4;
125
+ /** A longer command is no wall: parsing it would cost more than the hook has (2 MB took 0.9 s), and no real one is this long. */
126
+ const MAX_COMMAND = 64 * 1024;
127
+ /** A colour or cursor code (CSI): npm and git colour their error lines under FORCE_COLOR. */
128
+ const ANSI = /\x1b\[[0-9;?]*[ -/]*[@-~]/g;
129
+ /**
130
+ * Programs that only print what they were given or read. A command made of these alone (and no redirect, so
131
+ * look-only) can't hit the disk or Docker: an error it shows is quoted from a log, a README or an echo (planted text).
132
+ */
133
+ const PRINTERS = new Set([
134
+ 'echo', 'printf', 'cat', 'head', 'tail', 'grep', 'egrep', 'fgrep', 'rg', 'less', 'more', 'wc', 'true', 'false',
135
+ 'exit', 'return', 'test', '[', '[[', ':', 'cd', 'pwd', 'sleep',
136
+ ]);
137
+ /** An SSH remote as sshRemoteFor makes them: `git@host:owner/repo.git`, plain characters only. */
138
+ const SSH_REMOTE = /^git@[A-Za-z0-9.-]{1,253}:[A-Za-z0-9._-]{1,100}(?:\/[A-Za-z0-9._-]{1,100}){1,4}\.git$/;
139
+ /** No part may start with '-': git and ssh would read `git@-oProxyCommand…` or `:-upload-pack…` as an option. */
140
+ const goodSsh = (s) => (typeof s === 'string' && SSH_REMOTE.test(s) && !s.includes('..') && !/[@:/.]-/.test(s) ? s : null);
141
+ /** `https://host/owner/repo(.git)` to `git@host:owner/repo.git`; never a user or token; null for anything else. */
142
+ export function sshRemoteFor(url) {
143
+ const m = /^https:\/\/(?:[^@/\s]+@)?([A-Za-z0-9.-]{1,253})\/([A-Za-z0-9._-]{1,100}(?:\/[A-Za-z0-9._-]{1,100}){1,4}?)(?:\.git)?\/?$/.exec(String(url ?? '').trim());
144
+ if (!m)
145
+ return null;
146
+ return goodSsh(`git@${m[1]}:${m[2].replace(/\.git$/, '')}.git`);
147
+ }
148
+ /** The words after one wrapper (time, nohup, env, sudo, timeout, ...), or null when `w` doesn't start with one. */
149
+ function unwrap(w) {
150
+ const p = w[0];
151
+ if (p === 'time')
152
+ return w.slice(w[1] === '-p' ? 2 : 1);
153
+ if (p === 'nohup' || p === '!' || p === 'exec' || p === 'noglob' || p === 'caffeinate')
154
+ return w.slice(1);
155
+ if (p === 'command')
156
+ return w[1] && !w[1].startsWith('-') ? w.slice(1) : null;
157
+ if (p === 'nice')
158
+ return w.slice(w[1] === '-n' ? 3 : w[1]?.startsWith('-') ? 2 : 1);
159
+ if (p === 'timeout' || p === 'gtimeout')
160
+ return afterTimeout(w);
161
+ if (p === 'env' || p === 'sudo' || p === 'doas') {
162
+ let i = 1;
163
+ while (i < w.length && (w[i].startsWith('-') || ASSIGN.test(w[i])))
164
+ i += /^-[uCgDhprtUT]$/.test(w[i]) ? 2 : 1;
165
+ return w.slice(i);
166
+ }
167
+ return null;
168
+ }
169
+ /** Every program a simple command runs through its wrappers, and inside `sh -c '...'`. */
170
+ function programsOf(simple, depth, out) {
171
+ let w = words(simple);
172
+ for (let n = 0; n < MAX_CHAIN && w.length; n++) {
173
+ while (w.length && ASSIGN.test(w[0]))
174
+ w = w.slice(1);
175
+ if (!w.length)
176
+ return;
177
+ out.add(base(w[0]));
178
+ const script = shellScript(w);
179
+ if (script !== null) {
180
+ if (depth < MAX_DEPTH)
181
+ for (const s of simpleCommands(script))
182
+ programsOf(s, depth + 1, out);
183
+ return;
184
+ }
185
+ const next = unwrap(w);
186
+ if (!next)
187
+ return;
188
+ w = next;
189
+ }
190
+ }
191
+ function programsIn(command) {
192
+ const out = new Set();
193
+ for (const s of simpleCommands(command))
194
+ programsOf(s, 0, out);
195
+ return out;
196
+ }
197
+ /** The command outside its quotes and escapes, in one pass (a regex over nested quotes can backtrack). */
198
+ function unquoted(command) {
199
+ let out = '';
200
+ let q = '';
201
+ for (let i = 0; i < command.length; i++) {
202
+ const c = command[i];
203
+ if (q === "'") {
204
+ if (c === "'")
205
+ q = '';
206
+ continue;
207
+ }
208
+ if (c === '\\') {
209
+ i++;
210
+ continue;
211
+ }
212
+ if (q === '"') {
213
+ if (c === '"')
214
+ q = '';
215
+ continue;
216
+ }
217
+ if (c === "'" || c === '"') {
218
+ q = c;
219
+ continue;
220
+ }
221
+ out += c;
222
+ }
223
+ return out;
224
+ }
225
+ /**
226
+ * The first and last 4 KB of the result, colour codes gone. A line the window's edge cuts is no line: the tail
227
+ * window starts at its first whole line, and the head window's cut end is kept off a line end (NUL before the
228
+ * joining newline), so `^` and `$` see only real line edges.
229
+ */
230
+ function windows(result) {
231
+ if (result.length <= 2 * END)
232
+ return result.replace(ANSI, '');
233
+ const head = result.slice(0, END);
234
+ let tail = result.slice(-END);
235
+ const before = result[result.length - END - 1];
236
+ if (before !== '\n' && before !== '\r') {
237
+ const nl = tail.search(/[\r\n]/);
238
+ tail = nl < 0 ? '' : tail.slice(nl + 1);
239
+ }
240
+ return `${head}\u0000\n${tail}`.replace(ANSI, '');
241
+ }
242
+ /** Null unless one class matches. `failed` false means the command exited 0 (P23 limits apply). */
243
+ export function matchWall(result, command, failed) {
244
+ try {
245
+ if (typeof result !== 'string' || typeof command !== 'string' || !result || command.length > MAX_COMMAND)
246
+ return null;
247
+ const ends = windows(result);
248
+ // The patterns first: they read at most 8 KB, and most results match none, so the command is parsed only for a hit.
249
+ // A match inside quoted or JSON-escaped output (a printed record of another session) is no hit (D147).
250
+ const hits = WALLS.filter((w) => (failed || EXIT_ZERO.has(w.cls)) && w.patterns.some((re) => unquotedMatch(re, ends)));
251
+ if (!hits.length)
252
+ return null;
253
+ const look = isLookOnly(command);
254
+ if (!failed && look)
255
+ return null;
256
+ const programs = programsIn(command);
257
+ // Planted text: a look-only command made only of printers shows an error, it doesn't hit one (zsh's own glob aside).
258
+ const printsOnly = look && programs.size > 0 && [...programs].every((p) => PRINTERS.has(p));
259
+ for (const w of hits) {
260
+ if (w.programs && !w.programs.some((p) => programs.has(p)))
261
+ continue;
262
+ if (w.cls === 'zsh-no-match') {
263
+ // zsh says it only for a glob the command itself left unquoted, and it is a wall only when that glob was
264
+ // never a file path: a flag's value, a URL or query, a git grep/log/diff pathspec, a grep pattern (D147).
265
+ if (!/[*?[]/.test(unquoted(command)) || !globWallTied(ends, command))
266
+ continue;
267
+ }
268
+ else if (!w.programs && printsOnly)
269
+ continue;
270
+ return w.cls;
271
+ }
272
+ return null;
273
+ }
274
+ catch {
275
+ return null;
276
+ }
277
+ }
278
+ /** '[trail] Trail, the tool this person installed, recognizes this error ...' (4.10, D88); '' for an unknown class. */
279
+ export function wallFixText(cls, ctx) {
280
+ const w = BY_CLASS.get(cls);
281
+ if (!w)
282
+ return '';
283
+ try {
284
+ return w.fix(ctx);
285
+ }
286
+ catch {
287
+ return w.fix({ hasProgram: () => false, remoteSsh: null });
288
+ }
289
+ }
290
+ const MONTHS = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
291
+ const DAY = /^(\d{4})-(\d{2})-(\d{2})$/;
292
+ const shortDay = (d) => {
293
+ const m = DAY.exec(d);
294
+ return `${MONTHS[Number(m[2]) - 1] ?? m[2]} ${Number(m[3])}`;
295
+ };
296
+ /**
297
+ * '[trail] What fixed this here before (...worked on {date1} and {date2}): {lesson text}', only when the lesson
298
+ * worked on 2 or more days given as local dates (4.10); the newest two are said. '' otherwise.
299
+ */
300
+ export function lastTimeText(lessonText, workedOn) {
301
+ // Only real days count as epochs: junk in the list is no second epoch.
302
+ const valid = (Array.isArray(workedOn) ? workedOn : []).filter((d) => typeof d === 'string' && DAY.test(d));
303
+ const days = [...new Set(valid)].sort();
304
+ const text = flatLine(lessonText, 200);
305
+ if (!text || valid.length < 2)
306
+ return '';
307
+ const [d1, d2] = days.slice(-2);
308
+ if (!d1)
309
+ return '';
310
+ // Two epochs on one day: 'worked twice on Oct 2'.
311
+ const when = d2 ? WALL_COPY.lastTime : WALL_COPY.lastTime.replace('on {date1} and {date2}', 'twice on {date1}');
312
+ // Functions, so a `$'` or `$&` in the lesson is text, not a replacement pattern.
313
+ return when.replace('{date1}', () => shortDay(d1)).replace('{date2}', () => (d2 ? shortDay(d2) : '')).replace('{lesson}', () => text);
314
+ }
315
+ // The catalog and the closed list agree (a test holds them equal too).
316
+ if (WALLS.map((w) => w.cls).join() !== WALL_CLASSES.join())
317
+ throw new Error('walls.ts: the catalog and WALL_CLASSES differ');
318
+ //# sourceMappingURL=walls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"walls.js","sourceRoot":"","sources":["../../src/trace/walls.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2021 alex-pinkus
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.