ctxr-cli 0.17.0 → 0.19.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 (101) hide show
  1. package/README.md +12 -5
  2. package/dist/commands/init.d.ts.map +1 -1
  3. package/dist/commands/init.js +2 -1
  4. package/dist/commands/init.js.map +1 -1
  5. package/dist/commands/publish-check.d.ts +7 -0
  6. package/dist/commands/publish-check.d.ts.map +1 -1
  7. package/dist/commands/publish-check.js +8 -3
  8. package/dist/commands/publish-check.js.map +1 -1
  9. package/dist/commands/publish-new.d.ts +8 -0
  10. package/dist/commands/publish-new.d.ts.map +1 -1
  11. package/dist/commands/publish-new.js +6 -3
  12. package/dist/commands/publish-new.js.map +1 -1
  13. package/dist/commands/serve.d.ts.map +1 -1
  14. package/dist/commands/serve.js +5 -4
  15. package/dist/commands/serve.js.map +1 -1
  16. package/dist/commands/session-start.d.ts +7 -1
  17. package/dist/commands/session-start.d.ts.map +1 -1
  18. package/dist/commands/session-start.js +25 -5
  19. package/dist/commands/session-start.js.map +1 -1
  20. package/dist/commands/update.d.ts +41 -2
  21. package/dist/commands/update.d.ts.map +1 -1
  22. package/dist/commands/update.js +125 -3
  23. package/dist/commands/update.js.map +1 -1
  24. package/dist/commands/version.d.ts +6 -0
  25. package/dist/commands/version.d.ts.map +1 -1
  26. package/dist/commands/version.js +4 -1
  27. package/dist/commands/version.js.map +1 -1
  28. package/dist/config/defaults.d.ts +5 -0
  29. package/dist/config/defaults.d.ts.map +1 -1
  30. package/dist/config/defaults.js +5 -0
  31. package/dist/config/defaults.js.map +1 -1
  32. package/dist/config/load.d.ts +22 -1
  33. package/dist/config/load.d.ts.map +1 -1
  34. package/dist/config/load.js +54 -17
  35. package/dist/config/load.js.map +1 -1
  36. package/dist/config/migrations.d.ts +61 -0
  37. package/dist/config/migrations.d.ts.map +1 -0
  38. package/dist/config/migrations.js +55 -0
  39. package/dist/config/migrations.js.map +1 -0
  40. package/dist/config/schema.d.ts +14 -8
  41. package/dist/config/schema.d.ts.map +1 -1
  42. package/dist/config/schema.js +61 -8
  43. package/dist/config/schema.js.map +1 -1
  44. package/dist/core/browse/nav.d.ts.map +1 -1
  45. package/dist/core/browse/nav.js +6 -2
  46. package/dist/core/browse/nav.js.map +1 -1
  47. package/dist/core/browse/page-url.d.ts +68 -0
  48. package/dist/core/browse/page-url.d.ts.map +1 -0
  49. package/dist/core/browse/page-url.js +101 -0
  50. package/dist/core/browse/page-url.js.map +1 -0
  51. package/dist/core/env.d.ts +7 -0
  52. package/dist/core/env.d.ts.map +1 -1
  53. package/dist/core/env.js.map +1 -1
  54. package/dist/core/errors.d.ts +42 -1
  55. package/dist/core/errors.d.ts.map +1 -1
  56. package/dist/core/errors.js +79 -4
  57. package/dist/core/errors.js.map +1 -1
  58. package/dist/core/git/worktree.d.ts +10 -2
  59. package/dist/core/git/worktree.d.ts.map +1 -1
  60. package/dist/core/git/worktree.js +11 -2
  61. package/dist/core/git/worktree.js.map +1 -1
  62. package/dist/core/install-kind.d.ts +13 -0
  63. package/dist/core/install-kind.d.ts.map +1 -1
  64. package/dist/core/install-kind.js +29 -0
  65. package/dist/core/install-kind.js.map +1 -1
  66. package/dist/core/publish/filing.d.ts +5 -24
  67. package/dist/core/publish/filing.d.ts.map +1 -1
  68. package/dist/core/publish/filing.js +5 -36
  69. package/dist/core/publish/filing.js.map +1 -1
  70. package/dist/core/session.d.ts +39 -1
  71. package/dist/core/session.d.ts.map +1 -1
  72. package/dist/core/session.js +74 -2
  73. package/dist/core/session.js.map +1 -1
  74. package/dist/core/skills.d.ts +15 -4
  75. package/dist/core/skills.d.ts.map +1 -1
  76. package/dist/core/skills.js +92 -22
  77. package/dist/core/skills.js.map +1 -1
  78. package/dist/core/slug.d.ts +38 -0
  79. package/dist/core/slug.d.ts.map +1 -0
  80. package/dist/core/slug.js +50 -0
  81. package/dist/core/slug.js.map +1 -0
  82. package/dist/core/store.d.ts +15 -0
  83. package/dist/core/store.d.ts.map +1 -1
  84. package/dist/core/store.js +18 -2
  85. package/dist/core/store.js.map +1 -1
  86. package/dist/run.d.ts.map +1 -1
  87. package/dist/run.js +61 -9
  88. package/dist/run.js.map +1 -1
  89. package/dist/version.d.ts +1 -1
  90. package/dist/version.js +1 -1
  91. package/package.json +1 -1
  92. package/templates/skills/ctxr-publish.md +12 -0
  93. package/templates/skills/ctxr-second-opinion/critic-contract.md +40 -0
  94. package/templates/skills/ctxr-second-opinion/lenses.md +15 -0
  95. package/templates/skills/ctxr-second-opinion/personas/architect.md +17 -0
  96. package/templates/skills/ctxr-second-opinion/personas/pragmatist.md +17 -0
  97. package/templates/skills/ctxr-second-opinion/personas/skeptic.md +17 -0
  98. package/templates/skills/ctxr-second-opinion/run.mjs +497 -0
  99. package/templates/skills/ctxr-session-lifecycle.md +9 -0
  100. package/templates/skills/ctxr-submit.md +2 -1
  101. package/templates/skills/ctxr-upgrade.md +8 -2
