@substrat-run/cli 0.46.0 → 0.47.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.
package/dist/bump.d.ts CHANGED
@@ -1,53 +1,3 @@
1
- /**
2
- * The semver bump a vertical's change calls for, computed from its artifacts of record (#2364).
3
- *
4
- * Choosing a bump is a judgement an agent makes with confidence and gets wrong, and a breaking
5
- * change marked `patch` looks exactly like a green release. A vertical already checks in every
6
- * fact the judgement needs — `model.json` (`lint:model`), `openapi.json` (`lint:api`) and
7
- * `PERMISSIONS.md` (`lint:permissions`), each held to the source by a `--check` re-emit — so the
8
- * bump is read off the diff of those three files instead of asked for.
9
- *
10
- * The rules, one level per change, the bump being the highest. An INPUT is what a caller sends
11
- * (parameters, request bodies); an OUTPUT is what a caller reads (responses, stored rows in
12
- * `model.json`, event payloads).
13
- *
14
- * - **major**: something removed or narrowed. An operation, field, entity, state, transition,
15
- * response, media type, enum value, parent edge, derived handler or export; an input that
16
- * became required, tighter (`minLength` up, `maxLength` down, …), closed to unnamed
17
- * properties or `readOnly`; an output that may now be omitted, looser, or `writeOnly`; a
18
- * type, key, table, initial state or `operationId` changed; trash terms changed.
19
- * - **minor**: something added. An operation, field, entity, state, transition, enum value,
20
- * response or stamp; an input that became optional or looser; an output that became required
21
- * or tighter; a `default` added, changed or dropped (a caller who omits the value gets other
22
- * behaviour); `readOnly`/`writeOnly` dropped, or set in the direction that does not use the
23
- * field; `erasable` gained or lost (lost is flagged). Every permission change is at least
24
- * minor and FLAGGED for the human checkpoint (CLAUDE.md, "Two human checkpoints") — a
25
- * narrowing and a widening alike, since a key gaining a role is the risk surface it exists for.
26
- * - **patch**: only what describes: the schema keywords `description`, `title`, `examples`,
27
- * `example`, `$comment`, `deprecated` and any `x-*`; an operation's `summary`, `description`,
28
- * `tags`, `externalDocs` and `deprecated`; `info`; a permission key's description.
29
- *
30
- * **What it cannot read is major.** A keyword, section or key this module does not know is
31
- * judged as a breaking change, never skipped. The CI check refuses a changeset that declares
32
- * LESS than this, so an unknown shape that read as "no change" would let a real break ship as a
33
- * patch. A false major costs a reviewed override line in the changeset; a false patch costs a
34
- * broken consumer. Teach this file the new shape instead.
35
- *
36
- * Two known limits, both stated rather than fixed:
37
- *
38
- * - **Alternatives reordered rank major.** `anyOf`/`oneOf`/`allOf` branches are compared by
39
- * position (the emitter writes them in declaration order), so a reorder with no other change
40
- * reads as every branch changing. The safe direction: a reviewed override covers it.
41
- * - **A component renamed with identical content ranks none.** `$ref`s are resolved before
42
- * comparing, so `#/components/schemas/A` → `B` is invisible, although a client generated from
43
- * `openapi.json` names its types after components. Nothing a caller sends or reads changed,
44
- * and this repo's browser client is generated from `spec/model.ts`, not from component names.
45
- *
46
- * Pure: two texts in, a classification out. The filesystem and git half is `changeset.ts`. It
47
- * reads the artifacts, never the TypeScript, which is what keeps it valid across a change of
48
- * authoring notation (`tools/model-diff.mts`). The same classifier is what `substrat changeset`
49
- * writes, what `--check` holds a hand-written changeset to, and what a status line can show.
50
- */
51
1
  export type Level = 'patch' | 'minor' | 'major';
52
2
  export type Bump = 'none' | Level;
53
3
  export type Artifact = 'model' | 'openapi' | 'permissions';
@@ -100,6 +50,22 @@ export interface PermissionSnapshot {
100
50
  keys: string[];
101
51
  terms: string[];
102
52
  }>;
