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
@@ -4,14 +4,18 @@ import path from 'node:path';
4
4
  import { DIAGRAM_SCRIPT_ROUTE, RENDERER_ROUTE_PREFIX, diagramRenderer } from '../core/browse/diagram-assets.js';
5
5
  import { buildLinkResolver } from '../core/browse/link-resolver.js';
6
6
  import { renderIndexBody, renderNav } from '../core/browse/nav.js';
7
- import { PREVIEW_ROUTE_PREFIX, PUBLISH_ROUTE_PREFIX, REVIEW_HEAD_PARAM, REVIEW_ROUTE_PREFIX } from '../core/browse/page-url.js';
7
+ import { parsePullPreviewPath, PREVIEW_ROUTE_PREFIX, PUBLISH_ROUTE_PREFIX, REVIEW_HEAD_PARAM, REVIEW_ROUTE_PREFIX } from '../core/browse/page-url.js';
8
+ import { PullPreviews } from '../core/browse/pull-preview.js';
9
+ import { hintOf, readBody, readWebhookSecret, signatureValid, WEBHOOK_ROUTE } from '../core/browse/webhook.js';
10
+ import { hardenGit } from '../core/git/hardened.js';
8
11
  import { resolveNavState, resolveTheme } from '../core/browse/preferences.js';
9
12
  import { titleFor } from '../core/catalog/model.js';
10
13
  import { escapeHtml, renderNoteBody } from '../core/browse/render.js';
11
14
  import { buildRouteTable } from '../core/browse/routes.js';
12
15
  import { readDiagramScript, readStylesheet, renderShell } from '../core/browse/templates.js';
13
16
  import { createServingState } from '../core/browse/serving-state.js';
14
- import { createLander } from '../core/approval/lander.js';
17
+ import { createStoreUpdateRunner } from '../core/store-update-runner.js';
18
+ import { serveSyncMinutes } from '../config/defaults.js';
15
19
  import { readConfig } from '../config/load.js';
16
20
  import { MIGRATION_STEPS } from '../config/migrations.js';
17
21
  import { ExitCode } from '../core/exit-codes.js';
@@ -24,6 +28,7 @@ import { credentialsFor } from '../core/forge/credentials.js';
24
28
  import { storeForges } from '../core/approval/store-forges.js';
25
29
  import { createGhForgeClient, ForgeRequestError } from '../core/forge/github.js';
26
30
  import { isMcpPath, McpSurface } from '../core/mcp/surface.js';
31
+ import { isPluginPath, PluginDownloads } from '../core/plugin/routes.js';
27
32
  export const requires = { store: 'required' };
