@formigio/fazemos-cli 0.10.67 → 0.10.74

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 (48) hide show
  1. package/dist/commands/preflight.d.ts +41 -0
  2. package/dist/commands/preflight.js +706 -0
  3. package/dist/commands/preflight.js.map +1 -0
  4. package/dist/commands/provision.d.ts +29 -0
  5. package/dist/commands/provision.js +382 -0
  6. package/dist/commands/provision.js.map +1 -0
  7. package/dist/index.js +87 -0
  8. package/dist/index.js.map +1 -1
  9. package/dist/preflight/repoRead.d.ts +65 -0
  10. package/dist/preflight/repoRead.js +194 -0
  11. package/dist/preflight/repoRead.js.map +1 -0
  12. package/dist/preflight/roster.d.ts +65 -0
  13. package/dist/preflight/roster.js +153 -0
  14. package/dist/preflight/roster.js.map +1 -0
  15. package/dist/preflight/row1_member.d.ts +8 -0
  16. package/dist/preflight/row1_member.js +64 -0
  17. package/dist/preflight/row1_member.js.map +1 -0
  18. package/dist/preflight/row2_roleRegistration.d.ts +18 -0
  19. package/dist/preflight/row2_roleRegistration.js +156 -0
  20. package/dist/preflight/row2_roleRegistration.js.map +1 -0
  21. package/dist/preflight/row3_persona.d.ts +24 -0
  22. package/dist/preflight/row3_persona.js +92 -0
  23. package/dist/preflight/row3_persona.js.map +1 -0
  24. package/dist/preflight/row3_playbook.d.ts +30 -0
  25. package/dist/preflight/row3_playbook.js +142 -0
  26. package/dist/preflight/row3_playbook.js.map +1 -0
  27. package/dist/preflight/row3_rolesJson.d.ts +12 -0
  28. package/dist/preflight/row3_rolesJson.js +38 -0
  29. package/dist/preflight/row3_rolesJson.js.map +1 -0
  30. package/dist/preflight/row3_workspace.d.ts +24 -0
  31. package/dist/preflight/row3_workspace.js +253 -0
  32. package/dist/preflight/row3_workspace.js.map +1 -0
  33. package/dist/preflight/row4_ssm.d.ts +57 -0
  34. package/dist/preflight/row4_ssm.js +235 -0
  35. package/dist/preflight/row4_ssm.js.map +1 -0
  36. package/dist/preflight/row5_workerLambdaWakeConfig.d.ts +20 -0
  37. package/dist/preflight/row5_workerLambdaWakeConfig.js +113 -0
  38. package/dist/preflight/row5_workerLambdaWakeConfig.js.map +1 -0
  39. package/dist/preflight/row6_ingest.d.ts +20 -0
  40. package/dist/preflight/row6_ingest.js +178 -0
  41. package/dist/preflight/row6_ingest.js.map +1 -0
  42. package/dist/preflight/schema.d.ts +175 -0
  43. package/dist/preflight/schema.js +62 -0
  44. package/dist/preflight/schema.js.map +1 -0
  45. package/dist/preflight/workerLambdas.d.ts +22 -0
  46. package/dist/preflight/workerLambdas.js +25 -0
  47. package/dist/preflight/workerLambdas.js.map +1 -0
  48. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preflight.js","sourceRoot":"","sources":["../../src/commands/preflight.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * F53 — `fazemos agents provision <org>/<project>/<role> --name <agent> --model <model>`
