@formigio/fazemos-cli 0.10.42 → 0.10.44

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.
@@ -127,6 +127,19 @@ export interface CreateDispatchRequest {
127
127
  runbook_ref?: string | null;
128
128
  params?: Record<string, unknown> | null;
129
129
  dispatch_depth?: number;
130
+ /**
131
+ * AUTON-CAUSAL-FTR (AC8, AC15) — root chain propagation (rul_runner_root_chain_id_passthrough).
132
+ *
133
+ * Sourced from process.env.ROOT_CHAIN_ID (set by Fargate ECS RunTask env-override
134
+ * alongside FAZEMOS_ORIGINATING_DISPATCH_DEPTH). Included in the outgoing payload
135
+ * ONLY when non-empty after .trim(); OMIT entirely when absent or empty string.
136
+ * The API persists this into dispatch.context.root_chain_id (Option A JSONB) so
137
+ * dispatchWakeService can inherit it on wake (hop-to-hop spine).
138
+ *
139
+ * Absence handling: omitting this field means the wake seam seeds a new root_chain_id
140
+ * — documented degradation (correctness-not-broken; reporting-degraded).
141
+ */
142
+ root_chain_id?: string;
130
143
  }
131
144
  /**
132
145
  * F35 HC2 (BUG52): compute the dispatch_depth for a CLI-created dispatch.
@@ -1 +1 @@
1
- {"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../src/dispatch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../src/dispatch.ts"],"names":[],"mappings":"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"}
package/dist/ftr.d.ts ADDED
@@ -0,0 +1,50 @@
1
+ /**
2
+ * AUTON-CAUSAL-FTR — `fazemos ftr` command.
3
+ *
4
+ * Reports the Causal-FTR (Founder-to-Root ratio) metric:
5
+ * root work-chains seeded by a founder action ÷ total root chains.
6
+ *
7
+ * Signature: fazemos ftr [--window <Nd>] [--org <slug>] [--json]
8
+ *
9
+ * Calls: GET /api/governance/causal-ftr?window_days=<N>[&org_id=<slug>]
10
+ *
11
+ * Human-readable output per UX §7 (in order):
12
+ * header (org + window)
13
+ * → ratio block (e.g. `63%\n─\n42 of 67 root chains in the last 14 days`)
14
+ * → contextual line (UX §7.3 priority order)
15
+ * → breakdown table (all 6 seed_source enum values)
16
+ * → footnote(s) [OQ-1 permanent + optional migration-boundary note]
17
+ *
18
+ * --json: endpoint response verbatim (AC12 LOCKED passthrough — zero reshaping).
19
+ *
20
+ * Error state (UX §7.6): print error to stderr; exit code 1.
21
+ * --json on error: emit `{"error":"ftr_read_failed","detail":"..."}` to stderr.
22
+ *
23
+ * Empty state (UX §5.4): when total_root_chains == 0, ratio line is OMITTED;
24
+ * quiet-state LOCKED copy printed instead.
25
+ *
26
+ * Below-floor advisory (UX §7.3 Priority 2 LOCKED):
27
+ * "Volume below Elena's ≥35/2wk floor — the ratio isn't statistically steerable
28
+ * yet. That's the team being quiet, not the instrument being broken."
29
+ *
30
+ * At-target line (UX §7.3 Priority 3/4 LOCKED template):
31
+ * "You crossed the {date} target (≤{pct}%) this window."
32
+ * + optional "Next target: ≤{next_pct}% by {next_date}." when a subsequent
33
+ * unmet target exists.
34
+ *
35
+ * Manifest: AUTON-CAUSAL-FTR-auton-causal-ftr-manifest.yaml §cli (task_riley_1 / task_riley_2)
36
+ * Spec: AUTON-CAUSAL-FTR-auton-causal-ftr-tech-spec.md §7.1
37
+ * AC: AC11, AC12
38
+ */
39
+ import type { Command } from 'commander';
40
+ /**
41
+ * Register `fazemos ftr` into the root Commander program.
42
+ *
43
+ * Called from src/index.ts alongside registerGovernanceCommands,
44
+ * registerTriggerCommands, etc. (mirrors the module-register pattern at
45
+ * index.ts:10166–10201).
46
+ *
47
+ * @see fazemos-cli/src/governance.ts:518 — mirrors registerGovernanceCommands pattern
48
+ * @see fazemos-cli/src/trigger.ts — mirrors registerTriggerCommands pattern
49
+ */
50
+ export declare function registerFtrCommand(program: Command): void;
package/dist/ftr.js ADDED
@@ -0,0 +1,260 @@
1
+ /**
2
+ * AUTON-CAUSAL-FTR — `fazemos ftr` command.
3
+ *
4
+ * Reports the Causal-FTR (Founder-to-Root ratio) metric:
5
+ * root work-chains seeded by a founder action ÷ total root chains.
6
+ *
7
+ * Signature: fazemos ftr [--window <Nd>] [--org <slug>] [--json]
8
+ *
9
+ * Calls: GET /api/governance/causal-ftr?window_days=<N>[&org_id=<slug>]
10
+ *
11
+ * Human-readable output per UX §7 (in order):
12
+ * header (org + window)
13
+ * → ratio block (e.g. `63%\n─\n42 of 67 root chains in the last 14 days`)
14
+ * → contextual line (UX §7.3 priority order)
15
+ * → breakdown table (all 6 seed_source enum values)
16
+ * → footnote(s) [OQ-1 permanent + optional migration-boundary note]
17
+ *
18
+ * --json: endpoint response verbatim (AC12 LOCKED passthrough — zero reshaping).
19
+ *
20
+ * Error state (UX §7.6): print error to stderr; exit code 1.
21
+ * --json on error: emit `{"error":"ftr_read_failed","detail":"..."}` to stderr.
22
+ *
23
+ * Empty state (UX §5.4): when total_root_chains == 0, ratio line is OMITTED;
24
+ * quiet-state LOCKED copy printed instead.
25
+ *
26
+ * Below-floor advisory (UX §7.3 Priority 2 LOCKED):
27
+ * "Volume below Elena's ≥35/2wk floor — the ratio isn't statistically steerable
28
+ * yet. That's the team being quiet, not the instrument being broken."
29
+ *
30
+ * At-target line (UX §7.3 Priority 3/4 LOCKED template):
31
+ * "You crossed the {date} target (≤{pct}%) this window."
32
+ * + optional "Next target: ≤{next_pct}% by {next_date}." when a subsequent
33
+ * unmet target exists.
34
+ *
35
+ * Manifest: AUTON-CAUSAL-FTR-auton-causal-ftr-manifest.yaml §cli (task_riley_1 / task_riley_2)
36
+ * Spec: AUTON-CAUSAL-FTR-auton-causal-ftr-tech-spec.md §7.1
37
+ * AC: AC11, AC12
38
+ */
39
+ import chalk from 'chalk';
40
+ import { api } from './api.js';
41
+ // ── Helpers ────────────────────────────────────────────────────────────────────
42
+ /**
43
+ * Parse the --window flag value.
44
+ *
45
+ * Accepts `<N>d` format only (e.g. "7d", "14d", "30d").
46
+ * Rejects "2w", "1mo", bare integers, and any non-<N>d form (UX §10.4).
47
+ * Returns the integer day count as a positive integer.
48
+ *
49
+ * Throws a user-facing error on invalid input.
50
+ */
51
+ function parseWindowDays(value) {
52
+ const m = /^(\d+)d$/.exec(value.trim());
53
+ if (!m) {
54
+ throw new Error(`--window must be in <N>d format (e.g. 7d, 14d, 30d). Got: "${value}"\n` +
55
+ ` Note: "2w" and "1mo" are not accepted in v1 — use day counts (14d, 30d).`);
56
+ }
57
+ const n = parseInt(m[1], 10);
58
+ if (n <= 0) {
59
+ throw new Error(`--window must be a positive number of days (e.g. 14d). Got: "${value}"`);
60
+ }
61
+ return n;
62
+ }
63
+ /**
64
+ * Render the seed-source breakdown table.
65
+ *
66
+ * All 6 enum values are always shown, zero-filled per AC9.
67
+ * Order: founder, trigger, dispatch_wake, pipeline, manual, pm_dispatch.
68
+ * Monochrome per UX §11.5 (v1 — color deferred to follow-up).
69
+ */
70
+ function renderBreakdown(by) {
71
+ console.log();
72
+ console.log(chalk.bold(' Seed source breakdown'));
73
+ const rows = [
74
+ ['founder', by.founder],
75
+ ['trigger', by.trigger],
76
+ ['dispatch_wake', by.dispatch_wake],
77
+ ['pipeline', by.pipeline],
78
+ ['manual', by.manual],
79
+ ['pm_dispatch', by.pm_dispatch],
80
+ ];
81
+ for (const [label, count] of rows) {
82
+ console.log(` ${label.padEnd(16)} ${count}`);
83
+ }
84
+ }
85
+ /**
86
+ * Render the footnote block.
87
+ *
88
+ * Permanent OQ-1 footnote appears on EVERY non-error output (AC11).
89
+ * If notes.excludes_pre_migration is present, it is rendered as a second line
90
+ * (state_ftr_migration_boundary — window straddles migration 049 apply date).
91
+ */
92
+ function renderFootnote(notes) {
93
+ console.log();
94
+ console.log(chalk.dim(`* ${notes.numerator_definition}.`));
95
+ if (notes.excludes_pre_migration) {
96
+ console.log(chalk.dim(`* ${notes.excludes_pre_migration}`));
97
+ }
98
+ }
99
+ /**
100
+ * Render the at-target contextual line (UX §7.3 Priority 3/4).
101
+ *
102
+ * Per ec_two_targets_both_met: when multiple targets are met, show the hardest
103
+ * one (lowest pct_at_or_below value = most demanding threshold).
104
+ * When a subsequent unmet target exists, print the optional next-target line.
105
+ *
106
+ * LOCKED copy templates:
107
+ * "You crossed the {date} target (≤{pct}%) this window."
108
+ * "Next target: ≤{next_pct}% by {next_date}."
109
+ */
110
+ function renderAtTargetLine(targets) {
111
+ const metTargets = targets.filter(t => t.met_this_window);
112
+ if (metTargets.length === 0)
113
+ return;
114
+ // Hardest target met: sort ascending by pct_at_or_below (30 < 50); first is hardest.
115
+ const sorted = [...metTargets].sort((a, b) => a.pct_at_or_below - b.pct_at_or_below);
116
+ const hardest = sorted[0];
117
+ // LOCKED copy template (UX §7.3 Priority 3/4)
118
+ console.log(`You crossed the ${hardest.date} target (≤${hardest.pct_at_or_below}%) this window.`);
119
+ // Optional next-target line: find unmet targets with a higher threshold (easier/sooner).
120
+ const unmet = targets.filter(t => !t.met_this_window);
121
+ if (unmet.length > 0) {
122
+ // Next unmet target: sort descending by pct_at_or_below (easiest remaining = largest %).
123
+ // In practice targets are ordered from easiest to hardest; in all cases show the one
124
+ // with the largest pct_at_or_below (least demanding) as the "next" milestone.
125
+ const next = [...unmet].sort((a, b) => b.pct_at_or_below - a.pct_at_or_below)[0];
126
+ console.log(`Next target: ≤${next.pct_at_or_below}% by ${next.date}.`);
127
+ }
128
+ console.log();
129
+ }
130
+ // ── Command registration ───────────────────────────────────────────────────────
131
+ /**
132
+ * Register `fazemos ftr` into the root Commander program.
133
+ *
134
+ * Called from src/index.ts alongside registerGovernanceCommands,
135
+ * registerTriggerCommands, etc. (mirrors the module-register pattern at
136
+ * index.ts:10166–10201).
137
+ *
138
+ * @see fazemos-cli/src/governance.ts:518 — mirrors registerGovernanceCommands pattern
139
+ * @see fazemos-cli/src/trigger.ts — mirrors registerTriggerCommands pattern
140
+ */
141
+ export function registerFtrCommand(program) {
142
+ // ── `fazemos ftr` ──────────────────────────────────────────────────────────
143
+ //
144
+ // GET /api/governance/causal-ftr?window_days=<N>[&org_id=<slug>]
145
+ //
146
+ // Org scoping: X-Org-Id header is set by api() from the active org in config.
147
+ // The --org flag passes org_id as a query param (v1: ignored server-side;
148
+ // org resolved from auth context). noProjectHeader: true — org-level endpoint.
149
+ //
150
+ // Auth: requireAuth + requireOrgMembership (any active org member).
151
+ //
152
+ // AC11: renders full UX §7 output across normal/quiet/below-floor/at-target states.
153
+ // AC12: --json output equals endpoint response verbatim (zero reshaping).
154
+ program
155
+ .command('ftr')
156
+ .description('Show the Causal-FTR (Founder-to-Root) ratio — root chains seeded by founder ÷ total root chains.\n\n' +
157
+ 'Measures the Close the Self-Driving Loop arc: ≤50% by Jul 18, ≤30% by Aug 15\n' +
158
+ '(Elena ruling 2026-06-20; valid when ≥35 root chains per trailing window).\n\n' +
159
+ 'Window:\n' +
160
+ ' --window 14d (default) Last 14 days\n' +
161
+ ' --window 7d Last 7 days\n' +
162
+ ' --window 30d Last 30 days\n\n' +
163
+ 'Auth: any active org member. Org resolved from auth context.\n' +
164
+ 'Use --json for machine-readable output (endpoint response verbatim, AC12).')
165
+ .option('--window <duration>', 'trailing window in days: <N>d format (e.g. 7d, 14d, 30d). Rejects 2w/1mo (v1).', '14d')
166
+ .option('--org <slug>', 'org slug (v1 informational: server resolves org from auth context; sent as org_id query param)')
167
+ .option('--json', 'output machine-readable JSON — endpoint response verbatim (AC12 LOCKED passthrough)')
168
+ .action(async (opts) => {
169
+ try {
170
+ // Parse and validate --window
171
+ const windowDays = parseWindowDays(opts.window);
172
+ // Build query string
173
+ const params = new URLSearchParams();
174
+ params.set('window_days', String(windowDays));
175
+ if (opts.org) {
176
+ // Pass slug as org_id; v1: server ignores and uses auth-resolved org.
177
+ // Sent for forward compatibility and diagnostics.
178
+ params.set('org_id', opts.org);
179
+ }
180
+ const path = `/api/governance/causal-ftr?${params.toString()}`;
181
+ // Fetch — noProjectHeader: true (org-level endpoint; no project scoping).
182
+ // X-Org-Id is set by api() from the active org in config.
183
+ const data = await api('GET', path, undefined, { noProjectHeader: true });
184
+ // ── JSON passthrough — AC12 LOCKED ────────────────────────────────────
185
+ // Output MUST equal endpoint response verbatim.
186
+ // Errors go to stderr (catch block below).
187
+ if (opts.json) {
188
+ process.stdout.write(JSON.stringify(data, null, 2) + '\n');
189
+ return;
190
+ }
191
+ // ── Human-readable output per UX §7 ──────────────────────────────────
192
+ const windowLabel = `last ${data.window_days} days`;
193
+ // Header: org + window
194
+ console.log();
195
+ console.log(chalk.bold(`Causal-FTR ${chalk.cyan(data.org)} ${chalk.dim(windowLabel)}`));
196
+ console.log();
197
+ // Quiet state (UX §5.4 / state_ftr_quiet): total_root_chains == 0
198
+ // Ratio line OMITTED; LOCKED quiet-state copy printed instead.
199
+ if (data.total_root_chains === 0) {
200
+ console.log('The team was quiet in this window — no root chains fired.');
201
+ renderBreakdown(data.by_seed_source);
202
+ renderFootnote(data.notes);
203
+ console.log();
204
+ return;
205
+ }
206
+ // Ratio block:
207
+ // 63%
208
+ // ─
209
+ // 42 of 67 root chains in the last 14 days
210
+ const pctStr = data.causal_ftr_pct !== null
211
+ ? `${Math.round(data.causal_ftr_pct)}%`
212
+ : '—';
213
+ console.log(chalk.bold(pctStr));
214
+ console.log('─');
215
+ console.log(`${data.founder_root_chains} of ${data.total_root_chains} root chains in the ${windowLabel}`);
216
+ console.log();
217
+ // Contextual line (UX §7.3 priority order):
218
+ //
219
+ // Priority 2 — below-floor advisory (denominator_meets_floor == false):
220
+ // LOCKED verbatim: "Volume below Elena's ≥35/2wk floor —
221
+ // the ratio isn't statistically steerable yet. That's the team being
222
+ // quiet, not the instrument being broken."
223
+ //
224
+ // Priority 3/4 — at-target line (causal_ftr_pct <= target_pct):
225
+ // LOCKED template: "You crossed the {date} target (≤{pct}%) this window."
226
+ //
227
+ // Between targets: no contextual line emitted.
228
+ if (!data.denominator_meets_floor) {
229
+ // Priority 2 — LOCKED below-floor advisory copy (state_ftr_below_floor)
230
+ console.log(`Volume below Elena's ≥35/2wk floor — the ratio isn't statistically steerable yet. ` +
231
+ `That's the team being quiet, not the instrument being broken.`);
232
+ console.log();
233
+ }
234
+ else if (data.causal_ftr_pct !== null) {
235
+ // Priority 3/4 — at-target check (state_ftr_at_target)
236
+ renderAtTargetLine(data.targets);
237
+ }
238
+ // Breakdown table (all 6 seed_source values — zero-filled per AC9)
239
+ renderBreakdown(data.by_seed_source);
240
+ // Footnote block — PERMANENT on every non-error output (AC11 / OQ-1)
241
+ renderFootnote(data.notes);
242
+ console.log();
243
+ }
244
+ catch (err) {
245
+ // Error state (UX §7.6): exit code 1.
246
+ // --json on error: structured error to stderr (not stdout).
247
+ const msg = err instanceof Error ? err.message : String(err);
248
+ if (opts.json) {
249
+ process.stderr.write(JSON.stringify({ error: 'ftr_read_failed', detail: msg }, null, 2) + '\n');
250
+ }
251
+ else {
252
+ console.error();
253
+ console.error(chalk.red(`Error: ${msg}`));
254
+ console.error(chalk.dim('Ensure you are logged in (`fazemos auth login`) and are a member of the target org.'));
255
+ }
256
+ process.exit(1);
257
+ }
258
+ });
259
+ }
260
+ //# sourceMappingURL=ftr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ftr.js","sourceRoot":"","sources":["../src/ftr.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -22,6 +22,7 @@ import { registerTriggerCommands } from './trigger.js';
22
22
  import { registerWakeCommands } from './wake.js';
