spec-controller 0.1.0-alpha.45 → 0.1.0-alpha.46

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 (116) hide show
  1. package/dist/cli-allocate/cli.d.ts.map +1 -1
  2. package/dist/cli-allocate/cli.js +0 -5
  3. package/dist/cli-allocate/cli.js.map +1 -1
  4. package/dist/cli-allocate/readHistory.d.ts +0 -13
  5. package/dist/cli-allocate/readHistory.d.ts.map +1 -1
  6. package/dist/cli-allocate/readHistory.js +0 -33
  7. package/dist/cli-allocate/readHistory.js.map +1 -1
  8. package/dist/cli-allocate/readParts.d.ts +0 -1
  9. package/dist/cli-allocate/readParts.d.ts.map +1 -1
  10. package/dist/cli-allocate/readParts.js +0 -6
  11. package/dist/cli-allocate/readParts.js.map +1 -1
  12. package/dist/cli-allocate/readTree.d.ts +0 -11
  13. package/dist/cli-allocate/readTree.d.ts.map +1 -1
  14. package/dist/cli-allocate/readTree.js +0 -32
  15. package/dist/cli-allocate/readTree.js.map +1 -1
  16. package/dist/cli-allocate/refStore.d.ts +0 -1
  17. package/dist/cli-allocate/refStore.d.ts.map +1 -1
  18. package/dist/cli-allocate/refStore.js +0 -13
  19. package/dist/cli-allocate/refStore.js.map +1 -1
  20. package/dist/cli-allocate/request.d.ts +0 -2
  21. package/dist/cli-allocate/request.d.ts.map +1 -1
  22. package/dist/cli-allocate/request.js +0 -7
  23. package/dist/cli-allocate/request.js.map +1 -1
  24. package/dist/cli-allocate/stderr.d.ts +0 -7
  25. package/dist/cli-allocate/stderr.d.ts.map +1 -1
  26. package/dist/cli-allocate/stderr.js +0 -7
  27. package/dist/cli-allocate/stderr.js.map +1 -1
  28. package/dist/cli-allocate/unreadable.d.ts +0 -13
  29. package/dist/cli-allocate/unreadable.d.ts.map +1 -1
  30. package/dist/cli-allocate/unreadable.js +0 -13
  31. package/dist/cli-allocate/unreadable.js.map +1 -1
  32. package/dist/cli-args.d.ts +0 -113
  33. package/dist/cli-args.d.ts.map +1 -1
  34. package/dist/cli-args.js +0 -145
  35. package/dist/cli-args.js.map +1 -1
  36. package/dist/cli-balance/cli.d.ts +0 -85
  37. package/dist/cli-balance/cli.d.ts.map +1 -1
  38. package/dist/cli-balance/cli.js +0 -230
  39. package/dist/cli-balance/cli.js.map +1 -1
  40. package/dist/cli-balance/emit/format.d.ts +0 -52
  41. package/dist/cli-balance/emit/format.d.ts.map +1 -1
  42. package/dist/cli-balance/emit/format.js +0 -70
  43. package/dist/cli-balance/emit/format.js.map +1 -1
  44. package/dist/cli-balance/emit/writer.d.ts +0 -17
  45. package/dist/cli-balance/emit/writer.d.ts.map +1 -1
  46. package/dist/cli-balance/emit/writer.js +0 -13
  47. package/dist/cli-balance/emit/writer.js.map +1 -1
  48. package/dist/cli-balance/exitStatus.d.ts +0 -1
  49. package/dist/cli-balance/exitStatus.d.ts.map +1 -1
  50. package/dist/cli-balance/exitStatus.js +0 -7
  51. package/dist/cli-balance/exitStatus.js.map +1 -1
  52. package/dist/cli-balance/inputsRead.d.ts +0 -12
  53. package/dist/cli-balance/inputsRead.d.ts.map +1 -1
  54. package/dist/cli-balance/inputsRead.js +0 -12
  55. package/dist/cli-balance/inputsRead.js.map +1 -1
  56. package/dist/cli-balance/reRender.d.ts +0 -14
  57. package/dist/cli-balance/reRender.d.ts.map +1 -1
  58. package/dist/cli-balance/reRender.js +0 -15
  59. package/dist/cli-balance/reRender.js.map +1 -1
  60. package/dist/cli-balance/unreadableInputs.d.ts +0 -21
  61. package/dist/cli-balance/unreadableInputs.d.ts.map +1 -1
  62. package/dist/cli-balance/unreadableInputs.js +0 -21
  63. package/dist/cli-balance/unreadableInputs.js.map +1 -1
  64. package/dist/cli-registry.d.ts +0 -86
  65. package/dist/cli-registry.d.ts.map +1 -1
  66. package/dist/cli-registry.js +0 -70
  67. package/dist/cli-registry.js.map +1 -1
  68. package/dist/cli.d.ts +0 -20
  69. package/dist/cli.d.ts.map +1 -1
  70. package/dist/cli.js +0 -21
  71. package/dist/cli.js.map +1 -1
  72. package/dist/deferralTags.d.ts +0 -14
  73. package/dist/deferralTags.d.ts.map +1 -1
  74. package/dist/deferralTags.js +0 -14
  75. package/dist/deferralTags.js.map +1 -1
  76. package/dist/host.d.ts +0 -61
  77. package/dist/host.d.ts.map +1 -1
  78. package/dist/host.js +1 -84
  79. package/dist/host.js.map +1 -1
  80. package/dist/ingest/ciSourcePaths.d.ts +0 -38
  81. package/dist/ingest/ciSourcePaths.d.ts.map +1 -1
  82. package/dist/ingest/ciSourcePaths.js +0 -38
  83. package/dist/ingest/ciSourcePaths.js.map +1 -1
  84. package/dist/ingest/gherkinValidation.d.ts +0 -76
  85. package/dist/ingest/gherkinValidation.d.ts.map +1 -1
  86. package/dist/ingest/gherkinValidation.js +0 -76
  87. package/dist/ingest/gherkinValidation.js.map +1 -1
  88. package/dist/ingest/ingestQualityChecks.d.ts +0 -81
  89. package/dist/ingest/ingestQualityChecks.d.ts.map +1 -1
  90. package/dist/ingest/ingestQualityChecks.js +0 -194
  91. package/dist/ingest/ingestQualityChecks.js.map +1 -1
  92. package/dist/ingest/ingestScenarios.d.ts +0 -39
  93. package/dist/ingest/ingestScenarios.d.ts.map +1 -1
  94. package/dist/ingest/ingestScenarios.js +0 -70
  95. package/dist/ingest/ingestScenarios.js.map +1 -1
  96. package/dist/ingest/inputShapes.d.ts +0 -31
  97. package/dist/ingest/inputShapes.d.ts.map +1 -1
  98. package/dist/ingest/inputShapes.js +0 -30
  99. package/dist/ingest/inputShapes.js.map +1 -1
  100. package/dist/outputLocation.d.ts +0 -48
  101. package/dist/outputLocation.d.ts.map +1 -1
  102. package/dist/outputLocation.js +0 -48
  103. package/dist/outputLocation.js.map +1 -1
  104. package/dist/run-management/keptRun.d.ts +0 -107
  105. package/dist/run-management/keptRun.d.ts.map +1 -1
  106. package/dist/run-management/keptRun.js +0 -75
  107. package/dist/run-management/keptRun.js.map +1 -1
  108. package/dist/run-management/resolveRunInputs.d.ts +0 -67
  109. package/dist/run-management/resolveRunInputs.d.ts.map +1 -1
  110. package/dist/run-management/resolveRunInputs.js +0 -88
  111. package/dist/run-management/resolveRunInputs.js.map +1 -1
  112. package/dist/storedRun.d.ts +0 -21
  113. package/dist/storedRun.d.ts.map +1 -1
  114. package/dist/storedRun.js +0 -21
  115. package/dist/storedRun.js.map +1 -1
  116. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"resolveRunInputs.d.ts","sourceRoot":"","sources":["../../src/run-management/resolveRunInputs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,GAAG,IAAI,CAiBhG;AAED,gFAAgF;AAChF,MAAM,WAAW,YAAY;IAC3B,mGAAmG;IACnG,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,2FAA2F;IAC3F,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,YAAY,CAQ3G;AAiED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAerE"}