28
33
  /**
29
34
  * Defaults to loopback so an invocation with no `--host` keeps today's
@@ -93,7 +98,7 @@ async function readDerivedDocument(absolutePath) {
93
98
  throw err;
94
99
  }
95
100
  }
96
- async function handleRequest(holder, landing, mcp, git, stderr, req, res) {
101
+ async function handleRequest(holder, landing, mcp, plugins, git, stderr, pulls, webhookSecret, req, res) {
97
102
  // serve-follows-config-changes: one state per request, so a request never mixes two configurations.
98
103
  const { store, approval, approvalError } = await holder.current();
99
104
  landing.sync(store.config);
@@ -108,10 +113,22 @@ async function handleRequest(holder, landing, mcp, git, stderr, req, res) {
108
113
  }
109
114
  // context-browsing spec: the one exception to read-only is a POST to the decision route of a store that declares change approval.
110
115
  const decisionPost = method === 'POST' && (approval !== null || approvalError !== null) && isDecisionRoute(pathname);
111
- if (method !== 'GET' && method !== 'HEAD' && !decisionPost) {
116
+ // serve-keeps-its-clone-current D9: and a POST to the webhook, which exists only with a secret in the environment.
117
+ const webhookPost = method === 'POST' && webhookSecret !== null && pathname === WEBHOOK_ROUTE;
118
+ if (method !== 'GET' && method !== 'HEAD' && !decisionPost && !webhookPost) {
112
119
  send(res, method, 405, 'text/plain; charset=utf-8', 'method not allowed\n');
113
120
  return;
114
121
  }
122
+ if (webhookPost) {
123
+ await handleWebhook(store, landing, pulls, webhookSecret, stderr, req, res);
124
+ return;
125
+ }
126
+ // serve-the-session-lifecycle-to-chat-apps D7: the plugin downloads, behind the approval routes' identity check.
127
+ if (isPluginPath(pathname)) {
128
+ const reply = await plugins.handle(store, approval, approvalError, req, pathname);
129
+ send(res, method, reply.status, reply.contentType, reply.body, reply.headers);
130
+ return;
131
+ }
115
132
  // Ahead of buildRouteTable(): the stylesheet costs no store read at all, let alone a full one.
116
133
  if (pathname === '/assets/style.css') {
117
134
  send(res, method, 200, 'text/css; charset=utf-8', await readStylesheet());
@@ -138,6 +155,31 @@ async function handleRequest(holder, landing, mcp, git, stderr, req, res) {
138
155
  send(res, method, 200, 'text/javascript; charset=utf-8', await readDiagramScript());
139
156
  return;
140
157
  }
158
+ /**
159
+ * serve-keeps-its-clone-current D6: a pull request's pages, from its head on
160
+ * the forge — byte-verbatim like `/publish/`, with no shell. Answered ahead
161
+ * of the worktree previews below, and before any read of the store's own
162
+ * checkout.
163
+ */
164
+ const pullPreview = parsePullPreviewPath(pathname);
165
+ if (pullPreview !== null) {
166
+ const answer = await pulls.answer(store, pullPreview.number, pullPreview.filePath);
167
+ if (answer.kind === 'file') {
168
+ send(res, method, 200, contentTypeFor(answer.filePath), answer.body, { 'Cache-Control': 'no-store' });
169
+ }
170
+ else if (answer.kind === 'redirect') {
171
+ res.writeHead(302, { Location: answer.location, 'Cache-Control': 'no-store', 'Content-Length': 0 });
172
+ res.end();
173
+ }
174
+ else if (answer.kind === 'unavailable') {
175
+ stderr.write(`serve: pull request preview ${pullPreview.number}: ${answer.message}\n`);
176
+ send(res, method, 503, 'text/plain; charset=utf-8', 'the pull request could not be read from the forge\n');
177
+ }
178
+ else {
179
+ send(res, method, 404, 'text/plain; charset=utf-8', 'not found\n');
180
+ }
181
+ return;
182
+ }
141
183
  const { theme, setCookie: themeSetCookie } = resolveTheme(req.headers.cookie, url.searchParams);
142
184
  const { navState, setCookie: navSetCookie } = resolveNavState(req.headers.cookie, url.searchParams);
143
185
  const headers = shellHeaders([themeSetCookie, navSetCookie]);
@@ -161,7 +203,7 @@ async function handleRequest(holder, landing, mcp, git, stderr, req, res) {
161
203
  send(res, method, reply.status, reply.contentType, reply.body, replyHeaders);
162
204
  // After the response: the decider's redirect never waits on a landing run.
163
205
  if (reply.landingRequested === true)
164
- landing.trigger();
206
+ landing.triggerLanding();
165
207
  return;
166
208
  }
167
209
  const table = await buildRouteTable(store);
@@ -242,6 +284,44 @@ async function handleRequest(holder, landing, mcp, git, stderr, req, res) {
242
284
  }
243
285
  send(res, method, 404, 'text/plain; charset=utf-8', 'not found\n');
244
286
  }
