@miller-tech/uap 1.48.1 → 1.50.0

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 (45) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/bin/cli.js +7 -2
  3. package/dist/bin/cli.js.map +1 -1
  4. package/dist/cli/guided-setup.d.ts +15 -0
  5. package/dist/cli/guided-setup.d.ts.map +1 -0
  6. package/dist/cli/guided-setup.js +270 -0
  7. package/dist/cli/guided-setup.js.map +1 -0
  8. package/dist/cli/init.d.ts +1 -0
  9. package/dist/cli/init.d.ts.map +1 -1
  10. package/dist/cli/init.js +10 -0
  11. package/dist/cli/init.js.map +1 -1
  12. package/dist/cli/prompt-ui.d.ts +54 -0
  13. package/dist/cli/prompt-ui.d.ts.map +1 -0
  14. package/dist/cli/prompt-ui.js +72 -0
  15. package/dist/cli/prompt-ui.js.map +1 -0
  16. package/dist/cli/setup-backup.d.ts +25 -0
  17. package/dist/cli/setup-backup.d.ts.map +1 -0
  18. package/dist/cli/setup-backup.js +44 -0
  19. package/dist/cli/setup-backup.js.map +1 -0
  20. package/dist/cli/setup-extract.d.ts +64 -0
  21. package/dist/cli/setup-extract.d.ts.map +1 -0
  22. package/dist/cli/setup-extract.js +287 -0
  23. package/dist/cli/setup-extract.js.map +1 -0
  24. package/dist/cli/setup.d.ts +18 -2
  25. package/dist/cli/setup.d.ts.map +1 -1
  26. package/dist/cli/setup.js +65 -23
  27. package/dist/cli/setup.js.map +1 -1
  28. package/dist/cli/wizard-config.d.ts +78 -0
  29. package/dist/cli/wizard-config.d.ts.map +1 -0
  30. package/dist/cli/wizard-config.js +164 -0
  31. package/dist/cli/wizard-config.js.map +1 -0
  32. package/dist/utils/lazy-imports.d.ts +6 -0
  33. package/dist/utils/lazy-imports.d.ts.map +1 -1
  34. package/dist/utils/lazy-imports.js +13 -0
  35. package/dist/utils/lazy-imports.js.map +1 -1
  36. package/dist/utils/merge-claude-md.d.ts +13 -0
  37. package/dist/utils/merge-claude-md.d.ts.map +1 -1
  38. package/dist/utils/merge-claude-md.js +3 -3
  39. package/dist/utils/merge-claude-md.js.map +1 -1
  40. package/package.json +4 -3
  41. package/src/policies/enforcers/__pycache__/_common.cpython-312.pyc +0 -0
  42. package/dist/cli/setup-wizard.d.ts +0 -2
  43. package/dist/cli/setup-wizard.d.ts.map +0 -1
  44. package/dist/cli/setup-wizard.js +0 -822
  45. package/dist/cli/setup-wizard.js.map +0 -1
