ai-spector 0.9.20 → 0.9.21

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 (100) hide show
  1. package/dist/cli.js +27 -3
  2. package/dist/cli.js.map +1 -1
  3. package/dist/core/adopt/bootstrap.d.ts.map +1 -1
  4. package/dist/core/adopt/bootstrap.js +31 -0
  5. package/dist/core/adopt/bootstrap.js.map +1 -1
  6. package/dist/core/docops/assess.d.ts.map +1 -1
  7. package/dist/core/docops/assess.js +28 -1
  8. package/dist/core/docops/assess.js.map +1 -1
  9. package/dist/core/docops/capabilities.d.ts +1 -1
  10. package/dist/core/docops/capabilities.d.ts.map +1 -1
  11. package/dist/core/docops/capabilities.js +0 -1
  12. package/dist/core/docops/capabilities.js.map +1 -1
  13. package/dist/core/docops/check.d.ts +26 -0
  14. package/dist/core/docops/check.d.ts.map +1 -0
  15. package/dist/core/docops/check.js +280 -0
  16. package/dist/core/docops/check.js.map +1 -0
  17. package/dist/core/docops/layer-defaults.d.ts +2 -0
  18. package/dist/core/docops/layer-defaults.d.ts.map +1 -1
  19. package/dist/core/docops/layer-defaults.js +7 -0
  20. package/dist/core/docops/layer-defaults.js.map +1 -1
  21. package/dist/core/docops/layout-classify.d.ts +24 -0
  22. package/dist/core/docops/layout-classify.d.ts.map +1 -0
  23. package/dist/core/docops/layout-classify.js +293 -0
  24. package/dist/core/docops/layout-classify.js.map +1 -0
  25. package/dist/core/docops/layout.d.ts +27 -0
  26. package/dist/core/docops/layout.d.ts.map +1 -0
  27. package/dist/core/docops/layout.js +181 -0
  28. package/dist/core/docops/layout.js.map +1 -0
  29. package/dist/core/docops/migrate.d.ts +2 -0
  30. package/dist/core/docops/migrate.d.ts.map +1 -1
  31. package/dist/core/docops/migrate.js +24 -2
  32. package/dist/core/docops/migrate.js.map +1 -1
  33. package/dist/core/operations/check.d.ts.map +1 -1
  34. package/dist/core/operations/check.js +11 -19
  35. package/dist/core/operations/check.js.map +1 -1
  36. package/dist/core/operations/docops.d.ts +10 -0
  37. package/dist/core/operations/docops.d.ts.map +1 -1
  38. package/dist/core/operations/docops.js +76 -0
  39. package/dist/core/operations/docops.js.map +1 -1
  40. package/dist/core/operations/task-gates.d.ts.map +1 -1
  41. package/dist/core/operations/task-gates.js +0 -15
  42. package/dist/core/operations/task-gates.js.map +1 -1
  43. package/dist/core/operations/task-templates.d.ts +2 -2
  44. package/dist/core/operations/task-templates.d.ts.map +1 -1
  45. package/dist/core/operations/task-templates.js +0 -20
  46. package/dist/core/operations/task-templates.js.map +1 -1
  47. package/dist/core/operations/task.d.ts +0 -14
  48. package/dist/core/operations/task.d.ts.map +1 -1
  49. package/dist/core/operations/task.js +0 -58
  50. package/dist/core/operations/task.js.map +1 -1
  51. package/dist/core/operations/work.d.ts +1 -2
  52. package/dist/core/operations/work.d.ts.map +1 -1
  53. package/dist/core/operations/work.js +1 -21
  54. package/dist/core/operations/work.js.map +1 -1
  55. package/dist/core/upgrade/apply.d.ts.map +1 -1
  56. package/dist/core/upgrade/apply.js +11 -0
  57. package/dist/core/upgrade/apply.js.map +1 -1
  58. package/dist/core/upgrade/checklist.json +10 -0
  59. package/dist/core/upgrade/detect.d.ts.map +1 -1
  60. package/dist/core/upgrade/detect.js +20 -0
  61. package/dist/core/upgrade/detect.js.map +1 -1
  62. package/dist/core/upgrade/types.d.ts +1 -1
  63. package/dist/core/upgrade/types.d.ts.map +1 -1
  64. package/dist/core/workflow/active-worker.js +1 -1
  65. package/dist/core/workflow/active-worker.js.map +1 -1
  66. package/dist/core/workflow/route-intent-examples.d.ts.map +1 -1
  67. package/dist/core/workflow/route-intent-examples.js +2 -3
  68. package/dist/core/workflow/route-intent-examples.js.map +1 -1
  69. package/dist/core/workflow/route-intent.d.ts +1 -1
  70. package/dist/core/workflow/route-intent.d.ts.map +1 -1
  71. package/dist/core/workflow/route-intent.js +8 -8
  72. package/dist/core/workflow/route-intent.js.map +1 -1
  73. package/dist/interfaces/mcp/schemas.d.ts +0 -344
  74. package/dist/interfaces/mcp/schemas.d.ts.map +1 -1
  75. package/dist/interfaces/mcp/schemas.js +3 -68
  76. package/dist/interfaces/mcp/schemas.js.map +1 -1
  77. package/dist/interfaces/mcp/server.js +3 -61
  78. package/dist/interfaces/mcp/server.js.map +1 -1
  79. package/dist/interfaces/mcp/tool-descriptions.d.ts +0 -10
  80. package/dist/interfaces/mcp/tool-descriptions.d.ts.map +1 -1
  81. package/dist/interfaces/mcp/tool-descriptions.js +3 -52
  82. package/dist/interfaces/mcp/tool-descriptions.js.map +1 -1
  83. package/dist/interfaces/mcp/tool-names.d.ts +1 -1
  84. package/dist/interfaces/mcp/tool-names.d.ts.map +1 -1
  85. package/dist/interfaces/mcp/tool-names.js +0 -8
  86. package/dist/interfaces/mcp/tool-names.js.map +1 -1
  87. package/dist/interfaces/mcp/tools/task.d.ts +1 -2
  88. package/dist/interfaces/mcp/tools/task.d.ts.map +1 -1
  89. package/dist/interfaces/mcp/tools/task.js +1 -10
  90. package/dist/interfaces/mcp/tools/task.js.map +1 -1
  91. package/dist/interfaces/sdk/index.d.ts +2 -2
  92. package/dist/interfaces/sdk/index.d.ts.map +1 -1
  93. package/dist/interfaces/sdk/index.js +2 -2
  94. package/dist/interfaces/sdk/index.js.map +1 -1
  95. package/package.json +1 -1
  96. package/scaffold/.ai-spector/.docflow/config/workspace/rules.json +1 -1
  97. package/scaffold/claude/.claude/skills/ai-spector/references/runbook.md +26 -62
  98. package/scaffold/cursor/skills/ai-spector/references/runbook.md +26 -62
  99. package/scaffold/claude/.claude/workflows/adopt.md +0 -14
  100. package/scaffold/cursor/commands/adopt.md +0 -14
