@captain_z/zsk 1.8.3 → 1.8.5

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 (143) hide show
  1. package/dist/bin.js +13 -0
  2. package/dist/bin.js.map +1 -1
  3. package/dist/commands/add-flow.d.ts +3 -7
  4. package/dist/commands/add-flow.js +7 -59
  5. package/dist/commands/add-flow.js.map +1 -1
  6. package/dist/commands/add.js +25 -104
  7. package/dist/commands/add.js.map +1 -1
  8. package/dist/commands/check.js +14 -575
  9. package/dist/commands/check.js.map +1 -1
  10. package/dist/commands/config.js +1 -1
  11. package/dist/commands/config.js.map +1 -1
  12. package/dist/commands/demo.d.ts +5 -0
  13. package/dist/commands/demo.js +70 -297
  14. package/dist/commands/demo.js.map +1 -1
  15. package/dist/commands/doctor.js +9 -4
  16. package/dist/commands/doctor.js.map +1 -1
  17. package/dist/commands/gate.d.ts +1 -0
  18. package/dist/commands/gate.js +8 -2
  19. package/dist/commands/gate.js.map +1 -1
  20. package/dist/commands/prepare.js +7 -1
  21. package/dist/commands/prepare.js.map +1 -1
  22. package/dist/commands/project-init.js +30 -8
  23. package/dist/commands/project-init.js.map +1 -1
  24. package/dist/core/config.d.ts +68 -0
  25. package/dist/core/config.js +198 -15
  26. package/dist/core/config.js.map +1 -1
  27. package/dist/core/demo-auth.d.ts +30 -0
  28. package/dist/core/demo-auth.js +213 -0
  29. package/dist/core/demo-auth.js.map +1 -0
  30. package/dist/core/demo-scenarios.d.ts +62 -0
  31. package/dist/core/demo-scenarios.js +276 -0
  32. package/dist/core/demo-scenarios.js.map +1 -0
  33. package/dist/core/demo-sources.d.ts +37 -0
  34. package/dist/core/demo-sources.js +198 -0
  35. package/dist/core/demo-sources.js.map +1 -0
  36. package/dist/core/mcp-registry-discovery.d.ts +16 -0
  37. package/dist/core/mcp-registry-discovery.js +187 -0
  38. package/dist/core/mcp-registry-discovery.js.map +1 -0
  39. package/dist/core/origin-detection.js +1 -1
  40. package/dist/core/origin-detection.js.map +1 -1
  41. package/dist/core/prepare-artifacts.d.ts +16 -0
  42. package/dist/core/prepare-artifacts.js +25 -0
  43. package/dist/core/prepare-artifacts.js.map +1 -0
  44. package/dist/core/prepare-auth-helper.d.ts +8 -0
  45. package/dist/core/prepare-auth-helper.js +32 -0
  46. package/dist/core/prepare-auth-helper.js.map +1 -0
  47. package/dist/core/prepare-materialization.d.ts +8 -0
  48. package/dist/core/prepare-materialization.js +26 -0
  49. package/dist/core/prepare-materialization.js.map +1 -0
  50. package/dist/core/prepare-migration.d.ts +6 -0
  51. package/dist/core/prepare-migration.js +57 -0
  52. package/dist/core/prepare-migration.js.map +1 -0
  53. package/dist/core/prepare-reporting.d.ts +5 -0
  54. package/dist/core/prepare-reporting.js +106 -0
  55. package/dist/core/prepare-reporting.js.map +1 -0
  56. package/dist/core/prepare-routing.d.ts +12 -0
  57. package/dist/core/prepare-routing.js +182 -0
  58. package/dist/core/prepare-routing.js.map +1 -0
  59. package/dist/core/prepare-sync.d.ts +13 -53
  60. package/dist/core/prepare-sync.js +878 -359
  61. package/dist/core/prepare-sync.js.map +1 -1
  62. package/dist/core/prepare-utils.d.ts +6 -0
  63. package/dist/core/prepare-utils.js +35 -0
  64. package/dist/core/prepare-utils.js.map +1 -0
  65. package/dist/core/profile-bundle-installation.d.ts +55 -0
  66. package/dist/core/profile-bundle-installation.js +170 -0
  67. package/dist/core/profile-bundle-installation.js.map +1 -0
  68. package/dist/core/provider-policy.d.ts +26 -0
  69. package/dist/core/provider-policy.js +180 -0
  70. package/dist/core/provider-policy.js.map +1 -0
  71. package/dist/core/provider-readiness.d.ts +39 -0
  72. package/dist/core/provider-readiness.js +78 -0
  73. package/dist/core/provider-readiness.js.map +1 -0
  74. package/dist/core/source-adapter-normalization.d.ts +31 -0
  75. package/dist/core/source-adapter-normalization.js +235 -0
  76. package/dist/core/source-adapter-normalization.js.map +1 -0
  77. package/dist/core/source-snapshot-adapters.d.ts +59 -0
  78. package/dist/core/source-snapshot-adapters.js +60 -0
  79. package/dist/core/source-snapshot-adapters.js.map +1 -0
  80. package/dist/core/staffing-plan.d.ts +1 -0
  81. package/dist/core/staffing-plan.js +113 -21
  82. package/dist/core/staffing-plan.js.map +1 -1
  83. package/dist/core/stage-clarity-verification.d.ts +31 -0
  84. package/dist/core/stage-clarity-verification.js +316 -0
  85. package/dist/core/stage-clarity-verification.js.map +1 -0
  86. package/dist/core/stage-output-quality.d.ts +3 -0
  87. package/dist/core/stage-output-quality.js +122 -0
  88. package/dist/core/stage-output-quality.js.map +1 -0
  89. package/dist/core/stage-quality-artifacts.d.ts +15 -0
  90. package/dist/core/stage-quality-artifacts.js +421 -0
  91. package/dist/core/stage-quality-artifacts.js.map +1 -0
  92. package/dist/core/stage-quality-contracts.d.ts +105 -0
  93. package/dist/core/stage-quality-contracts.js +2 -0
  94. package/dist/core/stage-quality-contracts.js.map +1 -0
  95. package/dist/core/stage-quality-criteria.d.ts +9 -0
  96. package/dist/core/stage-quality-criteria.js +286 -0
  97. package/dist/core/stage-quality-criteria.js.map +1 -0
  98. package/dist/core/stage-quality-rendering.d.ts +15 -0
  99. package/dist/core/stage-quality-rendering.js +240 -0
  100. package/dist/core/stage-quality-rendering.js.map +1 -0
  101. package/dist/core/stage-quality.d.ts +4 -59
  102. package/dist/core/stage-quality.js +54 -795
  103. package/dist/core/stage-quality.js.map +1 -1
  104. package/dist/core/template-registry.js +12 -15
  105. package/dist/core/template-registry.js.map +1 -1
  106. package/dist/core/workspace-conformance.d.ts +39 -0
  107. package/dist/core/workspace-conformance.js +603 -0
  108. package/dist/core/workspace-conformance.js.map +1 -0
  109. package/package.json +2 -2
  110. package/schemas/providers.schema.json +74 -0
  111. package/schemas/zsk-config.schema.json +417 -1
  112. package/templates/module/frontend-module/design.md +10 -0
  113. package/templates/module/frontend-module/proposal.md +8 -0
  114. package/templates/module/frontend-module/spec.md +7 -0
  115. package/templates/project-init/.zsk/README.md +48 -0
  116. package/templates/project-init/.zsk/config.yaml +37 -0
  117. package/templates/project-init/.zsk/docs/CONFIG-SCHEMA.md +127 -0
  118. package/templates/project-init/.zsk/docs/PROJECT-CONFIG.md +53 -5
  119. package/templates/project-init/.zsk/docs/README.md +10 -0
  120. package/templates/project-init/.zsk/docs/SECURITY.md +34 -0
  121. package/templates/project-init/.zsk/docs/SYSTEM-SPEC.md +39 -7
  122. package/templates/project-init/.zsk/evidence/README.md +15 -0
  123. package/templates/project-init/.zsk/issues/README.md +10 -0
  124. package/templates/project-init/.zsk/modules/README.md +19 -0
  125. package/templates/project-init/.zsk/modules/index.md +9 -5
  126. package/templates/project-init/.zsk/raws/README.md +34 -0
  127. package/templates/project-init/.zsk/roles.yaml +36 -105
  128. package/templates/project-init/.zsk/templates/config.examples.yaml +83 -0
  129. package/templates/project-init/.zsk/templates/issue-card.md +23 -0
  130. package/templates/project-init/.zsk/templates/module/README.md +13 -0
  131. package/templates/project-init/.zsk/templates/module/design.md +22 -0
  132. package/templates/project-init/.zsk/templates/module/module.yaml +15 -0
  133. package/templates/project-init/.zsk/templates/module/proposal.md +20 -0
  134. package/templates/project-init/.zsk/templates/module/spec.md +22 -0
  135. package/templates/project-init/.zsk/templates/module/tasks.md +16 -0
  136. package/templates/project-init/.zsk/raws/index.md +0 -18
  137. package/templates/project-init/.zsk/raws/manifest.json +0 -4
  138. package/templates/project-init/.zsk/raws/prepare/backend/index.md +0 -4
  139. package/templates/project-init/.zsk/raws/prepare/design/index.md +0 -3
  140. package/templates/project-init/.zsk/raws/prepare/index.md +0 -4
  141. package/templates/project-init/.zsk/raws/prepare/product/index.md +0 -4
  142. package/templates/project-init/.zsk/raws/prepare/qa/index.md +0 -4
  143. package/templates/project-init/.zsk/raws/prepare/ux/index.md +0 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile-bundle-installation.js","sourceRoot":"","sources":["../../src/core/profile-bundle-installation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { type BuiltInSourceAdapterId } from "./source-adapter-normalization.js";