3
+ *
4
+ * Idempotent composite of provisioning layers 1–3, followed by preflight.
5
+ * Non-interactive one-shot. Provides --dry-run as the safety valve.
6
+ *
7
+ * Layers:
8
+ * 1. agents register (POST /api/agents/register) — idempotent
9
+ * 2. .fazemos/roles.json entry update + roles sync (POST /api/role-registrations/sync)
10
+ * — with pre-sync clobber guard (rul_f53_provision_never_clobbers_binding)
11
+ * 3. Verify-and-instruct only (NO scaffold) — effective persona (API), playbook, roles.json entry
12
+ *
13
+ * Ends by running `agents preflight` to show outstanding gaps (layers 4–6).
14
+ *
15
+ * Rules:
16
+ * rul_f53_provision_no_layer_3_scaffold — NEVER write persona/playbook/anchors files
17
+ * rul_f53_provision_never_clobbers_binding — lookup before sync; abort on bound_elsewhere
18
+ * rul_f53_hint_text_additive_only — hint text is separate from existing success lines
19
+ * rul_f53_row3a_verifies_effective_persona — 3a checks effective persona via API, not file presence
20
+ */
21
+ export interface ProvisionOptions {
22
+ name: string;
23
+ model: string;
24
+ dryRun?: boolean;
25
+ env?: string;
26
+ json?: boolean;
27
+ region?: string;
28
+ }
29
+ export declare function runProvision(target: string, opts: ProvisionOptions): Promise<void>;
@@ -0,0 +1,382 @@
1
+ /**
2
+ * F53 — `fazemos agents provision <org>/<project>/<role> --name <agent> --model <model>`
3
+ *
4
+ * Idempotent composite of provisioning layers 1–3, followed by preflight.
5
+ * Non-interactive one-shot. Provides --dry-run as the safety valve.
6
+ *
7
+ * Layers:
8
+ * 1. agents register (POST /api/agents/register) — idempotent
9
+ * 2. .fazemos/roles.json entry update + roles sync (POST /api/role-registrations/sync)
10
+ * — with pre-sync clobber guard (rul_f53_provision_never_clobbers_binding)
11
+ * 3. Verify-and-instruct only (NO scaffold) — effective persona (API), playbook, roles.json entry
12
+ *
13
+ * Ends by running `agents preflight` to show outstanding gaps (layers 4–6).
14
+ *
15
+ * Rules:
16
+ * rul_f53_provision_no_layer_3_scaffold — NEVER write persona/playbook/anchors files
17
+ * rul_f53_provision_never_clobbers_binding — lookup before sync; abort on bound_elsewhere
18
+ * rul_f53_hint_text_additive_only — hint text is separate from existing success lines
19
+ * rul_f53_row3a_verifies_effective_persona — 3a checks effective persona via API, not file presence
20
+ */
21
+ import { readFileSync, writeFileSync, existsSync } from 'fs';
22
+ import { join as pathJoin } from 'path';
23
+ import chalk from 'chalk';
24
+ import { api, resolveOrgIdMaybeSlug } from '../api.js';
25
+ import { findLocalRegistry, buildRolesSyncPayload } from '../dispatch.js';
26
+ import { getEnv } from '../config.js';
27
+ import { runPreflight } from './preflight.js';
28
+ /**
29
+ * Print a per-layer status line:
30
+ * = layer 1 member exists (skipped)
31
+ * + layer 2 role_registration created
32
+ * ! layer 3a persona — MISSING at roles/project-manager.md
33
+ */
34
+ function printLayer(s) {
35
+ const icon = s.action === '=' ? chalk.gray('=') :
36
+ s.action === '+' ? chalk.green('+') :
37
+ s.action === '!' ? chalk.red('!') :
38
+ chalk.cyan('?');
39
+ console.log(` ${icon} layer ${s.layer} ${s.label}: ${s.detail}`);
40
+ }
41
+ export async function runProvision(target, opts) {
42
+ const parts = target.split('/');
43
+ if (parts.length !== 3) {
44
+ console.error(chalk.red(`Invalid target '${target}'. Use <org>/<project>/<role>.`));
45
+ process.exit(1);
46
+ }
47
+ const [orgSlug, projectSlug, roleSlug] = parts;
48
+ const envConfig = getEnv();
49
+ const envName = opts.env ?? envConfig.name;
50
+ const agentName = opts.name;
51
+ const model = opts.model;
52
+ if (!opts.json) {
53
+ console.log(chalk.cyan(`\nProvision: ${orgSlug} / ${projectSlug} / ${roleSlug}`));
54
+ console.log(chalk.gray(` Agent: ${agentName} Model: ${model} Env: ${envName}`));
55
+ if (opts.dryRun) {
56
+ console.log(chalk.yellow(' [DRY RUN — no changes will be made]\n'));
57
+ }
58
+ else {
59
+ console.log('');
60
+ }
61
+ }
62
+ // ── Resolve org + project ─────────────────────────────────────────────────
63
+ let orgId;
64
+ let projectId;
65
+ try {
66
+ orgId = await resolveOrgIdMaybeSlug(orgSlug);
67
+ const projData = (await api('GET', `/api/organizations/${orgId}/projects?status=active`, undefined, { noProjectHeader: true }));
68
+ const project = (projData.projects ?? []).find((p) => p.slug === projectSlug);
69
+ if (!project)
70
+ throw new Error(`Project '${projectSlug}' not found in org '${orgSlug}'.`);
71
+ projectId = project.id;
72
+ }
73
+ catch (err) {
74
+ console.error(chalk.red(`Error resolving org/project: ${err?.message ?? String(err)}`));
75
+ process.exit(1);
76
+ }
77
+ const statuses = [];
78
+ // ── Layer 1 — agents register (idempotent) ───────────────────────────────
79
+ if (opts.dryRun) {
80
+ statuses.push({ layer: 1, label: 'agent member + credential', action: '?', detail: `would register '${agentName}' with model=${model} and provision credential` });
81
+ printLayer(statuses[statuses.length - 1]);
82
+ }
83
+ else {
84
+ try {
85
+ // Check if agent already exists
86
+ const membersData = (await api('GET', `/api/organizations/${orgId}/members?type=agent`, undefined, { noProjectHeader: true }));
87
+ const norm = (s) => s.toLowerCase().replace(/[-_\s]+/g, ' ').trim();
88
+ const existing = (membersData.members ?? []).find((m) => m.member_type === 'agent' && norm(m.display_name) === norm(agentName));
89
+ if (existing) {
90
+ // Agent exists — check if role is in its config
91
+ const roles = existing.agent_config?.roles ?? [];
92
+ if (roles.includes(roleSlug)) {
93
+ statuses.push({ layer: 1, label: 'agent member + credential', action: '=', detail: `'${agentName}' exists (id=${existing.id}), role '${roleSlug}' already in config` });
94
+ }
95
+ else {
96
+ // Update roles — re-register with new role list
97
+ await api('POST', '/api/agents/register', {
98
+ agents: [{
99
+ displayName: agentName,
100
+ roles: [...roles, roleSlug],
101
+ config: { model },
102
+ provisionCredential: false,
103
+ }],
104
+ });
105
+ statuses.push({ layer: 1, label: 'agent member + credential', action: '+', detail: `'${agentName}' updated with role '${roleSlug}' added` });
106
+ }
107
+ }
108
+ else {
109
+ // Register new agent + provision credential
110
+ const data = (await api('POST', '/api/agents/register', {
111
+ agents: [{
112
+ displayName: agentName,
113
+ roles: [roleSlug],
114
+ config: { model },
115
+ provisionCredential: true,
116
+ credentialProjectId: projectId,
117
+ }],
118
+ }));
119
+ const agentResult = data.agents?.[0];
120
+ const credStatus = agentResult?.credential?.status;
121
+ let detail = `'${agentName}' registered (id=${agentResult?.member_id ?? 'unknown'})`;
122
+ if (credStatus === 'minted' && agentResult?.credential?.rawKey) {
123
+ detail += `\n ${chalk.yellow('⚠ API Key (save now — shown once): ' + agentResult.credential.rawKey)}`;
124
+ detail += `\n Key ID: ${agentResult.credential?.apiKeyId ?? 'unknown'}`;
125
+ }
126
+ else if (credStatus === 'exists') {
127
+ detail += ' — credential already provisioned (use --force-rotate to rotate)';
128
+ }
129
+ statuses.push({ layer: 1, label: 'agent member + credential', action: '+', detail });
130
+ }
131
+ }
132
+ catch (err) {
133
+ statuses.push({ layer: 1, label: 'agent member + credential', action: '!', detail: `Error: ${err?.message ?? String(err)}` });
134
+ printLayer(statuses[statuses.length - 1]);
135
+ console.error(chalk.red('Layer 1 failed — cannot continue.'));
136
+ process.exit(1);
137
+ }
138
+ printLayer(statuses[statuses.length - 1]);
139
+ }
140
+ // ── Layer 2 — .fazemos/roles.json + roles sync ────────────────────────────
141
+ const localRegistry = findLocalRegistry(process.cwd());
142
+ if (!localRegistry) {
143
+ const s = { layer: 2, label: 'roles.json entry + role_registration', action: '!', detail: 'No .fazemos/roles.json found in cwd or any parent. Run from inside a workspace repo.' };
144
+ statuses.push(s);
145
+ printLayer(s);
146
+ console.error(chalk.red('Layer 2 failed — cannot continue.'));
147
+ process.exit(1);
148
+ }
149
+ {
150
+ let lookupData = null;
151
+ try {
152
+ const lookupParams = new URLSearchParams({
153
+ workspace: localRegistry.workspace,
154
+ role_slug: roleSlug,
155
+ org_id: orgId,
156
+ });
157
+ lookupData = (await api('GET', `/api/role-registrations/lookup?${lookupParams.toString()}`, undefined, { noProjectHeader: true }));
158
+ }
159
+ catch (err) {
160
+ const status = err?.status ?? 0;
161
+ if (status === 404) {
162
+ console.error(chalk.red(`Layer 2 aborted — rul_f53_provision_never_clobbers_binding:\n` +
163
+ ` The lookup endpoint (GET /api/role-registrations/lookup) is not deployed on env '${envName}'.\n` +
164
+ ` Provision cannot verify the existing binding and will not risk a clobber.\n` +
165
+ ` Deploy fazemos-api to '${envName}' first, then retry.`));
166
+ }
167
+ else {
168
+ console.error(chalk.red(`Layer 2 aborted — rul_f53_provision_never_clobbers_binding:\n` +
169
+ ` Binding could not be verified (API error: ${err?.message ?? String(err)}) — sync not attempted.\n` +
170
+ ` Resolve the API error and retry.`));
171
+ }
172
+ if (opts.dryRun) {
173
+ console.error(chalk.yellow(' [DRY RUN] Would abort here — binding verification failed; sync would not be attempted.'));
174
+ }
175
+ process.exit(1);
176
+ }
177
+ // Evaluate the lookup result for binding conflicts
178
+ const reg = lookupData?.registration;
179
+ if (lookupData?.found && reg && reg.active) {
180
+ const sameOrg = reg.org_id === orgId;
181
+ const sameProject = reg.project_id === projectId;
182
+ if (!sameOrg || !sameProject) {
183
+ console.error(chalk.red(`${opts.dryRun ? '[DRY RUN] Would abort — ' : 'Layer 2 aborted — '}` +
184
+ `rul_f53_provision_never_clobbers_binding:\n` +
185
+ ` role_registrations row for (workspace='${localRegistry.workspace}', role_slug='${roleSlug}') ` +
186
+ `is already bound to org=${reg.org_slug}, project=${reg.project_slug ?? 'null'}.\n` +
187
+ ` Running roles sync from '${projectSlug}' would clobber this binding via UNIQUE upsert.\n` +
188
+ ` See ROLE-REGISTRY-PROJECT-ADDRESSABILITY. Provision aborted.`));
189
+ process.exit(1);
190
+ }
191
+ // r3 penta-state: check resolver_ambiguous / resolver_mismatch
192
+ const candidates = lookupData.resolver_candidates ?? null;
193
+ if (candidates !== null && candidates.length > 1) {
194
+ console.error(chalk.red(`${opts.dryRun ? '[DRY RUN] Would abort — ' : 'Layer 2 aborted — '}` +
195
+ `resolver_ambiguous:\n` +
196
+ ` ${candidates.length} active rows for (role_slug='${roleSlug}', org_id=${orgSlug}).\n` +
197
+ ` Running roles sync would create or re-point a row in an ambiguous resolver state.\n` +
198
+ ` See ROLE-REGISTRY-PROJECT-ADDRESSABILITY Stage 1 + Stage 0. Provision aborted.`));
199
+ process.exit(1);
200
+ }
201
+ if (candidates !== null && candidates.length === 1 && reg && candidates[0].id !== reg.id) {
202
+ console.error(chalk.red(`${opts.dryRun ? '[DRY RUN] Would abort — ' : 'Layer 2 aborted — '}` +
203
+ `resolver_mismatch:\n` +
204
+ ` Schema-key row id=${reg.id} ≠ resolver-candidate row id=${candidates[0].id}.\n` +
205
+ ` See ROLE-REGISTRY-PROJECT-ADDRESSABILITY. Provision aborted.`));
206
+ process.exit(1);
207
+ }
208
+ }
209
+ }
210
+ // Update/add the role entry in roles.json
211
+ if (opts.dryRun) {
212
+ const hasEntry = !!localRegistry.roles[roleSlug];
213
+ statuses.push({
214
+ layer: 2,
215
+ label: 'roles.json entry + role_registration',
216
+ action: '?',
217
+ detail: hasEntry
218
+ ? `roles.json already has '${roleSlug}' — would verify filler.identity matches '${agentName}'`
219
+ : `would add '${roleSlug}' to roles.json with filler.identity='${agentName}'`,
220
+ });
221
+ printLayer(statuses[statuses.length - 1]);
222
+ }
223
+ else {
224
+ const existingEntry = localRegistry.roles[roleSlug];
225
+ if (!existingEntry) {
226
+ // Add new entry
227
+ const registryPath = localRegistry._registryPath;
228
+ const raw = JSON.parse(readFileSync(registryPath, 'utf-8'));
229
+ raw.roles = raw.roles ?? {};
230
+ // Derive conventional paths
231
+ const roleDir = `projects/${projectSlug}/roles/${roleSlug}`;
232
+ raw.roles[roleSlug] = {
233
+ filler: { type: 'agent', identity: agentName },
234
+ subagent: agentName,
235
+ inbox: `${roleDir}/inbox/`,
236
+ briefs: `${roleDir}/briefs/`,
237
+ persona: `projects/${projectSlug}/roles/${roleSlug}.md`,
238
+ scope: 'project',
239
+ };
240
+ writeFileSync(registryPath, JSON.stringify(raw, null, 2) + '\n', 'utf-8');
241
+ statuses.push({ layer: 2, label: 'roles.json entry', action: '+', detail: `Added '${roleSlug}' to ${registryPath}` });
242
+ }
243
+ else if (existingEntry.filler?.identity !== agentName) {
244
+ // Update filler.identity
245
+ const registryPath = localRegistry._registryPath;
246
+ const raw = JSON.parse(readFileSync(registryPath, 'utf-8'));
247
+ raw.roles[roleSlug].filler.identity = agentName;
248
+ raw.roles[roleSlug].subagent = agentName;
249
+ writeFileSync(registryPath, JSON.stringify(raw, null, 2) + '\n', 'utf-8');
250
+ statuses.push({ layer: 2, label: 'roles.json entry', action: '+', detail: `Updated '${roleSlug}' filler.identity to '${agentName}'` });
251
+ }
252
+ else {
253
+ statuses.push({ layer: 2, label: 'roles.json entry', action: '=', detail: `'${roleSlug}' already in roles.json with filler='${agentName}'` });
254
+ }
255
+ printLayer(statuses[statuses.length - 1]);
256
+ // Re-load registry (file may have been updated)
257
+ const updatedRegistry = findLocalRegistry(process.cwd());
258
+ if (!updatedRegistry) {
259
+ console.error(chalk.red('Could not reload registry after update.'));
260
+ process.exit(1);
261
+ }
262
+ // roles sync
263
+ try {
264
+ const payload = buildRolesSyncPayload(updatedRegistry, orgId, projectId);
265
+ const result = (await api('POST', '/api/role-registrations/sync', payload, { noProjectHeader: true }));
266
+ const failures = result.errors ?? [];
267
+ if (failures.length > 0) {
268
+ statuses.push({ layer: 2, label: 'role_registration sync', action: '!', detail: failures.map((e) => `${e.role_slug}: ${e.reason}`).join(', ') });
269
+ }
270
+ else {
271
+ statuses.push({ layer: 2, label: 'role_registration sync', action: '+', detail: `${result.synced} registration(s) upserted` });
272
+ }
273
+ }
274
+ catch (err) {
275
+ statuses.push({ layer: 2, label: 'role_registration sync', action: '!', detail: `Sync error: ${err?.message ?? String(err)}` });
276
+ }
277
+ printLayer(statuses[statuses.length - 1]);
278
+ }
279
+ // ── Layer 3 — verify-and-instruct (NEVER scaffold) ───────────────────────
280
+ // Reload registry for the latest state
281
+ const latestRegistry = findLocalRegistry(process.cwd());
282
+ const roleEntry = latestRegistry?.roles[roleSlug];
283
+ const roleDir = roleEntry?.inbox
284
+ ? roleEntry.inbox.replace(/\/+$/, '').replace(/\/inbox$/, '')
285
+ : `projects/${projectSlug}/roles/${roleSlug}`;
286
+ const playbookPath = `${roleDir}/playbook-task.md`;
287
+ if (opts.dryRun) {
288
+ // 3a: describe the effective persona API check (per rul_f53_row3a_verifies_effective_persona)
289
+ statuses.push({
290
+ layer: 3, label: '3a persona (effective)', action: '?',
291
+ detail: `would verify effective persona for '${agentName}' via GET /api/agents/:name ` +
292
+ `(non-empty systemPrompt check — not file presence; per rul_f53_row3a_verifies_effective_persona)`,
293
+ });
294
+ statuses.push({ layer: 3, label: '3b playbook', action: '?', detail: `would check ${playbookPath} (no scaffold — must be authored manually)` });
295
+ statuses.push({ layer: 3, label: '3c roles.json entry', action: '?', detail: `would check .fazemos/roles.json has '${roleSlug}' with filler` });
296
+ for (const s of statuses.slice(-3))
297
+ printLayer(s);
298
+ }
299
+ else {
300
+ // 3a: effective persona (r3.2 — API check, not file presence)
301
+ // Aligns with rul_f53_row3a_verifies_effective_persona and preflight row3a.
302
+ // Rationale: a docs/agents/<name>.md file may exist but be empty (BUG160), causing the
303
+ // F18 file layer to clobber the DB systemPrompt with "". File presence alone is
304
+ // insufficient — we must check what the agent runtime actually receives.
305
+ try {
306
+ const agentDetail = (await api('GET', `/api/organizations/${orgId}/projects/${projectId}/agents/${encodeURIComponent(agentName)}`, undefined, { noProjectHeader: true }));
307
+ const systemPrompt = agentDetail.agent?.effective_config?.systemPrompt ?? '';
308
+ const trimmed = systemPrompt.trim();
309
+ if (trimmed.length > 0) {
310
+ statuses.push({
311
+ layer: 3, label: '3a persona (effective)', action: '=',
312
+ detail: `effective persona for '${agentName}' is non-empty (${trimmed.length} chars — agent runtime has an operative persona)`,
313
+ });
314
+ }
315
+ else {
316
+ const hasRoleDoc = agentDetail.agent?.role_doc_path != null;
317
+ const roleDocPath = agentDetail.agent?.role_doc_path;
318
+ statuses.push({
319
+ layer: 3, label: '3a persona (effective)', action: '!',
320
+ detail: hasRoleDoc
321
+ ? `EMPTY: effective persona is empty — F18 file at ${roleDocPath} is empty or whitespace-only (BUG160). ` +
322
+ `Delete the file to fall through to the DB systemPrompt, or author non-empty persona content.`
323
+ : `EMPTY: effective persona is empty — author docs/agents/${agentName}.md or set DB systemPrompt via ` +
324
+ `\`fazemos agents update-config\` (BUG161).`,
325
+ });
326
+ }
327
+ }
328
+ catch (err) {
329
+ const status = err?.status ?? 0;
330
+ if (status === 404) {
331
+ // Agent not visible yet — may have just been created in layer 1
332
+ statuses.push({
333
+ layer: 3, label: '3a persona (effective)', action: '?',
334
+ detail: `Agent '${agentName}' not visible via API yet (404) — layer 1 may have just created it. ` +
335
+ `Re-run preflight once the API reflects the new member.`,
336
+ });
337
+ }
338
+ else {
339
+ statuses.push({
340
+ layer: 3, label: '3a persona (effective)', action: '!',
341
+ detail: `API error checking effective persona (HTTP ${status}): ${err?.message ?? String(err)}`,
342
+ });
343
+ }
344
+ }
345
+ printLayer(statuses[statuses.length - 1]);
346
+ // 3b: playbook file
347
+ const hasPlaybook = existsSync(pathJoin(latestRegistry?._workspaceRoot ?? process.cwd(), playbookPath)) ||
348
+ existsSync(pathJoin(latestRegistry?._workspaceRoot ?? process.cwd(), `${roleDir}/playbook.md`));
349
+ if (hasPlaybook) {
350
+ statuses.push({ layer: 3, label: '3b playbook', action: '=', detail: `${playbookPath} exists` });
351
+ }
352
+ else {
353
+ statuses.push({
354
+ layer: 3, label: '3b playbook', action: '!',
355
+ detail: `MISSING: ${playbookPath} — must be authored manually (no scaffold). ` +
356
+ `Reference: projects/fazemos/roles/project-manager/playbook-task.md`,
357
+ });
358
+ }
359
+ printLayer(statuses[statuses.length - 1]);
360
+ // 3c: roles.json entry check (already done above but re-verify after update)
361
+ if (latestRegistry?.roles[roleSlug]?.filler?.identity) {
362
+ statuses.push({ layer: 3, label: '3c roles.json entry', action: '=', detail: `'${roleSlug}' in roles.json with filler='${latestRegistry.roles[roleSlug].filler.identity}'` });
363
+ }
364
+ else {
365
+ statuses.push({ layer: 3, label: '3c roles.json entry', action: '!', detail: `'${roleSlug}' not found or incomplete in .fazemos/roles.json` });
366
+ }
367
+ printLayer(statuses[statuses.length - 1]);
368
+ }
369
+ if (!opts.json && !opts.dryRun) {
370
+ console.log('');
371
+ console.log(chalk.cyan('Running preflight to show remaining gaps (layers 4–6)...\n'));
372
+ }
373
+ // ── Run preflight at the end ───────────────────────────────────────────────
374
+ if (!opts.dryRun) {
375
+ const exitCode = await runPreflight(`${orgSlug}/${projectSlug}/${roleSlug}`, {
376
+ json: opts.json,
377
+ region: opts.region,
378
+ });
379
+ process.exit(exitCode);
380
+ }
381
+ }
382
+ //# sourceMappingURL=provision.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provision.js","sourceRoot":"","sources":["../../src/commands/provision.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -30,6 +30,9 @@ import { registerProfilesCommands } from './commands/profiles.js';
30
30
  import { registerImageCommands } from './commands/image.js';
