@opensip-cli/graph 0.1.5 → 0.1.7

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 (109) hide show
  1. package/README.md +2 -2
  2. package/dist/__tests__/cli/graph-execute.test.js +7 -5
  3. package/dist/__tests__/cli/graph-execute.test.js.map +1 -1
  4. package/dist/__tests__/cli/graph.test.js +18 -12
  5. package/dist/__tests__/cli/graph.test.js.map +1 -1
  6. package/dist/__tests__/internal-surface.test.js +3 -0
  7. package/dist/__tests__/internal-surface.test.js.map +1 -1
  8. package/dist/__tests__/persistence/session-replay.test.js +7 -4
  9. package/dist/__tests__/persistence/session-replay.test.js.map +1 -1
  10. package/dist/__tests__/rules/registry.test.js +2 -2
  11. package/dist/__tests__/rules/registry.test.js.map +1 -1
  12. package/dist/__tests__/test-utils/with-graph-scope.d.ts.map +1 -1
  13. package/dist/__tests__/test-utils/with-graph-scope.js +2 -2
  14. package/dist/__tests__/test-utils/with-graph-scope.js.map +1 -1
  15. package/dist/__tests__/tool-branches.test.d.ts +3 -3
  16. package/dist/__tests__/tool-branches.test.js +25 -14
  17. package/dist/__tests__/tool-branches.test.js.map +1 -1
  18. package/dist/__tests__/tool-register.test.js +61 -77
  19. package/dist/__tests__/tool-register.test.js.map +1 -1
  20. package/dist/__tests__/tool.test.d.ts +4 -4
  21. package/dist/__tests__/tool.test.js +31 -16
  22. package/dist/__tests__/tool.test.js.map +1 -1
  23. package/dist/cli/__tests__/build-envelope.test.js +77 -0
  24. package/dist/cli/__tests__/build-envelope.test.js.map +1 -1
  25. package/dist/cli/__tests__/graph-command-plan.test.d.ts +2 -0
  26. package/dist/cli/__tests__/graph-command-plan.test.d.ts.map +1 -0
  27. package/dist/cli/__tests__/graph-command-plan.test.js +46 -0
  28. package/dist/cli/__tests__/graph-command-plan.test.js.map +1 -0
  29. package/dist/cli/__tests__/graph-envelope-view.test.d.ts +2 -0
  30. package/dist/cli/__tests__/graph-envelope-view.test.d.ts.map +1 -0
  31. package/dist/cli/__tests__/graph-envelope-view.test.js +97 -0
  32. package/dist/cli/__tests__/graph-envelope-view.test.js.map +1 -0
  33. package/dist/cli/__tests__/graph-list.test.d.ts +2 -0
  34. package/dist/cli/__tests__/graph-list.test.d.ts.map +1 -0
  35. package/dist/cli/__tests__/graph-list.test.js +20 -0
  36. package/dist/cli/__tests__/graph-list.test.js.map +1 -0
  37. package/dist/cli/__tests__/shard-worker.test.js +22 -0
  38. package/dist/cli/__tests__/shard-worker.test.js.map +1 -1
  39. package/dist/cli/equivalence-check-command.d.ts.map +1 -1
  40. package/dist/cli/equivalence-check-command.js +0 -2
  41. package/dist/cli/equivalence-check-command.js.map +1 -1
  42. package/dist/cli/graph/graph-aux-command-specs.d.ts +54 -27
  43. package/dist/cli/graph/graph-aux-command-specs.d.ts.map +1 -1
  44. package/dist/cli/graph/graph-aux-command-specs.js +359 -265
  45. package/dist/cli/graph/graph-aux-command-specs.js.map +1 -1
  46. package/dist/cli/graph-command-plan.d.ts +23 -0
  47. package/dist/cli/graph-command-plan.d.ts.map +1 -0
  48. package/dist/cli/graph-command-plan.js +43 -0
  49. package/dist/cli/graph-command-plan.js.map +1 -0
  50. package/dist/cli/graph-envelope-view.d.ts +41 -0
  51. package/dist/cli/graph-envelope-view.d.ts.map +1 -0
  52. package/dist/cli/graph-envelope-view.js +133 -0
  53. package/dist/cli/graph-envelope-view.js.map +1 -0
  54. package/dist/cli/graph-list.d.ts +29 -0
  55. package/dist/cli/graph-list.d.ts.map +1 -0
  56. package/dist/cli/graph-list.js +44 -0
  57. package/dist/cli/graph-list.js.map +1 -0
  58. package/dist/cli/graph-report.d.ts +16 -6
  59. package/dist/cli/graph-report.d.ts.map +1 -1
  60. package/dist/cli/graph-report.js +10 -6
  61. package/dist/cli/graph-report.js.map +1 -1
  62. package/dist/cli/graph-runner.d.ts.map +1 -1
  63. package/dist/cli/graph-runner.js +23 -10
  64. package/dist/cli/graph-runner.js.map +1 -1
  65. package/dist/cli/graph-single-run-mode.d.ts +23 -0
  66. package/dist/cli/graph-single-run-mode.d.ts.map +1 -0
  67. package/dist/cli/graph-single-run-mode.js +107 -0
  68. package/dist/cli/graph-single-run-mode.js.map +1 -0
  69. package/dist/cli/graph-worker.d.ts.map +1 -1
  70. package/dist/cli/graph-worker.js +1 -0
  71. package/dist/cli/graph-worker.js.map +1 -1
  72. package/dist/cli/graph.d.ts +2 -2
  73. package/dist/cli/graph.d.ts.map +1 -1
  74. package/dist/cli/graph.js +40 -159
  75. package/dist/cli/graph.js.map +1 -1
  76. package/dist/cli/lookup.d.ts.map +1 -1
  77. package/dist/cli/lookup.js +0 -2
  78. package/dist/cli/lookup.js.map +1 -1
  79. package/dist/cli/orchestrate/__tests__/shard-runner-correlation.test.d.ts +22 -0
  80. package/dist/cli/orchestrate/__tests__/shard-runner-correlation.test.d.ts.map +1 -0
  81. package/dist/cli/orchestrate/__tests__/shard-runner-correlation.test.js +208 -0
  82. package/dist/cli/orchestrate/__tests__/shard-runner-correlation.test.js.map +1 -0
  83. package/dist/cli/orchestrate/shard-model.d.ts +17 -0
  84. package/dist/cli/orchestrate/shard-model.d.ts.map +1 -1
  85. package/dist/cli/orchestrate/shard-runner.d.ts +31 -1
  86. package/dist/cli/orchestrate/shard-runner.d.ts.map +1 -1
  87. package/dist/cli/orchestrate/shard-runner.js +215 -11
  88. package/dist/cli/orchestrate/shard-runner.js.map +1 -1
  89. package/dist/cli/orchestrate/sharded-graph.d.ts.map +1 -1
  90. package/dist/cli/orchestrate/sharded-graph.js +32 -3
  91. package/dist/cli/orchestrate/sharded-graph.js.map +1 -1
  92. package/dist/cli/shard-worker.d.ts.map +1 -1
  93. package/dist/cli/shard-worker.js +127 -11
  94. package/dist/cli/shard-worker.js.map +1 -1
  95. package/dist/cli/symbol-index.d.ts.map +1 -1
  96. package/dist/cli/symbol-index.js +0 -2
  97. package/dist/cli/symbol-index.js.map +1 -1
  98. package/dist/internal.d.ts +1 -0
  99. package/dist/internal.d.ts.map +1 -1
  100. package/dist/internal.js +5 -0
  101. package/dist/internal.js.map +1 -1
  102. package/dist/persistence/session-replay.d.ts +9 -4
  103. package/dist/persistence/session-replay.d.ts.map +1 -1
  104. package/dist/persistence/session-replay.js +8 -12
  105. package/dist/persistence/session-replay.js.map +1 -1
  106. package/dist/tool.d.ts.map +1 -1
  107. package/dist/tool.js +37 -118
  108. package/dist/tool.js.map +1 -1
  109. package/package.json +22 -26
