@memnexus-ai/mx-agent-cli 0.1.208 → 0.1.210
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/__tests__/claude-sync.test.js +77 -5
- package/dist/__tests__/claude-sync.test.js.map +1 -1
- package/dist/__tests__/config-generation-gate.test.js +18 -9
- package/dist/__tests__/config-generation-gate.test.js.map +1 -1
- package/dist/__tests__/generate-claude.test.js +90 -6
- package/dist/__tests__/generate-claude.test.js.map +1 -1
- package/dist/__tests__/security-posture.test.d.ts +8 -0
- package/dist/__tests__/security-posture.test.d.ts.map +1 -0
- package/dist/__tests__/security-posture.test.js +82 -0
- package/dist/__tests__/security-posture.test.js.map +1 -0
- package/dist/__tests__/start-report-generation-capture.test.d.ts +17 -0
- package/dist/__tests__/start-report-generation-capture.test.d.ts.map +1 -0
- package/dist/__tests__/start-report-generation-capture.test.js +127 -0
- package/dist/__tests__/start-report-generation-capture.test.js.map +1 -0
- package/dist/__tests__/startup-health-render.test.d.ts +11 -0
- package/dist/__tests__/startup-health-render.test.d.ts.map +1 -0
- package/dist/__tests__/startup-health-render.test.js +60 -0
- package/dist/__tests__/startup-health-render.test.js.map +1 -0
- package/dist/__tests__/startup-report.test.js +34 -1
- package/dist/__tests__/startup-report.test.js.map +1 -1
- package/dist/__tests__/startup-shipper.test.d.ts +13 -0
- package/dist/__tests__/startup-shipper.test.d.ts.map +1 -0
- package/dist/__tests__/startup-shipper.test.js +149 -0
- package/dist/__tests__/startup-shipper.test.js.map +1 -0
- package/dist/agent-config/settings.json +3 -3
- package/dist/commands/dashboard.d.ts +21 -0
- package/dist/commands/dashboard.d.ts.map +1 -1
- package/dist/commands/dashboard.js +72 -1
- package/dist/commands/dashboard.js.map +1 -1
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +16 -0
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/commands/sync.js +17 -0
- package/dist/commands/sync.js.map +1 -1
- package/dist/lib/claude.d.ts.map +1 -1
- package/dist/lib/claude.js +31 -6
- package/dist/lib/claude.js.map +1 -1
- package/dist/lib/security-posture.d.ts +69 -0
- package/dist/lib/security-posture.d.ts.map +1 -0
- package/dist/lib/security-posture.js +102 -0
- package/dist/lib/security-posture.js.map +1 -0
- package/dist/lib/startup-report.d.ts +19 -3
- package/dist/lib/startup-report.d.ts.map +1 -1
- package/dist/lib/startup-report.js +66 -8
- package/dist/lib/startup-report.js.map +1 -1
- package/dist/lib/startup-shipper.d.ts +55 -0
- package/dist/lib/startup-shipper.d.ts.map +1 -0
- package/dist/lib/startup-shipper.js +177 -0
- package/dist/lib/startup-shipper.js.map +1 -0
- package/package.json +1 -1
- package/scripts/generate-claude.mjs +45 -1
- package/dist/__tests__/config-mirror-integrity.test.d.ts +0 -32
- package/dist/__tests__/config-mirror-integrity.test.d.ts.map +0 -1
- package/dist/__tests__/config-mirror-integrity.test.js +0 -248
- package/dist/__tests__/config-mirror-integrity.test.js.map +0 -1
package/dist/lib/claude.js
CHANGED
|
@@ -11,6 +11,7 @@ import chalk from 'chalk';
|
|
|
11
11
|
import { BOOTSTRAP_SETTINGS_JSON } from './templates.js';
|
|
12
12
|
import { removeLock, updateChildPid } from './leader-lock.js';
|
|
13
13
|
import { startupReport, reportSuccess, reportWarning, reportDim } from './startup-report.js';
|
|
14
|
+
import { assessSettingsPosture } from './security-posture.js';
|
|
14
15
|
// ── Logging helpers ───────────────────────────────────────────────────
|
|
15
16
|
// These print exactly as before AND mirror a plain-text copy into the
|
|
16
17
|
// per-invocation StartupReport (#4350). They record with an EXACT level and
|
|
@@ -360,22 +361,46 @@ Today's date is ${new Date().toISOString().slice(0, 10)}.
|
|
|
360
361
|
* session. When a warn path is reached and `.claude/settings.json` is absent, throw
|
|
361
362
|
* a clear, actionable error so start.ts blocks the session start instead.
|
|
362
363
|
*
|
|
363
|
-
* If `.claude/settings.json` exists
|
|
364
|
-
* previously generated tree), behavior is
|
|
364
|
+
* If `.claude/settings.json` exists AND carries a usable security posture (the
|
|
365
|
+
* pre-Phase-4 committed backstop, or a previously generated tree), behavior is
|
|
366
|
+
* unchanged: warn and continue.
|
|
367
|
+
*
|
|
368
|
+
* KI-HARDSTOP-PRESENCE-NOT-VALIDITY: presence alone is not a usable backstop. A
|
|
369
|
+
* zero-byte, malformed, or deny-stripped settings.json satisfies `existsSync`
|
|
370
|
+
* but launches a guardrail-less session — exactly the failure mode the hard-stop
|
|
371
|
+
* exists to prevent. We now parse the file and assert a minimal posture (valid
|
|
372
|
+
* JSON, non-empty `permissions.deny`, and self-protection denies for
|
|
373
|
+
* `.claude/settings.json` + `.claude/hooks/**`, via `assessSettingsPosture`)
|
|
374
|
+
* before treating it as a fallback. An invalid backstop fails closed exactly as
|
|
375
|
+
* an absent one does.
|
|
365
376
|
*/
|
|
366
377
|
function assertExistingConfigOrHardStop(worktreePath, baseBranch, reason) {
|
|
367
378
|
const settingsPath = join(worktreePath, '.claude', 'settings.json');
|
|
368
|
-
|
|
369
|
-
|
|
379
|
+
let postureProblem = 'no existing .claude/settings.json present';
|
|
380
|
+
if (existsSync(settingsPath)) {
|
|
381
|
+
try {
|
|
382
|
+
postureProblem = assessSettingsPosture(readFileSync(settingsPath, 'utf-8'));
|
|
383
|
+
}
|
|
384
|
+
catch {
|
|
385
|
+
postureProblem = 'existing .claude/settings.json could not be read';
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
if (postureProblem === null)
|
|
389
|
+
return; // valid backstop to fall back on — warn-and-continue
|
|
390
|
+
// Fold the posture failure into the cause so the durable log and the thrown
|
|
391
|
+
// message say WHY the existing file was rejected (present-but-invalid vs absent).
|
|
392
|
+
const fullReason = existsSync(settingsPath)
|
|
393
|
+
? `${reason}; existing .claude/settings.json is not a usable backstop (${postureProblem})`
|
|
394
|
+
: reason;
|
|
370
395
|
// Fail-closed hard stop. Capture the reason into the StartupReport and
|
|
371
396
|
// finalize with 'hard_stop' BEFORE throwing (#4350), so the durable log has a
|
|
372
397
|
// terminal record even though the throw skips runStart's normal finalize.
|
|
373
398
|
// finalize is idempotent and never throws, so this is safe even if a caller
|
|
374
399
|
// already finalized; the process-exit safety net is the further backstop.
|
|
375
|
-
startupReport.record('error', `agent config generation failed and no
|
|
400
|
+
startupReport.record('error', `agent config generation failed and no usable .claude/ backstop is present — session cannot start (${fullReason})`, 'no-config-hard-stop');
|
|
376
401
|
startupReport.finalize('hard_stop');
|
|
377
402
|
throw new Error(`agent config generation failed and no existing .claude/ is present — this session cannot start safely.\n` +
|
|
378
|
-
` Cause: ${
|
|
403
|
+
` Cause: ${fullReason}.\n` +
|
|
379
404
|
` There is no committed or previously generated .claude/ to fall back on, so launching now would\n` +
|
|
380
405
|
` run without settings.json, hooks, or agent definitions (no guardrails).\n` +
|
|
381
406
|
` How to resolve:\n` +
|
package/dist/lib/claude.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/lib/claude.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/lib/claude.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* security-posture.ts — shared self-protection permission-posture contract
|
|
3
|
+
* (#4304 Phase 4 flip).
|
|
4
|
+
*
|
|
5
|
+
* Single source of truth for the agent-config self-protection deny rules that
|
|
6
|
+
* every shipped/backstop settings.json must carry. Consumed by BOTH:
|
|
7
|
+
* - the generation-correctness CI gate (config-generation-gate.test.ts), which
|
|
8
|
+
* asserts the SHIPPED source settings.json carries the corrected rules and no
|
|
9
|
+
* unmatched file-path forms, and
|
|
10
|
+
* - syncClaudeConfig's no-config hard-stop (claude.ts), which parses an existing
|
|
11
|
+
* `.claude/settings.json` backstop and refuses to fall back on it unless it
|
|
12
|
+
* carries a minimal security posture (KI-HARDSTOP-PRESENCE-NOT-VALIDITY).
|
|
13
|
+
*
|
|
14
|
+
* SYNTAX — Edit(path) covers all file-editing tools (Claude Code v2.1.210+):
|
|
15
|
+
* File-path permission checks match only `Edit(path)` and `Read(path)` rules.
|
|
16
|
+
* An `Edit(path)` deny covers EVERY file-editing tool — Write, MultiEdit,
|
|
17
|
+
* NotebookEdit. A `Write(path)` / `NotebookEdit(path)` / `Glob(path)` deny is
|
|
18
|
+
* ACCEPTED BUT NEVER MATCHED, and Claude Code warns at startup for each such
|
|
19
|
+
* rule ("Write(...) is not matched by file permission checks — only Edit(path)
|
|
20
|
+
* rules are. Use Edit(...) instead."). The v2.56 online canary printed exactly
|
|
21
|
+
* that warning for `Write(.claude/settings.json)`. So the corrected
|
|
22
|
+
* self-protection denies are Edit-only; the former redundant Write(...) twins
|
|
23
|
+
* were dropped in the v2.57 flip (canary syntax fix, KI item 3c).
|
|
24
|
+
*/
|
|
25
|
+
/**
|
|
26
|
+
* Paths that MUST be write-protected in every settings.json. Edit(path) covers
|
|
27
|
+
* Write/MultiEdit/NotebookEdit, so one Edit rule per path is the full protection.
|
|
28
|
+
*
|
|
29
|
+
* The `.claude.staging-*` / `.claude.prev-*` siblings are the generator's
|
|
30
|
+
* atomic-swap scratch dirs (KI-GENERATOR-SWAP-SIBLINGS-UNGUARDED): a failed
|
|
31
|
+
* prev-cleanup can leave stale settings.json + hooks copies at an unguarded
|
|
32
|
+
* sibling path. Denying Write/Edit there closes the tool-write surface on them
|
|
33
|
+
* (same-UID residual, defense-in-depth — not a Bash-level control).
|
|
34
|
+
*/
|
|
35
|
+
export declare const SELF_PROTECTED_PATHS: readonly [".claude/settings.json", ".claude/hooks/**", ".claude.staging-*/**", ".claude.prev-*/**"];
|
|
36
|
+
/**
|
|
37
|
+
* Core paths whose write-protection a FALLBACK backstop must carry to be treated
|
|
38
|
+
* as usable by the no-config hard-stop. The staging/prev siblings are NOT
|
|
39
|
+
* required here: they are new defense-in-depth added in the flip, and a valid
|
|
40
|
+
* pre-flip generated backstop predates them — requiring them would fail-closed on
|
|
41
|
+
* an otherwise-good backstop. Coverage of the siblings is enforced on the SHIPPED
|
|
42
|
+
* source by the CI gate, not on historical on-disk backstops.
|
|
43
|
+
*/
|
|
44
|
+
export declare const BACKSTOP_REQUIRED_PATHS: readonly string[];
|
|
45
|
+
/** The exact Edit-form deny rules the SHIPPED source settings.json must carry. */
|
|
46
|
+
export declare const REQUIRED_SOURCE_DENIES: readonly string[];
|
|
47
|
+
/**
|
|
48
|
+
* Return the deny entries that use an unmatched file-path form
|
|
49
|
+
* (`Write(path)` / `NotebookEdit(path)` / `Glob(path)`) — the exact forms Claude
|
|
50
|
+
* Code warns about at startup. A bare tool-name rule with NO parentheses (e.g.
|
|
51
|
+
* `Write`) is fine (matches the tool everywhere, no warning) and is not flagged.
|
|
52
|
+
*/
|
|
53
|
+
export declare function unmatchedFilePathDenies(denyList: readonly string[]): string[];
|
|
54
|
+
/**
|
|
55
|
+
* True if `denyList` write-protects `path` in EITHER the current Edit form or the
|
|
56
|
+
* legacy Write form. Lenient on FORM (an older generated backstop that still
|
|
57
|
+
* carries the Write(...) twin validates) but strict on COVERAGE.
|
|
58
|
+
*/
|
|
59
|
+
export declare function pathIsWriteProtected(denyList: readonly string[], path: string): boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Parse a settings.json string and assert it provides a usable security backstop:
|
|
62
|
+
* - parses as JSON,
|
|
63
|
+
* - has a non-empty `permissions.deny` array,
|
|
64
|
+
* - write-protects every BACKSTOP_REQUIRED_PATHS entry (Edit or Write form).
|
|
65
|
+
* Returns a human-readable reason on FAILURE, or null when the posture is usable.
|
|
66
|
+
* Never throws.
|
|
67
|
+
*/
|
|
68
|
+
export declare function assessSettingsPosture(raw: string): string | null;
|
|
69
|
+
//# sourceMappingURL=security-posture.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"security-posture.d.ts","sourceRoot":"","sources":["../../src/lib/security-posture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB,qGAKvB,CAAC;AAEX;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,EAAE,SAAS,MAAM,EAGpD,CAAC;AAEF,kFAAkF;AAClF,eAAO,MAAM,sBAAsB,EAAE,SAAS,MAAM,EACL,CAAC;AAKhD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAI7E;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAGvF;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAiBhE"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* security-posture.ts — shared self-protection permission-posture contract
|
|
3
|
+
* (#4304 Phase 4 flip).
|
|
4
|
+
*
|
|
5
|
+
* Single source of truth for the agent-config self-protection deny rules that
|
|
6
|
+
* every shipped/backstop settings.json must carry. Consumed by BOTH:
|
|
7
|
+
* - the generation-correctness CI gate (config-generation-gate.test.ts), which
|
|
8
|
+
* asserts the SHIPPED source settings.json carries the corrected rules and no
|
|
9
|
+
* unmatched file-path forms, and
|
|
10
|
+
* - syncClaudeConfig's no-config hard-stop (claude.ts), which parses an existing
|
|
11
|
+
* `.claude/settings.json` backstop and refuses to fall back on it unless it
|
|
12
|
+
* carries a minimal security posture (KI-HARDSTOP-PRESENCE-NOT-VALIDITY).
|
|
13
|
+
*
|
|
14
|
+
* SYNTAX — Edit(path) covers all file-editing tools (Claude Code v2.1.210+):
|
|
15
|
+
* File-path permission checks match only `Edit(path)` and `Read(path)` rules.
|
|
16
|
+
* An `Edit(path)` deny covers EVERY file-editing tool — Write, MultiEdit,
|
|
17
|
+
* NotebookEdit. A `Write(path)` / `NotebookEdit(path)` / `Glob(path)` deny is
|
|
18
|
+
* ACCEPTED BUT NEVER MATCHED, and Claude Code warns at startup for each such
|
|
19
|
+
* rule ("Write(...) is not matched by file permission checks — only Edit(path)
|
|
20
|
+
* rules are. Use Edit(...) instead."). The v2.56 online canary printed exactly
|
|
21
|
+
* that warning for `Write(.claude/settings.json)`. So the corrected
|
|
22
|
+
* self-protection denies are Edit-only; the former redundant Write(...) twins
|
|
23
|
+
* were dropped in the v2.57 flip (canary syntax fix, KI item 3c).
|
|
24
|
+
*/
|
|
25
|
+
/**
|
|
26
|
+
* Paths that MUST be write-protected in every settings.json. Edit(path) covers
|
|
27
|
+
* Write/MultiEdit/NotebookEdit, so one Edit rule per path is the full protection.
|
|
28
|
+
*
|
|
29
|
+
* The `.claude.staging-*` / `.claude.prev-*` siblings are the generator's
|
|
30
|
+
* atomic-swap scratch dirs (KI-GENERATOR-SWAP-SIBLINGS-UNGUARDED): a failed
|
|
31
|
+
* prev-cleanup can leave stale settings.json + hooks copies at an unguarded
|
|
32
|
+
* sibling path. Denying Write/Edit there closes the tool-write surface on them
|
|
33
|
+
* (same-UID residual, defense-in-depth — not a Bash-level control).
|
|
34
|
+
*/
|
|
35
|
+
export const SELF_PROTECTED_PATHS = [
|
|
36
|
+
'.claude/settings.json',
|
|
37
|
+
'.claude/hooks/**',
|
|
38
|
+
'.claude.staging-*/**',
|
|
39
|
+
'.claude.prev-*/**',
|
|
40
|
+
];
|
|
41
|
+
/**
|
|
42
|
+
* Core paths whose write-protection a FALLBACK backstop must carry to be treated
|
|
43
|
+
* as usable by the no-config hard-stop. The staging/prev siblings are NOT
|
|
44
|
+
* required here: they are new defense-in-depth added in the flip, and a valid
|
|
45
|
+
* pre-flip generated backstop predates them — requiring them would fail-closed on
|
|
46
|
+
* an otherwise-good backstop. Coverage of the siblings is enforced on the SHIPPED
|
|
47
|
+
* source by the CI gate, not on historical on-disk backstops.
|
|
48
|
+
*/
|
|
49
|
+
export const BACKSTOP_REQUIRED_PATHS = [
|
|
50
|
+
'.claude/settings.json',
|
|
51
|
+
'.claude/hooks/**',
|
|
52
|
+
];
|
|
53
|
+
/** The exact Edit-form deny rules the SHIPPED source settings.json must carry. */
|
|
54
|
+
export const REQUIRED_SOURCE_DENIES = SELF_PROTECTED_PATHS.map((p) => `Edit(${p})`);
|
|
55
|
+
/** Tool prefixes whose `Tool(path)` deny form is accepted but never matched (warns). */
|
|
56
|
+
const UNMATCHED_FILE_TOOL_PREFIXES = ['Write', 'NotebookEdit', 'Glob'];
|
|
57
|
+
/**
|
|
58
|
+
* Return the deny entries that use an unmatched file-path form
|
|
59
|
+
* (`Write(path)` / `NotebookEdit(path)` / `Glob(path)`) — the exact forms Claude
|
|
60
|
+
* Code warns about at startup. A bare tool-name rule with NO parentheses (e.g.
|
|
61
|
+
* `Write`) is fine (matches the tool everywhere, no warning) and is not flagged.
|
|
62
|
+
*/
|
|
63
|
+
export function unmatchedFilePathDenies(denyList) {
|
|
64
|
+
return denyList.filter((d) => UNMATCHED_FILE_TOOL_PREFIXES.some((t) => d.startsWith(`${t}(`)));
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* True if `denyList` write-protects `path` in EITHER the current Edit form or the
|
|
68
|
+
* legacy Write form. Lenient on FORM (an older generated backstop that still
|
|
69
|
+
* carries the Write(...) twin validates) but strict on COVERAGE.
|
|
70
|
+
*/
|
|
71
|
+
export function pathIsWriteProtected(denyList, path) {
|
|
72
|
+
const deny = new Set(denyList);
|
|
73
|
+
return deny.has(`Edit(${path})`) || deny.has(`Write(${path})`);
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Parse a settings.json string and assert it provides a usable security backstop:
|
|
77
|
+
* - parses as JSON,
|
|
78
|
+
* - has a non-empty `permissions.deny` array,
|
|
79
|
+
* - write-protects every BACKSTOP_REQUIRED_PATHS entry (Edit or Write form).
|
|
80
|
+
* Returns a human-readable reason on FAILURE, or null when the posture is usable.
|
|
81
|
+
* Never throws.
|
|
82
|
+
*/
|
|
83
|
+
export function assessSettingsPosture(raw) {
|
|
84
|
+
let parsed;
|
|
85
|
+
try {
|
|
86
|
+
parsed = JSON.parse(raw);
|
|
87
|
+
}
|
|
88
|
+
catch {
|
|
89
|
+
return 'settings.json is not valid JSON';
|
|
90
|
+
}
|
|
91
|
+
const deny = parsed?.permissions?.deny;
|
|
92
|
+
if (!Array.isArray(deny) || deny.length === 0) {
|
|
93
|
+
return 'permissions.deny is missing or empty';
|
|
94
|
+
}
|
|
95
|
+
const denyStrs = deny.filter((d) => typeof d === 'string');
|
|
96
|
+
const missing = BACKSTOP_REQUIRED_PATHS.filter((p) => !pathIsWriteProtected(denyStrs, p));
|
|
97
|
+
if (missing.length > 0) {
|
|
98
|
+
return `missing self-protection deny for: ${missing.join(', ')}`;
|
|
99
|
+
}
|
|
100
|
+
return null;
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=security-posture.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"security-posture.js","sourceRoot":"","sources":["../../src/lib/security-posture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,uBAAuB;IACvB,kBAAkB;IAClB,sBAAsB;IACtB,mBAAmB;CACX,CAAC;AAEX;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAsB;IACxD,uBAAuB;IACvB,kBAAkB;CACnB,CAAC;AAEF,kFAAkF;AAClF,MAAM,CAAC,MAAM,sBAAsB,GACjC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAEhD,wFAAwF;AACxF,MAAM,4BAA4B,GAAG,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,CAAU,CAAC;AAEhF;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CAAC,QAA2B;IACjE,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAC3B,4BAA4B,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAChE,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAA2B,EAAE,IAAY;IAC5E,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC/B,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,CAAC;AACjE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAW;IAC/C,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,iCAAiC,CAAC;IAC3C,CAAC;IACD,MAAM,IAAI,GAAI,MAAsD,EAAE,WAAW,EAAE,IAAI,CAAC;IACxF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9C,OAAO,sCAAsC,CAAC;IAChD,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC;IACxE,MAAM,OAAO,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,oBAAoB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1F,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,qCAAqC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACnE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -50,7 +50,18 @@ export interface StartupContext {
|
|
|
50
50
|
}
|
|
51
51
|
/** Redact credentials from any URL in a message before it is persisted. */
|
|
52
52
|
export declare function redactUrlCredentials(s: string): string;
|
|
53
|
-
/**
|
|
53
|
+
/**
|
|
54
|
+
* Strip all terminal control sequences (CSI, OSC) and C0/C1 control chars from a
|
|
55
|
+
* string so it is safe to store and to print to an operator's terminal. TAB and
|
|
56
|
+
* LF are preserved. Use this on ANY externally-influenced text before it is
|
|
57
|
+
* persisted or rendered (CWE-150).
|
|
58
|
+
*/
|
|
59
|
+
export declare function stripControlSequences(s: string): string;
|
|
60
|
+
/**
|
|
61
|
+
* Back-compat alias — historically this stripped only SGR color codes; it now
|
|
62
|
+
* strips the full control-sequence set. All existing call sites (level
|
|
63
|
+
* inference, the console tee, stored messages) want the broader stripping.
|
|
64
|
+
*/
|
|
54
65
|
export declare function stripAnsi(s: string): string;
|
|
55
66
|
/**
|
|
56
67
|
* Infer a log level from a printed line without any call-site cooperation.
|
|
@@ -71,11 +82,14 @@ declare class StartupReport {
|
|
|
71
82
|
private origStderrWrite;
|
|
72
83
|
private capturing;
|
|
73
84
|
private exitNetRegistered;
|
|
85
|
+
private shipHook;
|
|
74
86
|
private inErrorTee;
|
|
75
87
|
/** Merge in context as it becomes known (project, worktree, etc.). */
|
|
76
88
|
setContext(partial: StartupContext): void;
|
|
77
|
-
/** Buffer one entry. Never throws.
|
|
78
|
-
* message
|
|
89
|
+
/** Buffer one entry. Never throws. This is the single choke point for every
|
|
90
|
+
* persisted message, so it scrubs URL credentials AND strips all terminal
|
|
91
|
+
* control sequences (CWE-150) here — guaranteeing no CSI/OSC/C0/C1 byte is
|
|
92
|
+
* ever stored regardless of which capture site produced the entry. */
|
|
79
93
|
record(level: StartupLevel, message: string, code?: string): void;
|
|
80
94
|
/**
|
|
81
95
|
* Assemble the report and append one JSON line to the durable log. Idempotent
|
|
@@ -83,6 +97,8 @@ declare class StartupReport {
|
|
|
83
97
|
* untouched.
|
|
84
98
|
*/
|
|
85
99
|
finalize(outcome: StartupOutcome): void;
|
|
100
|
+
/** Register the fire-and-forget central-shipping hook (start.ts only). */
|
|
101
|
+
setShipHook(fn: () => void): void;
|
|
86
102
|
/** Absolute path to this invocation's JSONL log. */
|
|
87
103
|
private logFilePath;
|
|
88
104
|
/** Append a line, creating dirs and performing two-generation rotation. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"startup-report.d.ts","sourceRoot":"","sources":["../../src/lib/startup-report.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;
|
|
1
|
+
{"version":3,"file":"startup-report.d.ts","sourceRoot":"","sources":["../../src/lib/startup-report.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,9 +31,28 @@
|
|
|
31
31
|
import { appendFileSync, mkdirSync, renameSync, statSync } from 'fs';
|
|
32
32
|
import { homedir, hostname } from 'os';
|
|
33
33
|
import { dirname, join } from 'path';
|
|
34
|
+
import { spoolReport } from './startup-shipper.js';
|
|
34
35
|
/** Rotate the JSONL file once it exceeds this size (simple two-generation rotation). */
|
|
35
36
|
const MAX_LOG_BYTES = 5 * 1024 * 1024;
|
|
36
|
-
|
|
37
|
+
/**
|
|
38
|
+
* Full terminal control-sequence stripper (CWE-150 defense, #4350 security
|
|
39
|
+
* review). SGR color stripping alone (the old `\x1b\[...m`) left OSC (window-
|
|
40
|
+
* title set, hyperlinks) and CSI cursor/screen-clear sequences intact, so a
|
|
41
|
+
* crafted report field could drive the operator's terminal when rendered. This
|
|
42
|
+
* pattern removes:
|
|
43
|
+
* 1. CSI sequences — ESC [ params intermediates final (covers SGR, cursor
|
|
44
|
+
* moves, ESC[2J screen clear).
|
|
45
|
+
* 2. OSC sequences — ESC ] … terminated by BEL or ESC\ (covers ESC]0; title
|
|
46
|
+
* set and hyperlinks).
|
|
47
|
+
* 3. C0/C1 control chars — U+0000–0008, U+000B–001F, U+007F–009F. TAB (U+0009)
|
|
48
|
+
* and LF (U+000A) are deliberately preserved.
|
|
49
|
+
*
|
|
50
|
+
* Order matters: the multi-char CSI/OSC branches come BEFORE the single-char
|
|
51
|
+
* class so a leading ESC (itself a C0 control) is consumed as part of its
|
|
52
|
+
* sequence rather than stripped alone — which would leave the payload bytes
|
|
53
|
+
* (e.g. "[2J") behind as visible text.
|
|
54
|
+
*/
|
|
55
|
+
const CONTROL_SEQ_RE = /\u001b\[[0-?]*[ -\/]*[@-~]|\u001b\][^\u0007]*(?:\u0007|\u001b\\)|[\u0000-\u0008\u000b-\u001f\u007f-\u009f]/g;
|
|
37
56
|
/**
|
|
38
57
|
* Strip `userinfo` (user:password@) from any `scheme://` URL. Covers git fetch
|
|
39
58
|
* stderr that echoes a credentialed remote (e.g.
|
|
@@ -45,9 +64,22 @@ const REDACT_URL_CRED = /([a-z][a-z0-9+.-]*:\/\/)[^/@\s]*@/gi;
|
|
|
45
64
|
export function redactUrlCredentials(s) {
|
|
46
65
|
return s.replace(REDACT_URL_CRED, '$1***@');
|
|
47
66
|
}
|
|
48
|
-
/**
|
|
67
|
+
/**
|
|
68
|
+
* Strip all terminal control sequences (CSI, OSC) and C0/C1 control chars from a
|
|
69
|
+
* string so it is safe to store and to print to an operator's terminal. TAB and
|
|
70
|
+
* LF are preserved. Use this on ANY externally-influenced text before it is
|
|
71
|
+
* persisted or rendered (CWE-150).
|
|
72
|
+
*/
|
|
73
|
+
export function stripControlSequences(s) {
|
|
74
|
+
return String(s ?? '').replace(CONTROL_SEQ_RE, '');
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Back-compat alias — historically this stripped only SGR color codes; it now
|
|
78
|
+
* strips the full control-sequence set. All existing call sites (level
|
|
79
|
+
* inference, the console tee, stored messages) want the broader stripping.
|
|
80
|
+
*/
|
|
49
81
|
export function stripAnsi(s) {
|
|
50
|
-
return s
|
|
82
|
+
return stripControlSequences(s);
|
|
51
83
|
}
|
|
52
84
|
/**
|
|
53
85
|
* Infer a log level from a printed line without any call-site cooperation.
|
|
@@ -94,6 +126,10 @@ class StartupReport {
|
|
|
94
126
|
origStderrWrite = process.stderr.write;
|
|
95
127
|
capturing = false;
|
|
96
128
|
exitNetRegistered = false;
|
|
129
|
+
// Fire-and-forget central-shipping hook (#4350 Phase 2). Registered by start.ts
|
|
130
|
+
// with the observability config; null everywhere else (e.g. tests) so finalize's
|
|
131
|
+
// local-write behavior is unchanged when no shipper is wired.
|
|
132
|
+
shipHook = null;
|
|
97
133
|
// Re-entrancy guard: Node's native console.error dispatches through the live
|
|
98
134
|
// (teed) process.stderr.write, so without this flag an error line would be
|
|
99
135
|
// recorded twice — once by the console.error tee (error) and again by the
|
|
@@ -104,13 +140,16 @@ class StartupReport {
|
|
|
104
140
|
setContext(partial) {
|
|
105
141
|
this.ctx = { ...this.ctx, ...partial };
|
|
106
142
|
}
|
|
107
|
-
/** Buffer one entry. Never throws.
|
|
108
|
-
* message
|
|
143
|
+
/** Buffer one entry. Never throws. This is the single choke point for every
|
|
144
|
+
* persisted message, so it scrubs URL credentials AND strips all terminal
|
|
145
|
+
* control sequences (CWE-150) here — guaranteeing no CSI/OSC/C0/C1 byte is
|
|
146
|
+
* ever stored regardless of which capture site produced the entry. */
|
|
109
147
|
record(level, message, code) {
|
|
110
148
|
try {
|
|
111
|
-
const
|
|
149
|
+
const clean = redactUrlCredentials(stripControlSequences(message));
|
|
150
|
+
const entry = { ts: new Date().toISOString(), level, message: clean };
|
|
112
151
|
if (code)
|
|
113
|
-
entry.code = code;
|
|
152
|
+
entry.code = stripControlSequences(code);
|
|
114
153
|
this.entries.push(entry);
|
|
115
154
|
}
|
|
116
155
|
catch {
|
|
@@ -149,12 +188,30 @@ class StartupReport {
|
|
|
149
188
|
outcome,
|
|
150
189
|
entries: this.entries,
|
|
151
190
|
};
|
|
152
|
-
|
|
191
|
+
const json = JSON.stringify(report);
|
|
192
|
+
this.appendLine(json);
|
|
193
|
+
// #4350 Phase 2: enqueue for central shipping. spoolReport never throws;
|
|
194
|
+
// the ship hook (if any) fires a best-effort POST and is fire-and-forget so
|
|
195
|
+
// it can never block or slow the start. A failed POST leaves the file
|
|
196
|
+
// spooled for the Stop-hook `mx-agent sync` flush.
|
|
197
|
+
spoolReport(json);
|
|
198
|
+
if (this.shipHook) {
|
|
199
|
+
try {
|
|
200
|
+
this.shipHook();
|
|
201
|
+
}
|
|
202
|
+
catch {
|
|
203
|
+
/* shipping must never affect the start */
|
|
204
|
+
}
|
|
205
|
+
}
|
|
153
206
|
}
|
|
154
207
|
catch {
|
|
155
208
|
/* a logging failure must never affect the start */
|
|
156
209
|
}
|
|
157
210
|
}
|
|
211
|
+
/** Register the fire-and-forget central-shipping hook (start.ts only). */
|
|
212
|
+
setShipHook(fn) {
|
|
213
|
+
this.shipHook = fn;
|
|
214
|
+
}
|
|
158
215
|
/** Absolute path to this invocation's JSONL log. */
|
|
159
216
|
logFilePath() {
|
|
160
217
|
const name = this.ctx.worktree || this.ctx.team || 'unknown';
|
|
@@ -296,6 +353,7 @@ class StartupReport {
|
|
|
296
353
|
this.ctx = {};
|
|
297
354
|
this.startedAt = new Date().toISOString();
|
|
298
355
|
this.finalized = false;
|
|
356
|
+
this.shipHook = null;
|
|
299
357
|
}
|
|
300
358
|
/** @internal snapshot of buffered entries (tests only). */
|
|
301
359
|
_entries() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"startup-report.js","sourceRoot":"","sources":["../../src/lib/startup-report.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"startup-report.js","sourceRoot":"","sources":["../../src/lib/startup-report.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* startup-shipper.ts — ships StartupReports to the central observability
|
|
3
|
+
* service (platform v2.58 Phase 2, #4350).
|
|
4
|
+
*
|
|
5
|
+
* Durability model mirrors the local JSONL from Phase 1: every report is first
|
|
6
|
+
* written to a spool dir (~/.mx-agent/logs/startup/spool/<uuid>.json), then a
|
|
7
|
+
* best-effort POST deletes it on success. A failed or token-less POST leaves the
|
|
8
|
+
* file spooled; the Stop-hook `mx-agent sync` flushes the backlog on the next
|
|
9
|
+
* session end.
|
|
10
|
+
*
|
|
11
|
+
* Discipline (identical to startup-report.ts): NOTHING here throws. Shipping is
|
|
12
|
+
* additive telemetry — it must never block, slow, or fail a session start. Every
|
|
13
|
+
* filesystem and network call is wrapped; the worst outcome of any failure is a
|
|
14
|
+
* report that stays spooled for a later retry.
|
|
15
|
+
*
|
|
16
|
+
* - spoolReport(json) — write one report to the spool. Drops files older
|
|
17
|
+
* than 14 days at write time (bounded disk/staleness).
|
|
18
|
+
* - flushSpool(cfg) — POST every spooled report, deleting each on 2xx.
|
|
19
|
+
* Enforces a 50-file cap (drops oldest beyond it) and
|
|
20
|
+
* skips entirely when no token is configured.
|
|
21
|
+
* - postSpoolFile(p, cfg) — POST one spool file with a 3 s timeout.
|
|
22
|
+
*/
|
|
23
|
+
/** Absolute path to the spool directory. Computed at call time so tests that
|
|
24
|
+
* repoint $HOME observe the change (matches startup-report.ts). */
|
|
25
|
+
export declare function spoolDir(): string;
|
|
26
|
+
export interface ShipConfig {
|
|
27
|
+
apiUrl: string;
|
|
28
|
+
apiToken?: string;
|
|
29
|
+
/** Optional dim-note logger (sync passes one; startup passes nothing). */
|
|
30
|
+
log?: (msg: string) => void;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Write a report JSON string to the spool. Never throws. Returns the file path,
|
|
34
|
+
* or null if the write could not be performed (e.g. a read-only spool dir).
|
|
35
|
+
* Drops files older than 14 days first.
|
|
36
|
+
*/
|
|
37
|
+
export declare function spoolReport(reportJson: string): string | null;
|
|
38
|
+
/**
|
|
39
|
+
* POST one spool file to the observability service. Returns true and deletes the
|
|
40
|
+
* file on a 2xx response. Any non-2xx, network error, or timeout returns false
|
|
41
|
+
* and leaves the file spooled. Never throws.
|
|
42
|
+
*/
|
|
43
|
+
export declare function postSpoolFile(path: string, cfg: ShipConfig): Promise<boolean>;
|
|
44
|
+
/**
|
|
45
|
+
* Flush the spool: POST every spooled report, deleting each on success.
|
|
46
|
+
*
|
|
47
|
+
* Enforces the 50-file cap first (drops the oldest beyond it, with a dim note if
|
|
48
|
+
* a logger is provided). If no token is configured the whole flush is skipped —
|
|
49
|
+
* files stay spooled so a later run with a token can retry. Never throws.
|
|
50
|
+
*/
|
|
51
|
+
export declare function flushSpool(cfg: ShipConfig): Promise<{
|
|
52
|
+
shipped: number;
|
|
53
|
+
remaining: number;
|
|
54
|
+
}>;
|
|
55
|
+
//# sourceMappingURL=startup-shipper.d.ts.map
|