@@ -6,15 +6,18 @@ import { SHIPPED_DEFAULTS } from './defaults.js';
6
6
  * note frontmatter conventions) — a monotonic integer independent of the npm
7
7
  * package version — not "what this CLI release happens to be."
8
8
  *
9
- * retire-store-migrations: contexture ships no migration mechanism, so this
10
- * number is a gate rather than a starting point. `readConfig` refuses any
11
- * store whose recorded version is not exactly this one, in either direction:
12
- * a newer store because this release cannot know its shape, an older one
13
- * because this release no longer reads that shape and offers nothing that
14
- * would bring it forward. A release that changes the store's shape bumps this
15
- * and documents the one-time fixup in its release notes.
9
+ * It is a gate. `readConfig` refuses any store whose recorded version is not
10
+ * exactly this one, in either direction — with one exception since
11
+ * migrate-stores-on-update: `ctxr update` carries an OLDER store forward
12
+ * through the migration ladder in ./migrations.ts, provided it is at or above
13
+ * the ladder's floor. A newer store is refused everywhere.
16
14
  *
17
- * It stayed at 10 through that retirement on purpose: nothing about a
15
+ * RAISING THIS NUMBER: add the step from the previous version to
16
+ * MIGRATION_STEPS in the same change, with a byte-exact fixture test of its
17
+ * own. test/unit/config-migrations.test.ts fails until the step exists; the
18
+ * fixture is the convention that keeps a step's output reviewable.
19
+ *
20
+ * It stayed at 10 through retire-store-migrations on purpose: nothing about a
18
21
  * conforming store's shape changed. What was dropped were superseded INPUT
19
22
  * spellings that no store at 10 has ever written, since `renderStoreConfig`
20
23
  * only ever emitted the current names.