31
31
  import { registerIngestCommands } from './commands/ingest.js';
32
32
  import { registerAssetCommands } from './commands/asset/index.js';
33
+ // F53 — Agent Provisioning Tooling
34
+ import { runPreflight } from './commands/preflight.js';
35
+ import { runProvision } from './commands/provision.js';
33
36
  import { parseExecutionsJson, resolveWaitOptions, waitForPipelines, buildAwsCommand, validateExecutionEntry, } from './wait-for-pipeline.js';
34
37
  import { readFileSync, readdirSync, writeFileSync, mkdirSync, existsSync, statSync } from 'fs';
35
38
  import { fileURLToPath } from 'url';
@@ -7452,6 +7455,24 @@ agentsCmd
7452
7455
  console.log(chalk.gray(` Audit: ${a.auditLogId}`));
7453
7456
  }
7454
7457
  }
7458
+ // F53 — next-step hint (additive; pre-existing success lines above stay byte-identical)
7459
+ // Suppressed under --json (AC4 rule: rul_f53_hint_text_additive_only).
7460
+ if (!opts.json) {
7461
+ const orgId = getActiveOrgId();
7462
+ const orgSlug = orgId ? (findOrgById(orgId)?.slug ?? null) : null;
7463
+ const roleSlug = opts.roles?.[0] ?? opts.name;
7464
+ const projectSlug = credentialProjectId
7465
+ ? (orgId ? (findProjectById(orgId, credentialProjectId)?.slug ?? null) : null)
7466
+ : null;
7467
+ console.log('');
7468
+ console.log(chalk.gray(' Not autonomous yet — layers 2–6 remain.'));
7469
+ if (orgSlug && projectSlug && roleSlug) {
7470
+ console.log(chalk.gray(` Next: fazemos agents preflight ${orgSlug}/${projectSlug}/${roleSlug}`));
7471
+ }
7472
+ else {
7473
+ console.log(chalk.gray(` Next: fazemos agents preflight <org>/<project>/${roleSlug}`));
7474
+ }
7475
+ }
7455
7476
  }
