@formigio/fazemos-cli 0.10.77 → 0.10.79

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.
@@ -20,6 +20,161 @@
20
20
  * Manifest: cli section (fazemos-cli/src/governance.ts)
21
21
  */
22
22
  import type { Command } from 'commander';
23
+ /** Time window options for the governance rollup. */
24
+ type GovernanceWindow = '24h' | '7d';
25
+ /** Source type for an activity row. */
26
+ type ActivitySourceType = 'trigger' | 'dispatch_wake' | 'dispatch' | 'pipeline_step';
27
+ /** Activity row status values. */
28
+ type ActivityStatus = 'fired' | 'in-flight' | 'suppressed' | 'deferred' | 'depth-refused' | 'failed' | 'skipped';
29
+ /** Org/project hydration object on activity rows. */
30
+ interface OrgRef {
31
+ id: string;
32
+ name: string;
33
+ slug: string;
34
+ colorIndex: number;
35
+ }
36
+ interface ProjectRef {
37
+ id: string;
38
+ name: string;
39
+ slug: string;
40
+ colorIndex: number;
41
+ }
42
+ /** Single activity row from GovernanceStatus.activity.rows. */
43
+ interface ActivityRow {
44
+ id: string;
45
+ source_type: ActivitySourceType;
46
+ role: string | null;
47
+ description: string;
48
+ status: ActivityStatus;
49
+ status_detail: string | null;
50
+ timestamp: string;
51
+ execution_id: string | null;
52
+ org_id: string;
53
+ project_id: string | null;
54
+ org: OrgRef | null;
55
+ project: ProjectRef | null;
56
+ }
57
+ /** Pause scope entry in the control-plane block. */
58
+ interface PauseScope {
59
+ scope: 'global' | 'role' | 'stream';
60
+ scope_key: string | null;
61
+ reason: string | null;
62
+ paused_by_name: string | null;
63
+ paused_at: string;
64
+ paused_until: string | null;
65
+ org_id: string;
66
+ }
67
+ /** GovernanceStatus — full contract returned by GET /api/control-plane/governance. */
68
+ export interface GovernanceStatus {
69
+ window: GovernanceWindow;
70
+ window_start: string;
71
+ generated_at: string;
72
+ control_plane: {
73
+ pause: {
74
+ paused: boolean;
75
+ scopes: PauseScope[];
76
+ };
77
+ budget: {
78
+ unit: 'tokens' | 'usd';
79
+ used: number;
80
+ effective_used: number;
81
+ cap: number | null;
82
+ headroom_pct: number | null;
83
+ resets_at: string | null;
84
+ under_count_note: boolean;
85
+ } | null;
86
+ };
87
+ activity: {
88
+ rows: ActivityRow[];
89
+ total_count: number;
90
+ truncated: boolean;
91
+ sources_degraded: string[];
92
+ };
93
+ cost: {
94
+ unit: 'tokens' | 'usd';
95
+ by_role: Array<{
96
+ role: string;
97
+ spend: number;
98
+ pct: number;
99
+ }>;
100
+ by_project: Array<{
101
+ project_id: string;
102
+ project: ProjectRef | null;
103
+ org_id: string;
104
+ spend: number;
105
+ pct: number;
106
+ }>;
107
+ total: number;
108
+ cap: number | null;
109
+ pct_of_cap: number | null;
110
+ under_count_note: boolean;
111
+ };
112
+ queue: {
113
+ by_role: Array<{
114
+ role: string;
115
+ in_flight: number;
116
+ queued: number;
117
+ }>;
118
+ total_in_flight: number;
119
+ total_queued: number;
120
+ };
121
+ waiting_on_me: {
122
+ dispatches: Array<{
123
+ id: string;
124
+ summary: string;
125
+ from_role: string;
126
+ type: string;
127
+ priority: string;
128
+ created_at: string;
129
+ org_id: string;
130
+ route_to: {
131
+ orgSlug: string;
132
+ projectSlug: string | null;
133
+ path: string;
134
+ };
135
+ }>;
136
+ approval_gates: Array<{
137
+ id: string;
138
+ description: string;
139
+ deadline_at: string | null;
140
+ org_id: string;
141
+ }> | null;
142
+ you_are_clear: boolean;
143
+ };
144
+ meta: {
145
+ orgCount: number;
146
+ projectCount: number;
147
+ roleSlugs: string[];
148
+ };
149
+ /** Item 5: suppression ledger block. Absent on older API — degrade cleanly (T-5h). */
150
+ suppressions?: {
151
+ rows: Array<{
152
+ event_type: string;
153
+ code: string | null;
154
+ reason: string | null;
155
+ /** AC-33 (r4): the suppression class, kept beside the human reason. */
156
+ subreason?: string | null;
157
+ subject_kind: string | null;
158
+ subject_id: string | null;
159
+ project_id: string | null;
160
+ role: string | null;
161
+ created_at: string;
162
+ org_id: string;
163
+ }>;
164
+ total_count: number;
165
+ truncated: boolean;
166
+ window_start: string;
167
+ };
168
+ }
169
+ /**
170
+ * Render the SUPPRESSIONS block of `fazemos governance status` (Item 5 — §3.5.2g).
171
+ *
172
+ * Exported so T-5h can drive it directly: an older API omits `suppressions`
173
+ * entirely, and this MUST render nothing rather than throw (INV-4, additive and
174
+ * unknown-field-tolerant). Individual fields are treated as optional for the same
175
+ * reason — a partial row degrades, it never crashes the status read.
176
+ */
177
+ export declare function renderSuppressions(status: GovernanceStatus): void;
23
178
  /**
24
179
  * Register `governance status` into the root Commander program.
25
180
  * Called from index.ts alongside registerTriggerCommands.
@@ -27,3 +182,4 @@ import type { Command } from 'commander';
27
182
  * @see fazemos-cli/src/trigger.ts:149 — mirrors status sub-command pattern
28
183
  */
