@sirius-mcp/mcp 1.5.2 → 1.6.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 (113) hide show
  1. package/README.md +17 -4
  2. package/dist/adapters/fs/structure.d.ts.map +1 -1
  3. package/dist/adapters/fs/structure.js +16 -0
  4. package/dist/adapters/fs/structure.js.map +1 -1
  5. package/dist/adapters/mcp/crawl.js +1 -1
  6. package/dist/adapters/mcp/crawl.js.map +1 -1
  7. package/dist/adapters/mcp/get.js +1 -1
  8. package/dist/adapters/mcp/get.js.map +1 -1
  9. package/dist/adapters/mcp/index.d.ts +2 -0
  10. package/dist/adapters/mcp/index.d.ts.map +1 -1
  11. package/dist/adapters/mcp/index.js +5 -1
  12. package/dist/adapters/mcp/index.js.map +1 -1
  13. package/dist/adapters/mcp/init.js +1 -1
  14. package/dist/adapters/mcp/init.js.map +1 -1
  15. package/dist/adapters/mcp/list.js +1 -1
  16. package/dist/adapters/mcp/list.js.map +1 -1
  17. package/dist/adapters/mcp/query-counter.d.ts +17 -0
  18. package/dist/adapters/mcp/query-counter.d.ts.map +1 -0
  19. package/dist/adapters/mcp/query-counter.js +30 -0
  20. package/dist/adapters/mcp/query-counter.js.map +1 -0
  21. package/dist/adapters/mcp/reindex.js +1 -1
  22. package/dist/adapters/mcp/reindex.js.map +1 -1
  23. package/dist/adapters/mcp/resources.d.ts +4 -1
  24. package/dist/adapters/mcp/resources.d.ts.map +1 -1
  25. package/dist/adapters/mcp/resources.js +50 -1
  26. package/dist/adapters/mcp/resources.js.map +1 -1
  27. package/dist/adapters/mcp/search.js +1 -1
  28. package/dist/adapters/mcp/search.js.map +1 -1
  29. package/dist/adapters/mcp/upsert.js +1 -1
  30. package/dist/adapters/mcp/upsert.js.map +1 -1
  31. package/dist/adapters/update/check.d.ts +27 -0
  32. package/dist/adapters/update/check.d.ts.map +1 -1
  33. package/dist/adapters/update/check.js +40 -2
  34. package/dist/adapters/update/check.js.map +1 -1
  35. package/dist/app/list.d.ts +2 -2
  36. package/dist/app/precedence-contract.d.ts +14 -0
  37. package/dist/app/precedence-contract.d.ts.map +1 -0
  38. package/dist/app/precedence-contract.js +51 -0
  39. package/dist/app/precedence-contract.js.map +1 -0
  40. package/dist/app/upsert.d.ts +2 -2
  41. package/dist/errors.d.ts +30 -6
  42. package/dist/errors.d.ts.map +1 -1
  43. package/dist/errors.js +88 -16
  44. package/dist/errors.js.map +1 -1
  45. package/dist/installer/cli-parser.d.ts.map +1 -1
  46. package/dist/installer/cli-parser.js +13 -3
  47. package/dist/installer/cli-parser.js.map +1 -1
  48. package/dist/installer/cli.d.ts.map +1 -1
  49. package/dist/installer/cli.js +61 -37
  50. package/dist/installer/cli.js.map +1 -1
  51. package/dist/installer/contract-seed.d.ts +6 -0
  52. package/dist/installer/contract-seed.d.ts.map +1 -0
  53. package/dist/installer/contract-seed.js +140 -0
  54. package/dist/installer/contract-seed.js.map +1 -0
  55. package/dist/installer/dispatch.d.ts.map +1 -1
  56. package/dist/installer/dispatch.js +3 -1
  57. package/dist/installer/dispatch.js.map +1 -1
  58. package/dist/installer/index.d.ts +4 -0
  59. package/dist/installer/index.d.ts.map +1 -1
  60. package/dist/installer/index.js +33 -5
  61. package/dist/installer/index.js.map +1 -1
  62. package/dist/installer/instruction-targets.d.ts +33 -0
  63. package/dist/installer/instruction-targets.d.ts.map +1 -0
  64. package/dist/installer/instruction-targets.js +199 -0
  65. package/dist/installer/instruction-targets.js.map +1 -0
  66. package/dist/installer/precedence.d.ts +59 -0
  67. package/dist/installer/precedence.d.ts.map +1 -0
  68. package/dist/installer/precedence.js +218 -0
  69. package/dist/installer/precedence.js.map +1 -0
  70. package/dist/installer/snippet-context.d.ts +49 -0
  71. package/dist/installer/snippet-context.d.ts.map +1 -0
  72. package/dist/installer/snippet-context.js +93 -0
  73. package/dist/installer/snippet-context.js.map +1 -0
  74. package/dist/installer/snippet-engine.d.ts +21 -0
  75. package/dist/installer/snippet-engine.d.ts.map +1 -0
  76. package/dist/installer/snippet-engine.js +122 -0
  77. package/dist/installer/snippet-engine.js.map +1 -0
  78. package/dist/installer/snippet-exec.d.ts +4 -0
  79. package/dist/installer/snippet-exec.d.ts.map +1 -0
  80. package/dist/installer/snippet-exec.js +105 -0
  81. package/dist/installer/snippet-exec.js.map +1 -0
  82. package/dist/installer/snippet-offer.d.ts +21 -0
  83. package/dist/installer/snippet-offer.d.ts.map +1 -0
  84. package/dist/installer/snippet-offer.js +108 -0
  85. package/dist/installer/snippet-offer.js.map +1 -0
  86. package/dist/installer/snippet-report.d.ts +14 -0
  87. package/dist/installer/snippet-report.d.ts.map +1 -0
  88. package/dist/installer/snippet-report.js +217 -0
  89. package/dist/installer/snippet-report.js.map +1 -0
  90. package/dist/installer/snippet.d.ts +4 -0
  91. package/dist/installer/snippet.d.ts.map +1 -0
  92. package/dist/installer/snippet.js +158 -0
  93. package/dist/installer/snippet.js.map +1 -0
  94. package/dist/installer/tui-render.d.ts +3 -0
  95. package/dist/installer/tui-render.d.ts.map +1 -0
  96. package/dist/installer/tui-render.js +31 -0
  97. package/dist/installer/tui-render.js.map +1 -0
  98. package/dist/installer/tui.d.ts +5 -3
  99. package/dist/installer/tui.d.ts.map +1 -1
  100. package/dist/installer/tui.js +7 -24
  101. package/dist/installer/tui.js.map +1 -1
  102. package/dist/installer/types.d.ts +40 -2
  103. package/dist/installer/types.d.ts.map +1 -1
  104. package/dist/installer/types.js.map +1 -1
  105. package/dist/installer/version.d.ts +2 -0
  106. package/dist/installer/version.d.ts.map +1 -0
  107. package/dist/installer/version.js +18 -0
  108. package/dist/installer/version.js.map +1 -0
  109. package/dist/schemas/document.d.ts +2 -2
  110. package/dist/server.d.ts.map +1 -1
  111. package/dist/server.js +4 -0
  112. package/dist/server.js.map +1 -1
  113. package/package.json +1 -1