7456
7477
  catch (err) {
7457
7478
  if (opts.json) {
@@ -7476,6 +7497,59 @@ agentsCmd
7476
7497
  process.exit(1);
7477
7498
  }
7478
7499
  });
7500
+ // ── F53 — `agents preflight` ────────────────────────────────────────────────
7501
+ // 6-row PASS/FAIL/SKIP/XWS_DEFERRED verifier for agent provisioning state.
7502
+ // Exit codes: 0=all clear, 1=FAIL, 2=tooling-error, 3=XWS_DEFERRED (INCOMPLETE).
7503
+ // Target forms: <org>/<project>/<role>, <org>/<project>, <org>/<role>.
7504
+ // Spec: projects/fazemos/specs/tech/platform/F53-agent-provision-tooling-tech-spec.md
7505
+ agentsCmd
7506
+ .command('preflight')
7507
+ .description('Verify agent provisioning state: 6-row PASS/FAIL/SKIP verifier with fix commands.\n' +
7508
+ 'Target: <org>/<project>/<role> | <org>/<project> (all roles) | <org>/<role> (all projects)\n' +
7509
+ 'Exit codes: 0=all clear, 1=FAIL, 2=tooling-error, 3=XWS_DEFERRED (cross-workspace unverified)')
7510
+ .argument('<target>', 'org/project/role, org/project (fan-out roles), or org/role (fan-out projects)')
7511
+ .option('--json', 'Emit stable JSON instead of human-readable output (schema_version 1.0)')
7512
+ .option('--workspace <path>', 'Path to workspace root containing .fazemos/roles.json (defaults to nearest ancestor)')
7513
+ .option('--region <region>', 'AWS region for SSM/Lambda checks (reads AWS_REGION env var by default)')
7514
+ .action(async (target, opts) => {
7515
+ try {
7516
+ const exitCode = await runPreflight(target, opts);
7517
+ process.exit(exitCode);
7518
+ }
7519
+ catch (err) {
7520
+ if (opts.json) {
7521
+ process.stdout.write(JSON.stringify({ schema_version: '1.0', target, exit_code: 2, error: err?.message ?? String(err) }) + '\n');
7522
+ }
7523
+ else {
7524
+ console.error(chalk.red(`⚠ TOOLING-ERROR: ${err?.message ?? String(err)}`));
7525
+ }
7526
+ process.exit(2);
7527
+ }
7528
+ });
7529
+ // ── F53 — `agents provision` ────────────────────────────────────────────────
7530
+ // Idempotent composite of provisioning layers 1–3, then runs preflight.
7531
+ // Non-interactive one-shot; --dry-run is the safety valve (no --yes flag, Ollie A1).
7532
+ // Spec: projects/fazemos/specs/tech/platform/F53-agent-provision-tooling-tech-spec.md
7533
+ agentsCmd
7534
+ .command('provision')
7535
+ .description('Idempotent provisioning of layers 1–3 for an agent role, then runs preflight.\n' +
7536
+ 'Layer 1: agents register. Layer 2: roles.json + roles sync. Layer 3: verify-and-instruct (no scaffold).\n' +
7537
+ 'Non-interactive. Use --dry-run to preview without writing.')
7538
+ .argument('<target>', 'org/project/role to provision')
7539
+ .requiredOption('--name <agent>', 'Agent display name')
7540
+ .requiredOption('--model <model>', 'Model (e.g., sonnet, opus, haiku)')
7541
+ .option('--dry-run', 'Preview what would be done without making changes')
7542
+ .option('--json', 'Suppress human output; preflight result is emitted as JSON')
7543
+ .option('--region <region>', 'AWS region for SSM/Lambda checks in the final preflight run')
7544
+ .action(async (target, opts) => {
7545
+ try {
7546
+ await runProvision(target, opts);
7547
+ }
7548
+ catch (err) {
7549
+ console.error(chalk.red(`provision error: ${err?.message ?? String(err)}`));
7550
+ process.exit(1);
7551
+ }
7552
+ });
7479
7553
  // ── F17 — Project-scoped agents ─────────────────────────────────
