qfai 0.4.7 → 0.5.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.
- package/README.md +10 -2
- package/assets/init/.qfai/README.md +3 -0
- package/assets/init/.qfai/promptpack/commands/implement.md +2 -0
- package/assets/init/.qfai/promptpack/commands/plan.md +2 -0
- package/assets/init/.qfai/promptpack/commands/review.md +1 -0
- package/assets/init/.qfai/promptpack/steering/traceability.md +6 -1
- package/assets/init/.qfai/prompts/README.md +16 -0
- package/assets/init/.qfai/prompts/qfai-classify-change.md +33 -0
- package/assets/init/.qfai/prompts/qfai-maintain-contracts.md +35 -0
- package/assets/init/.qfai/prompts/qfai-maintain-traceability.md +36 -0
- package/dist/cli/index.cjs +26 -7
- package/dist/cli/index.cjs.map +1 -1
- package/dist/cli/index.d.ts +0 -2
- package/dist/cli/index.mjs +26 -7
- package/dist/cli/index.mjs.map +1 -1
- package/dist/index.cjs +26 -7
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -0
- package/dist/index.d.ts +168 -2
- package/dist/index.mjs +26 -7
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -1
- package/dist/cli/commands/init.d.ts +0 -8
- package/dist/cli/commands/init.d.ts.map +0 -1
- package/dist/cli/commands/init.js +0 -30
- package/dist/cli/commands/init.js.map +0 -1
- package/dist/cli/commands/report.d.ts +0 -7
- package/dist/cli/commands/report.d.ts.map +0 -1
- package/dist/cli/commands/report.js +0 -108
- package/dist/cli/commands/report.js.map +0 -1
- package/dist/cli/commands/validate.d.ts +0 -9
- package/dist/cli/commands/validate.d.ts.map +0 -1
- package/dist/cli/commands/validate.js +0 -57
- package/dist/cli/commands/validate.js.map +0 -1
- package/dist/cli/index.d.ts.map +0 -1
- package/dist/cli/index.js +0 -7
- package/dist/cli/index.js.map +0 -1
- package/dist/cli/lib/args.d.ts +0 -18
- package/dist/cli/lib/args.d.ts.map +0 -1
- package/dist/cli/lib/args.js +0 -98
- package/dist/cli/lib/args.js.map +0 -1
- package/dist/cli/lib/assets.d.ts +0 -2
- package/dist/cli/lib/assets.d.ts.map +0 -1
- package/dist/cli/lib/assets.js +0 -24
- package/dist/cli/lib/assets.js.map +0 -1
- package/dist/cli/lib/failOn.d.ts +0 -5
- package/dist/cli/lib/failOn.d.ts.map +0 -1
- package/dist/cli/lib/failOn.js +0 -10
- package/dist/cli/lib/failOn.js.map +0 -1
- package/dist/cli/lib/fs.d.ts +0 -11
- package/dist/cli/lib/fs.d.ts.map +0 -1
- package/dist/cli/lib/fs.js +0 -91
- package/dist/cli/lib/fs.js.map +0 -1
- package/dist/cli/lib/logger.d.ts +0 -4
- package/dist/cli/lib/logger.d.ts.map +0 -1
- package/dist/cli/lib/logger.js +0 -10
- package/dist/cli/lib/logger.js.map +0 -1
- package/dist/cli/main.d.ts +0 -2
- package/dist/cli/main.d.ts.map +0 -1
- package/dist/cli/main.js +0 -66
- package/dist/cli/main.js.map +0 -1
- package/dist/core/config.d.ts +0 -47
- package/dist/core/config.d.ts.map +0 -1
- package/dist/core/config.js +0 -224
- package/dist/core/config.js.map +0 -1
- package/dist/core/contractIndex.d.ts +0 -12
- package/dist/core/contractIndex.d.ts.map +0 -1
- package/dist/core/contractIndex.js +0 -38
- package/dist/core/contractIndex.js.map +0 -1
- package/dist/core/contracts.d.ts +0 -5
- package/dist/core/contracts.d.ts.map +0 -1
- package/dist/core/contracts.js +0 -42
- package/dist/core/contracts.js.map +0 -1
- package/dist/core/contractsDecl.d.ts +0 -3
- package/dist/core/contractsDecl.d.ts.map +0 -1
- package/dist/core/contractsDecl.js +0 -19
- package/dist/core/contractsDecl.js.map +0 -1
- package/dist/core/discovery.d.ts +0 -14
- package/dist/core/discovery.d.ts.map +0 -1
- package/dist/core/discovery.js +0 -55
- package/dist/core/discovery.js.map +0 -1
- package/dist/core/fs.d.ts +0 -11
- package/dist/core/fs.d.ts.map +0 -1
- package/dist/core/fs.js +0 -68
- package/dist/core/fs.js.map +0 -1
- package/dist/core/gherkin/parse.d.ts +0 -7
- package/dist/core/gherkin/parse.d.ts.map +0 -1
- package/dist/core/gherkin/parse.js +0 -25
- package/dist/core/gherkin/parse.js.map +0 -1
- package/dist/core/ids.d.ts +0 -6
- package/dist/core/ids.d.ts.map +0 -1
- package/dist/core/ids.js +0 -52
- package/dist/core/ids.js.map +0 -1
- package/dist/core/index.d.ts +0 -13
- package/dist/core/index.d.ts.map +0 -1
- package/dist/core/index.js +0 -13
- package/dist/core/index.js.map +0 -1
- package/dist/core/parse/adr.d.ts +0 -13
- package/dist/core/parse/adr.d.ts.map +0 -1
- package/dist/core/parse/adr.js +0 -33
- package/dist/core/parse/adr.js.map +0 -1
- package/dist/core/parse/gherkin.d.ts +0 -12
- package/dist/core/parse/gherkin.d.ts.map +0 -1
- package/dist/core/parse/gherkin.js +0 -22
- package/dist/core/parse/gherkin.js.map +0 -1
- package/dist/core/parse/markdown.d.ts +0 -14
- package/dist/core/parse/markdown.d.ts.map +0 -1
- package/dist/core/parse/markdown.js +0 -45
- package/dist/core/parse/markdown.js.map +0 -1
- package/dist/core/parse/spec.d.ts +0 -36
- package/dist/core/parse/spec.d.ts.map +0 -1
- package/dist/core/parse/spec.js +0 -123
- package/dist/core/parse/spec.js.map +0 -1
- package/dist/core/report.d.ts +0 -55
- package/dist/core/report.d.ts.map +0 -1
- package/dist/core/report.js +0 -393
- package/dist/core/report.js.map +0 -1
- package/dist/core/scenarioModel.d.ts +0 -33
- package/dist/core/scenarioModel.d.ts.map +0 -1
- package/dist/core/scenarioModel.js +0 -128
- package/dist/core/scenarioModel.js.map +0 -1
- package/dist/core/specLayout.d.ts +0 -8
- package/dist/core/specLayout.d.ts.map +0 -1
- package/dist/core/specLayout.js +0 -36
- package/dist/core/specLayout.js.map +0 -1
- package/dist/core/traceability.d.ts +0 -26
- package/dist/core/traceability.d.ts.map +0 -1
- package/dist/core/traceability.js +0 -157
- package/dist/core/traceability.js.map +0 -1
- package/dist/core/types.d.ts +0 -31
- package/dist/core/types.d.ts.map +0 -1
- package/dist/core/types.js +0 -2
- package/dist/core/types.js.map +0 -1
- package/dist/core/validate.d.ts +0 -4
- package/dist/core/validate.d.ts.map +0 -1
- package/dist/core/validate.js +0 -45
- package/dist/core/validate.js.map +0 -1
- package/dist/core/validators/contracts.d.ts +0 -5
- package/dist/core/validators/contracts.d.ts.map +0 -1
- package/dist/core/validators/contracts.js +0 -189
- package/dist/core/validators/contracts.js.map +0 -1
- package/dist/core/validators/delta.d.ts +0 -4
- package/dist/core/validators/delta.d.ts.map +0 -1
- package/dist/core/validators/delta.js +0 -68
- package/dist/core/validators/delta.js.map +0 -1
- package/dist/core/validators/ids.d.ts +0 -4
- package/dist/core/validators/ids.d.ts.map +0 -1
- package/dist/core/validators/ids.js +0 -88
- package/dist/core/validators/ids.js.map +0 -1
- package/dist/core/validators/scenario.d.ts +0 -5
- package/dist/core/validators/scenario.d.ts.map +0 -1
- package/dist/core/validators/scenario.js +0 -127
- package/dist/core/validators/scenario.js.map +0 -1
- package/dist/core/validators/spec.d.ts +0 -5
- package/dist/core/validators/spec.d.ts.map +0 -1
- package/dist/core/validators/spec.js +0 -94
- package/dist/core/validators/spec.js.map +0 -1
- package/dist/core/validators/traceability.d.ts +0 -4
- package/dist/core/validators/traceability.d.ts.map +0 -1
- package/dist/core/validators/traceability.js +0 -222
- package/dist/core/validators/traceability.js.map +0 -1
- package/dist/core/version.d.ts +0 -2
- package/dist/core/version.d.ts.map +0 -1
- package/dist/core/version.js +0 -25
- package/dist/core/version.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -2
- package/dist/index.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
package/dist/cli/index.d.ts
CHANGED
package/dist/cli/index.mjs
CHANGED
|
@@ -1261,8 +1261,8 @@ import { readFile as readFile4 } from "fs/promises";
|
|
|
1261
1261
|
import path9 from "path";
|
|
1262
1262
|
import { fileURLToPath as fileURLToPath2 } from "url";
|
|
1263
1263
|
async function resolveToolVersion() {
|
|
1264
|
-
if ("0.
|
|
1265
|
-
return "0.
|
|
1264
|
+
if ("0.5.0".length > 0) {
|
|
1265
|
+
return "0.5.0";
|
|
1266
1266
|
}
|
|
1267
1267
|
try {
|
|
1268
1268
|
const packagePath = resolvePackageJsonPath();
|
|
@@ -2605,8 +2605,11 @@ async function createReportData(root, validation, configResult) {
|
|
|
2605
2605
|
db: dbFiles
|
|
2606
2606
|
} = await collectContractFiles(uiRoot, apiRoot, dbRoot);
|
|
2607
2607
|
const contractIndex = await buildContractIndex(root, config);
|
|
2608
|
-
const specContractRefs = await collectSpecContractRefs(specFiles);
|
|
2609
2608
|
const contractIdList = Array.from(contractIndex.ids);
|
|
2609
|
+
const specContractRefs = await collectSpecContractRefs(
|
|
2610
|
+
specFiles,
|
|
2611
|
+
contractIdList
|
|
2612
|
+
);
|
|
2610
2613
|
const referencedContracts = /* @__PURE__ */ new Set();
|
|
2611
2614
|
for (const ids of specContractRefs.specToContractIds.values()) {
|
|
2612
2615
|
ids.forEach((id) => referencedContracts.add(id));
|
|
@@ -2687,6 +2690,7 @@ async function createReportData(root, validation, configResult) {
|
|
|
2687
2690
|
},
|
|
2688
2691
|
specs: {
|
|
2689
2692
|
contractRefMissing: specContractRefs.missingRefSpecs.size,
|
|
2693
|
+
missingRefSpecs: toSortedArray2(specContractRefs.missingRefSpecs),
|
|
2690
2694
|
specToContractIds: specToContractIdsRecord
|
|
2691
2695
|
}
|
|
2692
2696
|
},
|
|
@@ -2769,6 +2773,16 @@ function formatReportMarkdown(data) {
|
|
|
2769
2773
|
}
|
|
2770
2774
|
}
|
|
2771
2775
|
lines.push("");
|
|
2776
|
+
lines.push("## Spec\u3067 contract-ref \u672A\u5BA3\u8A00");
|
|
2777
|
+
const missingRefSpecs = data.traceability.specs.missingRefSpecs;
|
|
2778
|
+
if (missingRefSpecs.length === 0) {
|
|
2779
|
+
lines.push("- (none)");
|
|
2780
|
+
} else {
|
|
2781
|
+
for (const specId of missingRefSpecs) {
|
|
2782
|
+
lines.push(`- ${specId}`);
|
|
2783
|
+
}
|
|
2784
|
+
}
|
|
2785
|
+
lines.push("");
|
|
2772
2786
|
lines.push("## SC\u30AB\u30D0\u30EC\u30C3\u30B8");
|
|
2773
2787
|
lines.push(`- total: ${data.traceability.sc.total}`);
|
|
2774
2788
|
lines.push(`- covered: ${data.traceability.sc.covered}`);
|
|
@@ -2872,10 +2886,13 @@ function formatReportMarkdown(data) {
|
|
|
2872
2886
|
function formatReportJson(data) {
|
|
2873
2887
|
return JSON.stringify(data, null, 2);
|
|
2874
2888
|
}
|
|
2875
|
-
async function collectSpecContractRefs(specFiles) {
|
|
2889
|
+
async function collectSpecContractRefs(specFiles, contractIdList) {
|
|
2876
2890
|
const specToContractIds = /* @__PURE__ */ new Map();
|
|
2877
2891
|
const idToSpecs = /* @__PURE__ */ new Map();
|
|
2878
2892
|
const missingRefSpecs = /* @__PURE__ */ new Set();
|
|
2893
|
+
for (const contractId of contractIdList) {
|
|
2894
|
+
idToSpecs.set(contractId, /* @__PURE__ */ new Set());
|
|
2895
|
+
}
|
|
2879
2896
|
for (const file of specFiles) {
|
|
2880
2897
|
const text = await readFile11(file, "utf-8");
|
|
2881
2898
|
const parsed = parseSpec(text, file);
|
|
@@ -2883,13 +2900,15 @@ async function collectSpecContractRefs(specFiles) {
|
|
|
2883
2900
|
const refs = parsed.contractRefs;
|
|
2884
2901
|
if (refs.lines.length === 0) {
|
|
2885
2902
|
missingRefSpecs.add(specKey);
|
|
2903
|
+
continue;
|
|
2886
2904
|
}
|
|
2887
2905
|
const currentContracts = specToContractIds.get(specKey) ?? /* @__PURE__ */ new Set();
|
|
2888
2906
|
for (const id of refs.ids) {
|
|
2889
2907
|
currentContracts.add(id);
|
|
2890
|
-
const specs = idToSpecs.get(id)
|
|
2891
|
-
specs
|
|
2892
|
-
|
|
2908
|
+
const specs = idToSpecs.get(id);
|
|
2909
|
+
if (specs) {
|
|
2910
|
+
specs.add(specKey);
|
|
2911
|
+
}
|
|
2893
2912
|
}
|
|
2894
2913
|
specToContractIds.set(specKey, currentContracts);
|
|
2895
2914
|
}
|