@@ -0,0 +1,217 @@
1
+ import { colorizeDiff } from "./diff.js";
2
+ import {} from "./types.js";
3
+ import { readFileOrNull, resolveSnippetTargets, selectedEntries, } from "./snippet-context.js";
4
+ import { resolveInstructionTarget } from "./instruction-targets.js";
5
+ import { planStatus } from "./snippet-engine.js";
6
+ import { readServerVersion } from "./version.js";
7
+ import { PrecedenceError } from "./precedence.js";
8
+ const NEXT_ACTIONS = {
9
+ CONTRACT_TOO_LARGE: "Shorten the precedence contract body to 6 KB or less, then retry.",
10
+ NO_CANONICAL_BLOCK: "Add a 'Canonical routing snippets' section with sirius:precedence-canonical markers to the contract, or re-run 'sirius snippet' (generate) to reseed it.",
11
+ CANONICAL_VERSIONS_DIVERGE: "Align every sirius:precedence-canonical marker on the same vN, then retry.",
12
+ CORRUPT_BLOCK: "Fix or remove the broken sirius:precedence-canonical markers, then retry.",
13
+ };
14
+ export function precedenceRefusal(err) {
15
+ if (err instanceof PrecedenceError) {
16
+ return {
17
+ status: "refused",
18
+ code: err.code,
19
+ message: err.message,
20
+ reason: err.message,
21
+ next_action: NEXT_ACTIONS[err.code] ??
22
+ "Review the contract's canonical snippet markers, fix them, then retry.",
23
+ details: err.details,
24
+ };
25
+ }
26
+ return {
27
+ status: "refused",
28
+ code: "SNIPPET_FAILED",
29
+ message: err instanceof Error ? err.message : String(err),
30
+ reason: "Snippet generation failed unexpectedly.",
31
+ next_action: "Inspect the reported error, fix the repository state, and retry.",
32
+ };
33
+ }
34
+ export function emitRefusal(io, options, refusal) {
35
+ if (options.json) {
36
+ io.writeStdout(JSON.stringify(refusal, null, 2) + "\n");
37
+ return;
38
+ }
39
+ io.writeStderr(`[sirius] refused ${refusal.code}: ${refusal.message}\n`);
40
+ io.writeStderr(`[sirius] next action: ${refusal.next_action}\n`);
41
+ }
42
+ export function outcomeRows(group, outcome) {
43
+ return group.targets.map((target) => ({
44
+ targetId: target.id,
45
+ displayName: target.displayName,
46
+ category: target.category,
47
+ format: target.format,
48
+ targetPath: group.absPath,
49
+ backupPath: outcome.backupPath,
50
+ action: outcome.action,
51
+ message: outcome.message,
52
+ diff: outcome.diff,
53
+ error: outcome.error,
54
+ reason: outcome.reason,
55
+ servingTargets: group.targets.map((t) => t.id),
56
+ createdFile: outcome.createdFile,
57
+ installedVersion: outcome.installedVersion,
58
+ }));
59
+ }
60
+ export function buildReport(options, env, rows) {
61
+ return {
62
+ version: readServerVersion(),
63
+ timestamp: new Date().toISOString(),
64
+ platform: env.platform,
65
+ arch: process.arch,
66
+ dryRun: options.dryRun,
67
+ scope: options.scope,
68
+ summary: {
69
+ totalScanned: rows.length,
70
+ configured: rows.filter((r) => r.action === "CONFIGURED" || r.action === "REMOVED").length,
71
+ updated: rows.filter((r) => r.action === "UPDATED").length,
72
+ skipped: rows.filter((r) => r.action === "SKIPPED" || r.action === "ALREADY_CONFIGURED").length,
73
+ failed: rows.filter((r) => r.action === "FAILED").length,
74
+ },
75
+ targets: rows,
76
+ };
77
+ }
78
+ export function emitReport(report, options, io) {
79
+ if (options.json) {
80
+ io.writeStdout(JSON.stringify(report, null, 2) + "\n");
81
+ return;
82
+ }
83
+ for (const row of report.targets) {
84
+ if (row.diff) {
85
+ io.writeStderr(`\n[dry-run] ${row.displayName} (${row.targetPath}):\n`);
86
+ io.writeStderr(colorizeDiff(row.diff));
87
+ }
88
+ }
89
+ const updated = report.summary.updated ?? 0;
90
+ io.writeStderr(`\n[sirius] Completed: ${report.summary.configured} configured, ${updated} updated, ${report.summary.skipped} skipped, ${report.summary.failed} failed.\n`);
91
+ }
92
+ export function finishReport(options, io, env, rows) {
93
+ const report = buildReport(options, env, rows);
94
+ emitReport(report, options, io);
95
+ return report.summary.failed > 0 ? 1 : 0;
96
+ }
97
+ export function emitAbortReport(options, io, message) {
98
+ const rows = resolveSnippetTargets(options).map((target) => ({
99
+ targetId: target.id,
100
+ displayName: target.displayName,
101
+ category: target.category,
102
+ format: target.format,
103
+ targetPath: "",
104
+ action: "SKIPPED",
105
+ message,
106
+ reason: "global-scope-not-confirmed",
107
+ }));
108
+ const report = buildReport(options, { platform: process.platform }, rows);
109
+ emitReport(report, options, io);
110
+ return 0;
111
+ }
112
+ const REMOVE_CONTRACT_MISSING_MESSAGE = "Precedence contract not found; refusing to remove blocks blindly. Run 'sirius snippet' (generate) to seed it first.";
113
+ function baseRowFor(id, target) {
114
+ return {
115
+ targetId: id,
116
+ displayName: target?.displayName ?? id,
117
+ category: target?.category ?? "cli",
118
+ format: target?.format ?? "JSON",
119
+ };
120
+ }
121
+ export function emitRemoveWithoutContract(options, io, env, root) {
122
+ const rows = selectedEntries(options).map(({ id, target }) => removeRowWithoutContract(id, target, options, env, root));
123
+ return finishReport(options, io, env, rows);
124
+ }
125
+ function removeRowWithoutContract(id, target, options, env, root) {
126
+ const base = baseRowFor(id, target);
127
+ if (!target) {
128
+ return { ...base, targetPath: "", action: "SKIPPED", message: `Unknown target id '${id}'.`, reason: "unknown-target" };
129
+ }
130
+ const resolved = resolveInstructionTarget(target, options.scope, env, root);
131
+ if (!resolved.covered) {
132
+ return {
133
+ ...base,
134
+ targetPath: resolved.declaredPath ?? "",
135
+ action: "SKIPPED",
136
+ message: resolved.skipReason ?? "Out of snippet coverage.",
137
+ reason: resolved.skipReason,
138
+ };
139
+ }
140
+ return {
141
+ ...base,
142
+ targetPath: resolved.declaredPath ?? resolved.file?.absPath ?? "",
143
+ action: "SKIPPED",
144
+ message: REMOVE_CONTRACT_MISSING_MESSAGE,
145
+ reason: "precedence-contract-missing",
146
+ };
147
+ }
148
+ export async function emitStatus(options, io, ctx, env, root) {
149
+ const rows = selectedEntries(options).map(({ id, target }) => statusRowFor(id, target, options, ctx, env, root));
150
+ const byVerdict = (verdict) => rows.filter((r) => r.statusVerdict === verdict).length;
151
+ const report = {
152
+ version: readServerVersion(),
153
+ timestamp: new Date().toISOString(),
154
+ platform: env.platform,
155
+ arch: process.arch,
156
+ scope: options.scope,
157
+ contractVersion: ctx.contractVersion,
158
+ summary: {
159
+ totalScanned: rows.length,
160
+ upToDate: byVerdict("ATUALIZADO"),
161
+ outdated: byVerdict("DESATUALIZADO"),
162
+ absent: byVerdict("AUSENTE"),
163
+ corrupted: byVerdict("CORROMPIDO"),
164
+ notCovered: byVerdict("NÃO COBERTO"),
165
+ failed: rows.filter((r) => r.action === "FAILED").length,
166
+ },
167
+ targets: rows,
168
+ };
169
+ if (options.json) {
170
+ io.writeStdout(JSON.stringify(report, null, 2) + "\n");
171
+ }
172
+ else {
173
+ io.writeStderr(`\n[sirius] Status (contract v${ctx.contractVersion}, read-only): ${report.summary.upToDate} up-to-date, ${report.summary.outdated} outdated, ${report.summary.absent} absent, ${report.summary.corrupted} corrupted, ${report.summary.notCovered} not covered, ${report.summary.failed} failed.\n`);
174
+ }
175
+ return report.summary.failed > 0 ? 1 : 0;
176
+ }
177
+ function statusRowFor(id, target, options, ctx, env, root) {
178
+ const base = baseRowFor(id, target);
179
+ if (!target) {
180
+ return { ...base, targetPath: "", action: "SKIPPED", message: `Unknown target id '${id}'.`, reason: "unknown-target", statusVerdict: "NÃO COBERTO" };
181
+ }
182
+ const resolved = resolveInstructionTarget(target, options.scope, env, root);
183
+ if (!resolved.covered || resolved.file === undefined) {
184
+ return {
185
+ ...base,
186
+ targetPath: resolved.declaredPath ?? "",
187
+ action: "SKIPPED",
188
+ message: resolved.skipReason ?? "Out of snippet coverage.",
189
+ reason: resolved.skipReason,
190
+ statusVerdict: "NÃO COBERTO",
191
+ };
192
+ }
193
+ let raw;
194
+ try {
195
+ raw = readFileOrNull(resolved.file.absPath);
196
+ }
197
+ catch (err) {
198
+ return {
199
+ ...base,
200
+ targetPath: resolved.file.absPath,
201
+ action: "FAILED",
202
+ message: err instanceof Error ? err.message : String(err),
203
+ error: { code: "SNIPPET_IO_ERROR", details: String(err) },
204
+ };
205
+ }
206
+ const report = planStatus(raw, ctx.expectedBlock, ctx.expectedDigest, ctx.contractVersion);
207
+ return {
208
+ ...base,
209
+ targetPath: resolved.file.absPath,
210
+ action: "SKIPPED",
211
+ message: report.detail,
212
+ statusVerdict: report.verdict,
213
+ installedVersion: report.installedVersion,
214
+ contractVersion: ctx.contractVersion,
215
+ };
216
+ }
217
+ //# sourceMappingURL=snippet-report.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snippet-report.js","sourceRoot":"","sources":["../../src/installer/snippet-report.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { type InstallerOptions } from "./types.js";
2
+ import type { CliIo } from "./cli.js";
3
+ export declare function runSnippetCommand(options: InstallerOptions, io: CliIo): Promise<number>;
4
+ //# sourceMappingURL=snippet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snippet.d.ts","sourceRoot":"","sources":["../../src/installer/snippet.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,gBAAgB,EAGtB,MAAM,YAAY,CAAC;AA8BpB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAiEtC,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,EAAE,EAAE,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAoB7F"}
@@ -0,0 +1,158 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import readline from "node:readline";
4
+ import {} from "./types.js";
5
+ import { resolveTargetEnvironment } from "./targets.js";
6
+ import { loadProjectConfig, configLoadError } from "../app/loadProjectConfig.js";
7
+ import { createDocumentExclusive, documentPath } from "../adapters/fs/structure.js";
8
+ import { CONTRACT_ID, CONTRACT_TYPE } from "./precedence.js";
9
+ import { buildPrecedenceContractMarkdown } from "./contract-seed.js";
10
+ import { resolveInstructionTarget } from "./instruction-targets.js";
11
+ import { buildContractContext, contractMissingRefusal, flagConflict, normalizeLanguage, notInitializedRefusal, resolveMode, selectedEntries, todayIso, } from "./snippet-context.js";
12
+ import { emitAbortReport, emitRefusal, emitRemoveWithoutContract, emitStatus, finishReport, outcomeRows, precedenceRefusal, } from "./snippet-report.js";
13
+ import { executeGroup } from "./snippet-exec.js";
14
+ async function readFileOrNullAsync(filePath) {
15
+ try {
16
+ return await fs.promises.readFile(filePath, "utf8");
17
+ }
18
+ catch (err) {
19
+ if (err.code === "ENOENT")
20
+ return null;
21
+ throw err;
22
+ }
23
+ }
24
+ async function bootstrapSnippet(options, root) {
25
+ const conflict = flagConflict(options);
26
+ if (conflict)
27
+ return { kind: "refusal", refusal: conflict };
28
+ const config = await loadProjectConfig(root);
29
+ if (config.kind !== "ok") {
30
+ const refusal = config.kind === "missing" ? notInitializedRefusal() : configLoadError(config);
31
+ return { kind: "refusal", refusal };
32
+ }
33
+ const language = normalizeLanguage(config.config.language);
34
+ const contractFile = documentPath(root, CONTRACT_TYPE, CONTRACT_ID);
35
+ let raw = await readFileOrNullAsync(contractFile);
36
+ if (resolveMode(options) === "generate" && raw === null) {
37
+ await seedContractToleratingRace(root, language);
38
+ raw = await readFileOrNullAsync(contractFile);
39
+ }
40
+ if (raw === null) {
41
+ if (resolveMode(options) === "remove")
42
+ return { kind: "ready-no-contract" };
43
+ return { kind: "refusal", refusal: contractMissingRefusal() };
44
+ }
45
+ try {
46
+ return { kind: "ready", ctx: buildContractContext(contractFile, language, raw) };
47
+ }
48
+ catch (err) {
49
+ return { kind: "refusal", refusal: precedenceRefusal(err) };
50
+ }
51
+ }
52
+ async function seedContractToleratingRace(root, language) {
53
+ try {
54
+ await createDocumentExclusive(root, CONTRACT_TYPE, CONTRACT_ID, buildPrecedenceContractMarkdown(language, todayIso()));
55
+ }
56
+ catch (err) {
57
+ if (err.code !== "EEXIST")
58
+ throw err;
59
+ }
60
+ }
61
+ export async function runSnippetCommand(options, io) {
62
+ const root = io.cwd ?? io.env?.cwd ?? process.cwd();
63
+ const boot = await bootstrapSnippet(options, root);
64
+ if (boot.kind === "refusal") {
65
+ emitRefusal(io, options, boot.refusal);
66
+ return 1;
67
+ }
68
+ const env = io.env ?? { ...resolveTargetEnvironment(), cwd: root };
69
+ const mode = resolveMode(options);
70
+ if (mode === "status") {
71
+ if (boot.kind === "ready-no-contract") {
72
+ emitRefusal(io, options, contractMissingRefusal());
73
+ return 1;
74
+ }
75
+ return emitStatus(options, io, boot.ctx, env, root);
76
+ }
77
+ if (boot.kind === "ready-no-contract") {
78
+ return emitRemoveWithoutContract(options, io, env, root);
79
+ }
80
+ return emitMutation(options, io, boot.ctx, env, root);
81
+ }
82
+ function groupKey(absPath) {
83
+ const resolved = path.resolve(absPath);
84
+ return process.platform === "win32" ? resolved.toLowerCase() : resolved;
85
+ }
86
+ function buildGroups(options, env, root) {
87
+ const groups = [];
88
+ const byKey = new Map();
89
+ const uncovered = new Map();
90
+ for (const { id, target } of selectedEntries(options)) {
91
+ if (!target) {
92
+ uncovered.set(id, {
93
+ targetId: id,
94
+ displayName: id,
95
+ category: "cli",
96
+ format: "JSON",
97
+ targetPath: "",
98
+ action: "SKIPPED",
99
+ message: `Unknown target id '${id}'.`,
100
+ reason: "unknown-target",
101
+ });
102
+ continue;
103
+ }
104
+ const resolved = resolveInstructionTarget(target, options.scope, env, root);
105
+ if (!resolved.covered || resolved.file === undefined) {
106
+ uncovered.set(id, {
107
+ targetId: id,
108
+ displayName: target.displayName,
109
+ category: target.category,
110
+ format: target.format,
111
+ targetPath: resolved.declaredPath ?? "",
112
+ action: "SKIPPED",
113
+ message: resolved.skipReason ?? "Out of snippet coverage.",
114
+ reason: resolved.skipReason,
115
+ });
116
+ continue;
117
+ }
118
+ const key = groupKey(resolved.file.absPath);
119
+ const existing = byKey.get(key);
120
+ if (existing) {
121
+ existing.targets.push(target);
122
+ continue;
123
+ }
124
+ const group = { key, absPath: resolved.file.absPath, targets: [target] };
125
+ byKey.set(key, group);
126
+ groups.push(group);
127
+ }
128
+ return { groups, uncovered };
129
+ }
130
+ async function emitMutation(options, io, ctx, env, root) {
131
+ if (options.scope === "global" && !options.dryRun && !options.yes) {
132
+ const confirmed = await confirmGlobalScope();
133
+ if (!confirmed) {
134
+ return emitAbortReport(options, io, "Global scope not confirmed (--yes or interactive confirmation required).");
135
+ }
136
+ }
137
+ const { groups, uncovered } = buildGroups(options, env, root);
138
+ const rows = [];
139
+ for (const group of groups) {
140
+ const outcome = await executeGroup(group, resolveMode(options), options, ctx, env);
141
+ rows.push(...outcomeRows(group, outcome));
142
+ }
143
+ rows.push(...uncovered.values());
144
+ return finishReport(options, io, env, rows);
145
+ }
146
+ async function confirmGlobalScope() {
147
+ if (!process.stdin.isTTY || !process.stderr.isTTY)
148
+ return false;
149
+ process.stderr.write("[sirius] Global scope writes user-level instruction files (e.g. ~/.claude/CLAUDE.md). Continue? [y/N] ");
150
+ return new Promise((resolve) => {
151
+ const rl = readline.createInterface({ input: process.stdin, output: process.stderr });
152
+ rl.question("", (answer) => {
153
+ rl.close();
154
+ resolve(/^y(es)?$/i.test(answer.trim()));
155
+ });
156
+ });
157
+ }
158
+ //# sourceMappingURL=snippet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snippet.js","sourceRoot":"","sources":["../../src/installer/snippet.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { type PatchResult } from "./types.js";
2
+ export declare function renderSummaryScreen(results: PatchResult[]): string;
3
+ //# sourceMappingURL=tui-render.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tui-render.d.ts","sourceRoot":"","sources":["../../src/installer/tui-render.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAS9C,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,CAsBlE"}
@@ -0,0 +1,31 @@
1
+ import {} from "./types.js";
2
+ function color(text, code) {
3
+ if (process.env.NO_COLOR !== undefined) {
4
+ return text;
5
+ }
6
+ return `${code}${text}\x1b[0m`;
7
+ }
8
+ export function renderSummaryScreen(results) {
9
+ const configured = results.filter((r) => r.action === "CONFIGURED" || r.action === "REMOVED");
10
+ const lines = [
11
+ color("┌────────────────────────────────────────────────────────────────────────────┐", "\x1b[90m"),
12
+ color("│ SIRIUS MCP — CONFIGURATION COMPLETE │", "\x1b[1m\x1b[32m"),
13
+ `│ ${configured.length} Clients Configured · All changes saved with atomic backups. │`,
14
+ color("├────────────────────────────────────────────────────────────────────────────┤", "\x1b[90m"),
15
+ "│ │",
16
+ "│ ── Next Steps: Verify Sirius in Your AI Tools ─────────────────────────── │",
17
+ "│ │",
18
+ "│ 1. Cursor IDE (Flagship): │",
19
+ "│ Reload window (Cmd/Ctrl+Shift+P > Reload Window) and prompt: │",
20
+ color('│ ❯ "Check living architecture status with context_list" │', "\x1b[36m"),
21
+ "│ │",
22
+ "│ 2. Devin CLI / Codex CLI: │",
23
+ color('│ ❯ devin "Inspect project context via context_list" │', "\x1b[36m"),
24
+ "│ │",
25
+ "│ ── Living Architecture Web Portal ─────────────────────────────────────── │",
26
+ "│ Inspect graph topology locally at: http://127.0.0.1:4200 │",
27
+ color("└────────────────────────────────────────────────────────────────────────────┘", "\x1b[90m"),
28
+ ];
29
+ return lines.join("\n");
30
+ }
31
+ //# sourceMappingURL=tui-render.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tui-render.js","sourceRoot":"","sources":["../../src/installer/tui-render.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,MAAM,YAAY,CAAC;AAE9C,SAAS,KAAK,CAAC,IAAY,EAAE,IAAY;IACvC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,GAAG,IAAI,GAAG,IAAI,SAAS,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAsB;IACxD,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,YAAY,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;IAC9F,MAAM,KAAK,GAAG;QACZ,KAAK,CAAC,gFAAgF,EAAE,UAAU,CAAC;QACnG,KAAK,CAAC,gFAAgF,EAAE,iBAAiB,CAAC;QAC1G,MAAM,UAAU,CAAC,MAAM,2EAA2E;QAClG,KAAK,CAAC,gFAAgF,EAAE,UAAU,CAAC;QACnG,gFAAgF;QAChF,gFAAgF;QAChF,gFAAgF;QAChF,gFAAgF;QAChF,gFAAgF;QAChF,KAAK,CAAC,gFAAgF,EAAE,UAAU,CAAC;QACnG,gFAAgF;QAChF,gFAAgF;QAChF,KAAK,CAAC,gFAAgF,EAAE,UAAU,CAAC;QACnG,gFAAgF;QAChF,gFAAgF;QAChF,gFAAgF;QAChF,KAAK,CAAC,gFAAgF,EAAE,UAAU,CAAC;KACpG,CAAC;IACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
@@ -1,8 +1,10 @@
1
- import { type DetectedTarget, type InstallerOptions, type PatchResult, type TargetScope } from "./types.js";
1
+ import { type DetectedTarget, type InstallerOptions, type TargetScope } from "./types.js";
2
+ export { renderSummaryScreen } from "./tui-render.js";
2
3
  export declare function initialSelectionHeuristic(detected: DetectedTarget[]): Set<string>;