@@ -94,9 +97,51 @@ const CatalogSchema = z.object({
94
97
  * no default-merging, so a required field here would break every pre-existing
95
98
  * store. `init` still writes it explicitly for a freshly generated config.
96
99
  */
100
+ /**
101
+ * An absolute `http`/`https` base URL: scheme and host only, optionally with a
102
+ * port and a path prefix. Query and fragment are refused because a base URL
103
+ * carrying either cannot be joined to a route without producing nonsense.
104
+ */
105
+ function isAbsoluteHttpBase(value) {
106
+ let parsed;
107
+ try {
108
+ parsed = new URL(value);
109
+ }
110
+ catch {
111
+ return false;
112
+ }
113
+ return (parsed.protocol === 'http:' || parsed.protocol === 'https:') && parsed.search === '' && parsed.hash === '';
114
+ }
97
115
  const PublishSchema = z.object({
98
116
  path: z.string().min(1).default(SHIPPED_DEFAULTS.publish.path),
99
117
  });
118
+ /**
119
+ * publish-names-where-the-page-is-served (D6): the base URL at which this
120
+ * store's browsing surface is reachable, so a command that names a page can
121
+ * name a URL rather than a bare route.
122
+ *
123
+ * A full base URL rather than a host name: a host alone forces the tool to
124
+ * guess `http` against `https`, and cannot carry a port or the path prefix a
125
+ * store behind a reverse proxy is served under. Validated here so a typo fails
126
+ * at config load, where every other malformed value fails, rather than at the
127
+ * point some command tries to print it.
128
+ *
129
+ * `local-browsing-surface` D6 declined a `serve.port` key because an
130
+ * invocation-time choice with no store-specific default does not belong in the
131
+ * config. That test still stands and a port still fails it; an origin passes
132
+ * it — the address a store's pages are published at is a durable fact about
133
+ * that store, unknowable to the tool, and read by `publish new` and
134
+ * `publish check` rather than by any flag-bearing invocation.
135
+ */
136
+ const ServeSchema = z.object({
137
+ base_url: z
138
+ .string()
139
+ .min(1)
140
+ .refine(isAbsoluteHttpBase, {
141
+ message: 'must be an absolute http(s) base URL with no query or fragment, e.g. "https://ctx.example.com" or "https://example.com/ctx/"',
142
+ })
143
+ .optional(),
144
+ });
100
145
  /**
101
146
  * harness-portability spec (vendored-craft-skills): which vendored
102
147
  * third-party skills a store wants, defaulting to the shipped set so a
@@ -302,6 +347,14 @@ export const StoreConfigSchema = z
302
347
  write_lifecycle: WriteLifecycleSchema.prefault({}),
303
348
  catalog: CatalogSchema.prefault({}),
304
349
  publish: PublishSchema.prefault({}),
350
+ // `.optional()`, not `.prefault({})` like every block above it (D7):
351
+ // `withoutShippedDefaults` keeps any key absent from `SHIPPED_DEFAULTS`
352
+ // verbatim, so a prefaulted block would resolve to `serve: {}` for every
353
+ // store and `ctxr init` would start writing an empty `serve:` block into
354
+ // every new config — against the requirement that a written configuration
355
+ // records only the store's own decisions. Absent, it stays absent through
356
+ // parse, render and reparse.
357
+ serve: ServeSchema.optional(),
305
358
  templates: TemplatesSchema.prefault({}),
306
359
  skills: SkillsSchema.prefault({}),
307
360
  update_check: UpdateCheckSchema.prefault({}),
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"nav.d.ts","sourceRoot":"","sources":["../../../src/core/browse/nav.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkD,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAqK9F;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAMnD;AAED,6FAA6F;AAC7F,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAUzD"}
1
+ {"version":3,"file":"nav.d.ts","sourceRoot":"","sources":["../../../src/core/browse/nav.ts"],"names":[],"mappings":"AAGA,OAAO,EAAkD,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAwK9F;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAMnD;AAED,6FAA6F;AAC7F,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAUzD"}
@@ -1,4 +1,5 @@
1
1
  import { titleFor } from '../catalog/model.js';
2
+ import { previewRoute, publishRoute } from './page-url.js';
2
3
  import { escapeHtml } from './render.js';
3
4
  import { previewPages, publishPages, PUBLISH_INDEX_FILE } from './routes.js';
4
5
  import { buildPathTree } from './tree.js';
@@ -100,7 +101,7 @@ function renderAreaContent(table, area) {
100
101
  const tree = buildPathTree(pages,
101
102
  // serve-page-names-theme-and-nav-toggle D1: a page's declared name, falling back to its
102
103
  // directory segment — the same "one answer to what this is called" principle D6 gives notes.
103
- (page) => table.publishTitles.get(page) ?? lastSegment(page), (page) => `/publish/${encodeURI(page)}/${PUBLISH_INDEX_FILE}`, groupLabelFor(table));
104
+ (page) => table.publishTitles.get(page) ?? lastSegment(page), (page) => publishRoute(`${page}/${PUBLISH_INDEX_FILE}`), groupLabelFor(table));
104
105
  return renderTree(tree, 0);
105
106
  }
106
107
  case 'preview': {
@@ -116,7 +117,10 @@ function renderAreaContent(table, area) {
116
117
  (treePath) => {
117
118
  const entry = byPath.get(treePath);
118
119
  return table.previews.get(entry.worktree)?.titles.get(entry.page) ?? lastSegment(entry.page);
119
- }, (treePath) => `/preview/${encodeURI(treePath)}/${PUBLISH_INDEX_FILE}`, previewGroupLabelFor(table));
120
+ }, (treePath) => {
121
+ const entry = byPath.get(treePath);
122
+ return previewRoute(entry.worktree, `${entry.page}/${PUBLISH_INDEX_FILE}`);
123
+ }, previewGroupLabelFor(table));
120
124
  return renderTree(tree, 0);
121
125
  }
122
126
  case 'notes': {
@@ -1 +1 @@
1
- {"version":3,"file":"nav.js","sourceRoot":"","sources":["../../../src/core/browse/nav.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nav.js","sourceRoot":"","sources":["../../../src/core/browse/nav.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ import type { Store } from '../store.js';
2
+ /**
3
+ * The two addresses the browsing surface answers for a published page, spelled
4
+ * once. `serve.ts` tests and slices these prefixes, `nav.ts` builds hrefs from
5
+ * them, and the publish commands report them — three readers, one spelling,
6
+ * pinned by `single-source-literals`.
7
+ */
8
+ export declare const PUBLISH_ROUTE_PREFIX = "/publish/";
9
+ export declare const PREVIEW_ROUTE_PREFIX = "/preview/";
10
+ /**
11
+ * `encodeURI`, never `encodeURIComponent`: a page path carries `/` separators
12
+ * that must survive into the URL. The round trip is exact because `serve.ts`
13
+ * decodes the whole pathname once with `decodeURIComponent` before its lookup,
14
+ * recovering the raw key `walkFiles` produced.
15
+ */
16
+ export declare function publishRoute(filePath: string): string;
17
+ /** `worktree` is the session worktree's directory name — the key `buildPreviews` inserts. */
18
+ export declare function previewRoute(worktree: string, filePath: string): string;
19
+ export interface ServedAtRoute {
20
+ /** Server-relative, always leading "/", always naming a file the route answers for. */
21
+ route: string;
22
+ /** `route` against the store's declared base URL; null when the store declares none. */
23
+ url: string | null;
24
+ }
25
+ export interface ServedAt extends ServedAtRoute {
26
+ area: 'preview' | 'publish';
27
+ /** The session worktree directory keying a preview address; null under the publish area. */
28
+ worktree: string | null;
29
+ /**
30
+ * Where the same page is served once the worktree's work lands. Null under the
31
+ * publish area, which is already that address — a page in the store's own
32
+ * checkout has no later one.
33
+ */
34
+ after_landing: ServedAtRoute | null;
35
+ }
36
+ /**
37
+ * The address the browsing surface answers for one file of a published page.
38
+ *
39
+ * Null when the file is not under the store's configured publish path. That is
40
+ * the same verdict `checkPageLocation` (`src/commands/publish-check.ts`) already
41
+ * reaches for the same input, by the same prefix test: such a file is not a
42
+ * published page, so it has no filing to judge and no address to report. The
43
+ * two must keep agreeing about what "under the publish path" means.
44
+ *
45
+ * The preview branch asks `isSessionWorktreePath` about the resolved store root
46
+ * — root resolution has already resolved it *to* the worktree when the caller
47
+ * is standing in one — and takes the worktree's directory name from
48
+ * `path.basename`. That is precisely the key `buildPreviews`
49
+ * (`src/core/browse/routes.ts`) inserts, because it enumerates the directories
50
+ * under the configured worktrees path and keys by their names verbatim. No
51
+ * second enumeration, and no git subprocess.
52
+ *
53
+ * `storeRelativeFilePath` is "/"-separated, as both callers already produce.
54
+ */
55
+ export declare function pageServedAt(store: Store, storeRelativeFilePath: string): ServedAt | null;
56
+ /**
57
+ * The clause both publish commands append to their one-line summary (D3).
58
+ *
59
+ * Leading space, so a caller writes `${summary}${servedAtSentence(served)}`
60
+ * and an unaddressable page simply adds nothing. The verb carries the
61
+ * distinction the caller was previously left to guess: a page in the store's
62
+ * own checkout is `Served at`, a page still in a session worktree is
63
+ * `Preview at` and names where it goes once it lands. When the store declares
64
+ * a base URL the absolute form replaces the route rather than joining it —
65
+ * two addresses for one page would be the same guessing one level down.
66
+ */
67
+ export declare function servedAtSentence(served: ServedAt | null): string;
68
+ //# sourceMappingURL=page-url.d.ts.map
@@ -0,0 +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;AAEhD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAErD;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;AAqBD;;;;;;;;;;;;;;;;;;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"}
@@ -0,0 +1,101 @@
1
+ import path from 'node:path';
2
+ import { isSessionWorktreePath } from '../session.js';
3
+ /**
4
+ * The two addresses the browsing surface answers for a published page, spelled
5
+ * once. `serve.ts` tests and slices these prefixes, `nav.ts` builds hrefs from
6
+ * them, and the publish commands report them — three readers, one spelling,
7
+ * pinned by `single-source-literals`.
8
+ */
9
+ export const PUBLISH_ROUTE_PREFIX = '/publish/';
10
+ export const PREVIEW_ROUTE_PREFIX = '/preview/';
11
+ /**
12
+ * `encodeURI`, never `encodeURIComponent`: a page path carries `/` separators
13
+ * that must survive into the URL. The round trip is exact because `serve.ts`
14
+ * decodes the whole pathname once with `decodeURIComponent` before its lookup,
15
+ * recovering the raw key `walkFiles` produced.
16
+ */
17
+ export function publishRoute(filePath) {
18
+ return `${PUBLISH_ROUTE_PREFIX}${encodeURI(filePath)}`;
19
+ }
20
+ /** `worktree` is the session worktree's directory name — the key `buildPreviews` inserts. */
21
+ export function previewRoute(worktree, filePath) {
22
+ return `${PREVIEW_ROUTE_PREFIX}${encodeURI(`${worktree}/${filePath}`)}`;
23
+ }
24
+ /**
25
+ * Join a declared base URL to a server-relative route.
26
+ *
27
+ * String concatenation, deliberately, and NOT `new URL(route, base)`:
28
+ * `new URL('/publish/x', 'https://example.com/ctx/')` silently discards the
29
+ * `/ctx` prefix, so a store served under a subpath would be handed a confident
30
+ * wrong URL with no error. Stripping the base's trailing slashes and appending
31
+ * a route that always begins with "/" preserves whatever path the base carries.
32
+ */
33
+ function joinBaseUrl(baseUrl, route) {
34
+ if (baseUrl === undefined)
35
+ return null;
36
+ return `${baseUrl.replace(/\/+$/, '')}${route}`;
37
+ }
38
+ /** The configured publish path as a "/"-separated prefix with no trailing slash. */
39
+ function publishPrefixOf(publishPath) {
40
+ return publishPath.split(path.sep).join('/').replace(/\/+$/, '');
41
+ }
42
+ /**
43
+ * The address the browsing surface answers for one file of a published page.
44
+ *
45
+ * Null when the file is not under the store's configured publish path. That is
46
+ * the same verdict `checkPageLocation` (`src/commands/publish-check.ts`) already
47
+ * reaches for the same input, by the same prefix test: such a file is not a
48
+ * published page, so it has no filing to judge and no address to report. The
49
+ * two must keep agreeing about what "under the publish path" means.
50
+ *
51
+ * The preview branch asks `isSessionWorktreePath` about the resolved store root
52
+ * — root resolution has already resolved it *to* the worktree when the caller
53
+ * is standing in one — and takes the worktree's directory name from
54
+ * `path.basename`. That is precisely the key `buildPreviews`
55
+ * (`src/core/browse/routes.ts`) inserts, because it enumerates the directories
56
+ * under the configured worktrees path and keys by their names verbatim. No
57
+ * second enumeration, and no git subprocess.
58
+ *
59
+ * `storeRelativeFilePath` is "/"-separated, as both callers already produce.
60
+ */
61
+ export function pageServedAt(store, storeRelativeFilePath) {
62
+ const prefix = publishPrefixOf(store.config.publish.path);
63
+ if (!storeRelativeFilePath.startsWith(`${prefix}/`))
64
+ return null;
65
+ const pagePath = storeRelativeFilePath.slice(prefix.length + 1);
66
+ const baseUrl = store.config.serve?.base_url;
67
+ const published = publishRoute(pagePath);
68
+ if (!isSessionWorktreePath(store.config, store.root)) {
69
+ return { area: 'publish', route: published, url: joinBaseUrl(baseUrl, published), worktree: null, after_landing: null };
70
+ }
71
+ const worktree = path.basename(store.root);
72
+ const preview = previewRoute(worktree, pagePath);
73
+ return {
74
+ area: 'preview',
75
+ route: preview,
76
+ url: joinBaseUrl(baseUrl, preview),
77
+ worktree,
78
+ after_landing: { route: published, url: joinBaseUrl(baseUrl, published) },
79
+ };
80
+ }
81
+ /**
82
+ * The clause both publish commands append to their one-line summary (D3).
83
+ *
84
+ * Leading space, so a caller writes `${summary}${servedAtSentence(served)}`
85
+ * and an unaddressable page simply adds nothing. The verb carries the
86
+ * distinction the caller was previously left to guess: a page in the store's
87
+ * own checkout is `Served at`, a page still in a session worktree is
88
+ * `Preview at` and names where it goes once it lands. When the store declares
89
+ * a base URL the absolute form replaces the route rather than joining it —
90
+ * two addresses for one page would be the same guessing one level down.
91
+ */
92
+ export function servedAtSentence(served) {
93
+ if (served === null)
94
+ return '';
95
+ const here = served.url ?? served.route;
96
+ if (served.after_landing === null)
97
+ return ` Served at ${here}.`;
98
+ const landed = served.after_landing.url ?? served.after_landing.route;
99
+ return ` Preview at ${here} (at ${landed} once it lands).`;
100
+ }
101
+ //# sourceMappingURL=page-url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page-url.js","sourceRoot":"","sources":["../../../src/core/browse/page-url.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { MigrationStep } from '../config/migrations.js';
1
2
  import type { Prompter } from '../prompt/prompter.js';
2
3
  import type { GitRunner } from './git/exec.js';
3
4
  import type { RegistryClient } from './registry.js';
@@ -32,6 +33,12 @@ export interface RunEnv {
32
33
  /** The release registry. The only network-capable port; see core/registry.ts. */
33
34
  registry: RegistryClient;
34
35
  now(): Date;
36
+ /**
37
+ * The schema migration ladder. Absent in production — `realEnv()` never sets
38
+ * it, so every command measures against the shipped ladder. Tests set it to
39
+ * exercise a migration before any real step exists (migrate-stores-on-update).
40
+ */
41
+ migrationSteps?: readonly MigrationStep[];
35
42
  }
36
43
  /**
37
44
  * interactive ⇔ stdin.isTTY && stdout.isTTY && !noInput.
@@ -1 +1 @@
1
- {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/core/env.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAIpD;;;;;;GAMG;AACH,MAAM,WAAW,EAAE;IACjB,KAAK,EAAE,MAAM,CAAC,cAAc,GAAG;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACnD,MAAM,EAAE,MAAM,CAAC,cAAc,GAAG;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACpD,MAAM,EAAE,MAAM,CAAC,cAAc,GAAG;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CACrD;AAED,MAAM,WAAW,MAAM;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,kFAAkF;IAClF,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;IAClD,EAAE,EAAE,EAAE,CAAC;IACP,0FAA0F;IAC1F,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC;IACnB,GAAG,EAAE,SAAS,CAAC;IACf,iFAAiF;IACjF,QAAQ,EAAE,cAAc,CAAC;IACzB,GAAG,IAAI,IAAI,CAAC;CACb;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAElD;AAED,wBAAgB,OAAO,IAAI,MAAM,CAYhC"}
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/core/env.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAIpD;;;;;;GAMG;AACH,MAAM,WAAW,EAAE;IACjB,KAAK,EAAE,MAAM,CAAC,cAAc,GAAG;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACnD,MAAM,EAAE,MAAM,CAAC,cAAc,GAAG;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACpD,MAAM,EAAE,MAAM,CAAC,cAAc,GAAG;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CACrD;AAED,MAAM,WAAW,MAAM;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,kFAAkF;IAClF,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;IAClD,EAAE,EAAE,EAAE,CAAC;IACP,0FAA0F;IAC1F,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC;IACnB,GAAG,EAAE,SAAS,CAAC;IACf,iFAAiF;IACjF,QAAQ,EAAE,cAAc,CAAC;IACzB,GAAG,IAAI,IAAI,CAAC;IACZ;;;;OAIG;IACH,cAAc,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;CAC3C;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAElD;AAED,wBAAgB,OAAO,IAAI,MAAM,CAYhC"}
@@ -1 +1 @@
1
- {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/core/env.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AA8BxE;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,OAAO,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;AACrF,CAAC;AAED,MAAM,UAAU,OAAO;IACrB,OAAO;QACL,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;QAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE;QAC5E,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,sBAAsB,EAAE;QAClC,GAAG,EAAE,uBAAuB,EAAE;QAC9B,QAAQ,EAAE,yBAAyB,EAAE;QACrC,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE;KACtB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/core/env.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAoCxE;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,OAAO,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;AACrF,CAAC;AAED,MAAM,UAAU,OAAO;IACrB,OAAO;QACL,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;QAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE;QAC5E,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,sBAAsB,EAAE;QAClC,GAAG,EAAE,uBAAuB,EAAE;QAC9B,QAAQ,EAAE,yBAAyB,EAAE;QACrC,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE;KACtB,CAAC;AACJ,CAAC"}
@@ -34,8 +34,23 @@ export declare class NotAGitRepositoryError extends ContextureError {
34
34
  export declare class SchemaVersionNewerError extends ContextureError {
35
35
  constructor(storeVersion: number, supportedVersion: number);
36
36
  }
37
+ /**
38
+ * migrate-stores-on-update: one error for every older store, so the code a
39
+ * caller matches on stays `config.schema_version.behind` whichever way the
40
+ * remedy points. What varies is the remedy, carried in the message and in
41
+ * `details.remedy`:
42
+ *
43
+ * - `update` the store is at or above the migration floor, so `ctxr update`
44
+ * carries it forward. Raised by every command except update.
45
+ * - `by_hand` the store is below the floor; nothing in this release can
46
+ * bring it forward. Raised by every command, update included.
47
+ */
37
48
  export declare class SchemaVersionBehindError extends ContextureError {
38
- constructor(storeVersion: number, supportedVersion: number);
49
+ constructor(storeVersion: number, supportedVersion: number, floor: number);
50
+ }
51
+ /** A schema migration step failed, or its result did not validate; nothing was written. */
52
+ export declare class SchemaMigrationFailedError extends ContextureError {
53
+ constructor(configPath: string, detail: string);
39
54
  }
40
55
  export declare class SchemaVersionMissingError extends ContextureError {
41
56
  constructor(configPath: string);
@@ -174,4 +189,30 @@ export declare class PublishSlugExistsError extends ContextureError {
174
189
  export declare class PublishPageNotFoundError extends ContextureError {
175
190
  constructor(relativePath: string);
176
191
  }
192
+ /**
193
+ * write-lifecycle spec: a session label that normalizes to nothing is refused
194
+ * rather than dropped — dropping it would hand back a session named nothing like
195
+ * what the caller asked for, with no indication that anything happened.
196
+ */
197
+ export declare class SessionLabelUnusableError extends ContextureError {
198
+ constructor(label: string);
199
+ }
200
+ /**
201
+ * write-lifecycle spec: a label that is already taken is refused, never adjusted
202
+ * to fit (name-the-session-at-start design.md D4). Names the worktree as well as
203
+ * the branch, because returning to the earlier session is the likely next step.
204
+ */
205
+ export declare class SessionNameExistsError extends ContextureError {
206
+ constructor(label: string, worktreePath: string);
207
+ }
208
+ /**
209
+ * write-lifecycle spec: git refusing to create the worktree is reported as the
210
+ * usage error it almost always is — the name it was handed — rather than as an
211
+ * internal error, which is what an uncaught exec failure would produce. git's own
212
+ * stderr rides in details rather than in the message, so the sentence stays about
213
+ * what contexture asked for.
214
+ */
215
+ export declare class SessionWorktreeRefusedError extends ContextureError {
216
+ constructor(branch: string, worktreePath: string, stderr: string);
217
+ }
177
218
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"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"}
@@ -64,16 +64,42 @@ export class SchemaVersionNewerError extends ContextureError {
64
64
  });
65
65
  }
66
66
  }
