@mossbear/eval-core 0.1.0-alpha.27 → 0.1.0-alpha.29
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 +1 -1
- package/dist/redact-prose.d.ts.map +1 -1
- package/dist/redact-prose.js +2 -7
- package/dist/redact-prose.js.map +1 -1
- package/dist/redaction.d.ts +23 -0
- package/dist/redaction.d.ts.map +1 -0
- package/dist/redaction.js +23 -0
- package/dist/redaction.js.map +1 -0
- package/dist/sanitize-command.d.ts.map +1 -1
- package/dist/sanitize-command.js +27 -24
- package/dist/sanitize-command.js.map +1 -1
- package/dist/sanitize-command.test.js +8 -3
- package/dist/sanitize-command.test.js.map +1 -1
- package/dist/strip-code-blocks.d.ts.map +1 -1
- package/dist/strip-code-blocks.js +10 -3
- package/dist/strip-code-blocks.js.map +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -6,4 +6,4 @@ Portable pieces of Mossbear's evaluation path — command redaction, the `EvalAd
|
|
|
6
6
|
|
|
7
7
|
You normally don't install this directly; it ships as a dependency of `mossbear`.
|
|
8
8
|
|
|
9
|
-
Source: https://github.com/
|
|
9
|
+
Source: https://github.com/mossbear-io/mossbear (`packages/eval-core`)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redact-prose.d.ts","sourceRoot":"","sources":["../src/redact-prose.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;
|
|
1
|
+
{"version":3,"file":"redact-prose.d.ts","sourceRoot":"","sources":["../src/redact-prose.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAIH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,eAAe,OAAO,CAAA;AAkBnC;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,mGAO1B,CAAA;AAEV,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAA;AAE1E,MAAM,MAAM,oBAAoB,GAAG;IACjC,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAA;IACZ,gFAAgF;IAChF,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC,CAAA;IACpD,+CAA+C;IAC/C,aAAa,EAAE,MAAM,CAAA;IACrB,wDAAwD;IACxD,YAAY,EAAE,OAAO,CAAA;CACtB,CAAA;AAuFD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,oBAAoB,CAiClF"}
|
package/dist/redact-prose.js
CHANGED
|
@@ -33,6 +33,7 @@
|
|
|
33
33
|
* Reports **what it redacted, by class and count**, so a disclosure surface can
|
|
34
34
|
* show the user what was removed rather than asserting safety at them.
|
|
35
35
|
*/
|
|
36
|
+
import { PRIVATE_KEY_BLOCK_SOURCE, REDACTED } from './redaction.js';
|
|
36
37
|
/**
|
|
37
38
|
* Maximum characters of a single prose message that survive redaction.
|
|
38
39
|
*
|
|
@@ -60,8 +61,6 @@ export const MAX_PROSE_CHARS = 2000;
|
|
|
60
61
|
* past this is dropped before scanning and counts as truncation.
|
|
61
62
|
*/
|
|
62
63
|
const MAX_SCAN_CHARS = MAX_PROSE_CHARS * 8;
|
|
63
|
-
/** Marker substituted for redacted spans. Matches `sanitizeCommand`'s. */
|
|
64
|
-
const REDACTED = '[redacted]';
|
|
65
64
|
/**
|
|
66
65
|
* The classes this reports on. Named rather than free-form strings so a
|
|
67
66
|
* disclosure surface can label each count without re-deriving the taxonomy —
|
|
@@ -84,11 +83,7 @@ const PROSE_REDACTIONS = [
|
|
|
84
83
|
// Whole private-key blocks, including an unterminated one — a truncated key
|
|
85
84
|
// is still a key. First, because everything else would otherwise match the
|
|
86
85
|
// base64 inside it.
|
|
87
|
-
[
|
|
88
|
-
'private_key',
|
|
89
|
-
/-----BEGIN[A-Z ]*PRIVATE KEY-----[\s\S]*?(?:-----END[A-Z ]*PRIVATE KEY-----|$)/g,
|
|
90
|
-
REDACTED,
|
|
91
|
-
],
|
|
86
|
+
['private_key', new RegExp(PRIVATE_KEY_BLOCK_SOURCE, 'g'), REDACTED],
|
|
92
87
|
// `Authorization: Bearer <token>` / `Basic <blob>`, as pasted from a request
|
|
93
88
|
// or a curl transcript. These values are routinely short-lived and short —
|
|
94
89
|
// too short for the prefix and long-run rules below — and `Authorization` is
|
package/dist/redact-prose.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redact-prose.js","sourceRoot":"","sources":["../src/redact-prose.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAA;AAEnC;;;;;;;;;;;;;GAaG;AACH,MAAM,cAAc,GAAG,eAAe,GAAG,CAAC,CAAA;AAE1C
|
|
1
|
+
{"version":3,"file":"redact-prose.js","sourceRoot":"","sources":["../src/redact-prose.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Facts shared by this package's two redactors.
|
|
3
|
+
*
|
|
4
|
+
* `sanitizeCommand` (shell command text) and `redactProse` (transcript prose)
|
|
5
|
+
* are deliberately separate scanners — see the header of `./redact-prose.ts`
|
|
6
|
+
* for why one cannot be built out of the other. But a few of the things they
|
|
7
|
+
* match are the *same fact* stated twice, and a hardening applied to one copy
|
|
8
|
+
* while the other is forgotten is a credential on the wire. Those live here.
|
|
9
|
+
*/
|
|
10
|
+
/** Marker substituted for every redacted span, in both redactors. */
|
|
11
|
+
export declare const REDACTED = "[redacted]";
|
|
12
|
+
/**
|
|
13
|
+
* Matches a whole private-key block, including an unterminated one — a
|
|
14
|
+
* truncated key is still a key.
|
|
15
|
+
*
|
|
16
|
+
* Exported as a **source string** rather than a shared `RegExp`: a `g`-flagged
|
|
17
|
+
* regex object carries `lastIndex` between calls, and a single instance shared
|
|
18
|
+
* across modules is exactly the stateful-regex hazard `redactProse` guards
|
|
19
|
+
* against when it counts matches. Each call site builds its own instance from
|
|
20
|
+
* this source, so no state can leak between them.
|
|
21
|
+
*/
|
|
22
|
+
export declare const PRIVATE_KEY_BLOCK_SOURCE: string;
|
|
23
|
+
//# sourceMappingURL=redaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redaction.d.ts","sourceRoot":"","sources":["../src/redaction.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,qEAAqE;AACrE,eAAO,MAAM,QAAQ,eAAe,CAAA;AAEpC;;;;;;;;;GASG;AACH,eAAO,MAAM,wBAAwB,QAA6F,CAAA"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Facts shared by this package's two redactors.
|
|
3
|
+
*
|
|
4
|
+
* `sanitizeCommand` (shell command text) and `redactProse` (transcript prose)
|
|
5
|
+
* are deliberately separate scanners — see the header of `./redact-prose.ts`
|
|
6
|
+
* for why one cannot be built out of the other. But a few of the things they
|
|
7
|
+
* match are the *same fact* stated twice, and a hardening applied to one copy
|
|
8
|
+
* while the other is forgotten is a credential on the wire. Those live here.
|
|
9
|
+
*/
|
|
10
|
+
/** Marker substituted for every redacted span, in both redactors. */
|
|
11
|
+
export const REDACTED = '[redacted]';
|
|
12
|
+
/**
|
|
13
|
+
* Matches a whole private-key block, including an unterminated one — a
|
|
14
|
+
* truncated key is still a key.
|
|
15
|
+
*
|
|
16
|
+
* Exported as a **source string** rather than a shared `RegExp`: a `g`-flagged
|
|
17
|
+
* regex object carries `lastIndex` between calls, and a single instance shared
|
|
18
|
+
* across modules is exactly the stateful-regex hazard `redactProse` guards
|
|
19
|
+
* against when it counts matches. Each call site builds its own instance from
|
|
20
|
+
* this source, so no state can leak between them.
|
|
21
|
+
*/
|
|
22
|
+
export const PRIVATE_KEY_BLOCK_SOURCE = String.raw `-----BEGIN[A-Z ]*PRIVATE KEY-----[\s\S]*?(?:-----END[A-Z ]*PRIVATE KEY-----|$)`;
|
|
23
|
+
//# sourceMappingURL=redaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redaction.js","sourceRoot":"","sources":["../src/redaction.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,qEAAqE;AACrE,MAAM,CAAC,MAAM,QAAQ,GAAG,YAAY,CAAA;AAEpC;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC,GAAG,CAAA,gFAAgF,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sanitize-command.d.ts","sourceRoot":"","sources":["../src/sanitize-command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;
|
|
1
|
+
{"version":3,"file":"sanitize-command.d.ts","sourceRoot":"","sources":["../src/sanitize-command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAsEH;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CASvD"}
|
package/dist/sanitize-command.js
CHANGED
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
* result: this is the boundary that decides what a grader may ever see of a
|
|
12
12
|
* command.
|
|
13
13
|
*/
|
|
14
|
+
import { PRIVATE_KEY_BLOCK_SOURCE, REDACTED } from './redaction.js';
|
|
14
15
|
/**
|
|
15
16
|
* Maximum characters of a single command string that survive redaction.
|
|
16
17
|
* Short commands convey which tools the agent invoked — which is all a grader
|
|
@@ -34,13 +35,13 @@ const COMMAND_REDACTIONS = [
|
|
|
34
35
|
// Terminates on the closing delimiter line or end-of-input (unterminated
|
|
35
36
|
// capture). Over-matching a rare `a << B` bit-shift only over-redacts, which
|
|
36
37
|
// is the safe failure mode here.
|
|
37
|
-
[/(<<-?\s*['"]?)([A-Za-z_]\w*)(['"]?)[\s\S]*?(\n[ \t]*\2\b|$)/g, '$1$2$3 [redacted]$4'],
|
|
38
38
|
[
|
|
39
|
-
|
|
40
|
-
|
|
39
|
+
/(<<-?\s*['"]?)([A-Za-z_]\w*)(['"]?)[\s\S]*?(\n[ \t]*\2\b|$)/g,
|
|
40
|
+
`$1$2$3 ${REDACTED}$4`,
|
|
41
41
|
],
|
|
42
|
-
[
|
|
43
|
-
[/\b(
|
|
42
|
+
[new RegExp(PRIVATE_KEY_BLOCK_SOURCE, 'g'), REDACTED],
|
|
43
|
+
[/\b([a-z][a-z0-9+.-]*:\/\/[^/\s:@]+:)[^@\s]+@/gi, `$1${REDACTED}@`],
|
|
44
|
+
[/\b(authorization\s*:\s*)(?:bearer\s+)?\S+/gi, `$1${REDACTED}`],
|
|
44
45
|
// Sensitive assignment: an env-var-ish key (the sensitive word optionally
|
|
45
46
|
// wrapped in `DB_…` / `…_FILE` segments, so `DB_PASSWORD`/`OPENAI_API_KEY`
|
|
46
47
|
// match, not just a bare word) followed by `=`/`:` and a value that is a
|
|
@@ -50,28 +51,30 @@ const COMMAND_REDACTIONS = [
|
|
|
50
51
|
// whitespace-containing passphrases can't slip through.
|
|
51
52
|
[
|
|
52
53
|
/(^|[\s;&|(])([\w.-]*(?:api[_-]?key|access[_-]?key|secret[_-]?key|client[_-]?secret|token|secret|passw(?:or)?d|credentials?)[\w.-]*\s*[=:]\s*)(?:"[^"]*"|'[^']*'|[^\s]+)/gi,
|
|
53
|
-
|
|
54
|
+
`$1$2${REDACTED}`,
|
|
54
55
|
],
|
|
55
56
|
// Our own CLI token (`API_KEY_PREFIX`, apps/dashboard/src/features/auth
|
|
56
57
|
// /constants.ts). Listed with the third-party prefixes because the documented
|
|
57
|
-
// setup path — `mossbear sync --token
|
|
58
|
-
// so the `key=value` rule above never sees it: without this, the hook
|
|
59
|
-
// that command and the next sync uploads a live dashboard credential in
|
|
60
|
-
// action summary. The product's own secret shape is the one most likely to
|
|
61
|
-
// appear in a command a user runs.
|
|
62
|
-
//
|
|
63
|
-
//
|
|
64
|
-
|
|
65
|
-
//
|
|
66
|
-
//
|
|
67
|
-
//
|
|
68
|
-
//
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
[/\
|
|
72
|
-
[/\
|
|
73
|
-
[/\
|
|
74
|
-
[/\
|
|
58
|
+
// setup path — `mossbear sync --token mossbear_…` — is a *space-separated*
|
|
59
|
+
// flag, so the `key=value` rule above never sees it: without this, the hook
|
|
60
|
+
// logs that command and the next sync uploads a live dashboard credential in
|
|
61
|
+
// an action summary. The product's own secret shape is the one most likely to
|
|
62
|
+
// appear in a command a user runs. Any future re-mint under a new prefix has
|
|
63
|
+
// to be added here in the same change — a token this rule does not match is
|
|
64
|
+
// one the action log keeps in plaintext.
|
|
65
|
+
[/\bmossbear_[A-Za-z0-9_-]{8,}/g, REDACTED],
|
|
66
|
+
// The pre-rename prefix. Every key issued under it is deleted by migration
|
|
67
|
+
// `0056-revoke_legacy_prefix_cli_tokens.ts`, so this matches nothing that can
|
|
68
|
+
// still authenticate — it is kept because a CLI redacting on the user's
|
|
69
|
+
// machine can be older or newer than the dashboard it syncs to, and the
|
|
70
|
+
// window where one of these is still live is exactly the window where
|
|
71
|
+
// dropping the rule would upload it in plaintext.
|
|
72
|
+
[/\bauden_[A-Za-z0-9_-]{8,}/g, REDACTED],
|
|
73
|
+
[/\bsk-[A-Za-z0-9_-]{8,}/g, REDACTED],
|
|
74
|
+
[/\bgh[pousr]_[A-Za-z0-9]{8,}/g, REDACTED],
|
|
75
|
+
[/\bgithub_pat_[A-Za-z0-9_]{8,}/g, REDACTED],
|
|
76
|
+
[/\bxox[baprs]-[A-Za-z0-9-]{8,}/g, REDACTED],
|
|
77
|
+
[/\bAKIA[0-9A-Z]{16}\b/g, REDACTED],
|
|
75
78
|
];
|
|
76
79
|
/**
|
|
77
80
|
* Redact common secret shapes from a shell command and cap its length so
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sanitize-command.js","sourceRoot":"","sources":["../src/sanitize-command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH;;;;;GAKG;AACH,MAAM,iBAAiB,GAAG,GAAG,CAAA;AAE7B;;;;;;;GAOG;AACH,MAAM,kBAAkB,GAAgC;IACtD,2EAA2E;IAC3E,6EAA6E;IAC7E,uEAAuE;IACvE,4EAA4E;IAC5E,yEAAyE;IACzE,6EAA6E;IAC7E,iCAAiC;IACjC,CAAC,
|
|
1
|
+
{"version":3,"file":"sanitize-command.js","sourceRoot":"","sources":["../src/sanitize-command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,wBAAwB,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEnE;;;;;GAKG;AACH,MAAM,iBAAiB,GAAG,GAAG,CAAA;AAE7B;;;;;;;GAOG;AACH,MAAM,kBAAkB,GAAgC;IACtD,2EAA2E;IAC3E,6EAA6E;IAC7E,uEAAuE;IACvE,4EAA4E;IAC5E,yEAAyE;IACzE,6EAA6E;IAC7E,iCAAiC;IACjC;QACE,8DAA8D;QAC9D,UAAU,QAAQ,IAAI;KACvB;IACD,CAAC,IAAI,MAAM,CAAC,wBAAwB,EAAE,GAAG,CAAC,EAAE,QAAQ,CAAC;IACrD,CAAC,gDAAgD,EAAE,KAAK,QAAQ,GAAG,CAAC;IACpE,CAAC,6CAA6C,EAAE,KAAK,QAAQ,EAAE,CAAC;IAChE,0EAA0E;IAC1E,2EAA2E;IAC3E,yEAAyE;IACzE,4EAA4E;IAC5E,4EAA4E;IAC5E,2EAA2E;IAC3E,wDAAwD;IACxD;QACE,2KAA2K;QAC3K,OAAO,QAAQ,EAAE;KAClB;IACD,wEAAwE;IACxE,8EAA8E;IAC9E,2EAA2E;IAC3E,4EAA4E;IAC5E,6EAA6E;IAC7E,8EAA8E;IAC9E,6EAA6E;IAC7E,4EAA4E;IAC5E,yCAAyC;IACzC,CAAC,+BAA+B,EAAE,QAAQ,CAAC;IAC3C,2EAA2E;IAC3E,8EAA8E;IAC9E,wEAAwE;IACxE,wEAAwE;IACxE,sEAAsE;IACtE,kDAAkD;IAClD,CAAC,4BAA4B,EAAE,QAAQ,CAAC;IACxC,CAAC,yBAAyB,EAAE,QAAQ,CAAC;IACrC,CAAC,8BAA8B,EAAE,QAAQ,CAAC;IAC1C,CAAC,gCAAgC,EAAE,QAAQ,CAAC;IAC5C,CAAC,gCAAgC,EAAE,QAAQ,CAAC;IAC5C,CAAC,uBAAuB,EAAE,QAAQ,CAAC;CACpC,CAAA;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,OAAe;IAC7C,IAAI,GAAG,GAAG,OAAO,CAAA;IACjB,KAAK,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,IAAI,kBAAkB,EAAE,CAAC;QACxD,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;IACzC,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,GAAG,iBAAiB,EAAE,CAAC;QACnC,GAAG,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,iBAAiB,CAAC,oBAAoB,GAAG,CAAC,MAAM,GAAG,iBAAiB,sBAAsB,CAAA;IAClH,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC"}
|
|
@@ -10,12 +10,17 @@ describe('sanitizeCommand', () => {
|
|
|
10
10
|
// command line, where PostToolUse logs it and the next sync would upload
|
|
11
11
|
// it in an action summary. The `key=value` rule never sees a
|
|
12
12
|
// space-separated flag, so the token prefix has to be matched directly.
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
expect(sanitizeCommand('mossbear sync --token mossbear_tPtcsSvXyRxygMSkBjjDpBKz')).toBe('mossbear sync --token [redacted]');
|
|
14
|
+
expect(sanitizeCommand('mossbear init --token=mossbear_abcdefgh12345678')).toBe('mossbear init --token=[redacted]');
|
|
15
|
+
});
|
|
16
|
+
it('still redacts a token issued under the pre-rename prefix', () => {
|
|
17
|
+
// Those keys are deleted by migration 0056, but a CLI can be older or newer
|
|
18
|
+
// than the dashboard it syncs to; while one is still live, dropping the rule
|
|
19
|
+
// would upload it in plaintext.
|
|
15
20
|
expect(sanitizeCommand('mossbear sync --token auden_tPtcsSvXyRxygMSkBjjDpBKz')).toBe('mossbear sync --token [redacted]');
|
|
16
|
-
expect(sanitizeCommand('mossbear init --token=auden_abcdefgh12345678')).toBe('mossbear init --token=[redacted]');
|
|
17
21
|
});
|
|
18
22
|
it('does not redact ordinary words that merely start with the prefix', () => {
|
|
23
|
+
expect(sanitizeCommand('cd mossbear_repo && ls')).toBe('cd mossbear_repo && ls');
|
|
19
24
|
expect(sanitizeCommand('cd auden_repo && ls')).toBe('cd auden_repo && ls');
|
|
20
25
|
});
|
|
21
26
|
it('redacts bearer tokens in Authorization headers', () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sanitize-command.test.js","sourceRoot":"","sources":["../src/sanitize-command.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE7C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAEvD,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACpD,MAAM,CAAC,eAAe,CAAC,4BAA4B,CAAC,CAAC,CAAC,IAAI,CACxD,4BAA4B,CAC7B,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,oEAAoE,EAAE,GAAG,EAAE;QAC5E,uEAAuE;QACvE,yEAAyE;QACzE,6DAA6D;QAC7D,wEAAwE;QACxE,
|
|
1
|
+
{"version":3,"file":"sanitize-command.test.js","sourceRoot":"","sources":["../src/sanitize-command.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strip-code-blocks.d.ts","sourceRoot":"","sources":["../src/strip-code-blocks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAqBH,6DAA6D;AAC7D,MAAM,MAAM,oBAAoB,GAAG;IACjC,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAA;IACZ,oCAAoC;IACpC,MAAM,EAAE,MAAM,CAAA;IACd,oEAAoE;IACpE,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;
|
|
1
|
+
{"version":3,"file":"strip-code-blocks.d.ts","sourceRoot":"","sources":["../src/strip-code-blocks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAqBH,6DAA6D;AAC7D,MAAM,MAAM,oBAAoB,GAAG;IACjC,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAA;IACZ,oCAAoC;IACpC,MAAM,EAAE,MAAM,CAAA;IACd,oEAAoE;IACpE,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AA0FD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,oBAAoB,CA+DrE"}
|
|
@@ -55,9 +55,16 @@ const TAB_WIDTH = 4;
|
|
|
55
55
|
*
|
|
56
56
|
* Line count and language only: the plan's class table specifies exactly this
|
|
57
57
|
* pair, and anything more (a first line, a hash, a length in characters) is a
|
|
58
|
-
* fingerprint of the code rather than a description of it.
|
|
59
|
-
*
|
|
60
|
-
*
|
|
58
|
+
* fingerprint of the code rather than a description of it.
|
|
59
|
+
*
|
|
60
|
+
* **Settled 2026-08-21 (founder): no hash, ever — this pair is the complete
|
|
61
|
+
* placeholder.** This comment previously called it an open question, which
|
|
62
|
+
* would have read to a later maintainer as an invitation to add the
|
|
63
|
+
* fingerprint the decision rejects. A hash of code stripped for privacy
|
|
64
|
+
* re-imports the risk the stripping removed. The stated cost, so nobody
|
|
65
|
+
* rediscovers it as a surprise: the opt-in backfill the question was
|
|
66
|
+
* protecting becomes impossible, not merely unbuilt
|
|
67
|
+
* (`docs/plans/transcript-content-classes-plan.md` → Resolved).
|
|
61
68
|
*/
|
|
62
69
|
function placeholder(language, lines) {
|
|
63
70
|
const unit = lines === 1 ? 'line' : 'lines';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strip-code-blocks.js","sourceRoot":"","sources":["../src/strip-code-blocks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,6DAA6D;AAC7D,MAAM,mBAAmB,GAAG,EAAE,CAAA;AAE9B;;;;;;;;;;GAUG;AACH,MAAM,gBAAgB,GAAG,oBAAoB,CAAA;AAE7C,+EAA+E;AAC/E,MAAM,SAAS,GAAG,CAAC,CAAA;AAYnB
|
|
1
|
+
{"version":3,"file":"strip-code-blocks.js","sourceRoot":"","sources":["../src/strip-code-blocks.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mossbear/eval-core",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
3
|
+
"version": "0.1.0-alpha.29",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Portable pieces of Mossbear's evaluation path — command redaction, the LLM adapter seam, and guide normalization.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
],
|
|
22
22
|
"repository": {
|
|
23
23
|
"type": "git",
|
|
24
|
-
"url": "https://github.com/
|
|
24
|
+
"url": "https://github.com/mossbear-io/mossbear.git",
|
|
25
25
|
"directory": "packages/eval-core"
|
|
26
26
|
},
|
|
27
27
|
"publishConfig": {
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"test": "vitest run"
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@mossbear/protocol": "0.1.0-alpha.
|
|
42
|
+
"@mossbear/protocol": "0.1.0-alpha.29"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
45
|
"typescript": "*"
|