53
+ /**
54
+ * Operation → the key it declares it checks, then how it narrows and who declares it (#2384).
55
+ * `undefined` when the artifact has no Operations section: an emitter that predates it.
56
+ */
57
+ operations?: Record<string, {
58
+ keys: string[];
59
+ terms: string[];
60
+ }>;
61
+ /**
62
+ * The Operations heading is present but its table is not the one the emitter writes — header
63
+ * gone or renamed, a row with the wrong number of cells, or no rows and no "none" line. What
64
+ * cannot be read is judged major, never read as every operation removed.
65
+ */
66
+ operationsUnreadable?: string;
67
+ /** Modules the section says are registered as a bare manifest, so their operations are not known. */
68
+ operationsUnknownFor?: string[];
103
69
  /** Sections this parser does not read, by heading, with their text: judged whole. */
104
70
  readonly unread: Record<string, string>;
105
71
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bump.d.ts","sourceRoot":"","sources":["../src/bump.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bump.d.ts","sourceRoot":"","sources":["../src/bump.ts"],"names":[],"mappings":"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"}
package/dist/bump.js CHANGED
@@ -48,6 +48,7 @@
48
48
  * authoring notation (`tools/model-diff.mts`). The same classifier is what `substrat changeset`
49
49
  * writes, what `--check` holds a hand-written changeset to, and what a status line can show.
50
50
  */
51
+ import { operationsTableProblem, operationsUnknownFor } from '@substrat-run/model-view';
51
52
  const ORDER = ['none', 'patch', 'minor', 'major'];
52
53
  export const rank = (b) => ORDER.indexOf(b);
53
54
  export const maxBump = (a, b) => (rank(a) >= rank(b) ? a : b);
@@ -668,7 +669,13 @@ function rowsOf(section) {
668
669
  const t = line.trim();
669
670
  if (!t.startsWith('|'))
670
671
  continue;
671
- const cells = t.replace(/^\|/, '').replace(/\|$/, '').split('|').map((c) => c.trim());
672
+ // Split on UNESCAPED pipes, and unescape the rest: a declared reason may carry `\|` (#2384),
673
+ // and model-view's reader honours the escape the same way, so the two read one row alike.
674
+ const cells = t
675
+ .replace(/^\|/, '')
676
+ .replace(/(?<!\\)\|$/, '')
677
+ .split(/(?<!\\)\|/)
678
+ .map((c) => c.trim().replace(/\\\|/g, '|'));
672
679
  if (cells.every((c) => /^:?-+:?$/.test(c)))
673
680
  continue; // the separator
674
681
  rows.push(cells);
@@ -712,6 +719,20 @@ export function parsePermissions(text) {
712
719
  snap.schedules[firstKey(cells)] = { keys: codesIn(cells[cells.length - 1] ?? ''), terms: cells.slice(0, -1) };
713
720
  }
714
721
  }
722
+ else if (/^Operations\b/.test(heading)) {
723
+ // | Operation | Key | Checked on | Declared by | — the key cell's prose ("checked in code,
724
+ // not declared") is a term, so an operation losing its declaration is still a change.
725
+ const why = operationsTableProblem(section);
726
+ if (why !== undefined) {
727
+ snap.operationsUnreadable = why;
728
+ continue;
729
+ }
730
+ const ops = {};
731
+ for (const cells of rowsOf(section))
732
+ ops[firstKey(cells)] = { keys: codesIn(cells[1] ?? ''), terms: cells.slice(1) };
733
+ snap.operations = ops;
734
+ snap.operationsUnknownFor = operationsUnknownFor(section);
735
+ }
715
736
  else if (!DERIVED_SECTIONS.some((re) => re.test(heading))) {
716
737
  snap.unread[heading] = section.slice(nl === -1 ? section.length : nl).trim();
717
738
  }
@@ -760,6 +781,40 @@ export function classifyPermissions(baseText, headText) {
760
781
  }
761
782
  }
762
783
  }