@@ -1,5 +1,3 @@
1
- // @fitness-ignore-file no-direct-stdout-in-tool-engine -- subprocess IPC protocol: the worker serializes its ShardBuildResult to stdout and the parent (shard runner) reads stdout to EOF. This is not run output through the render seam; it is the wire format between two CLI processes.
2
- // @fitness-ignore-file only-documented-toolcli-seams -- same rationale as above: this stdout write is the worker↔parent IPC wire, not user-facing run output through a ToolCliContext seam.
3
1
  /**
4
2
  * `graph-shard-worker <specPath>` — the per-shard build subprocess.
5
3
  *
@@ -18,38 +16,153 @@
18
16
  * The boundary is JSON only: no `ts.Node` / `ts.Program` ever crosses it.
19
17
  */
20
18
  import { readFileSync } from 'node:fs';
21
- import { logger } from '@opensip-cli/core';
19
+ import { correlationFromEnv, currentLogger, currentScope, currentTraceparent, REPO_OTEL_ATTR, TENANT_OTEL_ATTR, } from '@opensip-cli/core';
22
20
  import { computeFilesFingerprint } from '../cache/invalidate.js';
23
21
  import { pickAdapter } from '../lang-adapter/registry.js';
24
22
  import { spanRunStage } from './graph-tracer.js';
25
23
  import { buildAndResolveCatalog } from './orchestrate/catalog-builder.js';
24
+ /**
25
+ * The flat structured-log fields stamped on every `graph.shard.worker.*` event:
26
+ * the full correlation bag (incl. `runId`/`traceId`) so an operator can pivot
27
+ * from any worker line to the parent run and its trace. Absent optionals are
28
+ * omitted (no empty sentinels).
29
+ */
30
+ function workerLogFields(c) {
31
+ const fields = {
32
+ runId: c.runId,
33
+ tool: c.tool,
34
+ parentCommand: c.parentCommand,
35
+ };
36
+ if (c.traceId !== undefined)
37
+ fields.traceId = c.traceId;
38
+ if (c.repo !== undefined)
39
+ fields.repo = c.repo;
40
+ if (c.repoId !== undefined)
41
+ fields.repoId = c.repoId;
42
+ if (c.tenantId !== undefined)
43
+ fields.tenantId = c.tenantId;
44
+ if (c.shardId !== undefined)
45
+ fields.shardId = c.shardId;
46
+ return fields;
47
+ }
48
+ /**
49
+ * Resolve the worker's correlation bag for stamping on spans + logs.
50
+ *
51
+ * `runId` comes from `currentScope()?.runId` — already inherited from
52
+ * `OPENSIP_RUN_ID` at the worker's pre-action hook (B1), the env-first read.
53
+ * The remaining fields (`tool`/`parentCommand`/`traceId`/`repo`/…) come from the
54
+ * spec's `correlation` (Task 1.2 wrote them, sans runId); `shardId` is anchored
55
+ * to this shard; `traceId` falls back to the live `currentTraceparent()` so the
56
+ * worker's own trace context is captured even if the spec omitted it.
57
+ *
58
+ * Missing-correlation degradation (M2): when BOTH the spec's `correlation` and
59
+ * `correlationFromEnv()` are absent the worker still runs (with the
60
+ * fresh/inherited `runId`) but emits a `cli.subprocess.correlation_missing`
61
+ * WARN so the gap is observable, not silent.
62
+ */
63
+ function resolveWorkerCorrelation(spec) {
64
+ const runId = currentScope()?.runId ?? '';
65
+ const fromEnv = correlationFromEnv();
66
+ if (spec.correlation === undefined && fromEnv === undefined) {
67
+ currentLogger().warn({
68
+ evt: 'cli.subprocess.correlation_missing',
69
+ module: 'graph:shard-worker',
70
+ runId,
71
+ workerKind: 'shard',
72
+ reason: 'no correlation env or spec',
73
+ });
74
+ }
75
+ return {
76
+ runId,
77
+ tool: spec.correlation?.tool ?? fromEnv?.tool ?? '',
78
+ parentCommand: spec.correlation?.parentCommand ?? fromEnv?.parentCommand ?? '',
79
+ workerKind: 'shard',
80
+ shardId: spec.shard.id,
81
+ ...spec.correlation,
82
+ // traceId: prefer the spec/env value, else the worker's live trace context.
83
+ traceId: spec.correlation?.traceId ?? fromEnv?.traceId ?? currentTraceparent(),
84
+ };
85
+ }
86
+ /**
87
+ * Build the OTel span base attrs for a shard worker — the shard id plus the
88
+ * correlation join keys, referencing the single attr-name source ({@link
89
+ * REPO_OTEL_ATTR}/{@link TENANT_OTEL_ATTR}, Q4). Undefined values are OMITTED so
90
+ * no span carries an empty attribute.
91
+ */
92
+ function shardSpanAttrs(corr) {
93
+ const attrs = { 'opensip_cli.graph.shard_id': corr.shardId ?? '' };
94
+ if (corr.runId)
95
+ attrs['opensip.run_id'] = corr.runId;
96
+ if (corr.parentCommand)
97
+ attrs['opensip.parent_command'] = corr.parentCommand;
98
+ if (corr.repo !== undefined)
99
+ attrs[REPO_OTEL_ATTR] = corr.repo;
100
+ if (corr.tenantId !== undefined)
101
+ attrs[TENANT_OTEL_ATTR] = corr.tenantId;
102
+ return attrs;
103
+ }
26
104
  /**
27
105
  * Build one shard and emit its `ShardBuildResult` as JSON on stdout.
28
106
  * Exits non-zero (via setExitCode) on failure so the parent can attribute
29
107
  * the error to this shard.
30
108
  */