29
184
  export declare function registerGovernanceCommands(program: Command): void;
185
+ export {};
@@ -332,6 +332,50 @@ function renderWaitingOnMe(status) {
332
332
  }
333
333
  }
334
334
  }
335
+ /**
336
+ * Render the SUPPRESSIONS block of `fazemos governance status` (Item 5 — §3.5.2g).
337
+ *
338
+ * Exported so T-5h can drive it directly: an older API omits `suppressions`
339
+ * entirely, and this MUST render nothing rather than throw (INV-4, additive and
340
+ * unknown-field-tolerant). Individual fields are treated as optional for the same
341
+ * reason — a partial row degrades, it never crashes the status read.
342
+ */
343
+ export function renderSuppressions(status) {
344
+ // T-5h: older API omits the field — degrade cleanly.
345
+ const suppressions = status?.suppressions;
346
+ if (!suppressions || !Array.isArray(suppressions.rows) || suppressions.rows.length === 0)
347
+ return;
348
+ sectionHeader('SUPPRESSIONS');
349
+ const countLabel = suppressions.truncated
350
+ ? `${suppressions.total_count}+ in window`
351
+ : `${suppressions.total_count} in window`;
352
+ const sinceLabel = suppressions.window_start
353
+ ? ` (since ${new Date(suppressions.window_start).toLocaleString()})`
354
+ : '';
355
+ console.log(chalk.dim(` ${countLabel}${sinceLabel}`));
356
+ console.log();
357
+ for (const row of suppressions.rows) {
358
+ const roleLabel = row.role ? chalk.cyan(row.role.padEnd(32)) : chalk.dim('(no role)'.padEnd(32));
359
+ console.log(` ${roleLabel} ${chalk.yellow(row.event_type)}`);
360
+ if (row.code) {
361
+ console.log(` code: ${chalk.yellow(row.code)}`);
362
+ }
363
+ if (row.reason) {
364
+ console.log(` reason: ${row.reason}`);
365
+ }
366
+ // AC-33 (Dex item-5 F7): the CLASS, printed alongside the explanation.
367
+ if (row.subreason) {
368
+ console.log(` class: ${chalk.dim(row.subreason)}`);
369
+ }
370
+ if (row.subject_kind && row.subject_id) {
371
+ console.log(` subject: ${row.subject_kind}/${chalk.dim(row.subject_id)}`);
372
+ }
373
+ if (row.created_at) {
374
+ console.log(` at: ${new Date(row.created_at).toLocaleString()}`);
375
+ }
376
+ console.log();
377
+ }
378
+ }
335
379
  // ── Command registration ───────────────────────────────────────────────────────
