@akasecurity/ai-tc-claude-code 0.9.9 → 0.9.10
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/.claude-plugin/plugin.json +1 -1
- package/README.md +2 -2
- package/hooks/hooks.json +1 -1
- package/package.json +5 -5
- package/scripts/apply-suppressions.js +1200 -671
- package/scripts/backfill.js +2299 -1434
- package/scripts/filescan.js +2053 -1249
- package/scripts/firstrun.js +1961 -1188
- package/scripts/history-sync.js +1882 -1029
- package/scripts/intro.js +363 -238
- package/scripts/message-display.js +1212 -662
- package/scripts/onboard.js +1598 -1066
- package/scripts/post-model-switch.js +447 -311
- package/scripts/post-tool-use.js +2101 -1274
- package/scripts/pre-model-switch.js +1981 -1204
- package/scripts/pre-tool-use.js +2113 -1102
- package/scripts/query.js +1961 -1188
- package/scripts/reconcile.js +2082 -1242
- package/scripts/remediate.js +2152 -1279
- package/scripts/scan-worker.js +278 -176
- package/scripts/session-start.js +2050 -1277
- package/scripts/start-light.js +366 -241
- package/scripts/statusline.js +1961 -1188
- package/scripts/stop.js +448 -315
- package/scripts/sync.js +17422 -2018
- package/scripts/user-prompt-submit.js +2110 -1279
package/scripts/start-light.js
CHANGED
|
@@ -493,7 +493,7 @@ var require_ignore = __commonJS({
|
|
|
493
493
|
|
|
494
494
|
// ../../packages/plugin-sdk/src/config.ts
|
|
495
495
|
import { existsSync as existsSync7 } from "fs";
|
|
496
|
-
import { join as
|
|
496
|
+
import { join as join13 } from "path";
|
|
497
497
|
|
|
498
498
|
// ../../packages/persistence/src/attached-derived.ts
|
|
499
499
|
import { rmSync } from "fs";
|
|
@@ -21798,6 +21798,26 @@ var AttachTokenResponse = external_exports.union([
|
|
|
21798
21798
|
AttachTokenExpired,
|
|
21799
21799
|
external_exports.object({ status: printable(64) })
|
|
21800
21800
|
]);
|
|
21801
|
+
var DeviceCommandKind = external_exports.enum(["shares_rescan"]);
|
|
21802
|
+
var DeviceCommand = external_exports.object({
|
|
21803
|
+
id: printable(128).min(1),
|
|
21804
|
+
kind: DeviceCommandKind,
|
|
21805
|
+
issuedAt: printable(64).min(1),
|
|
21806
|
+
expiresAt: printable(64).min(1)
|
|
21807
|
+
}).strict();
|
|
21808
|
+
var DeviceCommandPollResponse = external_exports.object({ command: DeviceCommand.nullable() });
|
|
21809
|
+
var DeviceCommandFailureReason = external_exports.enum(["scan_failed", "no_projects", "expired"]);
|
|
21810
|
+
var DeviceCommandAckBody = external_exports.discriminatedUnion("outcome", [
|
|
21811
|
+
external_exports.object({
|
|
21812
|
+
outcome: external_exports.literal("reported"),
|
|
21813
|
+
projectsScanned: external_exports.number().int().nonnegative()
|
|
21814
|
+
}).strict(),
|
|
21815
|
+
external_exports.object({
|
|
21816
|
+
outcome: external_exports.literal("failed"),
|
|
21817
|
+
reason: DeviceCommandFailureReason,
|
|
21818
|
+
projectsScanned: external_exports.number().int().nonnegative()
|
|
21819
|
+
}).strict()
|
|
21820
|
+
]);
|
|
21801
21821
|
|
|
21802
21822
|
// ../../packages/schema/src/zod/registry.ts
|
|
21803
21823
|
var Namespace = external_exports.string().regex(/^[a-z][a-z0-9-]*$/);
|
|
@@ -21964,7 +21984,7 @@ var PackManifest = external_exports.object({
|
|
|
21964
21984
|
}).meta({ id: "PackManifest" });
|
|
21965
21985
|
|
|
21966
21986
|
// ../../packages/schema/src/zod/detection.ts
|
|
21967
|
-
var OriginEnum = external_exports.enum(["library"]).meta({ id: "OriginEnum" });
|
|
21987
|
+
var OriginEnum = external_exports.enum(["library", "custom"]).meta({ id: "OriginEnum" });
|
|
21968
21988
|
var DetectionFilterEnum = external_exports.enum(["all", "library", "custom", "customized", "updates"]);
|
|
21969
21989
|
var LibraryStateEnum = external_exports.enum(["new", "imported", "update"]).meta({ id: "LibraryStateEnum" });
|
|
21970
21990
|
var DetectionCounts = external_exports.object({
|
|
@@ -22159,8 +22179,9 @@ var Event = external_exports.object({
|
|
|
22159
22179
|
metadata: EventMetadata.optional()
|
|
22160
22180
|
}).meta({ id: "Event" });
|
|
22161
22181
|
var IngestEvent = Event.meta({ id: "IngestEvent" });
|
|
22182
|
+
var INGEST_BATCH_MAX = 100;
|
|
22162
22183
|
var IngestBatch = external_exports.object({
|
|
22163
|
-
events: external_exports.array(IngestEvent).min(1).max(
|
|
22184
|
+
events: external_exports.array(IngestEvent).min(1).max(INGEST_BATCH_MAX),
|
|
22164
22185
|
// Dedup policy for this batch. Id-dedup ALWAYS applies. 'content-hash'
|
|
22165
22186
|
// additionally rejects any event whose contentHash the store has already
|
|
22166
22187
|
// recorded — for re-runnable bulk ingest (worktree scan, transcript
|
|
@@ -22286,6 +22307,230 @@ var PatchInstalledPackRequest = external_exports.object({
|
|
|
22286
22307
|
message: "At least one field must be provided"
|
|
22287
22308
|
}).meta({ id: "PatchInstalledPackRequest" });
|
|
22288
22309
|
|
|
22310
|
+
// ../../packages/schema/src/zod/policy.ts
|
|
22311
|
+
var PolicyScope = external_exports.enum(["global", "repo", "user"]).meta({ id: "PolicyScope" });
|
|
22312
|
+
var PolicyTarget = external_exports.union([external_exports.object({ ruleId: external_exports.string() }), external_exports.object({ category: DetectionCategory })]).meta({ id: "PolicyTarget" });
|
|
22313
|
+
var PolicyKind = external_exports.enum(["builtin", "custom"]).meta({ id: "PolicyKind" });
|
|
22314
|
+
var PolicyProvenance = external_exports.enum(["builtin", "authored"]).meta({ id: "PolicyProvenance" });
|
|
22315
|
+
var Policy = external_exports.object({
|
|
22316
|
+
id: external_exports.guid(),
|
|
22317
|
+
scope: PolicyScope,
|
|
22318
|
+
target: PolicyTarget,
|
|
22319
|
+
action: ActionTaken,
|
|
22320
|
+
enabled: external_exports.boolean().default(true),
|
|
22321
|
+
customKeywords: external_exports.array(external_exports.string()).optional(),
|
|
22322
|
+
// Display name — optional so older policy rows without name still parse.
|
|
22323
|
+
// Added for the findings API (policy.name column migration).
|
|
22324
|
+
name: external_exports.string().optional(),
|
|
22325
|
+
// Whether an AUTHORED policy governs this row's target — not a claim about
|
|
22326
|
+
// which row this is. A producer that collapses several rows onto one target
|
|
22327
|
+
// must carry the marker onto whichever row survives, or the collapse decides
|
|
22328
|
+
// the answer; a survivor may therefore be a built-in expansion still marked
|
|
22329
|
+
// 'authored' because an authored sibling targeted the same thing.
|
|
22330
|
+
// Optional so an older producer — and an older on-disk cache — still parses;
|
|
22331
|
+
// absent reads as 'builtin', which is the behaviour that predates the field.
|
|
22332
|
+
//
|
|
22333
|
+
// Deliberately NOT `kind`/PolicyKind: that name and that enum answer which
|
|
22334
|
+
// built-in archetype catalog entry a policy is, which every catalog surface
|
|
22335
|
+
// reads and which a caller may state. This one is a statement the PRODUCER
|
|
22336
|
+
// of a bundle makes about a row, and only the bundle builder ever stamps it
|
|
22337
|
+
// — the CRUD routes neither accept nor set it.
|
|
22338
|
+
//
|
|
22339
|
+
// A device consumes this in exactly one direction: an 'authored' policy
|
|
22340
|
+
// arriving from a control plane marks the rules it targets as not
|
|
22341
|
+
// locally re-assignable. That can only ever ADD a refusal, never relax one,
|
|
22342
|
+
// which is what makes it safe to honour from an unsigned cache — the same
|
|
22343
|
+
// test `prohibitedModels` passes and `reversibleRuleIds` fails.
|
|
22344
|
+
provenance: PolicyProvenance.optional()
|
|
22345
|
+
}).meta({ id: "Policy" });
|
|
22346
|
+
var PolicyBundle = external_exports.object({
|
|
22347
|
+
version: external_exports.string(),
|
|
22348
|
+
policies: external_exports.array(Policy),
|
|
22349
|
+
// Rules from the installed marketplace packs (snapshotted by the
|
|
22350
|
+
// control plane). The plugin registers these in addition to its bundled
|
|
22351
|
+
// packs. Optional so older backends — and older on-disk caches — that omit
|
|
22352
|
+
// the field still parse; consumers read `bundle.rules ?? []`.
|
|
22353
|
+
rules: external_exports.array(Rule).optional(),
|
|
22354
|
+
// When true, `rules` IS the complete effective ruleset and the runtime must
|
|
22355
|
+
// NOT merge its compiled-in bundled packs — the standalone gateway sets this
|
|
22356
|
+
// after reading the user's installed snapshot (installed_packs, enabled
|
|
22357
|
+
// packs only), which is how detection updates stay manual: new bundled
|
|
22358
|
+
// rules run only after the user applies the pack update. Absent/false keeps
|
|
22359
|
+
// the historical composition (bundled packs + rules) — older caches.
|
|
22360
|
+
rulesComplete: external_exports.boolean().optional(),
|
|
22361
|
+
// Active detection exceptions, evaluation subset only (see
|
|
22362
|
+
// ExceptionBundleEntry). Optional so older bundle producers — and older
|
|
22363
|
+
// on-disk caches — that omit the field still parse; consumers read
|
|
22364
|
+
// `bundle.exceptions ?? []`.
|
|
22365
|
+
exceptions: external_exports.array(ExceptionBundleEntry).optional(),
|
|
22366
|
+
// Rule ids whose pack is assigned a REVERSIBLE archetype (Redact & Vault).
|
|
22367
|
+
// A second axis over the same `redact` action, carried beside the policies
|
|
22368
|
+
// rather than on them: nothing writes ruleId-targeted policies to disk, so
|
|
22369
|
+
// widening Policy itself would change a persisted shape to express something
|
|
22370
|
+
// only the in-memory bundle needs. Optional so an older producer — or an
|
|
22371
|
+
// older on-disk cache — still parses; consumers read `?? []` and get the
|
|
22372
|
+
// pre-existing one-way behaviour, which is the safe direction to default.
|
|
22373
|
+
reversibleRuleIds: external_exports.array(external_exports.string()).optional(),
|
|
22374
|
+
// Installed pack version, keyed by ruleId, for rules in `rules` that came
|
|
22375
|
+
// from a versioned installed pack. Optional so older backends — and older
|
|
22376
|
+
// on-disk caches — that omit the field still parse; consumers fall back to
|
|
22377
|
+
// the rule's own spec version. NOT the bundle version above — see
|
|
22378
|
+
// installedRuleset's ruleVersions for the source of truth.
|
|
22379
|
+
ruleVersions: external_exports.record(external_exports.string(), external_exports.string()).optional(),
|
|
22380
|
+
// Model ids (the raw `model` string a harness reports, e.g.
|
|
22381
|
+
// `claude-opus-4-1`) the tenant has PROHIBITED. The plugin refuses to switch
|
|
22382
|
+
// a session onto one (PreModelSwitch) and refuses a turn that would run on
|
|
22383
|
+
// one (UserPromptSubmit). Optional so an older backend — and an older
|
|
22384
|
+
// on-disk cache — still parses; consumers read `?? []`, which is the
|
|
22385
|
+
// unenforced behaviour that predates this field and the safe direction to
|
|
22386
|
+
// default.
|
|
22387
|
+
//
|
|
22388
|
+
// Ids, not display names: the governance decision is keyed on the exact
|
|
22389
|
+
// string the harness reports (`model_status_override.versionId` in the
|
|
22390
|
+
// control plane), so no name resolution stands between the decision and the
|
|
22391
|
+
// comparison.
|
|
22392
|
+
prohibitedModels: external_exports.array(external_exports.string()).optional(),
|
|
22393
|
+
customKeywords: external_exports.array(external_exports.string()),
|
|
22394
|
+
fetchedAt: external_exports.iso.datetime()
|
|
22395
|
+
}).meta({ id: "PolicyBundle" });
|
|
22396
|
+
var POLICY_BUNDLE_SHAPE_ID = [
|
|
22397
|
+
...Object.keys(PolicyBundle.shape),
|
|
22398
|
+
...Object.keys(Policy.shape).map((key) => `policies.${key}`),
|
|
22399
|
+
...PolicyTarget.options.flatMap((member) => "shape" in member ? Object.keys(member.shape) : []).map((key) => `policies.target.${key}`),
|
|
22400
|
+
...Object.keys(ExceptionBundleEntry.shape).map((key) => `exceptions.${key}`)
|
|
22401
|
+
].sort().join(",");
|
|
22402
|
+
var OBSERVE_ONLY_CATEGORIES = ["config"];
|
|
22403
|
+
var ENFORCEABLE_CATEGORIES = DetectionCategory.options.filter((c) => !OBSERVE_ONLY_CATEGORIES.includes(c));
|
|
22404
|
+
var CATEGORY_PEAK_SEVERITY = {
|
|
22405
|
+
secret: "critical",
|
|
22406
|
+
financial: "critical",
|
|
22407
|
+
// core-financial/credit-card
|
|
22408
|
+
code_flaw: "critical",
|
|
22409
|
+
pii: "high",
|
|
22410
|
+
phi: "high",
|
|
22411
|
+
custom: "high",
|
|
22412
|
+
// user-defined; conservative
|
|
22413
|
+
code_context: "low",
|
|
22414
|
+
config: "low"
|
|
22415
|
+
// observe-only; floors to monitor regardless
|
|
22416
|
+
};
|
|
22417
|
+
function severityFloorPolicy(category) {
|
|
22418
|
+
if (OBSERVE_ONLY_CATEGORIES.includes(category)) return "monitor";
|
|
22419
|
+
const peak = CATEGORY_PEAK_SEVERITY[category];
|
|
22420
|
+
return peak === "critical" || peak === "high" ? "warn" : "monitor";
|
|
22421
|
+
}
|
|
22422
|
+
function severityFloorPosture() {
|
|
22423
|
+
const out = {};
|
|
22424
|
+
for (const c of DetectionCategory.options) out[c] = severityFloorPolicy(c);
|
|
22425
|
+
return out;
|
|
22426
|
+
}
|
|
22427
|
+
var KNOWN_BUILTIN_IDS = ["monitor", "warn", "redact", "vault", "block"];
|
|
22428
|
+
var BuiltinPolicyId = external_exports.enum(KNOWN_BUILTIN_IDS).meta({ id: "BuiltinPolicyId" });
|
|
22429
|
+
var RedactFallback = BuiltinPolicyId.extract(["monitor", "warn", "block"]).meta({
|
|
22430
|
+
id: "RedactFallback"
|
|
22431
|
+
});
|
|
22432
|
+
var BUILTIN_POLICY_SPECS = {
|
|
22433
|
+
monitor: {
|
|
22434
|
+
name: "Monitor",
|
|
22435
|
+
action: "log",
|
|
22436
|
+
reversible: false,
|
|
22437
|
+
description: "Log every match for audit. The request is allowed through untouched."
|
|
22438
|
+
},
|
|
22439
|
+
warn: {
|
|
22440
|
+
name: "Warn",
|
|
22441
|
+
action: "warn",
|
|
22442
|
+
reversible: false,
|
|
22443
|
+
description: "Allow the request, but warn the user inline before it is sent."
|
|
22444
|
+
},
|
|
22445
|
+
redact: {
|
|
22446
|
+
name: "Redact",
|
|
22447
|
+
action: "redact",
|
|
22448
|
+
reversible: false,
|
|
22449
|
+
description: "Strip the matched value from the request and destroy it, then continue. What was removed cannot be recovered."
|
|
22450
|
+
},
|
|
22451
|
+
vault: {
|
|
22452
|
+
name: "Redact & Vault",
|
|
22453
|
+
action: "redact",
|
|
22454
|
+
reversible: true,
|
|
22455
|
+
description: "Strip the matched value from the request and keep an encrypted, recoverable copy in the local vault, leaving a pointer in its place. Needs the vault consent granted under Settings; without it this behaves as Redact."
|
|
22456
|
+
},
|
|
22457
|
+
block: {
|
|
22458
|
+
name: "Block",
|
|
22459
|
+
action: "block",
|
|
22460
|
+
reversible: false,
|
|
22461
|
+
description: "Refuse the request entirely whenever any rule in this detection matches."
|
|
22462
|
+
}
|
|
22463
|
+
};
|
|
22464
|
+
function builtinPolicyToAction(id) {
|
|
22465
|
+
return BUILTIN_POLICY_SPECS[id].action;
|
|
22466
|
+
}
|
|
22467
|
+
var PALETTE_WEAKEST_FIRST = [
|
|
22468
|
+
...new Set(KNOWN_BUILTIN_IDS.map(builtinPolicyToAction))
|
|
22469
|
+
];
|
|
22470
|
+
var BELOW_PALETTE = ACTION_TAKEN_KEYS.filter(
|
|
22471
|
+
(action) => !PALETTE_WEAKEST_FIRST.includes(action)
|
|
22472
|
+
);
|
|
22473
|
+
var ACTION_STRENGTH_ORDER = [
|
|
22474
|
+
...BELOW_PALETTE,
|
|
22475
|
+
...PALETTE_WEAKEST_FIRST
|
|
22476
|
+
];
|
|
22477
|
+
var PackPolicyFloor = external_exports.object({
|
|
22478
|
+
/**
|
|
22479
|
+
* The weakest archetype the device may assign. Stated as a BuiltinPolicyId
|
|
22480
|
+
* rather than a raw ActionTaken because that is the vocabulary the user
|
|
22481
|
+
* picks from — a floor a UI cannot name is one it cannot explain.
|
|
22482
|
+
*/
|
|
22483
|
+
floor: BuiltinPolicyId,
|
|
22484
|
+
/**
|
|
22485
|
+
* True when the organization AUTHORED a policy governing this pack rather
|
|
22486
|
+
* than stating a minimum: it gave the answer, so the pack is not
|
|
22487
|
+
* re-assignable locally in either direction.
|
|
22488
|
+
*/
|
|
22489
|
+
locked: external_exports.boolean()
|
|
22490
|
+
}).describe("PackPolicyFloor");
|
|
22491
|
+
var CATEGORY_EXPRESSIBLE_IDS = KNOWN_BUILTIN_IDS.filter(
|
|
22492
|
+
(id) => !BUILTIN_POLICY_SPECS[id].reversible
|
|
22493
|
+
);
|
|
22494
|
+
var CATEGORY_INEXPRESSIBLE_IDS = KNOWN_BUILTIN_IDS.filter(
|
|
22495
|
+
(id) => BUILTIN_POLICY_SPECS[id].reversible
|
|
22496
|
+
);
|
|
22497
|
+
var CategoryPolicyId = external_exports.enum(CATEGORY_EXPRESSIBLE_IDS).meta({ id: "CategoryPolicyId" });
|
|
22498
|
+
var DEFAULT_ACTIONS = Object.fromEntries(
|
|
22499
|
+
DetectionCategory.options.map((c) => [c, builtinPolicyToAction(severityFloorPolicy(c))])
|
|
22500
|
+
);
|
|
22501
|
+
var BUILTIN_POLICIES = Object.fromEntries(
|
|
22502
|
+
KNOWN_BUILTIN_IDS.map((id) => [id, { id, ...BUILTIN_POLICY_SPECS[id] }])
|
|
22503
|
+
);
|
|
22504
|
+
var UsedByItem = external_exports.object({
|
|
22505
|
+
id: external_exports.string(),
|
|
22506
|
+
name: external_exports.string(),
|
|
22507
|
+
ruleCount: external_exports.number().int().nonnegative(),
|
|
22508
|
+
enabled: external_exports.boolean()
|
|
22509
|
+
}).meta({ id: "UsedByItem" });
|
|
22510
|
+
var PolicyListItem = external_exports.object({
|
|
22511
|
+
id: external_exports.string(),
|
|
22512
|
+
kind: PolicyKind,
|
|
22513
|
+
name: external_exports.string(),
|
|
22514
|
+
enabled: external_exports.boolean(),
|
|
22515
|
+
usedByCount: external_exports.number().int().nonnegative()
|
|
22516
|
+
}).meta({ id: "PolicyListItem" });
|
|
22517
|
+
var ListPoliciesResponse = external_exports.object({ items: external_exports.array(PolicyListItem) }).meta({ id: "ListPoliciesResponse" });
|
|
22518
|
+
var PolicyDetail = external_exports.object({
|
|
22519
|
+
specVersion: external_exports.literal(1),
|
|
22520
|
+
id: external_exports.string(),
|
|
22521
|
+
kind: PolicyKind,
|
|
22522
|
+
name: external_exports.string(),
|
|
22523
|
+
enabled: external_exports.boolean(),
|
|
22524
|
+
description: external_exports.string(),
|
|
22525
|
+
usedBy: external_exports.array(UsedByItem)
|
|
22526
|
+
}).meta({ id: "PolicyDetail" });
|
|
22527
|
+
var PolicyStatsResponse = external_exports.object({
|
|
22528
|
+
policies: external_exports.number().int().nonnegative(),
|
|
22529
|
+
builtin: external_exports.number().int().nonnegative(),
|
|
22530
|
+
custom: external_exports.number().int().nonnegative(),
|
|
22531
|
+
detectionsGoverned: external_exports.number().int().nonnegative()
|
|
22532
|
+
}).meta({ id: "PolicyStatsResponse" });
|
|
22533
|
+
|
|
22289
22534
|
// ../../packages/schema/src/zod/vault.ts
|
|
22290
22535
|
var CATEGORY_ALTERNATION = DetectionCategory.options.join("|");
|
|
22291
22536
|
var POINTER_TOKEN_PATTERN = new RegExp(
|
|
@@ -22322,6 +22567,14 @@ var VaultEntry = external_exports.object({
|
|
|
22322
22567
|
// How many times this value has been detected on this machine — the reuse
|
|
22323
22568
|
// signal the vault dashboard reads. Distinct from VaultDeref.pointerCount.
|
|
22324
22569
|
occurrenceCount: external_exports.number().int().nonnegative(),
|
|
22570
|
+
// True when a PERSON asked for this value to be replaced — the surfaced-
|
|
22571
|
+
// secrets strike — rather than a pack enforcing its assignment. One value is
|
|
22572
|
+
// one row however many paths vault it, so this is what tells a policy sweep
|
|
22573
|
+
// that the row carries somebody's own instruction and not just an assignment
|
|
22574
|
+
// that has since been lowered. STICKY and MONOTONIC: a later automatic
|
|
22575
|
+
// vaulting of the same value must never clear it — what the user said about
|
|
22576
|
+
// the value does not expire.
|
|
22577
|
+
userAuthorized: external_exports.boolean(),
|
|
22325
22578
|
firstSeen: external_exports.string(),
|
|
22326
22579
|
lastSeen: external_exports.string()
|
|
22327
22580
|
});
|
|
@@ -22437,7 +22690,7 @@ var VaultConsent = external_exports.object({
|
|
|
22437
22690
|
});
|
|
22438
22691
|
|
|
22439
22692
|
// ../../packages/schema/src/zod/local.ts
|
|
22440
|
-
var WORKSPACE_SETTINGS_SPEC_VERSION =
|
|
22693
|
+
var WORKSPACE_SETTINGS_SPEC_VERSION = 7;
|
|
22441
22694
|
var RunMode = external_exports.enum(["standalone", "attached"]);
|
|
22442
22695
|
var ControlPlaneConnection = external_exports.object({
|
|
22443
22696
|
endpoint: external_exports.string().min(1),
|
|
@@ -22478,6 +22731,19 @@ var WorkspaceSettings = external_exports.object({
|
|
|
22478
22731
|
vaultKeyCustody: VaultKeyCustody.default("file"),
|
|
22479
22732
|
// How a pointer renders in assistant prose on screen (see VaultInlineReveal).
|
|
22480
22733
|
vaultInlineReveal: VaultInlineReveal.default("masked"),
|
|
22734
|
+
// What a `redact` policy degrades to on a FIELD the host cannot rewrite in
|
|
22735
|
+
// place. Not a handling policy: the policy has already resolved to redact,
|
|
22736
|
+
// and this only says what happens when the host offers no channel to carry it
|
|
22737
|
+
// out — Antigravity's PreToolUse has no updatedInput at all, and Codex and
|
|
22738
|
+
// Claude Code decline to mask a field that EXECUTES because masking would
|
|
22739
|
+
// change what runs. Per FIELD rather than per host, so a host that can
|
|
22740
|
+
// rewrite some inputs keeps true redaction on those.
|
|
22741
|
+
//
|
|
22742
|
+
// Spelled in the built-in policy vocabulary rather than as a fresh enum, so
|
|
22743
|
+
// an attached machine's merge is `strongerAction` over the one action ladder
|
|
22744
|
+
// and no second rank order exists to drift from it. 'deny' is a host wire
|
|
22745
|
+
// word and stays out of the stored value.
|
|
22746
|
+
redactFallback: RedactFallback.default("warn"),
|
|
22481
22747
|
// Absent until /aka:setup completes; its presence is what "onboarded" means.
|
|
22482
22748
|
onboardedAt: external_exports.iso.datetime().optional(),
|
|
22483
22749
|
// Records that the user consented to sending findings to the model API for
|
|
@@ -22485,10 +22751,12 @@ var WorkspaceSettings = external_exports.object({
|
|
|
22485
22751
|
// Absent until granted; a stale payloadVersion means the consent no longer
|
|
22486
22752
|
// covers the current payload and must be re-granted.
|
|
22487
22753
|
modelJudgeConsent: ModelJudgeConsent.optional(),
|
|
22488
|
-
// Records that the user consented to
|
|
22489
|
-
//
|
|
22490
|
-
//
|
|
22491
|
-
//
|
|
22754
|
+
// Records that the user consented to the DEFERRED send — the outbox — along
|
|
22755
|
+
// with the payload shape and the endpoint they agreed to. Since payload v2
|
|
22756
|
+
// that covers both the pre-attach backlog and undelivered captures (which
|
|
22757
|
+
// carry prompt/reply text in `content`); the key name predates the widening.
|
|
22758
|
+
// Absent until granted, and a grant for a different endpoint or an older
|
|
22759
|
+
// payload no longer counts.
|
|
22492
22760
|
historySyncConsent: HistorySyncConsent.optional()
|
|
22493
22761
|
});
|
|
22494
22762
|
|
|
@@ -22501,7 +22769,8 @@ var ManagedSettingKey = external_exports.enum([
|
|
|
22501
22769
|
"vaultKeyCustody",
|
|
22502
22770
|
"vaultInlineReveal",
|
|
22503
22771
|
"modelJudgeConsent",
|
|
22504
|
-
"dataSharesInPlace"
|
|
22772
|
+
"dataSharesInPlace",
|
|
22773
|
+
"redactFallback"
|
|
22505
22774
|
]).meta({ id: "ManagedSettingKey" });
|
|
22506
22775
|
var ManagedSettingsValues = external_exports.object({
|
|
22507
22776
|
runMode: external_exports.enum(["standalone", "attached"]).optional(),
|
|
@@ -22514,7 +22783,8 @@ var ManagedSettingsValues = external_exports.object({
|
|
|
22514
22783
|
vaultKeyCustody: external_exports.enum(["file", "keychain"]).optional(),
|
|
22515
22784
|
vaultInlineReveal: external_exports.enum(["masked", "full", "off"]).optional(),
|
|
22516
22785
|
modelJudgeConsent: external_exports.boolean().optional(),
|
|
22517
|
-
dataSharesInPlace: external_exports.boolean().optional()
|
|
22786
|
+
dataSharesInPlace: external_exports.boolean().optional(),
|
|
22787
|
+
redactFallback: RedactFallback.optional()
|
|
22518
22788
|
}).meta({ id: "ManagedSettingsValues" });
|
|
22519
22789
|
var ManagedSettings = external_exports.object({
|
|
22520
22790
|
specVersion: external_exports.number().int().positive().default(MANAGED_SETTINGS_SPEC_VERSION),
|
|
@@ -22529,176 +22799,6 @@ var ManagedSettings = external_exports.object({
|
|
|
22529
22799
|
lockedFields: external_exports.array(ManagedSettingKey).default([])
|
|
22530
22800
|
}).meta({ id: "ManagedSettings" });
|
|
22531
22801
|
|
|
22532
|
-
// ../../packages/schema/src/zod/policy.ts
|
|
22533
|
-
var PolicyScope = external_exports.enum(["global", "repo", "user"]).meta({ id: "PolicyScope" });
|
|
22534
|
-
var PolicyTarget = external_exports.union([external_exports.object({ ruleId: external_exports.string() }), external_exports.object({ category: DetectionCategory })]).meta({ id: "PolicyTarget" });
|
|
22535
|
-
var Policy = external_exports.object({
|
|
22536
|
-
id: external_exports.guid(),
|
|
22537
|
-
scope: PolicyScope,
|
|
22538
|
-
target: PolicyTarget,
|
|
22539
|
-
action: ActionTaken,
|
|
22540
|
-
enabled: external_exports.boolean().default(true),
|
|
22541
|
-
customKeywords: external_exports.array(external_exports.string()).optional(),
|
|
22542
|
-
// Display name — optional so older policy rows without name still parse.
|
|
22543
|
-
// Added for the findings API (policy.name column migration).
|
|
22544
|
-
name: external_exports.string().optional()
|
|
22545
|
-
}).meta({ id: "Policy" });
|
|
22546
|
-
var PolicyBundle = external_exports.object({
|
|
22547
|
-
version: external_exports.string(),
|
|
22548
|
-
policies: external_exports.array(Policy),
|
|
22549
|
-
// Rules from the installed marketplace packs (snapshotted by the
|
|
22550
|
-
// control plane). The plugin registers these in addition to its bundled
|
|
22551
|
-
// packs. Optional so older backends — and older on-disk caches — that omit
|
|
22552
|
-
// the field still parse; consumers read `bundle.rules ?? []`.
|
|
22553
|
-
rules: external_exports.array(Rule).optional(),
|
|
22554
|
-
// When true, `rules` IS the complete effective ruleset and the runtime must
|
|
22555
|
-
// NOT merge its compiled-in bundled packs — the standalone gateway sets this
|
|
22556
|
-
// after reading the user's installed snapshot (installed_packs, enabled
|
|
22557
|
-
// packs only), which is how detection updates stay manual: new bundled
|
|
22558
|
-
// rules run only after the user applies the pack update. Absent/false keeps
|
|
22559
|
-
// the historical composition (bundled packs + rules) — older caches.
|
|
22560
|
-
rulesComplete: external_exports.boolean().optional(),
|
|
22561
|
-
// Active detection exceptions, evaluation subset only (see
|
|
22562
|
-
// ExceptionBundleEntry). Optional so older bundle producers — and older
|
|
22563
|
-
// on-disk caches — that omit the field still parse; consumers read
|
|
22564
|
-
// `bundle.exceptions ?? []`.
|
|
22565
|
-
exceptions: external_exports.array(ExceptionBundleEntry).optional(),
|
|
22566
|
-
// Rule ids whose pack is assigned a REVERSIBLE archetype (Redact & Vault).
|
|
22567
|
-
// A second axis over the same `redact` action, carried beside the policies
|
|
22568
|
-
// rather than on them: nothing writes ruleId-targeted policies to disk, so
|
|
22569
|
-
// widening Policy itself would change a persisted shape to express something
|
|
22570
|
-
// only the in-memory bundle needs. Optional so an older producer — or an
|
|
22571
|
-
// older on-disk cache — still parses; consumers read `?? []` and get the
|
|
22572
|
-
// pre-existing one-way behaviour, which is the safe direction to default.
|
|
22573
|
-
reversibleRuleIds: external_exports.array(external_exports.string()).optional(),
|
|
22574
|
-
// Installed pack version, keyed by ruleId, for rules in `rules` that came
|
|
22575
|
-
// from a versioned installed pack. Optional so older backends — and older
|
|
22576
|
-
// on-disk caches — that omit the field still parse; consumers fall back to
|
|
22577
|
-
// the rule's own spec version. NOT the bundle version above — see
|
|
22578
|
-
// installedRuleset's ruleVersions for the source of truth.
|
|
22579
|
-
ruleVersions: external_exports.record(external_exports.string(), external_exports.string()).optional(),
|
|
22580
|
-
// Model ids (the raw `model` string a harness reports, e.g.
|
|
22581
|
-
// `claude-opus-4-1`) the tenant has PROHIBITED. The plugin refuses to switch
|
|
22582
|
-
// a session onto one (PreModelSwitch) and refuses a turn that would run on
|
|
22583
|
-
// one (UserPromptSubmit). Optional so an older backend — and an older
|
|
22584
|
-
// on-disk cache — still parses; consumers read `?? []`, which is the
|
|
22585
|
-
// unenforced behaviour that predates this field and the safe direction to
|
|
22586
|
-
// default.
|
|
22587
|
-
//
|
|
22588
|
-
// Ids, not display names: the governance decision is keyed on the exact
|
|
22589
|
-
// string the harness reports (`model_status_override.versionId` in the
|
|
22590
|
-
// control plane), so no name resolution stands between the decision and the
|
|
22591
|
-
// comparison.
|
|
22592
|
-
prohibitedModels: external_exports.array(external_exports.string()).optional(),
|
|
22593
|
-
customKeywords: external_exports.array(external_exports.string()),
|
|
22594
|
-
fetchedAt: external_exports.iso.datetime()
|
|
22595
|
-
}).meta({ id: "PolicyBundle" });
|
|
22596
|
-
var OBSERVE_ONLY_CATEGORIES = ["config"];
|
|
22597
|
-
var ENFORCEABLE_CATEGORIES = DetectionCategory.options.filter((c) => !OBSERVE_ONLY_CATEGORIES.includes(c));
|
|
22598
|
-
var CATEGORY_PEAK_SEVERITY = {
|
|
22599
|
-
secret: "critical",
|
|
22600
|
-
financial: "critical",
|
|
22601
|
-
// core-financial/credit-card
|
|
22602
|
-
code_flaw: "critical",
|
|
22603
|
-
pii: "high",
|
|
22604
|
-
phi: "high",
|
|
22605
|
-
custom: "high",
|
|
22606
|
-
// user-defined; conservative
|
|
22607
|
-
code_context: "low",
|
|
22608
|
-
config: "low"
|
|
22609
|
-
// observe-only; floors to monitor regardless
|
|
22610
|
-
};
|
|
22611
|
-
function severityFloorPolicy(category) {
|
|
22612
|
-
if (OBSERVE_ONLY_CATEGORIES.includes(category)) return "monitor";
|
|
22613
|
-
const peak = CATEGORY_PEAK_SEVERITY[category];
|
|
22614
|
-
return peak === "critical" || peak === "high" ? "warn" : "monitor";
|
|
22615
|
-
}
|
|
22616
|
-
function severityFloorPosture() {
|
|
22617
|
-
const out = {};
|
|
22618
|
-
for (const c of DetectionCategory.options) out[c] = severityFloorPolicy(c);
|
|
22619
|
-
return out;
|
|
22620
|
-
}
|
|
22621
|
-
var PolicyKind = external_exports.enum(["builtin", "custom"]).meta({ id: "PolicyKind" });
|
|
22622
|
-
var KNOWN_BUILTIN_IDS = ["monitor", "warn", "redact", "vault", "block"];
|
|
22623
|
-
var BuiltinPolicyId = external_exports.enum(KNOWN_BUILTIN_IDS).meta({ id: "BuiltinPolicyId" });
|
|
22624
|
-
var BUILTIN_POLICY_SPECS = {
|
|
22625
|
-
monitor: {
|
|
22626
|
-
name: "Monitor",
|
|
22627
|
-
action: "log",
|
|
22628
|
-
reversible: false,
|
|
22629
|
-
description: "Log every match for audit. The request is allowed through untouched."
|
|
22630
|
-
},
|
|
22631
|
-
warn: {
|
|
22632
|
-
name: "Warn",
|
|
22633
|
-
action: "warn",
|
|
22634
|
-
reversible: false,
|
|
22635
|
-
description: "Allow the request, but warn the user inline before it is sent."
|
|
22636
|
-
},
|
|
22637
|
-
redact: {
|
|
22638
|
-
name: "Redact",
|
|
22639
|
-
action: "redact",
|
|
22640
|
-
reversible: false,
|
|
22641
|
-
description: "Strip the matched value from the request and destroy it, then continue. What was removed cannot be recovered."
|
|
22642
|
-
},
|
|
22643
|
-
vault: {
|
|
22644
|
-
name: "Redact & Vault",
|
|
22645
|
-
action: "redact",
|
|
22646
|
-
reversible: true,
|
|
22647
|
-
description: "Strip the matched value from the request and keep an encrypted, recoverable copy in the local vault, leaving a pointer in its place. Needs the vault consent granted under Settings; without it this behaves as Redact."
|
|
22648
|
-
},
|
|
22649
|
-
block: {
|
|
22650
|
-
name: "Block",
|
|
22651
|
-
action: "block",
|
|
22652
|
-
reversible: false,
|
|
22653
|
-
description: "Refuse the request entirely whenever any rule in this detection matches."
|
|
22654
|
-
}
|
|
22655
|
-
};
|
|
22656
|
-
function builtinPolicyToAction(id) {
|
|
22657
|
-
return BUILTIN_POLICY_SPECS[id].action;
|
|
22658
|
-
}
|
|
22659
|
-
var CATEGORY_EXPRESSIBLE_IDS = KNOWN_BUILTIN_IDS.filter(
|
|
22660
|
-
(id) => !BUILTIN_POLICY_SPECS[id].reversible
|
|
22661
|
-
);
|
|
22662
|
-
var CATEGORY_INEXPRESSIBLE_IDS = KNOWN_BUILTIN_IDS.filter(
|
|
22663
|
-
(id) => BUILTIN_POLICY_SPECS[id].reversible
|
|
22664
|
-
);
|
|
22665
|
-
var CategoryPolicyId = external_exports.enum(CATEGORY_EXPRESSIBLE_IDS).meta({ id: "CategoryPolicyId" });
|
|
22666
|
-
var DEFAULT_ACTIONS = Object.fromEntries(
|
|
22667
|
-
DetectionCategory.options.map((c) => [c, builtinPolicyToAction(severityFloorPolicy(c))])
|
|
22668
|
-
);
|
|
22669
|
-
var BUILTIN_POLICIES = Object.fromEntries(
|
|
22670
|
-
KNOWN_BUILTIN_IDS.map((id) => [id, { id, ...BUILTIN_POLICY_SPECS[id] }])
|
|
22671
|
-
);
|
|
22672
|
-
var UsedByItem = external_exports.object({
|
|
22673
|
-
id: external_exports.string(),
|
|
22674
|
-
name: external_exports.string(),
|
|
22675
|
-
ruleCount: external_exports.number().int().nonnegative(),
|
|
22676
|
-
enabled: external_exports.boolean()
|
|
22677
|
-
}).meta({ id: "UsedByItem" });
|
|
22678
|
-
var PolicyListItem = external_exports.object({
|
|
22679
|
-
id: external_exports.string(),
|
|
22680
|
-
kind: PolicyKind,
|
|
22681
|
-
name: external_exports.string(),
|
|
22682
|
-
enabled: external_exports.boolean(),
|
|
22683
|
-
usedByCount: external_exports.number().int().nonnegative()
|
|
22684
|
-
}).meta({ id: "PolicyListItem" });
|
|
22685
|
-
var ListPoliciesResponse = external_exports.object({ items: external_exports.array(PolicyListItem) }).meta({ id: "ListPoliciesResponse" });
|
|
22686
|
-
var PolicyDetail = external_exports.object({
|
|
22687
|
-
specVersion: external_exports.literal(1),
|
|
22688
|
-
id: external_exports.string(),
|
|
22689
|
-
kind: PolicyKind,
|
|
22690
|
-
name: external_exports.string(),
|
|
22691
|
-
enabled: external_exports.boolean(),
|
|
22692
|
-
description: external_exports.string(),
|
|
22693
|
-
usedBy: external_exports.array(UsedByItem)
|
|
22694
|
-
}).meta({ id: "PolicyDetail" });
|
|
22695
|
-
var PolicyStatsResponse = external_exports.object({
|
|
22696
|
-
policies: external_exports.number().int().nonnegative(),
|
|
22697
|
-
builtin: external_exports.number().int().nonnegative(),
|
|
22698
|
-
custom: external_exports.number().int().nonnegative(),
|
|
22699
|
-
detectionsGoverned: external_exports.number().int().nonnegative()
|
|
22700
|
-
}).meta({ id: "PolicyStatsResponse" });
|
|
22701
|
-
|
|
22702
22802
|
// ../../packages/schema/src/zod/project-files.ts
|
|
22703
22803
|
var ProjectFileInput = external_exports.object({
|
|
22704
22804
|
path: external_exports.string().min(1),
|
|
@@ -22938,10 +23038,12 @@ var DismissRecommendedActionResponse = external_exports.object({ id: external_ex
|
|
|
22938
23038
|
var RecommendedActionIdParam = external_exports.object({ id: external_exports.string() });
|
|
22939
23039
|
|
|
22940
23040
|
// ../../packages/schema/src/zod/settings-action.ts
|
|
23041
|
+
var HistorySyncConsentChoice = external_exports.enum(["granted", "revoked", "unchanged"]).meta({ id: "HistorySyncConsentChoice" });
|
|
23042
|
+
var ModelJudgeConsentChoice = external_exports.enum(["granted", "revoked", "unchanged"]).meta({ id: "ModelJudgeConsentChoice" });
|
|
22941
23043
|
var SaveSettingsInput = external_exports.object({
|
|
22942
23044
|
historicalAccess: external_exports.string(),
|
|
22943
|
-
modelJudgeConsent:
|
|
22944
|
-
historySyncConsent:
|
|
23045
|
+
modelJudgeConsent: ModelJudgeConsentChoice,
|
|
23046
|
+
historySyncConsent: HistorySyncConsentChoice,
|
|
22945
23047
|
vaultConsent: external_exports.string(),
|
|
22946
23048
|
vaultInlineReveal: external_exports.string()
|
|
22947
23049
|
});
|
|
@@ -23082,8 +23184,8 @@ import {
|
|
|
23082
23184
|
import { threadId } from "worker_threads";
|
|
23083
23185
|
|
|
23084
23186
|
// ../../packages/persistence/src/database.ts
|
|
23085
|
-
import { randomUUID as
|
|
23086
|
-
import { join as
|
|
23187
|
+
import { randomUUID as randomUUID11 } from "crypto";
|
|
23188
|
+
import { dirname as dirname2, join as join7, sep } from "path";
|
|
23087
23189
|
import { DatabaseSync } from "node:sqlite";
|
|
23088
23190
|
|
|
23089
23191
|
// ../../packages/persistence/src/ids.ts
|
|
@@ -23099,6 +23201,20 @@ var STAGED_NAME_SUFFIX = `.bak${SNAPSHOT_STAGING_SUFFIX}`;
|
|
|
23099
23201
|
|
|
23100
23202
|
// ../../packages/persistence/src/repositories/activity.ts
|
|
23101
23203
|
var LIVE_ACTIVITY_WINDOW_MS = 30 * 6e4;
|
|
23204
|
+
var DB_EVENT_TYPE_TO_KIND = {
|
|
23205
|
+
session: "session",
|
|
23206
|
+
prompt: "prompt",
|
|
23207
|
+
response: "response",
|
|
23208
|
+
tool_call: "tool",
|
|
23209
|
+
hook: "hook",
|
|
23210
|
+
detection: "detection",
|
|
23211
|
+
share: "share",
|
|
23212
|
+
permission: "permission",
|
|
23213
|
+
commit: "commit",
|
|
23214
|
+
error: "error",
|
|
23215
|
+
active: "active"
|
|
23216
|
+
};
|
|
23217
|
+
var TIMELINE_EVENT_TYPES = Object.keys(DB_EVENT_TYPE_TO_KIND).map((kind) => `'${kind}'`).join(", ");
|
|
23102
23218
|
var DEFAULT_HARNESS = HARNESS.ClaudeCode;
|
|
23103
23219
|
|
|
23104
23220
|
// ../../packages/persistence/src/repositories/exceptions.ts
|
|
@@ -23115,12 +23231,46 @@ var ACTIVE_REVEAL_GRANT_PREDICATE = `capability = 'reveal_to_model'
|
|
|
23115
23231
|
// ../../packages/persistence/src/repositories/history-sync.ts
|
|
23116
23232
|
var STRUCTURAL_EVENT_TYPES = ["session", "llm_call", "tool_call"];
|
|
23117
23233
|
var TYPE_LIST = STRUCTURAL_EVENT_TYPES.map((t) => `'${t}'`).join(", ");
|
|
23234
|
+
var OUTBOX_CAPTURE_EVENT_TYPES = ["prompt", "response", "tool_use"];
|
|
23235
|
+
var CAPTURE_TYPE_LIST = OUTBOX_CAPTURE_EVENT_TYPES.map((t) => `'${t}'`).join(", ");
|
|
23118
23236
|
|
|
23119
23237
|
// ../../packages/persistence/src/repositories/installed-packs.ts
|
|
23120
|
-
import { createHash as createHash2, randomUUID as
|
|
23238
|
+
import { createHash as createHash2, randomUUID as randomUUID4 } from "crypto";
|
|
23239
|
+
|
|
23240
|
+
// ../../packages/persistence/src/policy-floor.ts
|
|
23241
|
+
import { readFileSync as readFileSync5 } from "fs";
|
|
23242
|
+
import { join as join6 } from "path";
|
|
23243
|
+
|
|
23244
|
+
// ../../packages/persistence/src/local-layout.ts
|
|
23245
|
+
import { renameSync as renameSync3 } from "fs";
|
|
23246
|
+
import { mkdir } from "fs/promises";
|
|
23247
|
+
import { homedir } from "os";
|
|
23248
|
+
import { join as join4 } from "path";
|
|
23249
|
+
|
|
23250
|
+
// ../../packages/persistence/src/settings.ts
|
|
23251
|
+
import { readFileSync as readFileSync4 } from "fs";
|
|
23252
|
+
import { join as join5 } from "path";
|
|
23253
|
+
|
|
23254
|
+
// ../../packages/persistence/src/file-lock.ts
|
|
23255
|
+
import { randomUUID as randomUUID3 } from "crypto";
|
|
23256
|
+
import {
|
|
23257
|
+
closeSync,
|
|
23258
|
+
existsSync as existsSync2,
|
|
23259
|
+
openSync,
|
|
23260
|
+
readFileSync as readFileSync2,
|
|
23261
|
+
rmSync as rmSync5,
|
|
23262
|
+
statSync as statSync3,
|
|
23263
|
+
writeFileSync as writeFileSync2
|
|
23264
|
+
} from "fs";
|
|
23265
|
+
import { hostname as hostname3 } from "os";
|
|
23266
|
+
var PARK = new Int32Array(new SharedArrayBuffer(4));
|
|
23267
|
+
|
|
23268
|
+
// ../../packages/persistence/src/managed-settings.ts
|
|
23269
|
+
import { readFileSync as readFileSync3 } from "fs";
|
|
23270
|
+
import { posix, win32 } from "path";
|
|
23121
23271
|
|
|
23122
23272
|
// ../../packages/persistence/src/repositories/inventory-assets.ts
|
|
23123
|
-
import { randomUUID as
|
|
23273
|
+
import { randomUUID as randomUUID5 } from "crypto";
|
|
23124
23274
|
var VALID_HARNESS_IDS = new Set(HarnessId.options);
|
|
23125
23275
|
var HARNESS_LABELS = {
|
|
23126
23276
|
[HARNESS.ClaudeCode]: "Claude Code",
|
|
@@ -23138,16 +23288,16 @@ var TITLE_NEEDLES = {
|
|
|
23138
23288
|
};
|
|
23139
23289
|
|
|
23140
23290
|
// ../../packages/persistence/src/repositories/policies.ts
|
|
23141
|
-
import { randomUUID as
|
|
23291
|
+
import { randomUUID as randomUUID6 } from "crypto";
|
|
23142
23292
|
|
|
23143
23293
|
// ../../packages/persistence/src/repositories/project-files.ts
|
|
23144
|
-
import { randomUUID as
|
|
23294
|
+
import { randomUUID as randomUUID7 } from "crypto";
|
|
23145
23295
|
|
|
23146
23296
|
// ../../packages/persistence/src/repositories/resolutions.ts
|
|
23147
|
-
import { randomUUID as
|
|
23297
|
+
import { randomUUID as randomUUID8 } from "crypto";
|
|
23148
23298
|
|
|
23149
23299
|
// ../../packages/persistence/src/repositories/secret-vault.ts
|
|
23150
|
-
import { randomUUID as
|
|
23300
|
+
import { randomUUID as randomUUID9 } from "crypto";
|
|
23151
23301
|
|
|
23152
23302
|
// ../../packages/persistence/src/repositories/security.ts
|
|
23153
23303
|
var SCAN_COVERAGE = {
|
|
@@ -23162,53 +23312,28 @@ var SCAN_COVERAGE = {
|
|
|
23162
23312
|
};
|
|
23163
23313
|
|
|
23164
23314
|
// ../../packages/persistence/src/repositories/shares.ts
|
|
23165
|
-
import { randomUUID as
|
|
23315
|
+
import { randomUUID as randomUUID10 } from "crypto";
|
|
23166
23316
|
|
|
23167
|
-
// ../../packages/persistence/src/
|
|
23168
|
-
|
|
23169
|
-
import {
|
|
23170
|
-
closeSync,
|
|
23171
|
-
existsSync as existsSync2,
|
|
23172
|
-
openSync,
|
|
23173
|
-
readFileSync as readFileSync2,
|
|
23174
|
-
rmSync as rmSync5,
|
|
23175
|
-
statSync as statSync3,
|
|
23176
|
-
writeFileSync as writeFileSync2
|
|
23177
|
-
} from "fs";
|
|
23178
|
-
import { hostname as hostname3 } from "os";
|
|
23179
|
-
var PARK = new Int32Array(new SharedArrayBuffer(4));
|
|
23317
|
+
// ../../packages/persistence/src/database.ts
|
|
23318
|
+
var CAPTURE_GRAIN = new Set(EventKind.options);
|
|
23180
23319
|
|
|
23181
23320
|
// ../../packages/persistence/src/finding-key.ts
|
|
23182
23321
|
import { createHash as createHash3 } from "crypto";
|
|
23183
23322
|
|
|
23184
23323
|
// ../../packages/persistence/src/fingerprint.ts
|
|
23185
23324
|
import { createHmac, randomBytes } from "crypto";
|
|
23186
|
-
import { existsSync as existsSync3, readFileSync as
|
|
23187
|
-
import { join as
|
|
23325
|
+
import { existsSync as existsSync3, readFileSync as readFileSync6 } from "fs";
|
|
23326
|
+
import { join as join8 } from "path";
|
|
23188
23327
|
import { DatabaseSync as DatabaseSync2 } from "node:sqlite";
|
|
23189
23328
|
|
|
23190
23329
|
// ../../packages/persistence/src/history-preview.ts
|
|
23191
23330
|
import { existsSync as existsSync4 } from "fs";
|
|
23192
|
-
import { join as
|
|
23331
|
+
import { join as join9 } from "path";
|
|
23193
23332
|
import { DatabaseSync as DatabaseSync3 } from "node:sqlite";
|
|
23194
23333
|
|
|
23195
|
-
// ../../packages/persistence/src/local-layout.ts
|
|
23196
|
-
import { renameSync as renameSync3 } from "fs";
|
|
23197
|
-
import { mkdir } from "fs/promises";
|
|
23198
|
-
import { homedir } from "os";
|
|
23199
|
-
import { join as join7 } from "path";
|
|
23200
|
-
|
|
23201
|
-
// ../../packages/persistence/src/managed-settings.ts
|
|
23202
|
-
import { readFileSync as readFileSync4 } from "fs";
|
|
23203
|
-
import { posix, win32 } from "path";
|
|
23204
|
-
|
|
23205
|
-
// ../../packages/persistence/src/settings.ts
|
|
23206
|
-
import { readFileSync as readFileSync5 } from "fs";
|
|
23207
|
-
import { join as join8 } from "path";
|
|
23208
|
-
|
|
23209
23334
|
// ../../packages/persistence/src/store-symlinks.ts
|
|
23210
23335
|
import { existsSync as existsSync5, lstatSync as lstatSync3, readlinkSync, realpathSync, statSync as statSync4 } from "fs";
|
|
23211
|
-
import { dirname as
|
|
23336
|
+
import { dirname as dirname3, join as join10, resolve } from "path";
|
|
23212
23337
|
|
|
23213
23338
|
// ../../packages/persistence/src/vault/crypto.ts
|
|
23214
23339
|
import {
|
|
@@ -23222,15 +23347,15 @@ import {
|
|
|
23222
23347
|
// ../../packages/persistence/src/vault/key-provider.ts
|
|
23223
23348
|
import { execFileSync } from "child_process";
|
|
23224
23349
|
import { randomBytes as randomBytes2 } from "crypto";
|
|
23225
|
-
import { chmodSync as chmodSync3, readFileSync as
|
|
23226
|
-
import { join as
|
|
23350
|
+
import { chmodSync as chmodSync3, readFileSync as readFileSync7, renameSync as renameSync4, rmSync as rmSync6, statSync as statSync5, writeFileSync as writeFileSync3 } from "fs";
|
|
23351
|
+
import { join as join11 } from "path";
|
|
23227
23352
|
|
|
23228
23353
|
// ../../packages/persistence/src/vault/vault.ts
|
|
23229
23354
|
import { randomBytes as randomBytes3, randomUUID as randomUUID12 } from "crypto";
|
|
23230
23355
|
|
|
23231
23356
|
// ../../packages/persistence/src/warn-era-cap.ts
|
|
23232
23357
|
import { existsSync as existsSync6, writeFileSync as writeFileSync4 } from "fs";
|
|
23233
|
-
import { join as
|
|
23358
|
+
import { join as join12 } from "path";
|
|
23234
23359
|
|
|
23235
23360
|
// ../../packages/plugin-sdk/src/provider-env.ts
|
|
23236
23361
|
var booleanish = external_exports.string().optional().transform((v) => {
|
|
@@ -23251,9 +23376,9 @@ var providerEnvShape = {
|
|
|
23251
23376
|
var ProviderEnvSchema = external_exports.object(providerEnvShape);
|
|
23252
23377
|
|
|
23253
23378
|
// ../../packages/plugin-sdk/src/config-inventory.ts
|
|
23254
|
-
import { readdirSync as readdirSync2, readFileSync as
|
|
23379
|
+
import { readdirSync as readdirSync2, readFileSync as readFileSync9, realpathSync as realpathSync2, statSync as statSync7 } from "fs";
|
|
23255
23380
|
import { homedir as homedir2 } from "os";
|
|
23256
|
-
import { basename as basename3, join as
|
|
23381
|
+
import { basename as basename3, join as join15 } from "path";
|
|
23257
23382
|
|
|
23258
23383
|
// ../../packages/detections/src/egress/registry.ts
|
|
23259
23384
|
var EXTRACTOR_VERSION = "1";
|
|
@@ -24011,8 +24136,8 @@ var CPU_CORROBORATION_SHARE = 0.2;
|
|
|
24011
24136
|
var CORROBORATION_FLOOR_MS = BUDGET_MS * CPU_CORROBORATION_SHARE;
|
|
24012
24137
|
|
|
24013
24138
|
// ../../packages/plugin-sdk/src/repo.ts
|
|
24014
|
-
import { existsSync as existsSync8, readFileSync as
|
|
24015
|
-
import { basename as basename2, dirname as
|
|
24139
|
+
import { existsSync as existsSync8, readFileSync as readFileSync8, statSync as statSync6 } from "fs";
|
|
24140
|
+
import { basename as basename2, dirname as dirname4, isAbsolute, join as join14, sep as sep2 } from "path";
|
|
24016
24141
|
|
|
24017
24142
|
// ../../packages/plugin-sdk/src/events.ts
|
|
24018
24143
|
import { createHash as createHash4, randomUUID as randomUUID13 } from "crypto";
|
|
@@ -24024,8 +24149,8 @@ import { Worker } from "worker_threads";
|
|
|
24024
24149
|
|
|
24025
24150
|
// ../../packages/plugin-sdk/src/ignore-layers.ts
|
|
24026
24151
|
var import_ignore = __toESM(require_ignore(), 1);
|
|
24027
|
-
import { readFileSync as
|
|
24028
|
-
import { join as
|
|
24152
|
+
import { readFileSync as readFileSync10 } from "fs";
|
|
24153
|
+
import { join as join16 } from "path";
|
|
24029
24154
|
|
|
24030
24155
|
// ../../packages/plugin-sdk/src/inventory-resolver.ts
|
|
24031
24156
|
import { arch, hostname as hostname4, platform, release } from "os";
|
|
@@ -24036,24 +24161,24 @@ import {
|
|
|
24036
24161
|
fstatSync,
|
|
24037
24162
|
mkdirSync as mkdirSync2,
|
|
24038
24163
|
openSync as openSync2,
|
|
24039
|
-
readFileSync as
|
|
24164
|
+
readFileSync as readFileSync11,
|
|
24040
24165
|
readSync,
|
|
24041
24166
|
writeFileSync as writeFileSync5
|
|
24042
24167
|
} from "fs";
|
|
24043
|
-
import { join as
|
|
24168
|
+
import { join as join17 } from "path";
|
|
24044
24169
|
var TAIL_BYTES = 256 * 1024;
|
|
24045
24170
|
|
|
24046
24171
|
// ../../packages/plugin-sdk/src/nudge.ts
|
|
24047
|
-
import { mkdirSync as mkdirSync3, readFileSync as
|
|
24048
|
-
import { join as
|
|
24172
|
+
import { mkdirSync as mkdirSync3, readFileSync as readFileSync12, writeFileSync as writeFileSync6 } from "fs";
|
|
24173
|
+
import { join as join18 } from "path";
|
|
24049
24174
|
|
|
24050
24175
|
// ../../packages/plugin-sdk/src/paths.ts
|
|
24051
24176
|
import { readdirSync as readdirSync3, realpathSync as realpathSync3 } from "fs";
|
|
24052
|
-
import { basename as basename4, dirname as
|
|
24177
|
+
import { basename as basename4, dirname as dirname5, sep as sep3 } from "path";
|
|
24053
24178
|
|
|
24054
24179
|
// ../../packages/plugin-sdk/src/project-files.ts
|
|
24055
24180
|
import { existsSync as existsSync10, readdirSync as readdirSync4 } from "fs";
|
|
24056
|
-
import { basename as basename5, join as
|
|
24181
|
+
import { basename as basename5, join as join19 } from "path";
|
|
24057
24182
|
|
|
24058
24183
|
// ../../packages/plugin-sdk/src/provider-env-antigravity.ts
|
|
24059
24184
|
var optionalBaseUrl2 = external_exports.preprocess((v) => {
|
|
@@ -24089,7 +24214,7 @@ var THIRTY_DAYS_MS = 30 * 24 * 60 * 60 * 1e3;
|
|
|
24089
24214
|
|
|
24090
24215
|
// ../../packages/plugin-sdk/src/throttle.ts
|
|
24091
24216
|
import { mkdirSync as mkdirSync4, statSync as statSync8, writeFileSync as writeFileSync7 } from "fs";
|
|
24092
|
-
import { join as
|
|
24217
|
+
import { join as join20 } from "path";
|
|
24093
24218
|
|
|
24094
24219
|
// ../../packages/setup-wizard/src/onboard-posture.ts
|
|
24095
24220
|
function parsePosture(json2) {
|
|
@@ -24128,7 +24253,7 @@ function parseCurrent(json2) {
|
|
|
24128
24253
|
|
|
24129
24254
|
// ../../packages/setup-wizard/src/remediation/rotation-checklist.ts
|
|
24130
24255
|
import { writeFileSync as writeFileSync8 } from "fs";
|
|
24131
|
-
import { join as
|
|
24256
|
+
import { join as join21 } from "path";
|
|
24132
24257
|
|
|
24133
24258
|
// ../../packages/setup-wizard/src/triage/gate-display.ts
|
|
24134
24259
|
var ACTION_RANK = {
|
|
@@ -24155,9 +24280,9 @@ var RANK = Object.fromEntries(
|
|
|
24155
24280
|
);
|
|
24156
24281
|
|
|
24157
24282
|
// ../../packages/setup-wizard/src/triage/plan-file.ts
|
|
24158
|
-
import { mkdtempSync, readFileSync as
|
|
24283
|
+
import { mkdtempSync, readFileSync as readFileSync13, rmdirSync, rmSync as rmSync7, writeFileSync as writeFileSync9 } from "fs";
|
|
24159
24284
|
import { tmpdir } from "os";
|
|
24160
|
-
import { basename as basename6, dirname as
|
|
24285
|
+
import { basename as basename6, dirname as dirname6, join as join22 } from "path";
|
|
24161
24286
|
var SuppressionEntrySchema = external_exports.object({
|
|
24162
24287
|
ruleId: external_exports.string(),
|
|
24163
24288
|
category: DetectionCategory,
|