openplanr 1.14.3 → 1.15.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/dist/cli/commands/operate.d.ts.map +1 -1
- package/dist/cli/commands/operate.js +54 -87
- package/dist/cli/commands/operate.js.map +1 -1
- package/dist/services/operate/config.d.ts +4 -1
- package/dist/services/operate/config.d.ts.map +1 -1
- package/dist/services/operate/config.js +56 -2
- package/dist/services/operate/config.js.map +1 -1
- package/dist/services/operate/doctor.d.ts.map +1 -1
- package/dist/services/operate/doctor.js +15 -0
- package/dist/services/operate/doctor.js.map +1 -1
- package/dist/services/operate/evidence-classifications.d.ts +59 -0
- package/dist/services/operate/evidence-classifications.d.ts.map +1 -0
- package/dist/services/operate/evidence-classifications.js +132 -0
- package/dist/services/operate/evidence-classifications.js.map +1 -0
- package/dist/services/operate/evidence-diagnostics.d.ts +23 -0
- package/dist/services/operate/evidence-diagnostics.d.ts.map +1 -0
- package/dist/services/operate/evidence-diagnostics.js +152 -0
- package/dist/services/operate/evidence-diagnostics.js.map +1 -0
- package/dist/services/operate/evidence.d.ts.map +1 -1
- package/dist/services/operate/evidence.js +54 -7
- package/dist/services/operate/evidence.js.map +1 -1
- package/dist/services/operate/index.d.ts.map +1 -1
- package/dist/services/operate/index.js +459 -62
- package/dist/services/operate/index.js.map +1 -1
- package/dist/services/operate/interaction/action-service.d.ts +17 -0
- package/dist/services/operate/interaction/action-service.d.ts.map +1 -0
- package/dist/services/operate/interaction/action-service.js +84 -0
- package/dist/services/operate/interaction/action-service.js.map +1 -0
- package/dist/services/operate/interaction/answer-service.d.ts +33 -0
- package/dist/services/operate/interaction/answer-service.d.ts.map +1 -0
- package/dist/services/operate/interaction/answer-service.js +239 -0
- package/dist/services/operate/interaction/answer-service.js.map +1 -0
- package/dist/services/operate/interaction/charter-suggestions.d.ts +29 -0
- package/dist/services/operate/interaction/charter-suggestions.d.ts.map +1 -0
- package/dist/services/operate/interaction/charter-suggestions.js +104 -0
- package/dist/services/operate/interaction/charter-suggestions.js.map +1 -0
- package/dist/services/operate/interaction/confirmation-service.d.ts +30 -0
- package/dist/services/operate/interaction/confirmation-service.d.ts.map +1 -0
- package/dist/services/operate/interaction/confirmation-service.js +78 -0
- package/dist/services/operate/interaction/confirmation-service.js.map +1 -0
- package/dist/services/operate/interaction/question-engine.d.ts +39 -0
- package/dist/services/operate/interaction/question-engine.d.ts.map +1 -0
- package/dist/services/operate/interaction/question-engine.js +277 -0
- package/dist/services/operate/interaction/question-engine.js.map +1 -0
- package/dist/services/operate/interaction/question-registry.d.ts +16 -0
- package/dist/services/operate/interaction/question-registry.d.ts.map +1 -0
- package/dist/services/operate/interaction/question-registry.js +190 -0
- package/dist/services/operate/interaction/question-registry.js.map +1 -0
- package/dist/services/operate/interaction/session-service.d.ts +55 -0
- package/dist/services/operate/interaction/session-service.d.ts.map +1 -0
- package/dist/services/operate/interaction/session-service.js +272 -0
- package/dist/services/operate/interaction/session-service.js.map +1 -0
- package/dist/services/operate/interaction/terminal-renderer.d.ts +8 -0
- package/dist/services/operate/interaction/terminal-renderer.d.ts.map +1 -0
- package/dist/services/operate/interaction/terminal-renderer.js +103 -0
- package/dist/services/operate/interaction/terminal-renderer.js.map +1 -0
- package/dist/services/operate/maintenance.d.ts.map +1 -1
- package/dist/services/operate/maintenance.js +40 -3
- package/dist/services/operate/maintenance.js.map +1 -1
- package/dist/services/operate/redaction.d.ts +7 -0
- package/dist/services/operate/redaction.d.ts.map +1 -1
- package/dist/services/operate/redaction.js +110 -14
- package/dist/services/operate/redaction.js.map +1 -1
- package/dist/services/operate/types.d.ts +194 -1
- package/dist/services/operate/types.d.ts.map +1 -1
- package/dist/services/operate/types.js.map +1 -1
- package/dist/services/operate/workspace.d.ts +1 -0
- package/dist/services/operate/workspace.d.ts.map +1 -1
- package/dist/services/operate/workspace.js +2 -0
- package/dist/services/operate/workspace.js.map +1 -1
- package/dist/services/pipeline-package-service.d.ts +14 -0
- package/dist/services/pipeline-package-service.d.ts.map +1 -1
- package/dist/services/pipeline-package-service.js +45 -1
- package/dist/services/pipeline-package-service.js.map +1 -1
- package/dist/services/runtime-manager-service.d.ts +3 -0
- package/dist/services/runtime-manager-service.d.ts.map +1 -1
- package/dist/services/runtime-manager-service.js +26 -2
- package/dist/services/runtime-manager-service.js.map +1 -1
- package/package.json +3 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/services/operate/doctor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/services/operate/doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
export declare function classifyEvidenceDiagnostic(input: {
|
|
2
|
+
projectRoot: string;
|
|
3
|
+
candidateId: string;
|
|
4
|
+
status: 'false-positive' | 'confirmed-secret';
|
|
5
|
+
reason: string;
|
|
6
|
+
classifiedBy: string;
|
|
7
|
+
confirmationDigest?: string;
|
|
8
|
+
confirmed: boolean;
|
|
9
|
+
localRoot?: string;
|
|
10
|
+
now?: Date;
|
|
11
|
+
}): Promise<{
|
|
12
|
+
state: string;
|
|
13
|
+
candidateId: string;
|
|
14
|
+
action: import("./types.js").StructuredOperatingAction;
|
|
15
|
+
confirmation: import("./types.js").GuidedConfirmation | null;
|
|
16
|
+
valueDisclosed: boolean;
|
|
17
|
+
diagnostic?: undefined;
|
|
18
|
+
} | {
|
|
19
|
+
state: string;
|
|
20
|
+
diagnostic: {
|
|
21
|
+
classification: {
|
|
22
|
+
status: "false-positive" | "confirmed-secret";
|
|
23
|
+
ruleId: string;
|
|
24
|
+
contentDigest: `sha256:${string}`;
|
|
25
|
+
projectHead: `sha256:${string}`;
|
|
26
|
+
reason: string;
|
|
27
|
+
confirmationDigest: `sha256:${string}`;
|
|
28
|
+
classifiedAt: string;
|
|
29
|
+
classifiedBy: string;
|
|
30
|
+
};
|
|
31
|
+
kind: "evidence-diagnostic";
|
|
32
|
+
schemaVersion: "1.0.0";
|
|
33
|
+
protocolVersion: "1.2.0";
|
|
34
|
+
candidateId: string;
|
|
35
|
+
source: "repository" | "planr" | "git" | "import-json" | "import-csv" | "github" | "linear";
|
|
36
|
+
componentId: string;
|
|
37
|
+
location?: string;
|
|
38
|
+
line?: number;
|
|
39
|
+
ruleId: string;
|
|
40
|
+
category: "assignment" | "known-token" | "authorization" | "private-key" | "jwt" | "credential-url" | "structured-secret";
|
|
41
|
+
contentDigest: `sha256:${string}`;
|
|
42
|
+
projectHead: `sha256:${string}`;
|
|
43
|
+
valueDisclosed: false;
|
|
44
|
+
actions: import("./types.js").StructuredOperatingAction[];
|
|
45
|
+
};
|
|
46
|
+
candidateId?: undefined;
|
|
47
|
+
action?: undefined;
|
|
48
|
+
confirmation?: undefined;
|
|
49
|
+
valueDisclosed?: undefined;
|
|
50
|
+
}>;
|
|
51
|
+
export declare function purgeStaleEvidenceClassifications(input: {
|
|
52
|
+
projectRoot: string;
|
|
53
|
+
localRoot?: string;
|
|
54
|
+
purge?: boolean;
|
|
55
|
+
}): Promise<{
|
|
56
|
+
stale: number;
|
|
57
|
+
purged: number;
|
|
58
|
+
}>;
|
|
59
|
+
//# sourceMappingURL=evidence-classifications.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evidence-classifications.d.ts","sourceRoot":"","sources":["../../../src/services/operate/evidence-classifications.ts"],"names":[],"mappings":"AAuBA,wBAAsB,0BAA0B,CAAC,KAAK,EAAE;IACtD,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,gBAAgB,GAAG,kBAAkB,CAAC;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,IAAI,CAAC;CACZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkHA;AAED,wBAAsB,iCAAiC,CAAC,KAAK,EAAE;IAC7D,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAkB7C"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { appendFile, mkdir } from 'node:fs/promises';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { canonicalDigest, canonicalize } from './canonical.js';
|
|
4
|
+
import { listEvidenceDiagnostics, readEvidenceDiagnostic, writeEvidenceDiagnostic, } from './evidence-diagnostics.js';
|
|
5
|
+
import { createOperatingAction } from './interaction/action-service.js';
|
|
6
|
+
import { assertOperatingConfirmation } from './interaction/confirmation-service.js';
|
|
7
|
+
import { currentGuidedSessionBindings } from './interaction/session-service.js';
|
|
8
|
+
import { redactSensitiveText } from './redaction.js';
|
|
9
|
+
import { OperateError } from './types.js';
|
|
10
|
+
import { resolveOperatingPaths } from './workspace.js';
|
|
11
|
+
const HARD_BLOCK_CATEGORIES = new Set([
|
|
12
|
+
'known-token',
|
|
13
|
+
'private-key',
|
|
14
|
+
'jwt',
|
|
15
|
+
'authorization',
|
|
16
|
+
'credential-url',
|
|
17
|
+
]);
|
|
18
|
+
export async function classifyEvidenceDiagnostic(input) {
|
|
19
|
+
const diagnostic = await readEvidenceDiagnostic(input);
|
|
20
|
+
const bindings = await currentGuidedSessionBindings(input.projectRoot);
|
|
21
|
+
if (bindings.projectHead !== diagnostic.projectHead) {
|
|
22
|
+
throw new OperateError('E_OPERATE_ROUTE_DRIFT', 'The project head changed after evidence diagnosis.', { changedDimensions: ['projectHead'], candidateId: diagnostic.candidateId });
|
|
23
|
+
}
|
|
24
|
+
if (input.status === 'false-positive' && HARD_BLOCK_CATEGORIES.has(diagnostic.category)) {
|
|
25
|
+
throw new OperateError('E_OPERATE_SECRET_DETECTED', 'Known credential, authorization, private-key, JWT, and credential-URL signatures cannot be classified as false positives.', {
|
|
26
|
+
candidateId: diagnostic.candidateId,
|
|
27
|
+
ruleId: diagnostic.ruleId,
|
|
28
|
+
category: diagnostic.category,
|
|
29
|
+
valueDisclosed: false,
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
const reason = input.reason.replace(/\s+/g, ' ').trim();
|
|
33
|
+
if (!reason || reason.length > 1_000) {
|
|
34
|
+
throw new OperateError('E_OPERATE_CONFIG_INVALID', 'Evidence classification requires a bounded reason.');
|
|
35
|
+
}
|
|
36
|
+
const sanitizedReason = redactSensitiveText(reason);
|
|
37
|
+
if (sanitizedReason.redactions.length > 0) {
|
|
38
|
+
throw new OperateError('E_OPERATE_CONFIG_INVALID', 'Evidence classification reasons cannot contain sensitive material.');
|
|
39
|
+
}
|
|
40
|
+
const created = await createOperatingAction({
|
|
41
|
+
id: 'operate.evidence.classify',
|
|
42
|
+
label: input.status === 'false-positive'
|
|
43
|
+
? 'Classify this exact candidate as a false positive'
|
|
44
|
+
: 'Confirm that this candidate requires source remediation',
|
|
45
|
+
command: `planr operate evidence classify ${diagnostic.candidateId}`,
|
|
46
|
+
effect: 'machine-local-write',
|
|
47
|
+
confirmation: {
|
|
48
|
+
sessionId: `GIS-evidence-${diagnostic.candidateId.slice('EVC-'.length)}`,
|
|
49
|
+
confirmationScope: `operate.evidence.classify:${diagnostic.candidateId}:${input.status}`,
|
|
50
|
+
projectIdentity: bindings.projectIdentity,
|
|
51
|
+
projectHead: bindings.projectHead,
|
|
52
|
+
configHead: bindings.configHead,
|
|
53
|
+
eventHead: null,
|
|
54
|
+
arguments: [
|
|
55
|
+
input.status,
|
|
56
|
+
canonicalDigest(reason),
|
|
57
|
+
diagnostic.ruleId,
|
|
58
|
+
diagnostic.contentDigest,
|
|
59
|
+
],
|
|
60
|
+
destinations: [],
|
|
61
|
+
writes: [`evidence-diagnostics/${diagnostic.candidateId}.json`],
|
|
62
|
+
},
|
|
63
|
+
});
|
|
64
|
+
if (!input.confirmed || !input.confirmationDigest || !created.confirmation) {
|
|
65
|
+
return {
|
|
66
|
+
state: 'preview',
|
|
67
|
+
candidateId: diagnostic.candidateId,
|
|
68
|
+
action: created.action,
|
|
69
|
+
confirmation: created.confirmation,
|
|
70
|
+
valueDisclosed: false,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
const accepted = assertOperatingConfirmation({
|
|
74
|
+
expected: created.confirmation,
|
|
75
|
+
actionId: created.action.id,
|
|
76
|
+
confirmationDigest: input.confirmationDigest,
|
|
77
|
+
confirmed: input.confirmed,
|
|
78
|
+
now: input.now,
|
|
79
|
+
});
|
|
80
|
+
const classifiedAt = (input.now ?? new Date()).toISOString();
|
|
81
|
+
const next = {
|
|
82
|
+
...diagnostic,
|
|
83
|
+
classification: {
|
|
84
|
+
status: input.status,
|
|
85
|
+
ruleId: diagnostic.ruleId,
|
|
86
|
+
contentDigest: diagnostic.contentDigest,
|
|
87
|
+
projectHead: diagnostic.projectHead,
|
|
88
|
+
reason,
|
|
89
|
+
confirmationDigest: accepted.confirmationDigest,
|
|
90
|
+
classifiedAt,
|
|
91
|
+
classifiedBy: input.classifiedBy,
|
|
92
|
+
},
|
|
93
|
+
};
|
|
94
|
+
await writeEvidenceDiagnostic({ ...input, diagnostic: next });
|
|
95
|
+
const auditPath = path.join(resolveOperatingPaths(input.projectRoot, { localRoot: input.localRoot }).quarantine, 'classification-audit.jsonl');
|
|
96
|
+
await mkdir(path.dirname(auditPath), { recursive: true, mode: 0o700 });
|
|
97
|
+
await appendFile(auditPath, `${canonicalize({
|
|
98
|
+
candidateId: diagnostic.candidateId,
|
|
99
|
+
status: input.status,
|
|
100
|
+
ruleId: diagnostic.ruleId,
|
|
101
|
+
contentDigest: diagnostic.contentDigest,
|
|
102
|
+
projectHead: diagnostic.projectHead,
|
|
103
|
+
reasonDigest: canonicalDigest(reason),
|
|
104
|
+
confirmationDigest: accepted.confirmationDigest,
|
|
105
|
+
classifiedAt,
|
|
106
|
+
classifiedBy: input.classifiedBy,
|
|
107
|
+
valueDisclosed: false,
|
|
108
|
+
})}\n`, { mode: 0o600 });
|
|
109
|
+
return { state: 'classified', diagnostic: next };
|
|
110
|
+
}
|
|
111
|
+
export async function purgeStaleEvidenceClassifications(input) {
|
|
112
|
+
const bindings = await currentGuidedSessionBindings(input.projectRoot);
|
|
113
|
+
const diagnostics = await listEvidenceDiagnostics(input);
|
|
114
|
+
let stale = 0;
|
|
115
|
+
let purged = 0;
|
|
116
|
+
for (const diagnostic of diagnostics) {
|
|
117
|
+
if (!diagnostic.classification || diagnostic.projectHead === bindings.projectHead)
|
|
118
|
+
continue;
|
|
119
|
+
stale += 1;
|
|
120
|
+
if (!input.purge)
|
|
121
|
+
continue;
|
|
122
|
+
const { classification: _classification, ...current } = diagnostic;
|
|
123
|
+
await writeEvidenceDiagnostic({
|
|
124
|
+
projectRoot: input.projectRoot,
|
|
125
|
+
localRoot: input.localRoot,
|
|
126
|
+
diagnostic: current,
|
|
127
|
+
});
|
|
128
|
+
purged += 1;
|
|
129
|
+
}
|
|
130
|
+
return { stale, purged };
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=evidence-classifications.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evidence-classifications.js","sourceRoot":"","sources":["../../../src/services/operate/evidence-classifications.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { SecretDetectionMetadata } from './redaction.js';
|
|
2
|
+
import { type CollectedEvidenceItem, type EvidenceDiagnostic } from './types.js';
|
|
3
|
+
export declare function createEvidenceDiagnostic(input: {
|
|
4
|
+
projectRoot: string;
|
|
5
|
+
item: CollectedEvidenceItem;
|
|
6
|
+
detection: SecretDetectionMetadata;
|
|
7
|
+
localRoot?: string;
|
|
8
|
+
}): Promise<EvidenceDiagnostic>;
|
|
9
|
+
export declare function readEvidenceDiagnostic(input: {
|
|
10
|
+
projectRoot: string;
|
|
11
|
+
candidateId: string;
|
|
12
|
+
localRoot?: string;
|
|
13
|
+
}): Promise<EvidenceDiagnostic>;
|
|
14
|
+
export declare function listEvidenceDiagnostics(input: {
|
|
15
|
+
projectRoot: string;
|
|
16
|
+
localRoot?: string;
|
|
17
|
+
}): Promise<EvidenceDiagnostic[]>;
|
|
18
|
+
export declare function writeEvidenceDiagnostic(input: {
|
|
19
|
+
projectRoot: string;
|
|
20
|
+
diagnostic: EvidenceDiagnostic;
|
|
21
|
+
localRoot?: string;
|
|
22
|
+
}): Promise<void>;
|
|
23
|
+
//# sourceMappingURL=evidence-diagnostics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evidence-diagnostics.d.ts","sourceRoot":"","sources":["../../../src/services/operate/evidence-diagnostics.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,KAAK,qBAAqB,EAAE,KAAK,kBAAkB,EAAgB,MAAM,YAAY,CAAC;AA4D/F,wBAAsB,wBAAwB,CAAC,KAAK,EAAE;IACpD,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,qBAAqB,CAAC;IAC5B,SAAS,EAAE,uBAAuB,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAwE9B;AAED,wBAAsB,sBAAsB,CAAC,KAAK,EAAE;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAa9B;AAED,wBAAsB,uBAAuB,CAAC,KAAK,EAAE;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAehC;AAED,wBAAsB,uBAAuB,CAAC,KAAK,EAAE;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,kBAAkB,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC,IAAI,CAAC,CAEhB"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { chmod, mkdir, readdir, readFile, rename, writeFile } from 'node:fs/promises';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { resolveGuidedInteractionValidators } from '../pipeline-package-service.js';
|
|
4
|
+
import { canonicalDigest, canonicalize, sha256Digest } from './canonical.js';
|
|
5
|
+
import { createOperatingAction } from './interaction/action-service.js';
|
|
6
|
+
import { currentGuidedSessionBindings } from './interaction/session-service.js';
|
|
7
|
+
import { OperateError } from './types.js';
|
|
8
|
+
import { resolveOperatingPaths } from './workspace.js';
|
|
9
|
+
const CANDIDATE_ID = /^EVC-[A-Za-z0-9._-]{8,128}$/;
|
|
10
|
+
function diagnosticDirectory(projectRoot, localRoot) {
|
|
11
|
+
return path.join(resolveOperatingPaths(projectRoot, { localRoot }).quarantine, 'diagnostics');
|
|
12
|
+
}
|
|
13
|
+
function diagnosticPath(projectRoot, candidateId, localRoot) {
|
|
14
|
+
if (!CANDIDATE_ID.test(candidateId)) {
|
|
15
|
+
throw new OperateError('E_OPERATE_CONFIG_INVALID', 'Evidence candidate ID is invalid.');
|
|
16
|
+
}
|
|
17
|
+
return path.join(diagnosticDirectory(projectRoot, localRoot), `${candidateId}.json`);
|
|
18
|
+
}
|
|
19
|
+
function diagnosticSource(item) {
|
|
20
|
+
if (item.source === 'file-import') {
|
|
21
|
+
return item.location.toLowerCase().endsWith('.csv') ? 'import-csv' : 'import-json';
|
|
22
|
+
}
|
|
23
|
+
if (['repository', 'planr', 'git', 'github', 'linear'].includes(item.source)) {
|
|
24
|
+
return item.source;
|
|
25
|
+
}
|
|
26
|
+
return 'repository';
|
|
27
|
+
}
|
|
28
|
+
function safeLocation(item) {
|
|
29
|
+
const value = item.location.replaceAll('\\', '/').trim();
|
|
30
|
+
if (!value ||
|
|
31
|
+
path.posix.isAbsolute(value) ||
|
|
32
|
+
/^[A-Za-z]:\//.test(value) ||
|
|
33
|
+
value.split('/').includes('..') ||
|
|
34
|
+
/(?:\/Users\/|\/home\/|[A-Za-z]:\/Users\/)/i.test(value)) {
|
|
35
|
+
return undefined;
|
|
36
|
+
}
|
|
37
|
+
return value.slice(0, 4_096);
|
|
38
|
+
}
|
|
39
|
+
async function atomicDiagnosticWrite(projectRoot, diagnostic, localRoot) {
|
|
40
|
+
const validators = await resolveGuidedInteractionValidators();
|
|
41
|
+
if (validators.validateEvidenceDiagnostic(diagnostic).length > 0) {
|
|
42
|
+
throw new OperateError('E_OPERATE_CONFIG_INVALID', `Evidence diagnostic ${diagnostic.candidateId} failed Protocol v1.2 validation.`);
|
|
43
|
+
}
|
|
44
|
+
const target = diagnosticPath(projectRoot, diagnostic.candidateId, localRoot);
|
|
45
|
+
await mkdir(path.dirname(target), { recursive: true, mode: 0o700 });
|
|
46
|
+
const temporary = `${target}.${process.pid}.tmp`;
|
|
47
|
+
await writeFile(temporary, `${canonicalize(diagnostic)}\n`, { mode: 0o600 });
|
|
48
|
+
await rename(temporary, target);
|
|
49
|
+
await chmod(target, 0o600);
|
|
50
|
+
}
|
|
51
|
+
export async function createEvidenceDiagnostic(input) {
|
|
52
|
+
const bindings = await currentGuidedSessionBindings(input.projectRoot);
|
|
53
|
+
const contentDigest = sha256Digest(input.item.content);
|
|
54
|
+
const candidateId = `EVC-${canonicalDigest({
|
|
55
|
+
source: input.item.source,
|
|
56
|
+
componentId: input.item.repository?.componentId ?? 'control',
|
|
57
|
+
location: input.item.location,
|
|
58
|
+
line: input.detection.line,
|
|
59
|
+
ruleId: input.detection.ruleId,
|
|
60
|
+
contentDigest,
|
|
61
|
+
projectHead: bindings.projectHead,
|
|
62
|
+
}).slice('sha256:'.length, 'sha256:'.length + 24)}`;
|
|
63
|
+
const componentId = input.item.repository?.componentId ?? 'control';
|
|
64
|
+
const diagnose = await createOperatingAction({
|
|
65
|
+
id: 'operate.evidence.diagnose',
|
|
66
|
+
label: 'Inspect the safe evidence diagnostic',
|
|
67
|
+
command: `planr operate evidence diagnose ${candidateId}`,
|
|
68
|
+
effect: 'read-only',
|
|
69
|
+
recommended: true,
|
|
70
|
+
});
|
|
71
|
+
const classify = await createOperatingAction({
|
|
72
|
+
id: 'operate.evidence.classify',
|
|
73
|
+
label: 'Review an eligible exact false-positive classification',
|
|
74
|
+
command: `planr operate evidence classify ${candidateId}`,
|
|
75
|
+
effect: 'machine-local-write',
|
|
76
|
+
confirmation: {
|
|
77
|
+
sessionId: `GIS-evidence-${candidateId.slice('EVC-'.length)}`,
|
|
78
|
+
confirmationScope: `operate.evidence.classify:${candidateId}`,
|
|
79
|
+
projectIdentity: bindings.projectIdentity,
|
|
80
|
+
projectHead: bindings.projectHead,
|
|
81
|
+
configHead: bindings.configHead,
|
|
82
|
+
eventHead: null,
|
|
83
|
+
arguments: [
|
|
84
|
+
input.detection.ruleId,
|
|
85
|
+
contentDigest,
|
|
86
|
+
canonicalDigest({ location: safeLocation(input.item) ?? null }),
|
|
87
|
+
],
|
|
88
|
+
destinations: [],
|
|
89
|
+
writes: [`evidence-diagnostics/${candidateId}.json`],
|
|
90
|
+
},
|
|
91
|
+
});
|
|
92
|
+
const diagnostic = {
|
|
93
|
+
kind: 'evidence-diagnostic',
|
|
94
|
+
schemaVersion: '1.0.0',
|
|
95
|
+
protocolVersion: '1.2.0',
|
|
96
|
+
candidateId,
|
|
97
|
+
source: diagnosticSource(input.item),
|
|
98
|
+
componentId,
|
|
99
|
+
...(safeLocation(input.item) ? { location: safeLocation(input.item) } : {}),
|
|
100
|
+
...(Number.isInteger(input.detection.line) ? { line: input.detection.line } : {}),
|
|
101
|
+
ruleId: input.detection.ruleId,
|
|
102
|
+
category: input.detection.category,
|
|
103
|
+
contentDigest,
|
|
104
|
+
projectHead: bindings.projectHead,
|
|
105
|
+
valueDisclosed: false,
|
|
106
|
+
actions: [diagnose.action, classify.action],
|
|
107
|
+
};
|
|
108
|
+
const existing = await readEvidenceDiagnostic({
|
|
109
|
+
projectRoot: input.projectRoot,
|
|
110
|
+
candidateId,
|
|
111
|
+
localRoot: input.localRoot,
|
|
112
|
+
}).catch(() => null);
|
|
113
|
+
if (existing &&
|
|
114
|
+
existing.ruleId === diagnostic.ruleId &&
|
|
115
|
+
existing.contentDigest === diagnostic.contentDigest &&
|
|
116
|
+
existing.projectHead === diagnostic.projectHead) {
|
|
117
|
+
return existing;
|
|
118
|
+
}
|
|
119
|
+
await atomicDiagnosticWrite(input.projectRoot, diagnostic, input.localRoot);
|
|
120
|
+
return diagnostic;
|
|
121
|
+
}
|
|
122
|
+
export async function readEvidenceDiagnostic(input) {
|
|
123
|
+
const target = diagnosticPath(input.projectRoot, input.candidateId, input.localRoot);
|
|
124
|
+
try {
|
|
125
|
+
const diagnostic = JSON.parse(await readFile(target, 'utf8'));
|
|
126
|
+
const validators = await resolveGuidedInteractionValidators();
|
|
127
|
+
if (validators.validateEvidenceDiagnostic(diagnostic).length > 0)
|
|
128
|
+
throw new Error('invalid');
|
|
129
|
+
return diagnostic;
|
|
130
|
+
}
|
|
131
|
+
catch {
|
|
132
|
+
throw new OperateError('E_OPERATE_STATE_INVALID', `Evidence diagnostic ${input.candidateId} is unavailable or invalid.`);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
export async function listEvidenceDiagnostics(input) {
|
|
136
|
+
const directory = diagnosticDirectory(input.projectRoot, input.localRoot);
|
|
137
|
+
const names = (await readdir(directory).catch(() => []))
|
|
138
|
+
.filter((name) => /^EVC-[A-Za-z0-9._-]+\.json$/.test(name))
|
|
139
|
+
.sort();
|
|
140
|
+
const diagnostics = [];
|
|
141
|
+
for (const name of names) {
|
|
142
|
+
diagnostics.push(await readEvidenceDiagnostic({
|
|
143
|
+
...input,
|
|
144
|
+
candidateId: name.slice(0, -'.json'.length),
|
|
145
|
+
}));
|
|
146
|
+
}
|
|
147
|
+
return diagnostics;
|
|
148
|
+
}
|
|
149
|
+
export async function writeEvidenceDiagnostic(input) {
|
|
150
|
+
await atomicDiagnosticWrite(input.projectRoot, input.diagnostic, input.localRoot);
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=evidence-diagnostics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evidence-diagnostics.js","sourceRoot":"","sources":["../../../src/services/operate/evidence-diagnostics.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evidence.d.ts","sourceRoot":"","sources":["../../../src/services/operate/evidence.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"evidence.d.ts","sourceRoot":"","sources":["../../../src/services/operate/evidence.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,10 +3,11 @@ import path from 'node:path';
|
|
|
3
3
|
import { loadConfig } from '../config-service.js';
|
|
4
4
|
import { resolveApiKey } from '../credentials-service.js';
|
|
5
5
|
import { canonicalDigest, canonicalize } from './canonical.js';
|
|
6
|
+
import { createEvidenceDiagnostic } from './evidence-diagnostics.js';
|
|
6
7
|
import { readImportedEvidenceFile } from './evidence-import.js';
|
|
7
8
|
import { assertOperatingArtifact } from './protocol.js';
|
|
8
9
|
import { executeGitHubReadOnly, executeGitReadOnly, executeLinearReadOnlyQuery, executeRestReadOnlyJson, } from './read-only-providers.js';
|
|
9
|
-
import { compareSensitivity, sanitizeEvidenceItem } from './redaction.js';
|
|
10
|
+
import { compareSensitivity, detectSecretMetadata, sanitizeEvidenceItem } from './redaction.js';
|
|
10
11
|
import { OPERATE_PROTOCOL_VERSION, OPERATE_SCHEMA_VERSION, OperateError, } from './types.js';
|
|
11
12
|
import { isPathInside, resolveOperatingPaths } from './workspace.js';
|
|
12
13
|
const TEXT_EXTENSIONS = new Set([
|
|
@@ -908,10 +909,57 @@ export async function collectOperatingEvidence(input) {
|
|
|
908
909
|
if (rejected.length > 0) {
|
|
909
910
|
warnings.push(`${rejected.length} evidence item(s) exceeded the configured sensitivity ceiling.`);
|
|
910
911
|
}
|
|
911
|
-
const flattened =
|
|
912
|
-
|
|
913
|
-
.
|
|
914
|
-
.
|
|
912
|
+
const flattened = [];
|
|
913
|
+
for (const item of raw
|
|
914
|
+
.filter((candidate) => compareSensitivity(candidate.sensitivity, input.sensitivityCeiling) <= 0)
|
|
915
|
+
.slice(0, input.budgets.maxItems)) {
|
|
916
|
+
try {
|
|
917
|
+
flattened.push(sanitizeEvidenceItem(item));
|
|
918
|
+
}
|
|
919
|
+
catch (error) {
|
|
920
|
+
if (!(error instanceof OperateError) || error.code !== 'E_OPERATE_SECRET_DETECTED') {
|
|
921
|
+
throw error;
|
|
922
|
+
}
|
|
923
|
+
const details = error.details ?? {};
|
|
924
|
+
const fallback = detectSecretMetadata(item.content)[0];
|
|
925
|
+
const ruleId = typeof details.ruleId === 'string' ? details.ruleId : (fallback?.ruleId ?? 'unknown.v1');
|
|
926
|
+
const category = typeof details.category === 'string'
|
|
927
|
+
? details.category
|
|
928
|
+
: (fallback?.category ?? 'structured-secret');
|
|
929
|
+
const diagnostic = await createEvidenceDiagnostic({
|
|
930
|
+
projectRoot: input.projectRoot,
|
|
931
|
+
item,
|
|
932
|
+
localRoot: input.localRoot,
|
|
933
|
+
detection: {
|
|
934
|
+
ruleId,
|
|
935
|
+
category,
|
|
936
|
+
line: typeof details.line === 'number' && Number.isInteger(details.line)
|
|
937
|
+
? details.line
|
|
938
|
+
: (fallback?.line ?? 1),
|
|
939
|
+
hardBlock: typeof details.hardBlock === 'boolean'
|
|
940
|
+
? details.hardBlock
|
|
941
|
+
: (fallback?.hardBlock ?? false),
|
|
942
|
+
},
|
|
943
|
+
});
|
|
944
|
+
if (diagnostic.classification?.status === 'false-positive') {
|
|
945
|
+
warnings.push(`Evidence candidate ${diagnostic.candidateId} was omitted under its exact false-positive classification.`);
|
|
946
|
+
continue;
|
|
947
|
+
}
|
|
948
|
+
throw new OperateError('E_OPERATE_SECRET_DETECTED', `Evidence candidate ${diagnostic.candidateId} requires safe review before advisors can run.`, {
|
|
949
|
+
candidateId: diagnostic.candidateId,
|
|
950
|
+
source: diagnostic.source,
|
|
951
|
+
componentId: diagnostic.componentId,
|
|
952
|
+
...(diagnostic.location ? { location: diagnostic.location } : {}),
|
|
953
|
+
...(diagnostic.line ? { line: diagnostic.line } : {}),
|
|
954
|
+
ruleId: diagnostic.ruleId,
|
|
955
|
+
category: diagnostic.category,
|
|
956
|
+
contentDigest: diagnostic.contentDigest,
|
|
957
|
+
projectHead: diagnostic.projectHead,
|
|
958
|
+
valueDisclosed: false,
|
|
959
|
+
recoveryCommand: `planr operate evidence diagnose ${diagnostic.candidateId} --json`,
|
|
960
|
+
});
|
|
961
|
+
}
|
|
962
|
+
}
|
|
915
963
|
if (Date.now() >= deadline) {
|
|
916
964
|
truncated = true;
|
|
917
965
|
warnings.push('Evidence collection reached the configured duration budget.');
|
|
@@ -976,8 +1024,7 @@ export async function collectOperatingEvidence(input) {
|
|
|
976
1024
|
export async function unqualifiedCommercialEvidenceGaps(input) {
|
|
977
1025
|
const unqualified = input.evidence.items
|
|
978
1026
|
.filter((item) => item.claimTypes.includes('commercial-metric') &&
|
|
979
|
-
(!item.metric ||
|
|
980
|
-
!item.metric.identity.trim() ||
|
|
1027
|
+
(!item.metric?.identity.trim() ||
|
|
981
1028
|
!item.metric.query.trim() ||
|
|
982
1029
|
!validIsoWindow(item.metric.observedFrom, item.metric.observedTo)))
|
|
983
1030
|
.sort((left, right) => left.source.localeCompare(right.source) ||
|