@@ -0,0 +1,26 @@
1
+ import { type DocopsAssessment } from "./assess.js";
2
+ export interface DocopsCheckAction {
3
+ id: string;
4
+ severity: "blocking" | "warning";
5
+ message: string;
6
+ fix: string;
7
+ command?: string;
8
+ }
9
+ export interface DocopsCheckResult {
10
+ valid: boolean;
11
+ configPath: string;
12
+ configExists: boolean;
13
+ schemaValid: boolean;
14
+ schemaErrors: string[];
15
+ configDrift: boolean;
16
+ driftSummary: string[];
17
+ layout: DocopsAssessment["layout"];
18
+ writerReady: boolean;
19
+ recommendedAction: DocopsAssessment["recommendedAction"];
20
+ recommendedCommand: string;
21
+ actions: DocopsCheckAction[];
22
+ repairPreview: string[];
23
+ agentPrompt: string;
24
+ }
25
+ export declare function checkDocopsConfig(projectRoot: string): Promise<DocopsCheckResult>;
26
+ //# sourceMappingURL=check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../../src/core/docops/check.ts"],"names":[],"mappings":"AAKA,OAAO,EAAuB,KAAK,gBAAgB,EAAkB,MAAM,aAAa,CAAC;AAkBzF,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,UAAU,GAAG,SAAS,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACnC,WAAW,EAAE,OAAO,CAAC;IACrB,iBAAiB,EAAE,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;IACzD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;CACrB;AAgKD,wBAAsB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA8IvF"}
@@ -0,0 +1,280 @@
1
+ import { createRequire } from "node:module";
2
+ import { join } from "node:path";
3
+ import { legacyDocflowLanguageDiffersFromDocops } from "../config/language-from-docops.js";
4
+ import { pathExists, readJson } from "../util/fs.js";
5
+ import { assessDocopsProject } from "./assess.js";
6
+ import { resolveContractsRoot, resolveBootstrapRoot } from "./bootstrap.js";
7
+ import { mergeDocopsDefaults, readDocopsConfig } from "./config.js";
8
+ import { ensureOptionalDocTypes, missingOptionalDocTypeKeys } from "./layer-defaults.js";
9
+ import { migrateDocopsLayout } from "./migrate.js";
10
+ import { DEFAULT_CAPABILITIES, DEFAULT_DOCOPS_PATHS, DOCOPS_CONFIG_REL, LEGACY_DOCFLOW_CONFIG_REL, } from "./paths.js";
11
+ const require = createRequire(import.meta.url);
12
+ const Ajv = require("ajv/dist/2020.js");
13
+ const addFormats = require("ajv-formats");
14
+ async function resolveDocopsConfigSchemaPath(projectRoot) {
15
+ const guideSchema = join(projectRoot, ".docops/guide/schemas/docops.config.schema.json");
16
+ if (await pathExists(guideSchema)) {
17
+ return guideSchema;
18
+ }
19
+ try {
20
+ const contractsRoot = resolveContractsRoot(resolveBootstrapRoot());
21
+ const bundled = join(contractsRoot, "schemas/docops.config.schema.json");
22
+ if (await pathExists(bundled)) {
23
+ return bundled;
24
+ }
25
+ }
26
+ catch {
27
+ // bootstrap bundle unavailable in some test fixtures
28
+ }
29
+ return null;
30
+ }
31
+ function validateDocopsConfigSchema(raw, schemaPath) {
32
+ return readJson(schemaPath)
33
+ .then((schema) => {
34
+ const { $schema: _meta, ...schemaBody } = schema;
35
+ const ajv = new Ajv({ allErrors: true, strict: false });
36
+ addFormats(ajv);
37
+ const validate = ajv.compile(schemaBody);
38
+ if (validate(raw)) {
39
+ return { valid: true, errors: [] };
40
+ }
41
+ const errors = (validate.errors ?? []).map((err) => `${err.instancePath || "/"} ${err.message ?? "invalid"}`);
42
+ return { valid: false, errors };
43
+ })
44
+ .catch((error) => ({
45
+ valid: false,
46
+ errors: [error instanceof Error ? error.message : String(error)],
47
+ }));
48
+ }
49
+ function detectConfigDrift(raw) {
50
+ if (!raw) {
51
+ return [`${DOCOPS_CONFIG_REL} missing`];
52
+ }
53
+ const drift = [];
54
+ const merged = mergeDocopsDefaults(raw);
55
+ const withOptional = {
56
+ ...merged,
57
+ docTypes: ensureOptionalDocTypes(merged.docTypes ?? {}),
58
+ };
59
+ for (const key of Object.keys(DEFAULT_DOCOPS_PATHS)) {
60
+ const onDisk = raw.paths?.[key]?.trim();
61
+ const expected = withOptional.paths[key];
62
+ if (!onDisk) {
63
+ drift.push(`paths.${key} missing on disk (expected "${expected}")`);
64
+ }
65
+ }
66
+ for (const key of missingOptionalDocTypeKeys(raw.docTypes)) {
67
+ drift.push(`docTypes.${key} missing on disk (add disabled entry via repair)`);
68
+ }
69
+ for (const key of Object.keys(DEFAULT_CAPABILITIES)) {
70
+ if (raw.capabilities?.[key] === undefined) {
71
+ drift.push(`capabilities.${key} missing on disk (default: ${String(DEFAULT_CAPABILITIES[key])})`);
72
+ }
73
+ }
74
+ if (JSON.stringify(mergeDocopsDefaults(raw)) !== JSON.stringify(withOptional)) {
75
+ const optionalOnly = missingOptionalDocTypeKeys(raw.docTypes);
76
+ if (optionalOnly.length === 0 && drift.length === 0) {
77
+ drift.push("config differs from latest contract defaults after merge");
78
+ }
79
+ }
80
+ return drift;
81
+ }
82
+ function gapToAction(gap) {
83
+ let command;
84
+ if (gap.fix?.includes("docops migrate --repair") || gap.id.startsWith("DOCOPS-CFG-")) {
85
+ command = "npx ai-spector docops migrate --repair";
86
+ }
87
+ else if (gap.fix?.includes("docops init")) {
88
+ command = "npx ai-spector docops init";
89
+ }
90
+ else if (gap.fix?.includes("docops migrate") && !gap.fix.includes("--repair")) {
91
+ command = "npx ai-spector docops migrate";
92
+ }
93
+ else if (gap.fix?.includes("docops registry sync")) {
94
+ command = "npx ai-spector docops registry sync";
95
+ }
96
+ else if (gap.fix?.startsWith("npx ")) {
97
+ command = gap.fix;
98
+ }
99
+ return {
100
+ id: gap.id,
101
+ severity: gap.severity,
102
+ message: gap.message,
103
+ fix: gap.fix ?? "See message",
104
+ ...(command ? { command } : {}),
105
+ };
106
+ }
107
+ function recommendedCommandFor(recommendedAction, configDrift) {
108
+ if (recommendedAction === "repair" || configDrift) {
109
+ return "npx ai-spector docops migrate --repair";
110
+ }
111
+ if (recommendedAction === "migrate") {
112
+ return "npx ai-spector docops migrate";
113
+ }
114
+ if (recommendedAction === "init") {
115
+ return "npx ai-spector docops init";
116
+ }
117
+ return "npx ai-spector docops status";
118
+ }
119
+ function buildAgentPrompt(result) {
120
+ const lines = [
121
+ "Check docops config for this repo and fix any issues.",
122
+ "",
123
+ `Layout: ${result.layout} | writerReady: ${result.writerReady} | schemaValid: ${result.schemaValid} | configDrift: ${result.configDrift}`,
124
+ `Recommended: ${result.recommendedCommand}`,
125
+ "",
126
+ ];
127
+ if (result.actions.length === 0) {
128
+ lines.push("No issues found — docops.config.json matches the Writer contract.");
129
+ return lines.join("\n");
130
+ }
131
+ lines.push("Issues (fix in order; prefer command when listed):");
132
+ for (const [index, action] of result.actions.entries()) {
133
+ lines.push(`${index + 1}. [${action.id}] ${action.message}`);
134
+ if (action.command) {
135
+ lines.push(` Run: ${action.command}`);
136
+ }
137
+ else {
138
+ lines.push(` Fix: ${action.fix}`);
139
+ }
140
+ }
141
+ if (result.repairPreview.length > 0) {
142
+ lines.push("", "Repair preview (dry-run):");
143
+ for (const line of result.repairPreview.slice(0, 12)) {
144
+ lines.push(`- ${line}`);
145
+ }
146
+ if (result.repairPreview.length > 12) {
147
+ lines.push(`- ... and ${result.repairPreview.length - 12} more`);
148
+ }
149
+ }
150
+ lines.push("", "After fixes, run: npx ai-spector docops check --json");
151
+ return lines.join("\n");
152
+ }
153
+ export async function checkDocopsConfig(projectRoot) {
154
+ const configPath = join(projectRoot, DOCOPS_CONFIG_REL).replace(/\\/g, "/");
155
+ const configExists = await pathExists(join(projectRoot, DOCOPS_CONFIG_REL));
156
+ const assessment = await assessDocopsProject(projectRoot);
157
+ let raw = null;
158
+ let schemaValid = false;
159
+ const schemaErrors = [];
160
+ if (configExists) {
161
+ try {
162
+ raw = await readJson(join(projectRoot, DOCOPS_CONFIG_REL));
163
+ const schemaPath = await resolveDocopsConfigSchemaPath(projectRoot);
164
+ if (schemaPath) {
165
+ const validation = await validateDocopsConfigSchema(raw, schemaPath);
166
+ schemaValid = validation.valid;
167
+ schemaErrors.push(...validation.errors);
168
+ }
169
+ else {
170
+ schemaValid = (await readDocopsConfig(projectRoot)) !== null;
171
+ if (!schemaValid) {
172
+ schemaErrors.push("Could not parse docops.config.json");
173
+ }
174
+ }
175
+ }
176
+ catch (error) {
177
+ schemaErrors.push(error instanceof Error ? error.message : String(error));
178
+ }
179
+ }
180
+ const driftSummary = configExists ? detectConfigDrift(raw) : [];
181
+ const configDrift = driftSummary.length > 0;
182
+ const actions = [];
183
+ if (!configExists) {
184
+ actions.push({
185
+ id: "DOCOPS-001",
186
+ severity: "blocking",
187
+ message: `Missing ${DOCOPS_CONFIG_REL}`,
188
+ fix: assessment.recommendedAction === "migrate" ? "Run docops migrate" : "Run docops init",
189
+ command: assessment.recommendedAction === "migrate"
190
+ ? "npx ai-spector docops migrate"
191
+ : "npx ai-spector docops init",
192
+ });
193
+ }
194
+ for (const err of schemaErrors) {
195
+ actions.push({
196
+ id: "DOCOPS-SCHEMA",
197
+ severity: "blocking",
198
+ message: `Schema validation: ${err}`,
199
+ fix: "Fix JSON fields or run docops migrate --repair",
200
+ command: "npx ai-spector docops migrate --repair",
201
+ });
202
+ }
203
+ if (configExists && raw) {
204
+ if (!Array.isArray(raw.languages) || raw.languages.length === 0) {
205
+ actions.push({
206
+ id: "CFG-001",
207
+ severity: "blocking",
208
+ message: "languages[] is empty or missing in docops.config.json",
209
+ fix: "Add languages to docops.config.json or run lang add",
210
+ command: "npx ai-spector lang add <code>",
211
+ });
212
+ }
213
+ const hasLegacyDocflow = await pathExists(join(projectRoot, LEGACY_DOCFLOW_CONFIG_REL));
214
+ if (hasLegacyDocflow) {
215
+ try {
216
+ const legacyRaw = await readJson(join(projectRoot, LEGACY_DOCFLOW_CONFIG_REL));
217
+ const mismatch = legacyDocflowLanguageDiffersFromDocops(raw, legacyRaw);
218
+ if (mismatch) {
219
+ actions.push({
220
+ id: "CFG-002",
221
+ severity: "warning",
222
+ message: `docops languages [${mismatch.docopsCodes.join(", ")}] disagree with legacy docflow ` +
223
+ `[${mismatch.legacyCodes.join(", ") || "none"}] — generation uses docops`,
224
+ fix: "Sync .ai-spector/docflow.config.json languages to match docops.config.json",
225
+ command: "npx ai-spector docops migrate --repair",
226
+ });
227
+ }
228
+ }
229
+ catch {
230
+ // legacy parse errors handled elsewhere
231
+ }
232
+ }
233
+ for (const line of driftSummary) {
234
+ if (actions.some((a) => a.message.includes(line))) {
235
+ continue;
236
+ }
237
+ actions.push({
238
+ id: "DOCOPS-DRIFT",
239
+ severity: "warning",
240
+ message: line,
241
+ fix: "Run docops migrate --repair to sync config to latest contract",
242
+ command: "npx ai-spector docops migrate --repair",
243
+ });
244
+ }
245
+ }
246
+ for (const gap of assessment.gaps) {
247
+ if (actions.some((a) => a.id === gap.id)) {
248
+ continue;
249
+ }
250
+ actions.push(gapToAction(gap));
251
+ }
252
+ let repairPreview = [];
253
+ if (configExists) {
254
+ const repair = await migrateDocopsLayout({ projectRoot, repair: true, dryRun: true });
255
+ repairPreview = repair.actions.filter((a) => !a.startsWith("skip"));
256
+ }
257
+ const recommendedCommand = recommendedCommandFor(assessment.recommendedAction, configDrift);
258
+ const blocking = actions.filter((a) => a.severity === "blocking");
259
+ const valid = configExists && schemaValid && blocking.length === 0 && assessment.writerReady && !configDrift;
260
+ const partial = {
261
+ valid,
262
+ configPath,
263
+ configExists,
264
+ schemaValid,
265
+ schemaErrors,
266
+ configDrift,
267
+ driftSummary,
268
+ layout: assessment.layout,
269
+ writerReady: assessment.writerReady,
270
+ recommendedAction: assessment.recommendedAction,
271
+ recommendedCommand,
272
+ actions,
273
+ repairPreview,
274
+ };
275
+ return {
276
+ ...partial,
277
+ agentPrompt: buildAgentPrompt(partial),
278
+ };
279
+ }
280
+ //# sourceMappingURL=check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check.js","sourceRoot":"","sources":["../../../src/core/docops/check.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,8 @@ export declare const LAYER_TEMPLATES_PATH: Record<string, string>;
9
9
  export declare function buildDocTypesFromLayers(layers: string[] | undefined, inferred: Record<string, DocopsDocTypeConfig>): Record<string, DocopsDocTypeConfig>;