31
109
  export async function executeShardWorker(specPath, cli) {
110
+ // Per-run logger (ADR-0053): the worker's own bootstrap stamped the daily-logs
111
+ // file sink onto `currentScope().logger`. The module singleton has no file sink,
112
+ // so `graph.shard.worker.*` lines must go through `currentLogger()` to land in
113
+ // the JSONL file the 2am playbook filters by `runId`/`shardId`.
114
+ const workerLogger = currentLogger();
32
115
  let shardId = '<unknown>';
116
+ // The full correlation for failure logging. Resolved lazily once the spec
117
+ // parses; until then a bare bag carries the env-inherited runId (B1) so even a
118
+ // spec-parse failure logs an attributable line.
119
+ let correlation = {
120
+ runId: currentScope()?.runId ?? '',
121
+ tool: correlationFromEnv()?.tool ?? '',
122
+ parentCommand: correlationFromEnv()?.parentCommand ?? '',
123
+ workerKind: 'shard',
124
+ };
125
+ // Worker-internal diagnostic timing — tool-owned (NOT a generic StoredSession
126
+ // column; host-owned-run-timing). Drives `durationMs` on `worker.complete`.
127
+ const startedAt = Date.now();
33
128
  try {
34
129
  const spec = JSON.parse(readFileSync(specPath, 'utf8'));
35
130
  shardId = spec.shard.id;
36
- const result = await buildShard(spec);
131
+ correlation = resolveWorkerCorrelation(spec);
132
+ workerLogger.info({
133
+ evt: 'graph.shard.worker.start',
134
+ module: 'graph:shard-worker',
135
+ ...workerLogFields(correlation),
136
+ });
137
+ const result = await buildShard(spec, correlation);
37
138
  // Single write of the whole JSON document — the parent reads stdout to EOF.
38
139
  process.stdout.write(JSON.stringify(result));
140
+ workerLogger.info({
141
+ evt: 'graph.shard.worker.complete',
142
+ module: 'graph:shard-worker',
143
+ ...workerLogFields(correlation),
144
+ durationMs: Date.now() - startedAt,
145
+ });
39
146
  cli.setExitCode(0);
40
147
  }
41
148
  catch (error) {
42
- logger.error({
149
+ workerLogger.error({
43
150
  evt: 'graph.shard.worker.error',
44
151
  module: 'graph:shard-worker',
152
+ ...workerLogFields(correlation),
45
153
  shardId,
46
154
  err: error instanceof Error ? error.message : String(error),
155
+ // The child's own view of the failure class. The parent re-derives this
156
+ // from the exit/parse channel for the runner event; this is the worker's
157
+ // local attribution — a build throw is a non-zero exit from the parent's
158
+ // perspective.
159
+ failureClass: 'exit_nonzero',
47
160
  });
48
161
  process.stderr.write(`graph-shard-worker [${shardId}]: ${error instanceof Error ? error.message : String(error)}\n`);
49
162
  cli.setExitCode(1);
50
163
  }
51
164
  }
52
- async function buildShard(spec) {
165
+ async function buildShard(spec, correlation) {
53
166
  const { shard, projectRoot, resolutionMode } = spec;
54
167
  const adapter = pickAdapter(shard.rootDir, spec.language);
55
168
  // Anchor compiler options to the shard's own config, but compute
@@ -72,12 +185,15 @@ async function buildShard(spec) {
72
185
  configPathAbs: shard.configPathAbs ?? discovered.configPathAbs,
73
186
  compilerOptions: discovered.compilerOptions,
74
187
  };
75
- // Emit per-stage spans tagged with this shard's id. They nest under the
76
- // parent build's sharded span via the TRACEPARENT the runner propagates into
77
- // this worker's env (extracted at the CLI boundary by initTelemetry). No live
78
- // view here the worker is headless so no progress/monitor plumbing.
188
+ // Emit per-stage spans tagged with this shard's id AND the correlation join
189
+ // keys (run id, parent command, repo/tenant via the single attr-name source
190
+ // Q4) so a sharded-build trace is attributable to its parent run. They nest
191
+ // under the parent build's sharded span via the TRACEPARENT the runner
192
+ // propagates into this worker's env (extracted at the CLI boundary by
193
+ // initTelemetry). No live view here — the worker is headless — so no
194
+ // progress/monitor plumbing.
79
195
  const built = await buildAndResolveCatalog({
80
- runStage: spanRunStage({ 'opensip_cli.graph.shard_id': shard.id }),
196
+ runStage: spanRunStage(shardSpanAttrs(correlation)),
81
197
  adapter,
82
198
  discovery,
83
199
  resolutionMode,
@@ -1 +1 @@
1
- {"version":3,"file":"shard-worker.js","sourceRoot":"","sources":["../../src/cli/shard-worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shard-worker.js","sourceRoot":"","sources":["../../src/cli/shard-worker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAM1E;;;;;GAKG;AACH,SAAS,eAAe,CAAC,CAAiB;IACxC,MAAM,MAAM,GAA2B;QACrC,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,aAAa,EAAE,CAAC,CAAC,aAAa;KAC/B,CAAC;IACF,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS;QAAE,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;IACxD,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS;QAAE,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;IAC/C,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS;QAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACrD,IAAI,CAAC,CAAC,QAAQ,KAAK,SAAS;QAAE,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;IAC3D,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS;QAAE,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;IACxD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAS,wBAAwB,CAAC,IAAqB;IACrD,MAAM,KAAK,GAAG,YAAY,EAAE,EAAE,KAAK,IAAI,EAAE,CAAC;IAC1C,MAAM,OAAO,GAAG,kBAAkB,EAAE,CAAC;IACrC,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC5D,aAAa,EAAE,CAAC,IAAI,CAAC;YACnB,GAAG,EAAE,oCAAoC;YACzC,MAAM,EAAE,oBAAoB;YAC5B,KAAK;YACL,UAAU,EAAE,OAAO;YACnB,MAAM,EAAE,4BAA4B;SACrC,CAAC,CAAC;IACL,CAAC;IACD,OAAO;QACL,KAAK;QACL,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,IAAI,OAAO,EAAE,IAAI,IAAI,EAAE;QACnD,aAAa,EAAE,IAAI,CAAC,WAAW,EAAE,aAAa,IAAI,OAAO,EAAE,aAAa,IAAI,EAAE;QAC9E,UAAU,EAAE,OAAO;QACnB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;QACtB,GAAG,IAAI,CAAC,WAAW;QACnB,4EAA4E;QAC5E,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,IAAI,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE;KAC/E,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,cAAc,CAAC,IAAoB;IAC1C,MAAM,KAAK,GAAe,EAAE,4BAA4B,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;IAC/E,IAAI,IAAI,CAAC,KAAK;QAAE,KAAK,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;IACrD,IAAI,IAAI,CAAC,aAAa;QAAE,KAAK,CAAC,wBAAwB,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC;IAC7E,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;QAAE,KAAK,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;IAC/D,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;QAAE,KAAK,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;IACzE,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,QAAgB,EAAE,GAAmB;IAC5E,+EAA+E;IAC/E,iFAAiF;IACjF,+EAA+E;IAC/E,gEAAgE;IAChE,MAAM,YAAY,GAAG,aAAa,EAAE,CAAC;IACrC,IAAI,OAAO,GAAG,WAAW,CAAC;IAC1B,0EAA0E;IAC1E,+EAA+E;IAC/E,gDAAgD;IAChD,IAAI,WAAW,GAAmB;QAChC,KAAK,EAAE,YAAY,EAAE,EAAE,KAAK,IAAI,EAAE;QAClC,IAAI,EAAE,kBAAkB,EAAE,EAAE,IAAI,IAAI,EAAE;QACtC,aAAa,EAAE,kBAAkB,EAAE,EAAE,aAAa,IAAI,EAAE;QACxD,UAAU,EAAE,OAAO;KACpB,CAAC;IACF,8EAA8E;IAC9E,4EAA4E;IAC5E,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAoB,CAAC;QAC3E,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACxB,WAAW,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC;QAC7C,YAAY,CAAC,IAAI,CAAC;YAChB,GAAG,EAAE,0BAA0B;YAC/B,MAAM,EAAE,oBAAoB;YAC5B,GAAG,eAAe,CAAC,WAAW,CAAC;SAChC,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QACnD,4EAA4E;QAC5E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7C,YAAY,CAAC,IAAI,CAAC;YAChB,GAAG,EAAE,6BAA6B;YAClC,MAAM,EAAE,oBAAoB;YAC5B,GAAG,eAAe,CAAC,WAAW,CAAC;YAC/B,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;SACnC,CAAC,CAAC;QACH,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,YAAY,CAAC,KAAK,CAAC;YACjB,GAAG,EAAE,0BAA0B;YAC/B,MAAM,EAAE,oBAAoB;YAC5B,GAAG,eAAe,CAAC,WAAW,CAAC;YAC/B,OAAO;YACP,GAAG,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YAC3D,wEAAwE;YACxE,yEAAyE;YACzE,yEAAyE;YACzE,eAAe;YACf,YAAY,EAAE,cAAc;SAC7B,CAAC,CAAC;QACH,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,uBAAuB,OAAO,MAAM,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAC/F,CAAC;QACF,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,UAAU,CACvB,IAAqB,EACrB,WAA2B;IAE3B,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;IACpD,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAE1D,iEAAiE;IACjE,oEAAoE;IACpE,oEAAoE;IACpE,yEAAyE;IACzE,0EAA0E;IAC1E,6EAA6E;IAC7E,6EAA6E;IAC7E,yEAAyE;IACzE,yEAAyE;IACzE,yEAAyE;IACzE,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC;QACvC,GAAG,EAAE,KAAK,CAAC,OAAO;QAClB,kBAAkB,EAAE,KAAK,CAAC,aAAa;KACxC,CAAC,CAAC;IACH,MAAM,SAAS,GAAmB;QAChC,aAAa,EAAE,WAAW;QAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,aAAa,EAAE,KAAK,CAAC,aAAa,IAAI,UAAU,CAAC,aAAa;QAC9D,eAAe,EAAE,UAAU,CAAC,eAAe;KAC5C,CAAC;IAEF,4EAA4E;IAC5E,8EAA8E;IAC9E,4EAA4E;IAC5E,uEAAuE;IACvE,sEAAsE;IACtE,qEAAqE;IACrE,6BAA6B;IAC7B,MAAM,KAAK,GAAG,MAAM,sBAAsB,CAAC;QACzC,QAAQ,EAAE,YAAY,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACnD,OAAO;QACP,SAAS;QACT,cAAc;QACd,iBAAiB,EAAE,IAAI;QACvB,wEAAwE;QACxE,sEAAsE;QACtE,sDAAsD;QACtD,UAAU,EAAE,SAAS;KACtB,CAAC,CAAC;IAEH,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,EAAE;QACjB,QAAQ,EAAE,KAAK,CAAC,OAAO;QACvB,WAAW,EAAE,uBAAuB,CAAC,KAAK,CAAC,KAAK,CAAC;QACjD,aAAa,EAAE,KAAK,CAAC,aAAa,IAAI,EAAE;QACxC,WAAW,EAAE,KAAK,CAAC,WAAW;KAC/B,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"symbol-index.d.ts","sourceRoot":"","sources":["../../src/cli/symbol-index.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAUH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGxD,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,WAAW;IACnB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,UAAU,mBAAmB;IAC3B,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,CAAC,CAAC;IACzD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;CACzD;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,yBAAyB,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CA+C7F;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,mBAAmB,CAgBnE"}
1
+ {"version":3,"file":"symbol-index.d.ts","sourceRoot":"","sources":["../../src/cli/symbol-index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAUH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGxD,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,WAAW;IACnB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,UAAU,mBAAmB;IAC3B,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,CAAC,CAAC;IACzD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;CACzD;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,yBAAyB,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,CA+C7F;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,mBAAmB,CAgBnE"}
@@ -1,5 +1,3 @@
1
- // @fitness-ignore-file no-direct-stdout-in-tool-engine -- auxiliary subcommand status line: `graph symbol-index` writes its artifact to a file and prints a one-line "wrote N symbols to <path>" confirmation. This is not the signal-envelope run output (ADR-0011), which routes through the composition root.
2
- // @fitness-ignore-file only-documented-toolcli-seams -- same rationale as above: this is the one-line "wrote N symbols to <path>" status confirmation after a file write, not user-facing run output through a ToolCliContext seam.
3
1
  /**
4
2
  * `opensip graph symbol-index --out <path>` — emit a symbol-index
5
3
  * JSON artifact suitable for agent consumption (e.g., feeding into a
@@ -1 +1 @@
1
- {"version":3,"file":"symbol-index.js","sourceRoot":"","sources":["../../src/cli/symbol-index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"symbol-index.js","sourceRoot":"","sources":["../../src/cli/symbol-index.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,7 @@ export { runGraph, GRAPH_STAGES } from './cli/orchestrate.js';
18
18
  export type { GraphStage, GraphProgressEvent, GraphProgressCallback, RunGraphInput, RunGraphResult, } from './cli/orchestrate.js';
19
19
  export { executeGraph, buildUnifiedReportLines } from './cli/graph.js';
20
20
  export type { UnifiedReportInput } from './cli/graph.js';
21
+ export { graphDoneTableNode } from './cli/graph-envelope-view.js';
21
22
  export { CatalogRepo } from './persistence/catalog-repo.js';
22
23
  export { MemoryPressureError } from './cli/pressure-monitor.js';
23
24
  export { HEAP_TARGETS, decideHeapTargetMb, systemHasMemoryFor, runHeapPreflight, totalSystemMemoryMb, } from './cli/heap-preflight.js';
@@ -1 +1 @@
1
- {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAKrD,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAU9D,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC9D,YAAY,EACV,UAAU,EACV,kBAAkB,EAClB,qBAAqB,EACrB,aAAa,EACb,cAAc,GACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACvE,YAAY,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAQzD,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC"}
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAKrD,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAU9D,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC9D,YAAY,EACV,UAAU,EACV,kBAAkB,EAClB,qBAAqB,EACrB,aAAa,EACb,cAAc,GACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACvE,YAAY,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAMzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAQlE,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC"}
package/dist/internal.js CHANGED
@@ -26,6 +26,11 @@ export { orphanSubtreeRule } from './rules/orphan-subtree.js';
26
26
  // end without going through Commander.
27
27
  export { runGraph, GRAPH_STAGES } from './cli/orchestrate.js';
28
28
  export { executeGraph, buildUnifiedReportLines } from './cli/graph.js';
29
+ // The graph live verbose/detail per-unit table node. Internal — exported only
30
+ // so the host-side live/static parity proof
31
+ // (`packages/cli/src/ui/__tests__/graph-live-static-parity.test.tsx`) can assert
32
+ // it renders byte-identically to the static `envelopeToTableView` table.
33
+ export { graphDoneTableNode } from './cli/graph-envelope-view.js';
29
34
  // `CatalogRepo` — the engine's SQLite/Drizzle catalog persistence repo. Used
30
35
  // internally by graph (orchestrator cache, `tool.ts` report contribution,
31
36
  // `lookup`/`catalog-export`). It was briefly on the public barrel for fitness's
@@ -1 +1 @@
1
- {"version":3,"file":"internal.js","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,yEAAyE;AACzE,+EAA+E;AAC/E,8DAA8D;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAOrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,sEAAsE;AACtE,EAAE;AACF,sEAAsE;AACtE,2EAA2E;AAC3E,qFAAqF;AACrF,wEAAwE;AACxE,wEAAwE;AACxE,uCAAuC;AACvC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAQ9D,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAGvE,6EAA6E;AAC7E,0EAA0E;AAC1E,gFAAgF;AAChF,0EAA0E;AAC1E,8EAA8E;AAC9E,kFAAkF;AAClF,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,yEAAyE;AACzE,+EAA+E;AAC/E,8DAA8D;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAOrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,sEAAsE;AACtE,EAAE;AACF,sEAAsE;AACtE,2EAA2E;AAC3E,qFAAqF;AACrF,wEAAwE;AACxE,wEAAwE;AACxE,uCAAuC;AACvC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAQ9D,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAGvE,8EAA8E;AAC9E,4CAA4C;AAC5C,iFAAiF;AACjF,yEAAyE;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElE,6EAA6E;AAC7E,0EAA0E;AAC1E,gFAAgF;AAChF,0EAA0E;AAC1E,8EAA8E;AAC9E,kFAAkF;AAClF,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,yBAAyB,CAAC"}
@@ -1,15 +1,20 @@
1
- import type { GraphDoneResult, StoredSession, ToolSessionReplay } from '@opensip-cli/contracts';
1
+ import type { RunPresentation, StoredSession, ToolSessionReplay } from '@opensip-cli/contracts';
2
2
  /**
3
- * Project a stored graph session back into a {@link SignalEnvelope}/{@link GraphDoneResult}.
3
+ * Project a stored graph session back into a {@link SignalEnvelope}/{@link RunPresentation}.
4
4
  *
5
5
  * The structural decode of the opaque payload is shared across tools
6
6
  * (`decodeSessionPayload`, here with `requireFilePath`/`requireViolationCount`/
7
7
  * `allowMetadata` — graph findings always carry those); this function owns only
8
8
  * graph's projection (`tool: 'graph'`, `category: 'architecture'`, signal id
9
- * prefix, `graph-done` summary).
9
+ * prefix).
10
+ *
11
+ * The replay RENDER path reads only `replay.envelope` + `replay.fidelity` —
12
+ * `graph-command-spec.ts` builds the host `SessionReplayResult` from those
13
+ * (`sessionReplayResult`/`sessionShowJson`). The inner `RunPresentation` `result`
14
+ * is a uniform, render-only carrier and is not on the replay render path.
10
15
  *
11
16
  * @throws {Error | TypeError} when the stored payload is not the expected shape
12
17
  * (propagated from `decodeSessionPayload`).
13
18
  */
14
- export declare function graphReplayFromSession(stored: StoredSession): ToolSessionReplay<GraphDoneResult>;
19
+ export declare function graphReplayFromSession(stored: StoredSession): ToolSessionReplay<RunPresentation>;
15
20
  //# sourceMappingURL=session-replay.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-replay.d.ts","sourceRoot":"","sources":["../../src/persistence/session-replay.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,eAAe,EAEf,aAAa,EACb,iBAAiB,EAElB,MAAM,wBAAwB,CAAC;AAGhC;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,aAAa,GAAG,iBAAiB,CAAC,eAAe,CAAC,CA8ChG"}
1
+ {"version":3,"file":"session-replay.d.ts","sourceRoot":"","sources":["../../src/persistence/session-replay.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,eAAe,EAEf,aAAa,EACb,iBAAiB,EAElB,MAAM,wBAAwB,CAAC;AAGhC;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,aAAa,GAAG,iBAAiB,CAAC,eAAe,CAAC,CAqChG"}
@@ -1,12 +1,17 @@
1
1
  import { decodeSessionPayload } from '@opensip-cli/session-store';
2
2
  /**
3
- * Project a stored graph session back into a {@link SignalEnvelope}/{@link GraphDoneResult}.
3
+ * Project a stored graph session back into a {@link SignalEnvelope}/{@link RunPresentation}.
4
4
  *
5
5
  * The structural decode of the opaque payload is shared across tools
6
6
  * (`decodeSessionPayload`, here with `requireFilePath`/`requireViolationCount`/
7
7
  * `allowMetadata` — graph findings always carry those); this function owns only
8
8
  * graph's projection (`tool: 'graph'`, `category: 'architecture'`, signal id
9
- * prefix, `graph-done` summary).
9
+ * prefix).
10
+ *
11
+ * The replay RENDER path reads only `replay.envelope` + `replay.fidelity` —
12
+ * `graph-command-spec.ts` builds the host `SessionReplayResult` from those
13
+ * (`sessionReplayResult`/`sessionShowJson`). The inner `RunPresentation` `result`
14
+ * is a uniform, render-only carrier and is not on the replay render path.
10
15
  *
11
16
  * @throws {Error | TypeError} when the stored payload is not the expected shape
12
17
  * (propagated from `decodeSessionPayload`).
@@ -42,16 +47,7 @@ export function graphReplayFromSession(stored) {
42
47
  return {
43
48
  fidelity: 'projection',
44
49
  envelope,
45
- result: {
46
- type: 'graph-done',
47
- summary: {
48
- passed: payload.summary.passed,
49
- failed: payload.summary.failed,
50
- errors: payload.summary.errors,
51
- warnings: payload.summary.warnings,
52
- },
53
- durationMs: stored.durationMs,
54
- },
50
+ result: { type: 'run-presentation', tool: 'graph', envelope },
55
51
  };
56
52
  }
57
53
  function replaySignal(stored, source, finding, checkIndex, findingIndex) {
@@ -1 +1 @@
1
- {"version":3,"file":"session-replay.js","sourceRoot":"","sources":["../../src/persistence/session-replay.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-replay.js","sourceRoot":"","sources":["../../src/persistence/session-replay.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;GAmBG;AA+BH,OAAO,yBAAyB,CAAC;AAGjC,OAAO,KAAK,EAIV,IAAI,EAIL,MAAM,mBAAmB,CAAC;AAyK3B;;GAEG;AACH,eAAO,MAAM,sBAAsB,UAAU,CAAC;AAE9C,eAAO,MAAM,eAAe,yCAAyC,CAAC;AAEtE,eAAO,MAAM,SAAS,EAAE,IAgDvB,CAAC"}
1
+ {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;GAmBG;AA8BH,OAAO,yBAAyB,CAAC;AAGjC,OAAO,KAAK,EAGV,IAAI,EAGL,MAAM,mBAAmB,CAAC;AAmG3B;;GAEG;AACH,eAAO,MAAM,sBAAsB,UAAU,CAAC;AAE9C,eAAO,MAAM,eAAe,yCAAyC,CAAC;AAEtE,eAAO,MAAM,SAAS,EAAE,IAoBtB,CAAC"}
package/dist/tool.js CHANGED
@@ -19,14 +19,14 @@
19
19
  * (rules, entry points, catalog summary) are reachable via the single `graph`
20
20
  * invocation.
21
21
  */
22
- import { logger, readPackageVersion } from '@opensip-cli/core';
22
+ import { createToolScope, defineTool, logger, readPackageVersion } from '@opensip-cli/core';
23
23
  // PR 3 of plan 2026-05-23-plan-graph-adapter-package-split.md: the
24
24
  // engine no longer hosts adapter source. First-party adapters live in
25
25
  // their own packages and register via the CLI's discovery walker
26
26
  // (register-graph-adapters.ts). The historical engine-side bootstrap is
27
27
  // gone.
28
28
  import { graphFingerprintStrategy } from './baseline-strategy.js';
29
- import { graphBaselineExportCommandSpec, graphCatalogExportCommandSpec, graphEquivalenceCheckCommandSpec, graphLookupCommandSpec, graphRecipesCommandSpec, graphSarifExportCommandSpec, graphShardWorkerCommandSpec, graphSymbolIndexCommandSpec, } from './cli/graph/graph-aux-command-specs.js';
29
+ import { graphEquivalenceCheckCommandSpec, graphExportCommandSpec, graphIndexGroupedCommandSpec, graphListCommandSpec, graphLookupGroupedCommandSpec, graphRecipesGroupedCommandSpec, graphShardWorkerCommandSpec, } from './cli/graph/graph-aux-command-specs.js';
30
30
  import { graphCommandSpec } from './cli/graph/graph-command-spec.js';
31
31
  import { graphConfigDeclaration } from './cli/graph-config-schema.js';
32
32
  import { graphRunWorkerCommandSpec } from './cli/graph-worker.js';
@@ -40,70 +40,30 @@ import { createRulesRegistry } from './rules/registry.js';
40
40
  // loaded so `scope.graph` is correctly-typed here.
41
41
  import './scope-augmentation.js';
42
42
  // =============================================================================
43
- // COMMAND DESCRIPTORS — used by --help listings and conflict detection.
44
- // =============================================================================
45
- const GRAPH = {
46
- name: 'graph',
47
- description: 'Run static call-graph analysis (rules, entry points, catalog summary in one report)',
48
- };
49
- const GRAPH_LOOKUP = {
50
- name: 'graph-lookup',
51
- description: 'Look up function occurrences by simple name from the persisted catalog',
52
- };
53
- const GRAPH_SYMBOL_INDEX = {
54
- name: 'graph-symbol-index',
55
- description: 'Emit a symbolindex.json artifact (name→file:line and file→names) from the persisted catalog',
56
- };
57
- const GRAPH_BASELINE_EXPORT = {
58
- name: 'graph-baseline-export',
59
- description: 'Export the graph gate baseline (JSON) from the datastore to a file',
60
- };
61
- const GRAPH_SHARD_WORKER = {
62
- name: 'graph-shard-worker',
63
- description: '[internal] Build one shard from a spec file and emit a ShardBuildResult JSON (spawned by the sharded build)',
64
- };
65
- const GRAPH_EQUIVALENCE_CHECK = {
66
- name: 'graph-equivalence-check',
67
- description: '[internal] Verify the sharded build is byte-equivalent to the exact build on a real repo (gates production edge divergence against a committed budget)',
68
- };
69
- const GRAPH_RUN_WORKER = {
70
- name: 'graph-run-worker',
71
- description: '[internal] Run the graph build headless and stream progress + result over IPC (forked by the live view)',
72
- };
73
- const GRAPH_CATALOG_EXPORT = {
74
- name: 'catalog-export',
75
- description: 'Run graph analysis and write the CatalogExport JSON document (symbols + edges + provenance) to a file',
76
- };
77
- const GRAPH_SARIF_EXPORT = {
78
- name: 'sarif-export',
79
- description: 'Run graph analysis and write OpenSIP-convention SARIF v2.1.0 findings to a file',
80
- };
81
- const GRAPH_RECIPES = {
82
- name: 'graph-recipes',
83
- description: 'List available graph recipes',
84
- };
85
- // =============================================================================
86
43
  // COMMAND-SPEC ASSEMBLY
87
44
  // =============================================================================
88
45
  /**
89
- * graph's declarative command surface (launch Phase 5). The host mounts
90
- * each spec via `mountCommandSpec`; graph no longer touches Commander. Order is
91
- * preserved from the former `register()` mount order (graph, graph-lookup,
92
- * graph-shard-worker, graph-symbol-index, graph-baseline-export, catalog-export,
93
- * sarif-export, graph-recipes). The primary `graph` spec sets its own live-view
94
- * renderer up lazily inside its handler's interactive branch (no mount-time
95
- * `register()` hook in the spec-mounted world).
46
+ * graph's declarative command surface. The host mounts each spec via
47
+ * `mountCommandSpec`; graph no longer touches Commander. The primary `graph`
48
+ * spec sets its own live-view renderer up lazily inside its handler's
49
+ * interactive branch (no mount-time `register()` hook in the spec-mounted
50
+ * world). The canonical surface is the nested `<tool> <verb>` grammar — `graph
51
+ * export` / `graph recipes` / `graph lookup` / `graph index` / `graph list` —
52
+ * the legacy flat-root aliases were removed.
96
53
  */
97
54
  const graphCommandSpecs = [
98
55
  graphCommandSpec,
99
- graphLookupCommandSpec,
100
56
  graphShardWorkerCommandSpec,
101
57
  graphRunWorkerCommandSpec,
102
- graphSymbolIndexCommandSpec,
103
- graphBaselineExportCommandSpec,
104
- graphCatalogExportCommandSpec,
105
- graphSarifExportCommandSpec,
106
- graphRecipesCommandSpec,
58
+ // Canonical nested export — mounts as `graph export` under the `graph` primary
59
+ // via the nested-mount capability.
60
+ graphExportCommandSpec,
61
+ // Grouped Tier-2 children — `graph recipes` / `graph lookup` / `graph index` /
62
+ // `graph list` nest under the `graph` primary via the nested-mount capability.
63
+ graphRecipesGroupedCommandSpec,
64
+ graphLookupGroupedCommandSpec,
65
+ graphIndexGroupedCommandSpec,
66
+ graphListCommandSpec,
107
67
  graphEquivalenceCheckCommandSpec,
108
68
  ];
109
69
  /**
@@ -118,27 +78,14 @@ const graphCommandSpecs = [
118
78
  const registerGraphAdapter = (contribution) => {
119
79
  currentAdapterRegistry().register(contribution);
120
80
  };
121
- /**
122
- * Per-run subscope contribution (D7). Called by the CLI's pre-action-hook
123
- * after constructing the scope and before entering it; the kernel installs
124
- * the returned `graph` slot. Fresh adapter + rule registries per run so
125
- * concurrent scopes carry independent graph state.
126
- *
127
- * Adapter seeding: the fresh adapter registry starts EMPTY. The generic
128
- * capability loader (§5.3/§4.5) discovers `graph-adapter` packages per run and
129
- * routes each through {@link registerGraphAdapter} into this scope's registry
130
- * (driven by the CLI pre-action hook), so `pickAdapter` resolves them — no
131
- * process-global discovered-adapters holder.
132
- */
133
- function contributeScope() {
134
- return {
135
- graph: {
136
- adapters: createAdapterRegistry(),
137
- rules: createRulesRegistry(),
138
- recipes: createRecipeRegistry(),
139
- },
140
- };
141
- }
81
+ const graphScope = createToolScope({
82
+ slot: 'graph',
83
+ create: () => ({
84
+ adapters: createAdapterRegistry(),
85
+ rules: createRulesRegistry(),
86
+ recipes: createRecipeRegistry(),
87
+ }),
88
+ });
142
89
  /**
143
90
  * Dashboard-data contribution (audit 2026-05-29, L2). Graph owns its
144
91
  * Code Paths panel data: it returns the graph catalog (via its own
@@ -189,53 +136,25 @@ function collectReportData(scope) {
189
136
  */
190
137
  export const GRAPH_CONTRACT_VERSION = '1.0.0';
191
138
  export const GRAPH_STABLE_ID = '3873f1c2-02a9-4719-930a-bca74b62b706';
192
- export const graphTool = {
139
+ export const graphTool = defineTool({
193
140
  metadata: {
194
141
  id: GRAPH_STABLE_ID, // stable UUID (per ADR-0048; matches Checks `id` naming)
195
142
  name: 'graph', // human key (previously the value in `id`)
196
143
  version: readPackageVersion(import.meta.url),
197
144
  description: 'Static call-graph + dead-end analysis',
198
145
  },
199
- commands: [
200
- GRAPH,
201
- GRAPH_LOOKUP,
202
- GRAPH_SYMBOL_INDEX,
203
- GRAPH_BASELINE_EXPORT,
204
- GRAPH_SHARD_WORKER,
205
- GRAPH_EQUIVALENCE_CHECK,
206
- GRAPH_RUN_WORKER,
207
- GRAPH_CATALOG_EXPORT,
208
- GRAPH_SARIF_EXPORT,
209
- GRAPH_RECIPES,
210
- ],
211
- // Launch Phase 5: graph declares its command surface; the host mounts
212
- // each spec via mountCommandSpec. The deprecated `register()` fallback is gone
213
- // — graph no longer touches Commander.
214
146
  commandSpecs: graphCommandSpecs,
215
- contributeScope,
216
- collectReportData,
217
- sessionReplay: {
218
- tool: 'graph',
219
- replaySession: graphReplayFromSession,
220
- },
221
- // ADR-0023 Phase 4: graph contributes its namespaced `graph:` Zod schema so
222
- // the host composes + strict-validates the whole config document before
223
- // dispatch. The schema-bearing `ToolConfigDeclaration` narrows to the
224
- // kernel-side `ToolConfigContribution` carrier (core carries no Zod).
225
- config: graphConfigDeclaration,
226
- // §5.3 Phase 4: graph owns the `graph-adapter` capability domain (declared in
227
- // its manifest). It supplies the REAL registrar so the host can replace the
228
- // manifest-time deferred placeholder once graph's module loads.
229
- capabilityRegistrars: { 'graph-adapter': registerGraphAdapter },
230
- // ADR-0036: graph's byte-preserved baseline identity (ruleId|filePath|line|col),
231
- // read by the host baseline/ratchet seams when graph stamps its gate envelope.
232
- fingerprintStrategy: graphFingerprintStrategy,
233
- // ADR-0047: per-tool contract version for graph's domain surface (rules, catalog,
234
- // execution model, adapter contract, etc.). Independent of core
235
- // TOOL_CONTRACT_VERSION. Declared under extensionPoints for discoverability
236
- // by hosts, agent-catalog, and third-party graph packs.
237
147
  extensionPoints: {
238
148
  graphContractVersion: GRAPH_CONTRACT_VERSION,
149
+ contributeScope: graphScope.contributeScope,
150
+ collectReportData,
151
+ sessionReplay: {
152
+ tool: 'graph',
153
+ replaySession: graphReplayFromSession,
154
+ },
155
+ config: graphConfigDeclaration,
156
+ capabilityRegistrars: { 'graph-adapter': registerGraphAdapter },
157
+ fingerprintStrategy: graphFingerprintStrategy,
239
158
  },
240
- };
159
+ });
241
160
  //# sourceMappingURL=tool.js.map
package/dist/tool.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tool.js","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool.js","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":"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"}