ctxr-cli 0.5.0 → 0.7.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 (289) hide show
  1. package/dist/adapter.d.ts +0 -1
  2. package/dist/adapter.d.ts.map +1 -1
  3. package/dist/adapter.js.map +1 -1
  4. package/dist/adapters/builtin/index.d.ts.map +1 -1
  5. package/dist/adapters/builtin/index.js +2 -2
  6. package/dist/adapters/builtin/index.js.map +1 -1
  7. package/dist/adapters/harness/claude-code.d.ts.map +1 -1
  8. package/dist/adapters/harness/claude-code.js +30 -14
  9. package/dist/adapters/harness/claude-code.js.map +1 -1
  10. package/dist/adapters/harness/hermes-agent.d.ts +9 -0
  11. package/dist/adapters/harness/hermes-agent.d.ts.map +1 -0
  12. package/dist/adapters/harness/hermes-agent.js +13 -0
  13. package/dist/adapters/harness/hermes-agent.js.map +1 -0
  14. package/dist/adapters/types.d.ts +38 -18
  15. package/dist/adapters/types.d.ts.map +1 -1
  16. package/dist/adapters/types.js +3 -3
  17. package/dist/adapters/types.js.map +1 -1
  18. package/dist/commands/adapters-generate.d.ts +4 -2
  19. package/dist/commands/adapters-generate.d.ts.map +1 -1
  20. package/dist/commands/adapters-generate.js +14 -6
  21. package/dist/commands/adapters-generate.js.map +1 -1
  22. package/dist/commands/archive.d.ts +6 -4
  23. package/dist/commands/archive.d.ts.map +1 -1
  24. package/dist/commands/archive.js +7 -5
  25. package/dist/commands/archive.js.map +1 -1
  26. package/dist/commands/catalog-show.d.ts +0 -1
  27. package/dist/commands/catalog-show.d.ts.map +1 -1
  28. package/dist/commands/catalog-show.js +1 -1
  29. package/dist/commands/catalog-show.js.map +1 -1
  30. package/dist/commands/graph-query.d.ts +2 -11
  31. package/dist/commands/graph-query.d.ts.map +1 -1
  32. package/dist/commands/graph-query.js +11 -14
  33. package/dist/commands/graph-query.js.map +1 -1
  34. package/dist/commands/init.d.ts +2 -0
  35. package/dist/commands/init.d.ts.map +1 -1
  36. package/dist/commands/init.js +82 -21
  37. package/dist/commands/init.js.map +1 -1
  38. package/dist/commands/publish-check.d.ts +23 -0
  39. package/dist/commands/publish-check.d.ts.map +1 -0
  40. package/dist/commands/publish-check.js +112 -0
  41. package/dist/commands/publish-check.js.map +1 -0
  42. package/dist/commands/publish-gather.d.ts +27 -0
  43. package/dist/commands/publish-gather.d.ts.map +1 -0
  44. package/dist/commands/publish-gather.js +73 -0
  45. package/dist/commands/publish-gather.js.map +1 -0
  46. package/dist/commands/publish-new.d.ts +19 -0
  47. package/dist/commands/publish-new.d.ts.map +1 -0
  48. package/dist/commands/publish-new.js +108 -0
  49. package/dist/commands/publish-new.js.map +1 -0
  50. package/dist/commands/serve.d.ts +32 -0
  51. package/dist/commands/serve.d.ts.map +1 -0
  52. package/dist/commands/serve.js +151 -0
  53. package/dist/commands/serve.js.map +1 -0
  54. package/dist/commands/session-capture.d.ts.map +1 -1
  55. package/dist/commands/session-capture.js +0 -2
  56. package/dist/commands/session-capture.js.map +1 -1
  57. package/dist/commands/update.js +3 -3
  58. package/dist/commands/update.js.map +1 -1
  59. package/dist/config/defaults.d.ts +49 -44
  60. package/dist/config/defaults.d.ts.map +1 -1
  61. package/dist/config/defaults.js +49 -47
  62. package/dist/config/defaults.js.map +1 -1
  63. package/dist/config/schema.d.ts +53 -52
  64. package/dist/config/schema.d.ts.map +1 -1
  65. package/dist/config/schema.js +84 -62
  66. package/dist/config/schema.js.map +1 -1
  67. package/dist/core/agents-doc.d.ts +9 -0
  68. package/dist/core/agents-doc.d.ts.map +1 -1
  69. package/dist/core/agents-doc.js +31 -16
  70. package/dist/core/agents-doc.js.map +1 -1
  71. package/dist/core/browse/link-resolver.d.ts +12 -0
  72. package/dist/core/browse/link-resolver.d.ts.map +1 -0
  73. package/dist/core/browse/link-resolver.js +12 -0
  74. package/dist/core/browse/link-resolver.js.map +1 -0
  75. package/dist/core/browse/nav.d.ts +10 -0
  76. package/dist/core/browse/nav.d.ts.map +1 -0
  77. package/dist/core/browse/nav.js +101 -0
  78. package/dist/core/browse/nav.js.map +1 -0
  79. package/dist/core/browse/render.d.ts +5 -0
  80. package/dist/core/browse/render.d.ts.map +1 -0
  81. package/dist/core/browse/render.js +66 -0
  82. package/dist/core/browse/render.js.map +1 -0
  83. package/dist/core/browse/routes.d.ts +40 -0
  84. package/dist/core/browse/routes.d.ts.map +1 -0
  85. package/dist/core/browse/routes.js +68 -0
  86. package/dist/core/browse/routes.js.map +1 -0
  87. package/dist/core/browse/templates.d.ts +13 -0
  88. package/dist/core/browse/templates.d.ts.map +1 -0
  89. package/dist/core/browse/templates.js +39 -0
  90. package/dist/core/browse/templates.js.map +1 -0
  91. package/dist/core/browse/tree.d.ts +33 -0
  92. package/dist/core/browse/tree.d.ts.map +1 -0
  93. package/dist/core/browse/tree.js +53 -0
  94. package/dist/core/browse/tree.js.map +1 -0
  95. package/dist/core/catalog/build.d.ts +1 -1
  96. package/dist/core/catalog/build.d.ts.map +1 -1
  97. package/dist/core/catalog/build.js +1 -2
  98. package/dist/core/catalog/build.js.map +1 -1
  99. package/dist/core/catalog/model.d.ts +2 -0
  100. package/dist/core/catalog/model.d.ts.map +1 -1
  101. package/dist/core/catalog/model.js +2 -1
  102. package/dist/core/catalog/model.js.map +1 -1
  103. package/dist/core/checks/integrity-checks.d.ts +18 -2
  104. package/dist/core/checks/integrity-checks.d.ts.map +1 -1
  105. package/dist/core/checks/integrity-checks.js +55 -10
  106. package/dist/core/checks/integrity-checks.js.map +1 -1
  107. package/dist/core/checks/manifest.d.ts.map +1 -1
  108. package/dist/core/checks/manifest.js +0 -5
  109. package/dist/core/checks/manifest.js.map +1 -1
  110. package/dist/core/checks/organize-checks.d.ts +10 -3
  111. package/dist/core/checks/organize-checks.d.ts.map +1 -1
  112. package/dist/core/checks/organize-checks.js +14 -5
  113. package/dist/core/checks/organize-checks.js.map +1 -1
  114. package/dist/core/checks/types.d.ts +1 -1
  115. package/dist/core/convention-doc.d.ts +21 -19
  116. package/dist/core/convention-doc.d.ts.map +1 -1
  117. package/dist/core/convention-doc.js +48 -62
  118. package/dist/core/convention-doc.js.map +1 -1
  119. package/dist/core/conventions.d.ts +2 -2
  120. package/dist/core/conventions.js +2 -2
  121. package/dist/core/errors.d.ts +31 -44
  122. package/dist/core/errors.d.ts.map +1 -1
  123. package/dist/core/errors.js +81 -128
  124. package/dist/core/errors.js.map +1 -1
  125. package/dist/core/exit-codes.d.ts +7 -5
  126. package/dist/core/exit-codes.d.ts.map +1 -1
  127. package/dist/core/exit-codes.js +7 -5
  128. package/dist/core/exit-codes.js.map +1 -1
  129. package/dist/core/git/repo.d.ts +0 -6
  130. package/dist/core/git/repo.d.ts.map +1 -1
  131. package/dist/core/git/repo.js +0 -13
  132. package/dist/core/git/repo.js.map +1 -1
  133. package/dist/core/git/worktree.d.ts +4 -7
  134. package/dist/core/git/worktree.d.ts.map +1 -1
  135. package/dist/core/git/worktree.js +4 -10
  136. package/dist/core/git/worktree.js.map +1 -1
  137. package/dist/core/graph/model.d.ts +14 -0
  138. package/dist/core/graph/model.d.ts.map +1 -1
  139. package/dist/core/graph/model.js +30 -14
  140. package/dist/core/graph/model.js.map +1 -1
  141. package/dist/core/harness/bridge.d.ts +30 -0
  142. package/dist/core/harness/bridge.d.ts.map +1 -0
  143. package/dist/core/harness/bridge.js +178 -0
  144. package/dist/core/harness/bridge.js.map +1 -0
  145. package/dist/core/ingest/identity.d.ts +4 -4
  146. package/dist/core/ingest/identity.js +4 -4
  147. package/dist/core/json-config-merge.d.ts.map +1 -1
  148. package/dist/core/json-config-merge.js +30 -7
  149. package/dist/core/json-config-merge.js.map +1 -1
  150. package/dist/core/migrations/add-explanation-craft-skill.d.ts +26 -0
  151. package/dist/core/migrations/add-explanation-craft-skill.d.ts.map +1 -0
  152. package/dist/core/migrations/add-explanation-craft-skill.js +94 -0
  153. package/dist/core/migrations/add-explanation-craft-skill.js.map +1 -0
  154. package/dist/core/migrations/archive-destination-from-taxonomy.d.ts +35 -0
  155. package/dist/core/migrations/archive-destination-from-taxonomy.d.ts.map +1 -0
  156. package/dist/core/migrations/archive-destination-from-taxonomy.js +109 -0
  157. package/dist/core/migrations/archive-destination-from-taxonomy.js.map +1 -0
  158. package/dist/core/migrations/drop-access-axes.d.ts +24 -0
  159. package/dist/core/migrations/drop-access-axes.d.ts.map +1 -0
  160. package/dist/core/migrations/drop-access-axes.js +54 -0
  161. package/dist/core/migrations/drop-access-axes.js.map +1 -0
  162. package/dist/core/migrations/drop-forge-and-workspaces-external.d.ts +19 -0
  163. package/dist/core/migrations/drop-forge-and-workspaces-external.d.ts.map +1 -0
  164. package/dist/core/migrations/drop-forge-and-workspaces-external.js +49 -0
  165. package/dist/core/migrations/drop-forge-and-workspaces-external.js.map +1 -0
  166. package/dist/core/migrations/registry.d.ts +11 -1
  167. package/dist/core/migrations/registry.d.ts.map +1 -1
  168. package/dist/core/migrations/registry.js +19 -3
  169. package/dist/core/migrations/registry.js.map +1 -1
  170. package/dist/core/notes/list.d.ts +1 -12
  171. package/dist/core/notes/list.d.ts.map +1 -1
  172. package/dist/core/notes/list.js +5 -1
  173. package/dist/core/notes/list.js.map +1 -1
  174. package/dist/core/publish/script-check.d.ts +12 -0
  175. package/dist/core/publish/script-check.d.ts.map +1 -0
  176. package/dist/core/publish/script-check.js +39 -0
  177. package/dist/core/publish/script-check.js.map +1 -0
  178. package/dist/core/reconcile.d.ts +3 -0
  179. package/dist/core/reconcile.d.ts.map +1 -1
  180. package/dist/core/reconcile.js +15 -5
  181. package/dist/core/reconcile.js.map +1 -1
  182. package/dist/core/records.d.ts +4 -5
  183. package/dist/core/records.d.ts.map +1 -1
  184. package/dist/core/records.js +0 -2
  185. package/dist/core/records.js.map +1 -1
  186. package/dist/core/session.d.ts +9 -9
  187. package/dist/core/session.js +9 -9
  188. package/dist/core/skills.d.ts +42 -0
  189. package/dist/core/skills.d.ts.map +1 -1
  190. package/dist/core/skills.js +159 -31
  191. package/dist/core/skills.js.map +1 -1
  192. package/dist/core/write-lifecycle/path-gate.d.ts.map +1 -1
  193. package/dist/core/write-lifecycle/path-gate.js +4 -2
  194. package/dist/core/write-lifecycle/path-gate.js.map +1 -1
  195. package/dist/prompt/inquirer-prompter.d.ts.map +1 -1
  196. package/dist/prompt/inquirer-prompter.js +11 -1
  197. package/dist/prompt/inquirer-prompter.js.map +1 -1
  198. package/dist/prompt/prompter.d.ts +16 -0
  199. package/dist/prompt/prompter.d.ts.map +1 -1
  200. package/dist/run.d.ts.map +1 -1
  201. package/dist/run.js +69 -101
  202. package/dist/run.js.map +1 -1
  203. package/dist/taxonomy/profiles.d.ts +11 -0
  204. package/dist/taxonomy/profiles.d.ts.map +1 -1
  205. package/dist/taxonomy/profiles.js +1 -0
  206. package/dist/taxonomy/profiles.js.map +1 -1
  207. package/dist/version.d.ts +1 -1
  208. package/dist/version.js +1 -1
  209. package/package.json +3 -1
  210. package/templates/agents/canonical.md +1 -3
  211. package/templates/conventions/baseline-conventions.md +27 -0
  212. package/templates/conventions/{custom-convention-seed.md → house-conventions-seed.md} +15 -2
  213. package/templates/hooks/pre-push.sh +1 -1
  214. package/templates/serve/shell.html +18 -0
  215. package/templates/serve/style.css +163 -0
  216. package/templates/skills/ctxr-land.md +32 -18
  217. package/templates/skills/ctxr-organize-audit.md +2 -10
  218. package/templates/skills/ctxr-placement.md +6 -24
  219. package/templates/skills/ctxr-publish.md +84 -0
  220. package/templates/skills/ctxr-session-capture.md +43 -3
  221. package/templates/skills/ctxr-session-lifecycle.md +20 -1
  222. package/templates/skills/ctxr-submit.md +15 -11
  223. package/templates/vendor/eli5/LICENSE.txt +21 -0
  224. package/templates/vendor/eli5/SKILL.md +116 -0
  225. package/templates/vendor/eli5/provenance.json +8 -0
  226. package/templates/vendor/frontend-design/LICENSE.txt +177 -0
  227. package/templates/vendor/frontend-design/SKILL.md +55 -0
  228. package/templates/vendor/frontend-design/provenance.json +7 -0
  229. package/dist/adapters/forge/github.d.ts +0 -12
  230. package/dist/adapters/forge/github.d.ts.map +0 -1
  231. package/dist/adapters/forge/github.js +0 -76
  232. package/dist/adapters/forge/github.js.map +0 -1
  233. package/dist/adapters/forge/types.d.ts +0 -46
  234. package/dist/adapters/forge/types.d.ts.map +0 -1
  235. package/dist/adapters/forge/types.js +0 -2
  236. package/dist/adapters/forge/types.js.map +0 -1
  237. package/dist/commands/check.d.ts +0 -30
  238. package/dist/commands/check.d.ts.map +0 -1
  239. package/dist/commands/check.js +0 -70
  240. package/dist/commands/check.js.map +0 -1
  241. package/dist/commands/note-resolve.d.ts +0 -14
  242. package/dist/commands/note-resolve.d.ts.map +0 -1
  243. package/dist/commands/note-resolve.js +0 -24
  244. package/dist/commands/note-resolve.js.map +0 -1
  245. package/dist/commands/session-abandon.d.ts +0 -13
  246. package/dist/commands/session-abandon.d.ts.map +0 -1
  247. package/dist/commands/session-abandon.js +0 -22
  248. package/dist/commands/session-abandon.js.map +0 -1
  249. package/dist/commands/session-land.d.ts +0 -45
  250. package/dist/commands/session-land.d.ts.map +0 -1
  251. package/dist/commands/session-land.js +0 -171
  252. package/dist/commands/session-land.js.map +0 -1
  253. package/dist/commands/session-reap.d.ts +0 -22
  254. package/dist/commands/session-reap.d.ts.map +0 -1
  255. package/dist/commands/session-reap.js +0 -52
  256. package/dist/commands/session-reap.js.map +0 -1
  257. package/dist/commands/session-submit.d.ts +0 -29
  258. package/dist/commands/session-submit.d.ts.map +0 -1
  259. package/dist/commands/session-submit.js +0 -72
  260. package/dist/commands/session-submit.js.map +0 -1
  261. package/dist/core/checks/disclosure-checks.d.ts +0 -4
  262. package/dist/core/checks/disclosure-checks.d.ts.map +0 -1
  263. package/dist/core/checks/disclosure-checks.js +0 -24
  264. package/dist/core/checks/disclosure-checks.js.map +0 -1
  265. package/dist/core/disclosure/leak-scan.d.ts +0 -19
  266. package/dist/core/disclosure/leak-scan.d.ts.map +0 -1
  267. package/dist/core/disclosure/leak-scan.js +0 -31
  268. package/dist/core/disclosure/leak-scan.js.map +0 -1
  269. package/dist/core/disclosure/model.d.ts +0 -18
  270. package/dist/core/disclosure/model.d.ts.map +0 -1
  271. package/dist/core/disclosure/model.js +0 -45
  272. package/dist/core/disclosure/model.js.map +0 -1
  273. package/dist/core/graph/visibility-filter.d.ts +0 -13
  274. package/dist/core/graph/visibility-filter.d.ts.map +0 -1
  275. package/dist/core/graph/visibility-filter.js +0 -26
  276. package/dist/core/graph/visibility-filter.js.map +0 -1
  277. package/dist/core/migrations/rename-visibility-field.d.ts +0 -3
  278. package/dist/core/migrations/rename-visibility-field.d.ts.map +0 -1
  279. package/dist/core/migrations/rename-visibility-field.js +0 -62
  280. package/dist/core/migrations/rename-visibility-field.js.map +0 -1
  281. package/dist/core/notes/checks.d.ts +0 -20
  282. package/dist/core/notes/checks.d.ts.map +0 -1
  283. package/dist/core/notes/checks.js +0 -58
  284. package/dist/core/notes/checks.js.map +0 -1
  285. package/dist/core/notes/visibility.d.ts +0 -26
  286. package/dist/core/notes/visibility.d.ts.map +0 -1
  287. package/dist/core/notes/visibility.js +0 -41
  288. package/dist/core/notes/visibility.js.map +0 -1
  289. package/templates/conventions/baseline-convention.md +0 -60
