@captain_z/zsk 1.8.4 → 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.
- package/dist/bin.js +13 -0
- package/dist/bin.js.map +1 -1
- package/dist/commands/check.js +14 -575
- package/dist/commands/check.js.map +1 -1
- package/dist/commands/config.js +1 -1
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/demo.d.ts +5 -0
- package/dist/commands/demo.js +70 -297
- package/dist/commands/demo.js.map +1 -1
- package/dist/commands/doctor.js +9 -4
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/gate.d.ts +1 -0
- package/dist/commands/gate.js +8 -2
- package/dist/commands/gate.js.map +1 -1
- package/dist/commands/prepare.js +7 -1
- package/dist/commands/prepare.js.map +1 -1
- package/dist/commands/project-init.js +30 -8
- package/dist/commands/project-init.js.map +1 -1
- package/dist/core/config.d.ts +68 -0
- package/dist/core/config.js +198 -15
- package/dist/core/config.js.map +1 -1
- package/dist/core/demo-auth.d.ts +30 -0
- package/dist/core/demo-auth.js +213 -0
- package/dist/core/demo-auth.js.map +1 -0
- package/dist/core/demo-scenarios.d.ts +62 -0
- package/dist/core/demo-scenarios.js +276 -0
- package/dist/core/demo-scenarios.js.map +1 -0
- package/dist/core/demo-sources.d.ts +37 -0
- package/dist/core/demo-sources.js +198 -0
- package/dist/core/demo-sources.js.map +1 -0
- package/dist/core/mcp-registry-discovery.d.ts +16 -0
- package/dist/core/mcp-registry-discovery.js +187 -0
- package/dist/core/mcp-registry-discovery.js.map +1 -0
- package/dist/core/origin-detection.js +1 -1
- package/dist/core/origin-detection.js.map +1 -1
- package/dist/core/prepare-artifacts.d.ts +16 -0
- package/dist/core/prepare-artifacts.js +25 -0
- package/dist/core/prepare-artifacts.js.map +1 -0
- package/dist/core/prepare-auth-helper.d.ts +8 -0
- package/dist/core/prepare-auth-helper.js +32 -0
- package/dist/core/prepare-auth-helper.js.map +1 -0
- package/dist/core/prepare-materialization.d.ts +8 -0
- package/dist/core/prepare-materialization.js +26 -0
- package/dist/core/prepare-materialization.js.map +1 -0
- package/dist/core/prepare-migration.d.ts +6 -0
- package/dist/core/prepare-migration.js +57 -0
- package/dist/core/prepare-migration.js.map +1 -0
- package/dist/core/prepare-reporting.d.ts +5 -0
- package/dist/core/prepare-reporting.js +106 -0
- package/dist/core/prepare-reporting.js.map +1 -0
- package/dist/core/prepare-routing.d.ts +12 -0
- package/dist/core/prepare-routing.js +182 -0
- package/dist/core/prepare-routing.js.map +1 -0
- package/dist/core/prepare-sync.d.ts +11 -22
- package/dist/core/prepare-sync.js +811 -260
- package/dist/core/prepare-sync.js.map +1 -1
- package/dist/core/prepare-utils.d.ts +6 -0
- package/dist/core/prepare-utils.js +35 -0
- package/dist/core/prepare-utils.js.map +1 -0
- package/dist/core/provider-policy.d.ts +26 -0
- package/dist/core/provider-policy.js +180 -0
- package/dist/core/provider-policy.js.map +1 -0
- package/dist/core/provider-readiness.d.ts +39 -0
- package/dist/core/provider-readiness.js +78 -0
- package/dist/core/provider-readiness.js.map +1 -0
- package/dist/core/source-adapter-normalization.d.ts +31 -0
- package/dist/core/source-adapter-normalization.js +235 -0
- package/dist/core/source-adapter-normalization.js.map +1 -0
- package/dist/core/source-snapshot-adapters.d.ts +3 -3
- package/dist/core/source-snapshot-adapters.js +2 -24
- package/dist/core/source-snapshot-adapters.js.map +1 -1
- package/dist/core/staffing-plan.d.ts +1 -0
- package/dist/core/staffing-plan.js +61 -3
- package/dist/core/staffing-plan.js.map +1 -1
- package/dist/core/stage-clarity-verification.js +21 -18
- package/dist/core/stage-clarity-verification.js.map +1 -1
- package/dist/core/stage-output-quality.d.ts +3 -0
- package/dist/core/stage-output-quality.js +122 -0
- package/dist/core/stage-output-quality.js.map +1 -0
- package/dist/core/stage-quality-contracts.d.ts +19 -0
- package/dist/core/stage-quality-contracts.js.map +1 -1
- package/dist/core/stage-quality-criteria.js +0 -37
- package/dist/core/stage-quality-criteria.js.map +1 -1
- package/dist/core/stage-quality-rendering.d.ts +4 -2
- package/dist/core/stage-quality-rendering.js +130 -12
- package/dist/core/stage-quality-rendering.js.map +1 -1
- package/dist/core/stage-quality.js +17 -6
- package/dist/core/stage-quality.js.map +1 -1
- package/dist/core/template-registry.js +12 -15
- package/dist/core/template-registry.js.map +1 -1
- package/dist/core/workspace-conformance.d.ts +39 -0
- package/dist/core/workspace-conformance.js +603 -0
- package/dist/core/workspace-conformance.js.map +1 -0
- package/package.json +2 -2
- package/schemas/providers.schema.json +74 -0
- package/schemas/zsk-config.schema.json +417 -1
- package/templates/project-init/.zsk/README.md +48 -0
- package/templates/project-init/.zsk/config.yaml +37 -33
- package/templates/project-init/.zsk/docs/CONFIG-SCHEMA.md +127 -0
- package/templates/project-init/.zsk/docs/PROJECT-CONFIG.md +26 -21
- package/templates/project-init/.zsk/docs/README.md +10 -0
- package/templates/project-init/.zsk/docs/SECURITY.md +34 -0
- package/templates/project-init/.zsk/docs/SYSTEM-SPEC.md +20 -8
- package/templates/project-init/.zsk/evidence/README.md +15 -0
- package/templates/project-init/.zsk/issues/README.md +10 -0
- package/templates/project-init/.zsk/modules/README.md +19 -0
- package/templates/project-init/.zsk/modules/index.md +9 -5
- package/templates/project-init/.zsk/raws/README.md +34 -0
- package/templates/project-init/.zsk/roles.yaml +36 -105
- package/templates/project-init/.zsk/templates/config.examples.yaml +83 -0
- package/templates/project-init/.zsk/templates/issue-card.md +23 -0
- package/templates/project-init/.zsk/templates/module/README.md +13 -0
- package/templates/project-init/.zsk/templates/module/design.md +22 -0
- package/templates/project-init/.zsk/templates/module/module.yaml +15 -0
- package/templates/project-init/.zsk/templates/module/proposal.md +20 -0
- package/templates/project-init/.zsk/templates/module/spec.md +22 -0
- package/templates/project-init/.zsk/templates/module/tasks.md +16 -0
- package/templates/project-init/.zsk/raws/index.md +0 -34
- package/templates/project-init/.zsk/raws/manifest.json +0 -4
- package/templates/project-init/.zsk/raws/prepare/backend/index.md +0 -4
- package/templates/project-init/.zsk/raws/prepare/design/index.md +0 -21
- package/templates/project-init/.zsk/raws/prepare/index.md +0 -37
- package/templates/project-init/.zsk/raws/prepare/product/index.md +0 -4
- package/templates/project-init/.zsk/raws/prepare/qa/index.md +0 -4
- package/templates/project-init/.zsk/raws/prepare/ux/index.md +0 -22
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
import { mkdir, readdir, writeFile } from "node:fs/promises";
|
|
2
|
+
import { dirname, join, relative, resolve } from "node:path";
|
|
3
|
+
import { exists, isRecord, readOptionalText, safeFileName } from "./prepare-utils.js";
|
|
4
|
+
import { scaffoldTemplate } from "./scaffolder.js";
|
|
5
|
+
import { getWorkspacePath } from "./workspace-layout.js";
|
|
6
|
+
export async function routePreparedResources(target, config, results) {
|
|
7
|
+
const routes = Array.isArray(config.routes) ? config.routes : [];
|
|
8
|
+
const routed = [];
|
|
9
|
+
for (const route of routes) {
|
|
10
|
+
const from = typeof route.from === "string" ? route.from.trim() : "";
|
|
11
|
+
const artifact = typeof route.to?.artifact === "string" ? route.to.artifact.trim() : "";
|
|
12
|
+
const moduleId = typeof route.to?.module === "string" ? route.to.module.trim() : undefined;
|
|
13
|
+
if (!from || !artifact) {
|
|
14
|
+
routed.push({ from: from || "<missing>", artifact: artifact || "<missing>", status: "skipped", reason: "route must declare from and to.artifact" });
|
|
15
|
+
continue;
|
|
16
|
+
}
|
|
17
|
+
const result = findRouteResult(results, from);
|
|
18
|
+
if (!result) {
|
|
19
|
+
routed.push({ from, artifact, module: moduleId, status: "skipped", reason: "resource was not selected in this sync run" });
|
|
20
|
+
continue;
|
|
21
|
+
}
|
|
22
|
+
if (!["materialized", "metadata-only"].includes(result.status)) {
|
|
23
|
+
routed.push({ from, artifact, module: moduleId, status: "blocked", reason: `resource sync state is ${result.status}: ${result.reason}` });
|
|
24
|
+
continue;
|
|
25
|
+
}
|
|
26
|
+
if (artifact !== "issues") {
|
|
27
|
+
routed.push({ from, artifact, module: moduleId, status: "skipped", reason: `route artifact ${artifact} is not implemented by prepare sync yet` });
|
|
28
|
+
continue;
|
|
29
|
+
}
|
|
30
|
+
if (!moduleId) {
|
|
31
|
+
routed.push({ from, artifact, status: "blocked", reason: "issues route requires to.module" });
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
const output = await writeModuleIssueSource(target, config, moduleId, from, result);
|
|
35
|
+
routed.push({ from, artifact, module: moduleId, status: "routed", output, reason: "module issue source block updated" });
|
|
36
|
+
}
|
|
37
|
+
return routed;
|
|
38
|
+
}
|
|
39
|
+
export function findRouteResult(results, from) {
|
|
40
|
+
return results.find((result) => result.sourceKey === from ||
|
|
41
|
+
result.sourcePath === from ||
|
|
42
|
+
result.sourcePath === `resources/${from}` ||
|
|
43
|
+
result.provider === from);
|
|
44
|
+
}
|
|
45
|
+
async function writeModuleIssueSource(target, config, moduleId, resourceId, result) {
|
|
46
|
+
const issueDir = resolve(target, getWorkspacePath(config, "moduleIssues", { module: moduleId }), safeFileName(resourceId));
|
|
47
|
+
const issueFile = join(issueDir, "issue.md");
|
|
48
|
+
await mkdir(issueDir, { recursive: true });
|
|
49
|
+
if (!(await exists(issueFile))) {
|
|
50
|
+
await scaffoldTemplate("issue/default", issueDir, {
|
|
51
|
+
variables: {
|
|
52
|
+
ISSUE_ID: safeFileName(resourceId),
|
|
53
|
+
ISSUE_SLUG: "prepared-resource",
|
|
54
|
+
ISSUE_TYPE: "Bug / Resource Sync",
|
|
55
|
+
ISSUE_SCOPE: "module",
|
|
56
|
+
MODULE_ID: moduleId,
|
|
57
|
+
SEVERITY: "P2",
|
|
58
|
+
DATE: new Date().toISOString().slice(0, 10),
|
|
59
|
+
},
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
await syncIssueAssets(issueDir, result);
|
|
63
|
+
const sourceBlock = renderIssueSourceBlock(resourceId, result);
|
|
64
|
+
const current = await readOptionalText(issueFile);
|
|
65
|
+
const next = current
|
|
66
|
+
? replaceOrAppendSourceBlock(current, sourceBlock)
|
|
67
|
+
: renderRoutedIssueCard(resourceId, sourceBlock);
|
|
68
|
+
await writeFile(issueFile, next, "utf8");
|
|
69
|
+
await refreshRoutedIssueIndex(dirname(issueDir));
|
|
70
|
+
return relative(target, issueFile);
|
|
71
|
+
}
|
|
72
|
+
function renderIssueSourceBlock(resourceId, result) {
|
|
73
|
+
const assetPaths = issueAssetPaths(result);
|
|
74
|
+
return [
|
|
75
|
+
"<!-- zsk:source:start -->",
|
|
76
|
+
"## Source",
|
|
77
|
+
"",
|
|
78
|
+
`- Resource: \`${resourceId}\``,
|
|
79
|
+
`- Source: \`${result.sourcePath}\``,
|
|
80
|
+
result.snapshot ? `- Snapshot: \`${result.snapshot}\`` : undefined,
|
|
81
|
+
result.snapshotHash ? `- Snapshot hash: \`${result.snapshotHash}\`` : undefined,
|
|
82
|
+
`- Sync status: ${result.status}`,
|
|
83
|
+
`- Reason: ${result.reason}`,
|
|
84
|
+
"",
|
|
85
|
+
"### Media / Attachments",
|
|
86
|
+
"",
|
|
87
|
+
assetPaths.length === 0
|
|
88
|
+
? "- No media attachments were detected for this sync result."
|
|
89
|
+
: assetPaths.map((asset) => `- \`${asset}\``).join("\n"),
|
|
90
|
+
"<!-- zsk:source:end -->",
|
|
91
|
+
].filter((line) => typeof line === "string").join("\n");
|
|
92
|
+
}
|
|
93
|
+
function replaceOrAppendSourceBlock(content, sourceBlock) {
|
|
94
|
+
const pattern = /<!-- zsk:source:start -->[\s\S]*?<!-- zsk:source:end -->/m;
|
|
95
|
+
if (pattern.test(content))
|
|
96
|
+
return content.replace(pattern, sourceBlock);
|
|
97
|
+
return `${content.trimEnd()}\n\n${sourceBlock}\n`;
|
|
98
|
+
}
|
|
99
|
+
function renderRoutedIssueCard(resourceId, sourceBlock) {
|
|
100
|
+
return [
|
|
101
|
+
`# ${resourceId}`,
|
|
102
|
+
"",
|
|
103
|
+
"## 问题类型",
|
|
104
|
+
"",
|
|
105
|
+
"Bug / Resource Sync",
|
|
106
|
+
"",
|
|
107
|
+
"## 状态",
|
|
108
|
+
"",
|
|
109
|
+
"- 状态:Open",
|
|
110
|
+
"- 复测:",
|
|
111
|
+
"- 确认时间:",
|
|
112
|
+
"",
|
|
113
|
+
sourceBlock,
|
|
114
|
+
"",
|
|
115
|
+
].join("\n");
|
|
116
|
+
}
|
|
117
|
+
async function refreshRoutedIssueIndex(moduleIssueDir) {
|
|
118
|
+
const dirs = (await readdir(moduleIssueDir, { withFileTypes: true }).catch(() => []))
|
|
119
|
+
.filter((entry) => entry.isDirectory())
|
|
120
|
+
.map((entry) => entry.name)
|
|
121
|
+
.sort((a, b) => a.localeCompare(b));
|
|
122
|
+
const rows = [];
|
|
123
|
+
for (const dir of dirs) {
|
|
124
|
+
const content = await readOptionalText(join(moduleIssueDir, dir, "issue.md"));
|
|
125
|
+
const status = content?.match(/-\s*状态:\s*(.+)/)?.[1]?.trim() ?? "Open";
|
|
126
|
+
rows.push(`| [${dir}](./${dir}/issue.md) | ${status} |`);
|
|
127
|
+
}
|
|
128
|
+
await writeFile(join(moduleIssueDir, "index.md"), [
|
|
129
|
+
"# Module Issue Index",
|
|
130
|
+
"",
|
|
131
|
+
"Generated by `zsk prepare sync` and `zsk issue` commands. Preserve issue cards as human-owned records.",
|
|
132
|
+
"",
|
|
133
|
+
"| Issue | Status |",
|
|
134
|
+
"| --- | --- |",
|
|
135
|
+
rows.join("\n") || "| | |",
|
|
136
|
+
"",
|
|
137
|
+
].join("\n"), "utf8");
|
|
138
|
+
}
|
|
139
|
+
async function syncIssueAssets(issueDir, result) {
|
|
140
|
+
await mkdir(join(issueDir, "assets"), { recursive: true });
|
|
141
|
+
await mkdir(join(issueDir, "debug-logs"), { recursive: true });
|
|
142
|
+
const assetPaths = issueAssetPaths(result);
|
|
143
|
+
const lines = [
|
|
144
|
+
"# Assets",
|
|
145
|
+
"",
|
|
146
|
+
assetPaths.length === 0
|
|
147
|
+
? "No media attachments were detected for this routed resource."
|
|
148
|
+
: assetPaths.map((asset) => `- Source asset: \`${asset}\``).join("\n"),
|
|
149
|
+
"",
|
|
150
|
+
];
|
|
151
|
+
await writeFile(join(issueDir, "assets", "index.md"), lines.join("\n"), "utf8");
|
|
152
|
+
const logsIndex = join(issueDir, "debug-logs", "index.md");
|
|
153
|
+
if (!(await exists(logsIndex))) {
|
|
154
|
+
await writeFile(logsIndex, "# Debug Logs\n\nNo debug logs captured by prepare sync.\n", "utf8");
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
function issueAssetPaths(result) {
|
|
158
|
+
const paths = new Set();
|
|
159
|
+
const assets = result.metadata?.assets;
|
|
160
|
+
if (Array.isArray(assets)) {
|
|
161
|
+
for (const asset of assets) {
|
|
162
|
+
if (typeof asset === "string" && asset.trim())
|
|
163
|
+
paths.add(asset.trim());
|
|
164
|
+
if (isRecord(asset)) {
|
|
165
|
+
for (const key of ["path", "file", "url", "href"]) {
|
|
166
|
+
const value = asset[key];
|
|
167
|
+
if (typeof value === "string" && value.trim())
|
|
168
|
+
paths.add(value.trim());
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
const assetPath = result.metadata?.assetPath;
|
|
174
|
+
if (typeof assetPath === "string" && assetPath.trim())
|
|
175
|
+
paths.add(assetPath.trim());
|
|
176
|
+
if (result.snapshot) {
|
|
177
|
+
const snapshotDir = dirname(result.snapshot);
|
|
178
|
+
paths.add(join(snapshotDir, "assets/"));
|
|
179
|
+
}
|
|
180
|
+
return [...paths];
|
|
181
|
+
}
|
|
182
|
+
//# sourceMappingURL=prepare-routing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prepare-routing.js","sourceRoot":"","sources":["../../src/core/prepare-routing.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
import { type ProjectConfig } from "./config.js";
|
|
2
|
+
import { type ProviderReadinessEvidence } from "./provider-readiness.js";
|
|
3
|
+
import { type PrepareSyncArtifacts } from "./prepare-artifacts.js";
|
|
4
|
+
import { type PrepareRouteResult } from "./prepare-routing.js";
|
|
2
5
|
import { type PrepareSyncOptions, type PrepareSyncResult, type PrepareSyncStatus } from "./source-snapshot-adapters.js";
|
|
3
6
|
export type { PrepareSyncOptions, PrepareSyncResult, PrepareSyncStatus };
|
|
4
|
-
export type PrepareSyncArtifacts
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
downstreamImpactPath: string;
|
|
10
|
-
authScriptPath: string;
|
|
11
|
-
authStatePath: string;
|
|
12
|
-
migrationPlanPath: string;
|
|
13
|
-
};
|
|
7
|
+
export type { PrepareSyncArtifacts } from "./prepare-artifacts.js";
|
|
8
|
+
export { createSyncRunId, resolvePrepareSyncArtifacts } from "./prepare-artifacts.js";
|
|
9
|
+
export { writeAuthLoginHelper } from "./prepare-auth-helper.js";
|
|
10
|
+
export { buildRawMigrationPlan } from "./prepare-migration.js";
|
|
11
|
+
export type { PrepareRouteResult } from "./prepare-routing.js";
|
|
14
12
|
export type PrepareSyncBundle = {
|
|
15
13
|
artifacts: PrepareSyncArtifacts;
|
|
16
14
|
results: PrepareSyncResult[];
|
|
15
|
+
routes: PrepareRouteResult[];
|
|
16
|
+
providerReadiness: ProviderReadinessEvidence[];
|
|
17
17
|
downstreamImpact: string;
|
|
18
|
+
syncReport: string;
|
|
18
19
|
};
|
|
19
20
|
export type PrepareAuthCheckStatus = "ready" | "reachable" | "missing-auth" | "blocked-auth" | "source-gap" | "failed";
|
|
20
21
|
export type PrepareAuthCheckResult = {
|
|
@@ -37,17 +38,5 @@ export type PrepareAuthCheckBundle = {
|
|
|
37
38
|
artifacts: PrepareSyncArtifacts;
|
|
38
39
|
results: PrepareAuthCheckResult[];
|
|
39
40
|
};
|
|
40
|
-
export declare function resolvePrepareSyncArtifacts(target: string, config: ProjectConfig, runId: string): PrepareSyncArtifacts;
|
|
41
41
|
export declare function syncPrepareSources(target: string, config: ProjectConfig, opts?: PrepareSyncOptions): Promise<PrepareSyncBundle>;
|
|
42
|
-
export declare function writeAuthLoginHelper(target: string, config: ProjectConfig, opts?: {
|
|
43
|
-
url?: string;
|
|
44
|
-
out?: string;
|
|
45
|
-
profile?: string;
|
|
46
|
-
runId?: string;
|
|
47
|
-
}): Promise<PrepareSyncArtifacts>;
|
|
48
42
|
export declare function checkPrepareAuth(target: string, config: ProjectConfig, opts?: PrepareSyncOptions): Promise<PrepareAuthCheckBundle>;
|
|
49
|
-
export declare function buildRawMigrationPlan(target: string, config: ProjectConfig, runId?: string): Promise<{
|
|
50
|
-
artifacts: PrepareSyncArtifacts;
|
|
51
|
-
content: string;
|
|
52
|
-
}>;
|
|
53
|
-
export declare function createSyncRunId(now?: Date): string;
|