23
23
  import { registerGovernanceCommands } from './governance.js';
24
24
  import { registerAutoStartCommands } from './autostart.js';
25
+ import { registerFtrCommand } from './ftr.js';
25
26
  import { parseExecutionsJson, resolveWaitOptions, waitForPipelines, buildAwsCommand, validateExecutionEntry, } from './wait-for-pipeline.js';
26
27
  import { readFileSync, readdirSync, writeFileSync, mkdirSync, existsSync, statSync } from 'fs';
27
28
  import { fileURLToPath } from 'url';
@@ -9152,11 +9153,66 @@ Types: question | task | signal | response | flag | decision | direction`)
9152
9153
  `Run from inside a Fazemos-aware workspace.`);
9153
9154
  }
9154
9155
  // Resolve recipient
9156
+ // rul_dispatch_cli_fallthrough_on_local_unresolved
9155
9157
  const resolved = resolveRole(to, localRegistry);
9156
9158
  if (!resolved) {
9157
- throw new Error(`Role "${to}" not found in local registry or any cross-workspace ref. ` +
9158
- `Check .fazemos/roles.json.`);
9159
+ // Registry-less path: recipient not found in local workspace registry
9160
+ // (e.g. cross-workspace human role like `founder` in a peer workspace).
9161
+ // Fall through to server-side DB resolution via POST /api/dispatches.
9162
+ // The server resolves the recipient via role_registrations (workspace-agnostic).
9163
+ // rul_dispatch_cli_fallthrough_on_local_unresolved
9164
+ const unresolvedDepth = computeChildDispatchDepth(process.env.FAZEMOS_ORIGINATING_DISPATCH_DEPTH);
9165
+ // AUTON-CAUSAL-FTR (AC15) — env-to-payload bridge (rul_runner_root_chain_id_passthrough).
9166
+ // Include root_chain_id ONLY when ROOT_CHAIN_ID env is non-empty after .trim().
9167
+ // DO NOT send empty string — absence means wake seam seeds a new root (documented degradation).
9168
+ const unresolvedRootChainId = process.env.ROOT_CHAIN_ID?.trim() || undefined;
9169
+ const unresolvedReqBody = {
9170
+ to,
9171
+ from: opts.from,
9172
+ type,
9173
+ priority: opts.priority ?? 'normal',
9174
+ body,
9175
+ thread_id: opts.thread ?? null,
9176
+ re: opts.re ? [opts.re] : null,
9177
+ expires_at: opts.expiresAt ?? null,
9178
+ source: 'cli',
9179
+ runbook_ref: opts.runbookRef ?? null,
9180
+ params: runbookParams ?? null,
9181
+ dispatch_depth: unresolvedDepth,
9182
+ ...(unresolvedRootChainId ? { root_chain_id: unresolvedRootChainId } : {}),
9183
+ };
9184
+ let unresolvedResp;
9185
+ try {
9186
+ unresolvedResp = await api('POST', '/api/dispatches', unresolvedReqBody);
9187
+ }
9188
+ catch (err) {
9189
+ // rul_dispatch_4xx_still_hard_fails (BUG53 semantics preserved)
9190
+ // Deliberate 4xx (FROM_ROLE_FORBIDDEN, depth ceiling, validation) hard-fails
9191
+ // in the registry-less path too. No local file fallback — no role.inbox
9192
+ // available (no resolved role entry). Preserves the BUG53 loud-failure contract.
9193
+ // rul_dispatch_local_file_best_effort_cross_workspace
9194
+ const status = err instanceof ApiError ? err.status : undefined;
9195
+ if (!shouldFallBackToFile(status)) {
9196
+ const code = err instanceof ApiError && err.code ? ` ${err.code}` : '';
9197
+ console.error(chalk.red(`✗ Dispatch refused (${status}${code}): ${err instanceof Error ? err.message : String(err)}`));
9198
+ console.error(chalk.gray(' Not falling back to file-only — a deliberate refusal must not be bypassed.'));
9199
+ process.exitCode = 1;
9200
+ return;
9201
+ }
9202
+ // Transient failure (network / 5xx) — no local file fallback in registry-less path.
9203
+ // rul_dispatch_local_file_best_effort_cross_workspace
9204
+ throw err;
9205
+ }
9206
+ // 2xx — server resolved the recipient. Print UX §4.4 stdout copy verbatim.
9207
+ // rul_dispatch_local_file_best_effort_cross_workspace
9208
+ console.log(chalk.green(`✓ Dispatched to ${to} (server-resolved) — id: ${unresolvedResp.id}`));
9209
+ console.log(` Local inbox mirror skipped: '${to}' is not in this workspace's registry;`);
9210
+ console.log(` the durable artifact is the DB row + Slack notification.`);
9211
+ // SKIP local inbox-file write (no role.inbox) — rul_dispatch_local_file_best_effort_cross_workspace
9212
+ // SKIP agent-mode commit+push (no relPath) — rul_dispatch_local_file_best_effort_cross_workspace
9213
+ return;
9159
9214
  }