287
+ /**
288
+ * context-browsing spec ("Only a signed forge delivery reaches the webhook";
289
+ * "A verified push brings the server up to date at once"): a delivery whose
290
+ * signature does not verify is answered 401 and does nothing. A verified one
291
+ * is answered 202 first; then a push to the default branch starts a
292
+ * store-update run (coalesced with one in progress), and a push to another
293
+ * branch fetches it for its pull request's preview. Nothing else in the
294
+ * delivery is used.
295
+ */
296
+ async function handleWebhook(store, landing, pulls, secret, stderr, req, res) {
297
+ const body = await readBody(req);
298
+ if (body === null) {
299
+ send(res, 'POST', 413, 'text/plain; charset=utf-8', 'delivery too large\n');
300
+ return;
301
+ }
302
+ if (!signatureValid(secret, body, req.headers['x-hub-signature-256'])) {
303
+ stderr.write('serve: webhook: a delivery without a valid signature was refused\n');
304
+ send(res, 'POST', 401, 'text/plain; charset=utf-8', 'signature does not verify\n');
305
+ return;
306
+ }
307
+ const hint = hintOf(req.headers['x-github-event'], body, store.config.git.default_branch);
308
+ send(res, 'POST', 202, 'text/plain; charset=utf-8', hint.kind === 'ignored' ? `ignored: ${hint.reason}\n` : 'accepted\n');
309
+ if (hint.kind === 'default-branch') {
310
+ stderr.write(`serve: webhook: ${store.config.git.default_branch} changed${hint.repository === null ? '' : ` on ${hint.repository}`}; starting a store-update run\n`);
311
+ landing.trigger();
312
+ }
313
+ else if (hint.kind === 'branch') {
314
+ stderr.write(`serve: webhook: ${hint.branch} changed${hint.repository === null ? '' : ` on ${hint.repository}`}; fetching it for its preview\n`);
315
+ try {
316
+ const fetched = await pulls.prefetchBranch(store, hint.branch);
317
+ if (fetched.length > 0)
318
+ stderr.write(`serve: webhook: fetched pull request ${fetched.map((n) => `#${n}`).join(', ')}\n`);
319
+ }
320
+ catch (err) {
321
+ stderr.write(`serve: webhook: ${hint.branch} could not be fetched: ${err instanceof Error ? err.message : String(err)}\n`);
322
+ }
323
+ }
324
+ }
245
325
  /**
246
326
  * cli-contract spec (local-browsing-surface D5): resolves the moment the
247
327
  * listener is ready, so `runCommand()` emits exactly one envelope before
@@ -282,35 +362,58 @@ async function approvalServer(env, store) {
282
362
  forgeFor: storeForges(env),
283
363
  env: env.env,
284
364
  verifier: createIdentityVerifier(approval.identity),
285
- git: env.git,
365
+ // It fetches into the shared clone and its mounts, and renders diffs, next to the App key: no repository hooks or drivers.
366
+ git: hardenGit(env.git),
286
367
  now: () => env.now(),
287
368
  };
288
369
  }
289
- function createLandingControl(env, root) {
290
- let lander = null;
370
+ export function storeUpdateSettings(config) {
371
+ const landing = config.change_approval !== undefined && config.change_approval.land !== 'manual';
372
+ const kind = landing ? 'land' : 'sync';
373
+ return { kind, intervalMs: serveSyncMinutes(config) * 60 * 1000 };
374
+ }
375
+ function createStoreUpdateControl(env, initial, root) {
291
376
  // Exactly the command a person would run: this Node binary and this CLI's entry script.
292
377
  const command = [env.execPath, process.argv[1]];
378
+ const runner = createStoreUpdateRunner({ command, root, env: env.env, output: env.io.stderr, ...storeUpdateSettings(initial) });
293
379
  return {
294
380
  sync(config) {
295
- const wanted = config.change_approval !== undefined && config.change_approval.land !== 'manual';
296
- if (wanted && lander === null)
297
- lander = createLander({ command, root, env: env.env, output: env.io.stderr });
298
- if (!wanted && lander !== null) {
299
- void lander.stop();
300
- lander = null;
301
- }
381
+ runner.configure(storeUpdateSettings(config));
302
382
  },
303
383
  trigger() {
304
- lander?.trigger();
384
+ runner.trigger();
385
+ },
386
+ triggerLanding() {
387
+ if (runner.kind() === 'land')
388
+ runner.trigger();
305
389
  },
306
- async stop() {
307
- await lander?.stop();
308
- lander = null;
390
+ stop() {
391
+ return runner.stop();
309
392
  },
310
393
  };
311
394
  }
395
+ /**
396
+ * The store's own forge client and credential, for pull request previews and
397
+ * the webhook: formed once, on first use, so a store that never opens a
398
+ * preview never needs a forge credential. A failure is not remembered, so a
399
+ * credential fixed in the environment's files is picked up on the next try.
400
+ */
401
+ function storeForge(env) {
402
+ let formed = null;
403
+ return (store) => {
404
+ formed ??= credentialsFor(env, store.root)
405
+ .then((credentials) => ({ forge: createGhForgeClient(store.root, credentials), credentials }))
406
+ .catch((err) => {
407
+ formed = null;
408
+ throw err;
409
+ });
410
+ return formed;
411
+ };
412
+ }
312
413
  export async function execute(env, store, flags) {
313
414
  // Startup still fails fast on a recording-login mismatch or an unreachable forge; only later changes degrade.
415
+ // An ambiguous or unreadable webhook secret fails it too: a store that asked for the webhook should not run without it.
416
+ const webhookSecret = await readWebhookSecret(env.env);
314
417
  const approval = await approvalServer(env, store);
315
418
  const holder = await createServingState({
316
419
  initial: store,
@@ -319,17 +422,20 @@ export async function execute(env, store, flags) {
319
422
  buildApproval: (next) => approvalServer(env, next),
320
423
  log: (line) => env.io.stderr.write(`${line}\n`),
321
424
  });
322
- const landing = createLandingControl(env, store.root);
425
+ const landing = createStoreUpdateControl(env, store.config, store.root);
323
426
  const mcp = new McpSurface({ git: env.git, canonicalRoot: store.root, env: env.env, now: () => env.now(), log: (line) => env.io.stderr.write(`${line}\n`) });
324
- landing.sync(store.config);
325
- // Stopping serve stops a landing run in progress; landing is resumable, so the next start finishes it.
427
+ const plugins = new PluginDownloads(env.git);
428
+ // Routes run git in the clone the agent shares (diffs, logs): no repository hooks or drivers there either.
429
+ const routeGit = hardenGit(env.git);
430
+ const pulls = new PullPreviews({ git: hardenGit(env.git), env: env.env, now: () => env.now(), forgeFor: storeForge(env) });
431
+ // Stopping serve stops a store-update run in progress; landing and syncing are resumable, so the next start finishes it.
326
432
  const shutdown = (signal) => {
327
433
  void landing.stop().finally(() => process.exit(signal === 'SIGINT' ? 130 : 143));
328
434
  };
329
435
  process.once('SIGTERM', shutdown);
330
436
  process.once('SIGINT', shutdown);
331
437
  const server = createServer((req, res) => {
332
- handleRequest(holder, landing, mcp, env.git, env.io.stderr, req, res).catch((err) => {
438
+ handleRequest(holder, landing, mcp, plugins, routeGit, env.io.stderr, pulls, webhookSecret, req, res).catch((err) => {
333
439
  env.io.stderr.write(`serve: ${err instanceof Error ? err.message : String(err)}\n`);
334
440
  if (!res.headersSent)
335
441
  send(res, req.method ?? 'GET', 500, 'text/plain; charset=utf-8', 'internal error\n');
@@ -1 +1 @@
1
- {"version":3,"file":"serve.js","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serve.js","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"session-start.d.ts","sourceRoot":"","sources":["../../src/commands/session-start.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAK7C,OAAO,EAA4D,KAAK,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAGpI,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAG9C,eAAO,MAAM,QAAQ,EAAE,eAAuC,CAAC;AAE/D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,qFAAqF;IACrF,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB;;;OAGG;IACH,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,mBAAmB;IAClC,8FAA8F;IAC9F,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kHAAkH;IAClH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AA8BD;;;;;GAKG;AACH,wBAAsB,OAAO,CAC3B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,KAAK,EACZ,IAAI,GAAE,mBAAwB,GAC7B,OAAO,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAiE3C"}
1
+ {"version":3,"file":"session-start.d.ts","sourceRoot":"","sources":["../../src/commands/session-start.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAK7C,OAAO,EAA4D,KAAK,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAGpI,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAG9C,eAAO,MAAM,QAAQ,EAAE,eAAuC,CAAC;AAE/D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,qFAAqF;IACrF,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB;;;OAGG;IACH,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,mBAAmB;IAClC,8FAA8F;IAC9F,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kHAAkH;IAClH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AA8BD;;;;;GAKG;AACH,wBAAsB,OAAO,CAC3B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,KAAK,EACZ,IAAI,GAAE,mBAAwB,GAC7B,OAAO,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAyC3C"}
@@ -1,10 +1,10 @@
1
1
  import path from 'node:path';
2
2
  import { ExitCode } from '../core/exit-codes.js';
3
- import { SessionLabelUnusableError, SessionNameExistsError, SessionRefusedError, SessionWorktreeRefusedError } from '../core/errors.js';
4
- import { addWorktree, fetchOrigin, hasRemote } from '../core/git/worktree.js';
3
+ import { SessionRefusedError } from '../core/errors.js';
4
+ import { fetchOrigin, hasRemote } from '../core/git/worktree.js';
5
5
  import { sessionWorktrees } from '../core/approval/sessions.js';
6
6
  import { identityOfWorktree, joinedBranchName, joinedWorktreeName } from '../core/approval/session-marker.js';
7
- import { findSessionWorktreeByLabel, generateSessionBranchName, sessionLabelSlug, worktreePathFor } from '../core/session.js';
7
+ import { startSession } from '../core/session/start.js';
8
8
  import { mountingStoreOf } from '../core/shared-stores.js';
9
9
  import { updateAdvisory } from '../core/version-check.js';
10
10
  export const requires = { store: 'required' };
@@ -41,45 +41,19 @@ async function joinTarget(env, store, joins) {
41
41
  * current tip — fetching is simply not possible without a remote.
42
42
  */
43
43
  export async function execute(env, store, opts = {}) {
44
- const git = env.git;
45
- const defaultBranch = store.config.git.default_branch;
46
44
  if (opts.joins !== undefined && opts.label !== undefined) {
47
45
  throw refuse('join_with_label', 'A joined session takes its name from the session it joins, so it takes no label.', { joins: opts.joins });
48
46
  }
49
47
  const joined = opts.joins === undefined ? null : await joinTarget(env, store, opts.joins);
50
- // Ahead of the fetch, so a label that can never work costs no network round
51
- // trip and leaves nothing behind.
52
- let labelSlug = null;
53
- if (opts.label !== undefined) {
54
- labelSlug = sessionLabelSlug(opts.label);
55
- if (labelSlug === '')
56
- throw new SessionLabelUnusableError(opts.label);
57
- // A label identifies at most one session at a time. Checked against the
58
- // sessions on disk rather than against the composed branch name, which
59
- // carries a timestamp and so would almost never collide (D4).
60
- const existing = await findSessionWorktreeByLabel(store.root, store.config, labelSlug);
61
- if (existing !== null)
62
- throw new SessionNameExistsError(labelSlug, existing);
63
- }
64
- const remoteExists = await hasRemote(git, store.root);
65
- let startPoint;
66
- let fetched = false;
67
- if (remoteExists) {
68
- fetched = await fetchOrigin(git, store.root, defaultBranch);
69
- }
70
- // Falls back to the local branch both when there's no remote at all, and
71
- // when the remote exists but doesn't yet have this branch (e.g. nothing
72
- // has been pushed yet) — both are honest, expected states, not errors.
73
- startPoint = fetched ? `origin/${defaultBranch}` : defaultBranch;
74
- const branch = joined?.branch ?? generateSessionBranchName(store.config, new Date(), labelSlug ?? undefined);
75
- const worktreeDir = joined === null ? worktreePathFor(store, branch) : path.join(store.root, store.config.session.worktrees_path, joined.worktreeName);
76
- // git decides whether the worktree can actually be created: the label scan
77
- // above knows nothing about an unusable branch prefix, an occupied path, or a
78
- // repository problem, and any of those is still the caller's problem to see (D7).
79
- const added = await addWorktree(git, store.root, worktreeDir, branch, startPoint, { allowFailure: true });
80
- if (added.exitCode !== 0)
81
- throw new SessionWorktreeRefusedError(branch, worktreeDir, added.stderr);
82
- const session = joined?.home ?? (await identityOfWorktree(git, store.config, worktreeDir, path.basename(worktreeDir), branch));
48
+ // serve-the-session-lifecycle-to-chat-apps D3: the core `session_start` shares.
49
+ const started = await startSession({
50
+ git: env.git,
51
+ config: store.config,
52
+ fetch: async (cwd) => (await hasRemote(env.git, cwd)) && (await fetchOrigin(env.git, cwd, store.config.git.default_branch)),
53
+ now: () => new Date(),
54
+ }, store.root, opts.label, joined ?? undefined);
55
+ const { worktree: worktreeDir, branch, startPoint, fetched, label: labelSlug } = started;
56
+ const session = joined?.home ?? (await identityOfWorktree(env.git, store.config, worktreeDir, path.basename(worktreeDir), branch));
83
57
  // cli-contract: the skill-path trigger for the release advisory — once per
84
58
  // session, at the command the lifecycle skill names first, on a command that
85
59
  // already reaches the network to fetch the default branch. Deliberately
@@ -1 +1 @@
1
- {"version":3,"file":"session-start.js","sourceRoot":"","sources":["../../src/commands/session-start.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AACxI,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,kBAAkB,EAAwB,MAAM,oCAAoC,CAAC;AACpI,OAAO,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC9H,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,MAAM,CAAC,MAAM,QAAQ,GAAoB,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AAuB/D,SAAS,MAAM,CAAC,MAAc,EAAE,OAAe,EAAE,OAAO,GAA4B,EAAE;IACpF,OAAO,IAAI,mBAAmB,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC3E,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,UAAU,CAAC,GAAW,EAAE,KAAY,EAAE,KAAa;IAChE,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,MAAM,MAAM,CAAC,kBAAkB,EAAE,IAAI,KAAK,CAAC,IAAI,8FAA8F,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5J,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACjF,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC;IAC5E,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,MAAM,CAAC,sBAAsB,EAAE,iBAAiB,QAAQ,CAAC,IAAI,gCAAgC,KAAK,4CAA4C,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACzL,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACzG,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,MAAM,MAAM,CAAC,mBAAmB,EAAE,iBAAiB,QAAQ,CAAC,IAAI,sEAAsE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACrJ,CAAC;IACD,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC;IACzD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC;IAClD,OAAO,EAAE,MAAM,EAAE,gBAAgB,CAAC,MAAM,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE,YAAY,EAAE,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,UAAU,CAAC,EAAE,IAAI,EAAE,CAAC;AAClI,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,GAAW,EACX,KAAY,EACZ,IAAI,GAAwB,EAAE;IAE9B,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;IACpB,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC;IAEtD,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACzD,MAAM,MAAM,CAAC,iBAAiB,EAAE,kFAAkF,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAC7I,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAE1F,4EAA4E;IAC5E,kCAAkC;IAClC,IAAI,SAAS,GAAkB,IAAI,CAAC;IACpC,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC7B,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,SAAS,KAAK,EAAE;YAAE,MAAM,IAAI,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEtE,wEAAwE;QACxE,uEAAuE;QACvE,8DAA8D;QAC9D,MAAM,QAAQ,GAAG,MAAM,0BAA0B,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACvF,IAAI,QAAQ,KAAK,IAAI;YAAE,MAAM,IAAI,sBAAsB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC/E,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAEtD,IAAI,UAAkB,CAAC;IACvB,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAC9D,CAAC;IACD,yEAAyE;IACzE,wEAAwE;IACxE,uEAAuE;IACvE,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,UAAU,aAAa,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC;IAEjE,MAAM,MAAM,GAAG,MAAM,EAAE,MAAM,IAAI,yBAAyB,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,IAAI,EAAE,EAAE,SAAS,IAAI,SAAS,CAAC,CAAC;IAC7G,MAAM,WAAW,GAAG,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;IAEvJ,2EAA2E;IAC3E,8EAA8E;IAC9E,kFAAkF;IAClF,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1G,IAAI,KAAK,CAAC,QAAQ,KAAK,CAAC;QAAE,MAAM,IAAI,2BAA2B,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAEnG,MAAM,OAAO,GAAG,MAAM,EAAE,IAAI,IAAI,CAAC,MAAM,kBAAkB,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IAE/H,2EAA2E;IAC3E,6EAA6E;IAC7E,wEAAwE;IACxE,uEAAuE;IACvE,6DAA6D;IAC7D,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAElD,MAAM,KAAK,GAAG,CAAC,wBAAwB,WAAW,gBAAgB,MAAM,WAAW,UAAU,IAAI,CAAC,CAAC;IACnG,IAAI,MAAM,KAAK,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,wBAAwB,MAAM,CAAC,IAAI,CAAC,MAAM,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;SACjG,IAAI,OAAO,KAAK,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,WAAW,OAAO,CAAC,MAAM,OAAO,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC;IACvF,OAAO;QACL,QAAQ,EAAE,QAAQ,CAAC,EAAE;QACrB,IAAI,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE;QACvF,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;QACxD,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;QAC9B,SAAS,EAAE,KAAK,CAAC,IAAI;QACrB,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,cAAc;KAC3C,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"session-start.js","sourceRoot":"","sources":["../../src/commands/session-start.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"session-submit.d.ts","sourceRoot":"","sources":["../../src/commands/session-submit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAM7C,OAAO,EAA+B,KAAK,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC3F,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE9C,eAAO,MAAM,QAAQ,EAAE,eAAuC,CAAC;AAE/D,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;GAOG;AACH,wBAAsB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAyB1H"}
1
+ {"version":3,"file":"session-submit.d.ts","sourceRoot":"","sources":["../../src/commands/session-submit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAM7C,OAAO,EAA+B,KAAK,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC3F,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE9C,eAAO,MAAM,QAAQ,EAAE,eAAuC,CAAC;AAE/D,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;GAOG;AACH,wBAAsB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CA0B1H"}
@@ -30,6 +30,8 @@ export async function execute(env, store, opts) {
30
30
  const lines = [`Pull request #${result.pull_request.number} (${result.steps.pull_request}) for "${result.branch}": ${result.pull_request.url}`];
31
31
  if (result.approval_url !== null)
32
32
  lines.push(`Approval page: ${result.approval_url}`);
33
+ if (result.preview_url !== null)
34
+ lines.push(`Pages preview at: ${result.preview_url}`);
33
35
  return {
34
36
  exitCode: ExitCode.Ok,
35
37
  data: result,
@@ -1 +1 @@
1
- {"version":3,"file":"session-submit.js","sourceRoot":"","sources":["../../src/commands/session-submit.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,aAAa,EAAqB,MAAM,2BAA2B,CAAC;AAG3F,MAAM,CAAC,MAAM,QAAQ,GAAoB,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AAW/D;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,GAAW,EAAE,KAAY,EAAE,IAA0B;IACjF,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,mBAAmB,CAAC,QAAQ,CAAC,KAAK,EAAE,eAAe,EAAE,uEAAuE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;IACjK,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,QAAS,CAAC,CAAC,CAAC;IACxE,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/F,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,MAAM,KAAK,GAAG,mBAAmB,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE;QACpH,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,IAAI;KACL,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,CAAC,iBAAiB,MAAM,CAAC,YAAY,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,CAAC,YAAY,UAAU,MAAM,CAAC,MAAM,MAAM,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC;IAChJ,IAAI,MAAM,CAAC,YAAY,KAAK,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IACtF,OAAO;QACL,QAAQ,EAAE,QAAQ,CAAC,EAAE;QACrB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,EAAE;QACZ,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;QAC9B,SAAS,EAAE,KAAK,CAAC,IAAI;QACrB,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,cAAc;KAC3C,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"session-submit.js","sourceRoot":"","sources":["../../src/commands/session-submit.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,aAAa,EAAqB,MAAM,2BAA2B,CAAC;AAG3F,MAAM,CAAC,MAAM,QAAQ,GAAoB,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AAW/D;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,GAAW,EAAE,KAAY,EAAE,IAA0B;IACjF,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,mBAAmB,CAAC,QAAQ,CAAC,KAAK,EAAE,eAAe,EAAE,uEAAuE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;IACjK,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,QAAS,CAAC,CAAC,CAAC;IACxE,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/F,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,MAAM,KAAK,GAAG,mBAAmB,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE;QACpH,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,IAAI;KACL,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,CAAC,iBAAiB,MAAM,CAAC,YAAY,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,CAAC,YAAY,UAAU,MAAM,CAAC,MAAM,MAAM,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC;IAChJ,IAAI,MAAM,CAAC,YAAY,KAAK,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,kBAAkB,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IACtF,IAAI,MAAM,CAAC,WAAW,KAAK,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,qBAAqB,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;IACvF,OAAO;QACL,QAAQ,EAAE,QAAQ,CAAC,EAAE;QACrB,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,EAAE;QACZ,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;QAC9B,SAAS,EAAE,KAAK,CAAC,IAAI;QACrB,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,cAAc;KAC3C,CAAC;AACJ,CAAC"}
@@ -0,0 +1,50 @@
1
+ import type { CommandOutcome, CommandRequires } from '../core/command.js';
2
+ import type { RunEnv } from '../core/env.js';
3
+ import { type CredentialKind } from '../core/forge/credentials.js';
4
+ import { type FastForwardOutcome } from '../core/git/fast-forward.js';
5
+ import type { Store } from '../core/store.js';
6
+ import * as sharedStoresSyncCommand from './shared-stores-sync.js';
7
+ export declare const requires: CommandRequires;
8
+ export interface SyncFlags {
9
+ /** `--every <minutes>`: keep running, a round every this many minutes, mounts included. */
10
+ every?: number;
11
+ }
12
+ export interface SyncData {
13
+ /** Which kind of forge credential the fetch used; never the credential. */
14
+ credential: CredentialKind | null;
15
+ /** The canonical sync, reported as `ctxr land` reports it; null when another landing held the lock. */
16
+ canonical_sync: FastForwardOutcome | null;
17
+ /** `--every` only: the minutes between rounds. */
18
+ every_minutes?: number;
19
+ /** `--every` only: the first round's mount refresh, as `ctxr shared-stores sync` reports it. */
20
+ mounts?: sharedStoresSyncCommand.MountSyncResult[];
21
+ }
22
+ export interface RoundReport {
23
+ /** True when the round failed: the fetch, a mount, or the configuration could not be read. */
24
+ failed: boolean;
25
+ lines: string[];
26
+ canonical: FastForwardOutcome | null;
27
+ credential: CredentialKind | null;
28
+ mounts: sharedStoresSyncCommand.MountSyncResult[];
29
+ }
30
+ /**
31
+ * One round of `ctxr sync --every`: the canonical sync, then the mounts as
32
+ * `ctxr shared-stores sync` refreshes them. The configuration is read again
33
+ * each round, so a mount declared after the loop started is cloned on the
34
+ * next round.
35
+ */
36
+ export declare function syncRound(env: RunEnv, root: string): Promise<RoundReport>;
37
+ export interface SyncLoop {
38
+ /** Resolves once the round in progress, if any, has ended; no round starts after. */
39
+ stop(): Promise<void>;
40
+ }
41
+ /**
42
+ * write-lifecycle spec ("The canonical-clone sync can keep running, mounts
43
+ * included"): a round every `intervalMs` after the previous round ended, so
44
+ * two rounds never overlap. Each round's report goes to `write`; a failed
45
+ * round is reported and the next one still runs. The pending timer keeps the
46
+ * process alive, so the loop runs until the process is stopped.
47
+ */
48
+ export declare function startSyncLoop(env: RunEnv, root: string, intervalMs: number, write: (line: string) => void, firstDelayMs?: number): SyncLoop;
49
+ export declare function execute(callerEnv: RunEnv, store: Store, flags?: SyncFlags): Promise<CommandOutcome<SyncData>>;
50
+ //# sourceMappingURL=sync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAI7C,OAAO,EAAgC,KAAK,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACjG,OAAO,EAAsB,KAAK,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAI1F,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,uBAAuB,MAAM,yBAAyB,CAAC;AAEnE,eAAO,MAAM,QAAQ,EAAE,eAAuC,CAAC;AAE/D,MAAM,WAAW,SAAS;IACxB,2FAA2F;IAC3F,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,QAAQ;IACvB,2EAA2E;IAC3E,UAAU,EAAE,cAAc,GAAG,IAAI,CAAC;IAClC,uGAAuG;IACvG,cAAc,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC1C,kDAAkD;IAClD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gGAAgG;IAChG,MAAM,CAAC,EAAE,uBAAuB,CAAC,eAAe,EAAE,CAAC;CACpD;AA0ED,MAAM,WAAW,WAAW;IAC1B,8FAA8F;IAC9F,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACrC,UAAU,EAAE,cAAc,GAAG,IAAI,CAAC;IAClC,MAAM,EAAE,uBAAuB,CAAC,eAAe,EAAE,CAAC;CACnD;AAED;;;;;GAKG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAoC/E;AAED,MAAM,WAAW,QAAQ;IACvB,qFAAqF;IACrF,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EAAE,YAAY,SAAa,GAAG,QAAQ,CAgC/I;AAiBD,wBAAsB,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAE,SAAc,GAAG,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAMvH"}