3
4
  export declare function toggleSelection(selected: Set<string>, id: string): void;
4
5
  export declare function toggleCategorySelection(selected: Set<string>, targets: DetectedTarget[], category: "cli" | "ide"): void;
5
6
  export declare function renderChecklistScreen(detected: DetectedTarget[], selected: Set<string>, cursorIndex: number, scope: TargetScope, showUndetected: boolean): string;
6
- export declare function renderSummaryScreen(results: PatchResult[]): string;
7
- export declare function startInteractiveWizard(initialOptions?: Partial<InstallerOptions>): Promise<number>;
7
+ export declare function startInteractiveWizard(initialOptions?: Partial<InstallerOptions>, postInstall?: {
8
+ offerSnippet?: boolean;
9
+ }): Promise<number>;
8
10
  //# sourceMappingURL=tui.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tui.d.ts","sourceRoot":"","sources":["../../src/installer/tui.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,WAAW,EACjB,MAAM,YAAY,CAAC;AAWpB,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAQjF;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAMvE;AAED,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,EACrB,OAAO,EAAE,cAAc,EAAE,EACzB,QAAQ,EAAE,KAAK,GAAG,KAAK,GACtB,IAAI,CAWN;AA4BD,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,cAAc,EAAE,EAC1B,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,EACrB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,WAAW,EAClB,cAAc,EAAE,OAAO,GACtB,MAAM,CAwCR;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,CAsBlE;AA4FD,wBAAsB,sBAAsB,CAC1C,cAAc,GAAE,OAAO,CAAC,gBAAgB,CAAM,GAC7C,OAAO,CAAC,MAAM,CAAC,CAuFjB"}