67
+ /**
68
+ * migrate-stores-on-update: one error for every older store, so the code a
69
+ * caller matches on stays `config.schema_version.behind` whichever way the
70
+ * remedy points. What varies is the remedy, carried in the message and in
71
+ * `details.remedy`:
72
+ *
73
+ * - `update` the store is at or above the migration floor, so `ctxr update`
74
+ * carries it forward. Raised by every command except update.
75
+ * - `by_hand` the store is below the floor; nothing in this release can
76
+ * bring it forward. Raised by every command, update included.
77
+ */
67
78
  export class SchemaVersionBehindError extends ContextureError {
68
- constructor(storeVersion, supportedVersion) {
79
+ constructor(storeVersion, supportedVersion, floor) {
80
+ const withinFloor = storeVersion >= floor;
69
81
  super(ExitCode.Usage, {
70
82
  code: 'config.schema_version.behind',
71
83
  severity: 'error',
72
84
  message: `This store's schema_version (${storeVersion}) is older than the ` +
73
85
  `version this contexture release supports (${supportedVersion}). ` +
74
- 'contexture ships no migration: bring the store forward by hand, ' +
75
- "following the fixup in the release notes for the version that raised it.",
76
- details: { storeVersion, supportedVersion },
86
+ (withinFloor
87
+ ? 'Run `ctxr update` to bring it forward, or `ctxr update --worktree` to do it on a branch of its own.'
88
+ : `This release can only bring forward a store recorded at ${floor} or later, so it cannot ` +
89
+ 'migrate this one: bring the store forward by hand, following the fixup in the release notes ' +
90
+ 'for each version that raised it.'),
91
+ details: { storeVersion, supportedVersion, floor, remedy: withinFloor ? 'update' : 'by_hand' },
92
+ });
93
+ }
94
+ }
95
+ /** A schema migration step failed, or its result did not validate; nothing was written. */
96
+ export class SchemaMigrationFailedError extends ContextureError {
97
+ constructor(configPath, detail) {
98
+ super(ExitCode.Usage, {
99
+ code: 'config.schema_version.migration_failed',
100
+ severity: 'error',
101
+ message: `Could not migrate "${configPath}", and it was left unchanged: ${detail}`,
102
+ subject: configPath,
77
103
  });
78
104
  }
79
105
  }
@@ -443,4 +469,53 @@ export class PublishPageNotFoundError extends ContextureError {
443
469
  });