1
+ {"version":3,"file":"resolveRunInputs.d.ts","sourceRoot":"","sources":["../../src/run-management/resolveRunInputs.ts"],"names":[],"mappings":"AAKA,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,GAAG,IAAI,CAiBhG;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,mBAAmB,CAAC,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,YAAY,CAQ3G;AAyCD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAerE"}
@@ -1,25 +1,7 @@
1
- /**
2
- * Resolve a run's git-derived inputs — the target's source SHA and repo root. The
3
- * IMPURE half of the old run/runContext.ts: both shell out to `git` over the
4
- * target tree, so they live in the app's run-management layer, apart from the pure
5
- * provenance projection (packages/core/src/provenance/provenance.ts) they feed. The
6
- * CLI (cli-balance/cli.ts) calls these once to build the RunContext.
7
- *
8
- * Scenarios: @SCN-RPT-001 (the run-provenance slice); the --source-sha override;
9
- * @SCN-RPT-016 (target-root derivation); @SCN-RPT-026 / @SCN-RPT-029 (the tool's own identity).
10
- */
11
1
  import { execFileSync } from "node:child_process";
12
2
  import { readFileSync } from "node:fs";
13
3
  import { dirname, join, sep } from "node:path";
14
4
  import { fileURLToPath } from "node:url";
