@zigrivers/mmr 1.3.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +422 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +4 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/ack.d.ts +11 -0
- package/dist/commands/ack.d.ts.map +1 -0
- package/dist/commands/ack.js +123 -0
- package/dist/commands/ack.js.map +1 -0
- package/dist/commands/config.d.ts +5 -0
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +248 -14
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/jobs.d.ts.map +1 -1
- package/dist/commands/jobs.js +3 -4
- package/dist/commands/jobs.js.map +1 -1
- package/dist/commands/reconcile.d.ts.map +1 -1
- package/dist/commands/reconcile.js +12 -5
- package/dist/commands/reconcile.js.map +1 -1
- package/dist/commands/results.d.ts.map +1 -1
- package/dist/commands/results.js +13 -5
- package/dist/commands/results.js.map +1 -1
- package/dist/commands/review.d.ts +25 -0
- package/dist/commands/review.d.ts.map +1 -1
- package/dist/commands/review.js +457 -44
- package/dist/commands/review.js.map +1 -1
- package/dist/commands/sessions.d.ts +58 -0
- package/dist/commands/sessions.d.ts.map +1 -0
- package/dist/commands/sessions.js +266 -0
- package/dist/commands/sessions.js.map +1 -0
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +2 -3
- package/dist/commands/status.js.map +1 -1
- package/dist/config/defaults.d.ts +2 -2
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +66 -0
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/loader.d.ts +22 -0
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +279 -36
- package/dist/config/loader.js.map +1 -1
- package/dist/config/schema.d.ts +869 -53
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +151 -4
- package/dist/config/schema.js.map +1 -1
- package/dist/core/ack-store.d.ts +109 -0
- package/dist/core/ack-store.d.ts.map +1 -0
- package/dist/core/ack-store.js +363 -0
- package/dist/core/ack-store.js.map +1 -0
- package/dist/core/auth.d.ts +10 -1
- package/dist/core/auth.d.ts.map +1 -1
- package/dist/core/auth.js +65 -2
- package/dist/core/auth.js.map +1 -1
- package/dist/core/compensator.d.ts +32 -4
- package/dist/core/compensator.d.ts.map +1 -1
- package/dist/core/compensator.js +118 -15
- package/dist/core/compensator.js.map +1 -1
- package/dist/core/diff-introspect.d.ts +21 -0
- package/dist/core/diff-introspect.d.ts.map +1 -0
- package/dist/core/diff-introspect.js +42 -0
- package/dist/core/diff-introspect.js.map +1 -0
- package/dist/core/dispatcher.d.ts +7 -0
- package/dist/core/dispatcher.d.ts.map +1 -1
- package/dist/core/dispatcher.js +21 -3
- package/dist/core/dispatcher.js.map +1 -1
- package/dist/core/git-show.d.ts +31 -0
- package/dist/core/git-show.d.ts.map +1 -0
- package/dist/core/git-show.js +72 -0
- package/dist/core/git-show.js.map +1 -0
- package/dist/core/http-dispatcher.d.ts +20 -0
- package/dist/core/http-dispatcher.d.ts.map +1 -0
- package/dist/core/http-dispatcher.js +125 -0
- package/dist/core/http-dispatcher.js.map +1 -0
- package/dist/core/job-store.d.ts +7 -1
- package/dist/core/job-store.d.ts.map +1 -1
- package/dist/core/job-store.js +21 -1
- package/dist/core/job-store.js.map +1 -1
- package/dist/core/jsonpath.d.ts +15 -0
- package/dist/core/jsonpath.d.ts.map +1 -0
- package/dist/core/jsonpath.js +63 -0
- package/dist/core/jsonpath.js.map +1 -0
- package/dist/core/oss-examples.d.ts +18 -0
- package/dist/core/oss-examples.d.ts.map +1 -0
- package/dist/core/oss-examples.js +66 -0
- package/dist/core/oss-examples.js.map +1 -0
- package/dist/core/parser.d.ts +8 -3
- package/dist/core/parser.d.ts.map +1 -1
- package/dist/core/parser.js +157 -6
- package/dist/core/parser.js.map +1 -1
- package/dist/core/project-root.d.ts +10 -0
- package/dist/core/project-root.d.ts.map +1 -0
- package/dist/core/project-root.js +23 -0
- package/dist/core/project-root.js.map +1 -0
- package/dist/core/reconciler.d.ts +1 -1
- package/dist/core/reconciler.d.ts.map +1 -1
- package/dist/core/reconciler.js +100 -18
- package/dist/core/reconciler.js.map +1 -1
- package/dist/core/redact.d.ts +17 -0
- package/dist/core/redact.d.ts.map +1 -0
- package/dist/core/redact.js +140 -0
- package/dist/core/redact.js.map +1 -0
- package/dist/core/results-pipeline.d.ts +8 -2
- package/dist/core/results-pipeline.d.ts.map +1 -1
- package/dist/core/results-pipeline.js +50 -3
- package/dist/core/results-pipeline.js.map +1 -1
- package/dist/core/runtime-probe.d.ts +14 -0
- package/dist/core/runtime-probe.d.ts.map +1 -0
- package/dist/core/runtime-probe.js +57 -0
- package/dist/core/runtime-probe.js.map +1 -0
- package/dist/core/stable-id.d.ts +19 -0
- package/dist/core/stable-id.d.ts.map +1 -0
- package/dist/core/stable-id.js +148 -0
- package/dist/core/stable-id.js.map +1 -0
- package/dist/core/trust-mode.d.ts +29 -0
- package/dist/core/trust-mode.d.ts.map +1 -0
- package/dist/core/trust-mode.js +103 -0
- package/dist/core/trust-mode.js.map +1 -0
- package/dist/formatters/markdown.d.ts.map +1 -1
- package/dist/formatters/markdown.js +9 -0
- package/dist/formatters/markdown.js.map +1 -1
- package/dist/formatters/text.d.ts.map +1 -1
- package/dist/formatters/text.js +9 -0
- package/dist/formatters/text.js.map +1 -1
- package/dist/types.d.ts +44 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +2 -2
package/dist/core/job-store.d.ts
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
|
-
import type { JobMetadata, ChannelJobEntry, Severity, OutputFormat } from '../types.js';
|
|
1
|
+
import type { JobMetadata, ChannelJobEntry, Severity, OutputFormat, ReviewControls } from '../types.js';
|
|
2
2
|
import type { ReconciledResults } from '../types.js';
|
|
3
3
|
export interface CreateJobOpts {
|
|
4
4
|
fix_threshold: Severity;
|
|
5
5
|
format: OutputFormat;
|
|
6
6
|
channels: string[];
|
|
7
|
+
session_id?: string;
|
|
8
|
+
round?: number;
|
|
9
|
+
review_controls?: ReviewControls;
|
|
10
|
+
trust_mode?: 'base-ref' | 'untrusted-head' | 'non-git';
|
|
11
|
+
proposed_acks?: string[];
|
|
12
|
+
proposed_config_change?: boolean;
|
|
7
13
|
}
|
|
8
14
|
export declare class JobStore {
|
|
9
15
|
private readonly jobsDir;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"job-store.d.ts","sourceRoot":"","sources":["../../src/core/job-store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"job-store.d.ts","sourceRoot":"","sources":["../../src/core/job-store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACvG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAGpD,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,QAAQ,CAAA;IACvB,MAAM,EAAE,YAAY,CAAA;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,eAAe,CAAC,EAAE,cAAc,CAAA;IAChC,UAAU,CAAC,EAAE,UAAU,GAAG,gBAAgB,GAAG,SAAS,CAAA;IACtD,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,sBAAsB,CAAC,EAAE,OAAO,CAAA;CACjC;AAED,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;gBAEpB,OAAO,EAAE,MAAM;IAK3B,iEAAiE;IACjE,OAAO,CAAC,mBAAmB;IAM3B,+DAA+D;IAC/D,OAAO,CAAC,eAAe;IAKvB,mDAAmD;IACnD,OAAO,CAAC,UAAU;IAKlB,mCAAmC;IACnC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAYhC,yEAAyE;IACzE,SAAS,CAAC,IAAI,EAAE,aAAa,GAAG,WAAW;IA8B3C,qCAAqC;IACrC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,GAAG,IAAI;IAKnD,4FAA4F;IAC5F,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW;IAkCnC,qCAAqC;IACrC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAI/C,qCAAqC;IACrC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAIjC,4BAA4B;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAI3C,4BAA4B;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAI/B,yCAAyC;IACzC,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI;IAKxE,qCAAqC;IACrC,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM;IAKzD,kCAAkC;IAClC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAKjE;;;;OAIG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAM7D,sFAAsF;IACtF,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI;IASxF,6EAA6E;IAC7E,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI;IAuBrF,8BAA8B;IAC9B,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI;IAO5D,2DAA2D;IAC3D,QAAQ,IAAI,WAAW,EAAE;IAqBzB,wEAAwE;IACxE,SAAS,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM;IAgBxC,sDAAsD;IACtD,OAAO,CAAC,eAAe;CAQxB"}
|
package/dist/core/job-store.js
CHANGED
|
@@ -26,7 +26,15 @@ export class JobStore {
|
|
|
26
26
|
}
|
|
27
27
|
/** Full path to a job directory */
|
|
28
28
|
getJobDir(jobId) {
|
|
29
|
-
|
|
29
|
+
// Containment guard: a job id is a path component, never a traversal.
|
|
30
|
+
// Reject any value (absolute, or containing `..`/separators) that would
|
|
31
|
+
// resolve outside jobsDir before it reaches the filesystem.
|
|
32
|
+
const resolved = path.resolve(this.jobsDir, jobId);
|
|
33
|
+
const rel = path.relative(this.jobsDir, resolved);
|
|
34
|
+
if (rel === '' || rel.startsWith('..') || path.isAbsolute(rel)) {
|
|
35
|
+
throw new Error(`Invalid job id (path escape): ${jobId}`);
|
|
36
|
+
}
|
|
37
|
+
return resolved;
|
|
30
38
|
}
|
|
31
39
|
/** Create a new job with its directory structure and initial metadata */
|
|
32
40
|
createJob(opts) {
|
|
@@ -46,6 +54,18 @@ export class JobStore {
|
|
|
46
54
|
created_at: new Date().toISOString(),
|
|
47
55
|
channels,
|
|
48
56
|
};
|
|
57
|
+
if (opts.session_id !== undefined)
|
|
58
|
+
metadata.session_id = opts.session_id;
|
|
59
|
+
if (opts.round !== undefined)
|
|
60
|
+
metadata.round = opts.round;
|
|
61
|
+
if (opts.review_controls !== undefined)
|
|
62
|
+
metadata.review_controls = opts.review_controls;
|
|
63
|
+
if (opts.trust_mode !== undefined)
|
|
64
|
+
metadata.trust_mode = opts.trust_mode;
|
|
65
|
+
if (opts.proposed_acks !== undefined)
|
|
66
|
+
metadata.proposed_acks = opts.proposed_acks;
|
|
67
|
+
if (opts.proposed_config_change !== undefined)
|
|
68
|
+
metadata.proposed_config_change = opts.proposed_config_change;
|
|
49
69
|
this.saveJob(jobId, metadata);
|
|
50
70
|
return metadata;
|
|
51
71
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"job-store.js","sourceRoot":"","sources":["../../src/core/job-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,MAAM,MAAM,aAAa,CAAA;AAGhC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"job-store.js","sourceRoot":"","sources":["../../src/core/job-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minimal jsonpath subset used by the `unwrap-jsonpath` parser kind.
|
|
3
|
+
*
|
|
4
|
+
* Supported forms:
|
|
5
|
+
* $ - root
|
|
6
|
+
* $.foo - property
|
|
7
|
+
* $.foo.bar - nested property
|
|
8
|
+
* $.foo[0] - array index
|
|
9
|
+
* $.foo[0].bar - property of an indexed element
|
|
10
|
+
*
|
|
11
|
+
* Returns `undefined` when the path does not resolve. Throws only for
|
|
12
|
+
* structural errors in the path itself.
|
|
13
|
+
*/
|
|
14
|
+
export declare function jsonpathGet(root: unknown, path: string): unknown;
|
|
15
|
+
//# sourceMappingURL=jsonpath.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsonpath.d.ts","sourceRoot":"","sources":["../../src/core/jsonpath.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAuChE"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minimal jsonpath subset used by the `unwrap-jsonpath` parser kind.
|
|
3
|
+
*
|
|
4
|
+
* Supported forms:
|
|
5
|
+
* $ - root
|
|
6
|
+
* $.foo - property
|
|
7
|
+
* $.foo.bar - nested property
|
|
8
|
+
* $.foo[0] - array index
|
|
9
|
+
* $.foo[0].bar - property of an indexed element
|
|
10
|
+
*
|
|
11
|
+
* Returns `undefined` when the path does not resolve. Throws only for
|
|
12
|
+
* structural errors in the path itself.
|
|
13
|
+
*/
|
|
14
|
+
export function jsonpathGet(root, path) {
|
|
15
|
+
if (!path.startsWith('$')) {
|
|
16
|
+
throw new Error(`jsonpath must start with $ (got: ${path})`);
|
|
17
|
+
}
|
|
18
|
+
if (path === '$')
|
|
19
|
+
return root;
|
|
20
|
+
let cursor = root;
|
|
21
|
+
let i = 1;
|
|
22
|
+
while (i < path.length) {
|
|
23
|
+
const ch = path[i];
|
|
24
|
+
if (ch === '.') {
|
|
25
|
+
i += 1;
|
|
26
|
+
if (path[i] === '[')
|
|
27
|
+
continue;
|
|
28
|
+
const match = /^[A-Za-z_][A-Za-z0-9_-]*/.exec(path.slice(i));
|
|
29
|
+
if (!match)
|
|
30
|
+
throw new Error(`jsonpath malformed empty property at offset ${i - 1} (path: ${path})`);
|
|
31
|
+
if (isPrototypeSensitiveKey(match[0]))
|
|
32
|
+
return undefined;
|
|
33
|
+
if (cursor === null || typeof cursor !== 'object')
|
|
34
|
+
return undefined;
|
|
35
|
+
cursor = cursor[match[0]];
|
|
36
|
+
i += match[0].length;
|
|
37
|
+
}
|
|
38
|
+
else if (ch === '[') {
|
|
39
|
+
const end = path.indexOf(']', i + 1);
|
|
40
|
+
if (end === -1) {
|
|
41
|
+
throw new Error(`jsonpath malformed: unclosed [ at offset ${i} (path: ${path})`);
|
|
42
|
+
}
|
|
43
|
+
const inside = path.slice(i + 1, end);
|
|
44
|
+
if (!/^\d+$/.test(inside)) {
|
|
45
|
+
throw new Error(`jsonpath invalid index "${inside}" (only numeric indices supported) at offset ${i} (path: ${path})`);
|
|
46
|
+
}
|
|
47
|
+
if (!Array.isArray(cursor))
|
|
48
|
+
return undefined;
|
|
49
|
+
cursor = cursor[Number.parseInt(inside, 10)];
|
|
50
|
+
i = end + 1;
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
throw new Error(`jsonpath unexpected character "${ch}" at offset ${i} (path: ${path})`);
|
|
54
|
+
}
|
|
55
|
+
if (cursor === undefined)
|
|
56
|
+
return undefined;
|
|
57
|
+
}
|
|
58
|
+
return cursor;
|
|
59
|
+
}
|
|
60
|
+
function isPrototypeSensitiveKey(key) {
|
|
61
|
+
return key === '__proto__' || key === 'constructor' || key === 'prototype';
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=jsonpath.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsonpath.js","sourceRoot":"","sources":["../../src/core/jsonpath.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,WAAW,CAAC,IAAa,EAAE,IAAY;IACrD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,oCAAoC,IAAI,GAAG,CAAC,CAAA;IAC9D,CAAC;IACD,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,IAAI,CAAA;IAE7B,IAAI,MAAM,GAAY,IAAI,CAAA;IAC1B,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACvB,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QAClB,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACf,CAAC,IAAI,CAAC,CAAA;YACN,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG;gBAAE,SAAQ;YAC7B,MAAM,KAAK,GAAG,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;YAC5D,IAAI,CAAC,KAAK;gBAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,CAAA;YACnG,IAAI,uBAAuB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAAE,OAAO,SAAS,CAAA;YACvD,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ;gBAAE,OAAO,SAAS,CAAA;YACnE,MAAM,GAAI,MAAkC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;YACtD,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;QACtB,CAAC;aAAM,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACtB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;YACpC,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,WAAW,IAAI,GAAG,CAAC,CAAA;YAClF,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAA;YACrC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,MAAM,IAAI,KAAK,CACb,2BAA2B,MAAM,gDAAgD,CAAC,WAAW,IAAI,GAAG,CACrG,CAAA;YACH,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;gBAAE,OAAO,SAAS,CAAA;YAC5C,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAA;YAC5C,CAAC,GAAG,GAAG,GAAG,CAAC,CAAA;QACb,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,kCAAkC,EAAE,eAAe,CAAC,WAAW,IAAI,GAAG,CAAC,CAAA;QACzF,CAAC;QACD,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,SAAS,CAAA;IAC5C,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,uBAAuB,CAAC,GAAW;IAC1C,OAAO,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,aAAa,IAAI,GAAG,KAAK,WAAW,CAAA;AAC5E,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export interface OssProbeSpec {
|
|
2
|
+
command: string;
|
|
3
|
+
args: string[];
|
|
4
|
+
timeoutMs: number;
|
|
5
|
+
}
|
|
6
|
+
export type OssRuntimeId = 'ollama' | 'lms' | 'llama-server' | 'local-ai-delegate';
|
|
7
|
+
export interface OssRuntime {
|
|
8
|
+
id: OssRuntimeId;
|
|
9
|
+
probe: OssProbeSpec;
|
|
10
|
+
}
|
|
11
|
+
export declare const OSS_RUNTIMES: OssRuntime[];
|
|
12
|
+
/**
|
|
13
|
+
* Commented YAML block for the given runtime. The block is meant to be
|
|
14
|
+
* pasted directly into a generated .mmr.yaml; every line is prefixed with
|
|
15
|
+
* `# ` so the user must explicitly opt in by uncommenting and editing.
|
|
16
|
+
*/
|
|
17
|
+
export declare function exampleBlockFor(id: OssRuntimeId): string;
|
|
18
|
+
//# sourceMappingURL=oss-examples.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oss-examples.d.ts","sourceRoot":"","sources":["../../src/core/oss-examples.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,KAAK,GAAG,cAAc,GAAG,mBAAmB,CAAA;AAElF,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,YAAY,CAAA;IAChB,KAAK,EAAE,YAAY,CAAA;CACpB;AAeD,eAAO,MAAM,YAAY,EAAE,UAAU,EAEE,CAAA;AAEvC;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,YAAY,GAAG,MAAM,CA8CxD"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Catalog of OSS runtimes available to config-init probing. v3.28 ships
|
|
3
|
+
* subprocess support only; HTTP-shaped runtimes (lms, llama-server) get
|
|
4
|
+
* commented-out stubs that note v3.30 will enable them. local-ai-delegate
|
|
5
|
+
* documents a subprocess shim users can adapt in v3.28.
|
|
6
|
+
*/
|
|
7
|
+
const OSS_RUNTIME_PROBES = {
|
|
8
|
+
ollama: { command: 'ollama', args: ['list'], timeoutMs: 1000 },
|
|
9
|
+
lms: { command: 'lms', args: ['ps'], timeoutMs: 1000 },
|
|
10
|
+
'llama-server': { command: 'llama-server', args: ['--help'], timeoutMs: 1000 },
|
|
11
|
+
'local-ai-delegate': { command: 'local-ai-delegate', args: ['--version'], timeoutMs: 1000 },
|
|
12
|
+
};
|
|
13
|
+
export const OSS_RUNTIMES = Object.entries(OSS_RUNTIME_PROBES).map(([id, probe]) => ({ id, probe }));
|
|
14
|
+
/**
|
|
15
|
+
* Commented YAML block for the given runtime. The block is meant to be
|
|
16
|
+
* pasted directly into a generated .mmr.yaml; every line is prefixed with
|
|
17
|
+
* `# ` so the user must explicitly opt in by uncommenting and editing.
|
|
18
|
+
*/
|
|
19
|
+
export function exampleBlockFor(id) {
|
|
20
|
+
switch (id) {
|
|
21
|
+
case 'ollama':
|
|
22
|
+
return [
|
|
23
|
+
'# example: ollama (subprocess, JSON output)',
|
|
24
|
+
'# Uncomment and adjust to enable a local Ollama channel.',
|
|
25
|
+
'# ollama-base:',
|
|
26
|
+
'# abstract: true # template only',
|
|
27
|
+
'# command: ollama run',
|
|
28
|
+
'# auth:',
|
|
29
|
+
'# check: "ollama list"',
|
|
30
|
+
'# timeout: 5 # seconds',
|
|
31
|
+
'# failure_exit_codes: [1]',
|
|
32
|
+
'# recovery: "ollama serve"',
|
|
33
|
+
'# qwen-local:',
|
|
34
|
+
'# extends: ollama-base',
|
|
35
|
+
'# flags: ["qwen2.5-coder:32b", "--format", "json"]',
|
|
36
|
+
].join('\n');
|
|
37
|
+
case 'lms':
|
|
38
|
+
return [
|
|
39
|
+
'# example: lms (LM Studio, HTTP) - requires MMR v3.30+',
|
|
40
|
+
'# LM Studio exposes /v1/chat/completions only; HTTP channel kind',
|
|
41
|
+
'# ships in v3.30. Leaving as a placeholder for now.',
|
|
42
|
+
].join('\n');
|
|
43
|
+
case 'llama-server':
|
|
44
|
+
return [
|
|
45
|
+
'# example: llama-server (llama.cpp HTTP) - requires MMR v3.30+',
|
|
46
|
+
'# llama-server exposes /v1/chat/completions only; HTTP channel',
|
|
47
|
+
'# kind ships in v3.30. Leaving as a placeholder for now.',
|
|
48
|
+
].join('\n');
|
|
49
|
+
case 'local-ai-delegate':
|
|
50
|
+
return [
|
|
51
|
+
'# example: local-ai-delegate (MCP bridge subprocess shim)',
|
|
52
|
+
'# The local-ai-delegate MCP server proxies an OpenAI-compatible',
|
|
53
|
+
'# endpoint to a locally-hosted model. Native HTTP channel kind ships',
|
|
54
|
+
'# in v3.30; this v3.28 example assumes a shell shim wrapper.',
|
|
55
|
+
'# local-ai-delegate-base:',
|
|
56
|
+
'# abstract: true # template only',
|
|
57
|
+
'# command: local-ai-delegate review',
|
|
58
|
+
'# local-ai-delegate-local:',
|
|
59
|
+
'# extends: local-ai-delegate-base',
|
|
60
|
+
'# flags: ["--format", "json"]',
|
|
61
|
+
].join('\n');
|
|
62
|
+
}
|
|
63
|
+
const exhaustive = id;
|
|
64
|
+
return exhaustive;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=oss-examples.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oss-examples.js","sourceRoot":"","sources":["../../src/core/oss-examples.ts"],"names":[],"mappings":"AAaA;;;;;GAKG;AACH,MAAM,kBAAkB,GAAuC;IAC7D,MAAM,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE;IAC9D,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE;IACtD,cAAc,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE;IAC9E,mBAAmB,EAAE,EAAE,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE;CAC5F,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GACvB,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAClC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;AAEvC;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,EAAgB;IAC9C,QAAQ,EAAE,EAAE,CAAC;QACb,KAAK,QAAQ;YACX,OAAO;gBACL,6CAA6C;gBAC7C,4DAA4D;gBAC5D,kBAAkB;gBAClB,uEAAuE;gBACvE,2BAA2B;gBAC3B,aAAa;gBACb,8BAA8B;gBAC9B,iEAAiE;gBACjE,iCAAiC;gBACjC,kCAAkC;gBAClC,iBAAiB;gBACjB,4BAA4B;gBAC5B,wDAAwD;aACzD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACd,KAAK,KAAK;YACR,OAAO;gBACL,wDAAwD;gBACxD,oEAAoE;gBACpE,uDAAuD;aACxD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACd,KAAK,cAAc;YACjB,OAAO;gBACL,gEAAgE;gBAChE,kEAAkE;gBAClE,4DAA4D;aAC7D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACd,KAAK,mBAAmB;YACtB,OAAO;gBACL,2DAA2D;gBAC3D,mEAAmE;gBACnE,wEAAwE;gBACxE,gEAAgE;gBAChE,6BAA6B;gBAC7B,uEAAuE;gBACvE,yCAAyC;gBACzC,8BAA8B;gBAC9B,uCAAuC;gBACvC,mCAAmC;aACpC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACd,CAAC;IACD,MAAM,UAAU,GAAU,EAAE,CAAA;IAC5B,OAAO,UAAU,CAAA;AACnB,CAAC"}
|
package/dist/core/parser.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { OutputParserConfig } from '../config/schema.js';
|
|
1
2
|
import type { Finding } from '../types.js';
|
|
2
3
|
export interface ParsedOutput {
|
|
3
4
|
approved: boolean;
|
|
@@ -27,11 +28,15 @@ export declare function validateFinding(f: unknown): Finding;
|
|
|
27
28
|
export declare function validateFindingStrict(f: unknown): Finding;
|
|
28
29
|
export declare function validateParsedOutputStrict(obj: unknown): ParsedOutput;
|
|
29
30
|
/**
|
|
30
|
-
*
|
|
31
|
+
* Build or look up a parser.
|
|
32
|
+
*
|
|
33
|
+
* String form looks up a built-in parser by name. Object form is intentionally
|
|
34
|
+
* routed through buildParser so structured configs are never silently ignored.
|
|
31
35
|
*/
|
|
32
|
-
export declare function getParser(
|
|
36
|
+
export declare function getParser(spec: string | OutputParserConfig): Parser;
|
|
37
|
+
export declare function buildParser(spec: OutputParserConfig): Parser;
|
|
33
38
|
/**
|
|
34
39
|
* Wraps getParser in try/catch, returns error finding on parse failure.
|
|
35
40
|
*/
|
|
36
|
-
export declare function parseChannelOutput(raw: string,
|
|
41
|
+
export declare function parseChannelOutput(raw: string, parserSpec: string | OutputParserConfig): ParsedOutput;
|
|
37
42
|
//# sourceMappingURL=parser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/core/parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/core/parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAC7D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAG1C,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,OAAO,CAAA;IACjB,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,YAAY,CAAA;AAElD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAExD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAgChD;AA8DD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,YAAY,CAU/D;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAcnD;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAsBzD;AAED,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,OAAO,GAAG,YAAY,CAarE;AAqED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,GAAG,MAAM,CAKnE;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM,CAqB5D;AA2CD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,kBAAkB,GAAG,YAAY,CAmBrG"}
|
package/dist/core/parser.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { jsonpathGet } from './jsonpath.js';
|
|
1
2
|
/**
|
|
2
3
|
* Remove ```json and ``` markdown fence markers from text.
|
|
3
4
|
*/
|
|
@@ -46,6 +47,62 @@ export function extractJson(text) {
|
|
|
46
47
|
}
|
|
47
48
|
throw new Error('Unbalanced braces in JSON output');
|
|
48
49
|
}
|
|
50
|
+
function extractJsonValue(text) {
|
|
51
|
+
let firstUnbalanced;
|
|
52
|
+
for (let start = 0; start < text.length; start++) {
|
|
53
|
+
const opener = text[start];
|
|
54
|
+
if (opener !== '{' && opener !== '[')
|
|
55
|
+
continue;
|
|
56
|
+
try {
|
|
57
|
+
const candidate = extractBalancedJsonValue(text, start);
|
|
58
|
+
JSON.parse(fixTrailingCommas(candidate));
|
|
59
|
+
return candidate;
|
|
60
|
+
}
|
|
61
|
+
catch (err) {
|
|
62
|
+
firstUnbalanced ??= err instanceof Error ? err : new Error(String(err));
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
if (firstUnbalanced)
|
|
66
|
+
throw firstUnbalanced;
|
|
67
|
+
throw new Error('No JSON object or array found in output');
|
|
68
|
+
}
|
|
69
|
+
function extractBalancedJsonValue(text, start) {
|
|
70
|
+
const opener = text[start];
|
|
71
|
+
const stack = [];
|
|
72
|
+
let inString = false;
|
|
73
|
+
for (let i = start; i < text.length; i++) {
|
|
74
|
+
const ch = text[i];
|
|
75
|
+
if (inString) {
|
|
76
|
+
if (ch === '\\') {
|
|
77
|
+
i++;
|
|
78
|
+
}
|
|
79
|
+
else if (ch === '"') {
|
|
80
|
+
inString = false;
|
|
81
|
+
}
|
|
82
|
+
continue;
|
|
83
|
+
}
|
|
84
|
+
if (ch === '"') {
|
|
85
|
+
inString = true;
|
|
86
|
+
}
|
|
87
|
+
else if (ch === '{' || ch === '[') {
|
|
88
|
+
stack.push(ch);
|
|
89
|
+
}
|
|
90
|
+
else if (ch === '}' || ch === ']') {
|
|
91
|
+
const expected = ch === '}' ? '{' : '[';
|
|
92
|
+
if (stack.pop() !== expected) {
|
|
93
|
+
throw new Error(`Mismatched JSON delimiters near: ${text.slice(start, i + 1)}`);
|
|
94
|
+
}
|
|
95
|
+
if (stack.length === 0) {
|
|
96
|
+
return text.slice(start, i + 1);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
throw new Error(`Unbalanced ${opener === '{' ? 'braces' : 'brackets'} in JSON output`);
|
|
101
|
+
}
|
|
102
|
+
function parseJsonFromOutput(raw) {
|
|
103
|
+
const text = extractJsonValue(stripMarkdownFences(raw));
|
|
104
|
+
return JSON.parse(fixTrailingCommas(text));
|
|
105
|
+
}
|
|
49
106
|
/**
|
|
50
107
|
* Default parser: strips markdown fences, extracts JSON from surrounding text,
|
|
51
108
|
* fixes trailing commas, then JSON.parse.
|
|
@@ -142,22 +199,116 @@ function geminiParser(raw) {
|
|
|
142
199
|
return defaultParser(raw);
|
|
143
200
|
}
|
|
144
201
|
}
|
|
145
|
-
|
|
202
|
+
function docConformanceParser(raw) {
|
|
203
|
+
try {
|
|
204
|
+
const arr = JSON.parse(raw);
|
|
205
|
+
if (!Array.isArray(arr)) {
|
|
206
|
+
return {
|
|
207
|
+
approved: false,
|
|
208
|
+
findings: [{
|
|
209
|
+
severity: 'P1', location: 'doc-conformance',
|
|
210
|
+
description: 'doc-conformance channel returned valid JSON but not an array — malformed output',
|
|
211
|
+
suggestion: 'Check scaffold observe audit --output-mode=mmr-findings produces a JSON array',
|
|
212
|
+
}],
|
|
213
|
+
summary: 'doc-conformance: output was not a JSON array',
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
const findings = arr.map(validateFindingStrict);
|
|
217
|
+
const approved = findings.every((f) => f.severity === 'P2' || f.severity === 'P3');
|
|
218
|
+
const summary = `doc-conformance: ${findings.length} finding(s)${approved ? '' : ' (blocking)'}`;
|
|
219
|
+
return { approved, findings, summary };
|
|
220
|
+
}
|
|
221
|
+
catch {
|
|
222
|
+
return {
|
|
223
|
+
approved: false,
|
|
224
|
+
findings: [{
|
|
225
|
+
severity: 'P1', location: 'doc-conformance',
|
|
226
|
+
description: 'Failed to parse doc-conformance output', suggestion: '',
|
|
227
|
+
}],
|
|
228
|
+
summary: 'doc-conformance: parse error',
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
const builtinParsers = {
|
|
146
233
|
default: defaultParser,
|
|
147
234
|
gemini: geminiParser,
|
|
235
|
+
'doc-conformance': docConformanceParser,
|
|
148
236
|
};
|
|
149
237
|
/**
|
|
150
|
-
*
|
|
238
|
+
* Build or look up a parser.
|
|
239
|
+
*
|
|
240
|
+
* String form looks up a built-in parser by name. Object form is intentionally
|
|
241
|
+
* routed through buildParser so structured configs are never silently ignored.
|
|
151
242
|
*/
|
|
152
|
-
export function getParser(
|
|
153
|
-
|
|
243
|
+
export function getParser(spec) {
|
|
244
|
+
if (typeof spec === 'string') {
|
|
245
|
+
return builtinParsers[spec] ?? builtinParsers['default'];
|
|
246
|
+
}
|
|
247
|
+
return buildParser(spec);
|
|
248
|
+
}
|
|
249
|
+
export function buildParser(spec) {
|
|
250
|
+
if (typeof spec === 'string') {
|
|
251
|
+
return getParser(spec);
|
|
252
|
+
}
|
|
253
|
+
if (spec.kind === 'unwrap-jsonpath') {
|
|
254
|
+
const nextSpec = spec.then ?? 'default';
|
|
255
|
+
const nextParser = getParser(nextSpec);
|
|
256
|
+
return (raw) => {
|
|
257
|
+
const decoded = parseJsonFromOutput(raw);
|
|
258
|
+
const unwrapped = jsonpathGet(decoded, spec.wrap);
|
|
259
|
+
if (unwrapped === undefined) {
|
|
260
|
+
throw new Error(`jsonpath did not match: ${spec.wrap}`);
|
|
261
|
+
}
|
|
262
|
+
const nextRaw = typeof unwrapped === 'string' ? unwrapped : JSON.stringify(unwrapped);
|
|
263
|
+
return nextParser(nextRaw);
|
|
264
|
+
};
|
|
265
|
+
}
|
|
266
|
+
if (spec.kind === 'regex-findings') {
|
|
267
|
+
return (raw) => parseRegexFindings(raw, spec);
|
|
268
|
+
}
|
|
269
|
+
throw new Error(`Unsupported output_parser kind: ${spec.kind}`);
|
|
270
|
+
}
|
|
271
|
+
function parseRegexFindings(raw, spec) {
|
|
272
|
+
const regex = new RegExp(spec.pattern, spec.flags ?? 'gm');
|
|
273
|
+
const findings = [];
|
|
274
|
+
let match;
|
|
275
|
+
while ((match = regex.exec(raw)) !== null) {
|
|
276
|
+
const field = (index) => index === undefined ? undefined : match?.[index];
|
|
277
|
+
const location = field(spec.fields.location);
|
|
278
|
+
const description = field(spec.fields.description);
|
|
279
|
+
if (!location?.trim() || !description?.trim()) {
|
|
280
|
+
throw new Error('regex-findings parser requires non-empty location and description captures');
|
|
281
|
+
}
|
|
282
|
+
const severityValue = field(spec.fields.severity);
|
|
283
|
+
const severity = isSeverity(severityValue) ? severityValue : (spec.default_severity ?? 'P2');
|
|
284
|
+
findings.push({
|
|
285
|
+
id: field(spec.fields.id),
|
|
286
|
+
category: field(spec.fields.category),
|
|
287
|
+
severity,
|
|
288
|
+
location,
|
|
289
|
+
description,
|
|
290
|
+
suggestion: field(spec.fields.suggestion) ?? '',
|
|
291
|
+
});
|
|
292
|
+
if (!regex.global)
|
|
293
|
+
break;
|
|
294
|
+
if (match[0] === '')
|
|
295
|
+
regex.lastIndex += 1;
|
|
296
|
+
}
|
|
297
|
+
return {
|
|
298
|
+
approved: findings.length === 0,
|
|
299
|
+
findings,
|
|
300
|
+
summary: findings.length === 0 ? 'No regex findings.' : `Parsed ${findings.length} regex finding(s).`,
|
|
301
|
+
};
|
|
302
|
+
}
|
|
303
|
+
function isSeverity(value) {
|
|
304
|
+
return value === 'P0' || value === 'P1' || value === 'P2' || value === 'P3';
|
|
154
305
|
}
|
|
155
306
|
/**
|
|
156
307
|
* Wraps getParser in try/catch, returns error finding on parse failure.
|
|
157
308
|
*/
|
|
158
|
-
export function parseChannelOutput(raw,
|
|
309
|
+
export function parseChannelOutput(raw, parserSpec) {
|
|
159
310
|
try {
|
|
160
|
-
const parser = getParser(
|
|
311
|
+
const parser = getParser(parserSpec);
|
|
161
312
|
return parser(raw);
|
|
162
313
|
}
|
|
163
314
|
catch (err) {
|
package/dist/core/parser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/core/parser.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/core/parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolve the project root by walking up from `start` until a `.git` entry
|
|
3
|
+
* (the repository root) is found. Falls back to `start` when none is found, so
|
|
4
|
+
* resolution degrades to the current directory rather than failing.
|
|
5
|
+
*
|
|
6
|
+
* This lets project-scoped lookups (e.g. ./.mmr/acks) work when a command is
|
|
7
|
+
* invoked from a subdirectory, instead of resolving relative to process.cwd().
|
|
8
|
+
*/
|
|
9
|
+
export declare function findProjectRoot(start?: string): string;
|
|
10
|
+
//# sourceMappingURL=project-root.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-root.d.ts","sourceRoot":"","sources":["../../src/core/project-root.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,KAAK,GAAE,MAAsB,GAAG,MAAM,CASrE"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
/**
|
|
4
|
+
* Resolve the project root by walking up from `start` until a `.git` entry
|
|
5
|
+
* (the repository root) is found. Falls back to `start` when none is found, so
|
|
6
|
+
* resolution degrades to the current directory rather than failing.
|
|
7
|
+
*
|
|
8
|
+
* This lets project-scoped lookups (e.g. ./.mmr/acks) work when a command is
|
|
9
|
+
* invoked from a subdirectory, instead of resolving relative to process.cwd().
|
|
10
|
+
*/
|
|
11
|
+
export function findProjectRoot(start = process.cwd()) {
|
|
12
|
+
const origin = path.resolve(start);
|
|
13
|
+
let dir = origin;
|
|
14
|
+
for (;;) {
|
|
15
|
+
if (fs.existsSync(path.join(dir, '.git')))
|
|
16
|
+
return dir;
|
|
17
|
+
const parent = path.dirname(dir);
|
|
18
|
+
if (parent === dir)
|
|
19
|
+
return origin;
|
|
20
|
+
dir = parent;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=project-root.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-root.js","sourceRoot":"","sources":["../../src/core/project-root.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,QAAgB,OAAO,CAAC,GAAG,EAAE;IAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAClC,IAAI,GAAG,GAAG,MAAM,CAAA;IAChB,SAAS,CAAC;QACR,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAAE,OAAO,GAAG,CAAA;QACrD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAChC,IAAI,MAAM,KAAK,GAAG;YAAE,OAAO,MAAM,CAAA;QACjC,GAAG,GAAG,MAAM,CAAA;IACd,CAAC;AACH,CAAC"}
|
|
@@ -4,7 +4,7 @@ import type { Finding, ReconciledFinding, Severity, Verdict, ChannelStatus } fro
|
|
|
4
4
|
* consensus scoring.
|
|
5
5
|
*
|
|
6
6
|
* 1. Flatten all findings with source attribution
|
|
7
|
-
* 2. Group by
|
|
7
|
+
* 2. Group by stable finding identity
|
|
8
8
|
* 3. For each group, determine agreement, confidence, and effective severity
|
|
9
9
|
* 4. Sort by severity (P0 first)
|
|
10
10
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reconciler.d.ts","sourceRoot":"","sources":["../../src/core/reconciler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAyB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"reconciler.d.ts","sourceRoot":"","sources":["../../src/core/reconciler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAyB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAiCtH;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,iBAAiB,EAAE,CA6HzF;AAyDD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,iBAAiB,EAAE,EAAE,SAAS,EAAE,QAAQ,GAAG,OAAO,CAGxF;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,OAAO,EACnB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAC7C,OAAO,CAcT"}
|