10
10
  /** Add missing optional doc types (disabled) and persist-friendly patches for repair/migrate. */
11
11
  export declare function ensureOptionalDocTypes(docTypes: Record<string, DocopsDocTypeConfig>): Record<string, DocopsDocTypeConfig>;
12
+ /** Keys missing from docTypes that should be present (disabled by default). */
13
+ export declare function missingOptionalDocTypeKeys(docTypes: Record<string, DocopsDocTypeConfig> | undefined): string[];
12
14
  export declare function templateLayerKeys(config: {
13
15
  docTypes?: Record<string, DocopsDocTypeConfig>;
14
16
  }): string[];
@@ -1 +1 @@
1
- {"version":3,"file":"layer-defaults.d.ts","sourceRoot":"","sources":["../../../src/core/docops/layer-defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAgB/E,CAAC;AAEF,mFAAmF;AACnF,eAAO,MAAM,wBAAwB,aAA6C,CAAC;AAEnF,uFAAuF;AACvF,eAAO,MAAM,gCAAgC,aAA4B,CAAC;AAE1E,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAIxD,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAIvD,CAAC;AAEF,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,EAC5B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,GAC5C,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CA8BrC;AAED,iGAAiG;AACjG,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,GAC5C,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAarC;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;CAChD,GAAG,MAAM,EAAE,CAcX"}
1
+ {"version":3,"file":"layer-defaults.d.ts","sourceRoot":"","sources":["../../../src/core/docops/layer-defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAgB/E,CAAC;AAEF,mFAAmF;AACnF,eAAO,MAAM,wBAAwB,aAA6C,CAAC;AAEnF,uFAAuF;AACvF,eAAO,MAAM,gCAAgC,aAA4B,CAAC;AAE1E,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAIxD,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAIvD,CAAC;AAEF,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,EAC5B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,GAC5C,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CA8BrC;AAED,iGAAiG;AACjG,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,GAC5C,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAarC;AAED,+EAA+E;AAC/E,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,GAAG,SAAS,GACxD,MAAM,EAAE,CAKV;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;CAChD,GAAG,MAAM,EAAE,CAcX"}
@@ -74,6 +74,13 @@ export function ensureOptionalDocTypes(docTypes) {
74
74
  }
75
75
  return changed ? next : docTypes;
76
76
  }
77
+ /** Keys missing from docTypes that should be present (disabled by default). */
78
+ export function missingOptionalDocTypeKeys(docTypes) {
79
+ if (!docTypes) {
80
+ return [...OPTIONAL_DISABLED_LAYERS];
81
+ }
82
+ return [...OPTIONAL_DISABLED_LAYERS].filter((key) => !docTypes[key]);
83
+ }
77
84
  export function templateLayerKeys(config) {
78
85
  const keys = new Set();
79
86
  for (const [key, dt] of Object.entries(config.docTypes ?? {})) {
@@ -1 +1 @@
1
- {"version":3,"file":"layer-defaults.js","sourceRoot":"","sources":["../../../src/core/docops/layer-defaults.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"layer-defaults.js","sourceRoot":"","sources":["../../../src/core/docops/layer-defaults.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAyD;IAClF,GAAG,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,uBAAuB,EAAE;IAC/E,WAAW,EAAE;QACX,IAAI,EAAE,mBAAmB;QACzB,KAAK,EAAE,cAAc;QACrB,aAAa,EAAE,gCAAgC;KAChD;IACD,YAAY,EAAE;QACZ,IAAI,EAAE,oBAAoB;QAC1B,KAAK,EAAE,eAAe;QACtB,aAAa,EAAE,iCAAiC;KACjD;IACD,aAAa,EAAE;QACb,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,gBAAgB;KACxB;CACF,CAAC;AAEF,mFAAmF;AACnF,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC,CAAC;AAEnF,uFAAuF;AACvF,MAAM,CAAC,MAAM,gCAAgC,GAAG,IAAI,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;AAE1E,MAAM,CAAC,MAAM,qBAAqB,GAA2B;IAC3D,GAAG,EAAE,KAAK;IACV,WAAW,EAAE,cAAc;IAC3B,YAAY,EAAE,eAAe;CAC9B,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAA2B;IAC1D,GAAG,EAAE,uBAAuB;IAC5B,WAAW,EAAE,gCAAgC;IAC7C,YAAY,EAAE,iCAAiC;CAChD,CAAC;AAEF,MAAM,UAAU,uBAAuB,CACrC,MAA4B,EAC5B,QAA6C;IAE7C,MAAM,SAAS,GAAG,MAAM,EAAE,MAAM;QAC9B,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM;YAC5B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;YACvB,CAAC,CAAC,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IAE7B,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;IACpC,MAAM,GAAG,GAAwC,EAAE,CAAC;IAEpD,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,MAAM,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;QACpC,GAAG,CAAC,GAAG,CAAC,GAAG;YACT,GAAG,IAAI;YACP,GAAG,aAAa;YAChB,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI;YAC9C,OAAO,EAAE,aAAa,EAAE,OAAO,IAAI,IAAI;SACxC,CAAC;IACJ,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,wBAAwB,EAAE,CAAC;QAC3C,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAC5C,MAAM,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACzC,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,iGAAiG;AACjG,MAAM,UAAU,sBAAsB,CACpC,QAA6C;IAE7C,MAAM,IAAI,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;IAC7B,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,KAAK,MAAM,GAAG,IAAI,wBAAwB,EAAE,CAAC;QAC3C,IAAI,IAAI,CAAC,GAAG,CAAC;YAAE,SAAS;QACxB,MAAM,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACxC,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IAED,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;AACnC,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,0BAA0B,CACxC,QAAyD;IAEzD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,wBAAwB,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,CAAC,GAAG,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAEjC;IACC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,CAAC;QAC9D,IAAI,EAAE,EAAE,OAAO,KAAK,KAAK,IAAI,CAAC,gCAAgC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACxE,SAAS;QACX,CAAC;QACD,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,CAAC;YAC9B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChB,CAAC;IACH,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,gCAAgC,EAAE,CAAC;QACnD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChB,CAAC;IACD,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;AACnB,CAAC"}
@@ -0,0 +1,24 @@
1
+ export type DocopsLayerClass = "builtin-aligned" | "reshaped" | "custom" | "missing";
2
+ export type DocopsPrototypeClass = "static-html" | "spa" | "disconnected" | "missing";
3
+ export type DocopsLangStrategy = "per-lang-folders" | "flat" | "mixed";
4
+ export interface DocopsClassifyFile {
5
+ relativePath: string;
6
+ headings: Array<{
7
+ depth: number;
8
+ text: string;
9
+ }>;
10
+ content?: string;
11
+ ids?: string[];
12
+ }
13
+ export declare function scoreBuiltinMatch(file: DocopsClassifyFile, layer: "srs" | "basic-design" | "detail-design"): number;
14
+ export declare function classifyLayer(files: DocopsClassifyFile[], layer: "srs" | "basic-design" | "detail-design"): DocopsLayerClass;
15
+ export declare function detectLanguageLayout(paths: string[]): {
16
+ detected: string[];
17
+ strategy: DocopsLangStrategy;
18
+ };
19
+ export declare function extractDomainIds(content: string): string[];
20
+ export declare function classifyDataSource(srsMdCount: number, dataSourceMdCount: number): "present" | "partial" | "absent";
21
+ export declare function classifyPrototype(root: string): Promise<DocopsPrototypeClass>;
22
+ /** Reset cached manifest entries — for tests only. */
23
+ export declare function resetLayoutClassifyCacheForTests(): void;
24
+ //# sourceMappingURL=layout-classify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout-classify.d.ts","sourceRoot":"","sources":["../../../src/core/docops/layout-classify.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,gBAAgB,GAAG,iBAAiB,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC;AACrF,MAAM,MAAM,oBAAoB,GAAG,aAAa,GAAG,KAAK,GAAG,cAAc,GAAG,SAAS,CAAC;AACtF,MAAM,MAAM,kBAAkB,GAAG,kBAAkB,GAAG,MAAM,GAAG,OAAO,CAAC;AAYvE,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;CAChB;AA6HD,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,kBAAkB,EACxB,KAAK,EAAE,KAAK,GAAG,cAAc,GAAG,eAAe,GAC9C,MAAM,CAOR;AAED,wBAAgB,aAAa,CAC3B,KAAK,EAAE,kBAAkB,EAAE,EAC3B,KAAK,EAAE,KAAK,GAAG,cAAc,GAAG,eAAe,GAC9C,gBAAgB,CAiBlB;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG;IACrD,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,kBAAkB,CAAC;CAC9B,CAiCA;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAU1D;AAoGD,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,MAAM,EAClB,iBAAiB,EAAE,MAAM,GACxB,SAAS,GAAG,SAAS,GAAG,QAAQ,CAKlC;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAMnF;AAED,sDAAsD;AACtD,wBAAgB,gCAAgC,IAAI,IAAI,CAIvD"}