ctxr-cli 0.34.0 → 0.36.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 (204) hide show
  1. package/README.md +50 -7
  2. package/dist/commands/land.d.ts +1 -1
  3. package/dist/commands/land.d.ts.map +1 -1
  4. package/dist/commands/land.js +8 -4
  5. package/dist/commands/land.js.map +1 -1
  6. package/dist/commands/plugin-build.d.ts +33 -0
  7. package/dist/commands/plugin-build.d.ts.map +1 -0
  8. package/dist/commands/plugin-build.js +51 -0
  9. package/dist/commands/plugin-build.js.map +1 -0
  10. package/dist/commands/publish-check.d.ts.map +1 -1
  11. package/dist/commands/publish-check.js +35 -4
  12. package/dist/commands/publish-check.js.map +1 -1
  13. package/dist/commands/serve.d.ts +3 -0
  14. package/dist/commands/serve.d.ts.map +1 -1
  15. package/dist/commands/serve.js +129 -23
  16. package/dist/commands/serve.js.map +1 -1
  17. package/dist/commands/session-start.d.ts.map +1 -1
  18. package/dist/commands/session-start.js +12 -38
  19. package/dist/commands/session-start.js.map +1 -1
  20. package/dist/commands/session-submit.d.ts.map +1 -1
  21. package/dist/commands/session-submit.js +2 -0
  22. package/dist/commands/session-submit.js.map +1 -1
  23. package/dist/commands/sync.d.ts +50 -0
  24. package/dist/commands/sync.d.ts.map +1 -0
  25. package/dist/commands/sync.js +186 -0
  26. package/dist/commands/sync.js.map +1 -0
  27. package/dist/commands/version.d.ts.map +1 -1
  28. package/dist/commands/version.js +6 -3
  29. package/dist/commands/version.js.map +1 -1
  30. package/dist/config/defaults.d.ts +13 -0
  31. package/dist/config/defaults.d.ts.map +1 -1
  32. package/dist/config/defaults.js +11 -0
  33. package/dist/config/defaults.js.map +1 -1
  34. package/dist/config/schema.d.ts +1 -0
  35. package/dist/config/schema.d.ts.map +1 -1
  36. package/dist/config/schema.js +7 -0
  37. package/dist/config/schema.js.map +1 -1
  38. package/dist/core/approval/sessions.d.ts.map +1 -1
  39. package/dist/core/approval/sessions.js +4 -2
  40. package/dist/core/approval/sessions.js.map +1 -1
  41. package/dist/core/browse/approve.d.ts.map +1 -1
  42. package/dist/core/browse/approve.js +12 -2
  43. package/dist/core/browse/approve.js.map +1 -1
  44. package/dist/core/browse/page-url.d.ts +13 -0
  45. package/dist/core/browse/page-url.d.ts.map +1 -1
  46. package/dist/core/browse/page-url.js +17 -0
  47. package/dist/core/browse/page-url.js.map +1 -1
  48. package/dist/core/browse/pull-preview.d.ts +67 -0
  49. package/dist/core/browse/pull-preview.d.ts.map +1 -0
  50. package/dist/core/browse/pull-preview.js +154 -0
  51. package/dist/core/browse/pull-preview.js.map +1 -0
  52. package/dist/core/browse/webhook.d.ts +38 -0
  53. package/dist/core/browse/webhook.d.ts.map +1 -0
  54. package/dist/core/browse/webhook.js +102 -0
  55. package/dist/core/browse/webhook.js.map +1 -0
  56. package/dist/core/errors.d.ts +16 -0
  57. package/dist/core/errors.d.ts.map +1 -1
  58. package/dist/core/errors.js +27 -0
  59. package/dist/core/errors.js.map +1 -1
  60. package/dist/core/fs/atomic.d.ts +3 -2
  61. package/dist/core/fs/atomic.d.ts.map +1 -1
  62. package/dist/core/fs/atomic.js +3 -2
  63. package/dist/core/fs/atomic.js.map +1 -1
  64. package/dist/core/git/exec.d.ts +16 -1
  65. package/dist/core/git/exec.d.ts.map +1 -1
  66. package/dist/core/git/exec.js +15 -4
  67. package/dist/core/git/exec.js.map +1 -1
  68. package/dist/core/git/fast-forward.d.ts +23 -0
  69. package/dist/core/git/fast-forward.d.ts.map +1 -1
  70. package/dist/core/git/fast-forward.js +24 -0
  71. package/dist/core/git/fast-forward.js.map +1 -1
  72. package/dist/core/git/hardened.d.ts +15 -0
  73. package/dist/core/git/hardened.d.ts.map +1 -0
  74. package/dist/core/git/hardened.js +123 -0
  75. package/dist/core/git/hardened.js.map +1 -0
  76. package/dist/core/install-kind.d.ts +10 -3
  77. package/dist/core/install-kind.d.ts.map +1 -1
  78. package/dist/core/install-kind.js +48 -14
  79. package/dist/core/install-kind.js.map +1 -1
  80. package/dist/core/mcp/cli-runner.d.ts +41 -0
  81. package/dist/core/mcp/cli-runner.d.ts.map +1 -0
  82. package/dist/core/mcp/cli-runner.js +81 -0
  83. package/dist/core/mcp/cli-runner.js.map +1 -0
  84. package/dist/core/mcp/jsonrpc.d.ts +13 -1
  85. package/dist/core/mcp/jsonrpc.d.ts.map +1 -1
  86. package/dist/core/mcp/jsonrpc.js +1 -1
  87. package/dist/core/mcp/jsonrpc.js.map +1 -1
  88. package/dist/core/mcp/member-sessions.d.ts +48 -0
  89. package/dist/core/mcp/member-sessions.d.ts.map +1 -0
  90. package/dist/core/mcp/member-sessions.js +85 -0
  91. package/dist/core/mcp/member-sessions.js.map +1 -0
  92. package/dist/core/mcp/ownership.d.ts +51 -0
  93. package/dist/core/mcp/ownership.d.ts.map +1 -0
  94. package/dist/core/mcp/ownership.js +101 -0
  95. package/dist/core/mcp/ownership.js.map +1 -0
  96. package/dist/core/mcp/paths.d.ts +48 -0
  97. package/dist/core/mcp/paths.d.ts.map +1 -0
  98. package/dist/core/mcp/paths.js +111 -0
  99. package/dist/core/mcp/paths.js.map +1 -0
  100. package/dist/core/mcp/sessions.d.ts +24 -46
  101. package/dist/core/mcp/sessions.d.ts.map +1 -1
  102. package/dist/core/mcp/sessions.js +31 -103
  103. package/dist/core/mcp/sessions.js.map +1 -1
  104. package/dist/core/mcp/tool-map.d.ts +94 -0
  105. package/dist/core/mcp/tool-map.d.ts.map +1 -0
  106. package/dist/core/mcp/tool-map.js +211 -0
  107. package/dist/core/mcp/tool-map.js.map +1 -0
  108. package/dist/core/mcp/tools/capture.d.ts +7 -2
  109. package/dist/core/mcp/tools/capture.d.ts.map +1 -1
  110. package/dist/core/mcp/tools/capture.js +69 -18
  111. package/dist/core/mcp/tools/capture.js.map +1 -1
  112. package/dist/core/mcp/tools/cli.d.ts +97 -0
  113. package/dist/core/mcp/tools/cli.d.ts.map +1 -0
  114. package/dist/core/mcp/tools/cli.js +271 -0
  115. package/dist/core/mcp/tools/cli.js.map +1 -0
  116. package/dist/core/mcp/tools/edit.d.ts +62 -28
  117. package/dist/core/mcp/tools/edit.d.ts.map +1 -1
  118. package/dist/core/mcp/tools/edit.js +182 -153
  119. package/dist/core/mcp/tools/edit.js.map +1 -1
  120. package/dist/core/mcp/tools/files.d.ts +37 -11
  121. package/dist/core/mcp/tools/files.d.ts.map +1 -1
  122. package/dist/core/mcp/tools/files.js +122 -100
  123. package/dist/core/mcp/tools/files.js.map +1 -1
  124. package/dist/core/mcp/tools/index.d.ts +12 -3
  125. package/dist/core/mcp/tools/index.d.ts.map +1 -1
  126. package/dist/core/mcp/tools/index.js +161 -58
  127. package/dist/core/mcp/tools/index.js.map +1 -1
  128. package/dist/core/mcp/tools/sessions.d.ts +145 -0
  129. package/dist/core/mcp/tools/sessions.d.ts.map +1 -0
  130. package/dist/core/mcp/tools/sessions.js +226 -0
  131. package/dist/core/mcp/tools/sessions.js.map +1 -0
  132. package/dist/core/npm-prefix.d.ts +10 -0
  133. package/dist/core/npm-prefix.d.ts.map +1 -0
  134. package/dist/core/npm-prefix.js +11 -0
  135. package/dist/core/npm-prefix.js.map +1 -0
  136. package/dist/core/plugin/build.d.ts +70 -0
  137. package/dist/core/plugin/build.d.ts.map +1 -0
  138. package/dist/core/plugin/build.js +159 -0
  139. package/dist/core/plugin/build.js.map +1 -0
  140. package/dist/core/plugin/routes.d.ts +35 -0
  141. package/dist/core/plugin/routes.d.ts.map +1 -0
  142. package/dist/core/plugin/routes.js +77 -0
  143. package/dist/core/plugin/routes.js.map +1 -0
  144. package/dist/core/plugin/zip.d.ts +17 -0
  145. package/dist/core/plugin/zip.d.ts.map +1 -0
  146. package/dist/core/plugin/zip.js +75 -0
  147. package/dist/core/plugin/zip.js.map +1 -0
  148. package/dist/core/session/start.d.ts +46 -0
  149. package/dist/core/session/start.d.ts.map +1 -0
  150. package/dist/core/session/start.js +33 -0
  151. package/dist/core/session/start.js.map +1 -0
  152. package/dist/core/session/submit.d.ts +7 -0
  153. package/dist/core/session/submit.d.ts.map +1 -1
  154. package/dist/core/session/submit.js +8 -0
  155. package/dist/core/session/submit.js.map +1 -1
  156. package/dist/core/skills.d.ts +20 -2
  157. package/dist/core/skills.d.ts.map +1 -1
  158. package/dist/core/skills.js +56 -3
  159. package/dist/core/skills.js.map +1 -1
  160. package/dist/core/store-update-runner.d.ts +57 -0
  161. package/dist/core/store-update-runner.d.ts.map +1 -0
  162. package/dist/core/{approval/lander.js → store-update-runner.js} +41 -17
  163. package/dist/core/store-update-runner.js.map +1 -0
  164. package/dist/run.d.ts +12 -0
  165. package/dist/run.d.ts.map +1 -1
  166. package/dist/run.js +93 -58
  167. package/dist/run.js.map +1 -1
  168. package/dist/version.d.ts +1 -1
  169. package/dist/version.js +1 -1
  170. package/package.json +1 -1
  171. package/templates/approve/pages-note-pull.md +1 -0
  172. package/templates/conventions/baseline-conventions.md +5 -0
  173. package/templates/mcp/Delete.md +6 -0
  174. package/templates/mcp/Edit.md +6 -5
  175. package/templates/mcp/Glob.md +2 -2
  176. package/templates/mcp/Grep.md +2 -1
  177. package/templates/mcp/Move.md +7 -0
  178. package/templates/mcp/Read.md +4 -4
  179. package/templates/mcp/Write.md +4 -4
  180. package/templates/mcp/ctxr.md +7 -0
  181. package/templates/mcp/ctxr_write.md +8 -0
  182. package/templates/mcp/server-instructions.md +11 -3
  183. package/templates/mcp/session_discard.md +4 -0
  184. package/templates/mcp/session_list.md +7 -0
  185. package/templates/mcp/session_rebase.md +5 -0
  186. package/templates/mcp/session_start.md +7 -0
  187. package/templates/mcp/session_status.md +3 -0
  188. package/templates/mcp/session_submit.md +8 -0
  189. package/templates/plugin/README.md +13 -0
  190. package/templates/plugin/chatgpt-mcp.json +19 -0
  191. package/templates/plugin/chatgpt-plugin.json +13 -0
  192. package/templates/plugin/claude-mcp.json +8 -0
  193. package/templates/plugin/claude-plugin.json +6 -0
  194. package/templates/plugin/page.html +47 -0
  195. package/templates/skills/ctxr-publish.md +2 -1
  196. package/templates/skills/ctxr-upgrade.md +5 -5
  197. package/templates/skills/mcp/_preamble.md +44 -0
  198. package/dist/core/approval/lander.d.ts +0 -38
  199. package/dist/core/approval/lander.d.ts.map +0 -1
  200. package/dist/core/approval/lander.js.map +0 -1
  201. package/dist/core/mcp/drafts.d.ts +0 -30
  202. package/dist/core/mcp/drafts.d.ts.map +0 -1
  203. package/dist/core/mcp/drafts.js +0 -52
  204. package/dist/core/mcp/drafts.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"approve.js","sourceRoot":"","sources":["../../../src/core/browse/approve.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"approve.js","sourceRoot":"","sources":["../../../src/core/browse/approve.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,19 @@ export declare function publishRoute(filePath: string): string;
29
29
  export declare function noteRoute(notePath: string): string;
30
30
  /** `worktree` is the session worktree's directory name — the key `buildPreviews` inserts. */
31
31
  export declare function previewRoute(worktree: string, filePath: string): string;
32
+ /**
33
+ * serve-keeps-its-clone-current (D6): an open pull request's published pages,
34
+ * rendered from its head on the forge, addressed by pull request number — the
35
+ * number the approval pages and `ctxr session submit` already report.
36
+ */
37
+ export declare const PULL_PREVIEW_ROUTE_PREFIX = "/preview/pull/";
38
+ /** `filePath` is under the publish path, as `publishRoute` takes it; empty for the pull request's preview root. */
39
+ export declare function pullPreviewRoute(number: number, filePath?: string): string;
40
+ /** The pull request number and the path under the publish path a pull-preview pathname names; null for any other pathname. */
41
+ export declare function parsePullPreviewPath(pathname: string): {
42
+ number: number;
43
+ filePath: string;
44
+ } | null;
32
45
  export interface ServedAtRoute {
33
46
  /** Server-relative, always leading "/", always naming a file the route answers for. */
34
47
  route: string;
@@ -1 +1 @@
1
- {"version":3,"file":"page-url.d.ts","sourceRoot":"","sources":["../../../src/core/browse/page-url.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,cAAc,CAAC;AAChD,eAAO,MAAM,oBAAoB,cAAc,CAAC;AAChD;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,aAAa,CAAC;AAC9C,6HAA6H;AAC7H,eAAO,MAAM,iBAAiB,SAAS,CAAC;AAExC;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,6FAA6F;AAC7F,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEvE;AAED,MAAM,WAAW,aAAa;IAC5B,uFAAuF;IACvF,KAAK,EAAE,MAAM,CAAC;IACd,wFAAwF;IACxF,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACpB;AAED,MAAM,WAAW,QAAS,SAAQ,aAAa;IAC7C,IAAI,EAAE,SAAS,GAAG,SAAS,CAAC;IAC5B,4FAA4F;IAC5F,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB;;;;OAIG;IACH,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;CACrC;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGrF;AAOD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,qBAAqB,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAqBzF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,GAAG,MAAM,CAMhE;AAED,uGAAuG;AACvG,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAKrF"}
1
+ {"version":3,"file":"page-url.d.ts","sourceRoot":"","sources":["../../../src/core/browse/page-url.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,cAAc,CAAC;AAChD,eAAO,MAAM,oBAAoB,cAAc,CAAC;AAChD;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,aAAa,CAAC;AAC9C,6HAA6H;AAC7H,eAAO,MAAM,iBAAiB,SAAS,CAAC;AAExC;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,6FAA6F;AAC7F,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEvE;AAED;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,mBAAiC,CAAC;AAExE,mHAAmH;AACnH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,SAAK,GAAG,MAAM,CAEtE;AAED,8HAA8H;AAC9H,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAIlG;AAED,MAAM,WAAW,aAAa;IAC5B,uFAAuF;IACvF,KAAK,EAAE,MAAM,CAAC;IACd,wFAAwF;IACxF,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACpB;AAED,MAAM,WAAW,QAAS,SAAQ,aAAa;IAC7C,IAAI,EAAE,SAAS,GAAG,SAAS,CAAC;IAC5B,4FAA4F;IAC5F,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB;;;;OAIG;IACH,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;CACrC;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGrF;AAOD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,qBAAqB,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAqBzF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,GAAG,MAAM,CAMhE;AAED,uGAAuG;AACvG,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAKrF"}
@@ -36,6 +36,23 @@ export function noteRoute(notePath) {
36
36
  export function previewRoute(worktree, filePath) {
37
37
  return `${PREVIEW_ROUTE_PREFIX}${encodeURI(`${worktree}/${filePath}`)}`;
38
38
  }
39
+ /**
40
+ * serve-keeps-its-clone-current (D6): an open pull request's published pages,
41
+ * rendered from its head on the forge, addressed by pull request number — the
42
+ * number the approval pages and `ctxr session submit` already report.
43
+ */
44
+ export const PULL_PREVIEW_ROUTE_PREFIX = `${PREVIEW_ROUTE_PREFIX}pull/`;
45
+ /** `filePath` is under the publish path, as `publishRoute` takes it; empty for the pull request's preview root. */
46
+ export function pullPreviewRoute(number, filePath = '') {
47
+ return `${PULL_PREVIEW_ROUTE_PREFIX}${number}/${encodeURI(filePath)}`;
48
+ }
49
+ /** The pull request number and the path under the publish path a pull-preview pathname names; null for any other pathname. */
50
+ export function parsePullPreviewPath(pathname) {
51
+ const match = /^\/preview\/pull\/([1-9][0-9]{0,9})\/(.*)$/s.exec(pathname);
52
+ if (match === null || !pathname.startsWith(PULL_PREVIEW_ROUTE_PREFIX))
53
+ return null;
54
+ return { number: Number(match[1]), filePath: match[2] };
55
+ }
39
56
  /**
40
57
  * Join a declared base URL to a server-relative route.
41
58
  *
@@ -1 +1 @@
1
- {"version":3,"file":"page-url.js","sourceRoot":"","sources":["../../../src/core/browse/page-url.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"page-url.js","sourceRoot":"","sources":["../../../src/core/browse/page-url.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ import { type GitRunner } from '../git/exec.js';
2
+ import { type ForgeCredentials } from '../forge/credentials.js';
3
+ import { type ForgeClient } from '../forge/github.js';
4
+ import type { Store } from '../store.js';
5
+ /**
6
+ * context-browsing spec ("A pull request's pages are previewable from its
7
+ * pushed branch"; "A pull request preview is fetched when it is opened"; "A
8
+ * merged pull request's preview points to the published page"),
9
+ * serve-keeps-its-clone-current D6: a pull request's published pages, read
10
+ * from its head commit on the forge, at the address of the store that will
11
+ * publish them — whichever container wrote them.
12
+ *
13
+ * The head is asked of the forge and reused for at most `HEAD_REUSE_MS`; a
14
+ * commit the clone lacks is fetched into `refs/ctxr-preview/pull/<number>`, a
15
+ * namespace of this server's own, so the clone's branches and working tree are
16
+ * never touched. Only files under the configured publish path at that commit
17
+ * are addressable: an exact-key lookup in that listing, as for `/publish/`, so
18
+ * a miss is the traversal guard and notes are never served.
19
+ */
20
+ export declare const HEAD_REUSE_MS: number;
21
+ export type PullPreviewAnswer = {
22
+ kind: 'file';
23
+ filePath: string;
24
+ body: Buffer;
25
+ } | {
26
+ kind: 'redirect';
27
+ location: string;
28
+ } | {
29
+ kind: 'not-found';
30
+ } | {
31
+ kind: 'unavailable';
32
+ message: string;
33
+ };
34
+ export interface PullPreviewDeps {
35
+ /** A hardened runner: these fetches run in the clone the agent shares, next to the forge credential. */
36
+ git: GitRunner;
37
+ env: Readonly<Record<string, string | undefined>>;
38
+ now(): Date;
39
+ /** The forge client and credential for the store; rejects when no credential can be formed. */
40
+ forgeFor(store: Store): Promise<{
41
+ forge: ForgeClient;
42
+ credentials: ForgeCredentials;
43
+ }>;
44
+ }
45
+ export declare class PullPreviews {
46
+ private readonly deps;
47
+ private readonly heads;
48
+ private readonly listings;
49
+ constructor(deps: PullPreviewDeps);
50
+ /** The answer for `filePath` (under the publish path) of pull request `number`. */
51
+ answer(store: Store, number: number, filePath: string): Promise<PullPreviewAnswer>;
52
+ /**
53
+ * A verified push to `branch`: each open pull request whose head it is gets
54
+ * its head read again and fetched now, so its preview is ready before it is
55
+ * opened. The branch name is the only thing taken from the delivery.
56
+ */
57
+ prefetchBranch(store: Store, branch: string): Promise<number[]>;
58
+ private key;
59
+ /** The pull request as the forge reports it, reused for at most HEAD_REUSE_MS; null when the forge does not know it. */
60
+ private head;
61
+ private hasCommit;
62
+ /** The head commit in the clone, fetched into this server's own ref namespace when it is missing. */
63
+ private ensureCommit;
64
+ /** Every file under the configured publish path at `commit`, keyed by its path under that publish path. */
65
+ private listing;
66
+ }
67
+ //# sourceMappingURL=pull-preview.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pull-preview.d.ts","sourceRoot":"","sources":["../../../src/core/browse/pull-preview.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAgB,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAqB,KAAK,WAAW,EAAoB,MAAM,oBAAoB,CAAC;AAE3F,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGzC;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,aAAa,QAAY,CAAC;AAEvC,MAAM,MAAM,iBAAiB,GACzB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7C,MAAM,WAAW,eAAe;IAC9B,wGAAwG;IACxG,GAAG,EAAE,SAAS,CAAC;IACf,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;IAClD,GAAG,IAAI,IAAI,CAAC;IACZ,+FAA+F;IAC/F,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,WAAW,CAAC;QAAC,WAAW,EAAE,gBAAgB,CAAA;KAAE,CAAC,CAAC;CACxF;AAOD,qBAAa,YAAY;IAIX,OAAO,CAAC,QAAQ,CAAC,IAAI;IAHjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA4D;IAClF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0C;IAEnE,YAA6B,IAAI,EAAE,eAAe,EAAI;IAEtD,mFAAmF;IAC7E,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAoBvF;IAED;;;;OAIG;IACG,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CASpE;IAED,OAAO,CAAC,GAAG;IAIX,wHAAwH;YAC1G,IAAI;YAoBJ,SAAS;IAKvB,qGAAqG;YACvF,YAAY;IAoB1B,2GAA2G;YAC7F,OAAO;CAqBtB"}
@@ -0,0 +1,154 @@
1
+ import { readBlobBytes } from '../git/exec.js';
2
+ import { runRemoteGit } from '../forge/credentials.js';
3
+ import { ForgeRequestError } from '../forge/github.js';
4
+ import { storePrefix } from '../graph/tree.js';
5
+ import { joinBaseUrl, publishRoute } from './page-url.js';
6
+ /**
7
+ * context-browsing spec ("A pull request's pages are previewable from its
8
+ * pushed branch"; "A pull request preview is fetched when it is opened"; "A
9
+ * merged pull request's preview points to the published page"),
10
+ * serve-keeps-its-clone-current D6: a pull request's published pages, read
11
+ * from its head commit on the forge, at the address of the store that will
12
+ * publish them — whichever container wrote them.
13
+ *
14
+ * The head is asked of the forge and reused for at most `HEAD_REUSE_MS`; a
15
+ * commit the clone lacks is fetched into `refs/ctxr-preview/pull/<number>`, a
16
+ * namespace of this server's own, so the clone's branches and working tree are
17
+ * never touched. Only files under the configured publish path at that commit
18
+ * are addressable: an exact-key lookup in that listing, as for `/publish/`, so
19
+ * a miss is the traversal guard and notes are never served.
20
+ */
21
+ export const HEAD_REUSE_MS = 15 * 1000;
22
+ const PREVIEW_REF_PREFIX = 'refs/ctxr-preview/pull/';
23
+ /** Bounded so a long-running server does not keep every commit's listing it ever answered. */
24
+ const MAX_LISTINGS = 64;
25
+ export class PullPreviews {
26
+ deps;
27
+ heads = new Map();
28
+ listings = new Map();
29
+ constructor(deps) {
30
+ this.deps = deps;
31
+ }
32
+ /** The answer for `filePath` (under the publish path) of pull request `number`. */
33
+ async answer(store, number, filePath) {
34
+ let pull;
35
+ try {
36
+ pull = await this.head(store, number);
37
+ }
38
+ catch (err) {
39
+ return { kind: 'unavailable', message: `the forge could not be read: ${err instanceof Error ? err.message : String(err)}` };
40
+ }
41
+ if (pull === null)
42
+ return { kind: 'not-found' };
43
+ if (pull.merged) {
44
+ const route = publishRoute(filePath);
45
+ return { kind: 'redirect', location: joinBaseUrl(store.config.serve?.base_url, route) ?? route };
46
+ }
47
+ if (pull.state !== 'open')
48
+ return { kind: 'not-found' };
49
+ const present = await this.ensureCommit(store, pull);
50
+ if (!present)
51
+ return { kind: 'unavailable', message: `the pull request's head ${pull.headSha} could not be fetched` };
52
+ const object = (await this.listing(store, pull.headSha)).get(filePath);
53
+ if (object === undefined)
54
+ return { kind: 'not-found' };
55
+ const leading = (await this.deps.git.leadingArgs?.(store.root)) ?? [];
56
+ return { kind: 'file', filePath, body: await readBlobBytes(store.root, object, leading) };
57
+ }
58
+ /**
59
+ * A verified push to `branch`: each open pull request whose head it is gets
60
+ * its head read again and fetched now, so its preview is ready before it is
61
+ * opened. The branch name is the only thing taken from the delivery.
62
+ */
63
+ async prefetchBranch(store, branch) {
64
+ const { forge } = await this.deps.forgeFor(store);
65
+ const fetched = [];
66
+ for (const pull of await forge.pullsForHead(branch)) {
67
+ if (pull.state !== 'open' || pull.merged)
68
+ continue;
69
+ this.heads.set(this.key(store, pull.number), { pull, readAt: this.deps.now().getTime() });
70
+ if (await this.ensureCommit(store, pull))
71
+ fetched.push(pull.number);
72
+ }
73
+ return fetched;
74
+ }
75
+ key(store, number) {
76
+ return `${store.root}\0${number}`;
77
+ }
78
+ /** The pull request as the forge reports it, reused for at most HEAD_REUSE_MS; null when the forge does not know it. */
79
+ async head(store, number) {
80
+ const key = this.key(store, number);
81
+ const now = this.deps.now().getTime();
82
+ const cached = this.heads.get(key);
83
+ if (cached !== undefined && now - cached.readAt <= HEAD_REUSE_MS)
84
+ return cached.pull;
85
+ const { forge } = await this.deps.forgeFor(store);
86
+ let pull;
87
+ try {
88
+ pull = await forge.pull(number);
89
+ }
90
+ catch (err) {
91
+ if (err instanceof ForgeRequestError && err.status === 404) {
92
+ this.heads.delete(key);
93
+ return null;
94
+ }
95
+ throw err;
96
+ }
97
+ this.heads.set(key, { pull, readAt: now });
98
+ return pull;
99
+ }
100
+ async hasCommit(store, sha) {
101
+ const r = await this.deps.git.run(['cat-file', '-e', `${sha}^{commit}`], { cwd: store.root, allowFailure: true });
102
+ return r.exitCode === 0;
103
+ }
104
+ /** The head commit in the clone, fetched into this server's own ref namespace when it is missing. */
105
+ async ensureCommit(store, pull) {
106
+ if (await this.hasCommit(store, pull.headSha))
107
+ return true;
108
+ let credentials;
109
+ try {
110
+ credentials = (await this.deps.forgeFor(store)).credentials;
111
+ }
112
+ catch {
113
+ return false;
114
+ }
115
+ const ref = `${PREVIEW_REF_PREFIX}${pull.number}`;
116
+ // `--refmap=`: no opportunistic update of `refs/remotes/origin/*`, so only this namespace moves.
117
+ for (const source of [`refs/heads/${pull.headRef}`, `refs/pull/${pull.number}/head`]) {
118
+ await runRemoteGit(this.deps.git, credentials, this.deps.env, ['fetch', '--quiet', '--no-tags', '--refmap=', 'origin', `+${source}:${ref}`], {
119
+ cwd: store.root,
120
+ allowFailure: true,
121
+ });
122
+ if (await this.hasCommit(store, pull.headSha))
123
+ return true;
124
+ }
125
+ return false;
126
+ }
127
+ /** Every file under the configured publish path at `commit`, keyed by its path under that publish path. */
128
+ async listing(store, commit) {
129
+ const prefix = await storePrefix(this.deps.git, store.root);
130
+ const publish = `${prefix}${store.config.publish.path.split('\\').join('/').replace(/\/+$/, '')}/`;
131
+ const key = `${commit}\0${publish}`;
132
+ const cached = this.listings.get(key);
133
+ if (cached !== undefined)
134
+ return cached;
135
+ const tree = await this.deps.git.run(['ls-tree', '-r', '-z', '--full-tree', commit, '--', publish], { cwd: store.root, allowFailure: true });
136
+ const files = new Map();
137
+ for (const entry of tree.exitCode === 0 ? tree.stdout.split('\0') : []) {
138
+ const tab = entry.indexOf('\t');
139
+ if (tab === -1)
140
+ continue;
141
+ const [mode, type, object] = entry.slice(0, tab).split(' ');
142
+ const filePath = entry.slice(tab + 1);
143
+ // Regular files only, as `walkFiles` takes them from disk: no symbolic link, no submodule.
144
+ if (type !== 'blob' || mode === '120000' || !filePath.startsWith(publish))
145
+ continue;
146
+ files.set(filePath.slice(publish.length), object);
147
+ }
148
+ if (this.listings.size >= MAX_LISTINGS)
149
+ this.listings.delete(this.listings.keys().next().value);
150
+ this.listings.set(key, files);
151
+ return files;
152
+ }
153
+ }
154
+ //# sourceMappingURL=pull-preview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pull-preview.js","sourceRoot":"","sources":["../../../src/core/browse/pull-preview.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import type { IncomingMessage } from 'node:http';
2
+ /**
3
+ * context-browsing spec ("Only a signed forge delivery reaches the webhook";
4
+ * "A verified push brings the server up to date at once"),
5
+ * serve-keeps-its-clone-current D7, D9: GitHub push and pull-request
6
+ * deliveries at `POST /hooks/github`, verified against a secret that only the
7
+ * environment provides — never `contexture.yaml`, which is committed. With no
8
+ * secret the route does not exist.
9
+ *
10
+ * A delivery is a hint of which branch changed, nothing more: only the event
11
+ * name and the branch are read from it, and every change is then read from the
12
+ * forge by the store-update run or the preview fetch it starts. The timer and
13
+ * on-demand fetching stay, because GitHub does not retry a failed delivery.
14
+ */
15
+ export declare const WEBHOOK_ROUTE = "/hooks/github";
16
+ export declare const WEBHOOK_SECRET_VAR = "CONTEXTURE_WEBHOOK_SECRET";
17
+ export declare const WEBHOOK_SECRET_FILE_VAR = "CONTEXTURE_WEBHOOK_SECRET_FILE";
18
+ /** The webhook secret from the environment, or null when none is given; refuses both variables, or an unreadable or empty file. */
19
+ export declare function readWebhookSecret(env: Readonly<Record<string, string | undefined>>): Promise<Buffer | null>;
20
+ /** `X-Hub-Signature-256` against the raw body, compared in constant time. */
21
+ export declare function signatureValid(secret: Buffer, body: Buffer, header: string | string[] | undefined): boolean;
22
+ /** What a verified delivery asks for: a store-update run, a branch fetched for its preview, or nothing. */
23
+ export type WebhookHint = {
24
+ kind: 'default-branch';
25
+ repository: string | null;
26
+ } | {
27
+ kind: 'branch';
28
+ branch: string;
29
+ repository: string | null;
30
+ } | {
31
+ kind: 'ignored';
32
+ reason: string;
33
+ };
34
+ /** Reads only the event, the repository's name (for the log) and the branch from a verified delivery. */
35
+ export declare function hintOf(event: string | string[] | undefined, body: Buffer, defaultBranch: string): WebhookHint;
36
+ /** The raw body, or null when it passes the limit. */
37
+ export declare function readBody(req: IncomingMessage): Promise<Buffer | null>;
38
+ //# sourceMappingURL=webhook.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhook.d.ts","sourceRoot":"","sources":["../../../src/core/browse/webhook.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAGjD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAC7C,eAAO,MAAM,kBAAkB,8BAA8B,CAAC;AAC9D,eAAO,MAAM,uBAAuB,mCAAmC,CAAC;AAOxE,mIAAmI;AACnI,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAgBjH;AAED,6EAA6E;AAC7E,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,GAAG,OAAO,CAO3G;AAED,2GAA2G;AAC3G,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GACrD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAC7D;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAMxC,yGAAyG;AACzG,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,WAAW,CAoB7G;AAED,sDAAsD;AACtD,wBAAsB,QAAQ,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAU3E"}
@@ -0,0 +1,102 @@
1
+ import { createHmac, timingSafeEqual } from 'node:crypto';
2
+ import { readFile } from 'node:fs/promises';
3
+ import { WebhookSecretError } from '../errors.js';
4
+ /**
5
+ * context-browsing spec ("Only a signed forge delivery reaches the webhook";
6
+ * "A verified push brings the server up to date at once"),
7
+ * serve-keeps-its-clone-current D7, D9: GitHub push and pull-request
8
+ * deliveries at `POST /hooks/github`, verified against a secret that only the
9
+ * environment provides — never `contexture.yaml`, which is committed. With no
10
+ * secret the route does not exist.
11
+ *
12
+ * A delivery is a hint of which branch changed, nothing more: only the event
13
+ * name and the branch are read from it, and every change is then read from the
14
+ * forge by the store-update run or the preview fetch it starts. The timer and
15
+ * on-demand fetching stay, because GitHub does not retry a failed delivery.
16
+ */
17
+ export const WEBHOOK_ROUTE = '/hooks/github';
18
+ export const WEBHOOK_SECRET_VAR = 'CONTEXTURE_WEBHOOK_SECRET';
19
+ export const WEBHOOK_SECRET_FILE_VAR = 'CONTEXTURE_WEBHOOK_SECRET_FILE';
20
+ /** GitHub's payload limit is 25 MB; a push hint is far smaller, and a body past this is refused unread. */
21
+ const MAX_BODY_BYTES = 5 * 1024 * 1024;
22
+ const set = (value) => value !== undefined && value !== '';
23
+ /** The webhook secret from the environment, or null when none is given; refuses both variables, or an unreadable or empty file. */
24
+ export async function readWebhookSecret(env) {
25
+ const text = env[WEBHOOK_SECRET_VAR];
26
+ const file = env[WEBHOOK_SECRET_FILE_VAR];
27
+ if (set(text) && set(file))
28
+ throw new WebhookSecretError(`Both ${WEBHOOK_SECRET_VAR} and ${WEBHOOK_SECRET_FILE_VAR} are set; set one of them.`, [WEBHOOK_SECRET_VAR, WEBHOOK_SECRET_FILE_VAR]);
29
+ if (set(text))
30
+ return Buffer.from(text, 'utf8');
31
+ if (!set(file))
32
+ return null;
33
+ let contents;
34
+ try {
35
+ contents = await readFile(file, 'utf8');
36
+ }
37
+ catch (err) {
38
+ throw new WebhookSecretError(`${WEBHOOK_SECRET_FILE_VAR} names "${file}", which cannot be read (${err.code ?? 'error'}).`, [WEBHOOK_SECRET_FILE_VAR]);
39
+ }
40
+ // A secret file written by `echo` ends in a newline that is not part of the secret.
41
+ const secret = contents.replace(/\r?\n$/, '');
42
+ if (secret === '')
43
+ throw new WebhookSecretError(`${WEBHOOK_SECRET_FILE_VAR} names "${file}", which is empty.`, [WEBHOOK_SECRET_FILE_VAR]);
44
+ return Buffer.from(secret, 'utf8');
45
+ }
46
+ /** `X-Hub-Signature-256` against the raw body, compared in constant time. */
47
+ export function signatureValid(secret, body, header) {
48
+ if (typeof header !== 'string' || !header.startsWith('sha256='))
49
+ return false;
50
+ const given = Buffer.from(header.slice('sha256='.length), 'hex');
51
+ const expected = createHmac('sha256', secret).update(body).digest();
52
+ // A length mismatch (including hex that did not decode fully) is a mismatch; timingSafeEqual needs equal lengths.
53
+ if (given.length !== expected.length)
54
+ return false;
55
+ return timingSafeEqual(given, expected);
56
+ }
57
+ function branchOf(ref) {
58
+ return typeof ref === 'string' && ref.startsWith('refs/heads/') && ref.length > 'refs/heads/'.length ? ref.slice('refs/heads/'.length) : null;
59
+ }
60
+ /** Reads only the event, the repository's name (for the log) and the branch from a verified delivery. */
61
+ export function hintOf(event, body, defaultBranch) {
62
+ if (event === 'ping')
63
+ return { kind: 'ignored', reason: 'ping' };
64
+ let payload;
65
+ try {
66
+ payload = JSON.parse(body.toString('utf8'));
67
+ }
68
+ catch {
69
+ return { kind: 'ignored', reason: 'the body is not JSON' };
70
+ }
71
+ const record = (typeof payload === 'object' && payload !== null ? payload : {});
72
+ const repo = record.repository;
73
+ const repository = typeof repo?.full_name === 'string' ? repo.full_name : null;
74
+ let branch = null;
75
+ if (event === 'push')
76
+ branch = branchOf(record.ref);
77
+ else if (event === 'pull_request') {
78
+ const head = record.pull_request?.head?.ref;
79
+ branch = typeof head === 'string' && head !== '' ? head : null;
80
+ }
81
+ else
82
+ return { kind: 'ignored', reason: `a ${typeof event === 'string' ? event : 'unnamed'} event` };
83
+ if (branch === null)
84
+ return { kind: 'ignored', reason: 'no branch named' };
85
+ if (branch === defaultBranch)
86
+ return { kind: 'default-branch', repository };
87
+ return { kind: 'branch', branch, repository };
88
+ }
89
+ /** The raw body, or null when it passes the limit. */
90
+ export async function readBody(req) {
91
+ const chunks = [];
92
+ let size = 0;
93
+ for await (const chunk of req) {
94
+ const buffer = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk);
95
+ size += buffer.length;
96
+ if (size > MAX_BODY_BYTES)
97
+ return null;
98
+ chunks.push(buffer);
99
+ }
100
+ return Buffer.concat(chunks);
101
+ }
102
+ //# sourceMappingURL=webhook.js.map