15
- /**
16
- * Resolve the target's source SHA (project design §4). An explicit non-empty
17
- * `sourceSha` wins — the override for non-git / zip / detached-HEAD targets (the
18
- * --source-sha flag). Otherwise `git -C <targetDir> rev-parse HEAD` (trimmed) as a
19
- * READ-ONLY pure read. On any throw —
20
- * a non-git target, git absent, an empty answer — resolve to `null` ("unknown")
21
- * rather than crashing. `targetDir` = dirname(--features) when given, else cwd.
22
- */
23
5
  export function resolveSourceSha(opts) {
24
6
  if (opts.sourceSha !== undefined && opts.sourceSha.trim() !== "") {
25
7
  return opts.sourceSha.trim();
@@ -39,36 +21,6 @@ export function resolveSourceSha(opts) {
39
21
  return null;
40
22
  }
41
23
  }
42
- /**
43
- * Resolve the TOOL's own identity (3F-1916) — which spec-controller produced this run,
44
- * distinct from the TARGET's `sourceSha`. Two facts, one call, threaded to both the
45
- * report provenance (RunContext) and the run.yaml manifest.
46
- *
47
- * **TWO TRAPS, AND THIS DOCBLOCK ONLY NAMED THE FIRST FOR ELEVEN WEEKS** (@SCN-RPT-029,
48
- * 3F-3418). Nothing typechecks a comment, and the sentence below — true, and the whole of
49
- * what was written here — is what made the second trap read as already-handled.
50
- *
51
- * **Trap one, cwd:** at run time the process cwd is the TARGET repo (reconcile runs
52
- * there), so a bare `git rev-parse HEAD` would re-record the TARGET's SHA. So the SHA is
53
- * read `git -C <the tool's OWN dir>`, derived from `import.meta.url`, never cwd (3F-1916).
54
- *
55
- * **Trap two, which the `-C` guard could not see:** the tool's own dir is ITSELF inside the
56
- * target. For an installed package that dir is `<consumer>/node_modules/…`, which is inside
57
- * the consumer's worktree, so `git -C` walks up to the consumer's `.git` and answers with
58
- * the consumer's HEAD — being `.gitignore`d makes no difference, git does not stop at
59
- * ignored directories. That is not an absent tool SHA, it is a WRONG one, and nothing on
60
- * the rendered report distinguishes it from a genuine one. It is also the only case a
61
- * consumer ever sees: every adopter installs into a git repository. `resolveToolSha`
62
- * therefore answers a `node_modules` SEGMENT before it asks git at all.
63
- *
64
- * `toolSha` is `null` for a tool resolved out of `node_modules`, and otherwise
65
- * `git -C <toolDir> rev-parse HEAD` (trimmed) or `null` on any throw — no `.git` above the
66
- * tool, git absent, or an empty answer — mirroring `resolveSourceSha`'s fail-soft.
67
- * `toolVersion` is read from the tool's own `package.json` (walked up from `toolDir`), or
68
- * `"unknown"` when none is found — so a run stays attributable by version even when no SHA
69
- * can be read. `toolDir` / `packageJsonPath` are injectable for the `@unit` teeth
70
- * (@SCN-RPT-026, @SCN-RPT-029).
71
- */
72
24
  export function resolveToolIdentity(opts = {}) {
73
25
  const toolDir = opts.toolDir !== undefined && opts.toolDir.trim() !== ""
74
26
  ? opts.toolDir
@@ -78,28 +30,6 @@ export function resolveToolIdentity(opts = {}) {
78
30
  toolVersion: resolveToolVersion(opts.packageJsonPath ?? findPackageJson(toolDir)),
79
31
  };
80
32
  }
81
- /**
82
- * The tool's own git HEAD, read `-C <toolDir>` (never cwd), null on any throw — and null
83
- * without asking at all for a tool resolved out of `node_modules` (@SCN-RPT-029).
84
- *
85
- * A SEGMENT, NEVER A SUBSTRING. A directory honestly named `my_node_modules_backup` is not an
86
- * install, and a checkout living under a directory literally named `node_modules` reporting null is
87
- * the pathological trade every tool making this distinction takes.
88
- *
89
- * `sep`, NOT A REGEX OVER BOTH SEPARATORS. `[/\\]` would carry a branch no arm on this platform can
90
- * reach, so a mutant deleting its second half would survive the mutation gate while nothing was
91
- * worse. `sep` is what `fileURLToPath` produces on each platform, which is the only thing `toolDir`
92
- * is ever built from.
93
- *
94
- * IT ANSWERS BEFORE THE `try`, NOT INSIDE IT. Returning null from a thrown git read and returning
95
- * null because the tool is an install are the same recorded answer and not the same fact, and only
96
- * the first of them is allowed to depend on git being present.
97
- *
98
- * WHAT IT DOES NOT CLAIM. Under `--preserve-symlinks` Node reports the symlink path rather than the
99
- * realpath, so a linked development checkout would carry a `node_modules` segment and report null.
100
- * That is a strictly safer wrong answer than today's, nothing in this repository passes the flag,
101
- * and no arm covers it — named rather than guarded.
102
- */
103
33
  function resolveToolSha(toolDir) {
104
34
  if (toolDir.split(sep).includes("node_modules"))
105
35
  return null;
@@ -115,7 +45,6 @@ function resolveToolSha(toolDir) {
115
45
  return null;
116
46
  }
117
47
  }
118
- /** Read the `version` from a package.json, or "unknown" when the path is null / unreadable / versionless. */
119
48
  function resolveToolVersion(packageJsonPath) {
120
49
  if (packageJsonPath === null)
121
50
  return "unknown";
@@ -127,7 +56,6 @@ function resolveToolVersion(packageJsonPath) {
127
56
  return "unknown";
128
57
  }
129
58
  }
130
- /** Walk up from a dir to the nearest package.json, or null when the filesystem root is reached. */
131
59
  function findPackageJson(fromDir) {
132
60
  let dir = fromDir;
133
61
  for (;;) {
@@ -144,22 +72,6 @@ function findPackageJson(fromDir) {
144
72
  }
145
73
  }
146
74
  }
147
- /**
148
- * Resolve the TARGET repo root — the root the recorded input paths (`presentInputs`)
149
- * and the evidence-observation locators (`countRuntimeEvidenceObservationKinds`) are both made
150
- * portable against (@SCN-RPT-016). The bug it fixes: the prior CLI relativized
151
- * against `process.cwd()` — the TOOL's own repo — so a cross-repo reconcile
152
- * (cwd ≠ target) kept the target's absolute paths (they aren't under cwd → the
153
- * "absolute-not-under-root" branch of `relativizeToRoot` → leaked verbatim).
154
- *
155
- * The rule (mirrors `resolveSourceSha`'s targetDir derivation): the root is derived from
156
- * the TARGET, never the run cwd — the git top-level of `dirname(--features)` when the
157
- * target is a git repo (the robust case: `--features` may sit in a nested dir), else
158
- * `dirname(--features)` itself (a non-git target — a zip / extracted tree), else
159
- * `process.cwd()` for a self-reconcile with no `--features` (the legacy cwd = target
160
- * assumption, preserved as the fallback). A READ-ONLY `git -C … rev-parse --show-toplevel`
161
- * (read-only-target-safe); any throw falls back to `dirname(--features)`.
162
- */
163
75
  export function resolveTargetRoot(opts) {
164
76
  if (opts.features === undefined || opts.features.trim() === "") {
165
77
  return process.cwd();
@@ -1 +1 @@
1
- {"version":3,"file":"resolveRunInputs.js","sourceRoot":"","sources":["../../src/run-management/resolveRunInputs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAgD;IAC/E,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACjE,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IACD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE;YACtE,CAAC,CAAC,IAAI,CAAC,SAAS;YAChB,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QAClB,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE;YAChE,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;SACpC,CAAC,CAAC;QACH,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QACvB,OAAO,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAUD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAuD,EAAE;IAC3F,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE;QACtE,CAAC,CAAC,IAAI,CAAC,OAAO;QACd,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5C,OAAO;QACL,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC;QAChC,WAAW,EAAE,kBAAkB,CAAC,IAAI,CAAC,eAAe,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC;KAClF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,SAAS,cAAc,CAAC,OAAe;IACrC,IAAI,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7D,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE;YACpE,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;SACpC,CAAC,CAAC;QACH,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QACvB,OAAO,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,6GAA6G;AAC7G,SAAS,kBAAkB,CAAC,eAA8B;IACxD,IAAI,eAAe,KAAK,IAAI;QAAE,OAAO,SAAS,CAAC;IAC/C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAA0B,CAAC;QACvF,OAAO,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,IAAI,GAAG,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IACzF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,mGAAmG;AACnG,SAAS,eAAe,CAAC,OAAe;IACtC,IAAI,GAAG,GAAG,OAAO,CAAC;IAClB,SAAS,CAAC;QACR,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QAC5C,IAAI,CAAC;YACH,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YAChC,OAAO,SAAS,CAAC;QACnB,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;YAC5B,IAAI,MAAM,KAAK,GAAG;gBAAE,OAAO,IAAI,CAAC;YAChC,GAAG,GAAG,MAAM,CAAC;QACf,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAA2B;IAC3D,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAC/D,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC;IACvB,CAAC;IACD,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,iBAAiB,CAAC,EAAE;YACjF,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;SACpC,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QACxB,OAAO,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"resolveRunInputs.js","sourceRoot":"","sources":["../../src/run-management/resolveRunInputs.ts"],"names":[],"mappings":"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"}
@@ -1,27 +1,6 @@
1
- /**
2
- * What the host does with a command before a stored run starts: dispatch it unwrapped, or wrap it
3
- * in the kept-run scaffold. Pure, so `cli.ts`'s dispatcher reads its answer rather than deciding.
4
- */
5
1
  import { type CommandSpec } from "./cli-registry.js";
6
2
  import type { HostInvocation } from "./host.js";
7
- /**
8
- * True when the host dispatches the command itself, never inside a stored run: no store was asked
9
- * for, or the command's help was, which is answered before the store is touched.
10
- */
11
3
  export declare function dispatchesUnstored(inv: HostInvocation): boolean;
12
- /**
13
- * The refusal for a re-render given a store or a run-id, else undefined: a re-render writes only to
14
- * stdout and keeps no run. It is the host's to refuse, not `balance`'s, because a stored run hands
15
- * `balance` a `--format` for each report file, and `balance` cannot tell that one from a `--format`
16
- * the operator typed; only the host knows which host modifiers were given. It names only those, so a
17
- * re-render given a run-id alone is never told to add the store it would refuse in turn.
18
- */
19
4
  export declare function storedReRenderRefusal(inv: HostInvocation): string | undefined;
20
- /**
21
- * The refusal for a run-id given with no store, before a command that keeps a run, else undefined.
22
- * A run-id names a stored run, so with no store there is no run for it to name: dropping it without
23
- * a word would leave the operator looking later for a run that was never kept. A request for the
24
- * command's help is answered instead, since help keeps no run either.
25
- */
26
5
  export declare function unstoredRunIdRefusal(inv: HostInvocation, commands?: readonly CommandSpec[]): string | undefined;
27
6
  //# sourceMappingURL=storedRun.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"storedRun.d.ts","sourceRoot":"","sources":["../src/storedRun.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEhD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAE/D;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,cAAc,GAAG,MAAM,GAAG,SAAS,CAU7E;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,cAAc,EACnB,QAAQ,GAAE,SAAS,WAAW,EAAyB,GACtD,MAAM,GAAG,SAAS,CASpB"}
1
+ {"version":3,"file":"storedRun.d.ts","sourceRoot":"","sources":["../src/storedRun.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEhD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAE/D;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,cAAc,GAAG,MAAM,GAAG,SAAS,CAU7E;AAED,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,cAAc,EACnB,QAAQ,GAAE,SAAS,WAAW,EAAyB,GACtD,MAAM,GAAG,SAAS,CASpB"}
package/dist/storedRun.js CHANGED
@@ -1,23 +1,8 @@
1
- /**
2
- * What the host does with a command before a stored run starts: dispatch it unwrapped, or wrap it
3
- * in the kept-run scaffold. Pure, so `cli.ts`'s dispatcher reads its answer rather than deciding.
4
- */
5
1
  import { asksForHelp } from "./cli-args.js";
6
2
  import { cliRegistry } from "./cli-registry.js";
7
- /**
8
- * True when the host dispatches the command itself, never inside a stored run: no store was asked
9
- * for, or the command's help was, which is answered before the store is touched.
10
- */
11
3
  export function dispatchesUnstored(inv) {
12
4
  return inv.store === undefined || asksForHelp(inv.commandArgs);
13
5
  }
14
- /**
15
- * The refusal for a re-render given a store or a run-id, else undefined: a re-render writes only to
16
- * stdout and keeps no run. It is the host's to refuse, not `balance`'s, because a stored run hands
17
- * `balance` a `--format` for each report file, and `balance` cannot tell that one from a `--format`
18
- * the operator typed; only the host knows which host modifiers were given. It names only those, so a
19
- * re-render given a run-id alone is never told to add the store it would refuse in turn.
20
- */
21
6
  export function storedReRenderRefusal(inv) {
22
7
  if (inv.command !== "balance" || asksForHelp(inv.commandArgs))
23
8
  return undefined;
@@ -30,12 +15,6 @@ export function storedReRenderRefusal(inv) {
30
15
  `and was given ${given.join(", ")}: a re-render is not stored.\n` +
31
16
  `Run 'spec-controller balance --render-from-json <path>' without ${given.length === 1 ? "it" : "them"}.`);
32
17
  }
33
- /**
34
- * The refusal for a run-id given with no store, before a command that keeps a run, else undefined.
35
- * A run-id names a stored run, so with no store there is no run for it to name: dropping it without
36
- * a word would leave the operator looking later for a run that was never kept. A request for the
37
- * command's help is answered instead, since help keeps no run either.
38
- */
39
18
  export function unstoredRunIdRefusal(inv, commands = cliRegistry.commands) {
40
19
  if (inv.runId === undefined || inv.store !== undefined || asksForHelp(inv.commandArgs))
41
20
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"storedRun.js","sourceRoot":"","sources":["../src/storedRun.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAoB,MAAM,mBAAmB,CAAC;AAGlE;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAmB;IACpD,OAAO,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AACjE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAmB;IACvD,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC;QAAE,OAAO,SAAS,CAAC;IAChF,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QAAE,OAAO,SAAS,CAAC;IACtE,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/G,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACzC,OAAO,CACL,oHAAoH;QACpH,iBAAiB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gCAAgC;QACjE,mEAAmE,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,CACzG,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAClC,GAAmB,EACnB,WAAmC,WAAW,CAAC,QAAQ;IAEvD,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC;QAAE,OAAO,SAAS,CAAC;IACzG,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC;IACvE,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,oBAAoB,KAAK,KAAK;QAAE,OAAO,SAAS,CAAC;IAClF,OAAO,CACL,8EAA8E,GAAG,CAAC,KAAK,qBAAqB;QAC5G,+BAA+B;QAC/B,gFAAgF,KAAK,CAAC,IAAI,qBAAqB,CAChH,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"storedRun.js","sourceRoot":"","sources":["../src/storedRun.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAoB,MAAM,mBAAmB,CAAC;AAGlE,MAAM,UAAU,kBAAkB,CAAC,GAAmB;IACpD,OAAO,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,GAAmB;IACvD,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC;QAAE,OAAO,SAAS,CAAC;IAChF,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QAAE,OAAO,SAAS,CAAC;IACtE,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/G,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACzC,OAAO,CACL,oHAAoH;QACpH,iBAAiB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gCAAgC;QACjE,mEAAmE,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,CACzG,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,GAAmB,EACnB,WAAmC,WAAW,CAAC,QAAQ;IAEvD,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC;QAAE,OAAO,SAAS,CAAC;IACzG,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC;IACvE,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,oBAAoB,KAAK,KAAK;QAAE,OAAO,SAAS,CAAC;IAClF,OAAO,CACL,8EAA8E,GAAG,CAAC,KAAK,qBAAqB;QAC5G,+BAA+B;QAC/B,gFAAgF,KAAK,CAAC,IAAI,qBAAqB,CAChH,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "spec-controller",
3
- "version": "0.1.0-alpha.45",
3
+ "version": "0.1.0-alpha.46",
4
4
  "description": "Reconcile the behaviour your scenarios name against the evidence that actually ran — the deterministic `balance` CLI.",
5
5
  "keywords": [
6
6
  "reconciliation",
@@ -25,7 +25,7 @@
25
25
  "@cucumber/gherkin": "^41.0.0",
26
26
  "@cucumber/messages": "^34.0.1",
27
27
  "yaml": "^2.9.0",
28
- "@3f-consulting/spec-controller-core": "0.1.0-alpha.45"
28
+ "@3f-consulting/spec-controller-core": "0.1.0-alpha.46"
29
29
  },
30
30
  "publishConfig": {
31
31
  "access": "public"