9215
+ // ── Resolved path: existing behavior unchanged ──────────────────────────
9160
9216
  const { role, registry } = resolved;
9161
9217
  const input = {
9162
9218
  to,
@@ -9191,6 +9247,11 @@ Types: question | task | signal | response | flag | decision | direction`)
9191
9247
  // computeChildDispatchDepth — env var present (agent execution) ⇒
9192
9248
  // parent + 1; absent (human CLI) ⇒ top-of-chain depth 0.
9193
9249
  const dispatchDepth = computeChildDispatchDepth(process.env.FAZEMOS_ORIGINATING_DISPATCH_DEPTH);
9250
+ // AUTON-CAUSAL-FTR (AC15) — env-to-payload bridge (rul_runner_root_chain_id_passthrough).
9251
+ // Include root_chain_id ONLY when ROOT_CHAIN_ID env is non-empty after .trim().
9252
+ // DO NOT send empty string — absence means wake seam seeds a new root (documented degradation).
9253
+ // Mirrors the existing FAZEMOS_ORIGINATING_DISPATCH_DEPTH bridge above.
9254
+ const rootChainId = process.env.ROOT_CHAIN_ID?.trim() || undefined;
9194
9255
  const reqBody = {
9195
9256
  to,
9196
9257
  from: opts.from,
@@ -9204,6 +9265,7 @@ Types: question | task | signal | response | flag | decision | direction`)
9204
9265
  runbook_ref: opts.runbookRef ?? null,