1
+ {"version":3,"file":"tui.d.ts","sourceRoot":"","sources":["../../src/installer/tui.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EACjB,MAAM,YAAY,CAAC;AAYpB,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAQjF;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAMvE;AAED,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,EACrB,OAAO,EAAE,cAAc,EAAE,EACzB,QAAQ,EAAE,KAAK,GAAG,KAAK,GACtB,IAAI,CAWN;AA4BD,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,cAAc,EAAE,EAC1B,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,EACrB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,WAAW,EAClB,cAAc,EAAE,OAAO,GACtB,MAAM,CAwCR;AA4FD,wBAAsB,sBAAsB,CAC1C,cAAc,GAAE,OAAO,CAAC,gBAAgB,CAAM,EAC9C,WAAW,GAAE;IAAE,YAAY,CAAC,EAAE,OAAO,CAAA;CAAO,GAC3C,OAAO,CAAC,MAAM,CAAC,CA2FjB"}
@@ -2,12 +2,14 @@ import readline from "node:readline";
2
2
  import {} from "./types.js";
3
3
  import { detectAllTargets } from "./detector.js";
4
4
  import { runInstallerCli } from "./cli.js";
5
+ import { runPostInstallOffer } from "./snippet-offer.js";
5
6
  function color(text, code) {
6
7
  if (process.env.NO_COLOR !== undefined) {
7
8
  return text;
8
9
  }
9
10
  return `${code}${text}\x1b[0m`;
10
11
  }
12
+ export { renderSummaryScreen } from "./tui-render.js";
11
13
  export function initialSelectionHeuristic(detected) {
12
14
  const set = new Set();
13
15
  for (const d of detected) {
@@ -92,29 +94,6 @@ export function renderChecklistScreen(detected, selected, cursorIndex, scope, sh
92
94
  lines.push(color("└────────────────────────────────────────────────────────────────────────────┘", "\x1b[90m"));
93
95
  return lines.join("\n");
94
96
  }
95
- export function renderSummaryScreen(results) {
96
- const configured = results.filter((r) => r.action === "CONFIGURED" || r.action === "REMOVED");
97
- const lines = [
98
- color("┌────────────────────────────────────────────────────────────────────────────┐", "\x1b[90m"),
99
- color("│ SIRIUS MCP — CONFIGURATION COMPLETE │", "\x1b[1m\x1b[32m"),
100
- `│ ${configured.length} Clients Configured · All changes saved with atomic backups. │`,
101
- color("├────────────────────────────────────────────────────────────────────────────┤", "\x1b[90m"),
102
- "│ │",
103
- "│ ── Next Steps: Verify Sirius in Your AI Tools ─────────────────────────── │",
104
- "│ │",
105
- "│ 1. Cursor IDE (Flagship): │",
106
- "│ Reload window (Cmd/Ctrl+Shift+P > Reload Window) and prompt: │",
107
- color('│ ❯ "Check living architecture status with context_list" │', "\x1b[36m"),
108
- "│ │",
109
- "│ 2. Devin CLI / Codex CLI: │",
110
- color('│ ❯ devin "Inspect project context via context_list" │', "\x1b[36m"),
111
- "│ │",
112
- "│ ── Living Architecture Web Portal ─────────────────────────────────────── │",
113
- "│ Inspect graph topology locally at: http://127.0.0.1:4200 │",
114
- color("└────────────────────────────────────────────────────────────────────────────┘", "\x1b[90m"),
115
- ];
116
- return lines.join("\n");
117
- }
118
97
  function updateCursorOnMove(name, str, current, max) {
119
98
  if (name === "up" || str === "k") {
120
99
  return current > 0 ? current - 1 : max - 1;
@@ -182,7 +161,7 @@ function processWizardKey(str, key, state, visible) {
182
161
  }
183
162
  return "NOOP";
184
163
  }
185
- export async function startInteractiveWizard(initialOptions = {}) {
164
+ export async function startInteractiveWizard(initialOptions = {}, postInstall = {}) {
186
165
  const isTty = Boolean(process.stdin.isTTY && process.stderr.isTTY);
187
166
  if (!isTty || process.env.TERM === "dumb") {
188
167
  return runInstallerCli({
@@ -248,6 +227,10 @@ export async function startInteractiveWizard(initialOptions = {}) {
248
227
  force: false,
249
228
  stdio: false,
250
229
  });
230
+ if (code === 0 && postInstall.offerSnippet) {
231
+ resolve(await runPostInstallOffer(initialOptions, state.scope, targets, code));
232
+ return;
233
+ }
251
234
  resolve(code);
252
235
  }
253
236
  };
@@ -1 +1 @@
1
- {"version":3,"file":"tui.js","sourceRoot":"","sources":["../../src/installer/tui.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tui.js","sourceRoot":"","sources":["../../src/installer/tui.ts"],"names":[],"mappings":"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"}