@formigio/fazemos-cli 0.10.66 → 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.
- package/dist/commands/preflight.d.ts +41 -0
- package/dist/commands/preflight.js +706 -0
- package/dist/commands/preflight.js.map +1 -0
- package/dist/commands/provision.d.ts +29 -0
- package/dist/commands/provision.js +382 -0
- package/dist/commands/provision.js.map +1 -0
- package/dist/index.js +173 -14
- package/dist/index.js.map +1 -1
- package/dist/preflight/repoRead.d.ts +65 -0
- package/dist/preflight/repoRead.js +194 -0
- package/dist/preflight/repoRead.js.map +1 -0
- package/dist/preflight/roster.d.ts +65 -0
- package/dist/preflight/roster.js +153 -0
- package/dist/preflight/roster.js.map +1 -0
- package/dist/preflight/row1_member.d.ts +8 -0
- package/dist/preflight/row1_member.js +64 -0
- package/dist/preflight/row1_member.js.map +1 -0
- package/dist/preflight/row2_roleRegistration.d.ts +18 -0
- package/dist/preflight/row2_roleRegistration.js +156 -0
- package/dist/preflight/row2_roleRegistration.js.map +1 -0
- package/dist/preflight/row3_persona.d.ts +24 -0
- package/dist/preflight/row3_persona.js +92 -0
- package/dist/preflight/row3_persona.js.map +1 -0
- package/dist/preflight/row3_playbook.d.ts +30 -0
- package/dist/preflight/row3_playbook.js +142 -0
- package/dist/preflight/row3_playbook.js.map +1 -0
- package/dist/preflight/row3_rolesJson.d.ts +12 -0
- package/dist/preflight/row3_rolesJson.js +38 -0
- package/dist/preflight/row3_rolesJson.js.map +1 -0
- package/dist/preflight/row3_workspace.d.ts +24 -0
- package/dist/preflight/row3_workspace.js +253 -0
- package/dist/preflight/row3_workspace.js.map +1 -0
- package/dist/preflight/row4_ssm.d.ts +57 -0
- package/dist/preflight/row4_ssm.js +235 -0
- package/dist/preflight/row4_ssm.js.map +1 -0
- package/dist/preflight/row5_workerLambdaWakeConfig.d.ts +20 -0
- package/dist/preflight/row5_workerLambdaWakeConfig.js +113 -0
- package/dist/preflight/row5_workerLambdaWakeConfig.js.map +1 -0
- package/dist/preflight/row6_ingest.d.ts +20 -0
- package/dist/preflight/row6_ingest.js +178 -0
- package/dist/preflight/row6_ingest.js.map +1 -0
- package/dist/preflight/schema.d.ts +175 -0
- package/dist/preflight/schema.js +62 -0
- package/dist/preflight/schema.js.map +1 -0
- package/dist/preflight/workerLambdas.d.ts +22 -0
- package/dist/preflight/workerLambdas.js +25 -0
- package/dist/preflight/workerLambdas.js.map +1 -0
- 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":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC7D,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAkB9C;;;;;GAKG;AACH,SAAS,UAAU,CAAC,CAAc;IAChC,MAAM,IAAI,GACR,CAAC,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACpC,CAAC,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YACrC,CAAC,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBACnC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClB,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,UAAU,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAc,EACd,IAAsB;IAEtB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,MAAM,gCAAgC,CAAC,CAAC,CAAC;QACpF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC;IAE/C,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC;IAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC;IAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC;IAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAEzB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,OAAO,MAAM,WAAW,MAAM,QAAQ,EAAE,CAAC,CAAC,CAAC;QAClF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,SAAS,YAAY,KAAK,UAAU,OAAO,EAAE,CAAC,CAAC,CAAC;QACnF,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,yCAAyC,CAAC,CAAC,CAAC;QACvE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,6EAA6E;IAC7E,IAAI,KAAa,CAAC;IAClB,IAAI,SAAiB,CAAC;IACtB,IAAI,CAAC;QACH,KAAK,GAAG,MAAM,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,CAAC,MAAM,GAAG,CACzB,KAAK,EACL,sBAAsB,KAAK,yBAAyB,EACpD,SAAS,EACT,EAAE,eAAe,EAAE,IAAI,EAAE,CAC1B,CAAuD,CAAC;QACzD,MAAM,OAAO,GAAG,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;QAC9E,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,YAAY,WAAW,uBAAuB,OAAO,IAAI,CAAC,CAAC;QACzF,SAAS,GAAG,OAAO,CAAC,EAAE,CAAC;IACzB,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,gCAAgC,GAAG,EAAE,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACxF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,QAAQ,GAAkB,EAAE,CAAC;IAEnC,4EAA4E;IAC5E,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,2BAA2B,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,mBAAmB,SAAS,gBAAgB,KAAK,2BAA2B,EAAE,CAAC,CAAC;QACnK,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;SAAM,CAAC;QACN,IAAI,CAAC;YACH,gCAAgC;YAChC,MAAM,WAAW,GAAG,CAAC,MAAM,GAAG,CAC5B,KAAK,EACL,sBAAsB,KAAK,qBAAqB,EAChD,SAAS,EACT,EAAE,eAAe,EAAE,IAAI,EAAE,CAC1B,CAAwH,CAAC;YAE1H,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;YAC5E,MAAM,QAAQ,GAAG,CAAC,WAAW,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAC/C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAC7E,CAAC;YAEF,IAAI,QAAQ,EAAE,CAAC;gBACb,gDAAgD;gBAChD,MAAM,KAAK,GAAG,QAAQ,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE,CAAC;gBACjD,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,2BAA2B,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,SAAS,gBAAgB,QAAQ,CAAC,EAAE,YAAY,QAAQ,qBAAqB,EAAE,CAAC,CAAC;gBAC1K,CAAC;qBAAM,CAAC;oBACN,gDAAgD;oBAChD,MAAM,GAAG,CAAC,MAAM,EAAE,sBAAsB,EAAE;wBACxC,MAAM,EAAE,CAAC;gCACP,WAAW,EAAE,SAAS;gCACtB,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,QAAQ,CAAC;gCAC3B,MAAM,EAAE,EAAE,KAAK,EAAE;gCACjB,mBAAmB,EAAE,KAAK;6BAC3B,CAAC;qBACH,CAAC,CAAC;oBACH,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,2BAA2B,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,SAAS,wBAAwB,QAAQ,SAAS,EAAE,CAAC,CAAC;gBAC/I,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,4CAA4C;gBAC5C,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,MAAM,EAAE,sBAAsB,EAAE;oBACtD,MAAM,EAAE,CAAC;4BACP,WAAW,EAAE,SAAS;4BACtB,KAAK,EAAE,CAAC,QAAQ,CAAC;4BACjB,MAAM,EAAE,EAAE,KAAK,EAAE;4BACjB,mBAAmB,EAAE,IAAI;4BACzB,mBAAmB,EAAE,SAAS;yBAC/B,CAAC;iBACH,CAAC,CAAoI,CAAC;gBAEvI,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;gBACrC,MAAM,UAAU,GAAG,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC;gBAEnD,IAAI,MAAM,GAAG,IAAI,SAAS,oBAAoB,WAAW,EAAE,SAAS,IAAI,SAAS,GAAG,CAAC;gBACrF,IAAI,UAAU,KAAK,QAAQ,IAAI,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;oBAC/D,MAAM,IAAI,SAAS,KAAK,CAAC,MAAM,CAAC,qCAAqC,GAAG,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;oBACzG,MAAM,IAAI,iBAAiB,WAAW,CAAC,UAAU,EAAE,QAAQ,IAAI,SAAS,EAAE,CAAC;gBAC7E,CAAC;qBAAM,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;oBACnC,MAAM,IAAI,kEAAkE,CAAC;gBAC/E,CAAC;gBACD,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,2BAA2B,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;YACvF,CAAC;QACH,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,2BAA2B,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,GAAG,EAAE,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9H,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;YAC1C,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC,CAAC;YAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,6EAA6E;IAC7E,MAAM,aAAa,GAAG,iBAAiB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACvD,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,CAAC,GAAgB,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,sCAAsC,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,sFAAsF,EAAE,CAAC;QAChM,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,UAAU,CAAC,CAAC,CAAC,CAAC;QACd,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC,CAAC;QAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAoBD,CAAC;QACC,IAAI,UAAU,GAA0B,IAAI,CAAC;QAE7C,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,IAAI,eAAe,CAAC;gBACvC,SAAS,EAAE,aAAa,CAAC,SAAS;gBAClC,SAAS,EAAE,QAAQ;gBACnB,MAAM,EAAE,KAAK;aACd,CAAC,CAAC;YACH,UAAU,GAAG,CAAC,MAAM,GAAG,CACrB,KAAK,EACL,kCAAkC,YAAY,CAAC,QAAQ,EAAE,EAAE,EAC3D,SAAS,EACT,EAAE,eAAe,EAAE,IAAI,EAAE,CAC1B,CAAmB,CAAC;QACvB,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,MAAM,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,CAAC,CAAC;YAChC,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;gBACnB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CACrB,+DAA+D;oBAC/D,sFAAsF,OAAO,MAAM;oBACnG,+EAA+E;oBAC/E,4BAA4B,OAAO,sBAAsB,CAC1D,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CACrB,+DAA+D;oBAC/D,+CAA+C,GAAG,EAAE,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,2BAA2B;oBACrG,oCAAoC,CACrC,CAAC,CAAC;YACL,CAAC;YACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CACxB,0FAA0F,CAC3F,CAAC,CAAC;YACL,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,mDAAmD;QACnD,MAAM,GAAG,GAAG,UAAU,EAAE,YAAY,CAAC;QACrC,IAAI,UAAU,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAC3C,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,KAAK,KAAK,CAAC;YACrC,MAAM,WAAW,GAAG,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC;YAEjD,IAAI,CAAC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC7B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CACrB,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,oBAAoB,EAAE;oBACpE,6CAA6C;oBAC7C,4CAA4C,aAAa,CAAC,SAAS,iBAAiB,QAAQ,KAAK;oBACjG,2BAA2B,GAAG,CAAC,QAAQ,aAAa,GAAG,CAAC,YAAY,IAAI,MAAM,KAAK;oBACnF,8BAA8B,WAAW,mDAAmD;oBAC5F,gEAAgE,CACjE,CAAC,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,+DAA+D;YAC/D,MAAM,UAAU,GAAG,UAAU,CAAC,mBAAmB,IAAI,IAAI,CAAC;YAC1D,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CACrB,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,oBAAoB,EAAE;oBACpE,uBAAuB;oBACvB,KAAK,UAAU,CAAC,MAAM,gCAAgC,QAAQ,aAAa,OAAO,MAAM;oBACxF,uFAAuF;oBACvF,kFAAkF,CACnF,CAAC,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,EAAE,CAAC;gBACzF,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CACrB,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,oBAAoB,EAAE;oBACpE,sBAAsB;oBACtB,uBAAuB,GAAG,CAAC,EAAE,gCAAgC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK;oBAClF,gEAAgE,CACjE,CAAC,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;IACH,CAAC;IAED,0CAA0C;IAC1C,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,MAAM,QAAQ,GAAG,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACjD,QAAQ,CAAC,IAAI,CAAC;YACZ,KAAK,EAAE,CAAC;YACR,KAAK,EAAE,sCAAsC;YAC7C,MAAM,EAAE,GAAG;YACX,MAAM,EAAE,QAAQ;gBACd,CAAC,CAAC,2BAA2B,QAAQ,6CAA6C,SAAS,GAAG;gBAC9F,CAAC,CAAC,cAAc,QAAQ,yCAAyC,SAAS,GAAG;SAChF,CAAC,CAAC;QACH,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;SAAM,CAAC;QACN,MAAM,aAAa,GAAG,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACpD,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,gBAAgB;YAChB,MAAM,YAAY,GAAG,aAAa,CAAC,aAAa,CAAC;YACjD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;YAC5D,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;YAC5B,4BAA4B;YAC5B,MAAM,OAAO,GAAG,YAAY,WAAW,UAAU,QAAQ,EAAE,CAAC;YAC5D,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG;gBACpB,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE;gBAC9C,QAAQ,EAAE,SAAS;gBACnB,KAAK,EAAE,GAAG,OAAO,SAAS;gBAC1B,MAAM,EAAE,GAAG,OAAO,UAAU;gBAC5B,OAAO,EAAE,YAAY,WAAW,UAAU,QAAQ,KAAK;gBACvD,KAAK,EAAE,SAAS;aACjB,CAAC;YACF,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;YAC1E,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,QAAQ,QAAQ,YAAY,EAAE,EAAE,CAAC,CAAC;QACxH,CAAC;aAAM,IAAI,aAAa,CAAC,MAAM,EAAE,QAAQ,KAAK,SAAS,EAAE,CAAC;YACxD,yBAAyB;YACzB,MAAM,YAAY,GAAG,aAAa,CAAC,aAAa,CAAC;YACjD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;YAC5D,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,GAAG,SAAS,CAAC;YAChD,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,QAAQ,GAAG,SAAS,CAAC;YACzC,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;YAC1E,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,QAAQ,yBAAyB,SAAS,GAAG,EAAE,CAAC,CAAC;QACzI,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,QAAQ,wCAAwC,SAAS,GAAG,EAAE,CAAC,CAAC;QAChJ,CAAC;QACD,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QAE1C,gDAAgD;QAChD,MAAM,eAAe,GAAG,iBAAiB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC,CAAC;YACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,aAAa;QACb,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,qBAAqB,CAAC,eAAe,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;YACzE,MAAM,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,MAAM,EAAE,8BAA8B,EAAE,OAAO,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAIpG,CAAC;YACF,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;YACrC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,wBAAwB,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACnJ,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,wBAAwB,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,2BAA2B,EAAE,CAAC,CAAC;YACjI,CAAC;QACH,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,wBAAwB,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,eAAe,GAAG,EAAE,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;QAClI,CAAC;QACD,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,4EAA4E;IAC5E,uCAAuC;IACvC,MAAM,cAAc,GAAG,iBAAiB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACxD,MAAM,SAAS,GAAG,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,SAAS,EAAE,KAAK;QAC9B,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;QAC7D,CAAC,CAAC,YAAY,WAAW,UAAU,QAAQ,EAAE,CAAC;IAChD,MAAM,YAAY,GAAG,GAAG,OAAO,mBAAmB,CAAC;IAEnD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,8FAA8F;QAC9F,QAAQ,CAAC,IAAI,CAAC;YACZ,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,wBAAwB,EAAE,MAAM,EAAE,GAAG;YACtD,MAAM,EAAE,uCAAuC,SAAS,8BAA8B;gBACpF,kGAAkG;SACrG,CAAC,CAAC;QACH,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,eAAe,YAAY,4CAA4C,EAAE,CAAC,CAAC;QAChJ,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,qBAAqB,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,wCAAwC,QAAQ,eAAe,EAAE,CAAC,CAAC;QAChJ,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;SAAM,CAAC;QACN,8DAA8D;QAC9D,4EAA4E;QAC5E,uFAAuF;QACvF,gFAAgF;QAChF,yEAAyE;QACzE,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,CAAC,MAAM,GAAG,CAC5B,KAAK,EACL,sBAAsB,KAAK,aAAa,SAAS,WAAW,kBAAkB,CAAC,SAAS,CAAC,EAAE,EAC3F,SAAS,EACT,EAAE,eAAe,EAAE,IAAI,EAAE,CAC1B,CAKA,CAAC;YACF,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,EAAE,gBAAgB,EAAE,YAAY,IAAI,EAAE,CAAC;YAC7E,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC;YACpC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,QAAQ,CAAC,IAAI,CAAC;oBACZ,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,wBAAwB,EAAE,MAAM,EAAE,GAAG;oBACtD,MAAM,EAAE,0BAA0B,SAAS,mBAAmB,OAAO,CAAC,MAAM,kDAAkD;iBAC/H,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,EAAE,aAAa,IAAI,IAAI,CAAC;gBAC5D,MAAM,WAAW,GAAG,WAAW,CAAC,KAAK,EAAE,aAAa,CAAC;gBACrD,QAAQ,CAAC,IAAI,CAAC;oBACZ,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,wBAAwB,EAAE,MAAM,EAAE,GAAG;oBACtD,MAAM,EAAE,UAAU;wBAChB,CAAC,CAAC,mDAAmD,WAAW,yCAAyC;4BACvG,8FAA8F;wBAChG,CAAC,CAAC,0DAA0D,SAAS,iCAAiC;4BACpG,4CAA4C;iBACjD,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,MAAM,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,CAAC,CAAC;YAChC,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;gBACnB,gEAAgE;gBAChE,QAAQ,CAAC,IAAI,CAAC;oBACZ,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,wBAAwB,EAAE,MAAM,EAAE,GAAG;oBACtD,MAAM,EAAE,UAAU,SAAS,sEAAsE;wBAC/F,wDAAwD;iBAC3D,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,IAAI,CAAC;oBACZ,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,wBAAwB,EAAE,MAAM,EAAE,GAAG;oBACtD,MAAM,EAAE,8CAA8C,MAAM,MAAM,GAAG,EAAE,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE;iBAChG,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QAE1C,oBAAoB;QACpB,MAAM,WAAW,GACf,UAAU,CAAC,QAAQ,CAAC,cAAc,EAAE,cAAc,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,CAAC;YACnF,UAAU,CAAC,QAAQ,CAAC,cAAc,EAAE,cAAc,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,cAAc,CAAC,CAAC,CAAC;QAClG,IAAI,WAAW,EAAE,CAAC;YAChB,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,YAAY,SAAS,EAAE,CAAC,CAAC;QACnG,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG;gBAC3C,MAAM,EAAE,YAAY,YAAY,8CAA8C;oBAC5E,oEAAoE;aACvE,CAAC,CAAC;QACL,CAAC;QACD,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QAE1C,6EAA6E;QAC7E,IAAI,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;YACtD,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,qBAAqB,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,QAAQ,gCAAgC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC;QAChL,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,qBAAqB,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,QAAQ,kDAAkD,EAAE,CAAC,CAAC;QACjJ,CAAC;QACD,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC,CAAC;IACxF,CAAC;IAED,8EAA8E;IAC9E,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACjB,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,GAAG,OAAO,IAAI,WAAW,IAAI,QAAQ,EAAE,EAAE;YAC3E,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzB,CAAC;AACH,CAAC"}
|