@formigio/fazemos-cli 0.10.26 → 0.10.30

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.
@@ -0,0 +1,41 @@
1
+ /**
2
+ * F35 — Trigger Engine: CLI command helpers.
3
+ *
4
+ * Exports `registerTriggerCommands(program)` which wires the following commands
5
+ * into the root Commander program (mirrors the pause/budget group pattern):
6
+ *
7
+ * fazemos trigger list
8
+ * → GET /api/control-plane/trigger?project_id=<id>
9
+ * Reads the allow-listed (role, cadence, signal) schedule + enabled state.
10
+ *
11
+ * fazemos trigger status [--json]
12
+ * → GET /api/control-plane/trigger?project_id=<id>
13
+ * schedule + recent trigger_fires (window_key, fire_status, path, suppress_code).
14
+ *
15
+ * fazemos trigger fire-now --role <slug> --cadence <daily|weekly> --reason <text>
16
+ * → POST /api/control-plane/trigger/fire-now
17
+ * Deliberate operator re-drive. Respects canLaunch (paused/over-budget → suppressed).
18
+ *
19
+ * fazemos trigger disable --role <slug> --cadence <daily|weekly> [--until <iso>] --reason <text>
20
+ * → POST /api/control-plane/trigger/disable { action: "disable", ... }
21
+ * Upserts a trigger_disables row; timed (--until) or indefinite.
22
+ *
23
+ * fazemos trigger enable --role <slug> --cadence <daily|weekly> --reason <text>
24
+ * → POST /api/control-plane/trigger/disable { action: "enable", ... }
25
+ * Deletes the trigger_disables row (re-enables the run).
26
+ *
27
+ * Auth: fire-now/disable/enable require admin/owner.
28
+ * list/status require any active org member.
29
+ * Scope: project-scoped reads (project_id query param); writes are org+project.
30
+ *
31
+ * Spec: F35-trigger-engine-tech-spec.md
32
+ * Manifest: cli_commands (T12, T13)
33
+ */
34
+ import type { Command } from 'commander';
35
+ /**
36
+ * Register `trigger list`, `trigger status`, `trigger fire-now`,
37
+ * `trigger disable`, and `trigger enable` into the root Commander program.
38
+ * Called from index.ts after `program` is created, alongside
39
+ * registerPauseCommands and registerBudgetCommands.
40
+ */
41
+ export declare function registerTriggerCommands(program: Command): void;
@@ -0,0 +1,414 @@
1
+ /**
2
+ * F35 — Trigger Engine: CLI command helpers.
3
+ *
4
+ * Exports `registerTriggerCommands(program)` which wires the following commands
5
+ * into the root Commander program (mirrors the pause/budget group pattern):
6
+ *
7
+ * fazemos trigger list
8
+ * → GET /api/control-plane/trigger?project_id=<id>
9
+ * Reads the allow-listed (role, cadence, signal) schedule + enabled state.
10
+ *
11
+ * fazemos trigger status [--json]
12
+ * → GET /api/control-plane/trigger?project_id=<id>
13
+ * schedule + recent trigger_fires (window_key, fire_status, path, suppress_code).
14
+ *
15
+ * fazemos trigger fire-now --role <slug> --cadence <daily|weekly> --reason <text>
16
+ * → POST /api/control-plane/trigger/fire-now
17
+ * Deliberate operator re-drive. Respects canLaunch (paused/over-budget → suppressed).
18
+ *
19
+ * fazemos trigger disable --role <slug> --cadence <daily|weekly> [--until <iso>] --reason <text>
20
+ * → POST /api/control-plane/trigger/disable { action: "disable", ... }
21
+ * Upserts a trigger_disables row; timed (--until) or indefinite.
22
+ *
23
+ * fazemos trigger enable --role <slug> --cadence <daily|weekly> --reason <text>
24
+ * → POST /api/control-plane/trigger/disable { action: "enable", ... }
25
+ * Deletes the trigger_disables row (re-enables the run).
26
+ *
27
+ * Auth: fire-now/disable/enable require admin/owner.
28
+ * list/status require any active org member.
29
+ * Scope: project-scoped reads (project_id query param); writes are org+project.
30
+ *
31
+ * Spec: F35-trigger-engine-tech-spec.md
32
+ * Manifest: cli_commands (T12, T13)
33
+ */
34
+ import chalk from 'chalk';
35
+ import { api } from './api.js';
36
+ import { getActiveProjectId } from './config.js';
37
+ // ── Helpers ────────────────────────────────────────────────────────────────────
38
+ /**
39
+ * Validate and normalize a cadence flag value.
40
+ * Throws a user-facing error for unsupported values.
41
+ */
42
+ function normalizeCadence(cadence) {
43
+ const c = cadence.trim().toLowerCase();
44
+ if (c !== 'daily' && c !== 'weekly') {
45
+ throw new Error(`--cadence must be 'daily' or 'weekly', got: ${cadence}`);
46
+ }
47
+ return c;
48
+ }
49
+ /**
50
+ * Validate an ISO 8601 timestamp string (used for --until on disable).
51
+ * The API is strict — malformed timestamps produce a 400.
52
+ */
53
+ function validateIsoTimestamp(value) {
54
+ const d = new Date(value);
55
+ if (isNaN(d.getTime())) {
56
+ throw new Error(`--until must be a valid ISO 8601 timestamp (e.g. 2026-07-01T00:00:00Z), got: ${value}`);
57
+ }
58
+ return value;
59
+ }
60
+ /**
61
+ * Human-readable fire_status label with colour.
62
+ */
63
+ function fireStatusLabel(status) {
64
+ switch (status) {
65
+ case 'fired':
66
+ return chalk.green(status);
67
+ case 'failed':
68
+ return chalk.red(status);
69
+ case 'suppressed':
70
+ return chalk.yellow(status);
71
+ default:
72
+ return chalk.dim(status);
73
+ }
74
+ }
75
+ /**
76
+ * Human-readable fire_now result label with colour and description.
77
+ */
78
+ function fireNowResultLabel(result) {
79
+ switch (result) {
80
+ case 'claimed_and_fired':
81
+ return chalk.green('✓ claimed_and_fired') + ' — window was unclaimed; claim inserted and dispatch fired';
82
+ case 're_attempted':
83
+ return chalk.cyan('↺ re_attempted') + ' — previous failure overwritten; new execution/dispatch queued';
84
+ case 'no_op_already_fired':
85
+ return chalk.dim('· no_op_already_fired') + ' — window already has a live or completed fire; no action taken';
86
+ case 'suppressed':
87
+ return chalk.yellow('⚠ suppressed') + ' — canLaunch gate refused (org paused or budget exhausted); check org state before retrying';
88
+ default:
89
+ return String(result);
90
+ }
91
+ }
92
+ // ── Command registration ───────────────────────────────────────────────────────
93
+ /**
94
+ * Register `trigger list`, `trigger status`, `trigger fire-now`,
95
+ * `trigger disable`, and `trigger enable` into the root Commander program.
96
+ * Called from index.ts after `program` is created, alongside
97
+ * registerPauseCommands and registerBudgetCommands.
98
+ */
99
+ export function registerTriggerCommands(program) {
100
+ // ── `fazemos trigger` ────────────────────────────────────────────────────────
101
+ //
102
+ // Parent command hosting sub-commands: list, status, fire-now, disable, enable.
103
+ // The parent itself has no action (sub-commands always required).
104
+ const triggerCmd = program
105
+ .command('trigger')
106
+ .description('Inspect and operate the trigger engine (AUTONOMY Phase 0 control plane).\n\n' +
107
+ 'Sub-commands:\n' +
108
+ ' list List the configured trigger schedule (enabled/disabled state)\n' +
109
+ ' status Show schedule + recent fire history (last 50 entries)\n' +
110
+ ' fire-now Manually re-drive a trigger window (admin/owner)\n' +
111
+ ' disable Disable a trigger (timed or indefinite) (admin/owner)\n' +
112
+ ' enable Re-enable a previously disabled trigger (admin/owner)\n\n' +
113
+ 'list/status are readable by any active org member.\n' +
114
+ 'fire-now/disable/enable require admin or owner role.\n' +
115
+ 'All operations are project-scoped (uses active project or --project override).');
116
+ // ── `fazemos trigger list` ────────────────────────────────────────────────────
117
+ //
118
+ // GET /api/control-plane/trigger?project_id=<id>
119
+ //
120
+ // Prints the allow-listed (role, cadence, cadence_signal) schedule + enabled state.
121
+ // No --json flag needed (list is simple enough for human output only).
122
+ triggerCmd
123
+ .command('list')
124
+ .description('List the configured trigger schedule for the active project.\n\n' +
125
+ 'Shows each (role, cadence) pair and whether it is currently enabled.\n' +
126
+ 'The schedule is driven by TRIGGER_ALLOWLIST on the API; the enabled state\n' +
127
+ 'reflects any operator disable (fazemos trigger disable) in effect.\n\n' +
128
+ 'Readable by any active org member.')
129
+ .action(async () => {
130
+ try {
131
+ const projectId = getActiveProjectId();
132
+ if (!projectId) {
133
+ throw new Error('No active project. Run `fazemos projects switch <slug>` first.');
134
+ }
135
+ const data = await api('GET', `/api/control-plane/trigger?project_id=${encodeURIComponent(projectId)}`, undefined, { noProjectHeader: true });
136
+ const schedule = data.schedule;
137
+ if (schedule.length === 0) {
138
+ console.log(chalk.yellow('No triggers configured (TRIGGER_ALLOWLIST is empty or not set).'));
139
+ return;
140
+ }
141
+ console.log(chalk.bold(`Trigger schedule (${schedule.length} entries):`));
142
+ console.log();
143
+ for (const entry of schedule) {
144
+ const enabledLabel = entry.enabled
145
+ ? chalk.green('enabled')
146
+ : chalk.red('disabled');
147
+ console.log(` ${chalk.cyan(entry.role.padEnd(32))} ${entry.cadence.padEnd(8)} ${enabledLabel}`);
148
+ console.log(` signal: ${chalk.dim(entry.cadence_signal)}`);
149
+ }
150
+ }
151
+ catch (err) {
152
+ const msg = err instanceof Error ? err.message : String(err);
153
+ console.error(chalk.red(`Error: ${msg}`));
154
+ process.exit(1);
155
+ }
156
+ });
157
+ // ── `fazemos trigger status` ──────────────────────────────────────────────────
158
+ //
159
+ // GET /api/control-plane/trigger?project_id=<id>
160
+ //
161
+ // schedule + recent trigger_fires (window_key, fire_status, fire_path, suppress_code).
162
+ // Fires capped at 50 most recent entries (ordered by claimed_at DESC) by the API.
163
+ //
164
+ // Usage:
165
+ // fazemos trigger status
166
+ // fazemos trigger status --json
167
+ triggerCmd
168
+ .command('status')
169
+ .description('Show trigger schedule and recent fire history for the active project.\n\n' +
170
+ 'Prints the configured (role, cadence) schedule alongside the last 50\n' +
171
+ 'trigger fire records (window_key, fire_status, fire_path, suppress_code).\n\n' +
172
+ 'fire_status values:\n' +
173
+ ' fired — dispatch/execution successfully created\n' +
174
+ ' failed — fire failed; re-drivable via `fazemos trigger fire-now`\n' +
175
+ ' suppressed — canLaunch gate refused (org paused or budget exhausted)\n\n' +
176
+ 'Readable by any active org member. Use --json for machine-readable output.')
177
+ .option('--json', 'output machine-readable JSON')
178
+ .action(async (opts) => {
179
+ try {
180
+ const projectId = getActiveProjectId();
181
+ if (!projectId) {
182
+ throw new Error('No active project. Run `fazemos projects switch <slug>` first.');
183
+ }
184
+ const data = await api('GET', `/api/control-plane/trigger?project_id=${encodeURIComponent(projectId)}`, undefined, { noProjectHeader: true });
185
+ if (opts.json) {
186
+ console.log(JSON.stringify(data, null, 2));
187
+ return;
188
+ }
189
+ const { schedule, fires } = data;
190
+ // ── Schedule ──────────────────────────────────────────────────────────
191
+ if (schedule.length === 0) {
192
+ console.log(chalk.yellow('No triggers configured (TRIGGER_ALLOWLIST is empty or not set).'));
193
+ }
194
+ else {
195
+ console.log(chalk.bold(`Trigger schedule (${schedule.length} entries):`));
196
+ console.log();
197
+ for (const entry of schedule) {
198
+ const enabledLabel = entry.enabled
199
+ ? chalk.green('enabled')
200
+ : chalk.red('disabled');
201
+ console.log(` ${chalk.cyan(entry.role.padEnd(32))} ${entry.cadence.padEnd(8)} ${enabledLabel}`);
202
+ }
203
+ console.log();
204
+ }
205
+ // ── Recent fires ──────────────────────────────────────────────────────
206
+ if (fires.length === 0) {
207
+ console.log(chalk.dim('No recent trigger fires.'));
208
+ return;
209
+ }
210
+ console.log(chalk.bold(`Recent trigger fires (${fires.length}):`));
211
+ console.log();
212
+ for (const fire of fires) {
213
+ const statusLabel = fireStatusLabel(fire.fire_status);
214
+ console.log(` ${chalk.cyan(fire.role.padEnd(32))} ${fire.window_key.padEnd(12)} ${statusLabel}`);
215
+ console.log(` signal: ${chalk.dim(fire.cadence_signal)}`);
216
+ console.log(` path: ${fire.fire_path}`);
217
+ if (fire.suppress_code) {
218
+ console.log(` suppressed: ${chalk.yellow(fire.suppress_code)}`);
219
+ }
220
+ console.log(` claimed: ${new Date(fire.claimed_at).toLocaleString()}`);
221
+ if (fire.fired_at) {
222
+ console.log(` fired: ${new Date(fire.fired_at).toLocaleString()}`);
223
+ }
224
+ console.log(` id: ${chalk.dim(fire.id)}`);
225
+ console.log();
226
+ }
227
+ }
228
+ catch (err) {
229
+ const msg = err instanceof Error ? err.message : String(err);
230
+ console.error(chalk.red(`Error: ${msg}`));
231
+ process.exit(1);
232
+ }
233
+ });
234
+ // ── `fazemos trigger fire-now` ────────────────────────────────────────────────
235
+ //
236
+ // POST /api/control-plane/trigger/fire-now
237
+ //
238
+ // Deliberate operator re-drive (AC#10, reconciles AC#5b).
239
+ // Respects canLaunch: paused/over-budget → result='suppressed'.
240
+ // Idempotency split:
241
+ // unclaimed → claim+fire → result='claimed_and_fired'
242
+ // claimed-FAILED → re-attempt → result='re_attempted'
243
+ // claimed-FIRED/live → no-op → result='no_op_already_fired'
244
+ //
245
+ // Usage:
246
+ // fazemos trigger fire-now --role project-manager --cadence daily --reason "Manual re-drive after infra incident"
247
+ triggerCmd
248
+ .command('fire-now')
249
+ .description('Manually re-drive a trigger window (admin/owner only).\n\n' +
250
+ 'Fires the specified (role, cadence) for the current window. The result\n' +
251
+ 'reflects the idempotency state of the window:\n\n' +
252
+ ' claimed_and_fired — window was unclaimed; fired successfully\n' +
253
+ ' re_attempted — previous failure overwritten; new dispatch queued\n' +
254
+ ' no_op_already_fired — window already has a live or completed fire\n' +
255
+ ' suppressed — canLaunch gate refused (check org pause / budget)\n\n' +
256
+ 'Even manual fire-now calls go through the canLaunch gate — the org\n' +
257
+ 'must not be paused or over budget for the fire to proceed.\n\n' +
258
+ 'Requires admin or owner role. --reason is mandatory (audit trail).')
259
+ .requiredOption('--role <slug>', 'role slug to fire (e.g. project-manager)')
260
+ .requiredOption('--cadence <daily|weekly>', 'cadence to fire (daily or weekly)')
261
+ .requiredOption('--reason <text>', 'reason for the manual fire (required for audit trail)')
262
+ .option('--json', 'output machine-readable JSON')
263
+ .action(async (opts) => {
264
+ try {
265
+ const projectId = getActiveProjectId();
266
+ if (!projectId) {
267
+ throw new Error('No active project. Run `fazemos projects switch <slug>` first.');
268
+ }
269
+ const cadence = normalizeCadence(opts.cadence);
270
+ const body = {
271
+ project_id: projectId,
272
+ role: opts.role.trim().toLowerCase(),
273
+ cadence,
274
+ reason: opts.reason,
275
+ };
276
+ const data = await api('POST', '/api/control-plane/trigger/fire-now', body, {
277
+ noProjectHeader: true,
278
+ });
279
+ if (opts.json) {
280
+ console.log(JSON.stringify(data, null, 2));
281
+ return;
282
+ }
283
+ console.log(fireNowResultLabel(data.result));
284
+ }
285
+ catch (err) {
286
+ const msg = err instanceof Error ? err.message : String(err);
287
+ console.error(chalk.red(`Error: ${msg}`));
288
+ process.exit(1);
289
+ }
290
+ });
291
+ // ── `fazemos trigger disable` ─────────────────────────────────────────────────
292
+ //
293
+ // POST /api/control-plane/trigger/disable { action: "disable", ... }
294
+ //
295
+ // Upserts a trigger_disables row the due-check consults.
296
+ // Active disable → not due → no claim, no fire.
297
+ // --until <iso>: timed skip; omit for indefinite until `fazemos trigger enable`.
298
+ //
299
+ // Usage:
300
+ // fazemos trigger disable --role project-manager --cadence daily --reason "Pausing during Q2 freeze"
301
+ // fazemos trigger disable --role project-manager --cadence daily --until 2026-07-01T00:00:00Z --reason "Q2 freeze"
302
+ triggerCmd
303
+ .command('disable')
304
+ .description('Disable a trigger (admin/owner only).\n\n' +
305
+ 'Upserts a disable record for the given (role, cadence). While disabled,\n' +
306
+ 'the trigger engine skips due-check and claim for that schedule entry.\n\n' +
307
+ ' (no --until) Indefinite disable — remains until `fazemos trigger enable`\n' +
308
+ ' --until <iso> Timed disable — auto-expires at the given UTC timestamp\n\n' +
309
+ 'Requires admin or owner role. --reason is mandatory (audit trail).')
310
+ .requiredOption('--role <slug>', 'role slug to disable (e.g. project-manager)')
311
+ .requiredOption('--cadence <daily|weekly>', 'cadence to disable (daily or weekly)')
312
+ .option('--until <iso>', 'ISO 8601 timestamp when the disable expires (omit for indefinite)')
313
+ .requiredOption('--reason <text>', 'reason for the disable (required for audit trail)')
314
+ .option('--json', 'output machine-readable JSON')
315
+ .action(async (opts) => {
316
+ try {
317
+ const projectId = getActiveProjectId();
318
+ if (!projectId) {
319
+ throw new Error('No active project. Run `fazemos projects switch <slug>` first.');
320
+ }
321
+ const cadence = normalizeCadence(opts.cadence);
322
+ const body = {
323
+ action: 'disable',
324
+ project_id: projectId,
325
+ role: opts.role.trim().toLowerCase(),
326
+ cadence,
327
+ reason: opts.reason,
328
+ };
329
+ if (opts.until !== undefined) {
330
+ body.until = validateIsoTimestamp(opts.until);
331
+ }
332
+ const data = await api('POST', '/api/control-plane/trigger/disable', body, {
333
+ noProjectHeader: true,
334
+ });
335
+ if (opts.json) {
336
+ console.log(JSON.stringify(data, null, 2));
337
+ return;
338
+ }
339
+ if (data.disabled) {
340
+ console.log(chalk.red(`⏸ Trigger disabled: ${chalk.cyan(opts.role.trim().toLowerCase())} / ${cadence}`));
341
+ if (opts.until) {
342
+ console.log(` Expires at: ${new Date(opts.until).toLocaleString()}`);
343
+ }
344
+ else {
345
+ console.log(` Duration: indefinite (run \`fazemos trigger enable\` to re-enable)`);
346
+ }
347
+ console.log(` Reason: ${opts.reason}`);
348
+ }
349
+ else {
350
+ console.log(chalk.yellow(`No change — trigger was already disabled for ${opts.role} / ${cadence}.`));
351
+ }
352
+ }
353
+ catch (err) {
354
+ const msg = err instanceof Error ? err.message : String(err);
355
+ console.error(chalk.red(`Error: ${msg}`));
356
+ process.exit(1);
357
+ }
358
+ });
359
+ // ── `fazemos trigger enable` ──────────────────────────────────────────────────
360
+ //
361
+ // POST /api/control-plane/trigger/disable { action: "enable", ... }
362
+ //
363
+ // Deletes the trigger_disables row (re-enables the run).
364
+ //
365
+ // Usage:
366
+ // fazemos trigger enable --role project-manager --cadence daily --reason "Re-enabling after freeze"
367
+ triggerCmd
368
+ .command('enable')
369
+ .description('Re-enable a previously disabled trigger (admin/owner only).\n\n' +
370
+ 'Deletes the disable record for the given (role, cadence), allowing the\n' +
371
+ 'trigger engine to resume normal due-check and fire on the next sweep tick.\n\n' +
372
+ 'Requires admin or owner role. --reason is mandatory (audit trail).')
373
+ .requiredOption('--role <slug>', 'role slug to enable (e.g. project-manager)')
374
+ .requiredOption('--cadence <daily|weekly>', 'cadence to enable (daily or weekly)')
375
+ .requiredOption('--reason <text>', 'reason for re-enabling (required for audit trail)')
376
+ .option('--json', 'output machine-readable JSON')
377
+ .action(async (opts) => {
378
+ try {
379
+ const projectId = getActiveProjectId();
380
+ if (!projectId) {
381
+ throw new Error('No active project. Run `fazemos projects switch <slug>` first.');
382
+ }
383
+ const cadence = normalizeCadence(opts.cadence);
384
+ const body = {
385
+ action: 'enable',
386
+ project_id: projectId,
387
+ role: opts.role.trim().toLowerCase(),
388
+ cadence,
389
+ reason: opts.reason,
390
+ };
391
+ const data = await api('POST', '/api/control-plane/trigger/disable', body, {
392
+ noProjectHeader: true,
393
+ });
394
+ if (opts.json) {
395
+ console.log(JSON.stringify(data, null, 2));
396
+ return;
397
+ }
398
+ if (!data.disabled) {
399
+ console.log(chalk.green(`▶ Trigger enabled: ${chalk.cyan(opts.role.trim().toLowerCase())} / ${cadence}`));
400
+ console.log(` Reason: ${opts.reason}`);
401
+ console.log(` The trigger engine will evaluate this schedule on the next sweep tick (≤5 min).`);
402
+ }
403
+ else {
404
+ console.log(chalk.dim(`No-op — trigger was not disabled for ${opts.role} / ${cadence}.`));
405
+ }
406
+ }
407
+ catch (err) {
408
+ const msg = err instanceof Error ? err.message : String(err);
409
+ console.error(chalk.red(`Error: ${msg}`));
410
+ process.exit(1);
411
+ }
412
+ });
413
+ }
414
+ //# sourceMappingURL=trigger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trigger.js","sourceRoot":"","sources":["../src/trigger.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@formigio/fazemos-cli",
3
- "version": "0.10.26",
3
+ "version": "0.10.30",
4
4
  "description": "CLI for the Fazemos Team Accomplishment Platform",
5
5
  "type": "module",
6
6
  "license": "MIT",