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
@@ -0,0 +1,77 @@
1
+ import { configStamp } from '../browse/memo.js';
2
+ import { scopesFor } from '../mcp/members.js';
3
+ import { CLI_VERSION } from '../../version.js';
4
+ import { buildPlugins, fillPluginTemplate, renderedCommit, storeNameFor } from './build.js';
5
+ /**
6
+ * serve-the-session-lifecycle-to-chat-apps D7 (remote-access spec, *Members
7
+ * download the store's plugins from the server*): `GET /plugin/` names the two
8
+ * downloads and how to install each, and `GET /plugin/<name>-<app>.zip` is that
9
+ * archive, built in memory by the builder `ctxr plugin build` uses, from the
10
+ * configuration the server last loaded.
11
+ *
12
+ * The routes exist only while the MCP surface is configured, and every one
13
+ * needs the verified identity assertion the approval routes need, so they are
14
+ * not among the paths an access proxy lets through without a login. A
15
+ * verified person the `mcp` block does not admit is refused as sign-in
16
+ * refuses them: the plugin would connect them to nothing.
17
+ */
18
+ export const PLUGIN_ROUTE = '/plugin/';
19
+ export function isPluginPath(pathname) {
20
+ return pathname === '/plugin' || pathname.startsWith(PLUGIN_ROUTE);
21
+ }
22
+ const text = (status, message) => ({ status, contentType: 'text/plain; charset=utf-8', body: `${message}\n`, headers: { 'Cache-Control': 'no-store' } });
23
+ export class PluginDownloads {
24
+ git;
25
+ /** The last bundle built, keyed by the commit and the configuration it was built from. */
26
+ cached = null;
27
+ storeName;
28
+ constructor(git) {
29
+ this.git = git;
30
+ }
31
+ async bundleFor(store) {
32
+ const commit = await renderedCommit(this.git, store.root);
33
+ const key = `${commit ?? 'none'}:${configStamp(store.config)}`;
34
+ if (this.cached?.key === key)
35
+ return this.cached.bundle;
36
+ this.storeName ??= storeNameFor(this.git, store.root);
37
+ const bundle = buildPlugins({ config: store.config, storeName: await this.storeName, cliVersion: CLI_VERSION, commit });
38
+ this.cached = { key, bundle };
39
+ return bundle;
40
+ }
41
+ async handle(store, approval, approvalError, req, pathname) {
42
+ // Without the block these paths are no different from any unknown path.
43
+ if (store.config.mcp === undefined)
44
+ return text(404, 'not found');
45
+ if (approval === null)
46
+ return approvalError === null ? text(404, 'not found') : text(503, `the plugin downloads are unavailable: ${approvalError}`);
47
+ const verified = await approval.verifier.verify(req.headers[approval.approval.identity.header.toLowerCase()]);
48
+ if (!verified.ok)
49
+ return text(401, 'a verified identity assertion is required');
50
+ if (scopesFor(verified.email, store.config.mcp).length === 0)
51
+ return text(403, `${verified.email} may not connect apps to this store. Ask whoever runs it to add you.`);
52
+ const bundle = await this.bundleFor(store);
53
+ if (pathname === '/plugin' || pathname === PLUGIN_ROUTE) {
54
+ const [claude, chatgpt] = bundle.plugins;
55
+ const page = fillPluginTemplate('page.html', {
56
+ STORE_NAME: bundle.storeName,
57
+ MCP_URL: bundle.mcpUrl,
58
+ VERSION: bundle.version,
59
+ CLAUDE_ARCHIVE: claude.archiveName,
60
+ CLAUDE_HREF: `${PLUGIN_ROUTE}${encodeURIComponent(claude.archiveName)}`,
61
+ CHATGPT_ARCHIVE: chatgpt.archiveName,
62
+ CHATGPT_HREF: `${PLUGIN_ROUTE}${encodeURIComponent(chatgpt.archiveName)}`,
63
+ });
64
+ return { status: 200, contentType: 'text/html; charset=utf-8', body: page, headers: { 'Cache-Control': 'no-store' } };
65
+ }
66
+ const plugin = bundle.plugins.find((p) => pathname === `${PLUGIN_ROUTE}${p.archiveName}`);
67
+ if (plugin === undefined)
68
+ return text(404, 'not found');
69
+ return {
70
+ status: 200,
71
+ contentType: 'application/zip',
72
+ body: plugin.archive,
73
+ headers: { 'Content-Disposition': `attachment; filename="${plugin.archiveName}"`, 'Cache-Control': 'no-store' },
74
+ };
75
+ }
76
+ }
77
+ //# sourceMappingURL=routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../src/core/plugin/routes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * serve-the-session-lifecycle-to-chat-apps D7: the plugin archives both apps
3
+ * upload. A minimal ZIP writer over `node:zlib` rather than a dependency: the
4
+ * archive holds a few dozen small text files, and nothing here needs
5
+ * encryption, ZIP64 or streaming.
6
+ *
7
+ * Byte-stable for the same input: entries are written in path order and every
8
+ * entry carries the same fixed timestamp (1980-01-01, the format's epoch), so
9
+ * an archive built twice from one commit and configuration is the same file.
10
+ */
11
+ export interface ZipEntry {
12
+ /** Posix path inside the archive, with no leading `/`. */
13
+ path: string;
14
+ data: Buffer;
15
+ }
16
+ export declare function createZip(entries: readonly ZipEntry[]): Buffer;
17
+ //# sourceMappingURL=zip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zip.d.ts","sourceRoot":"","sources":["../../../src/core/plugin/zip.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AACH,MAAM,WAAW,QAAQ;IACvB,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAaD,wBAAgB,SAAS,CAAC,OAAO,EAAE,SAAS,QAAQ,EAAE,GAAG,MAAM,CAiE9D"}
@@ -0,0 +1,75 @@
1
+ import { crc32, deflateRawSync } from 'node:zlib';
2
+ const DOS_TIME = 0;
3
+ const DOS_DATE = (0 << 9) | (1 << 5) | 1;
4
+ /** Bit 11: the entry's name is UTF-8. */
5
+ const FLAG_UTF8 = 0x0800;
6
+ const METHOD_STORE = 0;
7
+ const METHOD_DEFLATE = 8;
8
+ const VERSION_NEEDED = 20;
9
+ /** Made by Unix (3), spec version 2.0, so the external attributes carry a file mode. */
10
+ const VERSION_MADE_BY = (3 << 8) | 20;
11
+ const FILE_MODE = 0o100644;
12
+ export function createZip(entries) {
13
+ const sorted = [...entries].sort((a, b) => (a.path < b.path ? -1 : a.path > b.path ? 1 : 0));
14
+ const locals = [];
15
+ const centrals = [];
16
+ let offset = 0;
17
+ const seen = new Set();
18
+ for (const entry of sorted) {
19
+ if (entry.path === '' || entry.path.startsWith('/') || entry.path.split('/').includes('..'))
20
+ throw new Error(`unsafe archive path: ${entry.path}`);
21
+ if (seen.has(entry.path))
22
+ throw new Error(`duplicate archive path: ${entry.path}`);
23
+ seen.add(entry.path);
24
+ const name = Buffer.from(entry.path, 'utf8');
25
+ const deflated = deflateRawSync(entry.data, { level: 9 });
26
+ const method = deflated.length < entry.data.length ? METHOD_DEFLATE : METHOD_STORE;
27
+ const body = method === METHOD_DEFLATE ? deflated : entry.data;
28
+ const crc = crc32(entry.data);
29
+ const local = Buffer.alloc(30);
30
+ local.writeUInt32LE(0x04034b50, 0);
31
+ local.writeUInt16LE(VERSION_NEEDED, 4);
32
+ local.writeUInt16LE(FLAG_UTF8, 6);
33
+ local.writeUInt16LE(method, 8);
34
+ local.writeUInt16LE(DOS_TIME, 10);
35
+ local.writeUInt16LE(DOS_DATE, 12);
36
+ local.writeUInt32LE(crc, 14);
37
+ local.writeUInt32LE(body.length, 18);
38
+ local.writeUInt32LE(entry.data.length, 22);
39
+ local.writeUInt16LE(name.length, 26);
40
+ local.writeUInt16LE(0, 28);
41
+ locals.push(local, name, body);
42
+ const central = Buffer.alloc(46);
43
+ central.writeUInt32LE(0x02014b50, 0);
44
+ central.writeUInt16LE(VERSION_MADE_BY, 4);
45
+ central.writeUInt16LE(VERSION_NEEDED, 6);
46
+ central.writeUInt16LE(FLAG_UTF8, 8);
47
+ central.writeUInt16LE(method, 10);
48
+ central.writeUInt16LE(DOS_TIME, 12);
49
+ central.writeUInt16LE(DOS_DATE, 14);
50
+ central.writeUInt32LE(crc, 16);
51
+ central.writeUInt32LE(body.length, 20);
52
+ central.writeUInt32LE(entry.data.length, 24);
53
+ central.writeUInt16LE(name.length, 28);
54
+ central.writeUInt16LE(0, 30); // extra field length
55
+ central.writeUInt16LE(0, 32); // comment length
56
+ central.writeUInt16LE(0, 34); // disk number start
57
+ central.writeUInt16LE(0, 36); // internal attributes
58
+ central.writeUInt32LE((FILE_MODE << 16) >>> 0, 38);
59
+ central.writeUInt32LE(offset, 42);
60
+ centrals.push(central, name);
61
+ offset += local.length + name.length + body.length;
62
+ }
63
+ const centralDirectory = Buffer.concat(centrals);
64
+ const end = Buffer.alloc(22);
65
+ end.writeUInt32LE(0x06054b50, 0);
66
+ end.writeUInt16LE(0, 4);
67
+ end.writeUInt16LE(0, 6);
68
+ end.writeUInt16LE(sorted.length, 8);
69
+ end.writeUInt16LE(sorted.length, 10);
70
+ end.writeUInt32LE(centralDirectory.length, 12);
71
+ end.writeUInt32LE(offset, 16);
72
+ end.writeUInt16LE(0, 20);
73
+ return Buffer.concat([...locals, centralDirectory, end]);
74
+ }
75
+ //# sourceMappingURL=zip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zip.js","sourceRoot":"","sources":["../../../src/core/plugin/zip.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import type { StoreConfig } from '../../config/schema.js';
2
+ import type { GitRunner } from '../git/exec.js';
3
+ /**
4
+ * write-lifecycle spec (*session start*): a new session worktree off a freshly
5
+ * fetched default branch, shared by `ctxr session start` and the MCP surface's
6
+ * `session_start` and `capture` (serve-the-session-lifecycle-to-chat-apps D3),
7
+ * so the two surfaces name, place and refuse a session identically. Each
8
+ * surface brings its own fetch: the CLI's plain `git fetch`, the server's
9
+ * through its forge credential.
10
+ */
11
+ export interface StartDeps {
12
+ git: GitRunner;
13
+ config: StoreConfig;
14
+ /** Fetches the default branch into `origin/<default>`; false when there is no remote or it cannot be reached. */
15
+ fetch(cwd: string): Promise<boolean>;
16
+ now(): Date;
17
+ /**
18
+ * Whether a generated branch name is already taken, when the caller can say
19
+ * (the server, whose captures can start twice in one second): a taken name
20
+ * is stepped past one second at a time. Omitted, the first name is used and
21
+ * git refuses a collision.
22
+ */
23
+ branchTaken?(branch: string): Promise<boolean>;
24
+ }
25
+ export interface StartedSession {
26
+ /** The worktree's directory name: what the other session commands take. */
27
+ name: string;
28
+ worktree: string;
29
+ branch: string;
30
+ startPoint: string;
31
+ fetched: boolean;
32
+ /** The normalized label this session was named with, or null when none was given. */
33
+ label: string | null;
34
+ }
35
+ /**
36
+ * approve-sessions-across-stores: a session joined to one in the store that
37
+ * mounts this one takes its branch and worktree name from that session, never
38
+ * from a label or the clock. Only `ctxr session start --joins` passes it; the
39
+ * MCP surface keeps no mounts.
40
+ */
41
+ export interface JoinedName {
42
+ branch: string;
43
+ worktreeName: string;
44
+ }
45
+ export declare function startSession(deps: StartDeps, storeRoot: string, label?: string, joined?: JoinedName): Promise<StartedSession>;
46
+ //# sourceMappingURL=start.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../src/core/session/start.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAIhD;;;;;;;GAOG;AACH,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,SAAS,CAAC;IACf,MAAM,EAAE,WAAW,CAAC;IACpB,iHAAiH;IACjH,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACrC,GAAG,IAAI,IAAI,CAAC;IACZ;;;;;OAKG;IACH,WAAW,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,cAAc;IAC7B,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAC;IACb,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;CACtB;AAED;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,CA0BnI"}
@@ -0,0 +1,33 @@
1
+ import path from 'node:path';
2
+ import { SessionLabelUnusableError, SessionNameExistsError, SessionWorktreeRefusedError } from '../errors.js';
3
+ import { addWorktree } from '../git/worktree.js';
4
+ import { findSessionWorktreeByLabel, generateSessionBranchName, sessionLabelSlug, worktreePathFor } from '../session.js';
5
+ export async function startSession(deps, storeRoot, label, joined) {
6
+ // Ahead of the fetch, so a label that can never work costs no network round trip and leaves nothing behind.
7
+ let labelSlug = null;
8
+ if (label !== undefined) {
9
+ labelSlug = sessionLabelSlug(label);
10
+ if (labelSlug === '')
11
+ throw new SessionLabelUnusableError(label);
12
+ // A label identifies at most one session at a time, checked against the sessions on disk (name-the-session-at-start D4).
13
+ const existing = await findSessionWorktreeByLabel(storeRoot, deps.config, labelSlug);
14
+ if (existing !== null)
15
+ throw new SessionNameExistsError(labelSlug, existing);
16
+ }
17
+ const defaultBranch = deps.config.git.default_branch;
18
+ const fetched = await deps.fetch(storeRoot);
19
+ // The local branch both with no remote at all and with a remote that lacks the branch: honest, expected states.
20
+ const startPoint = fetched ? `origin/${defaultBranch}` : defaultBranch;
21
+ let branch = joined?.branch ?? generateSessionBranchName(deps.config, deps.now(), labelSlug ?? undefined);
22
+ if (joined === undefined && deps.branchTaken !== undefined) {
23
+ for (let step = 1; step <= 60 && (await deps.branchTaken(branch)); step += 1) {
24
+ branch = generateSessionBranchName(deps.config, new Date(deps.now().getTime() + step * 1000), labelSlug ?? undefined);
25
+ }
26
+ }
27
+ const worktree = joined === undefined ? worktreePathFor({ root: storeRoot, config: deps.config }, branch) : path.join(storeRoot, deps.config.session.worktrees_path, joined.worktreeName);
28
+ const added = await addWorktree(deps.git, storeRoot, worktree, branch, startPoint, { allowFailure: true });
29
+ if (added.exitCode !== 0)
30
+ throw new SessionWorktreeRefusedError(branch, worktree, added.stderr);
31
+ return { name: path.basename(worktree), worktree, branch, startPoint, fetched, label: labelSlug };
32
+ }
33
+ //# sourceMappingURL=start.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/core/session/start.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAE9G,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AA+CzH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAe,EAAE,SAAiB,EAAE,KAAc,EAAE,MAAmB;IACxG,4GAA4G;IAC5G,IAAI,SAAS,GAAkB,IAAI,CAAC;IACpC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,SAAS,KAAK,EAAE;YAAE,MAAM,IAAI,yBAAyB,CAAC,KAAK,CAAC,CAAC;QACjE,yHAAyH;QACzH,MAAM,QAAQ,GAAG,MAAM,0BAA0B,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACrF,IAAI,QAAQ,KAAK,IAAI;YAAE,MAAM,IAAI,sBAAsB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC/E,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC;IACrD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC5C,gHAAgH;IAChH,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,UAAU,aAAa,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC;IAEvE,IAAI,MAAM,GAAG,MAAM,EAAE,MAAM,IAAI,yBAAyB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,SAAS,IAAI,SAAS,CAAC,CAAC;IAC1G,IAAI,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QAC3D,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,EAAE,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC;YAC7E,MAAM,GAAG,yBAAyB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,EAAE,SAAS,IAAI,SAAS,CAAC,CAAC;QACxH,CAAC;IACH,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;IAC1L,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3G,IAAI,KAAK,CAAC,QAAQ,KAAK,CAAC;QAAE,MAAM,IAAI,2BAA2B,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAChG,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AACpG,CAAC"}
@@ -49,6 +49,11 @@ export interface SubmitResult {
49
49
  /** The session the pull request belongs to, as its marker names it; null when the store has no `origin` to name it by. */
50
50
  session_identity: SessionIdentity | null;
51
51
  approval_url: string | null;
52
+ /**
53
+ * serve-keeps-its-clone-current D6: where the pull request's pages preview, at the address of the store that will
54
+ * publish them; null when that store declares no `serve.base_url`.
55
+ */
56
+ preview_url: string | null;
52
57
  }
53
58
  export interface SubmitDeps extends RemoteDeps {
54
59
  /** D4: the MCP surface's member identity; omitted, the clone's own identity commits. */
@@ -60,6 +65,8 @@ export interface SubmitDeps extends RemoteDeps {
60
65
  * report lists no page. The sentences are `templates/session/pages/`'s.
61
66
  */
62
67
  export declare function renderPagesSection(pages: readonly PageUrlEntry[], base: string, baseUrlDeclared: boolean): string | null;
68
+ /** The pull request's preview root at the publishing store's `serve.base_url`; null when it declares none. */
69
+ export declare function pullPreviewAddress(config: Store['config'], number: number): string | null;
63
70
  export declare function approvalAddress(config: Store['config'], name: string): string | null;
64
71
  export declare function submitSession(deps: SubmitDeps, session: SessionRef, input: SubmitInput): Promise<SubmitResult>;
65
72
  /** `--body-file`: the body read from a file, relative to `cwd`. */
@@ -1 +1 @@
1
- {"version":3,"file":"submit.d.ts","sourceRoot":"","sources":["../../../src/core/session/submit.ts"],"names":[],"mappings":"AAMA,OAAO,EAAiC,KAAK,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAElG,OAAO,EAA0F,KAAK,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAO7J,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAgB,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAA6D,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAC3H,OAAO,EAAkC,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/E;;;;;;;;;;GAUG;AACH,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,gFAAgF;IAChF,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,cAAc,CAAC;AAEzG,MAAM,WAAW,WAAW;IAC1B,sFAAsF;IACtF,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,oGAAoG;IACpG,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,SAAS,GAAG,MAAM,CAAC;IAC3B,IAAI,EAAE,WAAW,CAAC;IAClB,YAAY,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;CAC/C;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,kGAAkG;IAClG,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,WAAW,CAAC;IACnB,YAAY,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,kFAAkF;IAClF,0HAA0H;IAC1H,gBAAgB,EAAE,eAAe,GAAG,IAAI,CAAC;IACzC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,UAAW,SAAQ,UAAU;IAC5C,wFAAwF;IACxF,MAAM,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;CACzC;AA2CD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAexH;AA2BD,wBAAgB,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKpF;AAmCD,wBAAsB,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CA+GpH;AAED,mEAAmE;AACnE,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAM7E"}
1
+ {"version":3,"file":"submit.d.ts","sourceRoot":"","sources":["../../../src/core/session/submit.ts"],"names":[],"mappings":"AAMA,OAAO,EAAiC,KAAK,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAElG,OAAO,EAA0F,KAAK,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAO7J,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGzC,OAAO,EAAgB,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAA6D,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAC3H,OAAO,EAAkC,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/E;;;;;;;;;;GAUG;AACH,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,gFAAgF;IAChF,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,cAAc,CAAC;AAEzG,MAAM,WAAW,WAAW;IAC1B,sFAAsF;IACtF,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,oGAAoG;IACpG,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,SAAS,GAAG,MAAM,CAAC;IAC3B,IAAI,EAAE,WAAW,CAAC;IAClB,YAAY,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;CAC/C;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,kGAAkG;IAClG,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,WAAW,CAAC;IACnB,YAAY,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,kFAAkF;IAClF,0HAA0H;IAC1H,gBAAgB,EAAE,eAAe,GAAG,IAAI,CAAC;IACzC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B;;;OAGG;IACH,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,UAAW,SAAQ,UAAU;IAC5C,wFAAwF;IACxF,MAAM,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;CACzC;AA2CD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAexH;AA2BD,8GAA8G;AAC9G,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGzF;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKpF;AAmCD,wBAAsB,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAiHpH;AAED,mEAAmE;AACnE,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAM7E"}
@@ -13,6 +13,7 @@ import { ContextureError, SessionRefusedError } from '../errors.js';
13
13
  import { ExitCode } from '../exit-codes.js';
14
14
  import { hasRemote } from '../git/worktree.js';
15
15
  import { packagedTemplate, substituteBlock } from '../templates.js';
16
+ import { joinBaseUrl, pullPreviewRoute } from '../browse/page-url.js';
16
17
  import { commitStaged } from './commit.js';
17
18
  import { firstLines, publishSession, remoteTip, SessionRemoteError } from './remote.js';
18
19
  import { commitsAhead, rebaseInProgress } from './resolve.js';
@@ -98,6 +99,11 @@ async function sessionApprovalAddress(deps, session, identity) {
98
99
  }
99
100
  return approvalAddress(deps.config, session.name);
100
101
  }
102
+ /** The pull request's preview root at the publishing store's `serve.base_url`; null when it declares none. */
103
+ export function pullPreviewAddress(config, number) {
104
+ const baseUrl = config.serve?.base_url;
105
+ return baseUrl === undefined ? null : joinBaseUrl(baseUrl, pullPreviewRoute(number));
106
+ }
101
107
  export function approvalAddress(config, name) {
102
108
  if (config.change_approval === undefined)
103
109
  return null;
@@ -240,6 +246,8 @@ export async function submitSession(deps, session, input) {
240
246
  pull_request: { number: published.pull.number, url: published.pull.url },
241
247
  session_identity: identity,
242
248
  approval_url: await sessionApprovalAddress(deps, session, identity),
249
+ // The worktree's own configuration: the store whose repository the pull request is on publishes its pages.
250
+ preview_url: pullPreviewAddress((await openWorktreeStore(session)).config, published.pull.number),
243
251
  };
244
252
  }
245
253
  /** `--body-file`: the body read from a file, relative to `cwd`. */
@@ -1 +1 @@
1
- {"version":3,"file":"submit.js","sourceRoot":"","sources":["../../../src/core/session/submit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"submit.js","sourceRoot":"","sources":["../../../src/core/session/submit.ts"],"names":[],"mappings":"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"}
@@ -61,8 +61,26 @@ export declare const OPTIONAL_SKILLS: readonly SkillSeed[];
61
61
  /** Every owned skill this store is shipped: the full set plus the opt-in ones its config enables. */
62
62
  export declare function activeSkillSeeds(config: StoreConfig): SkillSeed[];
63
63
  export declare const SKILLS: readonly SkillSeed[];
64
- /** The owned skills, rendered against one store's configuration — what `syncShippedSkills` writes. */
65
- export declare function renderSkills(config: StoreConfig): Skill[];
64
+ /**
65
+ * serve-the-session-lifecycle-to-chat-apps D6: the owned skills a chat app's
66
+ * plugin carries, rendered from the same templates as the CLI copies. Left
67
+ * out: the skills that run local programs (upgrade, second opinion,
68
+ * Circleback), landing (a person lands from the approval page), and the
69
+ * derived-artifacts, organize-audit and publish procedures, whose steps the
70
+ * surface does not offer.
71
+ */
72
+ export declare const MCP_SKILL_FILES: readonly string[];
73
+ /** Which surface a render is for: the store's own skills copies, or the chat-app plugin's (D6). */
74
+ export type SkillTarget = 'cli' | 'mcp';
75
+ /**
76
+ * The owned skills, rendered against one store's configuration. `cli` is what
77
+ * `syncShippedSkills` writes. `mcp` is the included subset, each the CLI
78
+ * render's text unchanged under the one preamble that maps its commands and
79
+ * git steps onto the MCP surface's tools (serve-the-session-lifecycle-to-chat-apps D6).
80
+ */
81
+ export declare function renderSkills(config: StoreConfig, target?: SkillTarget): Skill[];
82
+ /** `templates/skills/mcp/_preamble.md`, rendered against the store's configuration. */
83
+ export declare function mcpPreamble(config: StoreConfig): string;
66
84
  /**
67
85
  * entry-doc-generation spec: every skill actually on disk — the contexture-
68
86
  * owned ones plus any operator-authored ones. This is what the AGENTS.md
@@ -1 +1 @@
1
- {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/core/skills.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/core/skills.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ import { scanDocsDir, SKILL_FILE_NAME } from './conventions.js';
8
8
  import { GRAPH_DOCUMENT_RELATIVE_PATH } from './graph/persist.js';
9
9
  import { writeFileAtomic } from './fs/atomic.js';
10
10
  import { packagedTemplate } from './templates.js';
11
+ import { GIT_STEP_TOOLS, SESSION_COMMAND_TOOLS, UNAVAILABLE_COMMANDS } from './mcp/tool-map.js';
11
12
  /**
12
13
  * The canonical skill bodies live as plain markdown under
13
14
  * `templates/skills/` — see `templates.ts` for why they are loaded
@@ -354,9 +355,61 @@ export const SKILLS = [
354
355
  SECOND_OPINION,
355
356
  RESEARCH,
356
357
  ];
357
- /** The owned skills, rendered against one store's configuration — what `syncShippedSkills` writes. */
358
- export function renderSkills(config) {
359
- return renderSkillSeeds(activeSkillSeeds(config), config);
358
+ /**
359
+ * serve-the-session-lifecycle-to-chat-apps D6: the owned skills a chat app's
360
+ * plugin carries, rendered from the same templates as the CLI copies. Left
361
+ * out: the skills that run local programs (upgrade, second opinion,
362
+ * Circleback), landing (a person lands from the approval page), and the
363
+ * derived-artifacts, organize-audit and publish procedures, whose steps the
364
+ * surface does not offer.
365
+ */
366
+ export const MCP_SKILL_FILES = [
367
+ CAPTURE,
368
+ INGEST_ORCHESTRATION,
369
+ PLACEMENT,
370
+ CONNECTION_FINDING,
371
+ CONNECTION_PROPOSAL,
372
+ ROLLUP,
373
+ MISSION,
374
+ SESSION_LIFECYCLE,
375
+ SUBMIT,
376
+ SESSION_CAPTURE,
377
+ RESEARCH,
378
+ ].map((seed) => seed.file);
379
+ /**
380
+ * The owned skills, rendered against one store's configuration. `cli` is what
381
+ * `syncShippedSkills` writes. `mcp` is the included subset, each the CLI
382
+ * render's text unchanged under the one preamble that maps its commands and
383
+ * git steps onto the MCP surface's tools (serve-the-session-lifecycle-to-chat-apps D6).
384
+ */
385
+ export function renderSkills(config, target = 'cli') {
386
+ const skills = renderSkillSeeds(activeSkillSeeds(config), config);
387
+ if (target === 'cli')
388
+ return skills;
389
+ const preamble = mcpPreamble(config);
390
+ return skills.filter((skill) => MCP_SKILL_FILES.includes(skill.file)).map((skill) => ({ ...skill, content: withPreamble(skill.content, preamble) }));
391
+ }
392
+ /** `templates/skills/mcp/_preamble.md`, rendered against the store's configuration. */
393
+ export function mcpPreamble(config) {
394
+ // Revision 6: the tables come from the mapping module, never from a second copy here.
395
+ const commands = [
396
+ ...Object.entries(SESSION_COMMAND_TOOLS).map(([command, tool]) => `| \`ctxr ${command}\` | \`${tool}\` |`),
397
+ ...UNAVAILABLE_COMMANDS.map((command) => `| \`ctxr ${command}\` | none |`),
398
+ ];
399
+ const gitSteps = Object.entries(GIT_STEP_TOOLS).map(([step, tool]) => `| \`${step}\` | ${tool === null ? 'none' : `\`${tool}\``} |`);
400
+ return packagedTemplate('skills/mcp', '_preamble')
401
+ .replace('__COMMAND_TABLE__', ['| Command | Tool |', '| --- | --- |', ...commands].join('\n'))
402
+ .replace('__GIT_STEP_TABLE__', ['| Git step | Tool |', '| --- | --- |', ...gitSteps].join('\n'))
403
+ .replaceAll('__WORKTREES_PATH__', config.session.worktrees_path.replace(/\/*$/, '/'));
404
+ }
405
+ /** The preamble goes below the frontmatter, which the Agent Skills format requires first, and above the CLI text. */
406
+ function withPreamble(content, preamble) {
407
+ const end = content.indexOf('\n---\n', 4);
408
+ if (!content.startsWith('---\n') || end === -1)
409
+ throw new Error('a rendered skill carries no frontmatter');
410
+ const head = content.slice(0, end + '\n---\n'.length);
411
+ const rest = content.slice(head.length).replace(/^\n/, '');
412
+ return `${head}\n${preamble}\n\n${rest}`;
360
413
  }
361
414
  function renderSkillSeeds(seeds, config) {
362
415
  return seeds.map((seed) => ({