@@ -0,0 +1,287 @@
1
+ /**
2
+ * Extraction engine — turn a project's UNIQUE custom agent instructions into
3
+ * reusable UAP policies and skills during setup.
4
+ *
5
+ * Existing instruction files (CLAUDE.md, AGENTS.md, …) usually contain a few
6
+ * bespoke rules/workflows alongside the UAP-standard scaffolding. This module
7
+ * detects those non-standard sections, heuristically classifies each as a
8
+ * policy (imperative rule/gate) or a skill (workflow/how-to), and — after the
9
+ * user confirms — emits valid policy `.md` + skill `SKILL.md` files.
10
+ *
11
+ * Deterministic (no LLM). Backup runs before this (see setup-backup.ts); v1
12
+ * copies content into policy/skill files and leaves the originals in place, so
13
+ * nothing is lost. Idempotent via a sidecar manifest of extracted slugs.
14
+ */
15
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs';
16
+ import { join } from 'path';
17
+ import { parseSections, isStandardSection } from '../utils/merge-claude-md.js';
18
+ import { getPolicyMemoryManager } from '../policies/policy-memory.js';
19
+ /** Agent instruction files scanned for custom content (config excluded). */
20
+ export const AGENT_INSTRUCTION_FILES = [
21
+ 'CLAUDE.md',
22
+ 'AGENTS.md',
23
+ 'AGENT.md',
24
+ 'GEMINI.md',
25
+ '.cursorrules',
26
+ '.clinerules',
27
+ '.windsurfrules',
28
+ ];
29
+ const MANIFEST_PATH = join('.uap', 'extracted.json');
30
+ function loadManifest(cwd) {
31
+ try {
32
+ const raw = readFileSync(join(cwd, MANIFEST_PATH), 'utf-8');
33
+ const data = JSON.parse(raw);
34
+ return new Set(data.slugs ?? []);
35
+ }
36
+ catch {
37
+ return new Set();
38
+ }
39
+ }
40
+ function saveManifest(cwd, slugs) {
41
+ try {
42
+ mkdirSync(join(cwd, '.uap'), { recursive: true });
43
+ writeFileSync(join(cwd, MANIFEST_PATH), JSON.stringify({ slugs: [...slugs] }, null, 2));
44
+ }
45
+ catch {
46
+ /* sidecar is best-effort */
47
+ }
48
+ }
49
+ export function slugify(title) {
50
+ return title
51
+ .toLowerCase()
52
+ .replace(/[^a-z0-9]+/g, '-')
53
+ .replace(/^-+|-+$/g, '')
54
+ .slice(0, 60) || 'custom';
55
+ }
56
+ /** Resolve a slug that doesn't collide with an existing file at dir/<slug><ext>. */
57
+ function uniqueSlug(base, exists) {
58
+ if (!exists(base))
59
+ return base;
60
+ for (let n = 2; n < 100; n++) {
61
+ const candidate = `${base}-${n}`;
62
+ if (!exists(candidate))
63
+ return candidate;
64
+ }
65
+ return `${base}-${Date.now()}`;
66
+ }
67
+ const POLICY_RE = /\b(MUST|DO NOT|DON'T|NEVER|ALWAYS|REQUIRED|SHALL|PROHIBITED|FORBIDDEN|MANDATORY|GATE|ENFORCE)\b/gi;
68
+ const SKILL_RE = /\b(how to|workflow|procedure|step\s*\d|usage|run the|guide)\b/gi;
69
+ /**
70
+ * Heuristically classify a section. Policy signals are imperative rules/gates;
71
+ * skill signals are workflow/how-to. Biased toward keep-inline when ambiguous
72
+ * so content the user expects in CLAUDE.md isn't moved unnecessarily.
73
+ */
74
+ export function classifySection(title, content) {
75
+ const text = `${title}\n${content}`;
76
+ let policyScore = (text.match(POLICY_RE) ?? []).length * 2;
77
+ let skillScore = (text.match(SKILL_RE) ?? []).length * 1.5;
78
+ // Structural signals
79
+ if (/^\s*[-*]\s*\[[ x]\]/m.test(content))
80
+ policyScore += 2; // checklist
81
+ if (/[⛔🔴]/.test(text))
82
+ policyScore += 2;
83
+ if (/^\s*\d+\.\s+/m.test(content))
84
+ skillScore += 1.5; // ordered steps
85
+ if (/```/.test(content))
86
+ skillScore += 1.5; // code block
87
+ if (/\b(gate|policy|prohibited)\b/i.test(title))
88
+ policyScore += 2;
89
+ if (/\b(workflow|guide|how|setup|deploy)\b/i.test(title))
90
+ skillScore += 1.5;
91
+ const total = policyScore + skillScore;
92
+ const confidence = total === 0 ? 0 : Math.abs(policyScore - skillScore) / total;
93
+ if (policyScore > skillScore && policyScore >= 4)
94
+ return { classification: 'policy', confidence };
95
+ if (skillScore > policyScore && skillScore >= 3)
96
+ return { classification: 'skill', confidence };
97
+ return { classification: 'keep-inline', confidence };
98
+ }
99
+ /** Existing agent instruction files present in the project. */
100
+ export function findInstructionFiles(cwd) {
101
+ return AGENT_INSTRUCTION_FILES.filter((f) => existsSync(join(cwd, f)));
102
+ }
103
+ /**
104
+ * Detect non-standard (custom) sections across the project's instruction files,
105
+ * pre-classified. Already-extracted sections (per the manifest) are skipped.
106
+ */
107
+ export function detectCustomSections(cwd) {
108
+ const alreadyExtracted = loadManifest(cwd);
109
+ const out = [];
110
+ for (const file of findInstructionFiles(cwd)) {
111
+ let sections;
112
+ try {
113
+ sections = parseSections(readFileSync(join(cwd, file), 'utf-8'));
114
+ }
115
+ catch {
116
+ continue;
117
+ }
118
+ for (const s of sections) {
119
+ if (!s.title || !s.content.trim())
120
+ continue;
121
+ if (isStandardSection(s.title))
122
+ continue;
123
+ const key = `${file}::${s.title.toLowerCase().trim()}`;
124
+ if (alreadyExtracted.has(key))
125
+ continue;
126
+ const { classification, confidence } = classifySection(s.title, s.content);
127
+ out.push({
128
+ title: s.title,
129
+ content: s.content.trim(),
130
+ sourceFile: file,
131
+ classification,
132
+ confidence,
133
+ slug: slugify(s.title),
134
+ key,
135
+ });
136
+ }
137
+ }
138
+ return out;
139
+ }
140
+ function policyMarkdown(section, slug) {
141
+ const stem = section.sourceFile.replace(/\.[^.]+$/, '').replace(/^\./, '');
142
+ return `# ${slug}
143
+
144
+ **Category**: custom
145
+ **Level**: RECOMMENDED
146
+ **Enforcement Stage**: pre-exec
147
+ **Tags**: extracted, ${stem}
148
+
149
+ ## Rule
150
+
151
+ ${section.content}
152
+
153
+ ## Why
154
+
155
+ Extracted from ${section.sourceFile} during \`uap setup\` — a project-specific rule promoted to a reviewable UAP policy.
156
+ `;
157
+ }
158
+ function skillDescription(section) {
159
+ // First meaningful prose line: skip blanks, headings, and list/step markers
160
+ // (so a "1. Run build" workflow doesn't become a description of "1.").
161
+ const line = section.content
162
+ .split('\n')
163
+ .map((l) => l.trim())
164
+ .find((l) => l && !/^#{1,6}\s/.test(l) && !/^([-*+]|\d+\.)\s/.test(l) && !/^```/.test(l));
165
+ const base = (line ?? section.title).replace(/\s+/g, ' ').trim();
166
+ return base.length > 120 ? `${base.slice(0, 117)}…` : base;
167
+ }
168
+ function skillMarkdown(section) {
169
+ // JSON.stringify yields a valid YAML flow scalar — safe even when the source
170
+ // line contains colons, quotes, or markdown control characters.
171
+ return `---
172
+ name: ${section.slug}
173
+ description: ${JSON.stringify(skillDescription(section))}
174
+ ---
175
+
176
+ # ${section.title}
177
+
178
+ ${section.content}
179
+ `;
180
+ }
181
+ async function emitPolicy(cwd, section) {
182
+ const dir = join(cwd, 'policies');
183
+ mkdirSync(dir, { recursive: true });
184
+ const slug = uniqueSlug(section.slug, (s) => existsSync(join(dir, `${s}.md`)));
185
+ const md = policyMarkdown(section, slug);
186
+ writeFileSync(join(dir, `${slug}.md`), md);
187
+ // Register into the policy store (fail-soft — the .md on disk is the source of truth).
188
+ try {
189
+ await getPolicyMemoryManager().storeRawPolicy(md, { category: 'custom', tags: ['extracted'] });
190
+ }
191
+ catch {
192
+ /* registration is best-effort */
193
+ }
194
+ return slug;
195
+ }
196
+ function emitSkill(cwd, section) {
197
+ const root = join(cwd, 'skills');
198
+ const name = uniqueSlug(section.slug, (s) => existsSync(join(root, s)));
199
+ const dir = join(root, name);
200
+ mkdirSync(dir, { recursive: true });
201
+ writeFileSync(join(dir, 'SKILL.md'), skillMarkdown({ ...section, slug: name }));
202
+ return name;
203
+ }
204
+ /** Detect + print what would be extracted, writing nothing (non-interactive default). */
205
+ export function reportOnly(sections, log = console.log) {
206
+ if (sections.length === 0) {
207
+ log(' No custom (non-standard) instruction sections detected.');
208
+ return;
209
+ }
210
+ log(` Detected ${sections.length} custom section(s) (run setup interactively, or --extract-auto, to extract):`);
211
+ for (const s of sections) {
212
+ log(` - [${s.classification}] ${s.title} (${s.sourceFile})`);
213
+ }
214
+ }
215
+ /** Non-interactive auto-extract per heuristic (skips keep-inline). */
216
+ export async function extractAuto(cwd) {
217
+ const detected = detectCustomSections(cwd);
218
+ const result = { detected, extractedPolicies: [], extractedSkills: [], skipped: [] };
219
+ const manifest = loadManifest(cwd);
220
+ for (const s of detected) {
221
+ if (s.classification === 'policy')
222
+ result.extractedPolicies.push(await emitPolicy(cwd, s));
223
+ else if (s.classification === 'skill')
224
+ result.extractedSkills.push(emitSkill(cwd, s));
225
+ else {
226
+ result.skipped.push(s.title);
227
+ continue;
228
+ }
229
+ manifest.add(s.key);
230
+ }
231
+ saveManifest(cwd, manifest);
232
+ return result;
233
+ }
234
+ /**
235
+ * Interactive review: choose which custom sections to extract and confirm the
236
+ * target (policy/skill/skip) for each, then emit and report.
237
+ */
238
+ export async function extractInteractive(cwd, ui) {
239
+ const detected = detectCustomSections(cwd);
240
+ const result = { detected, extractedPolicies: [], extractedSkills: [], skipped: [] };
241
+ if (detected.length === 0)
242
+ return result;
243
+ ui.note('Found custom instructions in your agent files. You can promote them to reusable UAP policies (rules/gates) or skills (workflows).', 'Extract custom content');
244
+ const chosen = await ui.multiselect({
245
+ message: 'Which custom sections to extract? (space to toggle, enter to confirm)',
246
+ options: detected.map((s) => ({
247
+ label: `${s.title} · ${s.sourceFile}`,
248
+ value: s.slug,
249
+ hint: `suggested: ${s.classification}`,
250
+ })),
251
+ initialValues: detected.filter((s) => s.classification !== 'keep-inline').map((s) => s.slug),
252
+ required: false,
253
+ });
254
+ const manifest = loadManifest(cwd);
255
+ for (const s of detected) {
256
+ if (!chosen.includes(s.slug)) {
257
+ result.skipped.push(s.title);
258
+ continue;
259
+ }
260
+ const target = await ui.select({
261
+ message: `Extract "${s.title}" as:`,
262
+ options: [
263
+ { label: 'Policy (a rule/gate UAP enforces)', value: 'policy' },
264
+ { label: 'Skill (a workflow/how-to UAP can load)', value: 'skill' },
265
+ { label: 'Skip (leave inline)', value: 'keep-inline' },
266
+ ],
267
+ initialValue: s.classification === 'keep-inline' ? 'skill' : s.classification,
268
+ });
269
+ if (target === 'policy')
270
+ result.extractedPolicies.push(await emitPolicy(cwd, s));
271
+ else if (target === 'skill')
272
+ result.extractedSkills.push(emitSkill(cwd, s));
273
+ else {
274
+ result.skipped.push(s.title);
275
+ continue;
276
+ }
277
+ manifest.add(s.key);
278
+ }
279
+ saveManifest(cwd, manifest);
280
+ ui.note(`Policies: ${result.extractedPolicies.length} → policies/\nSkills: ${result.extractedSkills.length} → skills/\nSkipped: ${result.skipped.length}`, 'Extraction complete');
281
+ return result;
282
+ }
283
+ /** True when there is at least one extractable custom section. */
284
+ export function hasExtractableContent(cwd) {
285
+ return detectCustomSections(cwd).length > 0;
286
+ }
287
+ //# sourceMappingURL=setup-extract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-extract.js","sourceRoot":"","sources":["../../src/cli/setup-extract.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- interface SetupOptions {
1
+ export interface SetupOptions {
2
2
  platform?: string[];
3
3
  patterns?: boolean;
4
4
  memory?: boolean;
@@ -7,11 +7,27 @@ interface SetupOptions {
7
7
  interactive?: boolean;
8
8
  systemdServices?: boolean;
9
9
  selfUpdate?: boolean;
10
+ nonInteractive?: boolean;
11
+ yes?: boolean;
12
+ extract?: boolean;
13
+ extractAuto?: boolean;
14
+ backup?: boolean;
10
15
  }
16
+ /**
17
+ * Decide whether to run the guided (interactive) wizard. Default is interactive,
18
+ * but a non-TTY / CI / explicit --non-interactive|-y run uses the scripted path
19
+ * so pipelines never hang on a prompt.
20
+ */
21
+ export declare function resolveInteractive(options: SetupOptions): boolean;
11
22
  /**
12
23
  * One-command setup: init + start services + venv + index patterns.
13
24
  * Chains existing commands so everything "just works".
14
25
  */
15
26
  export declare function setupCommand(options: SetupOptions): Promise<void>;
16
- export {};
27
+ /**
28
+ * Run the post-init setup steps (Qdrant, consolidation, venv, pattern index,
29
+ * MCP router, delivery-enforcement, hooks, summary). Shared by the scripted
30
+ * path and the guided wizard so neither duplicates the work.
31
+ */
32
+ export declare function runSetupSteps(cwd: string, options: SetupOptions): Promise<void>;
17
33
  //# sourceMappingURL=setup.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/cli/setup.ts"],"names":[],"mappings":"AAYA,UAAU,YAAY;IACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAwMvE"}
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/cli/setup.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAIjE;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAoDvE;AAgBD;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAkKrF"}
package/dist/cli/setup.js CHANGED
@@ -9,41 +9,56 @@ import { existsSync, readFileSync } from 'fs';
9
9
  import { join } from 'path';
10
10
  import { AgentContextConfigSchema } from '../types/index.js';
11
11
  import { selfUpdateCli } from '../utils/self-update.js';
12
+ import { detectCustomSections, extractAuto, reportOnly } from './setup-extract.js';
13
+ import { backupInstructionFiles } from './setup-backup.js';
14
+ /**
15
+ * Decide whether to run the guided (interactive) wizard. Default is interactive,
16
+ * but a non-TTY / CI / explicit --non-interactive|-y run uses the scripted path
17
+ * so pipelines never hang on a prompt.
18
+ */
19
+ export function resolveInteractive(options) {
20
+ if (options.nonInteractive || options.yes)
21
+ return false;
22
+ if (!process.stdout.isTTY || process.env.CI)
23
+ return false;
24
+ return true;
25
+ }
12
26
  /**
13
27
  * One-command setup: init + start services + venv + index patterns.
14
28
  * Chains existing commands so everything "just works".
15
29
  */
16
30
  export async function setupCommand(options) {
17
- // Interactive wizard mode
18
- if (options.interactive) {
19
- const { runSetupWizard } = await import('./setup-wizard.js');
20
- return runSetupWizard();
21
- }
22
- // Default to current working directory unless explicitly overridden
23
- const defaultProjectDir = process.cwd();
24
- const cwd = options.projectDir || defaultProjectDir;
31
+ const cwd = options.projectDir || process.cwd();
32
+ // Run the self-update check once, up front, for every mode.
33
+ maybeSelfUpdate(options);
34
+ // Guided wizard is the DEFAULT (interactive TTY); non-interactive/CI run the
35
+ // scripted path below.
36
+ if (resolveInteractive(options)) {
37
+ const { runGuidedSetup } = await import('./guided-setup.js');
38
+ return runGuidedSetup(options);
39
+ }
25
40
  const withPatterns = options.patterns !== false;
26
41
  const withMemory = options.memory !== false;
27
42
  console.log(chalk.bold('\n🚀 Universal Agent Memory Setup\n'));
28
- // Step 0: keep the globally-installed UAP CLI at the latest published version,
29
- // so every project setup runs against current behaviour. Non-fatal: a source
30
- // checkout, an offline registry, --no-self-update, or UAP_NO_SELF_UPDATE=1 all
31
- // degrade to a skip without failing setup. Takes effect on the next invocation
32
- // (the running process is not hot-swapped).
33
- if (options.selfUpdate !== false) {
34
- const suSpinner = ora('Checking for a newer UAP CLI…').start();
35
- const su = selfUpdateCli();
36
- if (su.updated) {
37
- suSpinner.succeed(`Updated UAP CLI ${su.current} → ${su.latest} (re-run uap to use it)`);
38
- }
39
- else if (su.skipped && su.reason) {
40
- suSpinner.info(`UAP CLI v${su.current} ${su.reason}`);
43
+ // Step 0: back up + extract on the ORIGINAL instruction files, BEFORE init
44
+ // merges/regenerates CLAUDE.md otherwise extraction would parse the merged
45
+ // file and risk misreading regenerated standard scaffolding as custom content.
46
+ if (options.backup !== false) {
47
+ const b = backupInstructionFiles(cwd);
48
+ if (b.backedUp.length > 0) {
49
+ console.log(chalk.dim(` Backed up ${b.backedUp.length} instruction file(s) .uap-backups/${b.date}/`));
50
+ }
51
+ }
52
+ if (options.extract !== false) {
53
+ if (options.extractAuto) {
54
+ const r = await extractAuto(cwd);
55
+ console.log(chalk.cyan(` Extracted ${r.extractedPolicies.length} policy(ies) + ${r.extractedSkills.length} skill(s) from custom instructions`));
41
56
  }
42
57
  else {
43
- suSpinner.succeed(`UAP CLI up to date (v${su.current})`);
58
+ reportOnly(detectCustomSections(cwd));
44
59
  }
45
60
  }
46
- // Step 1: Run init (creates config, dirs, CLAUDE.md, memory DB, pattern scripts)
61
+ // Step 1: Run init (already backed up above backup:false avoids a redundant pass)
47
62
  await initCommand({
48
63
  platform: options.platform || ['all'],
49
64
  memory: withMemory,
@@ -51,7 +66,34 @@ export async function setupCommand(options) {
51
66
  worktrees: true,
52
67
  systemdServices: options.systemdServices,
53
68
  projectDir: cwd,
69
+ backup: false,
54
70
  });
71
+ await runSetupSteps(cwd, options);
72
+ }
73
+ /** Self-update preflight (shared by all modes). Non-fatal. */
74
+ function maybeSelfUpdate(options) {
75
+ if (options.selfUpdate === false)
76
+ return;
77
+ const suSpinner = ora('Checking for a newer UAP CLI…').start();
78
+ const su = selfUpdateCli();
79
+ if (su.updated) {
80
+ suSpinner.succeed(`Updated UAP CLI ${su.current} → ${su.latest} (re-run uap to use it)`);
81
+ }
82
+ else if (su.skipped && su.reason) {
83
+ suSpinner.info(`UAP CLI v${su.current} — ${su.reason}`);
84
+ }
85
+ else {
86
+ suSpinner.succeed(`UAP CLI up to date (v${su.current})`);
87
+ }
88
+ }
89
+ /**
90
+ * Run the post-init setup steps (Qdrant, consolidation, venv, pattern index,
91
+ * MCP router, delivery-enforcement, hooks, summary). Shared by the scripted
92
+ * path and the guided wizard so neither duplicates the work.
93
+ */
94
+ export async function runSetupSteps(cwd, options) {
95
+ const withPatterns = options.patterns !== false;
96
+ const withMemory = options.memory !== false;
55
97
  if (!withMemory) {
56
98
  console.log(chalk.green('\n✅ Setup complete (memory disabled).\n'));
57
99
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/cli/setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/cli/setup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Wizard configuration model + `.uap.json` patcher.
3
+ *
4
+ * The selection schema and the config-persistence logic the guided setup wizard
5
+ * uses to write rich settings (memory tiers, coordination, patterns, policy
6
+ * toggles, model provider/profile, hooks, browser) into `.uap.json`. Ported
7
+ * out of the legacy inquirer wizard's `executeSetup` so the guided flow is the
8
+ * single source of truth and the config write is independently testable.
9
+ */
10
+ export interface MemoryFeatures {
11
+ shortTermMemory: boolean;
12
+ longTermMemory: boolean;
13
+ knowledgeGraph: boolean;
14
+ prepopDocs: boolean;
15
+ prepopGit: boolean;
16
+ }
17
+ export interface MultiAgentFeatures {
18
+ coordinationDb: boolean;
19
+ worktreeIsolation: boolean;
20
+ deployBatching: boolean;
21
+ agentMessaging: boolean;
22
+ }
23
+ export interface PatternFeatures {
24
+ patternLibrary: boolean;
25
+ patternRag: boolean;
26
+ reinforcementLearning: boolean;
27
+ }
28
+ export interface PolicyFeatures {
29
+ policyEngine: boolean;
30
+ imageAssetVerification: boolean;
31
+ iacStateParity: boolean;
32
+ iacPipelineEnforcement: boolean;
33
+ kubectlVerifyBackport: boolean;
34
+ definitionOfDoneIac: boolean;
35
+ customPoliciesDir: boolean;
36
+ }
37
+ export interface ModelFeatures {
38
+ provider: 'openai' | 'anthropic' | 'local' | 'custom';
39
+ qwenOptimizations: boolean;
40
+ toolCallProfile: string;
41
+ costTracking: boolean;
42
+ modelRouting: boolean;
43
+ }
44
+ export interface HooksFeatures {
45
+ sessionStart: boolean;
46
+ preCompact: boolean;
47
+ taskCompletion: boolean;
48
+ autoApproveTools: boolean;
49
+ }
50
+ export interface BrowserFeatures {
51
+ cloakBrowser: boolean;
52
+ }
53
+ export interface WizardSelections {
54
+ /** init platform tokens (claude, factory, vscode, opencode, codex, …) */
55
+ platforms: string[];
56
+ memory: MemoryFeatures;
57
+ multiAgent: MultiAgentFeatures;
58
+ patterns: PatternFeatures;
59
+ policy: PolicyFeatures;
60
+ model: ModelFeatures;
61
+ hooks: HooksFeatures;
62
+ browser: BrowserFeatures;
63
+ }
64
+ /** Conservative defaults used by the non-interactive path and as prompt seeds. */
65
+ export declare function defaultSelections(overrides?: Partial<WizardSelections>): WizardSelections;
66
+ /**
67
+ * Patch `.uap.json` with the wizard's rich settings (merging onto existing
68
+ * config). Pure file write — no prompts, no subprocesses. Returns the path
69
+ * written, or null on failure (fail-soft).
70
+ */
71
+ export declare function applyWizardConfig(cwd: string, selections: WizardSelections): Promise<string | null>;
72
+ /** Model profile choices per provider (label + value + hint). */
73
+ export declare function profileChoicesFor(provider: ModelFeatures['provider']): {
74
+ label: string;
75
+ value: string;
76
+ hint: string;
77
+ }[];
78
+ //# sourceMappingURL=wizard-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wizard-config.d.ts","sourceRoot":"","sources":["../../src/cli/wizard-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,MAAM,WAAW,cAAc;IAC7B,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,OAAO,CAAC;IACxB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;IACpB,qBAAqB,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,OAAO,CAAC;IACtB,sBAAsB,EAAE,OAAO,CAAC;IAChC,cAAc,EAAE,OAAO,CAAC;IACxB,sBAAsB,EAAE,OAAO,CAAC;IAChC,qBAAqB,EAAE,OAAO,CAAC;IAC/B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,QAAQ,GAAG,WAAW,GAAG,OAAO,GAAG,QAAQ,CAAC;IACtD,iBAAiB,EAAE,OAAO,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,yEAAyE;IACzE,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,EAAE,cAAc,CAAC;IACvB,UAAU,EAAE,kBAAkB,CAAC;IAC/B,QAAQ,EAAE,eAAe,CAAC;IAC1B,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,EAAE,aAAa,CAAC;IACrB,KAAK,EAAE,aAAa,CAAC;IACrB,OAAO,EAAE,eAAe,CAAC;CAC1B;AAED,kFAAkF;AAClF,wBAAgB,iBAAiB,CAAC,SAAS,GAAE,OAAO,CAAC,gBAAgB,CAAM,GAAG,gBAAgB,CAoB7F;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,gBAAgB,GAC3B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAwGxB;AAED,iEAAiE;AACjE,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAC,GAClC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,CAqBlD"}