audit-tools 0.28.1 → 0.28.3
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/audit/cli/auditStep.d.ts +12 -1
- package/dist/audit/cli/auditStep.d.ts.map +1 -1
- package/dist/audit/cli/auditStep.js +1 -0
- package/dist/audit/cli/auditStep.js.map +1 -1
- package/dist/audit/cli/confirmIntentStep.d.ts.map +1 -1
- package/dist/audit/cli/confirmIntentStep.js +46 -35
- package/dist/audit/cli/confirmIntentStep.js.map +1 -1
- package/dist/audit/cli/dispatch/packetFilter.d.ts +1 -1
- package/dist/audit/cli/nextStepHelpers.d.ts.map +1 -1
- package/dist/audit/cli/nextStepHelpers.js +5 -1
- package/dist/audit/cli/nextStepHelpers.js.map +1 -1
- package/dist/audit/cli/steps.d.ts +2 -2
- package/dist/audit/contracts/workerSchemas.d.ts +14 -14
- package/dist/audit/contracts/wrapperResponse.d.ts +4 -4
- package/dist/audit/extractors/analyzers/types.d.ts +3 -1
- package/dist/audit/extractors/analyzers/types.d.ts.map +1 -1
- package/dist/audit/extractors/analyzers/types.js +10 -1
- package/dist/audit/extractors/analyzers/types.js.map +1 -1
- package/dist/audit/orchestrator/advanceTypes.d.ts +8 -0
- package/dist/audit/orchestrator/advanceTypes.d.ts.map +1 -1
- package/dist/audit/orchestrator/executorRunners.d.ts.map +1 -1
- package/dist/audit/orchestrator/executorRunners.js +1 -1
- package/dist/audit/orchestrator/executorRunners.js.map +1 -1
- package/dist/audit/orchestrator/intentCheckpointExecutor.d.ts +19 -8
- package/dist/audit/orchestrator/intentCheckpointExecutor.d.ts.map +1 -1
- package/dist/audit/orchestrator/intentCheckpointExecutor.js +64 -40
- package/dist/audit/orchestrator/intentCheckpointExecutor.js.map +1 -1
- package/dist/audit/orchestrator/requeueCommand.d.ts +1 -1
- package/dist/audit/reporting/synthesis.d.ts.map +1 -1
- package/dist/audit/reporting/synthesis.js +91 -26
- package/dist/audit/reporting/synthesis.js.map +1 -1
- package/dist/audit/types/analyzerCapability.d.ts +69 -12
- package/dist/audit/types/analyzerCapability.d.ts.map +1 -1
- package/dist/audit/types/analyzerCapability.js +25 -1
- package/dist/audit/types/analyzerCapability.js.map +1 -1
- package/dist/audit/types/auditScope.d.ts +51 -12
- package/dist/audit/types/auditScope.d.ts.map +1 -1
- package/dist/audit/types/auditScope.js +49 -1
- package/dist/audit/types/auditScope.js.map +1 -1
- package/dist/audit/types/auditState.d.ts +60 -11
- package/dist/audit/types/auditState.d.ts.map +1 -1
- package/dist/audit/types/auditState.js +24 -1
- package/dist/audit/types/auditState.js.map +1 -1
- package/dist/audit/types/flowCoverage.d.ts +65 -8
- package/dist/audit/types/flowCoverage.d.ts.map +1 -1
- package/dist/audit/types/flowCoverage.js +21 -0
- package/dist/audit/types/flowCoverage.js.map +1 -1
- package/dist/audit/types/reviewPlanning.d.ts +2 -2
- package/dist/audit/types.d.ts +12 -12
- package/dist/remediate/contractPipeline/artifactStore.d.ts +7 -0
- package/dist/remediate/contractPipeline/artifactStore.d.ts.map +1 -1
- package/dist/remediate/contractPipeline/artifactStore.js +13 -1
- package/dist/remediate/contractPipeline/artifactStore.js.map +1 -1
- package/dist/remediate/contractPipeline/semanticProjection.d.ts.map +1 -1
- package/dist/remediate/contractPipeline/semanticProjection.js +36 -14
- package/dist/remediate/contractPipeline/semanticProjection.js.map +1 -1
- package/dist/remediate/index.d.ts.map +1 -1
- package/dist/remediate/index.js +7 -3
- package/dist/remediate/index.js.map +1 -1
- package/dist/remediate/phases/close.d.ts.map +1 -1
- package/dist/remediate/phases/close.js +27 -8
- package/dist/remediate/phases/close.js.map +1 -1
- package/dist/remediate/state/itemStatus.d.ts +5 -3
- package/dist/remediate/state/itemStatus.d.ts.map +1 -1
- package/dist/remediate/state/itemStatus.js +7 -3
- package/dist/remediate/state/itemStatus.js.map +1 -1
- package/dist/remediate/state/types.d.ts +7 -2
- package/dist/remediate/state/types.d.ts.map +1 -1
- package/dist/remediate/state/types.js +7 -0
- package/dist/remediate/state/types.js.map +1 -1
- package/dist/remediate/steps/contractPipeline.d.ts.map +1 -1
- package/dist/remediate/steps/contractPipeline.js +1 -7
- package/dist/remediate/steps/contractPipeline.js.map +1 -1
- package/dist/remediate/steps/dispatch.d.ts +109 -1
- package/dist/remediate/steps/dispatch.d.ts.map +1 -1
- package/dist/remediate/steps/dispatch.js +370 -55
- package/dist/remediate/steps/dispatch.js.map +1 -1
- package/dist/remediate/steps/nextStep.d.ts.map +1 -1
- package/dist/remediate/steps/nextStep.js +215 -21
- package/dist/remediate/steps/nextStep.js.map +1 -1
- package/dist/remediate/steps/prompts.d.ts +12 -0
- package/dist/remediate/steps/prompts.d.ts.map +1 -1
- package/dist/remediate/steps/prompts.js +61 -1
- package/dist/remediate/steps/prompts.js.map +1 -1
- package/dist/remediate/steps/rollingSession.d.ts.map +1 -1
- package/dist/remediate/steps/rollingSession.js +59 -7
- package/dist/remediate/steps/rollingSession.js.map +1 -1
- package/dist/remediate/steps/types.d.ts +10 -1
- package/dist/remediate/steps/types.d.ts.map +1 -1
- package/dist/remediate/steps/types.js.map +1 -1
- package/dist/remediate/validation/artifacts.d.ts.map +1 -1
- package/dist/remediate/validation/artifacts.js +5 -2
- package/dist/remediate/validation/artifacts.js.map +1 -1
- package/dist/remediate/validation/contractPipelineGates.d.ts.map +1 -1
- package/dist/remediate/validation/contractPipelineGates.js +45 -8
- package/dist/remediate/validation/contractPipelineGates.js.map +1 -1
- package/dist/shared/engine/obligationEngine.d.ts +16 -5
- package/dist/shared/engine/obligationEngine.d.ts.map +1 -1
- package/dist/shared/engine/obligationEngine.js +21 -0
- package/dist/shared/engine/obligationEngine.js.map +1 -1
- package/dist/shared/index.d.ts +5 -3
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/index.js +5 -3
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/intent/freeFormIntentInterpreter.d.ts.map +1 -1
- package/dist/shared/intent/freeFormIntentInterpreter.js +5 -1
- package/dist/shared/intent/freeFormIntentInterpreter.js.map +1 -1
- package/dist/shared/providers/openAiCompatibleProvider.d.ts +5 -2
- package/dist/shared/providers/openAiCompatibleProvider.d.ts.map +1 -1
- package/dist/shared/providers/openAiCompatibleProvider.js +86 -25
- package/dist/shared/providers/openAiCompatibleProvider.js.map +1 -1
- package/dist/shared/types/intentCheckpoint.d.ts +151 -34
- package/dist/shared/types/intentCheckpoint.d.ts.map +1 -1
- package/dist/shared/types/intentCheckpoint.js +113 -1
- package/dist/shared/types/intentCheckpoint.js.map +1 -1
- package/dist/shared/types/remediationOutcome.d.ts +203 -24
- package/dist/shared/types/remediationOutcome.d.ts.map +1 -1
- package/dist/shared/types/remediationOutcome.js +65 -1
- package/dist/shared/types/remediationOutcome.js.map +1 -1
- package/dist/shared/types/sessionConfig.d.ts +8 -2
- package/dist/shared/types/sessionConfig.d.ts.map +1 -1
- package/dist/shared/types/sessionConfig.js +2 -0
- package/dist/shared/types/sessionConfig.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,2 +1,25 @@
|
|
|
1
|
-
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { ObligationSchema } from "audit-tools/shared";
|
|
3
|
+
export const AuditTopLevelStatusSchema = z.enum([
|
|
4
|
+
"not_started",
|
|
5
|
+
"active",
|
|
6
|
+
"blocked",
|
|
7
|
+
"complete",
|
|
8
|
+
]);
|
|
9
|
+
export const AuditObligationSchema = ObligationSchema;
|
|
10
|
+
export const AuditStateSchema = z
|
|
11
|
+
.object({
|
|
12
|
+
status: AuditTopLevelStatusSchema,
|
|
13
|
+
last_executor: z.string().optional(),
|
|
14
|
+
last_obligation: z.string().optional(),
|
|
15
|
+
blockers: z.array(z.string()).optional(),
|
|
16
|
+
obligations: z.array(AuditObligationSchema),
|
|
17
|
+
/**
|
|
18
|
+
* Set when the rolling dispatch engine fires a partial-completion terminal
|
|
19
|
+
* (empty pool or livelock). Allows synthesis to proceed on partial coverage
|
|
20
|
+
* without hard-gating on `audit_tasks_completed`.
|
|
21
|
+
*/
|
|
22
|
+
partial_coverage_terminal: z.boolean().optional(),
|
|
23
|
+
})
|
|
24
|
+
.strict();
|
|
2
25
|
//# sourceMappingURL=auditState.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auditState.js","sourceRoot":"","sources":["../../../src/audit/types/auditState.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"auditState.js","sourceRoot":"","sources":["../../../src/audit/types/auditState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,IAAI,CAAC;IAC9C,aAAa;IACb,QAAQ;IACR,SAAS;IACT,UAAU;CACX,CAAC,CAAC;AAQH,MAAM,CAAC,MAAM,qBAAqB,GAAG,gBAAgB,CAAC;AAGtD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC;KAC9B,MAAM,CAAC;IACN,MAAM,EAAE,yBAAyB;IACjC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACxC,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC;IAC3C;;;;OAIG;IACH,yBAAyB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAClD,CAAC;KACD,MAAM,EAAE,CAAC"}
|
|
@@ -1,16 +1,73 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
1
2
|
export declare const FLOW_COVERAGE_STATUSES: readonly ["pending", "partial", "complete"];
|
|
2
|
-
export
|
|
3
|
+
export declare const FlowCoverageStatusSchema: z.ZodEnum<["pending", "partial", "complete"]>;
|
|
4
|
+
export type FlowCoverageStatus = z.infer<typeof FlowCoverageStatusSchema>;
|
|
3
5
|
/** Coverage for one critical flow across the lenses the audit expects to see. */
|
|
4
|
-
export
|
|
6
|
+
export declare const FlowCoverageRecordSchema: z.ZodObject<{
|
|
7
|
+
flow_id: z.ZodString;
|
|
8
|
+
paths: z.ZodArray<z.ZodString, "many">;
|
|
9
|
+
required_lenses: z.ZodArray<z.ZodString, "many">;
|
|
10
|
+
completed_lenses: z.ZodArray<z.ZodString, "many">;
|
|
11
|
+
status: z.ZodEnum<["pending", "partial", "complete"]>;
|
|
12
|
+
notes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
13
|
+
}, "strict", z.ZodTypeAny, {
|
|
14
|
+
status: "partial" | "complete" | "pending";
|
|
15
|
+
paths: string[];
|
|
16
|
+
required_lenses: string[];
|
|
17
|
+
completed_lenses: string[];
|
|
5
18
|
flow_id: string;
|
|
19
|
+
notes?: string[] | undefined;
|
|
20
|
+
}, {
|
|
21
|
+
status: "partial" | "complete" | "pending";
|
|
6
22
|
paths: string[];
|
|
7
23
|
required_lenses: string[];
|
|
8
24
|
completed_lenses: string[];
|
|
9
|
-
|
|
10
|
-
notes?: string[];
|
|
11
|
-
}
|
|
25
|
+
flow_id: string;
|
|
26
|
+
notes?: string[] | undefined;
|
|
27
|
+
}>;
|
|
28
|
+
export type FlowCoverageRecord = z.infer<typeof FlowCoverageRecordSchema>;
|
|
12
29
|
/** Aggregated flow coverage written beside the critical flow manifest. */
|
|
13
|
-
export
|
|
14
|
-
flows:
|
|
15
|
-
|
|
30
|
+
export declare const FlowCoverageManifestSchema: z.ZodObject<{
|
|
31
|
+
flows: z.ZodArray<z.ZodObject<{
|
|
32
|
+
flow_id: z.ZodString;
|
|
33
|
+
paths: z.ZodArray<z.ZodString, "many">;
|
|
34
|
+
required_lenses: z.ZodArray<z.ZodString, "many">;
|
|
35
|
+
completed_lenses: z.ZodArray<z.ZodString, "many">;
|
|
36
|
+
status: z.ZodEnum<["pending", "partial", "complete"]>;
|
|
37
|
+
notes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
38
|
+
}, "strict", z.ZodTypeAny, {
|
|
39
|
+
status: "partial" | "complete" | "pending";
|
|
40
|
+
paths: string[];
|
|
41
|
+
required_lenses: string[];
|
|
42
|
+
completed_lenses: string[];
|
|
43
|
+
flow_id: string;
|
|
44
|
+
notes?: string[] | undefined;
|
|
45
|
+
}, {
|
|
46
|
+
status: "partial" | "complete" | "pending";
|
|
47
|
+
paths: string[];
|
|
48
|
+
required_lenses: string[];
|
|
49
|
+
completed_lenses: string[];
|
|
50
|
+
flow_id: string;
|
|
51
|
+
notes?: string[] | undefined;
|
|
52
|
+
}>, "many">;
|
|
53
|
+
}, "strict", z.ZodTypeAny, {
|
|
54
|
+
flows: {
|
|
55
|
+
status: "partial" | "complete" | "pending";
|
|
56
|
+
paths: string[];
|
|
57
|
+
required_lenses: string[];
|
|
58
|
+
completed_lenses: string[];
|
|
59
|
+
flow_id: string;
|
|
60
|
+
notes?: string[] | undefined;
|
|
61
|
+
}[];
|
|
62
|
+
}, {
|
|
63
|
+
flows: {
|
|
64
|
+
status: "partial" | "complete" | "pending";
|
|
65
|
+
paths: string[];
|
|
66
|
+
required_lenses: string[];
|
|
67
|
+
completed_lenses: string[];
|
|
68
|
+
flow_id: string;
|
|
69
|
+
notes?: string[] | undefined;
|
|
70
|
+
}[];
|
|
71
|
+
}>;
|
|
72
|
+
export type FlowCoverageManifest = z.infer<typeof FlowCoverageManifestSchema>;
|
|
16
73
|
//# sourceMappingURL=flowCoverage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flowCoverage.d.ts","sourceRoot":"","sources":["../../../src/audit/types/flowCoverage.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB,6CAIzB,CAAC;AACX,MAAM,MAAM,kBAAkB,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"flowCoverage.d.ts","sourceRoot":"","sources":["../../../src/audit/types/flowCoverage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,sBAAsB,6CAIzB,CAAC;AACX,eAAO,MAAM,wBAAwB,+CAAiC,CAAC;AACvE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,iFAAiF;AACjF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;EAW1B,CAAC;AACZ,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,0EAA0E;AAC1E,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAI5B,CAAC;AACZ,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC"}
|
|
@@ -1,6 +1,27 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
1
2
|
export const FLOW_COVERAGE_STATUSES = [
|
|
2
3
|
"pending",
|
|
3
4
|
"partial",
|
|
4
5
|
"complete",
|
|
5
6
|
];
|
|
7
|
+
export const FlowCoverageStatusSchema = z.enum(FLOW_COVERAGE_STATUSES);
|
|
8
|
+
/** Coverage for one critical flow across the lenses the audit expects to see. */
|
|
9
|
+
export const FlowCoverageRecordSchema = z
|
|
10
|
+
.object({
|
|
11
|
+
flow_id: z.string(),
|
|
12
|
+
paths: z.array(z.string()),
|
|
13
|
+
// Producer emits custom lens names too, so these stay free strings (the old
|
|
14
|
+
// JSON schema's canonical-lens $ref was over-strict).
|
|
15
|
+
required_lenses: z.array(z.string()),
|
|
16
|
+
completed_lenses: z.array(z.string()),
|
|
17
|
+
status: FlowCoverageStatusSchema,
|
|
18
|
+
notes: z.array(z.string()).optional(),
|
|
19
|
+
})
|
|
20
|
+
.strict();
|
|
21
|
+
/** Aggregated flow coverage written beside the critical flow manifest. */
|
|
22
|
+
export const FlowCoverageManifestSchema = z
|
|
23
|
+
.object({
|
|
24
|
+
flows: z.array(FlowCoverageRecordSchema),
|
|
25
|
+
})
|
|
26
|
+
.strict();
|
|
6
27
|
//# sourceMappingURL=flowCoverage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flowCoverage.js","sourceRoot":"","sources":["../../../src/audit/types/flowCoverage.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,SAAS;IACT,SAAS;IACT,UAAU;CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"flowCoverage.js","sourceRoot":"","sources":["../../../src/audit/types/flowCoverage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,SAAS;IACT,SAAS;IACT,UAAU;CACF,CAAC;AACX,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;AAGvE,iFAAiF;AACjF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC;KACtC,MAAM,CAAC;IACN,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC1B,4EAA4E;IAC5E,sDAAsD;IACtD,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACpC,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACrC,MAAM,EAAE,wBAAwB;IAChC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CACtC,CAAC;KACD,MAAM,EAAE,CAAC;AAGZ,0EAA0E;AAC1E,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC;KACxC,MAAM,CAAC;IACN,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC;CACzC,CAAC;KACD,MAAM,EAAE,CAAC"}
|
|
@@ -127,6 +127,7 @@ export declare const ReviewPacketSchema: z.ZodObject<{
|
|
|
127
127
|
}, "strip", z.ZodTypeAny, {
|
|
128
128
|
unit_ids: string[];
|
|
129
129
|
rationale: string;
|
|
130
|
+
lenses: string[];
|
|
130
131
|
file_paths: string[];
|
|
131
132
|
file_line_counts: Record<string, number>;
|
|
132
133
|
priority: "high" | "low" | "medium";
|
|
@@ -134,7 +135,6 @@ export declare const ReviewPacketSchema: z.ZodObject<{
|
|
|
134
135
|
packet_id: string;
|
|
135
136
|
task_ids: string[];
|
|
136
137
|
pass_ids: string[];
|
|
137
|
-
lenses: string[];
|
|
138
138
|
quality: {
|
|
139
139
|
cohesion_score: number;
|
|
140
140
|
internal_edge_count: number;
|
|
@@ -156,6 +156,7 @@ export declare const ReviewPacketSchema: z.ZodObject<{
|
|
|
156
156
|
}, {
|
|
157
157
|
unit_ids: string[];
|
|
158
158
|
rationale: string;
|
|
159
|
+
lenses: string[];
|
|
159
160
|
file_paths: string[];
|
|
160
161
|
file_line_counts: Record<string, number>;
|
|
161
162
|
priority: "high" | "low" | "medium";
|
|
@@ -163,7 +164,6 @@ export declare const ReviewPacketSchema: z.ZodObject<{
|
|
|
163
164
|
packet_id: string;
|
|
164
165
|
task_ids: string[];
|
|
165
166
|
pass_ids: string[];
|
|
166
|
-
lenses: string[];
|
|
167
167
|
quality: {
|
|
168
168
|
cohesion_score: number;
|
|
169
169
|
internal_edge_count: number;
|
package/dist/audit/types.d.ts
CHANGED
|
@@ -323,6 +323,7 @@ export declare const AuditTaskSchema: z.ZodObject<{
|
|
|
323
323
|
pass_id: string;
|
|
324
324
|
file_paths: string[];
|
|
325
325
|
status?: "complete" | "pending" | undefined;
|
|
326
|
+
completed_at?: string | undefined;
|
|
326
327
|
file_line_counts?: Record<string, number> | undefined;
|
|
327
328
|
line_ranges?: {
|
|
328
329
|
path: string;
|
|
@@ -334,7 +335,6 @@ export declare const AuditTaskSchema: z.ZodObject<{
|
|
|
334
335
|
token_estimate?: number | undefined;
|
|
335
336
|
risk_estimate?: number | undefined;
|
|
336
337
|
tags?: string[] | undefined;
|
|
337
|
-
completed_at?: string | undefined;
|
|
338
338
|
completion_reason?: string | undefined;
|
|
339
339
|
}, {
|
|
340
340
|
unit_id: string;
|
|
@@ -344,6 +344,7 @@ export declare const AuditTaskSchema: z.ZodObject<{
|
|
|
344
344
|
pass_id: string;
|
|
345
345
|
file_paths: string[];
|
|
346
346
|
status?: "complete" | "pending" | undefined;
|
|
347
|
+
completed_at?: string | undefined;
|
|
347
348
|
file_line_counts?: Record<string, number> | undefined;
|
|
348
349
|
line_ranges?: {
|
|
349
350
|
path: string;
|
|
@@ -355,7 +356,6 @@ export declare const AuditTaskSchema: z.ZodObject<{
|
|
|
355
356
|
token_estimate?: number | undefined;
|
|
356
357
|
risk_estimate?: number | undefined;
|
|
357
358
|
tags?: string[] | undefined;
|
|
358
|
-
completed_at?: string | undefined;
|
|
359
359
|
completion_reason?: string | undefined;
|
|
360
360
|
}>;
|
|
361
361
|
export type AuditTask = z.infer<typeof AuditTaskSchema>;
|
|
@@ -416,6 +416,7 @@ export declare const AuditVerificationSchema: z.ZodObject<{
|
|
|
416
416
|
pass_id: string;
|
|
417
417
|
file_paths: string[];
|
|
418
418
|
status?: "complete" | "pending" | undefined;
|
|
419
|
+
completed_at?: string | undefined;
|
|
419
420
|
file_line_counts?: Record<string, number> | undefined;
|
|
420
421
|
line_ranges?: {
|
|
421
422
|
path: string;
|
|
@@ -427,7 +428,6 @@ export declare const AuditVerificationSchema: z.ZodObject<{
|
|
|
427
428
|
token_estimate?: number | undefined;
|
|
428
429
|
risk_estimate?: number | undefined;
|
|
429
430
|
tags?: string[] | undefined;
|
|
430
|
-
completed_at?: string | undefined;
|
|
431
431
|
completion_reason?: string | undefined;
|
|
432
432
|
}, {
|
|
433
433
|
unit_id: string;
|
|
@@ -437,6 +437,7 @@ export declare const AuditVerificationSchema: z.ZodObject<{
|
|
|
437
437
|
pass_id: string;
|
|
438
438
|
file_paths: string[];
|
|
439
439
|
status?: "complete" | "pending" | undefined;
|
|
440
|
+
completed_at?: string | undefined;
|
|
440
441
|
file_line_counts?: Record<string, number> | undefined;
|
|
441
442
|
line_ranges?: {
|
|
442
443
|
path: string;
|
|
@@ -448,7 +449,6 @@ export declare const AuditVerificationSchema: z.ZodObject<{
|
|
|
448
449
|
token_estimate?: number | undefined;
|
|
449
450
|
risk_estimate?: number | undefined;
|
|
450
451
|
tags?: string[] | undefined;
|
|
451
|
-
completed_at?: string | undefined;
|
|
452
452
|
completion_reason?: string | undefined;
|
|
453
453
|
}>, "many">>;
|
|
454
454
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -465,6 +465,7 @@ export declare const AuditVerificationSchema: z.ZodObject<{
|
|
|
465
465
|
pass_id: string;
|
|
466
466
|
file_paths: string[];
|
|
467
467
|
status?: "complete" | "pending" | undefined;
|
|
468
|
+
completed_at?: string | undefined;
|
|
468
469
|
file_line_counts?: Record<string, number> | undefined;
|
|
469
470
|
line_ranges?: {
|
|
470
471
|
path: string;
|
|
@@ -476,7 +477,6 @@ export declare const AuditVerificationSchema: z.ZodObject<{
|
|
|
476
477
|
token_estimate?: number | undefined;
|
|
477
478
|
risk_estimate?: number | undefined;
|
|
478
479
|
tags?: string[] | undefined;
|
|
479
|
-
completed_at?: string | undefined;
|
|
480
480
|
completion_reason?: string | undefined;
|
|
481
481
|
}[] | undefined;
|
|
482
482
|
}, {
|
|
@@ -493,6 +493,7 @@ export declare const AuditVerificationSchema: z.ZodObject<{
|
|
|
493
493
|
pass_id: string;
|
|
494
494
|
file_paths: string[];
|
|
495
495
|
status?: "complete" | "pending" | undefined;
|
|
496
|
+
completed_at?: string | undefined;
|
|
496
497
|
file_line_counts?: Record<string, number> | undefined;
|
|
497
498
|
line_ranges?: {
|
|
498
499
|
path: string;
|
|
@@ -504,7 +505,6 @@ export declare const AuditVerificationSchema: z.ZodObject<{
|
|
|
504
505
|
token_estimate?: number | undefined;
|
|
505
506
|
risk_estimate?: number | undefined;
|
|
506
507
|
tags?: string[] | undefined;
|
|
507
|
-
completed_at?: string | undefined;
|
|
508
508
|
completion_reason?: string | undefined;
|
|
509
509
|
}[] | undefined;
|
|
510
510
|
}>;
|
|
@@ -794,6 +794,7 @@ export declare const AuditResultSchema: z.ZodObject<{
|
|
|
794
794
|
pass_id: string;
|
|
795
795
|
file_paths: string[];
|
|
796
796
|
status?: "complete" | "pending" | undefined;
|
|
797
|
+
completed_at?: string | undefined;
|
|
797
798
|
file_line_counts?: Record<string, number> | undefined;
|
|
798
799
|
line_ranges?: {
|
|
799
800
|
path: string;
|
|
@@ -805,7 +806,6 @@ export declare const AuditResultSchema: z.ZodObject<{
|
|
|
805
806
|
token_estimate?: number | undefined;
|
|
806
807
|
risk_estimate?: number | undefined;
|
|
807
808
|
tags?: string[] | undefined;
|
|
808
|
-
completed_at?: string | undefined;
|
|
809
809
|
completion_reason?: string | undefined;
|
|
810
810
|
}, {
|
|
811
811
|
unit_id: string;
|
|
@@ -815,6 +815,7 @@ export declare const AuditResultSchema: z.ZodObject<{
|
|
|
815
815
|
pass_id: string;
|
|
816
816
|
file_paths: string[];
|
|
817
817
|
status?: "complete" | "pending" | undefined;
|
|
818
|
+
completed_at?: string | undefined;
|
|
818
819
|
file_line_counts?: Record<string, number> | undefined;
|
|
819
820
|
line_ranges?: {
|
|
820
821
|
path: string;
|
|
@@ -826,7 +827,6 @@ export declare const AuditResultSchema: z.ZodObject<{
|
|
|
826
827
|
token_estimate?: number | undefined;
|
|
827
828
|
risk_estimate?: number | undefined;
|
|
828
829
|
tags?: string[] | undefined;
|
|
829
|
-
completed_at?: string | undefined;
|
|
830
830
|
completion_reason?: string | undefined;
|
|
831
831
|
}>, "many">>;
|
|
832
832
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -843,6 +843,7 @@ export declare const AuditResultSchema: z.ZodObject<{
|
|
|
843
843
|
pass_id: string;
|
|
844
844
|
file_paths: string[];
|
|
845
845
|
status?: "complete" | "pending" | undefined;
|
|
846
|
+
completed_at?: string | undefined;
|
|
846
847
|
file_line_counts?: Record<string, number> | undefined;
|
|
847
848
|
line_ranges?: {
|
|
848
849
|
path: string;
|
|
@@ -854,7 +855,6 @@ export declare const AuditResultSchema: z.ZodObject<{
|
|
|
854
855
|
token_estimate?: number | undefined;
|
|
855
856
|
risk_estimate?: number | undefined;
|
|
856
857
|
tags?: string[] | undefined;
|
|
857
|
-
completed_at?: string | undefined;
|
|
858
858
|
completion_reason?: string | undefined;
|
|
859
859
|
}[] | undefined;
|
|
860
860
|
}, {
|
|
@@ -871,6 +871,7 @@ export declare const AuditResultSchema: z.ZodObject<{
|
|
|
871
871
|
pass_id: string;
|
|
872
872
|
file_paths: string[];
|
|
873
873
|
status?: "complete" | "pending" | undefined;
|
|
874
|
+
completed_at?: string | undefined;
|
|
874
875
|
file_line_counts?: Record<string, number> | undefined;
|
|
875
876
|
line_ranges?: {
|
|
876
877
|
path: string;
|
|
@@ -882,7 +883,6 @@ export declare const AuditResultSchema: z.ZodObject<{
|
|
|
882
883
|
token_estimate?: number | undefined;
|
|
883
884
|
risk_estimate?: number | undefined;
|
|
884
885
|
tags?: string[] | undefined;
|
|
885
|
-
completed_at?: string | undefined;
|
|
886
886
|
completion_reason?: string | undefined;
|
|
887
887
|
}[] | undefined;
|
|
888
888
|
}>>;
|
|
@@ -960,6 +960,7 @@ export declare const AuditResultSchema: z.ZodObject<{
|
|
|
960
960
|
pass_id: string;
|
|
961
961
|
file_paths: string[];
|
|
962
962
|
status?: "complete" | "pending" | undefined;
|
|
963
|
+
completed_at?: string | undefined;
|
|
963
964
|
file_line_counts?: Record<string, number> | undefined;
|
|
964
965
|
line_ranges?: {
|
|
965
966
|
path: string;
|
|
@@ -971,7 +972,6 @@ export declare const AuditResultSchema: z.ZodObject<{
|
|
|
971
972
|
token_estimate?: number | undefined;
|
|
972
973
|
risk_estimate?: number | undefined;
|
|
973
974
|
tags?: string[] | undefined;
|
|
974
|
-
completed_at?: string | undefined;
|
|
975
975
|
completion_reason?: string | undefined;
|
|
976
976
|
}[] | undefined;
|
|
977
977
|
} | undefined;
|
|
@@ -1052,6 +1052,7 @@ export declare const AuditResultSchema: z.ZodObject<{
|
|
|
1052
1052
|
pass_id: string;
|
|
1053
1053
|
file_paths: string[];
|
|
1054
1054
|
status?: "complete" | "pending" | undefined;
|
|
1055
|
+
completed_at?: string | undefined;
|
|
1055
1056
|
file_line_counts?: Record<string, number> | undefined;
|
|
1056
1057
|
line_ranges?: {
|
|
1057
1058
|
path: string;
|
|
@@ -1063,7 +1064,6 @@ export declare const AuditResultSchema: z.ZodObject<{
|
|
|
1063
1064
|
token_estimate?: number | undefined;
|
|
1064
1065
|
risk_estimate?: number | undefined;
|
|
1065
1066
|
tags?: string[] | undefined;
|
|
1066
|
-
completed_at?: string | undefined;
|
|
1067
1067
|
completion_reason?: string | undefined;
|
|
1068
1068
|
}[] | undefined;
|
|
1069
1069
|
} | undefined;
|
|
@@ -17,6 +17,13 @@ export interface ContractPipelineArtifactEnvelope {
|
|
|
17
17
|
dependency_hashes: Partial<Record<ContractPipelineArtifactName, string>>;
|
|
18
18
|
payload: unknown;
|
|
19
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* Canonical predicate for a stored content-hash envelope. Single-sourced here so
|
|
22
|
+
* any consumer (the contract-pipeline ingest path, the `validate-artifact` CLI)
|
|
23
|
+
* unwraps with identical structural rules and cannot drift. A plain payload that
|
|
24
|
+
* happens to carry an `artifact_name` but no `content_hash` is NOT an envelope.
|
|
25
|
+
*/
|
|
26
|
+
export declare function isEnvelope(value: unknown): value is ContractPipelineArtifactEnvelope;
|
|
20
27
|
export declare function contractPipelineDir(artifactsDir: string): string;
|
|
21
28
|
/**
|
|
22
29
|
* Path to the optional Path-A seed file. Present only when the intake source
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifactStore.d.ts","sourceRoot":"","sources":["../../../src/remediate/contractPipeline/artifactStore.ts"],"names":[],"mappings":"AAsBA,eAAO,MAAM,iBAAiB,mWAgBpB,CAAC;AAEX,MAAM,MAAM,4BAA4B,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAM9E,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,4BAA4B,EAAE,4BAA4B,EAAE,CAiC/F,CAAC;AAIF,MAAM,WAAW,gCAAgC;IAC/C,aAAa,EAAE,4BAA4B,CAAC;IAC5C,+EAA+E;IAC/E,YAAY,EAAE,MAAM,CAAC;IACrB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iFAAiF;IACjF,iBAAiB,EAAE,OAAO,CAAC,MAAM,CAAC,4BAA4B,EAAE,MAAM,CAAC,CAAC,CAAC;IACzE,OAAO,EAAE,OAAO,CAAC;CAClB;AAID,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED,wBAAgB,wBAAwB,CACtC,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,4BAA4B,GACjC,MAAM,CAER;AAiBD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,gCAAgC,GACzC,MAAM,CAKR;AAID,wEAAwE;AACxE,wBAAsB,qBAAqB,CACzC,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,4BAA4B,EAClC,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,gCAAgC,CAAC,CAyB3C;AAED,0DAA0D;AAC1D,wBAAsB,oBAAoB,CACxC,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,4BAA4B,GACjC,OAAO,CAAC,gCAAgC,GAAG,IAAI,CAAC,CAMlD;AAED,MAAM,WAAW,eAAe;IAC9B,uFAAuF;IACvF,KAAK,EAAE,4BAA4B,EAAE,CAAC;IACtC,gEAAgE;IAChE,MAAM,EAAE,4BAA4B,EAAE,CAAC;CACxC;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,oBAAoB,CACxC,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,eAAe,CAAC,CAqD1B;AAED,8DAA8D;AAC9D,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,4BAA4B,GACjC,OAAO,CAET"}
|
|
1
|
+
{"version":3,"file":"artifactStore.d.ts","sourceRoot":"","sources":["../../../src/remediate/contractPipeline/artifactStore.ts"],"names":[],"mappings":"AAsBA,eAAO,MAAM,iBAAiB,mWAgBpB,CAAC;AAEX,MAAM,MAAM,4BAA4B,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAM9E,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,4BAA4B,EAAE,4BAA4B,EAAE,CAiC/F,CAAC;AAIF,MAAM,WAAW,gCAAgC;IAC/C,aAAa,EAAE,4BAA4B,CAAC;IAC5C,+EAA+E;IAC/E,YAAY,EAAE,MAAM,CAAC;IACrB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iFAAiF;IACjF,iBAAiB,EAAE,OAAO,CAAC,MAAM,CAAC,4BAA4B,EAAE,MAAM,CAAC,CAAC,CAAC;IACzE,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,gCAAgC,CAO3C;AAID,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED,wBAAgB,wBAAwB,CACtC,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,4BAA4B,GACjC,MAAM,CAER;AAiBD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,gCAAgC,GACzC,MAAM,CAKR;AAID,wEAAwE;AACxE,wBAAsB,qBAAqB,CACzC,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,4BAA4B,EAClC,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,gCAAgC,CAAC,CAyB3C;AAED,0DAA0D;AAC1D,wBAAsB,oBAAoB,CACxC,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,4BAA4B,GACjC,OAAO,CAAC,gCAAgC,GAAG,IAAI,CAAC,CAMlD;AAED,MAAM,WAAW,eAAe;IAC9B,uFAAuF;IACvF,KAAK,EAAE,4BAA4B,EAAE,CAAC;IACtC,gEAAgE;IAChE,MAAM,EAAE,4BAA4B,EAAE,CAAC;CACxC;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,oBAAoB,CACxC,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,eAAe,CAAC,CAqD1B;AAED,8DAA8D;AAC9D,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,4BAA4B,GACjC,OAAO,CAET"}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
import { existsSync } from "node:fs";
|
|
13
13
|
import { mkdir } from "node:fs/promises";
|
|
14
14
|
import { join } from "node:path";
|
|
15
|
-
import { hashContent, readOptionalJsonFile, writeJsonFile } from "audit-tools/shared";
|
|
15
|
+
import { hashContent, isRecord, readOptionalJsonFile, writeJsonFile } from "audit-tools/shared";
|
|
16
16
|
import { semanticProjection, stableStringifyProjection, } from "./semanticProjection.js";
|
|
17
17
|
// ── Artifact names ────────────────────────────────────────────────────────────
|
|
18
18
|
export const CP_ARTIFACT_NAMES = [
|
|
@@ -69,6 +69,18 @@ export const DEPENDENCY_MAP = {
|
|
|
69
69
|
"implementation_dag",
|
|
70
70
|
],
|
|
71
71
|
};
|
|
72
|
+
/**
|
|
73
|
+
* Canonical predicate for a stored content-hash envelope. Single-sourced here so
|
|
74
|
+
* any consumer (the contract-pipeline ingest path, the `validate-artifact` CLI)
|
|
75
|
+
* unwraps with identical structural rules and cannot drift. A plain payload that
|
|
76
|
+
* happens to carry an `artifact_name` but no `content_hash` is NOT an envelope.
|
|
77
|
+
*/
|
|
78
|
+
export function isEnvelope(value) {
|
|
79
|
+
return (isRecord(value) &&
|
|
80
|
+
typeof value.artifact_name === "string" &&
|
|
81
|
+
typeof value.content_hash === "string" &&
|
|
82
|
+
"payload" in value);
|
|
83
|
+
}
|
|
72
84
|
// ── Helpers ───────────────────────────────────────────────────────────────────
|
|
73
85
|
export function contractPipelineDir(artifactsDir) {
|
|
74
86
|
return join(artifactsDir, "intake", "contract");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifactStore.js","sourceRoot":"","sources":["../../../src/remediate/contractPipeline/artifactStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"artifactStore.js","sourceRoot":"","sources":["../../../src/remediate/contractPipeline/artifactStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"semanticProjection.d.ts","sourceRoot":"","sources":["../../../src/remediate/contractPipeline/semanticProjection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,EAAY,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAEvE,OAAO,EAAE,yBAAyB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"semanticProjection.d.ts","sourceRoot":"","sources":["../../../src/remediate/contractPipeline/semanticProjection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,EAAY,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAEvE,OAAO,EAAE,yBAAyB,EAAE,CAAC;AAmErC;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,4BAA4B,EAClC,OAAO,EAAE,OAAO,GACf,OAAO,CAsBT;AAED;;;;;GAKG"}
|
|
@@ -63,6 +63,26 @@ function projectModuleContract(value) {
|
|
|
63
63
|
}
|
|
64
64
|
return out;
|
|
65
65
|
}
|
|
66
|
+
/**
|
|
67
|
+
* Collapse cosmetic whitespace in every projected string (trim + runs → single
|
|
68
|
+
* space), recursively. A reflow / trailing-space / indentation edit to a contract
|
|
69
|
+
* field is not a semantic change, but without this it churns the projection hash
|
|
70
|
+
* and re-stales the downstream chain. Safe: the downstream gates/derivers match on
|
|
71
|
+
* word boundaries and substrings, which whitespace normalization never alters.
|
|
72
|
+
*/
|
|
73
|
+
function normalizeWhitespaceDeep(value) {
|
|
74
|
+
if (typeof value === "string")
|
|
75
|
+
return value.replace(/\s+/g, " ").trim();
|
|
76
|
+
if (Array.isArray(value))
|
|
77
|
+
return value.map(normalizeWhitespaceDeep);
|
|
78
|
+
if (isRecord(value)) {
|
|
79
|
+
const out = {};
|
|
80
|
+
for (const [key, v] of Object.entries(value))
|
|
81
|
+
out[key] = normalizeWhitespaceDeep(v);
|
|
82
|
+
return out;
|
|
83
|
+
}
|
|
84
|
+
return value;
|
|
85
|
+
}
|
|
66
86
|
/**
|
|
67
87
|
* Project a contract-pipeline artifact payload to only its load-bearing
|
|
68
88
|
* structure for downstream-staleness purposes. The universal provenance strip
|
|
@@ -77,21 +97,23 @@ export function semanticProjection(name, payload) {
|
|
|
77
97
|
if (!isRecord(payload))
|
|
78
98
|
return payload;
|
|
79
99
|
const stripped = stripFields(payload, UNIVERSAL_NON_SEMANTIC_FIELDS);
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
100
|
+
// Both the intermediate `module_contracts` and the `finalized_module_contracts`
|
|
101
|
+
// carry the same module-entry shape; narrow each entry to its derivable fields for
|
|
102
|
+
// BOTH so a reworded per-module rationale / a tweaked non-derivable array
|
|
103
|
+
// (side_effects / seam_adjustments / neighbor_needs) projects identically while a
|
|
104
|
+
// changed interface / new invariant does not. Keep every top-level field
|
|
105
|
+
// (contract_version, goal_id, …): the narrowing is per-entry, so any top-level
|
|
106
|
+
// field a downstream might read still participates in staleness.
|
|
107
|
+
if (name === "finalized_module_contracts" || name === "module_contracts") {
|
|
108
|
+
if (Array.isArray(stripped.module_contracts)) {
|
|
109
|
+
return normalizeWhitespaceDeep({
|
|
110
|
+
...stripped,
|
|
111
|
+
module_contracts: stripped.module_contracts.map(projectModuleContract),
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
return normalizeWhitespaceDeep(stripped);
|
|
93
115
|
}
|
|
94
|
-
return stripped;
|
|
116
|
+
return normalizeWhitespaceDeep(stripped);
|
|
95
117
|
}
|
|
96
118
|
/**
|
|
97
119
|
* The order-independent stable serialization used to hash a projection is the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"semanticProjection.js","sourceRoot":"","sources":["../../../src/remediate/contractPipeline/semanticProjection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,EAAE,QAAQ,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAGzE,OAAO,EAAE,yBAAyB,EAAE,CAAC;AAErC;;;;;;GAMG;AACH,MAAM,6BAA6B,GAAsB,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;AAExF;;;;;;;;;GASG;AACH,MAAM,gCAAgC,GAAsB;IAC1D,MAAM;IACN,QAAQ;IACR,SAAS;IACT,YAAY;IACZ,eAAe;IACf,qBAAqB;CACtB,CAAC;AAEF,SAAS,WAAW,CAClB,MAA+B,EAC/B,MAAyB;IAEzB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CACzD,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAc;IAC3C,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5C,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,KAAK,MAAM,KAAK,IAAI,gCAAgC,EAAE,CAAC;QACrD,GAAG,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAAkC,EAClC,OAAgB;IAEhB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IACvC,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,EAAE,6BAA6B,CAAC,CAAC;IAErE,IAAI,IAAI,KAAK,4BAA4B,
|
|
1
|
+
{"version":3,"file":"semanticProjection.js","sourceRoot":"","sources":["../../../src/remediate/contractPipeline/semanticProjection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,EAAE,QAAQ,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAGzE,OAAO,EAAE,yBAAyB,EAAE,CAAC;AAErC;;;;;;GAMG;AACH,MAAM,6BAA6B,GAAsB,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;AAExF;;;;;;;;;GASG;AACH,MAAM,gCAAgC,GAAsB;IAC1D,MAAM;IACN,QAAQ;IACR,SAAS;IACT,YAAY;IACZ,eAAe;IACf,qBAAqB;CACtB,CAAC;AAEF,SAAS,WAAW,CAClB,MAA+B,EAC/B,MAAyB;IAEzB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CACzD,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAc;IAC3C,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5C,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,KAAK,MAAM,KAAK,IAAI,gCAAgC,EAAE,CAAC;QACrD,GAAG,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;GAMG;AACH,SAAS,uBAAuB,CAAC,KAAc;IAC7C,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACxE,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IACpE,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACpB,MAAM,GAAG,GAA4B,EAAE,CAAC;QACxC,KAAK,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,GAAG,CAAC,GAAG,CAAC,GAAG,uBAAuB,CAAC,CAAC,CAAC,CAAC;QACpF,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAAkC,EAClC,OAAgB;IAEhB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IACvC,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,EAAE,6BAA6B,CAAC,CAAC;IAErE,gFAAgF;IAChF,mFAAmF;IACnF,0EAA0E;IAC1E,kFAAkF;IAClF,yEAAyE;IACzE,+EAA+E;IAC/E,iEAAiE;IACjE,IAAI,IAAI,KAAK,4BAA4B,IAAI,IAAI,KAAK,kBAAkB,EAAE,CAAC;QACzE,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC7C,OAAO,uBAAuB,CAAC;gBAC7B,GAAG,QAAQ;gBACX,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,qBAAqB,CAAC;aACvE,CAAC,CAAC;QACL,CAAC;QACD,OAAO,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,uBAAuB,CAAC,QAAQ,CAAC,CAAC;AAC3C,CAAC;AAED;;;;;GAKG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/remediate/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/remediate/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAqDjD,QAAA,MAAM,OAAO,SAAgB,CAAC;AA+R9B,OAAO,EAAE,OAAO,EAAE,CAAC;AAEnB;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAEjD;AAUD;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAU/E;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,MAAM,GACvB,MAAM,CAuBR;AAYD;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,GACnB,MAAM,CAIR;AAED,wBAAgB,kBAAkB,CAChC,IAAI,GAAE;IACJ,GAAG,CAAC,EAAE,OAAO,UAAU,CAAC;IACxB,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B,GACL,MAAM,CAcR;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,EACd,GAAG,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAkB,EACxC,OAAO,SAAY,GAClB,IAAI,CAQN;AA4FD,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,OAAO,EACd,GAAG,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAkB,EACxC,OAAO,SAAY,EACnB,IAAI,SAAgB,GACnB,IAAI,CA4EN"}
|
package/dist/remediate/index.js
CHANGED
|
@@ -10,7 +10,7 @@ import { mergeImplementResults, prepareImplementDispatch, } from "./steps/dispat
|
|
|
10
10
|
import { advanceHostRolling } from "./steps/rollingSession.js";
|
|
11
11
|
import { validateArtifacts } from "./validation/artifacts.js";
|
|
12
12
|
import { CONTRACT_PIPELINE_VALIDATORS } from "./validation/contractPipeline.js";
|
|
13
|
-
import { CP_ARTIFACT_NAMES, } from "./contractPipeline/artifactStore.js";
|
|
13
|
+
import { CP_ARTIFACT_NAMES, isEnvelope, } from "./contractPipeline/artifactStore.js";
|
|
14
14
|
import { setQuotaStateDir, parseHostModelRoster, remediationArtifactsDir, mergeOpenCodeAgentPermissionRule, mergeOpenCodeGlobalPermissionRule, migrateOpenCodeGlobalExternalDirectory, withoutOpenCodeWildcard, } from "audit-tools/shared";
|
|
15
15
|
// src/remediate/index.ts (source) or dist/remediate/index.js (built) → three
|
|
16
16
|
// dirnames up is the package root, holding package.json + skills/ + opencode.json.
|
|
@@ -178,14 +178,18 @@ program
|
|
|
178
178
|
console.log(JSON.stringify({ status: "error", message: `Could not read artifact input: ${err.message}` }, null, 2));
|
|
179
179
|
process.exit(2);
|
|
180
180
|
}
|
|
181
|
-
let
|
|
181
|
+
let parsed;
|
|
182
182
|
try {
|
|
183
|
-
|
|
183
|
+
parsed = JSON.parse(raw);
|
|
184
184
|
}
|
|
185
185
|
catch (err) {
|
|
186
186
|
console.log(JSON.stringify({ status: "error", message: `Artifact is not valid JSON: ${err.message}` }, null, 2));
|
|
187
187
|
process.exit(2);
|
|
188
188
|
}
|
|
189
|
+
// Unwrap a stored content-hash envelope so the bare payload is validated
|
|
190
|
+
// against its contract; a plain payload validates as-is. Uses the canonical
|
|
191
|
+
// isEnvelope predicate so CLI self-check and ingest unwrap identically.
|
|
192
|
+
const payload = isEnvelope(parsed) ? parsed.payload : parsed;
|
|
189
193
|
const issues = validator(payload, name);
|
|
190
194
|
const errors = issues.filter((issue) => issue.severity === "error");
|
|
191
195
|
console.log(JSON.stringify({
|