336
380
  /**
337
381
  * Register `governance status` into the root Commander program.
@@ -394,6 +438,7 @@ export function registerGovernanceCommands(program) {
394
438
  renderCost(data);
395
439
  renderQueue(data);
396
440
  renderWaitingOnMe(data);
441
+ renderSuppressions(data);
397
442
  console.log();
398
443
  }
399
444
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"governance.js","sourceRoot":"","sources":["../src/governance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"governance.js","sourceRoot":"","sources":["../src/governance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAyJ/B,kFAAkF;AAElF;;;GAGG;AACH,SAAS,eAAe,CAAC,KAAa;IACpC,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,wCAAwC,KAAK,EAAE,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,CAAqB,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,KAAa;IAClC,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,SAAS,WAAW,CAAC,MAAc,EAAE,IAAsB;IACzD,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;QACnB,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IACjC,CAAC;IACD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,cAAc,EAAE,IAAI,CAAC;AACpD,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAAC,GAAW;IAC5B,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;AAC9B,CAAC;AAED;;;GAGG;AACH,SAAS,mBAAmB,CAAC,MAAsB;IACjD,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,OAAO,CAAC;QACb,KAAK,WAAW;YACd,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC7B,KAAK,YAAY,CAAC;QAClB,KAAK,UAAU,CAAC;QAChB,KAAK,SAAS;YACZ,OAAO,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC9B,KAAK,QAAQ,CAAC;QACd,KAAK,eAAe;YAClB,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3B;YACE,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,UAA8B;IACrD,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,SAAS;YACZ,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/B,KAAK,eAAe;YAClB,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC/B,KAAK,UAAU;YACb,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChC,KAAK,eAAe;YAClB,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3B;YACE,OAAO,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACjC,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,kBAAkB,CAAC,MAAwB;IAClD,aAAa,CAAC,eAAe,CAAC,CAAC;IAE/B,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,aAAa,CAAC;IAE/C,8EAA8E;IAC9E,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,KAAK,CAAC,MAAM,CAAC,MAAM,SAAS,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACxH,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjC,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,KAAK,QAAQ;gBACzC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;gBACtB,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,GAAG,CAAC,EAAE,CAAC;YAC5D,OAAO,CAAC,GAAG,CAAC,UAAU,UAAU,EAAE,CAAC,CAAC;YACpC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;YACnD,CAAC;YACD,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;gBACzB,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC;YAC3D,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;YAC/E,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;gBACvB,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;YACpF,CAAC;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,CAAC,KAAK,CAAC,6BAA6B,CAAC,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,8EAA8E;IAC9E,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,CAAC,GAAG,CAAC,6BAA6B,CAAC,EAAE,CAAC,CAAC;IACvE,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAChE,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;QACpF,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,IAAI,IAAI;YAC1C,CAAC,CAAC,KAAK,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,YAAY;YACjD,CAAC,CAAC,EAAE,CAAC;QAEP,MAAM,UAAU,GAAG,MAAM,CAAC,YAAY,IAAI,IAAI;YAC5C,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;YAChG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;QAEhB,OAAO,CAAC,GAAG,CAAC,aAAa,MAAM,CAAC,IAAI,MAAM,UAAU,CAAC,GAAG,OAAO,MAAM,GAAG,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,CAAC;QAC1F,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,cAAc,EAAE,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC;QACxC,CAAC;QACD,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QAC/E,CAAC;QACD,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,oCAAoC,CAAC,EAAE,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,cAAc,CAAC,MAAwB;IAC9C,aAAa,CAAC,UAAU,CAAC,CAAC;IAE1B,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC3E,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,eAAe,CAAC;IAE7E,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,gDAAgD,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACzG,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,2BAA2B,WAAW,yBAAyB,CAAC,CAAC,CAAC;QACxF,OAAO;IACT,CAAC;IAED,MAAM,UAAU,GAAG,SAAS;QAC1B,CAAC,CAAC,iBAAiB,IAAI,CAAC,MAAM,OAAO,WAAW,EAAE;QAClD,CAAC,CAAC,GAAG,WAAW,QAAQ,CAAC;IAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,WAAW,MAAM,UAAU,EAAE,CAAC,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC5E,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC7D,MAAM,WAAW,GAAG,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpD,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,CAAC;QAEpD,gCAAgC;QAChC,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,EAAE,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACxD,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC;QACtC,MAAM,aAAa,GAAG,WAAW;YAC/B,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,GAAG,GAAG,GAAG,WAAW,CAAC,EAAE;YAC7C,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAEvB,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,OAAO,IAAI,WAAW,KAAK,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,OAAO,aAAa,KAAK,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;QAExD,0DAA0D;QAC1D,IAAI,GAAG,CAAC,aAAa,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,YAAY,IAAI,GAAG,CAAC,MAAM,KAAK,eAAe,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,EAAE,CAAC;YACpH,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QAC3E,CAAC;QAED,0EAA0E;QAC1E,IAAI,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,GAAG,EAAE,IAAI,IAAI,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;YAC3D,MAAM,IAAI,GAAG,QAAQ,GAAG,CAAC,GAAG,CAAC,IAAI,YAAY,GAAG,CAAC,OAAO,CAAC,IAAI,eAAe,GAAG,CAAC,YAAY,EAAE,CAAC;YAC/F,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/C,CAAC;QAED,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,WAAW,GAAG,IAAI,CAAC,MAAM,kCAAkC,CAAC,CAAC,CAAC;IACjG,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,UAAU,CAAC,MAAwB;IAC1C,aAAa,CAAC,cAAc,CAAC,CAAC;IAE9B,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC;IAC5F,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,eAAe,CAAC;IAE7E,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,8BAA8B,WAAW,GAAG,CAAC,CAAC,CAAC;QACrE,IAAI,gBAAgB,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,CAAC;QACtD,CAAC;QACD,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACjE,MAAM,MAAM,GAAG,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9E,MAAM,UAAU,GAAG,UAAU,IAAI,IAAI;QACnC,CAAC,CAAC,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;QAC9E,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;IAEhB,OAAO,CAAC,GAAG,CAAC,YAAY,WAAW,MAAM,UAAU,CAAC,GAAG,QAAQ,GAAG,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC;IAExF,oBAAoB;IACpB,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC1B,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC5C,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClD,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC;QAC5F,CAAC;IACH,CAAC;IAED,uBAAuB;IACvB,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC7B,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1D,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC5C,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClD,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC;QAC1F,CAAC;IACH,CAAC;IAED,IAAI,gBAAgB,EAAE,CAAC;QACrB,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC,CAAC;IACxE,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,WAAW,CAAC,MAAwB;IAC3C,aAAa,CAAC,OAAO,CAAC,CAAC;IAEvB,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC;IAEhE,IAAI,eAAe,KAAK,CAAC,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC,CAAC;QACzE,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,cAAc,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC;IAEpH,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC1B,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,CAAC,SAAS,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YAClD,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YACjE,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7D,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,gBAAgB,WAAW,aAAa,SAAS,EAAE,CAAC,CAAC;QACvG,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,iBAAiB,CAAC,MAAwB;IACjD,aAAa,CAAC,eAAe,CAAC,CAAC;IAE/B,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC,aAAa,CAAC;IAE3E,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC,CAAC;QAC3F,OAAO;IACT,CAAC;IAED,8EAA8E;IAC9E,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,iBAAiB,UAAU,CAAC,MAAM,IAAI,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YAC3B,MAAM,aAAa,GAAG,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,QAAQ,KAAK,MAAM;gBACpE,CAAC,CAAC,KAAK,CAAC,GAAG;gBACX,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ;oBACvB,CAAC,CAAC,KAAK,CAAC,MAAM;oBACd,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAChF,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACrF,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;YACzE,MAAM,SAAS,GAAG,CAAC,CAAC,QAAQ,CAAC,WAAW;gBACtC,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,YAAY,CAAC,CAAC,QAAQ,CAAC,WAAW,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE;gBAClF,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnD,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YACtD,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACjD,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,mDAAmD;IACnD,qEAAqE;IACrE,0BAA0B;IAC1B,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC,CAAC;QACvE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,gBAAgB,cAAc,CAAC,MAAM,YAAY,CAAC,CAAC;YAC/D,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;gBAClC,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gBACnD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;oBACrB,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;gBAChF,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBACrD,OAAO,CAAC,GAAG,EAAE,CAAC;YAChB,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAwB;IACzD,qDAAqD;IACrD,MAAM,YAAY,GAAG,MAAM,EAAE,YAAY,CAAC;IAC1C,IAAI,CAAC,YAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAEjG,aAAa,CAAC,cAAc,CAAC,CAAC;IAE9B,MAAM,UAAU,GAAG,YAAY,CAAC,SAAS;QACvC,CAAC,CAAC,GAAG,YAAY,CAAC,WAAW,aAAa;QAC1C,CAAC,CAAC,GAAG,YAAY,CAAC,WAAW,YAAY,CAAC;IAC5C,MAAM,UAAU,GAAG,YAAY,CAAC,YAAY;QAC1C,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,cAAc,EAAE,GAAG;QACpE,CAAC,CAAC,EAAE,CAAC;IACP,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,UAAU,GAAG,UAAU,EAAE,CAAC,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,KAAK,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC;QACpC,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACjG,OAAO,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAC9D,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QACjD,CAAC;QACD,uEAAuE;QACvE,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,CAAC,YAAY,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACpF,CAAC;QACD,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QAChF,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;AACH,CAAC;AAED,kFAAkF;AAElF;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CAAC,OAAgB;IAEzD,6EAA6E;IAC7E,EAAE;IACF,2EAA2E;IAC3E,mCAAmC;IAEnC,MAAM,aAAa,GAAG,OAAO;SAC1B,OAAO,CAAC,YAAY,CAAC;SACrB,WAAW,CACV,mGAAmG;QACnG,iBAAiB;QACjB,qEAAqE;QACrE,kDAAkD;QAClD,sFAAsF,CACvF,CAAC;IAEJ,6EAA6E;IAC7E,EAAE;IACF,oDAAoD;IACpD,EAAE;IACF,qFAAqF;IACrF,gFAAgF;IAChF,sFAAsF;IACtF,EAAE;IACF,SAAS;IACT,8BAA8B;IAC9B,0CAA0C;IAC1C,qCAAqC;IAErC,aAAa;SACV,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CACV,4GAA4G;QAC5G,6FAA6F;QAC7F,2FAA2F;QAC3F,WAAW;QACX,qEAAqE;QACrE,qEAAqE;QACrE,oGAAoG;QACpG,mFAAmF;QACnF,gEAAgE,CACjE;SACA,MAAM,CAAC,mBAAmB,EAAE,uDAAuD,EAAE,KAAK,CAAC;SAC3F,MAAM,CAAC,QAAQ,EAAE,qDAAqD,CAAC;SACvE,MAAM,CAAC,KAAK,EAAE,IAAwC,EAAE,EAAE;QACzD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAE5C,MAAM,IAAI,GAAG,MAAM,GAAG,CACpB,KAAK,EACL,wCAAwC,kBAAkB,CAAC,MAAM,CAAC,EAAE,EACpE,SAAS,EACT,EAAE,eAAe,EAAE,IAAI,EAAE,CACN,CAAC;YAEtB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC3C,OAAO;YACT,CAAC;YAED,qEAAqE;YACrE,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,cAAc,EAAE,CAAC;YACjE,MAAM,WAAW,GAAG,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;YACtD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,KAAK,CAAC,GAAG,CAAC,IAAI,WAAW,uBAAuB,WAAW,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACjH,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,QAAQ,eAAe,IAAI,CAAC,IAAI,CAAC,YAAY,YAAY,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;YAE9I,kBAAkB,CAAC,IAAI,CAAC,CAAC;YACzB,cAAc,CAAC,IAAI,CAAC,CAAC;YACrB,UAAU,CAAC,IAAI,CAAC,CAAC;YACjB,WAAW,CAAC,IAAI,CAAC,CAAC;YAClB,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACxB,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAEzB,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7D,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC;YAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
package/dist/index.js CHANGED
@@ -7,7 +7,8 @@ getActiveProjectId, setActiveProjectId, clearActiveProjectId, findProjectBySlug,
7
7
  // Directory-scoped context override (.fazemos.json)
8
8
  setOrgOverride, setProjectOverride, setDirContextSource, getDirContextSource, } from './config.js';
9
9
  import { findDirContextFile, readDirContextFile, writeDirContextFile, removeDirContextFile, DIR_CONFIG_FILENAME, } from './dircontext.js';
10
- import { login, signup, confirmSignup, adminLogin } from './auth.js';
10
+ import { loginWithBrowser, hostedLogoutUrl, signup, confirmSignup, adminLogin } from './auth.js';
11
+ import { fetchAuthConfig } from './authConfig.js';
11
12
  import { api, ApiError, refreshAuthMeCache, invalidateAuthMeCache, resolveOrgIdMaybeSlug, resolveProjectIdBySlug, patchProjectDocsRepo, patchOrgWorkspace } from './api.js';
12
13
  import { isProjectConnectionUnavailable, renderProjectConnectionUnavailableCopy, } from './connectionErrorCopy.js';
13
14
  import { loadYaml, summarize } from './yaml/load.js';
@@ -328,55 +329,70 @@ program.hook('preAction', async (_thisCommand, actionCommand) => {
328
329
  // ── Init ────────────────────────────────────────────────────
329
330
  program
330
331
  .command('init')
331
- .description('Configure an environment (auto-discovers Cognito settings from the API)')
332
+ .description('Configure an environment (discovers Cognito settings from the API)')
332
333
  .argument('<name>', 'Environment name (e.g., dev, prod, local)')
333
334
  .requiredOption('--api-url <url>', 'API base URL')
334
- .option('--cognito-pool <id>', 'Cognito User Pool ID (auto-discovered if omitted)')
335
- .option('--cognito-client <id>', 'Cognito Client ID (auto-discovered if omitted)')
336
- .option('--cognito-region <region>', 'Cognito region (auto-discovered if omitted)')
335
+ .option('--cognito-pool <id>', 'Cognito User Pool ID (discovered if omitted)')
336
+ .option('--cognito-client <id>', 'Cognito app client ID for the web console (discovered if omitted)')
337
+ .option('--cognito-cli-client <id>', 'Cognito app client ID for the CLI (discovered if omitted)')
338
+ .option('--hosted-ui <domain>', 'Cognito hosted-UI origin, e.g. https://jj-auth-dev.auth.us-west-2.amazoncognito.com (discovered if omitted)')
339
+ .option('--cognito-region <region>', 'Cognito region (discovered if omitted)')
337
340
  .action(async (name, opts) => {
341
+ const apiUrl = opts.apiUrl.replace(/\/$/, '');
338
342
  let poolId = opts.cognitoPool;
339
343
  let clientId = opts.cognitoClient;
344
+ let cliClientId = opts.cognitoCliClient;
345
+ let hostedUiDomain = opts.hostedUi;
340
346
  let region = opts.cognitoRegion;
341
- // Auto-discover from API if not provided
342
- if (!poolId || !clientId) {
347
+ // Discovery is the normal path; the flags exist for an API that predates
348
+ // GET /auth/config, or for pointing at a stack whose config endpoint is
349
+ // temporarily degraded. Anything supplied by flag wins — the operator has
350
+ // more context than the endpoint does about why they typed it.
351
+ const needsDiscovery = !poolId || !cliClientId || !hostedUiDomain || !region;
352
+ if (needsDiscovery) {
343
353
  try {
344
- console.log(chalk.cyan('Discovering auth config...'));
345
- const res = await fetch(`${opts.apiUrl}/auth/config`);
346
- if (res.ok) {
347
- const data = await res.json();
348
- poolId = poolId || data.cognitoPoolId || data.userPoolId;
349
- clientId = clientId || data.cognitoClientId || data.clientId;
350
- region = region || data.cognitoRegion || data.region;
351
- console.log(chalk.green('Auto-discovered Cognito settings'));
352
- }
353
- else {
354
- console.log(chalk.yellow('Auto-discovery not available — provide --cognito-pool and --cognito-client'));
355
- process.exit(1);
356
- }
354
+ console.log(chalk.cyan(`Discovering auth config from ${apiUrl}/auth/config ...`));
355
+ const cfg = await fetchAuthConfig(apiUrl);
356
+ poolId = poolId || cfg.cognito.userPoolId;
357
+ clientId = clientId || cfg.cognito.clients.web.clientId;
358
+ cliClientId = cliClientId || cfg.cognito.clients.cli.clientId;
359
+ hostedUiDomain = hostedUiDomain || cfg.cognito.hostedUiDomain;
360
+ region = region || cfg.cognito.region;
361
+ console.log(chalk.green('Discovered Cognito settings'));
357
362
  }
358
- catch {
359
- console.error(chalk.red('Could not reach API for auto-discovery. Provide --cognito-pool and --cognito-client manually.'));
363
+ catch (err) {
364
+ console.error(chalk.red(err.message));
360
365
  process.exit(1);
361
366
  }
362
367
  }
363
- if (!poolId || !clientId) {
364
- console.error(chalk.red('Missing Cognito Pool ID or Client ID'));
368
+ if (!poolId) {
369
+ console.error(chalk.red('Missing Cognito Pool ID pass --cognito-pool.'));
365
370
  process.exit(1);
366
371
  }
367
372
  addEnvironment(name, {
368
- apiUrl: opts.apiUrl.replace(/\/$/, ''),
373
+ apiUrl,
369
374
  cognitoPoolId: poolId,
370
- cognitoClientId: clientId,
375
+ cognitoClientId: clientId || '',
371
376
  cognitoRegion: region || 'us-west-2',
377
+ cognitoCliClientId: cliClientId || undefined,
378
+ hostedUiDomain: hostedUiDomain || undefined,
372
379
  });
373
380
  console.log(chalk.green(`Environment "${name}" configured`));
374
- console.log(` API: ${opts.apiUrl}`);
375
- console.log(` Pool: ${poolId}`);
376
- console.log(` Client: ${clientId}`);
377
- console.log(` Region: ${region || 'us-west-2'}`);
381
+ console.log(` API: ${apiUrl}`);
382
+ console.log(` Pool: ${poolId}`);
383
+ console.log(` Region: ${region || 'us-west-2'}`);
384
+ console.log(` Web client: ${clientId || chalk.yellow('(none)')}`);
385
+ console.log(` CLI client: ${cliClientId || chalk.yellow('(none)')}`);
386
+ console.log(` Hosted UI: ${hostedUiDomain || chalk.yellow('(none)')}`);
387
+ // `auth login` needs both of these and refetches /auth/config anyway, so
388
+ // this is a warning rather than a failure — the environment is still
389
+ // usable for anything that runs on an existing token.
390
+ if (!cliClientId || !hostedUiDomain) {
391
+ console.log(chalk.yellow(`\nNo CLI app client or hosted-UI domain: \`fazemos auth login\` will not work ` +
392
+ `against this environment until the API's /auth/config advertises them.`));
393
+ }
378
394
  if (config.get('activeEnv') === name) {
379
- console.log(chalk.cyan(` Active: yes`));
395
+ console.log(chalk.cyan(` Active: yes`));
380
396
  }
381
397
  });
382
398
  // ── Environment ─────────────────────────────────────────────
@@ -418,6 +434,10 @@ program
418
434
  console.log(` Environment: ${chalk.cyan(env.name)}${srcLabel}`);
419
435
  console.log(` API: ${env.apiUrl}`);
420
436
  console.log(` Cognito: ${env.cognitoPoolId}`);
437
+ // `auth login` needs both of these; showing them here is how you tell a
438
+ // stale environment (configured before OIDC login) from a broken one.
439
+ console.log(` CLI client: ${env.cognitoCliClientId || chalk.yellow('(not discovered — run: fazemos auth login)')}`);
440
+ console.log(` Hosted UI: ${env.hostedUiDomain || chalk.yellow('(not discovered — run: fazemos auth login)')}`);
421
441
  const token = getToken();
422
442
  console.log(` Auth: ${token ? chalk.green('authenticated') : chalk.yellow('not logged in')}`);
423
443
  });
@@ -425,12 +445,12 @@ program
425
445
  const auth = program.command('auth').description('Authentication commands');
426
446
  auth
427
447
  .command('login')
428
- .description('Login with email and password')
429
- .requiredOption('-e, --email <email>', 'Email address')
430
- .requiredOption('-p, --password <password>', 'Password')
448
+ .description('Sign in through your browser (Cognito hosted UI, auth-code + PKCE)')
449
+ .option('--no-browser', 'Print the sign-in URL instead of launching a browser')
431
450
  .action(async (opts) => {
432
451
  try {
433
- const result = await login(opts.email, opts.password);
452
+ // Commander turns `--no-browser` into `opts.browser === false`.
453
+ const result = await loginWithBrowser({ noBrowser: opts.browser === false });
434
454
  console.log(chalk.green(`Logged in as ${result.email}`));
435
455
  }
436
456
  catch (err) {
@@ -496,13 +516,28 @@ auth
496
516
  });
497
517
  auth
498
518
  .command('logout')
499
- .description('Clear stored credentials')
519
+ .description('Clear stored credentials (prints the URL to end the browser session too)')
500
520
  .action(() => {
501
521
  const env = getActiveEnvName();
502
522
  const auths = config.get('auth');
503
523
  delete auths[env];
504
524
  config.set('auth', auths);
505
525
  console.log(chalk.green(`Logged out of ${env}`));
526
+ // Clearing local tokens does NOT end the Cognito hosted-UI session — the
527
+ // browser still holds it, so the next `auth login` signs straight back in
528
+ // with no prompt. That is usually what you want; when it is not (shared
529
+ // machine, switching accounts) this URL is how you actually sign out.
530
+ let url = null;
531
+ try {
532
+ url = hostedLogoutUrl();
533
+ }
534
+ catch {
535
+ // No environment configured — nothing further to offer.
536
+ }
537
+ if (url) {
538
+ console.log(chalk.gray(`\nStill signed in to the browser session. To end it too, open:`));
539
+ console.log(chalk.gray(` ${url}`));
540
+ }
506
541
  });
507
542
  // ── Whoami ──────────────────────────────────────────────────
508
543
  program