7480
7554
  // `agents list` / `agents show` become Project-scoped by default. The
7481
7555
  // pre-F17 Org-level list is still reachable via `--org-only`. Execution
@@ -10409,6 +10483,19 @@ Run after editing roles.json to sync inbox access to the API.`)
10409
10483
  console.log(` ${chalk.cyan(slug)}`);
10410
10484
  }
10411
10485
  }
10486
+ // F53 — next-step hint (additive; the success line above stays byte-identical)
10487
+ // Suppressed under --dry-run (opts.dryRun returns early above; this only runs on real sync).
10488
+ // The org/project come from the local registry that was just synced.
10489
+ const hintOrgSlug = localRegistry.org;
10490
+ const hintProjectSlug = localRegistry.project ?? null;
10491
+ console.log('');
10492
+ console.log(chalk.gray(` Not autonomous yet — layers 3–6 remain for each role.`));
10493
+ if (hintOrgSlug && hintProjectSlug) {
10494
+ console.log(chalk.gray(` Next: fazemos agents preflight ${hintOrgSlug}/${hintProjectSlug}`));
10495
+ }
10496
+ else if (hintOrgSlug) {
10497
+ console.log(chalk.gray(` Next: fazemos agents preflight ${hintOrgSlug}/<project>`));
10498
+ }
10412
10499
  }
10413
10500
  catch (err) {
10414
10501
  console.error(chalk.red(err instanceof Error ? err.message : String(err)));