@cstart/coldstart 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (360) hide show
  1. package/README.md +236 -0
  2. package/dist/cache/disk-cache.d.ts +14 -0
  3. package/dist/cache/disk-cache.d.ts.map +1 -0
  4. package/dist/cache/disk-cache.js +371 -0
  5. package/dist/cache/disk-cache.js.map +1 -0
  6. package/dist/cli.d.ts +18 -0
  7. package/dist/cli.d.ts.map +1 -0
  8. package/dist/cli.js +206 -0
  9. package/dist/cli.js.map +1 -0
  10. package/dist/constants.d.ts +8 -0
  11. package/dist/constants.d.ts.map +1 -0
  12. package/dist/constants.js +111 -0
  13. package/dist/constants.js.map +1 -0
  14. package/dist/daemon-lock.d.ts +63 -0
  15. package/dist/daemon-lock.d.ts.map +1 -0
  16. package/dist/daemon-lock.js +218 -0
  17. package/dist/daemon-lock.js.map +1 -0
  18. package/dist/daemon-log.d.ts +26 -0
  19. package/dist/daemon-log.d.ts.map +1 -0
  20. package/dist/daemon-log.js +110 -0
  21. package/dist/daemon-log.js.map +1 -0
  22. package/dist/index-manager.d.ts +103 -0
  23. package/dist/index-manager.d.ts.map +1 -0
  24. package/dist/index-manager.js +361 -0
  25. package/dist/index-manager.js.map +1 -0
  26. package/dist/index.d.ts +4 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +724 -0
  29. package/dist/index.js.map +1 -0
  30. package/dist/indexer/content-tokens.d.ts +74 -0
  31. package/dist/indexer/content-tokens.d.ts.map +1 -0
  32. package/dist/indexer/content-tokens.js +406 -0
  33. package/dist/indexer/content-tokens.js.map +1 -0
  34. package/dist/indexer/cpp-include-roots.d.ts +7 -0
  35. package/dist/indexer/cpp-include-roots.d.ts.map +1 -0
  36. package/dist/indexer/cpp-include-roots.js +166 -0
  37. package/dist/indexer/cpp-include-roots.js.map +1 -0
  38. package/dist/indexer/csharp-synthetic.d.ts +9 -0
  39. package/dist/indexer/csharp-synthetic.d.ts.map +1 -0
  40. package/dist/indexer/csharp-synthetic.js +51 -0
  41. package/dist/indexer/csharp-synthetic.js.map +1 -0
  42. package/dist/indexer/django-synthetic.d.ts +12 -0
  43. package/dist/indexer/django-synthetic.d.ts.map +1 -0
  44. package/dist/indexer/django-synthetic.js +49 -0
  45. package/dist/indexer/django-synthetic.js.map +1 -0
  46. package/dist/indexer/extractors/angularjs.d.ts +16 -0
  47. package/dist/indexer/extractors/angularjs.d.ts.map +1 -0
  48. package/dist/indexer/extractors/angularjs.js +49 -0
  49. package/dist/indexer/extractors/angularjs.js.map +1 -0
  50. package/dist/indexer/extractors/cpp.d.ts +9 -0
  51. package/dist/indexer/extractors/cpp.d.ts.map +1 -0
  52. package/dist/indexer/extractors/cpp.js +254 -0
  53. package/dist/indexer/extractors/cpp.js.map +1 -0
  54. package/dist/indexer/extractors/csharp.d.ts +19 -0
  55. package/dist/indexer/extractors/csharp.d.ts.map +1 -0
  56. package/dist/indexer/extractors/csharp.js +327 -0
  57. package/dist/indexer/extractors/csharp.js.map +1 -0
  58. package/dist/indexer/extractors/env.d.ts +9 -0
  59. package/dist/indexer/extractors/env.d.ts.map +1 -0
  60. package/dist/indexer/extractors/env.js +43 -0
  61. package/dist/indexer/extractors/env.js.map +1 -0
  62. package/dist/indexer/extractors/go.d.ts +9 -0
  63. package/dist/indexer/extractors/go.d.ts.map +1 -0
  64. package/dist/indexer/extractors/go.js +227 -0
  65. package/dist/indexer/extractors/go.js.map +1 -0
  66. package/dist/indexer/extractors/graphql.d.ts +22 -0
  67. package/dist/indexer/extractors/graphql.d.ts.map +1 -0
  68. package/dist/indexer/extractors/graphql.js +88 -0
  69. package/dist/indexer/extractors/graphql.js.map +1 -0
  70. package/dist/indexer/extractors/groovy.d.ts +9 -0
  71. package/dist/indexer/extractors/groovy.d.ts.map +1 -0
  72. package/dist/indexer/extractors/groovy.js +356 -0
  73. package/dist/indexer/extractors/groovy.js.map +1 -0
  74. package/dist/indexer/extractors/java.d.ts +10 -0
  75. package/dist/indexer/extractors/java.d.ts.map +1 -0
  76. package/dist/indexer/extractors/java.js +586 -0
  77. package/dist/indexer/extractors/java.js.map +1 -0
  78. package/dist/indexer/extractors/kotlin.d.ts +10 -0
  79. package/dist/indexer/extractors/kotlin.d.ts.map +1 -0
  80. package/dist/indexer/extractors/kotlin.js +398 -0
  81. package/dist/indexer/extractors/kotlin.js.map +1 -0
  82. package/dist/indexer/extractors/node-helpers.d.ts +13 -0
  83. package/dist/indexer/extractors/node-helpers.d.ts.map +1 -0
  84. package/dist/indexer/extractors/node-helpers.js +17 -0
  85. package/dist/indexer/extractors/node-helpers.js.map +1 -0
  86. package/dist/indexer/extractors/parser-factory.d.ts +4 -0
  87. package/dist/indexer/extractors/parser-factory.d.ts.map +1 -0
  88. package/dist/indexer/extractors/parser-factory.js +28 -0
  89. package/dist/indexer/extractors/parser-factory.js.map +1 -0
  90. package/dist/indexer/extractors/php.d.ts +17 -0
  91. package/dist/indexer/extractors/php.d.ts.map +1 -0
  92. package/dist/indexer/extractors/php.js +363 -0
  93. package/dist/indexer/extractors/php.js.map +1 -0
  94. package/dist/indexer/extractors/python.d.ts +14 -0
  95. package/dist/indexer/extractors/python.d.ts.map +1 -0
  96. package/dist/indexer/extractors/python.js +449 -0
  97. package/dist/indexer/extractors/python.js.map +1 -0
  98. package/dist/indexer/extractors/ruby.d.ts +10 -0
  99. package/dist/indexer/extractors/ruby.d.ts.map +1 -0
  100. package/dist/indexer/extractors/ruby.js +996 -0
  101. package/dist/indexer/extractors/ruby.js.map +1 -0
  102. package/dist/indexer/extractors/rust.d.ts +9 -0
  103. package/dist/indexer/extractors/rust.d.ts.map +1 -0
  104. package/dist/indexer/extractors/rust.js +322 -0
  105. package/dist/indexer/extractors/rust.js.map +1 -0
  106. package/dist/indexer/extractors/toml.d.ts +9 -0
  107. package/dist/indexer/extractors/toml.d.ts.map +1 -0
  108. package/dist/indexer/extractors/toml.js +84 -0
  109. package/dist/indexer/extractors/toml.js.map +1 -0
  110. package/dist/indexer/extractors/xml.d.ts +9 -0
  111. package/dist/indexer/extractors/xml.d.ts.map +1 -0
  112. package/dist/indexer/extractors/xml.js +163 -0
  113. package/dist/indexer/extractors/xml.js.map +1 -0
  114. package/dist/indexer/extractors/yaml.d.ts +9 -0
  115. package/dist/indexer/extractors/yaml.d.ts.map +1 -0
  116. package/dist/indexer/extractors/yaml.js +117 -0
  117. package/dist/indexer/extractors/yaml.js.map +1 -0
  118. package/dist/indexer/git.d.ts +19 -0
  119. package/dist/indexer/git.d.ts.map +1 -0
  120. package/dist/indexer/git.js +55 -0
  121. package/dist/indexer/git.js.map +1 -0
  122. package/dist/indexer/graph.d.ts +7 -0
  123. package/dist/indexer/graph.d.ts.map +1 -0
  124. package/dist/indexer/graph.js +20 -0
  125. package/dist/indexer/graph.js.map +1 -0
  126. package/dist/indexer/indexed-file.d.ts +15 -0
  127. package/dist/indexer/indexed-file.d.ts.map +1 -0
  128. package/dist/indexer/indexed-file.js +50 -0
  129. package/dist/indexer/indexed-file.js.map +1 -0
  130. package/dist/indexer/invariants.d.ts +15 -0
  131. package/dist/indexer/invariants.d.ts.map +1 -0
  132. package/dist/indexer/invariants.js +96 -0
  133. package/dist/indexer/invariants.js.map +1 -0
  134. package/dist/indexer/laravel-synthetic.d.ts +10 -0
  135. package/dist/indexer/laravel-synthetic.d.ts.map +1 -0
  136. package/dist/indexer/laravel-synthetic.js +78 -0
  137. package/dist/indexer/laravel-synthetic.js.map +1 -0
  138. package/dist/indexer/parser.d.ts +4 -0
  139. package/dist/indexer/parser.d.ts.map +1 -0
  140. package/dist/indexer/parser.js +499 -0
  141. package/dist/indexer/parser.js.map +1 -0
  142. package/dist/indexer/patch.d.ts +3 -0
  143. package/dist/indexer/patch.d.ts.map +1 -0
  144. package/dist/indexer/patch.js +291 -0
  145. package/dist/indexer/patch.js.map +1 -0
  146. package/dist/indexer/rails-synthetic.d.ts +11 -0
  147. package/dist/indexer/rails-synthetic.d.ts.map +1 -0
  148. package/dist/indexer/rails-synthetic.js +80 -0
  149. package/dist/indexer/rails-synthetic.js.map +1 -0
  150. package/dist/indexer/reconcile.d.ts +9 -0
  151. package/dist/indexer/reconcile.d.ts.map +1 -0
  152. package/dist/indexer/reconcile.js +96 -0
  153. package/dist/indexer/reconcile.js.map +1 -0
  154. package/dist/indexer/resolvers/cpp.d.ts +15 -0
  155. package/dist/indexer/resolvers/cpp.d.ts.map +1 -0
  156. package/dist/indexer/resolvers/cpp.js +35 -0
  157. package/dist/indexer/resolvers/cpp.js.map +1 -0
  158. package/dist/indexer/resolvers/csharp.d.ts +2 -0
  159. package/dist/indexer/resolvers/csharp.d.ts.map +1 -0
  160. package/dist/indexer/resolvers/csharp.js +89 -0
  161. package/dist/indexer/resolvers/csharp.js.map +1 -0
  162. package/dist/indexer/resolvers/generic.d.ts +10 -0
  163. package/dist/indexer/resolvers/generic.d.ts.map +1 -0
  164. package/dist/indexer/resolvers/generic.js +35 -0
  165. package/dist/indexer/resolvers/generic.js.map +1 -0
  166. package/dist/indexer/resolvers/go.d.ts +2 -0
  167. package/dist/indexer/resolvers/go.d.ts.map +1 -0
  168. package/dist/indexer/resolvers/go.js +171 -0
  169. package/dist/indexer/resolvers/go.js.map +1 -0
  170. package/dist/indexer/resolvers/index.d.ts +26 -0
  171. package/dist/indexer/resolvers/index.d.ts.map +1 -0
  172. package/dist/indexer/resolvers/index.js +301 -0
  173. package/dist/indexer/resolvers/index.js.map +1 -0
  174. package/dist/indexer/resolvers/java.d.ts +17 -0
  175. package/dist/indexer/resolvers/java.d.ts.map +1 -0
  176. package/dist/indexer/resolvers/java.js +104 -0
  177. package/dist/indexer/resolvers/java.js.map +1 -0
  178. package/dist/indexer/resolvers/php.d.ts +2 -0
  179. package/dist/indexer/resolvers/php.d.ts.map +1 -0
  180. package/dist/indexer/resolvers/php.js +108 -0
  181. package/dist/indexer/resolvers/php.js.map +1 -0
  182. package/dist/indexer/resolvers/python.d.ts +17 -0
  183. package/dist/indexer/resolvers/python.d.ts.map +1 -0
  184. package/dist/indexer/resolvers/python.js +63 -0
  185. package/dist/indexer/resolvers/python.js.map +1 -0
  186. package/dist/indexer/resolvers/ruby.d.ts +13 -0
  187. package/dist/indexer/resolvers/ruby.d.ts.map +1 -0
  188. package/dist/indexer/resolvers/ruby.js +199 -0
  189. package/dist/indexer/resolvers/ruby.js.map +1 -0
  190. package/dist/indexer/resolvers/rust.d.ts +12 -0
  191. package/dist/indexer/resolvers/rust.d.ts.map +1 -0
  192. package/dist/indexer/resolvers/rust.js +61 -0
  193. package/dist/indexer/resolvers/rust.js.map +1 -0
  194. package/dist/indexer/resolvers/shared.d.ts +18 -0
  195. package/dist/indexer/resolvers/shared.d.ts.map +1 -0
  196. package/dist/indexer/resolvers/shared.js +71 -0
  197. package/dist/indexer/resolvers/shared.js.map +1 -0
  198. package/dist/indexer/rust-workspace.d.ts +25 -0
  199. package/dist/indexer/rust-workspace.d.ts.map +1 -0
  200. package/dist/indexer/rust-workspace.js +155 -0
  201. package/dist/indexer/rust-workspace.js.map +1 -0
  202. package/dist/indexer/symbol-edges.d.ts +19 -0
  203. package/dist/indexer/symbol-edges.d.ts.map +1 -0
  204. package/dist/indexer/symbol-edges.js +117 -0
  205. package/dist/indexer/symbol-edges.js.map +1 -0
  206. package/dist/indexer/tokenize.d.ts +26 -0
  207. package/dist/indexer/tokenize.d.ts.map +1 -0
  208. package/dist/indexer/tokenize.js +200 -0
  209. package/dist/indexer/tokenize.js.map +1 -0
  210. package/dist/indexer/ts-parser.d.ts +10 -0
  211. package/dist/indexer/ts-parser.d.ts.map +1 -0
  212. package/dist/indexer/ts-parser.js +605 -0
  213. package/dist/indexer/ts-parser.js.map +1 -0
  214. package/dist/indexer/walker.d.ts +9 -0
  215. package/dist/indexer/walker.d.ts.map +1 -0
  216. package/dist/indexer/walker.js +91 -0
  217. package/dist/indexer/walker.js.map +1 -0
  218. package/dist/init.d.ts +111 -0
  219. package/dist/init.d.ts.map +1 -0
  220. package/dist/init.js +787 -0
  221. package/dist/init.js.map +1 -0
  222. package/dist/kb/cli.d.ts +2 -0
  223. package/dist/kb/cli.d.ts.map +1 -0
  224. package/dist/kb/cli.js +377 -0
  225. package/dist/kb/cli.js.map +1 -0
  226. package/dist/kb/commit.d.ts +6 -0
  227. package/dist/kb/commit.d.ts.map +1 -0
  228. package/dist/kb/commit.js +84 -0
  229. package/dist/kb/commit.js.map +1 -0
  230. package/dist/kb/fold.d.ts +42 -0
  231. package/dist/kb/fold.d.ts.map +1 -0
  232. package/dist/kb/fold.js +285 -0
  233. package/dist/kb/fold.js.map +1 -0
  234. package/dist/kb/freshness.d.ts +9 -0
  235. package/dist/kb/freshness.d.ts.map +1 -0
  236. package/dist/kb/freshness.js +52 -0
  237. package/dist/kb/freshness.js.map +1 -0
  238. package/dist/kb/git.d.ts +4 -0
  239. package/dist/kb/git.d.ts.map +1 -0
  240. package/dist/kb/git.js +28 -0
  241. package/dist/kb/git.js.map +1 -0
  242. package/dist/kb/ids.d.ts +8 -0
  243. package/dist/kb/ids.d.ts.map +1 -0
  244. package/dist/kb/ids.js +42 -0
  245. package/dist/kb/ids.js.map +1 -0
  246. package/dist/kb/lint.d.ts +23 -0
  247. package/dist/kb/lint.d.ts.map +1 -0
  248. package/dist/kb/lint.js +102 -0
  249. package/dist/kb/lint.js.map +1 -0
  250. package/dist/kb/lookup.d.ts +55 -0
  251. package/dist/kb/lookup.d.ts.map +1 -0
  252. package/dist/kb/lookup.js +92 -0
  253. package/dist/kb/lookup.js.map +1 -0
  254. package/dist/kb/notes-index.d.ts +31 -0
  255. package/dist/kb/notes-index.d.ts.map +1 -0
  256. package/dist/kb/notes-index.js +0 -0
  257. package/dist/kb/notes-index.js.map +1 -0
  258. package/dist/kb/raw-log.d.ts +34 -0
  259. package/dist/kb/raw-log.d.ts.map +1 -0
  260. package/dist/kb/raw-log.js +106 -0
  261. package/dist/kb/raw-log.js.map +1 -0
  262. package/dist/kb/render.d.ts +17 -0
  263. package/dist/kb/render.d.ts.map +1 -0
  264. package/dist/kb/render.js +101 -0
  265. package/dist/kb/render.js.map +1 -0
  266. package/dist/kb/search.d.ts +110 -0
  267. package/dist/kb/search.d.ts.map +1 -0
  268. package/dist/kb/search.js +453 -0
  269. package/dist/kb/search.js.map +1 -0
  270. package/dist/kb/store.d.ts +35 -0
  271. package/dist/kb/store.d.ts.map +1 -0
  272. package/dist/kb/store.js +160 -0
  273. package/dist/kb/store.js.map +1 -0
  274. package/dist/kb/types.d.ts +142 -0
  275. package/dist/kb/types.d.ts.map +1 -0
  276. package/dist/kb/types.js +13 -0
  277. package/dist/kb/types.js.map +1 -0
  278. package/dist/kb/view-template.d.ts +8 -0
  279. package/dist/kb/view-template.d.ts.map +1 -0
  280. package/dist/kb/view-template.js +8 -0
  281. package/dist/kb/view-template.js.map +1 -0
  282. package/dist/kb/view.d.ts +42 -0
  283. package/dist/kb/view.d.ts.map +1 -0
  284. package/dist/kb/view.js +118 -0
  285. package/dist/kb/view.js.map +1 -0
  286. package/dist/kb/write.d.ts +72 -0
  287. package/dist/kb/write.d.ts.map +1 -0
  288. package/dist/kb/write.js +345 -0
  289. package/dist/kb/write.js.map +1 -0
  290. package/dist/keeper-state.d.ts +29 -0
  291. package/dist/keeper-state.d.ts.map +1 -0
  292. package/dist/keeper-state.js +89 -0
  293. package/dist/keeper-state.js.map +1 -0
  294. package/dist/keeper.d.ts +23 -0
  295. package/dist/keeper.d.ts.map +1 -0
  296. package/dist/keeper.js +105 -0
  297. package/dist/keeper.js.map +1 -0
  298. package/dist/migrate.d.ts +9 -0
  299. package/dist/migrate.d.ts.map +1 -0
  300. package/dist/migrate.js +102 -0
  301. package/dist/migrate.js.map +1 -0
  302. package/dist/restart.d.ts +15 -0
  303. package/dist/restart.d.ts.map +1 -0
  304. package/dist/restart.js +48 -0
  305. package/dist/restart.js.map +1 -0
  306. package/dist/server/find.d.ts +39 -0
  307. package/dist/server/find.d.ts.map +1 -0
  308. package/dist/server/find.js +979 -0
  309. package/dist/server/find.js.map +1 -0
  310. package/dist/server/mcp.d.ts +117 -0
  311. package/dist/server/mcp.d.ts.map +1 -0
  312. package/dist/server/mcp.js +301 -0
  313. package/dist/server/mcp.js.map +1 -0
  314. package/dist/server/searcher.d.ts +14 -0
  315. package/dist/server/searcher.d.ts.map +1 -0
  316. package/dist/server/searcher.js +146 -0
  317. package/dist/server/searcher.js.map +1 -0
  318. package/dist/server/tools.d.ts +17 -0
  319. package/dist/server/tools.d.ts.map +1 -0
  320. package/dist/server/tools.js +875 -0
  321. package/dist/server/tools.js.map +1 -0
  322. package/dist/status.d.ts +12 -0
  323. package/dist/status.d.ts.map +1 -0
  324. package/dist/status.js +157 -0
  325. package/dist/status.js.map +1 -0
  326. package/dist/types.d.ts +138 -0
  327. package/dist/types.d.ts.map +1 -0
  328. package/dist/types.js +3 -0
  329. package/dist/types.js.map +1 -0
  330. package/dist/watcher.d.ts +11 -0
  331. package/dist/watcher.d.ts.map +1 -0
  332. package/dist/watcher.js +67 -0
  333. package/dist/watcher.js.map +1 -0
  334. package/hooks/canonical-find-key.mjs +68 -0
  335. package/hooks/codex-find-nudge.mjs +15 -0
  336. package/hooks/codex-find-preguard.mjs +14 -0
  337. package/hooks/codex-kb-elicit.mjs +329 -0
  338. package/hooks/codex-kb-recall.mjs +151 -0
  339. package/hooks/codex-nudge-handler.mjs +370 -0
  340. package/hooks/codex-preguard-handler.mjs +75 -0
  341. package/hooks/codex-run-hook.mjs +132 -0
  342. package/hooks/coldstart-call.mjs +58 -0
  343. package/hooks/cursor-find-nudge.mjs +15 -0
  344. package/hooks/cursor-find-preguard.mjs +14 -0
  345. package/hooks/cursor-input.mjs +72 -0
  346. package/hooks/cursor-kb-elicit.mjs +335 -0
  347. package/hooks/cursor-kb-recall.mjs +138 -0
  348. package/hooks/cursor-nudge-handler.mjs +33 -0
  349. package/hooks/cursor-preguard-handler.mjs +39 -0
  350. package/hooks/cursor-run-hook.mjs +129 -0
  351. package/hooks/find-nudge.mjs +15 -0
  352. package/hooks/find-preguard.mjs +14 -0
  353. package/hooks/kb-elicit.mjs +334 -0
  354. package/hooks/kb-recall.mjs +151 -0
  355. package/hooks/nudge-handler.mjs +370 -0
  356. package/hooks/preguard-handler.mjs +75 -0
  357. package/hooks/run-hook.mjs +132 -0
  358. package/package.json +69 -0
  359. package/templates/coldstart.cli.md +60 -0
  360. package/templates/coldstart.mcp.md +59 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"disk-cache.js","sourceRoot":"","sources":["../../src/cache/disk-cache.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts ADDED
@@ -0,0 +1,18 @@
1
+ import { type LoadProfile } from './cache/disk-cache.js';
2
+ import type { CodebaseIndex } from './types.js';
3
+ type BuildFn = (rootDir: string, excludes: string[], includes: string[], quiet: boolean) => Promise<CodebaseIndex>;
4
+ /**
5
+ * Load the index from cache (pure read). Readers NEVER build (B4): on a cache
6
+ * miss they wait for the keeper's first save; on git-HEAD drift they wait
7
+ * briefly for the keeper's reconcile re-save, then serve what exists. The
8
+ * in-process build survives only as a last resort when no keeper could be
9
+ * spawned at all. Returns null when a keeper is alive but still building —
10
+ * callers print the retry hint and exit non-zero.
11
+ */
12
+ export declare function getIndex(root: string, cacheDir: string | undefined, buildIndex: BuildFn, profile?: LoadProfile): Promise<CodebaseIndex | null>;
13
+ export declare function runGs(argv: string[], buildIndex: BuildFn): Promise<number>;
14
+ export declare function runFind(argv: string[], buildIndex: BuildFn): Promise<number>;
15
+ /** Single-writer prep step: build the index and persist it to cache. */
16
+ export declare function runIndexPrep(argv: string[], buildIndex: BuildFn): Promise<number>;
17
+ export {};
18
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAeA,OAAO,EAAoC,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAI3F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,KAAK,OAAO,GAAG,CACb,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAAE,EAClB,QAAQ,EAAE,MAAM,EAAE,EAClB,KAAK,EAAE,OAAO,KACX,OAAO,CAAC,aAAa,CAAC,CAAC;AAkD5B;;;;;;;GAOG;AACH,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,UAAU,EAAE,OAAO,EACnB,OAAO,GAAE,WAAoB,GAC5B,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAmD/B;AAgBD,wBAAsB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAwBhF;AAED,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAiBlF;AAED,wEAAwE;AACxE,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAcvF"}
package/dist/cli.js ADDED
@@ -0,0 +1,206 @@
1
+ /**
2
+ * coldstart CLI query surface — `find` / `gs` / `index`.
3
+ *
4
+ * Design rule (see docs/cli-skill-spec.md): the query path is a PURE READER.
5
+ * It loads the on-disk cache and runs the SAME engine the MCP reader uses
6
+ * (buildRichPage / handleGetStructure), printing their `__rawText` to
7
+ * stdout so output is byte-identical to the MCP tool and pipeable.
8
+ *
9
+ * Cache miss is the one exception: `find`/`gs` will lazily build + save so the
10
+ * tool is usable without an explicit prep step. This build+save is NOT
11
+ * concurrency-safe (no lock) — fine for sequential CLI use; the product-grade
12
+ * single-writer prep is `coldstart index` (and, later, the write-only daemon).
13
+ * Diagnostics go to stderr; stdout carries only the answer.
14
+ */
15
+ import { resolve } from 'node:path';
16
+ import { loadCachedIndex, saveCachedIndex } from './cache/disk-cache.js';
17
+ import { getGitHead } from './indexer/git.js';
18
+ import { handleGetStructure } from './server/tools.js';
19
+ import { ensureKeeper, waitForKeeperCache, waitForCacheAdvance } from './keeper.js';
20
+ function err(...args) {
21
+ process.stderr.write(args.join(' ') + '\n');
22
+ }
23
+ function parseQueryArgs(argv) {
24
+ const positional = [];
25
+ const flags = {};
26
+ for (let i = 0; i < argv.length; i++) {
27
+ const a = argv[i];
28
+ switch (a) {
29
+ case '--path':
30
+ flags.path = argv[++i];
31
+ break;
32
+ case '--match':
33
+ flags.match = argv[++i];
34
+ break;
35
+ case '--symbol':
36
+ flags.symbol = argv[++i];
37
+ break;
38
+ case '--view':
39
+ flags.view = argv[++i];
40
+ break;
41
+ case '--max':
42
+ flags.max = argv[++i];
43
+ break;
44
+ case '--page':
45
+ flags.page = argv[++i];
46
+ break;
47
+ case '--root':
48
+ flags.root = argv[++i];
49
+ break;
50
+ case '--cache-dir':
51
+ flags.cacheDir = argv[++i];
52
+ break;
53
+ case '--tests':
54
+ flags.tests = true;
55
+ break;
56
+ case '--json':
57
+ flags.json = true;
58
+ break;
59
+ case '--via':
60
+ flags.via = true;
61
+ break;
62
+ default:
63
+ if (a.startsWith('--'))
64
+ err(`[coldstart] unknown flag: ${a}`);
65
+ else
66
+ positional.push(a);
67
+ }
68
+ }
69
+ return { positional, flags };
70
+ }
71
+ /**
72
+ * Load the index from cache (pure read). Readers NEVER build (B4): on a cache
73
+ * miss they wait for the keeper's first save; on git-HEAD drift they wait
74
+ * briefly for the keeper's reconcile re-save, then serve what exists. The
75
+ * in-process build survives only as a last resort when no keeper could be
76
+ * spawned at all. Returns null when a keeper is alive but still building —
77
+ * callers print the retry hint and exit non-zero.
78
+ */
79
+ export async function getIndex(root, cacheDir, buildIndex, profile = 'full') {
80
+ const t0 = Date.now();
81
+ let index = await loadCachedIndex(root, cacheDir, profile);
82
+ if (index) {
83
+ const head = await getGitHead(root);
84
+ if (head && index.gitHead && head !== index.gitHead) {
85
+ // Branch switch / pull while no keeper watched. ensureKeeper (already
86
+ // called by every CLI entry) spawned one, and its startup reconcile
87
+ // re-saves the cache — give that a short window before serving stale.
88
+ err('[coldstart] cache behind git HEAD — waiting for keeper reconcile');
89
+ if (await waitForCacheAdvance(root, cacheDir)) {
90
+ index = (await loadCachedIndex(root, cacheDir, profile)) ?? index;
91
+ err(`[coldstart] cache refreshed (${Date.now() - t0}ms, ${index.files.size} files)`);
92
+ }
93
+ else {
94
+ err('[coldstart] keeper still reconciling — serving previous index (rerun shortly for fresh results)');
95
+ }
96
+ return index;
97
+ }
98
+ err(`[coldstart] cache hit (${Date.now() - t0}ms, ${index.files.size} files)`);
99
+ return index;
100
+ }
101
+ err('[coldstart] no cache yet — waiting for the keeper build (run `coldstart index` to prep manually)');
102
+ const wait = await waitForKeeperCache(root, cacheDir, 180_000, err);
103
+ if (wait === 'ready') {
104
+ // The save is segment-wise; tolerate a beat between meta and segments.
105
+ for (let attempt = 0; attempt < 3; attempt++) {
106
+ index = await loadCachedIndex(root, cacheDir, profile);
107
+ if (index) {
108
+ err(`[coldstart] keeper build ready (${((Date.now() - t0) / 1000).toFixed(1)}s, ${index.files.size} files)`);
109
+ return index;
110
+ }
111
+ await new Promise((r) => setTimeout(r, 500));
112
+ }
113
+ }
114
+ if (wait === 'timeout') {
115
+ err('[coldstart] keeper is still building this repo — retry in a minute');
116
+ return null;
117
+ }
118
+ // No keeper could be spawned (or its cache never materialized) — build
119
+ // in-process so the tool still answers. One-off, loudly labeled.
120
+ err('[coldstart] no keeper available — building in-process (one-off)');
121
+ index = await buildIndex(root, [], [], true);
122
+ try {
123
+ await saveCachedIndex(index, cacheDir);
124
+ }
125
+ catch (e) {
126
+ err(`[coldstart] warn: could not save cache: ${e}`);
127
+ }
128
+ err(`[coldstart] built ${index.files.size} files in ${((Date.now() - t0) / 1000).toFixed(1)}s`);
129
+ return index;
130
+ }
131
+ function stripRaw(result) {
132
+ const { __rawText, ...rest } = result;
133
+ void __rawText;
134
+ return rest;
135
+ }
136
+ function emit(result, json) {
137
+ if (json) {
138
+ process.stdout.write(JSON.stringify(stripRaw(result), null, 2) + '\n');
139
+ return;
140
+ }
141
+ process.stdout.write((result.__rawText ?? result.error ?? '') + '\n');
142
+ }
143
+ export async function runGs(argv, buildIndex) {
144
+ const { positional, flags } = parseQueryArgs(argv);
145
+ const file = positional[0];
146
+ if (!file) {
147
+ err('usage: coldstart gs <file> [--symbol NAME[,NAME]] [--match TERM] [--view full|symbols|imports|importers|callers] [--json]');
148
+ return 1;
149
+ }
150
+ const root = resolve(flags.root ?? '.');
151
+ // Keep the on-disk cache live for uncommitted edits: ensure a background
152
+ // keeper is running (cheap no-op when one already is).
153
+ await ensureKeeper(root);
154
+ const index = await getIndex(root, flags.cacheDir, buildIndex, 'gs');
155
+ if (!index) {
156
+ err('[coldstart] no index available');
157
+ return 1;
158
+ }
159
+ const result = handleGetStructure(index, {
160
+ file_path: file,
161
+ match: flags.match,
162
+ symbol: flags.symbol,
163
+ view: flags.view,
164
+ });
165
+ emit(result, flags.json === true);
166
+ // file-not-found (no __rawText, only error) → exit 2
167
+ return result.error && result.__rawText === undefined ? 2 : 0;
168
+ }
169
+ export async function runFind(argv, buildIndex) {
170
+ const { positional, flags } = parseQueryArgs(argv);
171
+ const query = positional.join(' ').trim();
172
+ if (!query) {
173
+ err('usage: coldstart find <terms...> — pass every salient identifier from the task, not one distilled keyword');
174
+ return 1;
175
+ }
176
+ const root = resolve(flags.root ?? '.');
177
+ // Keep the on-disk cache live for uncommitted edits: ensure a background
178
+ // keeper is running (cheap no-op when one already is).
179
+ await ensureKeeper(root);
180
+ const index = await getIndex(root, flags.cacheDir, buildIndex, 'find');
181
+ if (!index) {
182
+ err('[coldstart] no index available');
183
+ return 1;
184
+ }
185
+ const { buildRichPage } = await import('./server/find.js');
186
+ process.stdout.write((await buildRichPage(index, root, query, flags.json, flags.via === true)) + '\n');
187
+ return 0;
188
+ }
189
+ /** Single-writer prep step: build the index and persist it to cache. */
190
+ export async function runIndexPrep(argv, buildIndex) {
191
+ const { flags } = parseQueryArgs(argv);
192
+ const root = resolve(flags.root ?? '.');
193
+ const t0 = Date.now();
194
+ err(`[coldstart] building index for ${root}...`);
195
+ const index = await buildIndex(root, [], [], false); // progress to stderr
196
+ try {
197
+ await saveCachedIndex(index, flags.cacheDir);
198
+ }
199
+ catch (e) {
200
+ err(`[coldstart] error: could not save cache: ${e}`);
201
+ return 1;
202
+ }
203
+ err(`[coldstart] indexed ${index.files.size} files, saved to cache in ${((Date.now() - t0) / 1000).toFixed(1)}s`);
204
+ return 0;
205
+ }
206
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { Language } from "./types.js";
2
+ export declare const EXTENSION_TO_LANGUAGE: Record<string, Language>;
3
+ export declare const DEFAULT_EXCLUDES: Set<string>;
4
+ export declare const CACHE_VERSION = "18.1.0";
5
+ export declare const PATCH_THRESHOLD_FLOOR = 30;
6
+ export declare const PATCH_THRESHOLD_RATIO = 0.2;
7
+ export declare function patchThreshold(fileCount: number): number;
8
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAK3C,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAmD1D,CAAC;AAKF,eAAO,MAAM,gBAAgB,aAkC3B,CAAC;AAQH,eAAO,MAAM,aAAa,WAAW,CAAC;AAOtC,eAAO,MAAM,qBAAqB,KAAK,CAAC;AACxC,eAAO,MAAM,qBAAqB,MAAM,CAAC;AACzC,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAExD"}
@@ -0,0 +1,111 @@
1
+ // ---------------------------------------------------------------------------
2
+ // Extension → Language mapping
3
+ // ---------------------------------------------------------------------------
4
+ export const EXTENSION_TO_LANGUAGE = {
5
+ ".ts": "typescript",
6
+ ".tsx": "typescript",
7
+ ".mts": "typescript",
8
+ ".cts": "typescript",
9
+ ".js": "javascript",
10
+ ".jsx": "javascript",
11
+ ".mjs": "javascript",
12
+ ".cjs": "javascript",
13
+ ".py": "python",
14
+ ".go": "go",
15
+ ".rs": "rust",
16
+ ".java": "java",
17
+ ".cs": "csharp",
18
+ ".cpp": "cpp",
19
+ ".cc": "cpp",
20
+ ".cxx": "cpp",
21
+ ".c": "cpp",
22
+ ".h": "cpp",
23
+ ".hpp": "cpp",
24
+ ".hxx": "cpp",
25
+ ".rb": "ruby",
26
+ ".php": "php",
27
+ ".kt": "kotlin",
28
+ ".kts": "kotlin",
29
+ ".vue": "vue",
30
+ ".svelte": "svelte",
31
+ ".astro": "astro",
32
+ ".graphql": "graphql",
33
+ ".gql": "graphql",
34
+ ".yml": "yaml",
35
+ ".yaml": "yaml",
36
+ ".toml": "toml",
37
+ ".xml": "xml",
38
+ ".gradle": "groovy",
39
+ ".groovy": "groovy",
40
+ ".erb": "erb",
41
+ ".haml": "haml",
42
+ ".slim": "slim",
43
+ // Token-only indexing: filename + path tokens feed domainMap; no AST parsing.
44
+ // Lets GO surface templates, stylesheets, config, and docs that name a concept
45
+ // even though their bodies aren't indexed.
46
+ ".htm": "html",
47
+ ".html": "html",
48
+ ".css": "css",
49
+ ".scss": "css",
50
+ ".sass": "css",
51
+ ".less": "css",
52
+ ".json": "json",
53
+ ".md": "markdown",
54
+ ".markdown": "markdown",
55
+ };
56
+ // ---------------------------------------------------------------------------
57
+ // Default excludes for filesystem walker
58
+ // ---------------------------------------------------------------------------
59
+ export const DEFAULT_EXCLUDES = new Set([
60
+ "node_modules",
61
+ "dist",
62
+ "build",
63
+ "out",
64
+ ".next",
65
+ ".nuxt",
66
+ ".svelte-kit",
67
+ ".git",
68
+ ".hg",
69
+ ".svn",
70
+ "__pycache__",
71
+ ".mypy_cache",
72
+ ".ruff_cache",
73
+ ".pytest_cache",
74
+ "target", // Rust/Maven
75
+ ".gradle",
76
+ "vendor", // PHP/Go
77
+ "venv", // Python virtual environments
78
+ "Pods", // iOS CocoaPods
79
+ ".dart_tool",
80
+ ".pub-cache",
81
+ "coverage",
82
+ ".nyc_output",
83
+ "tmp",
84
+ "temp",
85
+ ".cache",
86
+ "logs",
87
+ "obj", // .NET intermediate build output
88
+ "CMakeFiles", // CMake generated
89
+ "bower_components", // legacy JS
90
+ "generated",
91
+ "__generated__",
92
+ "notebook", // coldstart knowledge-base/memory notes — surfaced via find's KB section, never indexed as code (would out-rank real source)
93
+ ]);
94
+ // Cache version — bump when index schema changes to force re-index
95
+ // 18.0.0: consumer-scoped gzipped segments + fileId table + fingerprints;
96
+ // TTL deleted (validity = version + git HEAD + the keeper's live watcher).
97
+ // 18.1.0: generation-prefixed segments (g<N>-*) + gen in meta.json. Bumped so
98
+ // no pre-generation cache survives — removes the mixed-format sweep window
99
+ // entirely (18.0.0 never shipped beyond dev machines).
100
+ export const CACHE_VERSION = "18.1.0";
101
+ // Incremental patch threshold: if <= this many files changed, patch in place.
102
+ // Above this, trigger a full rebuild. Relative to repo size — patching is
103
+ // ~2-5ms/file, so a flat cap punishes big repos: 30 files is 0.2% of jmri but
104
+ // a full rebuild there is 96s. Floor of 30 keeps tiny repos rebuilding early
105
+ // (patch overhead ≈ rebuild there anyway).
106
+ export const PATCH_THRESHOLD_FLOOR = 30;
107
+ export const PATCH_THRESHOLD_RATIO = 0.2;
108
+ export function patchThreshold(fileCount) {
109
+ return Math.max(PATCH_THRESHOLD_FLOOR, Math.ceil(fileCount * PATCH_THRESHOLD_RATIO));
110
+ }
111
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAEA,8EAA8E;AAC9E,+BAA+B;AAC/B,8EAA8E;AAC9E,MAAM,CAAC,MAAM,qBAAqB,GAA6B;IAC7D,KAAK,EAAE,YAAY;IACnB,MAAM,EAAE,YAAY;IACpB,MAAM,EAAE,YAAY;IACpB,MAAM,EAAE,YAAY;IACpB,KAAK,EAAE,YAAY;IACnB,MAAM,EAAE,YAAY;IACpB,MAAM,EAAE,YAAY;IACpB,MAAM,EAAE,YAAY;IACpB,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,MAAM;IACb,OAAO,EAAE,MAAM;IACf,KAAK,EAAE,QAAQ;IACf,MAAM,EAAE,KAAK;IACb,KAAK,EAAE,KAAK;IACZ,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,KAAK;IACb,KAAK,EAAE,MAAM;IACb,MAAM,EAAE,KAAK;IACb,KAAK,EAAE,QAAQ;IACf,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,KAAK;IACb,SAAS,EAAE,QAAQ;IACnB,QAAQ,EAAE,OAAO;IACjB,UAAU,EAAE,SAAS;IACrB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,MAAM;IACd,OAAO,EAAE,MAAM;IACf,OAAO,EAAE,MAAM;IACf,MAAM,EAAE,KAAK;IACb,SAAS,EAAE,QAAQ;IACnB,SAAS,EAAE,QAAQ;IACnB,MAAM,EAAE,KAAK;IACb,OAAO,EAAE,MAAM;IACf,OAAO,EAAE,MAAM;IACf,8EAA8E;IAC9E,+EAA+E;IAC/E,2CAA2C;IAC3C,MAAM,EAAE,MAAM;IACd,OAAO,EAAE,MAAM;IACf,MAAM,EAAE,KAAK;IACb,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,MAAM;IACf,KAAK,EAAE,UAAU;IACjB,WAAW,EAAE,UAAU;CACxB,CAAC;AAEF,8EAA8E;AAC9E,yCAAyC;AACzC,8EAA8E;AAC9E,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC;IACtC,cAAc;IACd,MAAM;IACN,OAAO;IACP,KAAK;IACL,OAAO;IACP,OAAO;IACP,aAAa;IACb,MAAM;IACN,KAAK;IACL,MAAM;IACN,aAAa;IACb,aAAa;IACb,aAAa;IACb,eAAe;IACf,QAAQ,EAAE,aAAa;IACvB,SAAS;IACT,QAAQ,EAAE,SAAS;IACnB,MAAM,EAAE,8BAA8B;IACtC,MAAM,EAAE,gBAAgB;IACxB,YAAY;IACZ,YAAY;IACZ,UAAU;IACV,aAAa;IACb,KAAK;IACL,MAAM;IACN,QAAQ;IACR,MAAM;IACN,KAAK,EAAE,iCAAiC;IACxC,YAAY,EAAE,kBAAkB;IAChC,kBAAkB,EAAE,YAAY;IAChC,WAAW;IACX,eAAe;IACf,UAAU,EAAE,6HAA6H;CAC1I,CAAC,CAAC;AAEH,mEAAmE;AACnE,0EAA0E;AAC1E,2EAA2E;AAC3E,8EAA8E;AAC9E,2EAA2E;AAC3E,uDAAuD;AACvD,MAAM,CAAC,MAAM,aAAa,GAAG,QAAQ,CAAC;AAEtC,8EAA8E;AAC9E,0EAA0E;AAC1E,8EAA8E;AAC9E,6EAA6E;AAC7E,2CAA2C;AAC3C,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,CAAC;AACxC,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAC;AACzC,MAAM,UAAU,cAAc,CAAC,SAAiB;IAC9C,OAAO,IAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,CAAC,CAAC;AACvF,CAAC"}
@@ -0,0 +1,63 @@
1
+ export interface DaemonLock {
2
+ pid: number;
3
+ /** Absolute project root. Optional for forward-compat with old lockfiles. */
4
+ rootDir?: string;
5
+ /** Version of the keeper that wrote this lock. Optional for forward-compat with old lockfiles. */
6
+ version?: string;
7
+ /**
8
+ * Legacy HTTP-serving port. The keeper no longer serves, so new locks omit
9
+ * it; kept optional so old lockfiles still parse without erroring.
10
+ */
11
+ port?: number;
12
+ }
13
+ export declare function daemonDir(): string;
14
+ export declare function rootHash(rootDir: string): string;
15
+ export declare function lockBasename(rootDir: string): string;
16
+ export declare function daemonLogPath(rootDir: string): string;
17
+ export declare function daemonLogPrevPath(rootDir: string): string;
18
+ export declare function readLock(rootDir: string): Promise<DaemonLock | null>;
19
+ export declare function writeLock(rootDir: string, pid: number, version?: string): Promise<void>;
20
+ export declare function deleteLock(rootDir: string): Promise<void>;
21
+ /**
22
+ * List every daemon lockfile under ~/.coldstart/daemon/.
23
+ * Returns the parsed lock plus its filename basename (`<dirname>-<hash>`)
24
+ * so callers can derive log paths even when the lock doesn't record rootDir.
25
+ */
26
+ export interface DaemonLockListing {
27
+ basename: string;
28
+ lockPath: string;
29
+ lock: DaemonLock;
30
+ }
31
+ export declare function listDaemonLocks(): Promise<DaemonLockListing[]>;
32
+ export declare function isDaemonAlive(pid: number): boolean;
33
+ /**
34
+ * Get the current version of coldstart-mcp from package.json.
35
+ */
36
+ export declare function getCurrentVersion(): string;
37
+ /**
38
+ * Kill a daemon by PID with escalating signals: SIGTERM (5s wait), then SIGKILL.
39
+ * Returns true if the daemon was alive and has been killed; false if already dead.
40
+ */
41
+ export declare function killDaemon(pid: number): Promise<boolean>;
42
+ /**
43
+ * Try to atomically acquire a spawn lock so only one reader spawns the keeper.
44
+ * Returns a release function if acquired, null if another process already holds it.
45
+ */
46
+ export declare function tryAcquireSpawnLock(rootDir: string): Promise<(() => Promise<void>) | null>;
47
+ /**
48
+ * Fix #6: Watch the daemon lockfile directory for deletions of our own lockfile.
49
+ * If our lockfile is deleted (e.g., user ran `rm ~/.coldstart/daemon/foo.json`),
50
+ * call onMissing() so the daemon can exit cleanly.
51
+ *
52
+ * fs.watch drops events under load (observed live: a keeper surviving its
53
+ * lockfile deletion, then coexisting with its replacement — two keepers
54
+ * racing saves on one root). Two hardenings:
55
+ * - a slow poll backstop, so a missed event only delays shutdown
56
+ * - lock OWNERSHIP: if the lockfile exists but names a different pid,
57
+ * another keeper has taken over this root — the old one must exit.
58
+ *
59
+ * Returns a function to stop watching.
60
+ */
61
+ export declare const LOCK_POLL_INTERVAL_MS = 30000;
62
+ export declare function watchOwnLockfile(rootDir: string, onMissing: () => void, pollIntervalMs?: number): () => void;
63
+ //# sourceMappingURL=daemon-lock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daemon-lock.d.ts","sourceRoot":"","sources":["../src/daemon-lock.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kGAAkG;IAClG,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAGpD;AAUD,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,wBAAsB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAS1E;AAED,wBAAsB,SAAS,CAC7B,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAIf;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/D;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAuBpE;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAOlD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAU1C;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAwB9D;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAWhG;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,qBAAqB,QAAS,CAAC;AAE5C,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,IAAI,EACrB,cAAc,SAAwB,GACrC,MAAM,IAAI,CA6CZ"}