784
+ // #2384: which key each operation checks. An operation moved to another key, or checked on
785
+ // something else, is a permission change the checkpoint reads — never an unread section.
786
+ if (b.operationsUnreadable !== undefined || h.operationsUnreadable !== undefined) {
787
+ const side = h.operationsUnreadable !== undefined ? 'now' : 'at the base';
788
+ push('major', 'operations', `section cannot be read ${side} (${h.operationsUnreadable ?? b.operationsUnreadable}) — judged as breaking`, true);
789
+ }
790
+ else if (b.operations && h.operations) {
791
+ // A module whose operations stop or start being knowable: what it lets anyone do is no longer,
792
+ // or now for the first time, in the artifact — either way the checkpoint reads it.
793
+ const unknown = setDiff(b.operationsUnknownFor ?? [], h.operationsUnknownFor ?? []);
794
+ for (const m of unknown.removed)
795
+ flag(`operations of ${m}`, 'now known (it registers its operation map)');
796
+ for (const m of unknown.added)
797
+ flag(`operations of ${m}`, 'no longer known (registered as a bare manifest)');
798
+ keyed(b.operations, h.operations, {
799
+ removed: (op, o) => flag(`operation ${op}`, `removed (checked: ${o.keys.join(', ') || 'no declared key'})`),
800
+ added: (op, o) => flag(`operation ${op}`, `added (checks: ${o.keys.join(', ') || 'no declared key'})`),
801
+ both: (op, bo, ho) => {
802
+ if (canon(bo.keys, false) !== canon(ho.keys, false)) {
803
+ flag(`operation ${op}`, `now checks ${ho.keys.join(', ') || 'no declared key'} (was ${bo.keys.join(', ') || 'no declared key'})`);
804
+ }
805
+ else if (canon(bo.terms, false) !== canon(ho.terms, false)) {
806
+ flag(`operation ${op}`, 'its check changed (what it narrows to, or whether it is declared)');
807
+ }
808
+ },
809
+ });
810
+ }
811
+ else if (h.operations) {
812
+ // The base's emitter had no such section: nothing to compare, and nothing about an operation moved.
813
+ push('patch', 'operations', 'section added — the artifact now names the key each operation checks');
814
+ }
815
+ else if (b.operations) {
816
+ push('major', 'operations', 'section removed — which key each operation checks can no longer be compared', true);
817
+ }
763
818
  for (const heading of [...new Set([...Object.keys(b.unread), ...Object.keys(h.unread)])].sort()) {
764
819
  if (b.unread[heading] !== h.unread[heading]) {
765
820
  push('major', `section "${heading}"`, 'changed (not a section this classifier reads, so judged as breaking)', true);
package/dist/bump.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bump.js","sourceRoot":"","sources":["../src/bump.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bump.js","sourceRoot":"","sources":["../src/bump.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -29,7 +29,7 @@ import { printVersions } from './versions.js';
29
29
  import { checkOutboundDeclared } from './outbound-scan.js';
30
30
  import { exportBreakLines, parseReviewToken, promote } from './promote.js';
31
31
  import { setListing, requestPublish } from './listing.js';
32
- import { isReleaseSha, packedFilesOf, packStoreDriverDir, rebuildStoreDriver, rollBackStoreDriver, sourceCommitOf, rollOutStoreDriver, storeDriverRebuildLines, storeDriverStatus, storeDriverStatusLines, uploadStoreDriverRelease } from './store-driver.js';
32
+ import { isReleaseSha, packedFilesOf, packStoreDriverDir, rebuildStoreDriver, rollBackStoreDriver, skippedInstallerMarkersOf, sourceCommitOf, rollOutStoreDriver, storeDriverPackLines, storeDriverRebuildLines, storeDriverStatus, storeDriverStatusLines, uploadStoreDriverRelease } from './store-driver.js';
33
33
  import { fetchWhoami } from './whoami.js';
34
34
  import { planeFor } from './plane.js';
35
35
  import { dataLossCheckRequired, formatDataLossCheck } from './data-loss-check.js';
@@ -41,6 +41,7 @@ import { writeCiWorkflow, detectDefaultBranch, nextStepsMessage } from './init.j
41
41
  import { writeModelView } from './model.js';
42
42
  import { CannotRun, changesetCommand } from './changeset.js';
43
43
  import { syncConceptFile } from './concept.js';
44
+ import { planCommand } from './plan.js';
44
45
  import { listVerticalHostnames, bindSurfaceHostname, bindScopeHostname, unbindHostname, verifyHostname, formatHostnames, formatDnsRecords, } from './hostnames.js';
45
46
  const argv = process.argv.slice(2);
46
47
  /** `--name value` → value, else undefined. */
@@ -255,6 +256,15 @@ Usage:
255
256
  diagram per lifecycle — from model.json and
256
257
  PERMISSIONS.md. Idempotent; --check writes nothing
257
258
  and exits 1 when the file is stale
259
+ substrat plan [dir] [--base <ref>] the concept delta the design gate shows: entities
260
+ [--why <text>] [--json] added/changed/removed (Mermaid before and after),
261
+ lifecycle changes, the permission-diff table, the
262
+ spec-version impact (changeset's classifier) and
263
+ the decisions-log entry approving it would write.
264
+ Offline; --json prints the delta for an agent
265
+ substrat plan [dir] --approve <digest> record a person's approval in the Decisions log of
266
+ --by <name> --why <text> spec/concept.md, then re-sync it. Refused when the
267
+ delta is no longer the one <digest> named
258
268
  substrat init --ci github [dir] write .github/workflows/substrat-deploy.yml —
259
269
  [--branch <b>] [--path <packageDir>] [--release trunk|changesets]
260
270
  [--out <path>] [--force]
@@ -678,9 +688,12 @@ async function cmdStoreDriver() {
678
688
  console.error(line);
679
689
  process.exit(1);
680
690
  }
681
- const body = packStoreDriverDir(dir, entry, flag('commit') ?? sourceCommitOf(dir, packedFilesOf(dir)));
691
+ const files = packedFilesOf(dir);
692
+ const body = packStoreDriverDir(dir, entry, flag('commit') ?? sourceCommitOf(dir, files));
682
693
  const { release, pinned } = await uploadStoreDriverRelease({ ...plane, body });
683
694
  console.log(`✓ stored ${driver} ${release.sha256} (commit ${release.sourceCommit})`);
695
+ for (const line of storeDriverPackLines({ files, skipped: skippedInstallerMarkersOf(dir), sha256: release.sha256, sourceCommit: release.sourceCommit }))
696
+ console.log(line);
684
697
  console.log(pinned ? ' pinned: roll it out with `substrat store-driver rollout`' : ' not pinned yet: it runs once a reviewed change pins this sha256 and commit');
685
698
  return;
686
699
  }
@@ -1221,6 +1234,46 @@ async function cmdConcept() {
1221
1234
  }
1222
1235
  console.log(changed ? `✓ rewrote the generated sections of ${file}` : `✓ ${file} is up to date`);
1223
1236
  }
1237
+ /**
1238
+ * `substrat plan [dir] [--base <ref>] [--why <text>] [--json]` — the concept delta the design gate
1239
+ * shows (#2363); `--approve <digest> --by <name> --why <text>` records a person's approval of it in
1240
+ * spec/concept.md's Decisions log. Offline like `changeset`: artifacts at the merge-base and now.
1241
+ */
1242
+ async function cmdPlan() {
1243
+ const usage = 'usage: substrat plan [dir] [--base <ref>] [--why <text>] [--json]\n' +
1244
+ ' substrat plan [dir] --approve <digest> --by <name> --why <text> [--base <ref>]';
1245
+ for (const f of ['base', 'why', 'approve', 'by']) {
1246
+ const v = flag(f);
1247
+ if (argv.includes(`--${f}`) && (!v || v.startsWith('--'))) {
1248
+ console.error(`${usage}\n\n--${f} needs a value.`);
1249
+ process.exit(1);
1250
+ }
1251
+ }
1252
+ const dir = resolvePath(positional(0, ['json']) ?? '.');
1253
+ try {
1254
+ const r = await planCommand(dir, {
1255
+ json: argv.includes('--json'),
1256
+ date: new Date().toISOString().slice(0, 10),
1257
+ ...(flag('base') ? { base: flag('base') } : {}),
1258
+ ...(flag('why') ? { why: flag('why') } : {}),
1259
+ ...(flag('approve') ? { approve: flag('approve') } : {}),
1260
+ ...(flag('by') ? { by: flag('by') } : {}),
1261
+ });
1262
+ for (const l of r.out)
1263
+ console.log(l);
1264
+ for (const l of r.err)
1265
+ console.error(l);
1266
+ if (r.code !== 0)
1267
+ process.exit(r.code);
1268
+ }
1269
+ catch (err) {
1270
+ if (err instanceof CannotRun) {
1271
+ console.error(`error: ${err.message}`);
1272
+ process.exit(2);
1273
+ }
1274
+ throw err;
1275
+ }
1276
+ }
1224
1277
  async function cmdWhoami() {
1225
1278
  const { controlPlaneUrl, header } = resolveAuth({ cp: flag('cp'), token: flag('token'), tenant: flag('tenant') });
1226
1279
  const { user, tenants } = await fetchWhoami(controlPlaneUrl, header);
@@ -1280,6 +1333,8 @@ async function main() {
1280
1333
  return cmdChangeset();
1281
1334
  case 'concept':
1282
1335
  return cmdConcept();
1336
+ case 'plan':
1337
+ return cmdPlan();
1283
1338
  case 'version':
1284
1339
  case '--version':
1285
1340
  case '-v':