2
+ export declare const PROVIDER_CAPABILITIES: readonly ["metadata-read", "node-read", "asset-export"];
3
+ export type ProviderCapability = typeof PROVIDER_CAPABILITIES[number];
4
+ export type ProviderMappingSource = "builtin" | "project";
5
+ export type AdapterCapabilityContract = {
6
+ readinessCapabilities: ProviderCapability[];
7
+ snapshotCapabilities: ProviderCapability[];
8
+ optionalCapabilities: ProviderCapability[];
9
+ };
10
+ export type ProviderToolMapping = Partial<Record<ProviderCapability, string[]>>;
11
+ export type ProviderMapping = {
12
+ name: string;
13
+ adapter: BuiltInSourceAdapterId;
14
+ mappingSource: ProviderMappingSource;
15
+ tools: ProviderToolMapping;
16
+ };
17
+ export type ProviderPolicy = {
18
+ path?: string;
19
+ mappings: Map<string, ProviderMapping>;
20
+ issues: string[];
21
+ warnings: string[];
22
+ };
23
+ export declare function adapterCapabilityContract(adapter: BuiltInSourceAdapterId): AdapterCapabilityContract;
24
+ export declare function loadProviderPolicy(target: string): Promise<ProviderPolicy>;
25
+ export declare function providerPolicyPathRelative(target: string, path: string | undefined): string | undefined;
26
+ export declare function sanitizeCommandLabel(command: string | undefined): string | undefined;
@@ -0,0 +1,180 @@
1
+ import { access, readFile } from "node:fs/promises";
2
+ import { basename, relative, resolve } from "node:path";
3
+ import YAML from "yaml";
4
+ import { isBuiltInSourceAdapter } from "./source-adapter-normalization.js";
5
+ export const PROVIDER_CAPABILITIES = ["metadata-read", "node-read", "asset-export"];
6
+ const CAPABILITY_ALIASES = {
7
+ "metadata-read": "metadata-read",
8
+ metadataRead: "metadata-read",
9
+ metadata: "metadata-read",
10
+ "node-read": "node-read",
11
+ nodeRead: "node-read",
12
+ documentRead: "node-read",
13
+ document: "node-read",
14
+ "asset-export": "asset-export",
15
+ assetExport: "asset-export",
16
+ assets: "asset-export",
17
+ };
18
+ const BUILT_IN_ADAPTER_CONTRACTS = {
19
+ confluence: { readinessCapabilities: [], snapshotCapabilities: [], optionalCapabilities: [] },
20
+ jira: { readinessCapabilities: [], snapshotCapabilities: [], optionalCapabilities: [] },
21
+ gitlab: { readinessCapabilities: [], snapshotCapabilities: [], optionalCapabilities: [] },
22
+ figma: {
23
+ readinessCapabilities: ["metadata-read"],
24
+ snapshotCapabilities: ["node-read"],
25
+ optionalCapabilities: ["asset-export"],
26
+ },
27
+ };
28
+ const BUILT_IN_PROVIDER_MAPPINGS = {
29
+ "figma-mcp-go": {
30
+ adapter: "figma",
31
+ tools: {
32
+ "metadata-read": ["get_metadata", "get_file", "get_document"],
33
+ "node-read": ["get_node", "get_document"],
34
+ "asset-export": ["get_image", "export_asset"],
35
+ },
36
+ },
37
+ };
38
+ export function adapterCapabilityContract(adapter) {
39
+ return BUILT_IN_ADAPTER_CONTRACTS[adapter];
40
+ }
41
+ export async function loadProviderPolicy(target) {
42
+ const mappings = new Map();
43
+ for (const [name, mapping] of Object.entries(BUILT_IN_PROVIDER_MAPPINGS)) {
44
+ mappings.set(name, {
45
+ name,
46
+ adapter: mapping.adapter,
47
+ mappingSource: "builtin",
48
+ tools: normalizeToolMapping(mapping.tools),
49
+ });
50
+ }
51
+ const policyPath = resolve(target, ".zsk", "providers.yaml");
52
+ const issues = [];
53
+ const warnings = [];
54
+ if (!(await exists(policyPath)))
55
+ return { mappings, issues, warnings };
56
+ let parsed;
57
+ try {
58
+ parsed = YAML.parse(await readFile(policyPath, "utf8"));
59
+ }
60
+ catch (error) {
61
+ return {
62
+ path: policyPath,
63
+ mappings,
64
+ issues: [`${policyPath}: ${error instanceof Error ? error.message : String(error)}`],
65
+ warnings,
66
+ };
67
+ }
68
+ if (!isRecord(parsed)) {
69
+ return { path: policyPath, mappings, issues: [`${policyPath}: provider policy must be an object`], warnings };
70
+ }
71
+ if (parsed.version !== 1) {
72
+ issues.push(`${policyPath}: version must be 1 for the first provider policy version`);
73
+ }
74
+ if (parsed.adapters !== undefined && !isRecord(parsed.adapters)) {
75
+ issues.push(`${policyPath}: adapters must be an object when present`);
76
+ }
77
+ else if (isRecord(parsed.adapters) && Object.keys(parsed.adapters).length > 0) {
78
+ issues.push(`${policyPath}: adapters override is reserved for a future version; first version only allows provider mappings`);
79
+ }
80
+ const providers = isRecord(parsed.providers) ? parsed.providers : {};
81
+ if (!isRecord(parsed.providers)) {
82
+ issues.push(`${policyPath}: providers must be an object`);
83
+ }
84
+ for (const [name, raw] of Object.entries(providers)) {
85
+ if (!isRecord(raw)) {
86
+ issues.push(`${policyPath}: providers.${name} must be an object`);
87
+ continue;
88
+ }
89
+ if (stringValue(raw, "replaces")) {
90
+ issues.push(`${policyPath}: providers.${name}.replaces is not supported in the first provider policy version; use extends/aliases only`);
91
+ continue;
92
+ }
93
+ const normalizedName = normalizeProviderName(name);
94
+ const extendsName = normalizeProviderName(stringValue(raw, "extends"));
95
+ const base = extendsName ? mappings.get(extendsName) : mappings.get(normalizedName);
96
+ const adapterValue = stringValue(raw, "adapter");
97
+ const requestedAdapter = normalizeAdapter(adapterValue);
98
+ if (adapterValue && !requestedAdapter) {
99
+ issues.push(`${policyPath}: providers.${name}.adapter must be one of figma, jira, confluence, gitlab`);
100
+ continue;
101
+ }
102
+ if (base && requestedAdapter && requestedAdapter !== base.adapter) {
103
+ issues.push(`${policyPath}: providers.${name}.adapter cannot replace base adapter ${base.adapter} in the first provider policy version`);
104
+ continue;
105
+ }
106
+ const adapter = requestedAdapter ?? base?.adapter;
107
+ if (!adapter) {
108
+ issues.push(`${policyPath}: providers.${name}.adapter is required for new provider mappings`);
109
+ continue;
110
+ }
111
+ const tools = normalizeToolMapping(isRecord(raw.tools) ? raw.tools : {});
112
+ const mergedTools = mergeToolMappings(base?.tools ?? {}, tools);
113
+ mappings.set(normalizedName, {
114
+ name: normalizedName,
115
+ adapter,
116
+ mappingSource: "project",
117
+ tools: mergedTools,
118
+ });
119
+ }
120
+ return { path: policyPath, mappings, issues, warnings };
121
+ }
122
+ export function providerPolicyPathRelative(target, path) {
123
+ return path ? relative(target, path) : undefined;
124
+ }
125
+ export function sanitizeCommandLabel(command) {
126
+ if (!command)
127
+ return undefined;
128
+ return command.includes("/") || command.includes("\\") ? basename(command) : command;
129
+ }
130
+ function normalizeToolMapping(raw) {
131
+ const result = {};
132
+ for (const [key, value] of Object.entries(raw)) {
133
+ const capability = CAPABILITY_ALIASES[key];
134
+ if (!capability)
135
+ continue;
136
+ const values = Array.isArray(value) ? value : [value];
137
+ const tools = values
138
+ .filter((item) => typeof item === "string" && item.trim().length > 0)
139
+ .map((item) => item.trim());
140
+ if (tools.length > 0)
141
+ result[capability] = unique([...(result[capability] ?? []), ...tools]);
142
+ }
143
+ return result;
144
+ }
145
+ function mergeToolMappings(base, extension) {
146
+ const result = { ...base };
147
+ for (const capability of PROVIDER_CAPABILITIES) {
148
+ result[capability] = unique([...(base[capability] ?? []), ...(extension[capability] ?? [])]);
149
+ if (result[capability]?.length === 0)
150
+ delete result[capability];
151
+ }
152
+ return result;
153
+ }
154
+ function normalizeAdapter(value) {
155
+ const normalized = normalizeProviderName(value);
156
+ return isBuiltInSourceAdapter(normalized) ? normalized : undefined;
157
+ }
158
+ function normalizeProviderName(value) {
159
+ return value?.trim().toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "") ?? "";
160
+ }
161
+ function stringValue(value, key) {
162
+ const item = value[key];
163
+ return typeof item === "string" && item.trim().length > 0 ? item : undefined;
164
+ }
165
+ function isRecord(value) {
166
+ return typeof value === "object" && value !== null && !Array.isArray(value);
167
+ }
168
+ function unique(values) {
169
+ return Array.from(new Set(values));
170
+ }
171
+ async function exists(path) {
172
+ try {
173
+ await access(path);
174
+ return true;
175
+ }
176
+ catch {
177
+ return false;
178
+ }
179
+ }
180
+ //# sourceMappingURL=provider-policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-policy.js","sourceRoot":"","sources":["../../src/core/provider-policy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import { type ProviderCapability, type ProviderPolicy } from "./provider-policy.js";
2
+ import type { McpRegistryRegistration } from "./mcp-registry-discovery.js";
3
+ import type { BuiltInSourceAdapterId } from "./source-adapter-normalization.js";
4
+ export type ProviderReadinessSummary = "provider-detected" | "provider-not-detected" | "provider-policy-known" | "provider-ambiguous";
5
+ export type ProviderReadinessEvidence = {
6
+ providerName: string;
7
+ adapter?: BuiltInSourceAdapterId;
8
+ summary: ProviderReadinessSummary;
9
+ policy: {
10
+ status: "known" | "missing";
11
+ source?: "project" | "builtin";
12
+ path?: string;
13
+ };
14
+ registry: {
15
+ status: "detected" | "not-detected" | "ambiguous";
16
+ registrations: Array<{
17
+ host: string;
18
+ scope: string;
19
+ configPath: string;
20
+ transport?: string;
21
+ commandLabel?: string;
22
+ url?: string;
23
+ envKeys?: string[];
24
+ staticTools?: string[];
25
+ }>;
26
+ };
27
+ connection: {
28
+ status: "not-attempted";
29
+ reason: "static-cli-mode" | "no-host-mcp-session";
30
+ };
31
+ capabilities: {
32
+ required: ProviderCapability[];
33
+ matched: ProviderCapability[];
34
+ missing: ProviderCapability[];
35
+ evaluation: "matched-static-tools" | "not-evaluable" | "mapping-missing";
36
+ };
37
+ warnings: string[];
38
+ };
39
+ export declare function buildProviderReadinessEvidence(target: string, providerName: string, adapter: BuiltInSourceAdapterId | undefined, policy: ProviderPolicy, registrations: McpRegistryRegistration[]): ProviderReadinessEvidence;
@@ -0,0 +1,78 @@
1
+ import { adapterCapabilityContract, providerPolicyPathRelative, } from "./provider-policy.js";
2
+ export function buildProviderReadinessEvidence(target, providerName, adapter, policy, registrations) {
3
+ const mapping = policy.mappings.get(providerName);
4
+ const effectiveAdapter = adapter ?? mapping?.adapter;
5
+ const required = effectiveAdapter ? adapterCapabilityContract(effectiveAdapter).readinessCapabilities : [];
6
+ const matchingRegistrations = registrations.filter((registration) => registration.name === providerName);
7
+ const registryStatus = matchingRegistrations.length === 0
8
+ ? "not-detected"
9
+ : hasAmbiguousRegistrations(matchingRegistrations)
10
+ ? "ambiguous"
11
+ : "detected";
12
+ const capabilityResult = evaluateCapabilities(required, mapping, matchingRegistrations);
13
+ const summary = registryStatus === "ambiguous"
14
+ ? "provider-ambiguous"
15
+ : registryStatus === "detected"
16
+ ? "provider-detected"
17
+ : mapping
18
+ ? "provider-policy-known"
19
+ : "provider-not-detected";
20
+ return {
21
+ providerName,
22
+ adapter: effectiveAdapter,
23
+ summary,
24
+ policy: {
25
+ status: mapping ? "known" : "missing",
26
+ source: mapping?.mappingSource,
27
+ path: mapping?.mappingSource === "project" ? providerPolicyPathRelative(target, policy.path) : undefined,
28
+ },
29
+ registry: {
30
+ status: registryStatus,
31
+ registrations: matchingRegistrations.map((registration) => ({
32
+ host: registration.host,
33
+ scope: registration.scope,
34
+ configPath: registration.configPath,
35
+ transport: registration.transport,
36
+ commandLabel: registration.commandLabel,
37
+ url: registration.url,
38
+ envKeys: registration.envKeys.length > 0 ? registration.envKeys : undefined,
39
+ staticTools: registration.staticTools,
40
+ })),
41
+ },
42
+ connection: {
43
+ status: "not-attempted",
44
+ reason: "static-cli-mode",
45
+ },
46
+ capabilities: capabilityResult,
47
+ warnings: [
48
+ ...policy.warnings,
49
+ ...(!mapping ? [`provider mapping missing for ${providerName}`] : []),
50
+ ...(registryStatus === "not-detected" ? [`MCP registry did not detect provider ${providerName}`] : []),
51
+ ...(registryStatus === "ambiguous" ? [`MCP registry detected multiple same-priority registrations for ${providerName}`] : []),
52
+ ],
53
+ };
54
+ }
55
+ function evaluateCapabilities(required, mapping, registrations) {
56
+ if (!mapping) {
57
+ return { required, matched: [], missing: required, evaluation: "mapping-missing" };
58
+ }
59
+ const staticTools = new Set(registrations.flatMap((registration) => registration.staticTools ?? []));
60
+ if (staticTools.size === 0) {
61
+ return { required, matched: [], missing: required, evaluation: "not-evaluable" };
62
+ }
63
+ const matched = required.filter((capability) => (mapping.tools[capability] ?? []).some((tool) => staticTools.has(tool)));
64
+ return {
65
+ required,
66
+ matched,
67
+ missing: required.filter((capability) => !matched.includes(capability)),
68
+ evaluation: "matched-static-tools",
69
+ };
70
+ }
71
+ function hasAmbiguousRegistrations(registrations) {
72
+ const minPriority = Math.min(...registrations.map(registrationPriority));
73
+ return registrations.filter((registration) => registrationPriority(registration) === minPriority).length > 1;
74
+ }
75
+ function registrationPriority(registration) {
76
+ return registration.scope === "workspace" ? 0 : 1;
77
+ }
78
+ //# sourceMappingURL=provider-readiness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-readiness.js","sourceRoot":"","sources":["../../src/core/provider-readiness.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import type { SourceConfig } from "./config.js";
2
+ export declare const BUILT_IN_SOURCE_ADAPTERS: readonly ["confluence", "jira", "gitlab", "figma"];
3
+ export type BuiltInSourceAdapterId = typeof BUILT_IN_SOURCE_ADAPTERS[number];
4
+ export type SourceSnapshotAdapterId = BuiltInSourceAdapterId | "design-source";
5
+ export type SourceAdapterNormalization = {
6
+ sourceType?: string;
7
+ adapterId?: BuiltInSourceAdapterId;
8
+ legacyAdapter?: "design-source";
9
+ mcpProviderName?: string;
10
+ fallbackTools: SourceFallbackToolId[];
11
+ warnings: string[];
12
+ errors: string[];
13
+ ambiguous: boolean;
14
+ };
15
+ export type EffectiveSourceInterpretation = SourceAdapterNormalization & {
16
+ snapshotAdapter?: SourceSnapshotAdapterId;
17
+ hasBrowserFallback: boolean;
18
+ };
19
+ export type SourceFallbackToolId = "playwright-cli" | "playwright-mcp" | "playwright" | "computer-use" | "browser-use" | "manual" | "export";
20
+ export declare function normalizeSourceAdapter(source: SourceConfig): SourceAdapterNormalization;
21
+ export declare function isBuiltInSourceAdapter(value: string | undefined): value is BuiltInSourceAdapterId;
22
+ export declare function interpretSourceAdapter(source: SourceConfig, origin?: {
23
+ provider?: string;
24
+ kind?: string;
25
+ }): EffectiveSourceInterpretation;
26
+ export declare function selectSourceSnapshotAdapter(source: SourceConfig, origin: {
27
+ provider?: string;
28
+ kind?: string;
29
+ }): SourceSnapshotAdapterId | undefined;
30
+ export declare function normalizeAdapterKey(value: string | undefined): string;
31
+ export declare function sourceFallbackTools(source: SourceConfig): SourceFallbackToolId[];
@@ -0,0 +1,235 @@
1
+ export const BUILT_IN_SOURCE_ADAPTERS = ["confluence", "jira", "gitlab", "figma"];
2
+ const BUILT_IN_ADAPTER_SET = new Set(BUILT_IN_SOURCE_ADAPTERS);
3
+ const SOURCE_FALLBACK_TOOL_ALIASES = new Map([
4
+ ["playwright-cli", "playwright-cli"],
5
+ ["playwright", "playwright"],
6
+ ["playwright-mcp", "playwright-mcp"],
7
+ ["computer-use", "computer-use"],
8
+ ["browser-use", "browser-use"],
9
+ ["manual", "manual"],
10
+ ["export", "export"],
11
+ ]);
12
+ const DESIGN_SOURCE_TYPES = new Set(["design", "design-source", "design-asset", "design-assets", "prototype"]);
13
+ const GENERIC_SOURCE_TYPES = new Set(["url", "remote", "online", "web", "link", "local", "manual"]);
14
+ export function normalizeSourceAdapter(source) {
15
+ const warnings = [];
16
+ const errors = [];
17
+ const sourceType = normalizedString(source.type);
18
+ const explicitAdapter = normalizedString(stringField(source, "adapter"));
19
+ const sourceProvider = normalizedString(stringField(source, "provider"));
20
+ const originAdapter = normalizedString(stringField(source.origin, "adapter"));
21
+ const originProvider = normalizedString(stringField(source.origin, "provider"));
22
+ const originKind = normalizedString(source.origin?.kind);
23
+ const sourceKind = normalizedString(source.kind);
24
+ const adapterFallbackTool = fallbackToolCandidate(explicitAdapter);
25
+ warnings.push(...fallbackToolWarningsFromValue(source.fallback, "source.fallback"), ...fallbackToolWarningsFromValue(source.fallbackTools, "source.fallbackTools"), ...fallbackToolWarningsFromValue(source.metadata?.fallback, "source.metadata.fallback"), ...fallbackToolWarningsFromValue(source.metadata?.fallbackTools, "source.metadata.fallbackTools"));
26
+ const fallbackTools = unique([
27
+ ...sourceFallbackTools(source),
28
+ ...(adapterFallbackTool ? [adapterFallbackTool] : []),
29
+ ]);
30
+ if (originAdapter)
31
+ warnings.push("origin.adapter is deprecated; prefer source adapter at the source root");
32
+ if (adapterFallbackTool) {
33
+ warnings.push(`source.adapter "${explicitAdapter}" is a runtime fallback tool, not a source adapter; prefer source.fallback instead`);
34
+ }
35
+ const adapterCandidates = [
36
+ adapterFallbackTool ? undefined : adapterCandidate(explicitAdapter),
37
+ adapterCandidate(originAdapter),
38
+ adapterCandidate(sourceProvider),
39
+ adapterCandidate(originProvider),
40
+ adapterCandidate(sourceKind),
41
+ adapterCandidate(originKind),
42
+ adapterCandidate(sourceType),
43
+ adapterFromLocator(source),
44
+ ].filter((value) => Boolean(value));
45
+ const uniqueAdapters = unique(adapterCandidates);
46
+ if (explicitAdapter &&
47
+ !adapterFallbackTool &&
48
+ !BUILT_IN_ADAPTER_SET.has(explicitAdapter) &&
49
+ explicitAdapter !== "design-source") {
50
+ errors.push(`unknown source adapter "${explicitAdapter}"`);
51
+ }
52
+ if (sourceProvider && !BUILT_IN_ADAPTER_SET.has(sourceProvider) && looksLikeMcpProvider(sourceProvider)) {
53
+ warnings.push("source.provider is deprecated for MCP provider binding; prefer source mcpProvider");
54
+ }
55
+ if (originProvider && BUILT_IN_ADAPTER_SET.has(originProvider)) {
56
+ warnings.push("origin.provider is deprecated for adapter selection; prefer source adapter");
57
+ }
58
+ if (originProvider && !BUILT_IN_ADAPTER_SET.has(originProvider) && looksLikeMcpProvider(originProvider)) {
59
+ warnings.push("origin.provider is deprecated for MCP provider binding; prefer source mcpProvider");
60
+ }
61
+ if (sourceType && BUILT_IN_ADAPTER_SET.has(sourceType)) {
62
+ warnings.push(`source.type "${sourceType}" is deprecated for adapter selection; prefer type: design-source with adapter: ${sourceType}`);
63
+ }
64
+ if (uniqueAdapters.length > 1) {
65
+ errors.push(`conflicting source adapters: ${uniqueAdapters.join(", ")}`);
66
+ }
67
+ const adapterId = uniqueAdapters[0];
68
+ const legacyAdapter = isDesignSource(source) && !adapterId ? "design-source" : undefined;
69
+ const mcpProviderName = firstNormalized(stringField(source, "mcpProvider"), stringField(source, "mcpServer"), looksLikeMcpProvider(sourceProvider) ? sourceProvider : undefined, looksLikeMcpProvider(originProvider) ? originProvider : undefined, stringField(source.origin, "mcpProvider"), stringField(source.origin, "mcpServer"));
70
+ if (stringField(source.origin, "mcpProvider") || stringField(source.origin, "mcpServer")) {
71
+ warnings.push("origin.mcpProvider/origin.mcpServer is deprecated; prefer source mcpProvider");
72
+ }
73
+ return {
74
+ sourceType,
75
+ adapterId,
76
+ legacyAdapter,
77
+ mcpProviderName,
78
+ fallbackTools,
79
+ warnings: unique(warnings),
80
+ errors: unique(errors),
81
+ ambiguous: Boolean(legacyAdapter && !adapterId),
82
+ };
83
+ }
84
+ export function isBuiltInSourceAdapter(value) {
85
+ return Boolean(value && BUILT_IN_ADAPTER_SET.has(value));
86
+ }
87
+ export function interpretSourceAdapter(source, origin = {}) {
88
+ const normalized = normalizeSourceAdapter(source);
89
+ return {
90
+ ...normalized,
91
+ snapshotAdapter: selectSourceSnapshotAdapterFromNormalized(source, origin, normalized),
92
+ hasBrowserFallback: normalized.fallbackTools.includes("playwright-cli") ||
93
+ normalized.fallbackTools.includes("playwright"),
94
+ };
95
+ }
96
+ export function selectSourceSnapshotAdapter(source, origin) {
97
+ return selectSourceSnapshotAdapterFromNormalized(source, origin, normalizeSourceAdapter(source));
98
+ }
99
+ function selectSourceSnapshotAdapterFromNormalized(source, origin, normalized) {
100
+ if (normalized.adapterId)
101
+ return normalized.adapterId;
102
+ if (normalized.legacyAdapter)
103
+ return normalized.legacyAdapter;
104
+ const keys = [
105
+ origin.provider,
106
+ origin.kind,
107
+ source.origin?.provider,
108
+ source.origin?.kind,
109
+ source.kind,
110
+ source.type,
111
+ ].map((value) => normalizeAdapterKey(typeof value === "string" ? value : undefined));
112
+ if (keys.some((value) => value.includes("confluence")))
113
+ return "confluence";
114
+ if (keys.some((value) => value.includes("jira")))
115
+ return "jira";
116
+ if (keys.some((value) => value.includes("gitlab")))
117
+ return "gitlab";
118
+ if (keys.some((value) => value.includes("figma") ||
119
+ ["design", "design-asset", "design-source"].includes(value))) {
120
+ return keys.some((value) => value.includes("figma")) ? "figma" : "design-source";
121
+ }
122
+ return undefined;
123
+ }
124
+ export function normalizeAdapterKey(value) {
125
+ return value?.trim().toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "") ?? "";
126
+ }
127
+ export function sourceFallbackTools(source) {
128
+ const adapterFallbackTool = fallbackToolCandidate(normalizedString(stringField(source, "adapter")));
129
+ return unique([
130
+ ...(adapterFallbackTool ? [adapterFallbackTool] : []),
131
+ ...fallbackToolsFromValue(source.fallback),
132
+ ...fallbackToolsFromValue(source.fallbackTools),
133
+ ...fallbackToolsFromValue(source.metadata?.fallback),
134
+ ...fallbackToolsFromValue(source.metadata?.fallbackTools),
135
+ ]);
136
+ }
137
+ function adapterCandidate(value) {
138
+ if (!value)
139
+ return undefined;
140
+ if (isBuiltInSourceAdapter(value))
141
+ return value;
142
+ return undefined;
143
+ }
144
+ function fallbackToolCandidate(value) {
145
+ if (!value)
146
+ return undefined;
147
+ return SOURCE_FALLBACK_TOOL_ALIASES.get(value);
148
+ }
149
+ function fallbackToolsFromValue(value) {
150
+ if (typeof value === "string") {
151
+ const candidate = fallbackToolCandidate(normalizedString(value));
152
+ return candidate ? [candidate] : [];
153
+ }
154
+ if (Array.isArray(value)) {
155
+ return value.flatMap((item) => fallbackToolsFromValue(item));
156
+ }
157
+ if (!value || typeof value !== "object")
158
+ return [];
159
+ const record = value;
160
+ return [
161
+ ...fallbackToolsFromValue(record.acquisition),
162
+ ...fallbackToolsFromValue(record.observation),
163
+ ...fallbackToolsFromValue(record.tools),
164
+ ];
165
+ }
166
+ function fallbackToolWarningsFromValue(value, path) {
167
+ if (typeof value === "string") {
168
+ return fallbackToolCandidate(normalizedString(value))
169
+ ? []
170
+ : [`unknown source fallback tool "${value}" at ${path}`];
171
+ }
172
+ if (Array.isArray(value)) {
173
+ return value.flatMap((item, index) => fallbackToolWarningsFromValue(item, `${path}/${index}`));
174
+ }
175
+ if (!value || typeof value !== "object")
176
+ return [];
177
+ const record = value;
178
+ return [
179
+ ...fallbackToolWarningsFromValue(record.acquisition, `${path}/acquisition`),
180
+ ...fallbackToolWarningsFromValue(record.observation, `${path}/observation`),
181
+ ...fallbackToolWarningsFromValue(record.tools, `${path}/tools`),
182
+ ];
183
+ }
184
+ function adapterFromLocator(source) {
185
+ const values = [
186
+ stringField(source.origin, "url"),
187
+ stringField(source.origin, "apiUrl"),
188
+ stringField(source.origin, "exportUrl"),
189
+ stringField(source.origin, "fileKey"),
190
+ stringField(source.origin, "nodeId"),
191
+ ].filter((value) => Boolean(value));
192
+ const joined = values.join("\n").toLowerCase();
193
+ if (joined.includes("figma.com") || Boolean(stringField(source.origin, "fileKey")))
194
+ return "figma";
195
+ return undefined;
196
+ }
197
+ function isDesignSource(source) {
198
+ const values = [
199
+ source.type,
200
+ source.kind,
201
+ source.origin?.kind,
202
+ stringField(source, "adapter"),
203
+ stringField(source.origin, "adapter"),
204
+ ].map(normalizedString).filter((value) => Boolean(value));
205
+ if (values.some((value) => DESIGN_SOURCE_TYPES.has(value)))
206
+ return true;
207
+ if (values.some((value) => GENERIC_SOURCE_TYPES.has(value)))
208
+ return false;
209
+ return Boolean(adapterFromLocator(source));
210
+ }
211
+ function looksLikeMcpProvider(value) {
212
+ return Boolean(value && /\bmcp\b|mcp-|_mcp|-server$/.test(value));
213
+ }
214
+ function firstNormalized(...values) {
215
+ for (const value of values) {
216
+ const normalized = normalizedString(value);
217
+ if (normalized)
218
+ return normalized;
219
+ }
220
+ return undefined;
221
+ }
222
+ function normalizedString(value) {
223
+ const normalized = normalizeAdapterKey(value);
224
+ return normalized || undefined;
225
+ }
226
+ function stringField(value, key) {
227
+ if (!value || typeof value !== "object")
228
+ return undefined;
229
+ const item = value[key];
230
+ return typeof item === "string" && item.trim().length > 0 ? item : undefined;
231
+ }
232
+ function unique(values) {
233
+ return Array.from(new Set(values));
234
+ }
235
+ //# sourceMappingURL=source-adapter-normalization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-adapter-normalization.js","sourceRoot":"","sources":["../../src/core/source-adapter-normalization.ts"],"names":[],"mappings":"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"}