9205
9266
  params: runbookParams ?? null,
9206
9267
  dispatch_depth: dispatchDepth,
9268
+ ...(rootChainId ? { root_chain_id: rootChainId } : {}),
9207
9269
  };
9208
9270
  let apiResp;
9209
9271
  try {
@@ -9543,6 +9605,14 @@ registerGovernanceCommands(program);
9543
9605
  // admin/owner required for disable/enable; any active member for list/status.
9544
9606
  // No fire-now in V1 (spec §11 explicitly excludes it).
9545
9607
  registerAutoStartCommands(program);
9608
+ // ── AUTON-CAUSAL-FTR — Causal-FTR metric: fazemos ftr ───────────────────────
9609
+ // Registers `ftr` top-level command.
9610
+ // Calls GET /api/governance/causal-ftr?window_days=<N>[&org_id=<slug>].
9611
+ // Org-level (noProjectHeader: true); auth-resolved org from X-Org-Id header.
9612
+ // Any active org member can read; 403 for non-members (requireOrgMembership).
9613
+ // AC11: human-readable output per UX §7 (ratio/breakdown/contextual/footnotes).
9614
+ // AC12: --json output equals endpoint response verbatim (LOCKED passthrough).
9615
+ registerFtrCommand(program);
9546
9616
  // Skip auto-parse only when running under Vitest (which sets process.env.VITEST).
9547
9617
  // Tests import `program` and drive it via `program.parseAsync(...)` after mocking
9548
9618
  // `./api.js`. In every other context — direct invocation, npx tsx, OR the bin