@@ -7,9 +7,11 @@
7
7
  * else. That keeps `1` from ever being confused with "the command ran
8
8
  * correctly and found a real problem" — which is `CheckFailed`, not `Internal`.
9
9
  *
10
- * `4` and `5` are reserved now, unused until Phase 5's disclosure-policy
11
- * tri-state (ALLOW/DENY/ASK) needs codes distinct from `CheckFailed` — ALLOW
12
- * must be `Ok` (0), so DENY/ASK can't reuse `CheckFailed` (3).
10
+ * `4` and `5` were allocated for the disclosure-policy tri-state
11
+ * (ALLOW/DENY/ASK) and are unused since that capability was retired
12
+ * (retire-the-access-axes, design.md D4). They stay allocated rather than
13
+ * reclaimed: a future disclosure mechanism should find them waiting, not
14
+ * find them reassigned to something unrelated.
13
15
  *
14
16
  * This table is allocated once, here, and is never extended by guessing a
15
17
  * number under pressure in a later phase.
@@ -23,9 +25,9 @@ export const ExitCode = {
23
25
  Usage: 2,
24
26
  /** The command ran correctly and determined a real problem exists. */
25
27
  CheckFailed: 3,
26
- /** Reserved for Phase 5's disclosure-policy tri-state: DENY. */
28
+ /** Reserved for a future disclosure tri-state: DENY. Currently unused. */
27
29
  DisclosureDeny: 4,
28
- /** Reserved for Phase 5's disclosure-policy tri-state: ASK. */
30
+ /** Reserved for a future disclosure tri-state: ASK. Currently unused. */
29
31
  DisclosureAsk: 5,
30
32
  };
