@intutic/sync-daemon 2.2.0 → 2.3.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 +1 -1
- package/dist/agentReporter.d.ts +23 -11
- package/dist/agentReporter.d.ts.map +1 -1
- package/dist/agentReporter.js +20 -13
- package/dist/agentReporter.js.map +1 -1
- package/dist/configReader.d.ts +1 -3
- package/dist/configReader.d.ts.map +1 -1
- package/dist/configReader.js +0 -2
- package/dist/configReader.js.map +1 -1
- package/dist/configWriter.d.ts +11 -12
- package/dist/configWriter.d.ts.map +1 -1
- package/dist/configWriter.js +35 -58
- package/dist/configWriter.js.map +1 -1
- package/dist/disconnect/harnesses.d.ts +0 -2
- package/dist/disconnect/harnesses.d.ts.map +1 -1
- package/dist/disconnect/harnesses.js +157 -80
- package/dist/disconnect/harnesses.js.map +1 -1
- package/dist/disconnect/index.d.ts.map +1 -1
- package/dist/disconnect/index.js +11 -1
- package/dist/disconnect/index.js.map +1 -1
- package/dist/disconnect/mcp.d.ts +21 -0
- package/dist/disconnect/mcp.d.ts.map +1 -1
- package/dist/disconnect/mcp.js +71 -0
- package/dist/disconnect/mcp.js.map +1 -1
- package/dist/disconnect/recognise.d.ts +2 -2
- package/dist/disconnect/recognise.d.ts.map +1 -1
- package/dist/disconnect/recognise.js +15 -5
- package/dist/disconnect/recognise.js.map +1 -1
- package/dist/harness/aiderConfigMerger.d.ts +28 -8
- package/dist/harness/aiderConfigMerger.d.ts.map +1 -1
- package/dist/harness/aiderConfigMerger.js +59 -11
- package/dist/harness/aiderConfigMerger.js.map +1 -1
- package/dist/harness/antigravityCliHooks.d.ts +61 -0
- package/dist/harness/antigravityCliHooks.d.ts.map +1 -0
- package/dist/harness/antigravityCliHooks.js +207 -0
- package/dist/harness/antigravityCliHooks.js.map +1 -0
- package/dist/harness/antigravityHooks.d.ts +12 -2
- package/dist/harness/antigravityHooks.d.ts.map +1 -1
- package/dist/harness/antigravityHooks.js +36 -16
- package/dist/harness/antigravityHooks.js.map +1 -1
- package/dist/harness/antigravityProducts.d.ts +40 -0
- package/dist/harness/antigravityProducts.d.ts.map +1 -0
- package/dist/harness/antigravityProducts.js +109 -0
- package/dist/harness/antigravityProducts.js.map +1 -0
- package/dist/harness/claudeAgentsMd.d.ts +29 -0
- package/dist/harness/claudeAgentsMd.d.ts.map +1 -0
- package/dist/harness/claudeAgentsMd.js +80 -0
- package/dist/harness/claudeAgentsMd.js.map +1 -0
- package/dist/harness/claudeCodeHooks.d.ts +6 -5
- package/dist/harness/claudeCodeHooks.d.ts.map +1 -1
- package/dist/harness/claudeCodeHooks.js +98 -24
- package/dist/harness/claudeCodeHooks.js.map +1 -1
- package/dist/harness/clineHooks.d.ts +0 -1
- package/dist/harness/clineHooks.d.ts.map +1 -1
- package/dist/harness/clineHooks.js +10 -4
- package/dist/harness/clineHooks.js.map +1 -1
- package/dist/harness/codexHooks.d.ts +2 -0
- package/dist/harness/codexHooks.d.ts.map +1 -1
- package/dist/harness/codexHooks.js +12 -4
- package/dist/harness/codexHooks.js.map +1 -1
- package/dist/harness/cursorHooks.d.ts +5 -2
- package/dist/harness/cursorHooks.d.ts.map +1 -1
- package/dist/harness/cursorHooks.js +9 -3
- package/dist/harness/cursorHooks.js.map +1 -1
- package/dist/harness/dshHooks.d.ts +5 -5
- package/dist/harness/dshHooks.d.ts.map +1 -1
- package/dist/harness/dshHooks.js +5 -5
- package/dist/harness/gateArtifacts.d.ts +35 -0
- package/dist/harness/gateArtifacts.d.ts.map +1 -0
- package/dist/harness/gateArtifacts.js +88 -0
- package/dist/harness/gateArtifacts.js.map +1 -0
- package/dist/harness/gateBody.d.ts +186 -69
- package/dist/harness/gateBody.d.ts.map +1 -1
- package/dist/harness/gateBody.js +820 -182
- package/dist/harness/gateBody.js.map +1 -1
- package/dist/harness/gateSightings.d.ts +47 -0
- package/dist/harness/gateSightings.d.ts.map +1 -0
- package/dist/harness/gateSightings.js +159 -0
- package/dist/harness/gateSightings.js.map +1 -0
- package/dist/harness/githubCopilotHooks.d.ts.map +1 -1
- package/dist/harness/githubCopilotHooks.js +7 -1
- package/dist/harness/githubCopilotHooks.js.map +1 -1
- package/dist/harness/gooseHardener.d.ts +0 -1
- package/dist/harness/gooseHardener.d.ts.map +1 -1
- package/dist/harness/gooseHardener.js +1 -1
- package/dist/harness/gooseHardener.js.map +1 -1
- package/dist/harness/gooseHooks.d.ts +14 -1
- package/dist/harness/gooseHooks.d.ts.map +1 -1
- package/dist/harness/gooseHooks.js +55 -29
- package/dist/harness/gooseHooks.js.map +1 -1
- package/dist/harness/grokHooks.d.ts +2 -2
- package/dist/harness/grokHooks.d.ts.map +1 -1
- package/dist/harness/grokHooks.js +11 -6
- package/dist/harness/grokHooks.js.map +1 -1
- package/dist/harness/hermesHooks.d.ts +18 -8
- package/dist/harness/hermesHooks.d.ts.map +1 -1
- package/dist/harness/hermesHooks.js +48 -17
- package/dist/harness/hermesHooks.js.map +1 -1
- package/dist/harness/mcpAutoWrite.d.ts +24 -9
- package/dist/harness/mcpAutoWrite.d.ts.map +1 -1
- package/dist/harness/mcpAutoWrite.js +218 -25
- package/dist/harness/mcpAutoWrite.js.map +1 -1
- package/dist/harness/museHooks.d.ts +3 -3
- package/dist/harness/museHooks.d.ts.map +1 -1
- package/dist/harness/museHooks.js +9 -5
- package/dist/harness/museHooks.js.map +1 -1
- package/dist/harness/n8nHooks.d.ts +0 -1
- package/dist/harness/n8nHooks.d.ts.map +1 -1
- package/dist/harness/n8nHooks.js +4 -1
- package/dist/harness/n8nHooks.js.map +1 -1
- package/dist/harness/openCodeHooks.d.ts +2 -2
- package/dist/harness/openCodeHooks.d.ts.map +1 -1
- package/dist/harness/openCodeHooks.js +7 -3
- package/dist/harness/openCodeHooks.js.map +1 -1
- package/dist/harness/openWebuiHooks.d.ts +0 -1
- package/dist/harness/openWebuiHooks.d.ts.map +1 -1
- package/dist/harness/openWebuiHooks.js +5 -1
- package/dist/harness/openWebuiHooks.js.map +1 -1
- package/dist/harness/openclawHooks.d.ts +70 -18
- package/dist/harness/openclawHooks.d.ts.map +1 -1
- package/dist/harness/openclawHooks.js +213 -161
- package/dist/harness/openclawHooks.js.map +1 -1
- package/dist/harness/openhandsHooks.d.ts +24 -10
- package/dist/harness/openhandsHooks.d.ts.map +1 -1
- package/dist/harness/openhandsHooks.js +49 -48
- package/dist/harness/openhandsHooks.js.map +1 -1
- package/dist/harness/piHooks.d.ts +52 -17
- package/dist/harness/piHooks.d.ts.map +1 -1
- package/dist/harness/piHooks.js +177 -166
- package/dist/harness/piHooks.js.map +1 -1
- package/dist/harness/protectedPaths.d.ts +107 -25
- package/dist/harness/protectedPaths.d.ts.map +1 -1
- package/dist/harness/protectedPaths.js +342 -48
- package/dist/harness/protectedPaths.js.map +1 -1
- package/dist/harness/rulesSection.d.ts +62 -0
- package/dist/harness/rulesSection.d.ts.map +1 -0
- package/dist/harness/rulesSection.js +145 -0
- package/dist/harness/rulesSection.js.map +1 -0
- package/dist/harness/windsurfHooks.d.ts +0 -1
- package/dist/harness/windsurfHooks.d.ts.map +1 -1
- package/dist/harness/windsurfHooks.js +4 -1
- package/dist/harness/windsurfHooks.js.map +1 -1
- package/dist/index.d.ts +12 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -9
- package/dist/index.js.map +1 -1
- package/dist/inventory.d.ts +53 -0
- package/dist/inventory.d.ts.map +1 -0
- package/dist/inventory.js +133 -0
- package/dist/inventory.js.map +1 -0
- package/dist/lib/complianceProbes.d.ts +2 -1
- package/dist/lib/complianceProbes.d.ts.map +1 -1
- package/dist/lib/complianceProbes.js +1 -1
- package/dist/lib/complianceProbes.js.map +1 -1
- package/dist/lib/decisionsDigest.d.ts +34 -16
- package/dist/lib/decisionsDigest.d.ts.map +1 -1
- package/dist/lib/decisionsDigest.js +105 -46
- package/dist/lib/decisionsDigest.js.map +1 -1
- package/dist/lib/egressPolicy.d.ts +2 -2
- package/dist/lib/egressPolicy.js +2 -2
- package/dist/lib/mcpRegistryPy.d.ts +11 -0
- package/dist/lib/mcpRegistryPy.d.ts.map +1 -0
- package/dist/lib/mcpRegistryPy.js +173 -0
- package/dist/lib/mcpRegistryPy.js.map +1 -0
- package/dist/lib/phrasesPy.d.ts +11 -0
- package/dist/lib/phrasesPy.d.ts.map +1 -0
- package/dist/lib/phrasesPy.js +351 -0
- package/dist/lib/phrasesPy.js.map +1 -0
- package/dist/lib/policySnapshot.d.ts +46 -10
- package/dist/lib/policySnapshot.d.ts.map +1 -1
- package/dist/lib/policySnapshot.js +136 -47
- package/dist/lib/policySnapshot.js.map +1 -1
- package/dist/lib/processPoller.d.ts.map +1 -1
- package/dist/lib/processPoller.js +9 -2
- package/dist/lib/processPoller.js.map +1 -1
- package/dist/lib/regexLinearity.d.ts +43 -0
- package/dist/lib/regexLinearity.d.ts.map +1 -0
- package/dist/lib/regexLinearity.js +275 -0
- package/dist/lib/regexLinearity.js.map +1 -0
- package/dist/lib/runtimeEnv.d.ts +1 -3
- package/dist/lib/runtimeEnv.d.ts.map +1 -1
- package/dist/lib/runtimeEnv.js +0 -2
- package/dist/lib/runtimeEnv.js.map +1 -1
- package/dist/lib/sequencePy.d.ts +10 -0
- package/dist/lib/sequencePy.d.ts.map +1 -0
- package/dist/lib/sequencePy.js +102 -0
- package/dist/lib/sequencePy.js.map +1 -0
- package/dist/sessionReporter.d.ts +17 -11
- package/dist/sessionReporter.d.ts.map +1 -1
- package/dist/sessionReporter.js +36 -23
- package/dist/sessionReporter.js.map +1 -1
- package/dist/skillWriter.d.ts +23 -5
- package/dist/skillWriter.d.ts.map +1 -1
- package/dist/skillWriter.js +159 -16
- package/dist/skillWriter.js.map +1 -1
- package/dist/syncCycle.d.ts.map +1 -1
- package/dist/syncCycle.js +21 -9
- package/dist/syncCycle.js.map +1 -1
- package/dist/trajectoryMonitor.d.ts +1 -3
- package/dist/trajectoryMonitor.d.ts.map +1 -1
- package/dist/trajectoryMonitor.js +1 -4
- package/dist/trajectoryMonitor.js.map +1 -1
- package/dist/watcher/driftWatcher.d.ts +0 -1
- package/dist/watcher/driftWatcher.d.ts.map +1 -1
- package/dist/watcher/driftWatcher.js +1 -2
- package/dist/watcher/driftWatcher.js.map +1 -1
- package/dist/watcher/settingsGuard.d.ts +33 -7
- package/dist/watcher/settingsGuard.d.ts.map +1 -1
- package/dist/watcher/settingsGuard.js +373 -61
- package/dist/watcher/settingsGuard.js.map +1 -1
- package/dist/watcher/vscodeHookSettings.d.ts +30 -0
- package/dist/watcher/vscodeHookSettings.d.ts.map +1 -0
- package/dist/watcher/vscodeHookSettings.js +170 -0
- package/dist/watcher/vscodeHookSettings.js.map +1 -0
- package/dist/wsClient.d.ts +0 -1
- package/dist/wsClient.d.ts.map +1 -1
- package/dist/wsClient.js +0 -1
- package/dist/wsClient.js.map +1 -1
- package/package.json +5 -5
- package/dist/harness/claudeDesktopHooks.d.ts +0 -33
- package/dist/harness/claudeDesktopHooks.d.ts.map +0 -1
- package/dist/harness/claudeDesktopHooks.js +0 -256
- package/dist/harness/claudeDesktopHooks.js.map +0 -1
- package/dist/harness/continueHooks.d.ts +0 -63
- package/dist/harness/continueHooks.d.ts.map +0 -1
- package/dist/harness/continueHooks.js +0 -250
- package/dist/harness/continueHooks.js.map +0 -1
- package/dist/harness/gateKind.d.ts +0 -164
- package/dist/harness/gateKind.d.ts.map +0 -1
- package/dist/harness/gateKind.js +0 -144
- package/dist/harness/gateKind.js.map +0 -1
- package/dist/harness/rooCodeHooks.d.ts +0 -31
- package/dist/harness/rooCodeHooks.d.ts.map +0 -1
- package/dist/harness/rooCodeHooks.js +0 -281
- package/dist/harness/rooCodeHooks.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policySnapshot.d.ts","sourceRoot":"","sources":["../../src/lib/policySnapshot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AAOH,OAAO,
|
|
1
|
+
{"version":3,"file":"policySnapshot.d.ts","sourceRoot":"","sources":["../../src/lib/policySnapshot.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*
|
|
5
5
|
* # Why
|
|
6
6
|
*
|
|
7
|
-
*
|
|
7
|
+
* `POST /api/v1/hook-gate` was called by two of thirteen gates, so DLP,
|
|
8
8
|
* `BLOCK:` SOPs, SSO policy and promoted findings reached two of thirteen. The
|
|
9
9
|
* obvious repair — route the other eleven through the gate — is the wrong one:
|
|
10
10
|
* those eleven enforce locally and **fail closed**, the two network callers were
|
|
@@ -59,7 +59,7 @@ import * as path from 'node:path';
|
|
|
59
59
|
import * as os from 'node:os';
|
|
60
60
|
import { createHash } from 'node:crypto';
|
|
61
61
|
import { createLogger } from '@intutic/logger';
|
|
62
|
-
import { encodeSsoGroupRecord, evaluateSsoGroupClearance, parseSsoGroupPolicy, } from '@intutic/shared-types';
|
|
62
|
+
import { encodeMcpAllowlistRecord, encodeMcpRegistryRecord, encodeSsoGroupRecord, evaluateSsoGroupClearance, isUnrestrictedMcpRegistry, parseMcpRegistryRecord, parseSsoGroupPolicy, } from '@intutic/shared-types';
|
|
63
63
|
import { toRulesLine, GATE_VERSION, RULES_COLUMNS } from '../harness/gateBody.js';
|
|
64
64
|
import { DESTRUCTIVE_COMMAND_PATTERNS, SKILL_CONTENT_PATTERNS, SKILL_SURFACE_PATTERNS, assertPortableEre, } from '../harness/protectedPaths.js';
|
|
65
65
|
const log = createLogger('sync-policy-snapshot');
|
|
@@ -68,6 +68,28 @@ const log = createLogger('sync-policy-snapshot');
|
|
|
68
68
|
export const DEFAULT_SNAPSHOT_DIR = path.join(os.homedir(), '.intutic', 'hooks');
|
|
69
69
|
export const SNAPSHOT_JSON = 'policy-snapshot.json';
|
|
70
70
|
export const SNAPSHOT_RULES = 'policy-snapshot.rules';
|
|
71
|
+
/**
|
|
72
|
+
* The subdirectory of the snapshot directory holding the last snapshot the
|
|
73
|
+
* daemon wrote and so verified: both artifacts, byte for byte, read-only.
|
|
74
|
+
* Inside `.intutic/hooks`, which every gate refuses to touch. The settings
|
|
75
|
+
* guard compares the live snapshot with it and restores it when they differ
|
|
76
|
+
* ({@link restoreVerifiedSnapshot}), the way a policy agent keeps its last
|
|
77
|
+
* verified bundle active when a new one fails verification.
|
|
78
|
+
*/
|
|
79
|
+
export const VERIFIED_SNAPSHOT_DIR = 'verified';
|
|
80
|
+
/**
|
|
81
|
+
* Whether a `.rules` text verifies: it carries a `#digest` line, and the
|
|
82
|
+
* digest of its data lines matches it — the check every gate makes. A
|
|
83
|
+
* missing digest fails, since the writer always writes one.
|
|
84
|
+
*/
|
|
85
|
+
export function snapshotRulesVerify(text) {
|
|
86
|
+
const lines = text.split('\n');
|
|
87
|
+
const header = lines.find((l) => l.startsWith('#digest '));
|
|
88
|
+
if (!header)
|
|
89
|
+
return false;
|
|
90
|
+
const body = lines.filter((l) => l && !l.startsWith('#')).join('\n');
|
|
91
|
+
return createHash('sha256').update(body).digest('hex').slice(0, 32) === header.slice(8).trim();
|
|
92
|
+
}
|
|
71
93
|
/**
|
|
72
94
|
* Whether the destructive tier ships as `block` or as `warn`.
|
|
73
95
|
*
|
|
@@ -101,10 +123,9 @@ export const DESTRUCTIVE_TIER_SEVERITY = 'warn';
|
|
|
101
123
|
* is not that kind of rule: it does not run `scanSkillContent` or judge
|
|
102
124
|
* anything about what a skill file says, only WHERE a write's target path
|
|
103
125
|
* points — `.agents/skills/**` or `.claude/skills/**`, a deterministic,
|
|
104
|
-
* zero-ambiguity match.
|
|
105
|
-
* that distinction: "Path-matching is the one exception, and it is not
|
|
126
|
+
* zero-ambiguity match. Path-matching is the one exception, and it is not
|
|
106
127
|
* actually an exception to the measurement requirement — it never needed
|
|
107
|
-
* one.
|
|
128
|
+
* one. There is no false-positive rate to earn a promotion by measuring,
|
|
108
129
|
* because there is nothing probabilistic here to measure in the first place.
|
|
109
130
|
*
|
|
110
131
|
* The second half of the argument is what `warn` actually buys on this
|
|
@@ -139,7 +160,7 @@ export const SKILL_SURFACE_TIER_SEVERITY = 'block';
|
|
|
139
160
|
* ships as `block` or as `warn`.
|
|
140
161
|
*
|
|
141
162
|
* `block`, licensed by a measurement rather than by argument, unlike
|
|
142
|
-
* `SKILL_SURFACE_TIER_SEVERITY` above.
|
|
163
|
+
* `SKILL_SURFACE_TIER_SEVERITY` above. Content enforcement was held at warn
|
|
143
164
|
* until `scanSkillContent`'s false-positive rate on real benign skills had been
|
|
144
165
|
* measured. It now has: 350 vendored SKILL.md files
|
|
145
166
|
* (`packages/shared-types/src/__tests__/corpus/skills/`), and the nine patterns
|
|
@@ -262,7 +283,7 @@ function toGuardPattern(rule, shadow) {
|
|
|
262
283
|
// for anything that ships rules to a blocking path, and the reason this filter
|
|
263
284
|
// is the first line rather than an afterthought.
|
|
264
285
|
//
|
|
265
|
-
// One exception
|
|
286
|
+
// One exception: a rule the control plane projects from a cited
|
|
266
287
|
// policy guardrail in SHADOW carries `origin: 'guardrail'` and `action:
|
|
267
288
|
// 'warn'`. It ships at severity `warn` — the gate logs `tool_flagged` and
|
|
268
289
|
// allows — so the rule can earn its evidence. That is the documented meaning
|
|
@@ -325,7 +346,7 @@ function toGuardPattern(rule, shadow) {
|
|
|
325
346
|
? `Held for human review: ${rule.reason || `SOP ${rule.id}`}`
|
|
326
347
|
: rule.reason || `Blocked by SOP ${rule.id}`,
|
|
327
348
|
rationale: guardrail
|
|
328
|
-
? 'Projected from a cited policy guardrail by the control plane
|
|
349
|
+
? 'Projected from a cited policy guardrail by the control plane.'
|
|
329
350
|
: hold
|
|
330
351
|
? 'Resolved from a REQUIRE_APPROVAL: SOP title by the control plane.'
|
|
331
352
|
: 'Resolved from a BLOCK: SOP title by the control plane.',
|
|
@@ -395,6 +416,7 @@ async function requestResolvedPolicy(opts) {
|
|
|
395
416
|
// the policy `resolveSsoGroupPrivilege` enforces.
|
|
396
417
|
ssoGroupPolicy: parseSsoGroupPolicy(rec.ssoGroupPolicy),
|
|
397
418
|
principal: parsePrincipal(rec.principal),
|
|
419
|
+
mcpRegistry: parseMcpRegistryRecord(rec.mcpRegistry),
|
|
398
420
|
};
|
|
399
421
|
}
|
|
400
422
|
catch (err) {
|
|
@@ -414,19 +436,18 @@ async function requestResolvedPolicy(opts) {
|
|
|
414
436
|
* produce, so the observe-only branch was dead and a SILENT_LOG workspace
|
|
415
437
|
* shipped fully-blocking snapshots.
|
|
416
438
|
*
|
|
417
|
-
* Extracted so `buildSnapshotRules` and `writePolicySnapshot`'s
|
|
418
|
-
*
|
|
439
|
+
* Extracted so `buildSnapshotRules` and `writePolicySnapshot`'s `@mcp_allowlist`
|
|
440
|
+
* record compute "is this workspace observe-only" the same way once, rather
|
|
419
441
|
* than as two copies of the comparison that could drift.
|
|
420
442
|
*/
|
|
421
443
|
function isSilentLogMode(policy) {
|
|
422
444
|
return policy.interventionMode.toUpperCase() === 'SILENT_LOG';
|
|
423
445
|
}
|
|
424
446
|
/**
|
|
425
|
-
* Drops MCP server names that would corrupt the comma-joined
|
|
426
|
-
* `.rules`
|
|
427
|
-
*
|
|
428
|
-
*
|
|
429
|
-
* next to a rule row. Logged, not silently dropped: a server an operator
|
|
447
|
+
* Drops MCP server names that would corrupt the comma-joined `@mcp_allowlist`
|
|
448
|
+
* `.rules` line — a name carrying a comma would be misread as two server
|
|
449
|
+
* names, and a tab or other whitespace would collide with the `.rules`
|
|
450
|
+
* file's own column separator. Logged, not silently dropped: a server an operator
|
|
430
451
|
* configured and then watched vanish from enforcement needs to know why,
|
|
431
452
|
* the same discipline `validateRule` follows for a rejected SOP pattern.
|
|
432
453
|
*/
|
|
@@ -448,7 +469,7 @@ function sanitizeMcpServerNames(names) {
|
|
|
448
469
|
if (!name)
|
|
449
470
|
continue;
|
|
450
471
|
if (/[\s,]/.test(name)) {
|
|
451
|
-
log.warn({ action: 'mcp_server_name_rejected', name: raw }, 'MCP server name contains whitespace or a comma — dropped rather than corrupting the .rules
|
|
472
|
+
log.warn({ action: 'mcp_server_name_rejected', name: raw }, 'MCP server name contains whitespace or a comma — dropped rather than corrupting the .rules @mcp_allowlist record');
|
|
452
473
|
continue;
|
|
453
474
|
}
|
|
454
475
|
out.push(name);
|
|
@@ -506,7 +527,7 @@ export function buildSnapshotRules(policy, localHoldTokens = []) {
|
|
|
506
527
|
id: `${p.id}.tier`,
|
|
507
528
|
severity: shadow ? 'shadow' : SKILL_SURFACE_TIER_SEVERITY,
|
|
508
529
|
}));
|
|
509
|
-
// Skill-CONTENT tier
|
|
530
|
+
// Skill-CONTENT tier: a skill-directory write whose written text
|
|
510
531
|
// matches a pattern measured at zero benign-corpus false positives. No
|
|
511
532
|
// floor copy exists, so no `.tier` suffix is needed; SILENT_LOG demotes it
|
|
512
533
|
// to shadow like every other dynamic-tier rule.
|
|
@@ -540,16 +561,34 @@ function ssoGroupPatterns(policy) {
|
|
|
540
561
|
return [];
|
|
541
562
|
const groups = policy.principal ? policy.principal.ssoGroups : null;
|
|
542
563
|
const out = [];
|
|
543
|
-
|
|
564
|
+
// The gates stop at the first rule that refuses, and the evaluator prefers
|
|
565
|
+
// an entry naming the call exactly: so within each list, the entries that
|
|
566
|
+
// already name the harness form (`mcp__…`) go before the ones that name an
|
|
567
|
+
// MCP tool by its own name and also match it on any server.
|
|
568
|
+
const harnessFormFirst = (list) => [
|
|
569
|
+
...list.filter((t) => t.startsWith('mcp__')),
|
|
570
|
+
...list.filter((t) => !t.startsWith('mcp__')),
|
|
571
|
+
];
|
|
572
|
+
const entries = new Set([...harnessFormFirst(groupPolicy.requireOboFor), ...harnessFormFirst(groupPolicy.highRiskTools)]);
|
|
573
|
+
const compiled = new Set();
|
|
574
|
+
for (const tool of entries) {
|
|
544
575
|
const decision = evaluateSsoGroupClearance(groupPolicy, tool, groups);
|
|
545
576
|
if (decision.clearance === 'GRANTED' || !decision.ruleId)
|
|
546
577
|
continue;
|
|
578
|
+
// An entry another entry already refuses (`mcp__pg__x` beside an
|
|
579
|
+
// on-behalf-of `x`) decides to that entry's rule, which already matches it.
|
|
580
|
+
if (compiled.has(decision.ruleId))
|
|
581
|
+
continue;
|
|
582
|
+
compiled.add(decision.ruleId);
|
|
547
583
|
// The gates match a whitespace-collapsed, space-padded tool name, so the
|
|
548
|
-
// name is collapsed the same way and escaped to a literal.
|
|
584
|
+
// name is collapsed the same way and escaped to a literal. An entry that
|
|
585
|
+
// is an MCP tool's own name also matches the name a harness gives that
|
|
586
|
+
// tool on any server, `mcp__<server>__<tool>` (ssoGroupToolMatches).
|
|
549
587
|
const name = tool.replace(/\s+/g, ' ').trim();
|
|
550
588
|
if (!name)
|
|
551
589
|
continue;
|
|
552
|
-
const
|
|
590
|
+
const literal = name.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
591
|
+
const source = name.startsWith('mcp__') ? ` (${literal}) ` : ` (${literal}|mcp__.+__${literal}) `;
|
|
553
592
|
try {
|
|
554
593
|
assertPortableEre(source, decision.ruleId);
|
|
555
594
|
}
|
|
@@ -623,20 +662,26 @@ export async function writePolicySnapshot(policy, snapshotDir = DEFAULT_SNAPSHOT
|
|
|
623
662
|
issuedAt: generatedAt,
|
|
624
663
|
}
|
|
625
664
|
: null;
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
//
|
|
629
|
-
|
|
630
|
-
//
|
|
631
|
-
//
|
|
632
|
-
//
|
|
633
|
-
//
|
|
634
|
-
//
|
|
635
|
-
//
|
|
636
|
-
//
|
|
637
|
-
// must not change what `lines.join('\n')` hashes to.
|
|
665
|
+
// The MCP registry record rides the same way, so an edited registry fails
|
|
666
|
+
// the digest too. A registry that refuses nothing writes no line, which
|
|
667
|
+
// keeps the snapshot of a workspace that never used the registry unchanged.
|
|
668
|
+
const mcpRegistry = policy.mcpRegistry && !isUnrestrictedMcpRegistry(policy.mcpRegistry) ? policy.mcpRegistry : null;
|
|
669
|
+
// And the per-server MCP allowlist, sanitised once and reused for both
|
|
670
|
+
// artifacts so the JSON and the `.rules` record can never disagree about
|
|
671
|
+
// which names survived. Inside the digest, so a server added to it by hand
|
|
672
|
+
// fails the check. Severity follows SILENT_LOG the same way the dynamic
|
|
673
|
+
// tier's rules do: certain, just not acted on. An empty list writes no
|
|
674
|
+
// record: no record is "unrestricted", where a record with no servers
|
|
675
|
+
// would admit none.
|
|
638
676
|
const mcpServers = sanitizeMcpServerNames(policy.mcpAllowedServers);
|
|
639
677
|
const mcpSeverity = isSilentLogMode(policy) ? 'shadow' : 'block';
|
|
678
|
+
const lines = [
|
|
679
|
+
...(ssoGroups ? [encodeSsoGroupRecord(ssoGroups)] : []),
|
|
680
|
+
...(mcpRegistry ? [encodeMcpRegistryRecord(mcpRegistry)] : []),
|
|
681
|
+
...(mcpServers.length > 0 ? [encodeMcpAllowlistRecord({ severity: mcpSeverity, servers: mcpServers })] : []),
|
|
682
|
+
...rules.map(toRulesLine),
|
|
683
|
+
];
|
|
684
|
+
const digest = createHash('sha256').update(lines.join('\n')).digest('hex').slice(0, 32);
|
|
640
685
|
await fs.mkdir(snapshotDir, { recursive: true });
|
|
641
686
|
const json = JSON.stringify({
|
|
642
687
|
_comment: 'Intutic policy snapshot — auto-generated. DO NOT EDIT.',
|
|
@@ -656,16 +701,19 @@ export async function writePolicySnapshot(policy, snapshotDir = DEFAULT_SNAPSHOT
|
|
|
656
701
|
generatedAt,
|
|
657
702
|
interventionMode: policy.interventionMode,
|
|
658
703
|
digest,
|
|
659
|
-
//
|
|
660
|
-
// module rejected for the `.rules`
|
|
704
|
+
// Sanitised, not `policy.mcpAllowedServers` verbatim — a name this
|
|
705
|
+
// module rejected for the `.rules` record must not silently survive in
|
|
661
706
|
// the JSON, or the two artifacts would disagree about what is enforced.
|
|
662
707
|
// Empty means unrestricted, same convention as `allowedServers` at the
|
|
663
708
|
// control plane (`readMcpCurationSettings`).
|
|
664
709
|
mcpAllowedServers: mcpServers,
|
|
665
710
|
// The same record as the `.rules` file's `@sso_groups` line, readable.
|
|
666
711
|
...(ssoGroups ? { ssoGroups } : {}),
|
|
667
|
-
//
|
|
668
|
-
|
|
712
|
+
// The same record as the `.rules` file's `@mcp_registry` line.
|
|
713
|
+
...(mcpRegistry ? { mcpRegistry } : {}),
|
|
714
|
+
// With `sopRules`, `interventionMode`, `mcpAllowedServers` and
|
|
715
|
+
// `mcpRegistry`, enough to rebuild this snapshot without the control
|
|
716
|
+
// plane (`forgetSnapshotMember`).
|
|
669
717
|
sqlDropStrictBlock: policy.sqlDropStrictBlock,
|
|
670
718
|
/**
|
|
671
719
|
* The resolve response verbatim, alongside the gate projection below.
|
|
@@ -701,23 +749,20 @@ export async function writePolicySnapshot(policy, snapshotDir = DEFAULT_SNAPSHOT
|
|
|
701
749
|
// read — only the JSON carries a timestamp, and they never open the JSON. A
|
|
702
750
|
// snapshot from last year enforced identically to one written a second ago,
|
|
703
751
|
// and nothing anywhere could say so.
|
|
704
|
-
// `#mcpservers <severity> <comma-joined-server-names>` — OMITTED entirely
|
|
705
|
-
// when the (sanitised) list is empty. This is the mandatory-mechanism/
|
|
706
|
-
// opt-in-effect split M3 is built on: the header-parsing and per-call
|
|
707
|
-
// allowlist check ship to every gate unconditionally, but they are a no-op
|
|
708
|
-
// until a workspace actually configures `mcpAllowedServers` — and "no
|
|
709
|
-
// header line" is how a v6 gate (and, for forward-compat, a hypothetical
|
|
710
|
-
// v5-reading-a-v6-file) tells "unrestricted" apart from "restricted to
|
|
711
|
-
// zero servers", which would otherwise block every MCP call by omission.
|
|
712
|
-
const mcpHeader = mcpServers.length > 0 ? `#mcpservers ${mcpSeverity} ${mcpServers.join(',')}\n` : '';
|
|
713
752
|
const rulesText = `# Intutic policy snapshot (projection of ${SNAPSHOT_JSON}) — DO NOT EDIT.\n` +
|
|
714
753
|
`# Columns: ${RULES_COLUMNS.join('\t')}\n` +
|
|
715
754
|
`#digest ${digest}\n` +
|
|
716
755
|
`#workspace ${policy.workspaceId}\n` +
|
|
717
756
|
`#generated ${generatedAt}\n` +
|
|
718
|
-
mcpHeader +
|
|
719
757
|
lines.join('\n') +
|
|
720
758
|
'\n';
|
|
759
|
+
// The verified copy first, then the live one. The settings guard restores
|
|
760
|
+
// the copy whenever the two differ, so this order means an interrupted
|
|
761
|
+
// write ends with the new snapshot in force, never the old one.
|
|
762
|
+
const verifiedDir = path.join(snapshotDir, VERIFIED_SNAPSHOT_DIR);
|
|
763
|
+
await fs.mkdir(verifiedDir, { recursive: true, mode: 0o700 });
|
|
764
|
+
await writeAtomic(path.join(verifiedDir, SNAPSHOT_JSON), json);
|
|
765
|
+
await writeAtomic(path.join(verifiedDir, SNAPSHOT_RULES), rulesText);
|
|
721
766
|
await writeAtomic(path.join(snapshotDir, SNAPSHOT_JSON), json);
|
|
722
767
|
await writeAtomic(path.join(snapshotDir, SNAPSHOT_RULES), rulesText);
|
|
723
768
|
log.debug({ action: 'policy_snapshot_written', digest, ruleCount: rules.length, dir: snapshotDir }, 'Policy snapshot refreshed');
|
|
@@ -733,6 +778,44 @@ async function writeAtomic(target, content) {
|
|
|
733
778
|
await fs.chmod(tmp, 0o444);
|
|
734
779
|
await fs.rename(tmp, target);
|
|
735
780
|
}
|
|
781
|
+
/**
|
|
782
|
+
* Puts the last verified snapshot back when the live one differs from it.
|
|
783
|
+
*
|
|
784
|
+
* `'intact'`: the live snapshot is the verified one, or there is nothing to
|
|
785
|
+
* compare (no snapshot written yet, or a live one from before the verified
|
|
786
|
+
* copy existed that still verifies). `'restored'`: either live artifact was
|
|
787
|
+
* edited, replaced or deleted, and both are the verified copy again.
|
|
788
|
+
* `'unverifiable'`: the live `.rules` fails its digest and there is no
|
|
789
|
+
* verified copy to restore, so the caller fetches a fresh snapshot. Any
|
|
790
|
+
* difference counts, a valid-looking one included: the daemon is the only
|
|
791
|
+
* writer of these files, so an older snapshot copied back in is tampering
|
|
792
|
+
* too. Never throws.
|
|
793
|
+
*/
|
|
794
|
+
export async function restoreVerifiedSnapshot(snapshotDir = DEFAULT_SNAPSHOT_DIR) {
|
|
795
|
+
const read = (file) => fs.readFile(file, 'utf-8').catch(() => null);
|
|
796
|
+
const verifiedDir = path.join(snapshotDir, VERIFIED_SNAPSHOT_DIR);
|
|
797
|
+
const [liveRules, liveJson, keptRules, keptJson] = await Promise.all([
|
|
798
|
+
read(path.join(snapshotDir, SNAPSHOT_RULES)),
|
|
799
|
+
read(path.join(snapshotDir, SNAPSHOT_JSON)),
|
|
800
|
+
read(path.join(verifiedDir, SNAPSHOT_RULES)),
|
|
801
|
+
read(path.join(verifiedDir, SNAPSHOT_JSON)),
|
|
802
|
+
]);
|
|
803
|
+
if (keptRules === null || keptJson === null || !snapshotRulesVerify(keptRules)) {
|
|
804
|
+
return liveRules !== null && !snapshotRulesVerify(liveRules) ? 'unverifiable' : 'intact';
|
|
805
|
+
}
|
|
806
|
+
if (liveRules === keptRules && liveJson === keptJson)
|
|
807
|
+
return 'intact';
|
|
808
|
+
try {
|
|
809
|
+
await writeAtomic(path.join(snapshotDir, SNAPSHOT_JSON), keptJson);
|
|
810
|
+
await writeAtomic(path.join(snapshotDir, SNAPSHOT_RULES), keptRules);
|
|
811
|
+
}
|
|
812
|
+
catch (err) {
|
|
813
|
+
log.warn({ action: 'policy_snapshot_restore_failed', err }, 'Could not restore the verified policy snapshot');
|
|
814
|
+
return liveRules !== null && snapshotRulesVerify(liveRules) ? 'intact' : 'unverifiable';
|
|
815
|
+
}
|
|
816
|
+
log.warn({ action: 'policy_snapshot_restored' }, 'The policy snapshot was changed outside the sync daemon; restored the last verified copy');
|
|
817
|
+
return 'restored';
|
|
818
|
+
}
|
|
736
819
|
/**
|
|
737
820
|
* Fetch and write in one call. Safe to run on every sync cycle.
|
|
738
821
|
*
|
|
@@ -774,7 +857,12 @@ export async function refreshPolicySnapshot(opts) {
|
|
|
774
857
|
*/
|
|
775
858
|
async function forgetSnapshotMember(dir, localHoldTokens) {
|
|
776
859
|
try {
|
|
777
|
-
|
|
860
|
+
// Rebuilt from the verified copy, not the live JSON, which no digest
|
|
861
|
+
// covers: an edit to it must not come back as a valid snapshot. A machine
|
|
862
|
+
// whose last write predates the verified copy has only the live one.
|
|
863
|
+
const verified = path.join(dir, VERIFIED_SNAPSHOT_DIR, SNAPSHOT_JSON);
|
|
864
|
+
const source = await fs.readFile(verified, 'utf-8').catch(() => fs.readFile(path.join(dir, SNAPSHOT_JSON), 'utf-8'));
|
|
865
|
+
const doc = JSON.parse(source);
|
|
778
866
|
const record = doc.ssoGroups;
|
|
779
867
|
const ssoGroupPolicy = parseSsoGroupPolicy(record?.policy);
|
|
780
868
|
if (!ssoGroupPolicy || !record?.member || typeof doc.workspaceId !== 'string')
|
|
@@ -789,6 +877,7 @@ async function forgetSnapshotMember(dir, localHoldTokens) {
|
|
|
789
877
|
sqlDropStrictBlock: doc.sqlDropStrictBlock === true,
|
|
790
878
|
ssoGroupPolicy,
|
|
791
879
|
principal: null,
|
|
880
|
+
mcpRegistry: parseMcpRegistryRecord(doc.mcpRegistry),
|
|
792
881
|
}, dir, localHoldTokens);
|
|
793
882
|
log.warn({ action: 'policy_snapshot_member_forgotten', workspaceId: doc.workspaceId }, "The control plane refused this machine's key; the snapshot now treats the member's SSO groups as unknown");
|
|
794
883
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policySnapshot.js","sourceRoot":"","sources":["../../src/lib/policySnapshot.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"policySnapshot.js","sourceRoot":"","sources":["../../src/lib/policySnapshot.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processPoller.d.ts","sourceRoot":"","sources":["../../src/lib/processPoller.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"processPoller.d.ts","sourceRoot":"","sources":["../../src/lib/processPoller.ts"],"names":[],"mappings":"AA0JA,mDAAmD;AACnD,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAA;CACb;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAczE;AAQD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,SAAS,gBAAgB,EAAE,GAAG,OAAO,CAmB/E;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,IAAI,OAAO,CAQlD;AAED,wBAAgB,uBAAuB,IAAI,MAAM,EAAE,CA+BlD"}
|
|
@@ -56,6 +56,13 @@ const PROCESS_SIGNATURES = [
|
|
|
56
56
|
name: 'Antigravity',
|
|
57
57
|
patterns: [/\bantigravity\b/i],
|
|
58
58
|
},
|
|
59
|
+
{
|
|
60
|
+
name: 'Gemini CLI',
|
|
61
|
+
// Anchored on the invoked command name like `grok`: `gemini` is a common
|
|
62
|
+
// word in arguments and paths. Also the npm package, which a node process
|
|
63
|
+
// running the CLI shows before the resolved binary name does.
|
|
64
|
+
patterns: [/(^|[/\\\s])gemini(\s|$)/, /@google\/gemini-cli\b/],
|
|
65
|
+
},
|
|
59
66
|
{
|
|
60
67
|
name: 'Muse Code',
|
|
61
68
|
patterns: [/\bmuse\b/],
|
|
@@ -107,8 +114,8 @@ const PROCESS_SIGNATURES = [
|
|
|
107
114
|
// app bundle path, so that path fragment is the primary, most reliable
|
|
108
115
|
// signal (mirrors `Cursor.app`/`Claude.app`/`Windsurf.app` above, not
|
|
109
116
|
// the bare-word CLI pattern grok/muse needed). NOT independently
|
|
110
|
-
// verified against a real Xirp install — see xirp.ts's module doc
|
|
111
|
-
//
|
|
117
|
+
// verified against a real Xirp install — see xirp.ts's module doc.
|
|
118
|
+
// The tmux-ancestry heuristic below is a separate, weaker
|
|
112
119
|
// signal this single-line regex scan cannot produce on its own (it has
|
|
113
120
|
// no parent-PID data).
|
|
114
121
|
patterns: [/\/Xirp\.app\//i],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processPoller.js","sourceRoot":"","sources":["../../src/lib/processPoller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAE7C,MAAM,kBAAkB,GAGnB;IACH;QACE,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,CAAC,kBAAkB,EAAE,oCAAoC,CAAC;KACrE;IACD;QACE,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,CAAC,8BAA8B,EAAE,6BAA6B,CAAC;KAC1E;IACD;QACE,IAAI,EAAE,aAAa;QACnB,QAAQ,EAAE,CAAC,6BAA6B,CAAC;KAC1C;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,QAAQ,EAAE,CAAC,kBAAkB,EAAE,YAAY,CAAC;KAC7C;IACD;QACE,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,CAAC,WAAW,CAAC;KACxB;IACD;QACE,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,CAAC,WAAW,CAAC;KACxB;IACD;QACE,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,CAAC,8BAA8B,CAAC;KAC3C;IACD;QACE,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,CAAC,eAAe,CAAC;KAC5B;IACD;QACE,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,CAAC,iBAAiB,EAAE,gBAAgB,CAAC;KAChD;IACD;QACE,IAAI,EAAE,eAAe;QACrB,QAAQ,EAAE,CAAC,mEAAmE,CAAC;KAChF;IACD;QACE,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,CAAC,gBAAgB,CAAC;KAC7B;IACD;QACE,IAAI,EAAE,KAAK;QACX,QAAQ,EAAE,CAAC,SAAS,CAAC;KACtB;IACD;QACE,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,CAAC,eAAe,EAAE,oBAAoB,CAAC;KAClD;IACD;QACE,IAAI,EAAE,aAAa;QACnB,QAAQ,EAAE,CAAC,kBAAkB,CAAC;KAC/B;IACD;QACE,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,CAAC,UAAU,CAAC;KACvB;IACD;QACE,IAAI,EAAE,YAAY;QAClB,uEAAuE;QACvE,uEAAuE;QACvE,uEAAuE;QACvE,qEAAqE;QACrE,wEAAwE;QACxE,wEAAwE;QACxE,oEAAoE;QACpE,wEAAwE;QACxE,sEAAsE;QACtE,uDAAuD;QACvD,uEAAuE;QACvE,uEAAuE;QACvE,oEAAoE;QACpE,WAAW;QACX,QAAQ,EAAE,CAAC,uBAAuB,CAAC;KACpC;IACD;QACE,IAAI,EAAE,UAAU;QAChB,sEAAsE;QACtE,2EAA2E;QAC3E,2CAA2C;QAC3C,QAAQ,EAAE,CAAC,6BAA6B,CAAC;KAC1C;IACD;QACE,IAAI,EAAE,KAAK;QACX,qEAAqE;QACrE,uEAAuE;QACvE,sEAAsE;QACtE,iEAAiE;QACjE,uEAAuE;QACvE,sEAAsE;QACtE,8DAA8D;QAC9D,kEAAkE;QAClE,oEAAoE;QACpE,qEAAqE;QACrE,gEAAgE;QAChE,QAAQ,EAAE,CAAC,sBAAsB,EAAE,qBAAqB,CAAC;KAC1D;IACD;QACE,IAAI,EAAE,MAAM;QACZ,mEAAmE;QACnE,wEAAwE;QACxE,uEAAuE;QACvE,sEAAsE;QACtE,iEAAiE;QACjE,
|
|
1
|
+
{"version":3,"file":"processPoller.js","sourceRoot":"","sources":["../../src/lib/processPoller.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A static check for the regex constructs that make a backtracking engine
|
|
3
|
+
* super-linear, run on every pattern the gates evaluate against a command or
|
|
4
|
+
* a tool's arguments.
|
|
5
|
+
*
|
|
6
|
+
* The JavaScript gates run rule sources as `RegExp`s and the Python ones as
|
|
7
|
+
* `re` patterns; both backtrack. A rule like ` git .*(…)` was correct and took
|
|
8
|
+
* 9.5 s on 200 KB of crafted command, long enough for a harness that treats a
|
|
9
|
+
* hook timeout as "allow" to run the call. The constructs below are the ones
|
|
10
|
+
* that cost time growing faster than the text:
|
|
11
|
+
*
|
|
12
|
+
* - **nested quantifier**: a repeated group that contains a repeated element,
|
|
13
|
+
* `(a+)+` — the classic catastrophic form;
|
|
14
|
+
* - **unbounded wildcard before more pattern**: `.*`, `[\s\S]*`, a negated
|
|
15
|
+
* class or `\S`/`\W`/`\D` repeated without bound and followed by anything —
|
|
16
|
+
* every start rescans to the end of the text;
|
|
17
|
+
* - **unbounded lazy quantifier**: `*?`, `+?`, `{n,}?` — the same rescan, one
|
|
18
|
+
* character at a time;
|
|
19
|
+
* - **adjacent overlapping runs**: two unbounded repetitions whose character
|
|
20
|
+
* sets overlap, with nothing between them that only one can match —
|
|
21
|
+
* `[a-z]*R[a-z]*` tries every split of `RRRR…`.
|
|
22
|
+
*
|
|
23
|
+
* A pattern that needs one of these anyway goes on {@link BACKTRACKING_ALLOWLIST}
|
|
24
|
+
* by rule id, with the reason a reviewer accepted it; the test that walks
|
|
25
|
+
* every gate rule fails on anything else. A rule marked `sequence` is checked
|
|
26
|
+
* step by step, since that is how the JS and Python gates run it.
|
|
27
|
+
*
|
|
28
|
+
* It parses the JS ∩ Python `re` dialect the rules use. Character sets are
|
|
29
|
+
* modelled over ASCII; a class with anything beyond ASCII counts as
|
|
30
|
+
* overlapping everything, which errs toward a finding.
|
|
31
|
+
*/
|
|
32
|
+
/** Every construct in `source` that can make a backtracking engine super-linear. */
|
|
33
|
+
export declare function backtrackingFindings(source: string): string[];
|
|
34
|
+
/**
|
|
35
|
+
* Rules allowed a construct {@link backtrackingFindings} reports, by rule id,
|
|
36
|
+
* with the reason a reviewer accepted it. Each entry must still trip the
|
|
37
|
+
* check (a stale entry fails the test), and each such rule has adversarial
|
|
38
|
+
* vectors that every reader must decide in linear time.
|
|
39
|
+
*/
|
|
40
|
+
export declare const BACKTRACKING_ALLOWLIST: Readonly<Record<string, string>>;
|
|
41
|
+
/** The allowlist entry that covers a rule id, if any (`prefix.*` entries match a family). */
|
|
42
|
+
export declare function backtrackingAllowance(id: string): string | undefined;
|
|
43
|
+
//# sourceMappingURL=regexLinearity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"regexLinearity.d.ts","sourceRoot":"","sources":["../../src/lib/regexLinearity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAqLH,oFAAoF;AACpF,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CA+B7D;AAED;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAYnE,CAAA;AAED,6FAA6F;AAC7F,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAIpE"}
|