444
470
  }
445
471
  }
472
+ /**
473
+ * write-lifecycle spec: a session label that normalizes to nothing is refused
474
+ * rather than dropped — dropping it would hand back a session named nothing like
475
+ * what the caller asked for, with no indication that anything happened.
476
+ */
477
+ export class SessionLabelUnusableError extends ContextureError {
478
+ constructor(label) {
479
+ super(ExitCode.Usage, {
480
+ code: 'session.label_unusable',
481
+ severity: 'error',
482
+ message: `"${label}" has no letters or digits to name a session with — give a label like "ctx-a", or none at all.`,
483
+ subject: label,
484
+ });
485
+ }
486
+ }
487
+ /**
488
+ * write-lifecycle spec: a label that is already taken is refused, never adjusted
489
+ * to fit (name-the-session-at-start design.md D4). Names the worktree as well as
490
+ * the branch, because returning to the earlier session is the likely next step.
491
+ */
492
+ export class SessionNameExistsError extends ContextureError {
493
+ constructor(label, worktreePath) {
494
+ super(ExitCode.Usage, {
495
+ code: 'session.name_exists',
496
+ severity: 'error',
497
+ message: `A session labelled "${label}" already exists at "${worktreePath}" — work there, or start this one under another label.`,
498
+ subject: label,
499
+ details: { worktree: worktreePath },
500
+ });
501
+ }
502
+ }
503
+ /**
504
+ * write-lifecycle spec: git refusing to create the worktree is reported as the
505
+ * usage error it almost always is — the name it was handed — rather than as an
506
+ * internal error, which is what an uncaught exec failure would produce. git's own
507
+ * stderr rides in details rather than in the message, so the sentence stays about
508
+ * what contexture asked for.
509
+ */
510
+ export class SessionWorktreeRefusedError extends ContextureError {
511
+ constructor(branch, worktreePath, stderr) {
512
+ super(ExitCode.Usage, {
513
+ code: 'session.worktree_refused',
514
+ severity: 'error',
515
+ message: `git refused to create the session worktree at "${worktreePath}" on branch "${branch}".`,
516
+ subject: worktreePath,
517
+ details: { branch, worktree: worktreePath, git_stderr: stderr.trim() },
518
+ });
519
+ }
520
+ }
446
521
  //# sourceMappingURL=errors.js.map