31
33
  //# sourceMappingURL=exit-codes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"exit-codes.js","sourceRoot":"","sources":["../../src/core/exit-codes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,+CAA+C;IAC/C,EAAE,EAAE,CAAC;IACL,6EAA6E;IAC7E,QAAQ,EAAE,CAAC;IACX,uFAAuF;IACvF,KAAK,EAAE,CAAC;IACR,sEAAsE;IACtE,WAAW,EAAE,CAAC;IACd,gEAAgE;IAChE,cAAc,EAAE,CAAC;IACjB,+DAA+D;IAC/D,aAAa,EAAE,CAAC;CACR,CAAC"}
1
+ {"version":3,"file":"exit-codes.js","sourceRoot":"","sources":["../../src/core/exit-codes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,+CAA+C;IAC/C,EAAE,EAAE,CAAC;IACL,6EAA6E;IAC7E,QAAQ,EAAE,CAAC;IACX,uFAAuF;IACvF,KAAK,EAAE,CAAC;IACR,sEAAsE;IACtE,WAAW,EAAE,CAAC;IACd,0EAA0E;IAC1E,cAAc,EAAE,CAAC;IACjB,yEAAyE;IACzE,aAAa,EAAE,CAAC;CACR,CAAC"}
@@ -53,8 +53,6 @@ export declare function isLinkedWorktreeRoot(root: string): boolean;
53
53
  export declare function hasGitIdentity(git: GitRunner, cwd: string, env: Readonly<Record<string, string | undefined>>): Promise<boolean>;
54
54
  export declare function gitInit(git: GitRunner, cwd: string): Promise<void>;
55
55
  export declare function currentBranch(git: GitRunner, cwd: string): Promise<string>;
56
- /** session-submit-and-land spec: renames the CURRENT branch (the checkout's HEAD moves with it) — used by `session submit --branch`. */
57
- export declare function renameCurrentBranch(git: GitRunner, cwd: string, newName: string): Promise<void>;
58
56
  /** Explicit pathspecs only — never `-A` — so `init` stages exactly the scaffold it wrote. */
59
57
  export declare function addPaths(git: GitRunner, cwd: string, paths: readonly string[]): Promise<void>;
60
58
  export declare function hasStagedChanges(git: GitRunner, cwd: string): Promise<boolean>;
@@ -68,8 +66,4 @@ export declare function movePath(git: GitRunner, cwd: string, from: string, to:
68
66
  export declare function isTracked(git: GitRunner, cwd: string, relativePath: string): Promise<boolean>;
69
67
  /** Skips the commit (returns null) when nothing is staged — what makes re-init idempotent. */
70
68
  export declare function commitIfStaged(git: GitRunner, cwd: string, mode: WriteMode, message: string): Promise<string | null>;
71
- /** Pushes a session branch to the remote — never the default branch, which the installed hook refuses anyway. */
72
- export declare function pushBranch(git: GitRunner, cwd: string, branch: string, remote?: string): Promise<void>;
73
- /** Whole-tree dirty check (staged AND unstaged) — distinct from hasStagedChanges, used by session reap. */
74
- export declare function isWorkingTreeClean(git: GitRunner, cwd: string): Promise<boolean>;
75
69
  //# sourceMappingURL=repo.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"repo.d.ts","sourceRoot":"","sources":["../../../src/core/git/repo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repo.d.ts","sourceRoot":"","sources":["../../../src/core/git/repo.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAE3C;;;;;;;;;GASG;AACH,MAAM,MAAM,SAAS,GACjB;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACrD;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC;AAExB,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAErB,mGAAmG;AACnG,wBAAsB,YAAY,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAQvF;AAED,qGAAqG;AACrG,wBAAsB,eAAe,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGnF;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAc1D;AAED;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,SAAS,EACd,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,GAChD,OAAO,CAAC,OAAO,CAAC,CAclB;AAED,wBAAsB,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKxE;AAED,wBAAsB,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGhF;AAED,6FAA6F;AAC7F,wBAAsB,QAAQ,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAGnG;AAED,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGpF;AAED;;;;GAIG;AACH,wBAAsB,QAAQ,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEnG;AAED,+LAA+L;AAC/L,wBAAsB,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGnG;AAED,8FAA8F;AAC9F,wBAAsB,cAAc,CAClC,GAAG,EAAE,SAAS,EACd,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAQxB"}
@@ -73,10 +73,6 @@ export async function currentBranch(git, cwd) {
73
73
  const result = await git.run(['symbolic-ref', '--short', 'HEAD'], { cwd });
74
74
  return result.stdout.trim();
75
75
  }
76
- /** session-submit-and-land spec: renames the CURRENT branch (the checkout's HEAD moves with it) — used by `session submit --branch`. */
77
- export async function renameCurrentBranch(git, cwd, newName) {
78
- await git.run(['branch', '-m', newName], { cwd });
79
- }
80
76
  /** Explicit pathspecs only — never `-A` — so `init` stages exactly the scaffold it wrote. */
81
77
  export async function addPaths(git, cwd, paths) {
82
78
  if (paths.length === 0)
@@ -111,13 +107,4 @@ export async function commitIfStaged(git, cwd, mode, message) {
111
107
  const result = await git.run(['rev-parse', 'HEAD'], { cwd });
112
108
  return result.stdout.trim();
113
109
  }
114
- /** Pushes a session branch to the remote — never the default branch, which the installed hook refuses anyway. */
115
- export async function pushBranch(git, cwd, branch, remote = 'origin') {
116
- await git.run(['push', '--set-upstream', remote, branch], { cwd });
117
- }
118
- /** Whole-tree dirty check (staged AND unstaged) — distinct from hasStagedChanges, used by session reap. */
119
- export async function isWorkingTreeClean(git, cwd) {
120
- const result = await git.run(['status', '--porcelain'], { cwd });
121
- return result.stdout.trim().length === 0;
122
- }
123
110
  //# sourceMappingURL=repo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"repo.js","sourceRoot":"","sources":["../../../src/core/git/repo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repo.js","sourceRoot":"","sources":["../../../src/core/git/repo.ts"],"names":[],"mappings":"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"}
@@ -10,13 +10,6 @@ export declare function hasRemote(git: GitRunner, cwd: string, name?: string): P
10
10
  */
11
11
  export declare function fetchOrigin(git: GitRunner, cwd: string, branch: string, remote?: string): Promise<boolean>;
12
12
  export declare function addWorktree(git: GitRunner, cwd: string, worktreePath: string, newBranch: string, startPoint: string): Promise<void>;
13
- export declare function removeWorktree(git: GitRunner, cwd: string, worktreePath: string, opts?: {
14
- force?: boolean;
15
- }): Promise<void>;
16
- export declare function pruneWorktrees(git: GitRunner, cwd: string): Promise<void>;
17
- export declare function deleteBranch(git: GitRunner, cwd: string, branch: string, opts?: {
18
- force?: boolean;
19
- }): Promise<void>;
20
13
  export interface WorktreeInfo {
21
14
  path: string;
22
15
  branch: string | null;
@@ -32,6 +25,10 @@ export declare function listWorktrees(git: GitRunner, cwd: string): Promise<Work
32
25
  * worktree the command was invoked from. Falls back to the passed cwd when the
33
26
  * list is empty rather than throwing — a repository with no linked worktrees
34
27
  * then behaves exactly as a caller that never asked.
28
+ *
29
+ * stabilize-write-gate-hook-path: used to anchor a generated enforcement
30
+ * primitive's own absolute invocation path (e.g. the write-gate hook command)
31
+ * at a location that outlives any single session worktree.
35
32
  */
36
33
  export declare function mainWorktreePath(git: GitRunner, cwd: string): Promise<string>;
37
34
  //# sourceMappingURL=worktree.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"worktree.d.ts","sourceRoot":"","sources":["../../../src/core/git/worktree.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAE3C,wBAAsB,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,SAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAI9F;AAED;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,SAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAGlH;AAED,wBAAsB,WAAW,CAC/B,GAAG,EAAE,SAAS,EACd,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAsB,cAAc,CAClC,GAAG,EAAE,SAAS,EACd,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,MAAM,EACpB,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAC7B,OAAO,CAAC,IAAI,CAAC,CAGf;AAED,wBAAsB,cAAc,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/E;AAED,wBAAsB,YAAY,CAChC,GAAG,EAAE,SAAS,EACd,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAC7B,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,gGAAgG;AAChG,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,EAAE,CAkBnE;AAED,wBAAsB,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAGxF;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGnF"}
1
+ {"version":3,"file":"worktree.d.ts","sourceRoot":"","sources":["../../../src/core/git/worktree.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAE3C,wBAAsB,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,SAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAI9F;AAED;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,SAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAGlH;AAED,wBAAsB,WAAW,CAC/B,GAAG,EAAE,SAAS,EACd,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,gGAAgG;AAChG,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,EAAE,CAkBnE;AAED,wBAAsB,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAGxF;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGnF"}
@@ -19,16 +19,6 @@ export async function fetchOrigin(git, cwd, branch, remote = 'origin') {
19
19
  export async function addWorktree(git, cwd, worktreePath, newBranch, startPoint) {
20
20
  await git.run(['worktree', 'add', '-b', newBranch, worktreePath, startPoint], { cwd });
21
21
  }
22
- export async function removeWorktree(git, cwd, worktreePath, opts = {}) {
23
- const args = ['worktree', 'remove', worktreePath, ...(opts.force ? ['--force'] : [])];
24
- await git.run(args, { cwd });
25
- }
26
- export async function pruneWorktrees(git, cwd) {
27
- await git.run(['worktree', 'prune'], { cwd });
28
- }
29
- export async function deleteBranch(git, cwd, branch, opts = {}) {
30
- await git.run(['branch', opts.force ? '-D' : '-d', branch], { cwd });
31
- }
32
22
  /** Parses `git worktree list --porcelain`'s block format (blocks separated by a blank line). */
33
23
  export function parseWorktreeList(porcelain) {
34
24
  const blocks = porcelain.split('\n\n').map((b) => b.trim()).filter(Boolean);
@@ -64,6 +54,10 @@ export async function listWorktrees(git, cwd) {
64
54
  * worktree the command was invoked from. Falls back to the passed cwd when the
65
55
  * list is empty rather than throwing — a repository with no linked worktrees
66
56
  * then behaves exactly as a caller that never asked.
57
+ *
58
+ * stabilize-write-gate-hook-path: used to anchor a generated enforcement
59
+ * primitive's own absolute invocation path (e.g. the write-gate hook command)
60
+ * at a location that outlives any single session worktree.
67
61
  */
68
62
  export async function mainWorktreePath(git, cwd) {
69
63
  const worktrees = await listWorktrees(git, cwd);
@@ -1 +1 @@
1
- {"version":3,"file":"worktree.js","sourceRoot":"","sources":["../../../src/core/git/worktree.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worktree.js","sourceRoot":"","sources":["../../../src/core/git/worktree.ts"],"names":[],"mappings":"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"}
@@ -72,6 +72,20 @@ export declare function extractLinkTargets(body: string): string[];
72
72
  * link, consistent with "two same-named notes are a valid, expected state"
73
73
  * (the node-identity requirement's own scenario).
74
74
  */
75
+ /**
76
+ * The filename-stem -> path(s) index every wikilink resolution in the
77
+ * system reads (the graph build here, and local-browsing-surface's
78
+ * link-resolver) — factored out so both consult exactly one index and can't
79
+ * silently diverge on what a stem resolves to.
80
+ */
81
+ export declare function buildStemIndex(notes: readonly Note[]): Map<string, string[]>;
82
+ export type StemResolution = {
83
+ path: string;
84
+ } | {
85
+ reason: DanglingReason;
86
+ };
87
+ /** Classifies a wikilink target against a stem index — exactly one match resolves, zero or many don't. */
88
+ export declare function resolveStem(stemIndex: ReadonlyMap<string, string[]>, target: string): StemResolution;
75
89
  export declare function buildGraphFromNotes(notes: readonly Note[], options?: GraphBuildOptions): GraphBuildResult;
76
90
  /** The build options a store's configuration implies — the one place config is translated for the graph. */
77
91
  export declare function graphBuildOptions(config: {
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../src/core/graph/model.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE7C;;;;;;;;;;GAUG;AACH,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,WAAW,CAAC;AAEvD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,cAAc,CAAC;CACxB;AAED,kGAAkG;AAClG,eAAO,MAAM,cAAc,SAAS,CAAC;AAErC,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,8HAA8H;IAC9H,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,6FAA6F;IAC7F,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,qBAAqB,IAAI,CAAC;AACvC,mEAAmE;AACnE,eAAO,MAAM,YAAY,WAAW,CAAC;AAErC,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,GAAE,MAA8B,GAAG,MAAM,CAIzF;AAKD,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAMD;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,GAAE,SAAS,MAAM,EAAO,GAAG,cAAc,EAAE,CAuB9F;AAYD,uIAAuI;AACvI,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAEzD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,EAAE,OAAO,GAAE,iBAAsB,GAAG,gBAAgB,CAmC7G;AAED,4GAA4G;AAC5G,wBAAgB,iBAAiB,CAAC,MAAM,EAAE;IAAE,SAAS,EAAE;QAAE,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE;YAAE,aAAa,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAA;CAAE,GAAG,iBAAiB,CAE9I"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../src/core/graph/model.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE7C;;;;;;;;;;GAUG;AACH,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,WAAW,CAAC;AAEvD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,cAAc,CAAC;CACxB;AAED,kGAAkG;AAClG,eAAO,MAAM,cAAc,SAAS,CAAC;AAErC,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,8HAA8H;IAC9H,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,6FAA6F;IAC7F,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,qBAAqB,IAAI,CAAC;AACvC,mEAAmE;AACnE,eAAO,MAAM,YAAY,WAAW,CAAC;AAErC,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,GAAE,MAA8B,GAAG,MAAM,CAIzF;AAKD,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAMD;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,GAAE,SAAS,MAAM,EAAO,GAAG,cAAc,EAAE,CAuB9F;AAYD,uIAAuI;AACvI,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAEzD;AAED;;;;;;;;;;;;GAYG;AACH;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAS5E;AAED,MAAM,MAAM,cAAc,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,cAAc,CAAA;CAAE,CAAC;AAE3E,0GAA0G;AAC1G,wBAAgB,WAAW,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc,CAKpG;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,EAAE,OAAO,GAAE,iBAAsB,GAAG,gBAAgB,CA2B7G;AAED,4GAA4G;AAC5G,wBAAgB,iBAAiB,CAAC,MAAM,EAAE;IAAE,SAAS,EAAE;QAAE,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE;YAAE,aAAa,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAA;CAAE,GAAG,iBAAiB,CAE9I"}
@@ -77,6 +77,31 @@ export function extractLinkTargets(body) {
77
77
  * link, consistent with "two same-named notes are a valid, expected state"
78
78
  * (the node-identity requirement's own scenario).
79
79
  */
80
+ /**
81
+ * The filename-stem -> path(s) index every wikilink resolution in the
82
+ * system reads (the graph build here, and local-browsing-surface's
83
+ * link-resolver) — factored out so both consult exactly one index and can't
84
+ * silently diverge on what a stem resolves to.
85
+ */
86
+ export function buildStemIndex(notes) {
87
+ const stemIndex = new Map();
88
+ for (const note of notes) {
89
+ const stem = path.basename(note.path, '.md');
90
+ const list = stemIndex.get(stem) ?? [];
91
+ list.push(note.path);
92
+ stemIndex.set(stem, list);
93
+ }
94
+ return stemIndex;
95
+ }
96
+ /** Classifies a wikilink target against a stem index — exactly one match resolves, zero or many don't. */
97
+ export function resolveStem(stemIndex, target) {
98
+ const resolved = stemIndex.get(target);
99
+ if (!resolved)
100
+ return { reason: 'not_found' };
101
+ if (resolved.length > 1)
102
+ return { reason: 'ambiguous' };
103
+ return { path: resolved[0] };
104
+ }
80
105
  export function buildGraphFromNotes(notes, options = {}) {
81
106
  const idCounts = new Map();
82
107
  for (const note of notes)
@@ -85,28 +110,19 @@ export function buildGraphFromNotes(notes, options = {}) {
85
110
  if (collisions.length > 0) {
86
111
  throw new GraphIdentityCollisionError(collisions);
87
112
  }
88
- const stemIndex = new Map();
89
- for (const note of notes) {
90
- const stem = path.basename(note.path, '.md');
91
- const list = stemIndex.get(stem) ?? [];
92
- list.push(note.path);
93
- stemIndex.set(stem, list);
94
- }
113
+ const stemIndex = buildStemIndex(notes);
95
114
  const depth = options.clusterDepth ?? DEFAULT_CLUSTER_DEPTH;
96
115
  const nodes = notes.map((n) => ({ id: n.path, path: n.path, cluster: clusterOf(n.path, depth) }));
97
116
  const edges = [];
98
117
  const dangling = [];
99
118
  for (const note of notes) {
100
119
  for (const { target, type } of extractLinks(note.body, options.relations ?? [])) {
101
- const resolved = stemIndex.get(target);
102
- if (!resolved) {
103
- dangling.push({ from: note.path, target, reason: 'not_found' });
104
- }
105
- else if (resolved.length > 1) {
106
- dangling.push({ from: note.path, target, reason: 'ambiguous' });
120
+ const resolution = resolveStem(stemIndex, target);
121
+ if ('reason' in resolution) {
122
+ dangling.push({ from: note.path, target, reason: resolution.reason });
107
123
  }
108
124
  else {
109
- edges.push({ src: note.path, dst: resolved[0], type });
125
+ edges.push({ src: note.path, dst: resolution.path, type });
110
126
  }
111
127
  }
112
128
  }
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/core/graph/model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/core/graph/model.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import type { StoreConfig } from '../../config/schema.js';
2
+ export interface HarnessBridgeResult {
3
+ /** The harness-generation adapter id this bridge is for. */
4
+ harness: string;
5
+ /** Store-relative harness skills directory that was bridged. */
6
+ path: string;
7
+ mode: 'symlink' | 'copy';
8
+ }
9
+ /**
10
+ * The effective skills directory for a configured harness-generation
11
+ * adapter: a store's own override (`adapters[].skills_dir`) takes
12
+ * precedence over the adapter's declared default.
13
+ */
14
+ export declare function effectiveSkillsDir(config: StoreConfig, adapterId: string, adapterDefault: string): string;
15
+ /**
16
+ * Bridges every declared harness-generation adapter's skills directory to
17
+ * the store's configured (canonical) skills path — never derived by
18
+ * inspecting the host machine, always from configuration. An adapter whose
19
+ * effective directory already equals the canonical path needs no bridge and
20
+ * is silently skipped. Returns only the harnesses that actually changed.
21
+ */
22
+ export declare function bridgeHarnessSkills(root: string, config: StoreConfig): Promise<HarnessBridgeResult[]>;
23
+ /**
24
+ * Read-only counterpart for `ctxr doctor`: true when a declared harness's
25
+ * skills directory is broken — materialized as something other than a
26
+ * bridge to canonical — without writing anything. Mirrors `ensureBridge`'s
27
+ * detection exactly; only the repair action differs.
28
+ */
29
+ export declare function isBridgeBroken(root: string, canonicalPath: string, harnessDir: string): Promise<boolean>;
30
+ //# sourceMappingURL=bridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../../src/core/harness/bridge.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D,MAAM,WAAW,mBAAmB;IAClC,4DAA4D;IAC5D,OAAO,EAAE,MAAM,CAAC;IAChB,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,GAAG,MAAM,CAAC;CAC1B;AA+HD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAGzG;AAED;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAmB3G;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAM9G"}
@@ -0,0 +1,178 @@
1
+ import { cp, lstat, mkdir, readFile, readdir, realpath, rm, symlink } from 'node:fs/promises';
2
+ import path from 'node:path';
3
+ import { configuredAdapters } from '../../adapters/registry.js';
4
+ /** Resolves a path to its real path, or itself (as an absolute path) if it does not exist. */
5
+ async function realOrSelf(p) {
6
+ try {
7
+ return await realpath(p);
8
+ }
9
+ catch {
10
+ return path.resolve(p);
11
+ }
12
+ }
13
+ /**
14
+ * Resolves a path's PARENT through symlinks, keeping the final path
15
+ * component literal. Handles the case where a parent directory (e.g. the
16
+ * store root itself) is reached through a link, so two paths that are
17
+ * physically the same location but written with different parent spellings
18
+ * still compare equal.
19
+ */
20
+ async function realParentPlusBase(p) {
21
+ const resolved = path.resolve(p);
22
+ const dir = path.dirname(resolved);
23
+ const base = path.basename(resolved);
24
+ try {
25
+ const realDir = await realpath(dir);
26
+ return path.join(realDir, base);
27
+ }
28
+ catch {
29
+ return resolved;
30
+ }
31
+ }
32
+ /**
33
+ * True when `harnessAbs` already resolves to the same real location as
34
+ * `canonicalAbs` — directly, or through a symlinked parent directory.
35
+ * Checked both ways so neither a symlinked store root nor a symlinked
36
+ * canonical directory causes a bridge that is already correct to be
37
+ * rewritten, or — worse — the canonical directory to be deleted out from
38
+ * under itself.
39
+ */
40
+ async function alreadyBridged(canonicalAbs, harnessAbs) {
41
+ const [realCanonical, realHarness] = await Promise.all([realOrSelf(canonicalAbs), realOrSelf(harnessAbs)]);
42
+ if (realCanonical === realHarness)
43
+ return true;
44
+ const [canonicalViaParent, harnessViaParent] = await Promise.all([realParentPlusBase(canonicalAbs), realParentPlusBase(harnessAbs)]);
45
+ return canonicalViaParent === harnessViaParent;
46
+ }
47
+ /** True only for a real directory — false for a symlink (even one pointing at a directory), so a misdirected link is always repaired rather than judged by its target's contents. */
48
+ async function isPlainDirectory(p) {
49
+ try {
50
+ return (await lstat(p)).isDirectory();
51
+ }
52
+ catch {
53
+ return false;
54
+ }
55
+ }
56
+ async function readDirTree(root, sub = '') {
57
+ const result = new Map();
58
+ let entries;
59
+ try {
60
+ entries = await readdir(path.join(root, sub), { withFileTypes: true });
61
+ }
62
+ catch {
63
+ return result;
64
+ }
65
+ for (const entry of entries) {
66
+ const rel = sub ? `${sub}/${entry.name}` : entry.name;
67
+ if (entry.isDirectory()) {
68
+ for (const [k, v] of await readDirTree(root, rel))
69
+ result.set(k, v);
70
+ }
71
+ else if (entry.isFile()) {
72
+ result.set(rel, await readFile(path.join(root, rel), 'utf8'));
73
+ }
74
+ }
75
+ return result;
76
+ }
77
+ /** Whole-tree byte comparison — cheap at skill-directory scale, and simpler than tracking per-file mtimes. */
78
+ async function directoriesMatch(a, b) {
79
+ const [treeA, treeB] = await Promise.all([readDirTree(a), readDirTree(b)]);
80
+ if (treeA.size !== treeB.size)
81
+ return false;
82
+ for (const [rel, content] of treeA) {
83
+ if (treeB.get(rel) !== content)
84
+ return false;
85
+ }
86
+ return true;
87
+ }
88
+ async function createDirSymlink(canonicalAbs, harnessAbs) {
89
+ await mkdir(path.dirname(harnessAbs), { recursive: true });
90
+ // A relative target keeps the link correct across a clone at a different absolute path.
91
+ const relativeTarget = path.relative(path.dirname(harnessAbs), canonicalAbs);
92
+ try {
93
+ await symlink(relativeTarget, harnessAbs, 'dir');
94
+ return true;
95
+ }
96
+ catch {
97
+ return false;
98
+ }
99
+ }
100
+ async function copySkillsInto(canonicalAbs, harnessAbs) {
101
+ await mkdir(harnessAbs, { recursive: true });
102
+ await cp(canonicalAbs, harnessAbs, { recursive: true });
103
+ }
104
+ /**
105
+ * harness-portability spec (vendored-craft-skills): makes `harnessAbs`
106
+ * resolve to `canonicalAbs`, preferring a directory symlink and falling
107
+ * back to a recursive copy when one cannot be created. Idempotent: a
108
+ * directory that already resolves to canonical (directly, through a
109
+ * symlinked parent, or as a copy whose content still matches) is left
110
+ * untouched and reported as unchanged. A symlink that does not resolve to
111
+ * canonical is always replaced regardless of what it currently points at —
112
+ * never judged "close enough" by its target's contents — which is what
113
+ * makes a misdirected or materialized-as-a-file bridge repairable rather
114
+ * than silently tolerated.
115
+ */
116
+ async function ensureBridge(canonicalAbs, harnessAbs) {
117
+ if (await alreadyBridged(canonicalAbs, harnessAbs))
118
+ return 'unchanged';
119
+ if ((await isPlainDirectory(harnessAbs)) && (await directoriesMatch(canonicalAbs, harnessAbs))) {
120
+ return 'unchanged';
121
+ }
122
+ await rm(harnessAbs, { recursive: true, force: true });
123
+ if (await createDirSymlink(canonicalAbs, harnessAbs))
124
+ return 'symlink';
125
+ await copySkillsInto(canonicalAbs, harnessAbs);
126
+ return 'copy';
127
+ }
128
+ /**
129
+ * The effective skills directory for a configured harness-generation
130
+ * adapter: a store's own override (`adapters[].skills_dir`) takes
131
+ * precedence over the adapter's declared default.
132
+ */
133
+ export function effectiveSkillsDir(config, adapterId, adapterDefault) {
134
+ const declaration = config.adapters.find((d) => d.kind === 'harness-generation' && d.id === adapterId);
135
+ return declaration?.skills_dir ?? adapterDefault;
136
+ }
137
+ /**
138
+ * Bridges every declared harness-generation adapter's skills directory to
139
+ * the store's configured (canonical) skills path — never derived by
140
+ * inspecting the host machine, always from configuration. An adapter whose
141
+ * effective directory already equals the canonical path needs no bridge and
142
+ * is silently skipped. Returns only the harnesses that actually changed.
143
+ */
144
+ export async function bridgeHarnessSkills(root, config) {
145
+ const canonical = config.harness.skills_path;
146
+ // path.resolve, not path.join: these configured paths conventionally end
147
+ // in "/", and fs.symlink's destination argument treats a trailing slash
148
+ // as "this must already be a directory" — failing with ENOENT on the
149
+ // (correct) case where it doesn't exist yet because we're creating it.
150
+ const canonicalAbs = path.resolve(root, canonical);
151
+ const results = [];
152
+ for (const adapter of configuredAdapters(config, 'harness-generation')) {
153
+ const harnessDir = effectiveSkillsDir(config, adapter.id, adapter.skillsDir);
154
+ if (harnessDir === canonical)
155
+ continue;
156
+ const harnessAbs = path.resolve(root, harnessDir);
157
+ const mode = await ensureBridge(canonicalAbs, harnessAbs);
158
+ if (mode !== 'unchanged')
159
+ results.push({ harness: adapter.id, path: harnessDir, mode });
160
+ }
161
+ return results;
162
+ }
163
+ /**
164
+ * Read-only counterpart for `ctxr doctor`: true when a declared harness's
165
+ * skills directory is broken — materialized as something other than a
166
+ * bridge to canonical — without writing anything. Mirrors `ensureBridge`'s
167
+ * detection exactly; only the repair action differs.
168
+ */
169
+ export async function isBridgeBroken(root, canonicalPath, harnessDir) {
170
+ const canonicalAbs = path.resolve(root, canonicalPath);
171
+ const harnessAbs = path.resolve(root, harnessDir);
172
+ if (await alreadyBridged(canonicalAbs, harnessAbs))
173
+ return false;
174
+ if ((await isPlainDirectory(harnessAbs)) && (await directoriesMatch(canonicalAbs, harnessAbs)))
175
+ return false;
176
+ return true;
177
+ }
178
+ //# sourceMappingURL=bridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../../src/core/harness/bridge.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import type { Note } from '../notes/list.js';
2
2
  /**
3
3
  * context-ingest spec: "source type, source id, source hash, ingested
4
- * date" — assigned once, at ingest, never before. Like disclosure's
5
- * `audience` field, nothing asks these keys to be configurable, so they
6
- * live here as the one set of literals every ingest-related module reads
7
- * from, rather than each spelling out its own string.
4
+ * date" — assigned once, at ingest, never before. Nothing asks these keys
5
+ * to be configurable, so they live here as the one set of literals every
6
+ * ingest-related module reads from, rather than each spelling out its own
7
+ * string.
8
8
  */
9
9
  export declare const SOURCE_TYPE_FIELD = "source_type";
10
10
  export declare const SOURCE_ID_FIELD = "source_id";
@@ -1,9 +1,9 @@
1
1
  /**
2
2
  * context-ingest spec: "source type, source id, source hash, ingested
3
- * date" — assigned once, at ingest, never before. Like disclosure's
4
- * `audience` field, nothing asks these keys to be configurable, so they
5
- * live here as the one set of literals every ingest-related module reads
6
- * from, rather than each spelling out its own string.
3
+ * date" — assigned once, at ingest, never before. Nothing asks these keys
4
+ * to be configurable, so they live here as the one set of literals every
5
+ * ingest-related module reads from, rather than each spelling out its own
6
+ * string.
7
7
  */
8
8
  export const SOURCE_TYPE_FIELD = 'source_type';
9
9
  export const SOURCE_ID_FIELD = 'source_id';
@@ -1 +1 @@
1
- {"version":3,"file":"json-config-merge.d.ts","sourceRoot":"","sources":["../../src/core/json-config-merge.ts"],"names":[],"mappings":"AAKA,8EAA8E;AAC9E,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,SAAS;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,EAAE,CAAC;IAC5E,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,cAAc,GAAG,SAAS,MAAM,EAAE,GAAG,SAAS,gBAAgB,EAAE,CAAC;AAC7E,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5F,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAuBhG;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,UAAU,EACjB,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,GACjC,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CA4D/B"}
1
+ {"version":3,"file":"json-config-merge.d.ts","sourceRoot":"","sources":["../../src/core/json-config-merge.ts"],"names":[],"mappings":"AAKA,8EAA8E;AAC9E,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,SAAS;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,EAAE,CAAC;IAC5E,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,cAAc,GAAG,SAAS,MAAM,EAAE,GAAG,SAAS,gBAAgB,EAAE,CAAC;AAC7E,MAAM,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5F,MAAM,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AA6ChG;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,UAAU,EACjB,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,GACjC,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CA4D/B"}