audit-tools 0.52.0 → 0.52.1
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.map +1 -1
- package/dist/audit/cli/auditStep.js +2 -2
- package/dist/audit/cli/auditStep.js.map +1 -1
- package/dist/audit/cli/charterClarificationPrompt.d.ts +16 -8
- package/dist/audit/cli/charterClarificationPrompt.d.ts.map +1 -1
- package/dist/audit/cli/charterClarificationPrompt.js +95 -42
- package/dist/audit/cli/charterClarificationPrompt.js.map +1 -1
- package/dist/audit/cli/charterComparisonPrompt.d.ts +16 -6
- package/dist/audit/cli/charterComparisonPrompt.d.ts.map +1 -1
- package/dist/audit/cli/charterComparisonPrompt.js +76 -29
- package/dist/audit/cli/charterComparisonPrompt.js.map +1 -1
- package/dist/audit/cli/charterExtractionPrompt.d.ts +5 -4
- package/dist/audit/cli/charterExtractionPrompt.d.ts.map +1 -1
- package/dist/audit/cli/charterExtractionPrompt.js +64 -42
- package/dist/audit/cli/charterExtractionPrompt.js.map +1 -1
- package/dist/audit/cli/charterFidelityPrompt.d.ts +17 -4
- package/dist/audit/cli/charterFidelityPrompt.d.ts.map +1 -1
- package/dist/audit/cli/charterFidelityPrompt.js +72 -21
- package/dist/audit/cli/charterFidelityPrompt.js.map +1 -1
- package/dist/audit/cli/dispatch/hostHandoff.d.ts +23 -1
- package/dist/audit/cli/dispatch/hostHandoff.d.ts.map +1 -1
- package/dist/audit/cli/dispatch/hostHandoff.js +204 -41
- package/dist/audit/cli/dispatch/hostHandoff.js.map +1 -1
- package/dist/audit/cli/dispatch/packetFilter.d.ts +8 -0
- package/dist/audit/cli/dispatch/packetFilter.d.ts.map +1 -1
- package/dist/audit/cli/fanoutLanes.d.ts.map +1 -1
- package/dist/audit/cli/fanoutLanes.js +20 -4
- package/dist/audit/cli/fanoutLanes.js.map +1 -1
- package/dist/audit/cli/laneValidators.d.ts +19 -7
- package/dist/audit/cli/laneValidators.d.ts.map +1 -1
- package/dist/audit/cli/laneValidators.js +73 -18
- package/dist/audit/cli/laneValidators.js.map +1 -1
- package/dist/audit/cli/nextStepCommand.d.ts.map +1 -1
- package/dist/audit/cli/nextStepCommand.js +13 -6
- package/dist/audit/cli/nextStepCommand.js.map +1 -1
- package/dist/audit/cli/nextStepHelpers.d.ts +25 -2
- package/dist/audit/cli/nextStepHelpers.d.ts.map +1 -1
- package/dist/audit/cli/nextStepHelpers.js +105 -35
- package/dist/audit/cli/nextStepHelpers.js.map +1 -1
- package/dist/audit/cli/recoverSubmissionCommand.d.ts.map +1 -1
- package/dist/audit/cli/recoverSubmissionCommand.js +89 -4
- package/dist/audit/cli/recoverSubmissionCommand.js.map +1 -1
- package/dist/audit/cli/sampleRunCommand.d.ts +10 -0
- package/dist/audit/cli/sampleRunCommand.d.ts.map +1 -1
- package/dist/audit/cli/semanticReviewStep.d.ts +4 -4
- package/dist/audit/cli/semanticReviewStep.d.ts.map +1 -1
- package/dist/audit/cli/semanticReviewStep.js +35 -71
- package/dist/audit/cli/semanticReviewStep.js.map +1 -1
- package/dist/audit/contracts/findingContractPrompt.d.ts.map +1 -1
- package/dist/audit/contracts/findingContractPrompt.js +7 -1
- package/dist/audit/contracts/findingContractPrompt.js.map +1 -1
- package/dist/audit/contracts/workerSchemas.d.ts +280 -4
- package/dist/audit/contracts/workerSchemas.d.ts.map +1 -1
- package/dist/audit/contracts/workerSchemas.js +24 -2
- package/dist/audit/contracts/workerSchemas.js.map +1 -1
- package/dist/audit/orchestrator/charterClarificationExecutor.d.ts.map +1 -1
- package/dist/audit/orchestrator/charterClarificationExecutor.js +39 -0
- package/dist/audit/orchestrator/charterClarificationExecutor.js.map +1 -1
- package/dist/audit/orchestrator/charterExtractionExecutor.d.ts +12 -5
- package/dist/audit/orchestrator/charterExtractionExecutor.d.ts.map +1 -1
- package/dist/audit/orchestrator/charterExtractionExecutor.js +39 -9
- package/dist/audit/orchestrator/charterExtractionExecutor.js.map +1 -1
- package/dist/audit/orchestrator/designReviewPrompt.d.ts +7 -0
- package/dist/audit/orchestrator/designReviewPrompt.d.ts.map +1 -1
- package/dist/audit/orchestrator/designReviewPrompt.js +174 -19
- package/dist/audit/orchestrator/designReviewPrompt.js.map +1 -1
- package/dist/audit/orchestrator/intentCheckpointGate.d.ts.map +1 -1
- package/dist/audit/orchestrator/intentCheckpointGate.js +1 -5
- package/dist/audit/orchestrator/intentCheckpointGate.js.map +1 -1
- package/dist/audit/orchestrator/requeueCommand.d.ts +8 -0
- package/dist/audit/orchestrator/requeueCommand.d.ts.map +1 -1
- package/dist/audit/orchestrator/selectiveDeepening/lensVerification.d.ts.map +1 -1
- package/dist/audit/orchestrator/selectiveDeepening/lensVerification.js +94 -71
- package/dist/audit/orchestrator/selectiveDeepening/lensVerification.js.map +1 -1
- package/dist/audit/orchestrator/selectiveDeepening/shared.d.ts +0 -2
- package/dist/audit/orchestrator/selectiveDeepening/shared.d.ts.map +1 -1
- package/dist/audit/orchestrator/selectiveDeepening/shared.js +9 -2
- package/dist/audit/orchestrator/selectiveDeepening/shared.js.map +1 -1
- package/dist/audit/orchestrator/selectiveDeepening/stewardFollowup.d.ts.map +1 -1
- package/dist/audit/orchestrator/selectiveDeepening/stewardFollowup.js +28 -4
- package/dist/audit/orchestrator/selectiveDeepening/stewardFollowup.js.map +1 -1
- package/dist/audit/reporting/synthesis.d.ts +16 -3
- package/dist/audit/reporting/synthesis.d.ts.map +1 -1
- package/dist/audit/reporting/synthesis.js +40 -11
- package/dist/audit/reporting/synthesis.js.map +1 -1
- package/dist/audit/reporting/synthesisNarrativePrompt.d.ts +26 -1
- package/dist/audit/reporting/synthesisNarrativePrompt.d.ts.map +1 -1
- package/dist/audit/reporting/synthesisNarrativePrompt.js +53 -13
- package/dist/audit/reporting/synthesisNarrativePrompt.js.map +1 -1
- package/dist/audit/systemic/secondOrderAdversaryPrompt.d.ts.map +1 -1
- package/dist/audit/systemic/secondOrderAdversaryPrompt.js +67 -40
- package/dist/audit/systemic/secondOrderAdversaryPrompt.js.map +1 -1
- package/dist/audit/systemic/systemicChallengeLoop.d.ts.map +1 -1
- package/dist/audit/systemic/systemicChallengeLoop.js +13 -1
- package/dist/audit/systemic/systemicChallengeLoop.js.map +1 -1
- package/dist/audit/types/conceptualAdjudication.d.ts +26 -2
- package/dist/audit/types/conceptualAdjudication.d.ts.map +1 -1
- package/dist/audit/types/conceptualAdjudication.js +26 -7
- package/dist/audit/types/conceptualAdjudication.js.map +1 -1
- package/dist/audit/types.d.ts +279 -0
- package/dist/audit/types.d.ts.map +1 -1
- package/dist/audit/types.js +52 -0
- package/dist/audit/types.js.map +1 -1
- package/dist/audit/validation/auditResults.d.ts.map +1 -1
- package/dist/audit/validation/auditResults.js +51 -6
- package/dist/audit/validation/auditResults.js.map +1 -1
- package/dist/audit/validation/ingestIssueCodes.d.ts +3 -1
- package/dist/audit/validation/ingestIssueCodes.d.ts.map +1 -1
- package/dist/audit/validation/ingestIssueCodes.js +27 -15
- package/dist/audit/validation/ingestIssueCodes.js.map +1 -1
- package/dist/remediate/contractPipeline/sketchSource.d.ts +13 -3
- package/dist/remediate/contractPipeline/sketchSource.d.ts.map +1 -1
- package/dist/remediate/contractPipeline/sketchSource.js +14 -8
- package/dist/remediate/contractPipeline/sketchSource.js.map +1 -1
- package/dist/remediate/intake.d.ts +140 -36
- package/dist/remediate/intake.d.ts.map +1 -1
- package/dist/remediate/intake.js +159 -38
- package/dist/remediate/intake.js.map +1 -1
- package/dist/remediate/intent/checkpointFilter.d.ts +1 -2
- package/dist/remediate/intent/checkpointFilter.d.ts.map +1 -1
- package/dist/remediate/intent/checkpointFilter.js +1 -5
- package/dist/remediate/intent/checkpointFilter.js.map +1 -1
- package/dist/remediate/phases/close.d.ts.map +1 -1
- package/dist/remediate/phases/close.js +2 -2
- package/dist/remediate/phases/close.js.map +1 -1
- package/dist/remediate/phases/plan.d.ts +1 -1
- package/dist/remediate/review/reviewGate.d.ts +68 -39
- package/dist/remediate/review/reviewGate.d.ts.map +1 -1
- package/dist/remediate/review/reviewGate.js +133 -50
- package/dist/remediate/review/reviewGate.js.map +1 -1
- package/dist/remediate/state/store.d.ts +1 -2
- package/dist/remediate/state/store.d.ts.map +1 -1
- package/dist/remediate/state/store.js +124 -3
- package/dist/remediate/state/store.js.map +1 -1
- package/dist/remediate/state/types.d.ts +28 -4
- package/dist/remediate/state/types.d.ts.map +1 -1
- package/dist/remediate/state/types.js.map +1 -1
- package/dist/remediate/steps/contractPipeline.d.ts +17 -1
- package/dist/remediate/steps/contractPipeline.d.ts.map +1 -1
- package/dist/remediate/steps/contractPipeline.js +100 -52
- package/dist/remediate/steps/contractPipeline.js.map +1 -1
- package/dist/remediate/steps/contractPipelinePrompts.d.ts +32 -8
- package/dist/remediate/steps/contractPipelinePrompts.d.ts.map +1 -1
- package/dist/remediate/steps/contractPipelinePrompts.js +145 -131
- package/dist/remediate/steps/contractPipelinePrompts.js.map +1 -1
- package/dist/remediate/steps/dispatch/hostHandoff.d.ts +6 -4
- package/dist/remediate/steps/dispatch/hostHandoff.d.ts.map +1 -1
- package/dist/remediate/steps/dispatch/hostHandoff.js +291 -155
- package/dist/remediate/steps/dispatch/hostHandoff.js.map +1 -1
- package/dist/remediate/steps/intakeResolver.d.ts +1 -1
- package/dist/remediate/steps/intakeResolver.d.ts.map +1 -1
- package/dist/remediate/steps/intakeResolver.js +50 -49
- package/dist/remediate/steps/intakeResolver.js.map +1 -1
- package/dist/remediate/steps/nextStep.d.ts.map +1 -1
- package/dist/remediate/steps/nextStep.js +315 -288
- package/dist/remediate/steps/nextStep.js.map +1 -1
- package/dist/remediate/steps/prompts.d.ts +10 -3
- package/dist/remediate/steps/prompts.d.ts.map +1 -1
- package/dist/remediate/steps/prompts.js +191 -228
- package/dist/remediate/steps/prompts.js.map +1 -1
- package/dist/remediate/steps/types.d.ts +2 -2
- package/dist/remediate/steps/types.d.ts.map +1 -1
- package/dist/remediate/steps/types.js +10 -3
- 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 -22
- package/dist/remediate/validation/artifacts.js.map +1 -1
- package/dist/remediate/validation/contractPipeline.d.ts.map +1 -1
- package/dist/remediate/validation/contractPipeline.js +25 -8
- package/dist/remediate/validation/contractPipeline.js.map +1 -1
- package/dist/remediate/validation/remediationState.d.ts +0 -1
- package/dist/remediate/validation/remediationState.d.ts.map +1 -1
- package/dist/remediate/validation/remediationState.js +1 -20
- package/dist/remediate/validation/remediationState.js.map +1 -1
- package/dist/shared/decompose/charterClarification.d.ts +7 -0
- package/dist/shared/decompose/charterClarification.d.ts.map +1 -1
- package/dist/shared/decompose/charterClarification.js +8 -1
- package/dist/shared/decompose/charterClarification.js.map +1 -1
- package/dist/shared/decompose/charterExtraction.d.ts +204 -16
- package/dist/shared/decompose/charterExtraction.d.ts.map +1 -1
- package/dist/shared/decompose/charterExtraction.js +70 -13
- package/dist/shared/decompose/charterExtraction.js.map +1 -1
- package/dist/shared/decompose/systemicChallenge.d.ts +42 -1
- package/dist/shared/decompose/systemicChallenge.d.ts.map +1 -1
- package/dist/shared/decompose/systemicChallenge.js +51 -0
- package/dist/shared/decompose/systemicChallenge.js.map +1 -1
- package/dist/shared/index.d.ts +14 -11
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/index.js +16 -9
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/io/stepContractWriter.d.ts.map +1 -1
- package/dist/shared/io/stepContractWriter.js +13 -4
- package/dist/shared/io/stepContractWriter.js.map +1 -1
- package/dist/shared/submission/hostHandoffCore.d.ts +7 -0
- package/dist/shared/submission/hostHandoffCore.d.ts.map +1 -1
- package/dist/shared/submission/hostHandoffCore.js +15 -2
- package/dist/shared/submission/hostHandoffCore.js.map +1 -1
- package/dist/shared/submission/hostResultOutcomes.d.ts +60 -10
- package/dist/shared/submission/hostResultOutcomes.d.ts.map +1 -1
- package/dist/shared/submission/hostResultOutcomes.js +42 -10
- package/dist/shared/submission/hostResultOutcomes.js.map +1 -1
- package/dist/shared/submission/ingestReport.d.ts +54 -0
- package/dist/shared/submission/ingestReport.d.ts.map +1 -0
- package/dist/shared/submission/ingestReport.js +44 -0
- package/dist/shared/submission/ingestReport.js.map +1 -0
- package/dist/shared/submission/ingestionChecks.d.ts +8 -13
- package/dist/shared/submission/ingestionChecks.d.ts.map +1 -1
- package/dist/shared/submission/ingestionChecks.js +9 -14
- package/dist/shared/submission/ingestionChecks.js.map +1 -1
- package/dist/shared/submission/submissionClassifier.d.ts +6 -0
- package/dist/shared/submission/submissionClassifier.d.ts.map +1 -1
- package/dist/shared/submission/submissionClassifier.js +16 -0
- package/dist/shared/submission/submissionClassifier.js.map +1 -1
- package/dist/shared/submission/workerPromptBinding.d.ts +18 -0
- package/dist/shared/submission/workerPromptBinding.d.ts.map +1 -0
- package/dist/shared/submission/workerPromptBinding.js +38 -0
- package/dist/shared/submission/workerPromptBinding.js.map +1 -0
- package/dist/shared/tooling/exec.d.ts +24 -0
- package/dist/shared/tooling/exec.d.ts.map +1 -1
- package/dist/shared/tooling/exec.js +30 -0
- package/dist/shared/tooling/exec.js.map +1 -1
- package/dist/shared/types/charter.d.ts +143 -7
- package/dist/shared/types/charter.d.ts.map +1 -1
- package/dist/shared/types/charter.js +63 -7
- package/dist/shared/types/charter.js.map +1 -1
- package/dist/shared/types/charterPacket.d.ts +13 -0
- package/dist/shared/types/charterPacket.d.ts.map +1 -1
- package/dist/shared/types/charterPacket.js.map +1 -1
- package/dist/shared/types/contractPipeline/obligations.d.ts +30 -11
- package/dist/shared/types/contractPipeline/obligations.d.ts.map +1 -1
- package/dist/shared/types/contractPipeline/obligations.js +6 -1
- package/dist/shared/types/contractPipeline/obligations.js.map +1 -1
- package/dist/shared/types/contractPropertyShapes.d.ts.map +1 -1
- package/dist/shared/types/contractPropertyShapes.js +13 -0
- package/dist/shared/types/contractPropertyShapes.js.map +1 -1
- package/dist/shared/types/finding.d.ts +154 -15
- package/dist/shared/types/finding.d.ts.map +1 -1
- package/dist/shared/types/finding.js +41 -5
- package/dist/shared/types/finding.js.map +1 -1
- package/dist/shared/types/intentCheckpoint.d.ts +26 -40
- package/dist/shared/types/intentCheckpoint.d.ts.map +1 -1
- package/dist/shared/types/intentCheckpoint.js +30 -33
- package/dist/shared/types/intentCheckpoint.js.map +1 -1
- package/dist/shared/types/remediationOutcome.d.ts +8 -8
- package/dist/shared/validation/citationGrounding.d.ts +29 -5
- package/dist/shared/validation/citationGrounding.d.ts.map +1 -1
- package/dist/shared/validation/citationGrounding.js +56 -9
- package/dist/shared/validation/citationGrounding.js.map +1 -1
- package/dist/shared/validation/designFindingGrounding.d.ts +30 -9
- package/dist/shared/validation/designFindingGrounding.d.ts.map +1 -1
- package/dist/shared/validation/designFindingGrounding.js +32 -12
- package/dist/shared/validation/designFindingGrounding.js.map +1 -1
- package/docs/audit-pkg/contracts.md +4 -5
- package/package.json +1 -1
- package/schemas/audit_result.schema.json +51 -0
- package/schemas/audit_results.schema.json +51 -0
- package/schemas/audit_task.schema.json +44 -0
- package/schemas/finding.schema.json +4 -0
|
@@ -1,4 +1,26 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
/**
|
|
3
|
+
* Remediate-only finding filters. One schema for the confirmed checkpoint and
|
|
4
|
+
* for the proposal the remediate intake summary carries into confirmation.
|
|
5
|
+
*/
|
|
6
|
+
export declare const IntentFiltersSchema: z.ZodObject<{
|
|
7
|
+
severity: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
8
|
+
lenses: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
9
|
+
packages: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
10
|
+
themes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
11
|
+
}, "strict", z.ZodTypeAny, {
|
|
12
|
+
lenses?: string[] | undefined;
|
|
13
|
+
severity?: string[] | undefined;
|
|
14
|
+
themes?: string[] | undefined;
|
|
15
|
+
packages?: string[] | undefined;
|
|
16
|
+
}, {
|
|
17
|
+
lenses?: string[] | undefined;
|
|
18
|
+
severity?: string[] | undefined;
|
|
19
|
+
themes?: string[] | undefined;
|
|
20
|
+
packages?: string[] | undefined;
|
|
21
|
+
}>;
|
|
22
|
+
/** True for a legacy draft checkpoint — see {@link LEGACY_DRAFT_CONFIRMED_BY}. */
|
|
23
|
+
export declare function isLegacyDraftCheckpoint(raw: unknown): boolean;
|
|
2
24
|
/**
|
|
3
25
|
* The accepted scope and intent for a run, confirmed by the host before
|
|
4
26
|
* planning. Single-sourced so both orchestrators share one shape: audit-code
|
|
@@ -10,12 +32,8 @@ import { z } from "zod";
|
|
|
10
32
|
export declare const IntentCheckpointSchema: z.ZodObject<{
|
|
11
33
|
schema_version: z.ZodLiteral<"intent-checkpoint/v1">;
|
|
12
34
|
confirmed_at: z.ZodString;
|
|
13
|
-
/**
|
|
14
|
-
|
|
15
|
-
* `"draft"` — preliminary checkpoint pre-populated by synthesize_intake worker;
|
|
16
|
-
* not yet confirmed; planning must not begin and filtering must not apply.
|
|
17
|
-
*/
|
|
18
|
-
confirmed_by: z.ZodEnum<["host", "draft"]>;
|
|
35
|
+
/** The host confirmed this checkpoint (the only accepted value). */
|
|
36
|
+
confirmed_by: z.ZodLiteral<"host">;
|
|
19
37
|
/** Human-readable description of the confirmed scope. */
|
|
20
38
|
scope_summary: z.ZodString;
|
|
21
39
|
/** Human-readable description of the goal (e.g. full-audit / delta). */
|
|
@@ -70,26 +88,6 @@ export declare const IntentCheckpointSchema: z.ZodObject<{
|
|
|
70
88
|
* authorization, so `custom` needs no second preview at close.
|
|
71
89
|
*/
|
|
72
90
|
closing_custom_command: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
73
|
-
/**
|
|
74
|
-
* Remediate-only, draft checkpoints: the intake worker's open questions,
|
|
75
|
-
* carried into the confirmation prompt. `blocking: true` alone blocks
|
|
76
|
-
* (INV-remediate-state-06).
|
|
77
|
-
*/
|
|
78
|
-
pre_draft_questions: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
79
|
-
id: z.ZodString;
|
|
80
|
-
question: z.ZodString;
|
|
81
|
-
blocking: z.ZodOptional<z.ZodBoolean>;
|
|
82
|
-
}, "strict", z.ZodTypeAny, {
|
|
83
|
-
id: string;
|
|
84
|
-
question: string;
|
|
85
|
-
blocking?: boolean | undefined;
|
|
86
|
-
}, {
|
|
87
|
-
id: string;
|
|
88
|
-
question: string;
|
|
89
|
-
blocking?: boolean | undefined;
|
|
90
|
-
}>, "many">>;
|
|
91
|
-
/** Remediate-only, draft checkpoints: how free-form intent was read. */
|
|
92
|
-
intent_interpretation: z.ZodOptional<z.ZodString>;
|
|
93
91
|
/**
|
|
94
92
|
* Clauses from free_form_intent that could not be encoded as lens-weight,
|
|
95
93
|
* priority, or scope signals. Each entry carries the original clause text,
|
|
@@ -250,7 +248,7 @@ export declare const IntentCheckpointSchema: z.ZodObject<{
|
|
|
250
248
|
}, "strict", z.ZodTypeAny, {
|
|
251
249
|
schema_version: "intent-checkpoint/v1";
|
|
252
250
|
confirmed_at: string;
|
|
253
|
-
confirmed_by: "host"
|
|
251
|
+
confirmed_by: "host";
|
|
254
252
|
scope_summary: string;
|
|
255
253
|
intent_summary: string;
|
|
256
254
|
excluded_scope?: {
|
|
@@ -267,12 +265,6 @@ export declare const IntentCheckpointSchema: z.ZodObject<{
|
|
|
267
265
|
} | undefined;
|
|
268
266
|
closing_action?: "push" | "custom" | "commit" | "none" | "open-pr" | "publish" | "tag" | undefined;
|
|
269
267
|
closing_custom_command?: string[] | undefined;
|
|
270
|
-
pre_draft_questions?: {
|
|
271
|
-
id: string;
|
|
272
|
-
question: string;
|
|
273
|
-
blocking?: boolean | undefined;
|
|
274
|
-
}[] | undefined;
|
|
275
|
-
intent_interpretation?: string | undefined;
|
|
276
268
|
constraint_clauses?: {
|
|
277
269
|
text: string;
|
|
278
270
|
checkpoint_question: string;
|
|
@@ -301,7 +293,7 @@ export declare const IntentCheckpointSchema: z.ZodObject<{
|
|
|
301
293
|
}, {
|
|
302
294
|
schema_version: "intent-checkpoint/v1";
|
|
303
295
|
confirmed_at: string;
|
|
304
|
-
confirmed_by: "host"
|
|
296
|
+
confirmed_by: "host";
|
|
305
297
|
scope_summary: string;
|
|
306
298
|
intent_summary: string;
|
|
307
299
|
excluded_scope?: {
|
|
@@ -318,12 +310,6 @@ export declare const IntentCheckpointSchema: z.ZodObject<{
|
|
|
318
310
|
} | undefined;
|
|
319
311
|
closing_action?: "push" | "custom" | "commit" | "none" | "open-pr" | "publish" | "tag" | undefined;
|
|
320
312
|
closing_custom_command?: string[] | undefined;
|
|
321
|
-
pre_draft_questions?: {
|
|
322
|
-
id: string;
|
|
323
|
-
question: string;
|
|
324
|
-
blocking?: boolean | undefined;
|
|
325
|
-
}[] | undefined;
|
|
326
|
-
intent_interpretation?: string | undefined;
|
|
327
313
|
constraint_clauses?: {
|
|
328
314
|
text: string;
|
|
329
315
|
checkpoint_question: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intentCheckpoint.d.ts","sourceRoot":"","sources":["../../../src/shared/types/intentCheckpoint.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"intentCheckpoint.d.ts","sourceRoot":"","sources":["../../../src/shared/types/intentCheckpoint.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,33 @@
|
|
|
1
|
+
// sites-pinned: tests/remediate/n-r04-intent-checkpoint.test.ts, tests/audit/intent-checkpoint-gate.test.ts
|
|
1
2
|
import { z } from "zod";
|
|
2
3
|
import { FileDispositionStatusSchema } from "./disposition.js";
|
|
3
4
|
import { CeilingSchema } from "./charter.js";
|
|
4
5
|
import { CLOSING_ACTIONS } from "./closingActions.js";
|
|
5
6
|
import { readOptionalJsonFile } from "../io/json.js";
|
|
7
|
+
/**
|
|
8
|
+
* Remediate-only finding filters. One schema for the confirmed checkpoint and
|
|
9
|
+
* for the proposal the remediate intake summary carries into confirmation.
|
|
10
|
+
*/
|
|
11
|
+
export const IntentFiltersSchema = z
|
|
12
|
+
.object({
|
|
13
|
+
severity: z.array(z.string()).optional(),
|
|
14
|
+
lenses: z.array(z.string()).optional(),
|
|
15
|
+
packages: z.array(z.string()).optional(),
|
|
16
|
+
themes: z.array(z.string()).optional(),
|
|
17
|
+
})
|
|
18
|
+
.strict();
|
|
19
|
+
/**
|
|
20
|
+
* The retired `confirmed_by` value of the remediate intake worker's draft
|
|
21
|
+
* checkpoint. The intake summary now carries the proposal, and a legacy draft
|
|
22
|
+
* file on disk reads as ABSENT (not confirmed) through every reader below.
|
|
23
|
+
*/
|
|
24
|
+
const LEGACY_DRAFT_CONFIRMED_BY = "draft";
|
|
25
|
+
/** True for a legacy draft checkpoint — see {@link LEGACY_DRAFT_CONFIRMED_BY}. */
|
|
26
|
+
export function isLegacyDraftCheckpoint(raw) {
|
|
27
|
+
return (raw !== null &&
|
|
28
|
+
typeof raw === "object" &&
|
|
29
|
+
raw.confirmed_by === LEGACY_DRAFT_CONFIRMED_BY);
|
|
30
|
+
}
|
|
6
31
|
/**
|
|
7
32
|
* The accepted scope and intent for a run, confirmed by the host before
|
|
8
33
|
* planning. Single-sourced so both orchestrators share one shape: audit-code
|
|
@@ -15,12 +40,8 @@ export const IntentCheckpointSchema = z
|
|
|
15
40
|
.object({
|
|
16
41
|
schema_version: z.literal("intent-checkpoint/v1"),
|
|
17
42
|
confirmed_at: z.string(),
|
|
18
|
-
/**
|
|
19
|
-
|
|
20
|
-
* `"draft"` — preliminary checkpoint pre-populated by synthesize_intake worker;
|
|
21
|
-
* not yet confirmed; planning must not begin and filtering must not apply.
|
|
22
|
-
*/
|
|
23
|
-
confirmed_by: z.enum(["host", "draft"]),
|
|
43
|
+
/** The host confirmed this checkpoint (the only accepted value). */
|
|
44
|
+
confirmed_by: z.literal("host"),
|
|
24
45
|
/** Human-readable description of the confirmed scope. */
|
|
25
46
|
scope_summary: z.string(),
|
|
26
47
|
/** Human-readable description of the goal (e.g. full-audit / delta). */
|
|
@@ -38,15 +59,7 @@ export const IntentCheckpointSchema = z
|
|
|
38
59
|
/** Path globs that must never be written to. */
|
|
39
60
|
must_not_touch: z.array(z.string()).optional(),
|
|
40
61
|
/** Remediate-only finding filters; audit-code ignores these. */
|
|
41
|
-
filters:
|
|
42
|
-
.object({
|
|
43
|
-
severity: z.array(z.string()).optional(),
|
|
44
|
-
lenses: z.array(z.string()).optional(),
|
|
45
|
-
packages: z.array(z.string()).optional(),
|
|
46
|
-
themes: z.array(z.string()).optional(),
|
|
47
|
-
})
|
|
48
|
-
.strict()
|
|
49
|
-
.optional(),
|
|
62
|
+
filters: IntentFiltersSchema.optional(),
|
|
50
63
|
/**
|
|
51
64
|
* Remediate-only: the closing action the HOST chose at confirmation, from
|
|
52
65
|
* the candidates the tool detected and presented (owner decision
|
|
@@ -61,22 +74,6 @@ export const IntentCheckpointSchema = z
|
|
|
61
74
|
* authorization, so `custom` needs no second preview at close.
|
|
62
75
|
*/
|
|
63
76
|
closing_custom_command: z.array(z.string().min(1)).min(1).optional(),
|
|
64
|
-
/**
|
|
65
|
-
* Remediate-only, draft checkpoints: the intake worker's open questions,
|
|
66
|
-
* carried into the confirmation prompt. `blocking: true` alone blocks
|
|
67
|
-
* (INV-remediate-state-06).
|
|
68
|
-
*/
|
|
69
|
-
pre_draft_questions: z
|
|
70
|
-
.array(z
|
|
71
|
-
.object({
|
|
72
|
-
id: z.string(),
|
|
73
|
-
question: z.string(),
|
|
74
|
-
blocking: z.boolean().optional(),
|
|
75
|
-
})
|
|
76
|
-
.strict())
|
|
77
|
-
.optional(),
|
|
78
|
-
/** Remediate-only, draft checkpoints: how free-form intent was read. */
|
|
79
|
-
intent_interpretation: z.string().optional(),
|
|
80
77
|
/**
|
|
81
78
|
* Clauses from free_form_intent that could not be encoded as lens-weight,
|
|
82
79
|
* priority, or scope signals. Each entry carries the original clause text,
|
|
@@ -417,7 +414,7 @@ function parseIntentCheckpointLenient(raw) {
|
|
|
417
414
|
*/
|
|
418
415
|
export async function readIntentCheckpoint(path, opts = {}) {
|
|
419
416
|
const raw = await readOptionalJsonFile(path);
|
|
420
|
-
if (raw === undefined || raw === null)
|
|
417
|
+
if (raw === undefined || raw === null || isLegacyDraftCheckpoint(raw))
|
|
421
418
|
return undefined;
|
|
422
419
|
const parsed = IntentCheckpointSchema.safeParse(raw);
|
|
423
420
|
if (parsed.success)
|
|
@@ -443,7 +440,7 @@ export async function readIntentCheckpoint(path, opts = {}) {
|
|
|
443
440
|
*/
|
|
444
441
|
export async function readIntentCheckpointLenient(path) {
|
|
445
442
|
const raw = await readOptionalJsonFile(path);
|
|
446
|
-
if (raw === undefined || raw === null) {
|
|
443
|
+
if (raw === undefined || raw === null || isLegacyDraftCheckpoint(raw)) {
|
|
447
444
|
return { checkpoint: undefined, rejected: [] };
|
|
448
445
|
}
|
|
449
446
|
return parseIntentCheckpointLenient(raw);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intentCheckpoint.js","sourceRoot":"","sources":["../../../src/shared/types/intentCheckpoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAErD
|
|
1
|
+
{"version":3,"file":"intentCheckpoint.js","sourceRoot":"","sources":["../../../src/shared/types/intentCheckpoint.ts"],"names":[],"mappings":"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"}
|
|
@@ -357,10 +357,10 @@ export declare const RemediationOutcomeSchema: z.ZodObject<{
|
|
|
357
357
|
mechanism: "red_green_test" | "build_lint_gate" | "read_at_head_verification" | "read_at_head_refutation";
|
|
358
358
|
mechanism_detail?: string | undefined;
|
|
359
359
|
} | undefined;
|
|
360
|
+
duration_ms?: number | undefined;
|
|
360
361
|
closing_status_reason?: string | undefined;
|
|
361
362
|
started_at?: string | undefined;
|
|
362
363
|
completed_at?: string | undefined;
|
|
363
|
-
duration_ms?: number | undefined;
|
|
364
364
|
mechanical_verification?: {
|
|
365
365
|
status: "verified_mechanically" | "lead_persists" | "skipped";
|
|
366
366
|
analyzer_id: string;
|
|
@@ -381,10 +381,10 @@ export declare const RemediationOutcomeSchema: z.ZodObject<{
|
|
|
381
381
|
mechanism: "red_green_test" | "build_lint_gate" | "read_at_head_verification" | "read_at_head_refutation";
|
|
382
382
|
mechanism_detail?: string | undefined;
|
|
383
383
|
} | undefined;
|
|
384
|
+
duration_ms?: number | undefined;
|
|
384
385
|
closing_status_reason?: string | undefined;
|
|
385
386
|
started_at?: string | undefined;
|
|
386
387
|
completed_at?: string | undefined;
|
|
387
|
-
duration_ms?: number | undefined;
|
|
388
388
|
mechanical_verification?: {
|
|
389
389
|
status: "verified_mechanically" | "lead_persists" | "skipped";
|
|
390
390
|
analyzer_id: string;
|
|
@@ -649,10 +649,10 @@ export declare const RemediationOutcomesReportSchema: z.ZodObject<{
|
|
|
649
649
|
mechanism: "red_green_test" | "build_lint_gate" | "read_at_head_verification" | "read_at_head_refutation";
|
|
650
650
|
mechanism_detail?: string | undefined;
|
|
651
651
|
} | undefined;
|
|
652
|
+
duration_ms?: number | undefined;
|
|
652
653
|
closing_status_reason?: string | undefined;
|
|
653
654
|
started_at?: string | undefined;
|
|
654
655
|
completed_at?: string | undefined;
|
|
655
|
-
duration_ms?: number | undefined;
|
|
656
656
|
mechanical_verification?: {
|
|
657
657
|
status: "verified_mechanically" | "lead_persists" | "skipped";
|
|
658
658
|
analyzer_id: string;
|
|
@@ -673,10 +673,10 @@ export declare const RemediationOutcomesReportSchema: z.ZodObject<{
|
|
|
673
673
|
mechanism: "red_green_test" | "build_lint_gate" | "read_at_head_verification" | "read_at_head_refutation";
|
|
674
674
|
mechanism_detail?: string | undefined;
|
|
675
675
|
} | undefined;
|
|
676
|
+
duration_ms?: number | undefined;
|
|
676
677
|
closing_status_reason?: string | undefined;
|
|
677
678
|
started_at?: string | undefined;
|
|
678
679
|
completed_at?: string | undefined;
|
|
679
|
-
duration_ms?: number | undefined;
|
|
680
680
|
mechanical_verification?: {
|
|
681
681
|
status: "verified_mechanically" | "lead_persists" | "skipped";
|
|
682
682
|
analyzer_id: string;
|
|
@@ -744,10 +744,10 @@ export declare const RemediationOutcomesReportSchema: z.ZodObject<{
|
|
|
744
744
|
mechanism: "red_green_test" | "build_lint_gate" | "read_at_head_verification" | "read_at_head_refutation";
|
|
745
745
|
mechanism_detail?: string | undefined;
|
|
746
746
|
} | undefined;
|
|
747
|
+
duration_ms?: number | undefined;
|
|
747
748
|
closing_status_reason?: string | undefined;
|
|
748
749
|
started_at?: string | undefined;
|
|
749
750
|
completed_at?: string | undefined;
|
|
750
|
-
duration_ms?: number | undefined;
|
|
751
751
|
mechanical_verification?: {
|
|
752
752
|
status: "verified_mechanically" | "lead_persists" | "skipped";
|
|
753
753
|
analyzer_id: string;
|
|
@@ -755,9 +755,9 @@ export declare const RemediationOutcomesReportSchema: z.ZodObject<{
|
|
|
755
755
|
} | undefined;
|
|
756
756
|
recorded_by_module?: string | undefined;
|
|
757
757
|
}[];
|
|
758
|
+
duration_ms?: number | undefined;
|
|
758
759
|
started_at?: string | undefined;
|
|
759
760
|
completed_at?: string | undefined;
|
|
760
|
-
duration_ms?: number | undefined;
|
|
761
761
|
}, {
|
|
762
762
|
contract_version: string;
|
|
763
763
|
total: number;
|
|
@@ -818,10 +818,10 @@ export declare const RemediationOutcomesReportSchema: z.ZodObject<{
|
|
|
818
818
|
mechanism: "red_green_test" | "build_lint_gate" | "read_at_head_verification" | "read_at_head_refutation";
|
|
819
819
|
mechanism_detail?: string | undefined;
|
|
820
820
|
} | undefined;
|
|
821
|
+
duration_ms?: number | undefined;
|
|
821
822
|
closing_status_reason?: string | undefined;
|
|
822
823
|
started_at?: string | undefined;
|
|
823
824
|
completed_at?: string | undefined;
|
|
824
|
-
duration_ms?: number | undefined;
|
|
825
825
|
mechanical_verification?: {
|
|
826
826
|
status: "verified_mechanically" | "lead_persists" | "skipped";
|
|
827
827
|
analyzer_id: string;
|
|
@@ -829,9 +829,9 @@ export declare const RemediationOutcomesReportSchema: z.ZodObject<{
|
|
|
829
829
|
} | undefined;
|
|
830
830
|
recorded_by_module?: string | undefined;
|
|
831
831
|
}[];
|
|
832
|
+
duration_ms?: number | undefined;
|
|
832
833
|
started_at?: string | undefined;
|
|
833
834
|
completed_at?: string | undefined;
|
|
834
|
-
duration_ms?: number | undefined;
|
|
835
835
|
}>;
|
|
836
836
|
export type RemediationOutcomesReport = z.infer<typeof RemediationOutcomesReportSchema>;
|
|
837
837
|
//# sourceMappingURL=remediationOutcome.d.ts.map
|
|
@@ -32,13 +32,37 @@ export interface ParsedCitation {
|
|
|
32
32
|
end_line?: number;
|
|
33
33
|
}
|
|
34
34
|
/**
|
|
35
|
-
* Parse `path`, `path:12`,
|
|
36
|
-
* when the reference carries no path
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
* which is the
|
|
35
|
+
* Parse `path`, `path:12`, `path:12-19`, or any of those with a `#<anchor>`
|
|
36
|
+
* suffix, into its parts. Returns `undefined` when the reference carries no path
|
|
37
|
+
* at all (empty, a bare line suffix, or a bare anchor). The path half is
|
|
38
|
+
* otherwise taken verbatim: resolving it is a separate step, so a component id
|
|
39
|
+
* or a checkpoint field parses here and fails to resolve later, which is the
|
|
40
|
+
* honest split.
|
|
41
|
+
*
|
|
42
|
+
* `#<anchor>` is the form every host prompt teaches FIRST, because a symbol
|
|
43
|
+
* outlives a line number ("Cite a SYMBOL, never a bare line number" —
|
|
44
|
+
* `docs/backlog/durable-traps.md`). A parser blind to it read the whole
|
|
45
|
+
* reference as a path and returned `unknown_path` for every citation an obedient
|
|
46
|
+
* lane wrote (measured 2026-09-17 against prompt 8's own worked example).
|
|
40
47
|
*/
|
|
41
48
|
export declare function parseCitationRef(ref: string): ParsedCitation | undefined;
|
|
49
|
+
/**
|
|
50
|
+
* Whether a reference names a SPAN inside its file — a `#<anchor>` symbol or
|
|
51
|
+
* heading, or a line suffix — rather than the file alone.
|
|
52
|
+
*
|
|
53
|
+
* The distinction decides whether a quote is REQUIRED. Naming a span and not
|
|
54
|
+
* quoting it is unverifiable by construction: nothing here resolves an anchor, so
|
|
55
|
+
* the only evidence that the span says what the author claims is the quote. The
|
|
56
|
+
* file alone makes no span claim, so a quoteless path-only citation is honest —
|
|
57
|
+
* and it is the ONLY truthful citation a lane can write for a file its evidence
|
|
58
|
+
* packet delivered as a tree entry with no excerpt.
|
|
59
|
+
*
|
|
60
|
+
* ONE home, beside the grammar it reads. A caller that answered this question for
|
|
61
|
+
* itself would re-derive the suffix rules and drift, which is exactly the split
|
|
62
|
+
* that left `provenancePath` and `parseCitationRef` disagreeing on four of the
|
|
63
|
+
* six taught reference forms (measured 2026-09-17).
|
|
64
|
+
*/
|
|
65
|
+
export declare function citationNamesASpan(ref: string): boolean;
|
|
42
66
|
/** Every citation reference embedded in a prose string, in source order. */
|
|
43
67
|
export declare function extractCitationRefs(text: string): string[];
|
|
44
68
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"citationGrounding.d.ts","sourceRoot":"","sources":["../../../src/shared/validation/citationGrounding.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"citationGrounding.d.ts","sourceRoot":"","sources":["../../../src/shared/validation/citationGrounding.ts"],"names":[],"mappings":"AA2CA,+FAA+F;AAC/F,MAAM,MAAM,gBAAgB,GAAG,CAAC,YAAY,EAAE,MAAM,KAAK,MAAM,CAAC;AAKhE;;;;;;;;GAQG;AACH,wBAAgB,8BAA8B,IAAI,gBAAgB,CAgBjE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAOxD;AAED,oFAAoF;AACpF,MAAM,WAAW,cAAc;IAC7B,iFAAiF;IACjF,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAeD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAaxE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAOvD;AAYD,4EAA4E;AAC5E,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAgB1D;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAMhF;AAED,uDAAuD;AACvD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACvC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,eAAe,GACvB,IAAI,GACJ,aAAa,GACb,cAAc,GACd,gBAAgB,GAChB,mBAAmB,GACnB,4BAA4B,GAC5B,iBAAiB,CAAC;AAEtB,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,2EAA2E;IAC3E,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,eAAe,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,iFAAiF;IACjF,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,0EAA0E;IAC1E,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5B,SAAS,EAAE,SAAS,aAAa,EAAE,CAAC;IACpC,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;CACzC;AAED,MAAM,WAAW,mBAAmB;IAClC,0DAA0D;IAC1D,aAAa,EAAE,MAAM,CAAC;IACtB,2DAA2D;IAC3D,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,iFAAiF;IACjF,0BAA0B,EAAE,OAAO,CAAC;CACrC;AA2CD;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,oBAAoB,GAC3B,mBAAmB,CA6KrB"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
|
+
// sites-pinned: tests/shared/citation-grounding.test.ts, tests/audit/charter-lane-gate.test.ts
|
|
2
|
+
// The grammar and the span test below are pinned by the first suite directly,
|
|
3
|
+
// and by the second through the lane gate that reads them.
|
|
1
4
|
/**
|
|
2
5
|
* Citation grounding — ONE core, two draws.
|
|
3
6
|
*
|
|
4
|
-
* A citation is `path`, `path:line`, or `path:start-end
|
|
7
|
+
* A citation is `path`, `path:line`, or `path:start-end`, any of them with an
|
|
8
|
+
* optional `#<symbol>` anchor. This module is the
|
|
5
9
|
* single authority that parses one, resolves its path against the repository,
|
|
6
10
|
* checks its line range against the file's REAL length, optionally re-verifies a
|
|
7
11
|
* quoted span, and — when the caller can say what evidence was actually handed to
|
|
@@ -86,28 +90,71 @@ export function countSourceLines(content) {
|
|
|
86
90
|
/** The `:<start>[-<end>]` suffix, anchored at the end of a reference. */
|
|
87
91
|
const LINE_SUFFIX_RE = /:(\d+)(?:-(\d+))?$/;
|
|
88
92
|
/**
|
|
89
|
-
*
|
|
90
|
-
*
|
|
91
|
-
*
|
|
92
|
-
*
|
|
93
|
-
* which is
|
|
93
|
+
* The `#<anchor>` suffix: a code symbol (`src/a.ts#DeliveryWindow`) or a
|
|
94
|
+
* markdown heading (`docs/goals.md#current-state`). It is stripped to reach the
|
|
95
|
+
* path, and the anchor itself is NOT returned — nothing checks an anchor, and
|
|
96
|
+
* returning it would be write-only data that reads as authoritative. What makes
|
|
97
|
+
* a symbol citation checkable is its QUOTE, which is re-verified against the
|
|
98
|
+
* file below.
|
|
99
|
+
*/
|
|
100
|
+
const ANCHOR_SUFFIX_RE = /#[^#]*$/;
|
|
101
|
+
/**
|
|
102
|
+
* Parse `path`, `path:12`, `path:12-19`, or any of those with a `#<anchor>`
|
|
103
|
+
* suffix, into its parts. Returns `undefined` when the reference carries no path
|
|
104
|
+
* at all (empty, a bare line suffix, or a bare anchor). The path half is
|
|
105
|
+
* otherwise taken verbatim: resolving it is a separate step, so a component id
|
|
106
|
+
* or a checkpoint field parses here and fails to resolve later, which is the
|
|
107
|
+
* honest split.
|
|
108
|
+
*
|
|
109
|
+
* `#<anchor>` is the form every host prompt teaches FIRST, because a symbol
|
|
110
|
+
* outlives a line number ("Cite a SYMBOL, never a bare line number" —
|
|
111
|
+
* `docs/backlog/durable-traps.md`). A parser blind to it read the whole
|
|
112
|
+
* reference as a path and returned `unknown_path` for every citation an obedient
|
|
113
|
+
* lane wrote (measured 2026-09-17 against prompt 8's own worked example).
|
|
94
114
|
*/
|
|
95
115
|
export function parseCitationRef(ref) {
|
|
96
116
|
const trimmed = ref.trim();
|
|
97
117
|
if (trimmed.length === 0)
|
|
98
118
|
return undefined;
|
|
99
119
|
const suffix = LINE_SUFFIX_RE.exec(trimmed);
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
const path = trimmed.slice(0, suffix.index);
|
|
120
|
+
const beforeLines = suffix ? trimmed.slice(0, suffix.index) : trimmed;
|
|
121
|
+
const path = beforeLines.replace(ANCHOR_SUFFIX_RE, "");
|
|
103
122
|
if (path.length === 0)
|
|
104
123
|
return undefined;
|
|
124
|
+
if (!suffix)
|
|
125
|
+
return { raw: ref, path };
|
|
105
126
|
const start = Number(suffix[1]);
|
|
106
127
|
const end = suffix[2] === undefined ? undefined : Number(suffix[2]);
|
|
107
128
|
return end === undefined
|
|
108
129
|
? { raw: ref, path, start_line: start }
|
|
109
130
|
: { raw: ref, path, start_line: start, end_line: end };
|
|
110
131
|
}
|
|
132
|
+
/**
|
|
133
|
+
* Whether a reference names a SPAN inside its file — a `#<anchor>` symbol or
|
|
134
|
+
* heading, or a line suffix — rather than the file alone.
|
|
135
|
+
*
|
|
136
|
+
* The distinction decides whether a quote is REQUIRED. Naming a span and not
|
|
137
|
+
* quoting it is unverifiable by construction: nothing here resolves an anchor, so
|
|
138
|
+
* the only evidence that the span says what the author claims is the quote. The
|
|
139
|
+
* file alone makes no span claim, so a quoteless path-only citation is honest —
|
|
140
|
+
* and it is the ONLY truthful citation a lane can write for a file its evidence
|
|
141
|
+
* packet delivered as a tree entry with no excerpt.
|
|
142
|
+
*
|
|
143
|
+
* ONE home, beside the grammar it reads. A caller that answered this question for
|
|
144
|
+
* itself would re-derive the suffix rules and drift, which is exactly the split
|
|
145
|
+
* that left `provenancePath` and `parseCitationRef` disagreeing on four of the
|
|
146
|
+
* six taught reference forms (measured 2026-09-17).
|
|
147
|
+
*/
|
|
148
|
+
export function citationNamesASpan(ref) {
|
|
149
|
+
const parsed = parseCitationRef(ref);
|
|
150
|
+
if (!parsed)
|
|
151
|
+
return false;
|
|
152
|
+
if (parsed.start_line !== undefined)
|
|
153
|
+
return true;
|
|
154
|
+
// `path` is `beforeLines` with the anchor stripped, so the two differ if and
|
|
155
|
+
// only if an anchor was there.
|
|
156
|
+
return ref.trim().replace(LINE_SUFFIX_RE, "") !== parsed.path;
|
|
157
|
+
}
|
|
111
158
|
/**
|
|
112
159
|
* Candidate `path[:start[-end]]` citations inside a prose string. A token must
|
|
113
160
|
* look like a path (contains a separator or a dot-extension) to be considered;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"citationGrounding.js","sourceRoot":"","sources":["../../../src/shared/validation/citationGrounding.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"citationGrounding.js","sourceRoot":"","sources":["../../../src/shared/validation/citationGrounding.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,15 +37,20 @@ export declare function groundDesignFinding(finding: Finding, knownPaths: Readon
|
|
|
37
37
|
* can forget.
|
|
38
38
|
*
|
|
39
39
|
* The `lead_lineage` STRIP is unconditional for the same reason, and it is the
|
|
40
|
-
* same "a separate call is a call someone forgets" argument
|
|
41
|
-
* host-
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
40
|
+
* same "a separate call is a call someone forgets" argument. Without it, a
|
|
41
|
+
* submission carrying `{producer: "host-forged", …}` lands verbatim in
|
|
42
|
+
* `contract_findings` / `conceptual_findings` and thereafter reads as a
|
|
43
|
+
* generation-bound deterministic lead: a claim wearing provenance it never had.
|
|
44
|
+
* Dropping the field leaves the row what it actually is — an unlineaged host
|
|
45
|
+
* finding, which the review prompt already calls out by count.
|
|
46
|
+
*
|
|
47
|
+
* ⚠ This strip no longer carries the DESIGN-REVIEW doors. Since 2026-09-17 the
|
|
48
|
+
* array door (`consumeArraySubmission`) parses each item with
|
|
49
|
+
* `SubmittedDesignFindingSchema` and REFUSES a supplied tool-owned verdict by
|
|
50
|
+
* name, which is strictly better than a silent strip. The strip stays because
|
|
51
|
+
* three callers never pass through that door — the charter clarification and
|
|
52
|
+
* charter fidelity executors, and the systemic challenge loop — and each of them
|
|
53
|
+
* ingests host-authored findings the same way.
|
|
49
54
|
*
|
|
50
55
|
* A host that legitimately re-emits a lead is unaffected in substance: the
|
|
51
56
|
* provenance it could not have verified is exactly the part the tool refuses to
|
|
@@ -63,4 +68,20 @@ export declare function groundDesignFindings(findings: Finding[], repoManifest:
|
|
|
63
68
|
path: string;
|
|
64
69
|
}>;
|
|
65
70
|
} | undefined): Finding[];
|
|
71
|
+
/**
|
|
72
|
+
* The normalized path set a repo manifest describes — the ONE way a caller turns
|
|
73
|
+
* a manifest into the `knownPaths` {@link groundDesignFinding} tests against.
|
|
74
|
+
*
|
|
75
|
+
* It exists because a second caller built that set by hand and got it wrong:
|
|
76
|
+
* the recovery verb's own universe passed the manifest paths through verbatim,
|
|
77
|
+
* while this module has always run them through `normalizeRepoPath` (which
|
|
78
|
+
* lowercases and forward-slashes). Two sets, one membership test, and a
|
|
79
|
+
* disagreement visible only on win32 or on a capitalized path — so a submission
|
|
80
|
+
* one boundary accepted the next one could still call ungrounded.
|
|
81
|
+
*/
|
|
82
|
+
export declare function repoPathUniverse(repoManifest: {
|
|
83
|
+
files?: Array<{
|
|
84
|
+
path: string;
|
|
85
|
+
}>;
|
|
86
|
+
} | undefined): ReadonlySet<string>;
|
|
66
87
|
//# sourceMappingURL=designFindingGrounding.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"designFindingGrounding.d.ts","sourceRoot":"","sources":["../../../src/shared/validation/designFindingGrounding.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"designFindingGrounding.d.ts","sourceRoot":"","sources":["../../../src/shared/validation/designFindingGrounding.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAQrE;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,GAC9B,gBAAgB,CA2BlB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,OAAO,EAAE,EACnB,YAAY,EAAE;IAAE,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,GAAG,SAAS,GAC5D,OAAO,EAAE,CAWX;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAC9B,YAAY,EAAE;IAAE,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,GAAG,SAAS,GAC5D,WAAW,CAAC,MAAM,CAAC,CAMrB"}
|