@vigil-guard/vge-cc-guard 0.9.0-beta.2 → 0.9.0-beta.4

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.
Files changed (183) hide show
  1. package/README.md +16 -2
  2. package/dist/commands/doctor.d.ts.map +1 -1
  3. package/dist/commands/doctor.js +29 -1
  4. package/dist/commands/doctor.js.map +1 -1
  5. package/dist/daemon/active-conversation-decisions.d.ts +1 -1
  6. package/dist/daemon/active-conversation-decisions.d.ts.map +1 -1
  7. package/dist/daemon/active-conversation-decisions.js +0 -4
  8. package/dist/daemon/active-conversation-decisions.js.map +1 -1
  9. package/dist/daemon/agent-call-correlation.d.ts +19 -0
  10. package/dist/daemon/agent-call-correlation.d.ts.map +1 -0
  11. package/dist/daemon/agent-call-correlation.js +93 -0
  12. package/dist/daemon/agent-call-correlation.js.map +1 -0
  13. package/dist/daemon/ask-dialog.d.ts +1 -12
  14. package/dist/daemon/ask-dialog.d.ts.map +1 -1
  15. package/dist/daemon/ask-dialog.js +0 -51
  16. package/dist/daemon/ask-dialog.js.map +1 -1
  17. package/dist/daemon/audit-decisions.d.ts +7 -0
  18. package/dist/daemon/audit-decisions.d.ts.map +1 -1
  19. package/dist/daemon/audit-decisions.js +11 -2
  20. package/dist/daemon/audit-decisions.js.map +1 -1
  21. package/dist/daemon/audit-posttool.d.ts +71 -1
  22. package/dist/daemon/audit-posttool.d.ts.map +1 -1
  23. package/dist/daemon/audit-posttool.js +116 -1
  24. package/dist/daemon/audit-posttool.js.map +1 -1
  25. package/dist/daemon/audit-pretool.d.ts +0 -35
  26. package/dist/daemon/audit-pretool.d.ts.map +1 -1
  27. package/dist/daemon/audit-pretool.js +0 -48
  28. package/dist/daemon/audit-pretool.js.map +1 -1
  29. package/dist/daemon/blocking-decision-triggers.d.ts.map +1 -1
  30. package/dist/daemon/blocking-decision-triggers.js +4 -1
  31. package/dist/daemon/blocking-decision-triggers.js.map +1 -1
  32. package/dist/daemon/conversation-decision-cleanup.d.ts.map +1 -1
  33. package/dist/daemon/conversation-decision-cleanup.js +0 -3
  34. package/dist/daemon/conversation-decision-cleanup.js.map +1 -1
  35. package/dist/daemon/conversation-decision-escrow.d.ts.map +1 -1
  36. package/dist/daemon/conversation-decision-escrow.js +7 -17
  37. package/dist/daemon/conversation-decision-escrow.js.map +1 -1
  38. package/dist/daemon/conversation-decision-prompt.d.ts.map +1 -1
  39. package/dist/daemon/conversation-decision-prompt.js +7 -23
  40. package/dist/daemon/conversation-decision-prompt.js.map +1 -1
  41. package/dist/daemon/decision-broker.d.ts +1 -0
  42. package/dist/daemon/decision-broker.d.ts.map +1 -1
  43. package/dist/daemon/decision-broker.js +9 -3
  44. package/dist/daemon/decision-broker.js.map +1 -1
  45. package/dist/daemon/decision-metrics.d.ts.map +1 -1
  46. package/dist/daemon/decision-metrics.js +0 -2
  47. package/dist/daemon/decision-metrics.js.map +1 -1
  48. package/dist/daemon/http-server.d.ts.map +1 -1
  49. package/dist/daemon/http-server.js +21 -2
  50. package/dist/daemon/http-server.js.map +1 -1
  51. package/dist/daemon/parent-agent-posttool.d.ts +9 -0
  52. package/dist/daemon/parent-agent-posttool.d.ts.map +1 -0
  53. package/dist/daemon/parent-agent-posttool.js +37 -0
  54. package/dist/daemon/parent-agent-posttool.js.map +1 -0
  55. package/dist/daemon/posttool-decision-escrow.d.ts.map +1 -1
  56. package/dist/daemon/posttool-decision-escrow.js +3 -2
  57. package/dist/daemon/posttool-decision-escrow.js.map +1 -1
  58. package/dist/daemon/posttool-decision-state.d.ts +2 -1
  59. package/dist/daemon/posttool-decision-state.d.ts.map +1 -1
  60. package/dist/daemon/posttool-decision-state.js +3 -3
  61. package/dist/daemon/posttool-decision-state.js.map +1 -1
  62. package/dist/daemon/posttool-disposition.d.ts +22 -0
  63. package/dist/daemon/posttool-disposition.d.ts.map +1 -0
  64. package/dist/daemon/posttool-disposition.js +26 -0
  65. package/dist/daemon/posttool-disposition.js.map +1 -0
  66. package/dist/daemon/posttool-enforcement.d.ts.map +1 -1
  67. package/dist/daemon/posttool-enforcement.js +86 -73
  68. package/dist/daemon/posttool-enforcement.js.map +1 -1
  69. package/dist/daemon/posttool-quarantine.d.ts +22 -0
  70. package/dist/daemon/posttool-quarantine.d.ts.map +1 -0
  71. package/dist/daemon/posttool-quarantine.js +47 -0
  72. package/dist/daemon/posttool-quarantine.js.map +1 -0
  73. package/dist/daemon/posttool-render.d.ts +2 -1
  74. package/dist/daemon/posttool-render.d.ts.map +1 -1
  75. package/dist/daemon/posttool-render.js +37 -17
  76. package/dist/daemon/posttool-render.js.map +1 -1
  77. package/dist/daemon/posttool-research-quarantine.d.ts +15 -0
  78. package/dist/daemon/posttool-research-quarantine.d.ts.map +1 -0
  79. package/dist/daemon/posttool-research-quarantine.js +76 -0
  80. package/dist/daemon/posttool-research-quarantine.js.map +1 -0
  81. package/dist/daemon/pretool-url-gate.js +1 -1
  82. package/dist/daemon/pretool-url-gate.js.map +1 -1
  83. package/dist/daemon/reply-parser.d.ts +1 -5
  84. package/dist/daemon/reply-parser.d.ts.map +1 -1
  85. package/dist/daemon/reply-parser.js +0 -40
  86. package/dist/daemon/reply-parser.js.map +1 -1
  87. package/dist/daemon/resolve-escalation-route.d.ts.map +1 -1
  88. package/dist/daemon/resolve-escalation-route.js +0 -21
  89. package/dist/daemon/resolve-escalation-route.js.map +1 -1
  90. package/dist/daemon/resource-label-sanitizer.d.ts +5 -0
  91. package/dist/daemon/resource-label-sanitizer.d.ts.map +1 -0
  92. package/dist/daemon/resource-label-sanitizer.js +20 -0
  93. package/dist/daemon/resource-label-sanitizer.js.map +1 -0
  94. package/dist/daemon/session-hook-routes.d.ts.map +1 -1
  95. package/dist/daemon/session-hook-routes.js +3 -0
  96. package/dist/daemon/session-hook-routes.js.map +1 -1
  97. package/dist/daemon/session-state.d.ts +0 -4
  98. package/dist/daemon/session-state.d.ts.map +1 -1
  99. package/dist/daemon/session-state.js +0 -35
  100. package/dist/daemon/session-state.js.map +1 -1
  101. package/dist/daemon/subagent-lifecycle.d.ts.map +1 -1
  102. package/dist/daemon/subagent-lifecycle.js +1 -2
  103. package/dist/daemon/subagent-lifecycle.js.map +1 -1
  104. package/dist/daemon/subagent-quarantine-injector.d.ts +8 -0
  105. package/dist/daemon/subagent-quarantine-injector.d.ts.map +1 -0
  106. package/dist/daemon/subagent-quarantine-injector.js +87 -0
  107. package/dist/daemon/subagent-quarantine-injector.js.map +1 -0
  108. package/dist/daemon/subagent-quarantine-ledger-lock.d.ts +15 -0
  109. package/dist/daemon/subagent-quarantine-ledger-lock.d.ts.map +1 -0
  110. package/dist/daemon/subagent-quarantine-ledger-lock.js +56 -0
  111. package/dist/daemon/subagent-quarantine-ledger-lock.js.map +1 -0
  112. package/dist/daemon/subagent-quarantine-ledger.d.ts +38 -0
  113. package/dist/daemon/subagent-quarantine-ledger.d.ts.map +1 -0
  114. package/dist/daemon/subagent-quarantine-ledger.js +278 -0
  115. package/dist/daemon/subagent-quarantine-ledger.js.map +1 -0
  116. package/dist/daemon/subagent-quarantine-notice.d.ts +17 -0
  117. package/dist/daemon/subagent-quarantine-notice.d.ts.map +1 -0
  118. package/dist/daemon/subagent-quarantine-notice.js +85 -0
  119. package/dist/daemon/subagent-quarantine-notice.js.map +1 -0
  120. package/dist/daemon/subagent-quarantine-reason-mapping.d.ts +16 -0
  121. package/dist/daemon/subagent-quarantine-reason-mapping.d.ts.map +1 -0
  122. package/dist/daemon/subagent-quarantine-reason-mapping.js +29 -0
  123. package/dist/daemon/subagent-quarantine-reason-mapping.js.map +1 -0
  124. package/dist/daemon/subagent-quarantine-types.d.ts +16 -0
  125. package/dist/daemon/subagent-quarantine-types.d.ts.map +1 -0
  126. package/dist/daemon/subagent-quarantine-types.js +2 -0
  127. package/dist/daemon/subagent-quarantine-types.js.map +1 -0
  128. package/dist/daemon/tool-output-redactor.d.ts.map +1 -1
  129. package/dist/daemon/tool-output-redactor.js +12 -1
  130. package/dist/daemon/tool-output-redactor.js.map +1 -1
  131. package/dist/daemon/tool-policy.d.ts +4 -1
  132. package/dist/daemon/tool-policy.d.ts.map +1 -1
  133. package/dist/daemon/tool-policy.js +3 -1
  134. package/dist/daemon/tool-policy.js.map +1 -1
  135. package/dist/daemon/url-resource-id.d.ts +4 -0
  136. package/dist/daemon/url-resource-id.d.ts.map +1 -0
  137. package/dist/daemon/url-resource-id.js +14 -0
  138. package/dist/daemon/url-resource-id.js.map +1 -0
  139. package/dist/daemon/vge-client-types.d.ts +45 -0
  140. package/dist/daemon/vge-client-types.d.ts.map +1 -0
  141. package/dist/daemon/vge-client-types.js +2 -0
  142. package/dist/daemon/vge-client-types.js.map +1 -0
  143. package/dist/daemon/vge-client.d.ts +2 -44
  144. package/dist/daemon/vge-client.d.ts.map +1 -1
  145. package/dist/daemon/vge-client.js +3 -3
  146. package/dist/daemon/vge-client.js.map +1 -1
  147. package/dist/daemon/vge-connectivity.d.ts.map +1 -1
  148. package/dist/daemon/vge-connectivity.js +72 -16
  149. package/dist/daemon/vge-connectivity.js.map +1 -1
  150. package/dist/shared/config-schema.d.ts +19 -0
  151. package/dist/shared/config-schema.d.ts.map +1 -1
  152. package/dist/shared/config-schema.js +11 -0
  153. package/dist/shared/config-schema.js.map +1 -1
  154. package/dist/shared/runtime-lock.d.ts +1 -1
  155. package/dist/shared/runtime-lock.d.ts.map +1 -1
  156. package/dist/shared/system-ca.d.ts +9 -1
  157. package/dist/shared/system-ca.d.ts.map +1 -1
  158. package/dist/shared/system-ca.js +35 -14
  159. package/dist/shared/system-ca.js.map +1 -1
  160. package/dist/shared/types.d.ts +5 -3
  161. package/dist/shared/types.d.ts.map +1 -1
  162. package/dist/shim/inline-resolver-terminal.d.ts.map +1 -1
  163. package/dist/shim/inline-resolver-terminal.js +9 -4
  164. package/dist/shim/inline-resolver-terminal.js.map +1 -1
  165. package/dist/tui/components/BlockingDecisionModal.d.ts.map +1 -1
  166. package/dist/tui/components/BlockingDecisionModal.js +5 -1
  167. package/dist/tui/components/BlockingDecisionModal.js.map +1 -1
  168. package/dist/tui/lib/daemon-client.d.ts +7 -0
  169. package/dist/tui/lib/daemon-client.d.ts.map +1 -1
  170. package/dist/tui/lib/daemon-client.js +31 -0
  171. package/dist/tui/lib/daemon-client.js.map +1 -1
  172. package/dist/tui/screens/ViewConfig.d.ts.map +1 -1
  173. package/dist/tui/screens/ViewConfig.js +1 -1
  174. package/dist/tui/screens/ViewConfig.js.map +1 -1
  175. package/package.json +1 -1
  176. package/dist/daemon/pretool-decision-escrow.d.ts +0 -51
  177. package/dist/daemon/pretool-decision-escrow.d.ts.map +0 -1
  178. package/dist/daemon/pretool-decision-escrow.js +0 -295
  179. package/dist/daemon/pretool-decision-escrow.js.map +0 -1
  180. package/dist/daemon/url-block-decisions.d.ts +0 -27
  181. package/dist/daemon/url-block-decisions.d.ts.map +0 -1
  182. package/dist/daemon/url-block-decisions.js +0 -100
  183. package/dist/daemon/url-block-decisions.js.map +0 -1
package/README.md CHANGED
@@ -5,7 +5,7 @@ Code hooks, gates tool calls before execution, sends configured prompt and tool
5
5
  content to Vigil Guard Enterprise (VGE), manages user decisions for blocked
6
6
  content, and writes a private local audit trail.
7
7
 
8
- Current package version: `0.9.0-beta.2`.
8
+ Current package version: `0.9.0-beta.4`.
9
9
 
10
10
  ## Current State
11
11
 
@@ -17,6 +17,9 @@ Current package version: `0.9.0-beta.2`.
17
17
  - `PostToolUse` supports explicit VGE block HITL/quarantine, research-safe
18
18
  `SOFT_TAINT` framing for `WebSearch` and `WebFetch`, and fail-open overload
19
19
  backpressure for research-tool scans.
20
+ - Parent `Agent` results receive a structured notice when a child subagent had
21
+ one or more quarantined tool outputs, so Claude can treat the subagent answer
22
+ as potentially incomplete without seeing the blocked content.
20
23
 
21
24
  ## What It Protects
22
25
 
@@ -66,7 +69,7 @@ macOS/Linux and ACL tightening on Windows.
66
69
  | `SessionStart` | Initializes local session state. |
67
70
  | `UserPromptSubmit` | Audits prompt receipt, resolves active control replies, scans prompt text and attachments, and blocks or asks before unsafe input reaches Claude. |
68
71
  | `PreToolUse` | Applies credential path protection, URL deny-list rules, session decisions, tainted-session policy, and per-tool gates. |
69
- | `PostToolUse` | Scans configured tool output, frames `SOFT_TAINT`, quarantines explicit VGE blocks, and handles fail-open scan failures. |
72
+ | `PostToolUse` | Scans configured tool output, frames `SOFT_TAINT`, quarantines explicit VGE blocks, injects parent-visible subagent quarantine notices, and handles fail-open scan failures. |
70
73
  | `SessionEnd` | Flushes state and clears active in-memory decisions for the session. |
71
74
  | `SubagentStart` / `SubagentStop` | Tracks subagent ownership for owner-scoped decisions and continuation prompts. |
72
75
 
@@ -301,6 +304,12 @@ VGE round-trip.
301
304
  covered through owner metadata on the underlying tool hooks when
302
305
  `policy.subagent_output_analysis` is `enforce`.
303
306
 
307
+ When a subagent output is quarantined, the parent `Agent` result can include a
308
+ `[VGE_SUBAGENT_QUARANTINE_NOTICE]` block. The notice contains safe metadata such
309
+ as session, agent ID, decision ID, tool, resource label, reason code, and
310
+ resolution status. It does not include raw blocked tool output, VGE scores,
311
+ classifier categories, or branch scores.
312
+
304
313
  ## Credential And URL Protection
305
314
 
306
315
  Credential path protection blocks sensitive local paths before content is read
@@ -369,6 +378,11 @@ outcome, resolver source, synthesized source, latency, and VGE or local
369
378
  fallback metadata. Raw prompt text, raw tool output, full URLs with query
370
379
  strings, and API keys are not written to audit.
371
380
 
381
+ Subagent quarantine visibility adds audit events for ledger writes, notice
382
+ injection/degradation/skips, ledger recovery, invalid ledger lines, and missing
383
+ Agent-call correlation. These events are metadata-only and use the same private
384
+ audit log.
385
+
372
386
  The daemon also exposes an authenticated local metrics snapshot:
373
387
 
374
388
  ```text
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AASA,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuC7D"}
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAWA,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA0C7D"}
@@ -1,6 +1,8 @@
1
1
  import { ccContractNextAction, createCcContractStatus, getCcContractHealth, writeCcContractStatus, } from '../daemon/cc-contract-status.js';
2
2
  import { checkVgeConnectivity } from '../daemon/vge-connectivity.js';
3
3
  import { readConfigOrDefault } from '../shared/config-io.js';
4
+ import { installSystemCAs } from '../shared/system-ca.js';
5
+ import { readDaemonStatus } from '../tui/lib/daemon-client.js';
4
6
  export async function runDoctor(args) {
5
7
  if (!args.includes('--cc-contract')) {
6
8
  const skipVge = args.includes('--no-vge');
@@ -14,6 +16,7 @@ export async function runDoctor(args) {
14
16
  console.log(`Checked at: ${health.checkedAt ?? 'never'}`);
15
17
  if (skipVge) {
16
18
  console.log('VGE connectivity: skipped (--no-vge)');
19
+ await printSystemCaDiagnostics();
17
20
  return;
18
21
  }
19
22
  const vgeHealth = await checkVgeConnectivity(readConfigOrDefault());
@@ -23,8 +26,11 @@ export async function runDoctor(args) {
23
26
  console.log(`VGE output key: ${vgeHealth.outputKey}`);
24
27
  if (!vgeHealth.ok) {
25
28
  console.log(`VGE reason: ${vgeHealth.failureReason ?? 'unknown'}`);
29
+ if (vgeHealth.detail)
30
+ console.log(`VGE detail: ${vgeHealth.detail}`);
26
31
  console.log(`VGE next action: ${vgeNextAction(vgeHealth.failureReason)}`);
27
32
  }
33
+ await printSystemCaDiagnostics();
28
34
  return;
29
35
  }
30
36
  const assumeLivePassed = args.includes('--assume-live-pass');
@@ -46,8 +52,30 @@ function vgeNextAction(reason) {
46
52
  return 'Verify the input and output key roles for the configured VGE endpoint.';
47
53
  }
48
54
  if (reason === 'tls_error') {
49
- return 'Verify system CA trust for the daemon process and restart the daemon.';
55
+ return 'Add the VGE root CA to your OS keychain or NODE_EXTRA_CA_CERTS, then run `vge-cc-guard daemon reload`.';
50
56
  }
51
57
  return 'Check daemon Runtime VGE status and verify endpoint, CA trust, and key role configuration.';
52
58
  }
59
+ async function printSystemCaDiagnostics() {
60
+ const localSnapshot = installSystemCAs();
61
+ console.log(`System CA store: ${localSnapshot.runtimeSupported ? 'supported' : 'unsupported'}`);
62
+ console.log(`System CAs loaded: ${localSnapshot.systemCount}`);
63
+ console.log(`Extra CAs loaded: ${localSnapshot.extraCount}`);
64
+ const daemonStatus = await readDaemonStatus();
65
+ if (!daemonStatus.ok || !daemonStatus.caSnapshot) {
66
+ console.log('Daemon CA snapshot: unavailable');
67
+ console.log('CA drift: unknown');
68
+ return;
69
+ }
70
+ console.log(`Daemon CA snapshot: ${formatDaemonCaSnapshot(daemonStatus.caSnapshot)}`);
71
+ console.log(`CA drift: ${hasCaDrift(localSnapshot, daemonStatus.caSnapshot) ? 'yes' : 'no'}`);
72
+ }
73
+ function formatDaemonCaSnapshot(snapshot) {
74
+ return `systemCount=${snapshot.systemCount} extraCount=${snapshot.extraCount} checkedAt=${snapshot.checkedAt}`;
75
+ }
76
+ function hasCaDrift(localSnapshot, daemonSnapshot) {
77
+ return localSnapshot.systemCount !== daemonSnapshot.systemCount ||
78
+ localSnapshot.extraCount !== daemonSnapshot.extraCount ||
79
+ localSnapshot.runtimeSupported !== daemonSnapshot.runtimeSupported;
80
+ }
53
81
  //# sourceMappingURL=doctor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import type { BlockingDecision } from '../shared/types.js';
2
2
  export interface ActiveConversationDecision {
3
3
  decision: BlockingDecision;
4
- source: 'pretool' | 'posttool' | 'attachment' | 'prompt';
4
+ source: 'posttool' | 'attachment' | 'prompt';
5
5
  }
6
6
  export declare function nextDecisionCreationSequence(): number;
7
7
  export declare function activeConversationDecisionsForSession(sessionId: string): ActiveConversationDecision[];
@@ -1 +1 @@
1
- {"version":3,"file":"active-conversation-decisions.d.ts","sourceRoot":"","sources":["../../src/daemon/active-conversation-decisions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAQ3D,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,YAAY,GAAG,QAAQ,CAAC;CAC1D;AAID,wBAAgB,4BAA4B,IAAI,MAAM,CAErD;AAmBD,wBAAgB,qCAAqC,CAAC,SAAS,EAAE,MAAM,GAAG,0BAA0B,EAAE,CAUrG;AAED,wBAAgB,8CAA8C,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CA0BxF"}
1
+ {"version":3,"file":"active-conversation-decisions.d.ts","sourceRoot":"","sources":["../../src/daemon/active-conversation-decisions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAO3D,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,MAAM,EAAE,UAAU,GAAG,YAAY,GAAG,QAAQ,CAAC;CAC9C;AAID,wBAAgB,4BAA4B,IAAI,MAAM,CAErD;AAkBD,wBAAgB,qCAAqC,CAAC,SAAS,EAAE,MAAM,GAAG,0BAA0B,EAAE,CASrG;AAED,wBAAgB,8CAA8C,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CA0BxF"}
@@ -1,7 +1,6 @@
1
1
  import { activeAttachmentEscrowDecisionsForSession } from './attachment-decision-escrow.js';
2
2
  import { decisionOwnerFromDecision, decisionOwnerLabel } from './decision-owner.js';
3
3
  import { activePostToolEscrowDecisionsForSession } from './posttool-decision-escrow.js';
4
- import { activePreToolEscrowDecisionsForSession } from './pretool-decision-escrow.js';
5
4
  import { sanitizeDecisionResourceLabel } from './conversation-decision-prompt.js';
6
5
  import { activeUserPromptEscrowDecisionsForSession } from './userprompt-decision-escrow.js';
7
6
  let decisionCreationSequence = 0;
@@ -20,8 +19,6 @@ function compareActiveDecision(left, right) {
20
19
  return a < b ? -1 : a > b ? 1 : 0;
21
20
  }
22
21
  function sourceLabel(source) {
23
- if (source === 'pretool')
24
- return 'PreTool';
25
22
  if (source === 'posttool')
26
23
  return 'PostTool';
27
24
  if (source === 'attachment')
@@ -30,7 +27,6 @@ function sourceLabel(source) {
30
27
  }
31
28
  export function activeConversationDecisionsForSession(sessionId) {
32
29
  return [
33
- ...activePreToolEscrowDecisionsForSession(sessionId).map((decision) => ({ decision, source: 'pretool' })),
34
30
  ...activePostToolEscrowDecisionsForSession(sessionId).map((decision) => ({ decision, source: 'posttool' })),
35
31
  ...activeAttachmentEscrowDecisionsForSession(sessionId).map((decision) => ({ decision, source: 'attachment' })),
36
32
  ...activeUserPromptEscrowDecisionsForSession(sessionId, 'prompt_input').map((decision) => ({
@@ -1 +1 @@
1
- {"version":3,"file":"active-conversation-decisions.js","sourceRoot":"","sources":["../../src/daemon/active-conversation-decisions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"active-conversation-decisions.js","sourceRoot":"","sources":["../../src/daemon/active-conversation-decisions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { CCPostToolPayload, CCPreToolPayload, CCSubagentStartPayload } from '../shared/types.js';
2
+ export interface AgentCallCorrelationRecord {
3
+ sessionId: string;
4
+ agentCallId: string;
5
+ toolUseId?: string;
6
+ agentId?: string;
7
+ agentType?: string;
8
+ createdAt: number;
9
+ }
10
+ export declare function recordAgentPreToolUse(payload: CCPreToolPayload): AgentCallCorrelationRecord | null;
11
+ export declare function bindSubagentStartToAgentCall(payload: CCSubagentStartPayload): AgentCallCorrelationRecord | null;
12
+ export declare function resolveAgentPostToolUse(payload: CCPostToolPayload): AgentCallCorrelationRecord | null;
13
+ export declare function findAgentCallForSubagent(params: {
14
+ sessionId: string;
15
+ agentId: string;
16
+ }): AgentCallCorrelationRecord | null;
17
+ export declare function resetAgentCallCorrelationForTests(): void;
18
+ export declare function clearAgentCallCorrelationForSession(sessionId: string): void;
19
+ //# sourceMappingURL=agent-call-correlation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-call-correlation.d.ts","sourceRoot":"","sources":["../../src/daemon/agent-call-correlation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAEtG,MAAM,WAAW,0BAA0B;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAUD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,gBAAgB,GAAG,0BAA0B,GAAG,IAAI,CAiBlG;AAED,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,sBAAsB,GAAG,0BAA0B,GAAG,IAAI,CAS/G;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,iBAAiB,GAAG,0BAA0B,GAAG,IAAI,CAerG;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,0BAA0B,GAAG,IAAI,CAIpC;AAED,wBAAgB,iCAAiC,IAAI,IAAI,CAGxD;AAED,wBAAgB,mCAAmC,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAM3E"}
@@ -0,0 +1,93 @@
1
+ import crypto from 'crypto';
2
+ const recordsBySession = new Map();
3
+ const recordsByToolUseId = new Map();
4
+ export function recordAgentPreToolUse(payload) {
5
+ if (payload.tool_name !== 'Agent')
6
+ return null;
7
+ const record = {
8
+ sessionId: payload.session_id,
9
+ agentCallId: `ac_${crypto.randomUUID()}`,
10
+ ...(payload.tool_use_id ? { toolUseId: payload.tool_use_id } : {}),
11
+ createdAt: Date.now(),
12
+ subagentBound: false,
13
+ postToolConsumed: false,
14
+ };
15
+ const sessionRecords = recordsBySession.get(payload.session_id) ?? [];
16
+ sessionRecords.push(record);
17
+ recordsBySession.set(payload.session_id, sessionRecords);
18
+ if (record.toolUseId)
19
+ recordsByToolUseId.set(toolUseKey(payload.session_id, record.toolUseId), record);
20
+ return publicRecord(record);
21
+ }
22
+ export function bindSubagentStartToAgentCall(payload) {
23
+ const record = (recordsBySession.get(payload.session_id) ?? [])
24
+ .find((candidate) => !candidate.subagentBound);
25
+ if (!record)
26
+ return null;
27
+ record.agentId = payload.agent_id;
28
+ if (payload.agent_type)
29
+ record.agentType = payload.agent_type;
30
+ record.subagentBound = true;
31
+ return publicRecord(record);
32
+ }
33
+ export function resolveAgentPostToolUse(payload) {
34
+ if (payload.tool_name !== 'Agent')
35
+ return null;
36
+ const byToolUseId = payload.tool_use_id
37
+ ? recordsByToolUseId.get(toolUseKey(payload.session_id, payload.tool_use_id))
38
+ : undefined;
39
+ const record = byToolUseId && !byToolUseId.postToolConsumed
40
+ ? byToolUseId
41
+ : oldestUnconsumedRecord(payload.session_id);
42
+ if (!record)
43
+ return null;
44
+ record.postToolConsumed = true;
45
+ const resolved = publicRecord(record);
46
+ removeRecord(record);
47
+ return resolved;
48
+ }
49
+ export function findAgentCallForSubagent(params) {
50
+ const record = (recordsBySession.get(params.sessionId) ?? [])
51
+ .find((candidate) => candidate.agentId === params.agentId);
52
+ return record ? publicRecord(record) : null;
53
+ }
54
+ export function resetAgentCallCorrelationForTests() {
55
+ recordsBySession.clear();
56
+ recordsByToolUseId.clear();
57
+ }
58
+ export function clearAgentCallCorrelationForSession(sessionId) {
59
+ const sessionRecords = recordsBySession.get(sessionId) ?? [];
60
+ for (const record of sessionRecords) {
61
+ if (record.toolUseId)
62
+ recordsByToolUseId.delete(toolUseKey(record.sessionId, record.toolUseId));
63
+ }
64
+ recordsBySession.delete(sessionId);
65
+ }
66
+ function oldestUnconsumedRecord(sessionId) {
67
+ return (recordsBySession.get(sessionId) ?? [])
68
+ .find((record) => !record.postToolConsumed) ?? null;
69
+ }
70
+ function toolUseKey(sessionId, toolUseId) {
71
+ return `${sessionId}\0${toolUseId}`;
72
+ }
73
+ function removeRecord(record) {
74
+ if (record.toolUseId)
75
+ recordsByToolUseId.delete(toolUseKey(record.sessionId, record.toolUseId));
76
+ const sessionRecords = recordsBySession.get(record.sessionId) ?? [];
77
+ const remainingRecords = sessionRecords.filter((candidate) => candidate !== record);
78
+ if (remainingRecords.length > 0)
79
+ recordsBySession.set(record.sessionId, remainingRecords);
80
+ else
81
+ recordsBySession.delete(record.sessionId);
82
+ }
83
+ function publicRecord(record) {
84
+ return {
85
+ sessionId: record.sessionId,
86
+ agentCallId: record.agentCallId,
87
+ ...(record.toolUseId ? { toolUseId: record.toolUseId } : {}),
88
+ ...(record.agentId ? { agentId: record.agentId } : {}),
89
+ ...(record.agentType ? { agentType: record.agentType } : {}),
90
+ createdAt: record.createdAt,
91
+ };
92
+ }
93
+ //# sourceMappingURL=agent-call-correlation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-call-correlation.js","sourceRoot":"","sources":["../../src/daemon/agent-call-correlation.ts"],"names":[],"mappings":"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"}
@@ -1,23 +1,12 @@
1
- import type { SessionData, Escalation, EscalationDecision, RouterOutcome, SessionState, UrlBlockDecision } from '../shared/types.js';
1
+ import type { SessionData, Escalation, EscalationDecision, RouterOutcome, SessionState } from '../shared/types.js';
2
2
  export declare function hasPending(session: SessionData): boolean;
3
3
  export declare function enqueue(session: SessionData, escalation: Escalation): RouterOutcome;
4
4
  export declare function formatDenyReason(escalation: Escalation, triggerExcerpt: string): string;
5
- export declare function formatUrlBlockDenyReason(escalation: Escalation): string;
6
5
  interface StateStore {
7
6
  transitionState: (sessionId: string, state: SessionState) => void;
8
7
  addToAllowlist: (sessionId: string, key: string, escalationId?: string) => void;
9
8
  addToBlocklist: (sessionId: string, key: string, escalationId?: string) => void;
10
9
  }
11
10
  export declare function applyDecision(session: SessionData, decision: EscalationDecision, stateStore: StateStore, escalationId?: string): Escalation | undefined;
12
- interface UrlBlockStateStore {
13
- addUrlAllowOnce: (sessionId: string, key: string) => void;
14
- addResourceToBlocklist: (sessionId: string, key: string, escalationId?: string) => void;
15
- addHostToUrlAllowlist: (host: string) => boolean;
16
- }
17
- export declare function applyUrlBlockDecision(session: SessionData, decision: UrlBlockDecision, stateStore: UrlBlockStateStore, escalationId?: string): {
18
- escalation: Escalation;
19
- decision: UrlBlockDecision;
20
- blockReason?: 'user_block' | 'malformed_url' | 'persist_failed';
21
- } | undefined;
22
11
  export {};
23
12
  //# sourceMappingURL=ask-dialog.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ask-dialog.d.ts","sourceRoot":"","sources":["../../src/daemon/ask-dialog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,gBAAgB,EACjB,MAAM,oBAAoB,CAAC;AAE5B,wBAAgB,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAExD;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,GAAG,aAAa,CAInF;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CA+BvF;AAED,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAqBvE;AAED,UAAU,UAAU;IAClB,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IAClE,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAChF,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CACjF;AAED,wBAAgB,aAAa,CAC3B,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,kBAAkB,EAC5B,UAAU,EAAE,UAAU,EACtB,YAAY,CAAC,EAAE,MAAM,GACpB,UAAU,GAAG,SAAS,CAwBxB;AAED,UAAU,kBAAkB;IAC1B,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1D,sBAAsB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACxF,qBAAqB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;CAClD;AAED,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,gBAAgB,EAC1B,UAAU,EAAE,kBAAkB,EAC9B,YAAY,CAAC,EAAE,MAAM,GACpB;IACD,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,WAAW,CAAC,EAAE,YAAY,GAAG,eAAe,GAAG,gBAAgB,CAAC;CACjE,GAAG,SAAS,CA2BZ"}
1
+ {"version":3,"file":"ask-dialog.d.ts","sourceRoot":"","sources":["../../src/daemon/ask-dialog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,aAAa,EACb,YAAY,EACb,MAAM,oBAAoB,CAAC;AAE5B,wBAAgB,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAExD;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,GAAG,aAAa,CAInF;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CA6BvF;AAED,UAAU,UAAU;IAClB,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IAClE,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAChF,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CACjF;AAED,wBAAgB,aAAa,CAC3B,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,kBAAkB,EAC5B,UAAU,EAAE,UAAU,EACtB,YAAY,CAAC,EAAE,MAAM,GACpB,UAAU,GAAG,SAAS,CAwBxB"}
@@ -7,8 +7,6 @@ export function enqueue(session, escalation) {
7
7
  return 'ESCALATE';
8
8
  }
9
9
  export function formatDenyReason(escalation, triggerExcerpt) {
10
- if (escalation.kind === 'url-block')
11
- return formatUrlBlockDenyReason(escalation);
12
10
  const excerpt = triggerExcerpt.slice(0, 120);
13
11
  const branchSummary = Object.entries(escalation.branches)
14
12
  .filter(([, v]) => v > 0)
@@ -37,26 +35,6 @@ export function formatDenyReason(escalation, triggerExcerpt) {
37
35
  .filter((line) => line !== '')
38
36
  .join('\n');
39
37
  }
40
- export function formatUrlBlockDenyReason(escalation) {
41
- const categories = escalation.vgeCategories && escalation.vgeCategories.length > 0
42
- ? escalation.vgeCategories.join(', ')
43
- : 'none';
44
- return [
45
- 'VGE Agent Guard: URL flagged before tool execution. Decide before continuing.',
46
- '',
47
- ` Tool: ${escalation.toolName}`,
48
- ` URL: ${escalation.url ?? '(unknown)'}`,
49
- ` Host: ${escalation.host ?? '(unknown)'}`,
50
- ` Reason: ${escalation.blockMessage ?? 'Vigil Guard classified this URL as unsafe.'}`,
51
- ` VGE: decision ${escalation.vgeDecision ?? escalation.routerOutcome}, signal ${escalation.vgeArbiterSignal ?? 'n/a'}, action ${escalation.vgeRuleAction ?? 'n/a'}, score ${escalation.vgeScore ?? 0}, categories: [${categories}]`,
52
- '',
53
- ' Reply:',
54
- ' block — keep this tool call blocked and block this exact URL',
55
- ' automatically for the rest of the session',
56
- ' allow once — allow this exact URL once, then ask again next time',
57
- ' session — allow + add this host to the persistent URL allowlist',
58
- ].join('\n');
59
- }
60
38
  export function applyDecision(session, decision, stateStore, escalationId) {
61
39
  const escalationIndex = escalationId === undefined
62
40
  ? 0
@@ -82,33 +60,4 @@ export function applyDecision(session, decision, stateStore, escalationId) {
82
60
  }
83
61
  return esc;
84
62
  }
85
- export function applyUrlBlockDecision(session, decision, stateStore, escalationId) {
86
- const escalationIndex = escalationId === undefined
87
- ? 0
88
- : session.pendingEscalations.findIndex((esc) => esc.escalationId === escalationId);
89
- if (escalationIndex < 0)
90
- return undefined;
91
- const [esc] = session.pendingEscalations.splice(escalationIndex, 1);
92
- if (!esc)
93
- return undefined;
94
- let effectiveDecision = decision;
95
- let blockReason = decision === 'block' ? 'user_block' : undefined;
96
- if (decision === 'block') {
97
- stateStore.addResourceToBlocklist(session.sessionId, esc.resourceId, esc.escalationId);
98
- }
99
- if (decision === 'allow_once') {
100
- stateStore.addUrlAllowOnce(session.sessionId, esc.resourceId);
101
- }
102
- else if (decision === 'allow_persist') {
103
- if (!esc.host) {
104
- effectiveDecision = 'block';
105
- blockReason = 'malformed_url';
106
- }
107
- else if (!stateStore.addHostToUrlAllowlist(esc.host)) {
108
- effectiveDecision = 'block';
109
- blockReason = 'persist_failed';
110
- }
111
- }
112
- return { escalation: esc, decision: effectiveDecision, blockReason };
113
- }
114
63
  //# sourceMappingURL=ask-dialog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ask-dialog.js","sourceRoot":"","sources":["../../src/daemon/ask-dialog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ask-dialog.js","sourceRoot":"","sources":["../../src/daemon/ask-dialog.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,UAAU,CAAC,OAAoB;IAC7C,OAAO,OAAO,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,OAAoB,EAAE,UAAsB;IAClE,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5C,OAAO,CAAC,eAAe,EAAE,CAAC;IAC1B,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,UAAsB,EAAE,cAAsB;IAC7E,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC7C,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC;SACtD,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;SACxB,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;SAC5B,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC;IAExB,OAAO;QACL,wEAAwE;QACxE,EAAE;QACF,eAAe,UAAU,CAAC,QAAQ,EAAE;QACpC,eAAe,UAAU,CAAC,UAAU,EAAE;QACtC,eAAe,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,aAAa,GAAG;QAC3G,OAAO,CAAC,CAAC,CAAC,mBAAmB,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE;QAC/C,EAAE;QACF,+DAA+D;QAC/D,4CAA4C;QAC5C,EAAE;QACF,UAAU;QACV,oEAAoE;QACpE,mDAAmD;QACnD,sEAAsE;QACtE,kCAAkC;QAClC,oEAAoE;QACpE,6DAA6D;QAC7D,gFAAgF;KACjF;SACE,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC;SAC7B,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAQD,MAAM,UAAU,aAAa,CAC3B,OAAoB,EACpB,QAA4B,EAC5B,UAAsB,EACtB,YAAqB;IAErB,MAAM,eAAe,GAAG,YAAY,KAAK,SAAS;QAChD,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,YAAY,CAAC,CAAC;IACrF,IAAI,eAAe,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAC1C,MAAM,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;IACpE,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAE3B,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,MAAM;YACT,MAAM;QACR,KAAK,SAAS;YACZ,8EAA8E;YAC9E,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;YAC/E,MAAM;QACR,KAAK,OAAO;YACV,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;YAC/E,MAAM;QACR,KAAK,YAAY;YACf,UAAU,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACzD,MAAM;IACV,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -21,6 +21,13 @@ export declare function logBlockingDecisionResolved(params: {
21
21
  }): void;
22
22
  export declare function logBlockingDecisionCapacityEvicted(decision: BlockingDecision): void;
23
23
  export declare function logBlockingDecisionDroppedOnRestart(decision: BlockingDecision): void;
24
+ export declare function logSnapshotPretoolUrlDecisionDropped(decision: {
25
+ decisionId?: unknown;
26
+ sessionId?: unknown;
27
+ kind?: unknown;
28
+ toolName?: unknown;
29
+ resourceId?: unknown;
30
+ }): void;
24
31
  export declare function logBlockingDecisionConflict(params: {
25
32
  decision: BlockingDecision;
26
33
  clientId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"audit-decisions.d.ts","sourceRoot":"","sources":["../../src/daemon/audit-decisions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAOvH,KAAK,UAAU,GACX,iBAAiB,GACjB,qBAAqB,GACrB,WAAW,GACX,iBAAiB,GACjB,gBAAgB,GAChB,mBAAmB,CAAC;AA8CxB,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,gBAAgB,EAC1B,MAAM,GAAE;IAAE,eAAe,CAAC,EAAE,iBAAiB,GAAG,iBAAiB,CAAA;CAAO,GACvE,IAAI,CASN;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAM3E;AAED,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAKhF;AAED,wBAAgB,gCAAgC,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAKjF;AAED,wBAAgB,kCAAkC,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAKnF;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE;IAClD,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,MAAM,EAAE,sBAAsB,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,aAAa,GAAG,kBAAkB,GAAG,YAAY,CAAC;IACpE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,eAAe,CAAC,EAAE,iBAAiB,GAAG,iBAAiB,CAAC;CACzD,GAAG,IAAI,CAwBP;AAED,wBAAgB,kCAAkC,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAenF;AAED,wBAAgB,mCAAmC,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAepF;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE;IAClD,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,sBAAsB,CAAC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,UAAU,CAAC;CACxB,GAAG,IAAI,CAWP;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE;IAChD,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,oBAAoB,CAAC;IACtC,cAAc,EAAE,MAAM,CAAC;CACxB,GAAG,IAAI,CAaP;AAED,UAAU,oBAAoB;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,iCAAiC,CAAC,MAAM,EAAE;IACxD,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,UAAU,CAAC;CACxB,GAAG,IAAI,CAaP"}
1
+ {"version":3,"file":"audit-decisions.d.ts","sourceRoot":"","sources":["../../src/daemon/audit-decisions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAOvH,KAAK,UAAU,GACX,iBAAiB,GACjB,qBAAqB,GACrB,WAAW,GACX,iBAAiB,GACjB,gBAAgB,GAChB,mBAAmB,CAAC;AA6CxB,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,gBAAgB,EAC1B,MAAM,GAAE;IAAE,eAAe,CAAC,EAAE,iBAAiB,GAAG,iBAAiB,CAAA;CAAO,GACvE,IAAI,CASN;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAM3E;AAED,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAKhF;AAED,wBAAgB,gCAAgC,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAKjF;AAED,wBAAgB,kCAAkC,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAKnF;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE;IAClD,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,MAAM,EAAE,sBAAsB,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,aAAa,GAAG,kBAAkB,GAAG,YAAY,CAAC;IACpE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,eAAe,CAAC,EAAE,iBAAiB,GAAG,iBAAiB,CAAC;CACzD,GAAG,IAAI,CAwBP;AAED,wBAAgB,kCAAkC,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAenF;AAED,wBAAgB,mCAAmC,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAepF;AAED,wBAAgB,oCAAoC,CAAC,QAAQ,EAAE;IAC7D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,GAAG,IAAI,CAUP;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE;IAClD,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,sBAAsB,CAAC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,UAAU,CAAC;CACxB,GAAG,IAAI,CAWP;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE;IAChD,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,oBAAoB,CAAC;IACtC,cAAc,EAAE,MAAM,CAAC;CACxB,GAAG,IAAI,CAaP;AAED,UAAU,oBAAoB;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,iCAAiC,CAAC,MAAM,EAAE;IACxD,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,UAAU,CAAC;CACxB,GAAG,IAAI,CAaP"}
@@ -1,8 +1,6 @@
1
1
  import { appendEvent } from '../shared/audit-writer.js';
2
2
  import { recordDecisionCreated, recordDecisionTerminal, } from './decision-metrics.js';
3
3
  function decisionStage(decision) {
4
- if (decision.kind === 'pretool_url')
5
- return 'pretool';
6
4
  if (decision.kind === 'posttool_output')
7
5
  return 'posttool';
8
6
  if (decision.kind === 'attachment_input')
@@ -135,6 +133,17 @@ export function logBlockingDecisionDroppedOnRestart(decision) {
135
133
  latency_ms: Date.now() - decision.createdAt,
136
134
  });
137
135
  }
136
+ export function logSnapshotPretoolUrlDecisionDropped(decision) {
137
+ appendEvent({
138
+ event_type: 'snapshot_pretool_url_decision_dropped',
139
+ decision_id: decision.decisionId,
140
+ session_id: decision.sessionId,
141
+ kind: decision.kind,
142
+ tool_name: decision.toolName,
143
+ resource_id: decision.resourceId,
144
+ reason: 'legacy_pretool_url_decision',
145
+ });
146
+ }
138
147
  export function logBlockingDecisionConflict(params) {
139
148
  appendEvent({
140
149
  event_type: 'blocking_decision_conflict',
@@ -1 +1 @@
1
- {"version":3,"file":"audit-decisions.js","sourceRoot":"","sources":["../../src/daemon/audit-decisions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"audit-decisions.js","sourceRoot":"","sources":["../../src/daemon/audit-decisions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAU/B,SAAS,aAAa,CAAC,QAA0B;IAC/C,IAAI,QAAQ,CAAC,IAAI,KAAK,iBAAiB;QAAE,OAAO,UAAU,CAAC;IAC3D,IAAI,QAAQ,CAAC,IAAI,KAAK,kBAAkB;QAAE,OAAO,YAAY,CAAC;IAC9D,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,eAAe,CAAC,QAA0B;IACjD,OAAO,QAAQ,CAAC,KAAK,EAAE,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;AAC3F,CAAC;AAED,SAAS,sBAAsB,CAAC,QAA0B;IACxD,OAAO;QACL,cAAc,EAAE,QAAQ,CAAC,UAAU;QACnC,WAAW,EAAE,QAAQ,CAAC,UAAU;QAChC,UAAU,EAAE,QAAQ,CAAC,SAAS;QAC9B,UAAU,EAAE,QAAQ,CAAC,KAAK,EAAE,IAAI,IAAI,SAAS;QAC7C,QAAQ,EAAE,eAAe,CAAC,QAAQ,CAAC;QACnC,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC;QAC9B,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,SAAS,EAAE,QAAQ,CAAC,QAAQ;QAC5B,WAAW,EAAE,QAAQ,CAAC,UAAU;QAChC,UAAU,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,IAAI,KAAK;QACxC,YAAY,EAAE,QAAQ,CAAC,GAAG,CAAC,QAAQ;QACnC,kBAAkB,EAAE,QAAQ,CAAC,GAAG,CAAC,aAAa,IAAI,IAAI;QACtD,eAAe,EAAE,QAAQ,CAAC,GAAG,CAAC,UAAU,IAAI,IAAI;QAChD,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK;QAC7B,cAAc,EAAE,QAAQ,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE;QAC7C,qBAAqB,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,KAAK,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;KACzF,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,OAA0D;IACtF,OAAO,OAAO,KAAK,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,qBAAqB,CAAC;AACnF,CAAC;AAED,SAAS,wBAAwB,CAAC,QAA0B;IAC1D,IAAI,QAAQ,CAAC,MAAM,KAAK,qBAAqB,IAAI,QAAQ,CAAC,MAAM,KAAK,wBAAwB,IAAI,QAAQ,CAAC,MAAM,KAAK,gBAAgB,EAAE,CAAC;QACtI,OAAO,eAAe,CAAC;IACzB,CAAC;IACD,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,KAAK,gBAAgB;QAAE,OAAO,wBAAwB,CAAC;IAC9E,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,QAA0B,EAC1B,SAAsE,EAAE;IAExE,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IAChC,WAAW,CAAC;QACV,UAAU,EAAE,2BAA2B;QACvC,GAAG,sBAAsB,CAAC,QAAQ,CAAC;QACnC,SAAS,EAAE,QAAQ,CAAC,QAAQ;QAC5B,UAAU,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;QACtD,gBAAgB,EAAE,MAAM,CAAC,eAAe,IAAI,IAAI;KACjD,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,QAA0B;IACnE,WAAW,CAAC;QACV,UAAU,EAAE,2BAA2B;QACvC,GAAG,sBAAsB,CAAC,QAAQ,CAAC;QACnC,SAAS,EAAE,QAAQ,CAAC,QAAQ;KAC7B,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,QAA0B;IACxE,WAAW,CAAC;QACV,UAAU,EAAE,iCAAiC;QAC7C,GAAG,sBAAsB,CAAC,QAAQ,CAAC;KACpC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,gCAAgC,CAAC,QAA0B;IACzE,WAAW,CAAC;QACV,UAAU,EAAE,kCAAkC;QAC9C,GAAG,sBAAsB,CAAC,QAAQ,CAAC;KACpC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,kCAAkC,CAAC,QAA0B;IAC3E,WAAW,CAAC;QACV,UAAU,EAAE,oCAAoC;QAChD,GAAG,sBAAsB,CAAC,QAAQ,CAAC;KACpC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,MAW3C;IACC,sBAAsB,CAAC;QACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;QAC/B,UAAU,EAAE,oBAAoB,CAAC,MAAM,CAAC,eAAe,CAAC;QACxD,SAAS,EAAE,MAAM,CAAC,SAAS;KAC5B,CAAC,CAAC;IACH,WAAW,CAAC;QACV,UAAU,EAAE,4BAA4B;QACxC,GAAG,sBAAsB,CAAC,MAAM,CAAC,QAAQ,CAAC;QAC1C,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;QAC/B,WAAW,EAAE,oBAAoB,CAAC,MAAM,CAAC,eAAe,CAAC;QACzD,cAAc,EAAE,eAAe;QAC/B,UAAU,EAAE,MAAM,CAAC,SAAS;QAC5B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,SAAS,EAAE,MAAM,CAAC,QAAQ;QAC1B,UAAU,EAAE,MAAM,CAAC,SAAS;QAC5B,gBAAgB,EAAE,MAAM,CAAC,eAAe,IAAI,IAAI;QAChD,iBAAiB,EAAE,MAAM,CAAC,eAAe,IAAI,IAAI;QACjD,YAAY,EAAE,MAAM,CAAC,WAAW,IAAI,IAAI;QACxC,kBAAkB,EAAE,MAAM,CAAC,gBAAgB,IAAI,IAAI;QACnD,iBAAiB,EAAE,MAAM,CAAC,eAAe,IAAI,IAAI;QACjD,oBAAoB,EAAE,MAAM,CAAC,kBAAkB,IAAI,IAAI;KACxD,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,kCAAkC,CAAC,QAA0B;IAC3E,sBAAsB,CAAC;QACrB,QAAQ;QACR,OAAO,EAAE,kBAAkB;QAC3B,UAAU,EAAE,mBAAmB;QAC/B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,SAAS;KAC3C,CAAC,CAAC;IACH,WAAW,CAAC;QACV,UAAU,EAAE,oCAAoC;QAChD,GAAG,sBAAsB,CAAC,QAAQ,CAAC;QACnC,OAAO,EAAE,kBAAkB;QAC3B,WAAW,EAAE,mBAAmB;QAChC,cAAc,EAAE,wBAAwB,CAAC,QAAQ,CAAC;QAClD,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,SAAS;KAC5C,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,mCAAmC,CAAC,QAA0B;IAC5E,sBAAsB,CAAC;QACrB,QAAQ;QACR,OAAO,EAAE,oBAAoB;QAC7B,UAAU,EAAE,gBAAgB;QAC5B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,SAAS;KAC3C,CAAC,CAAC;IACH,WAAW,CAAC;QACV,UAAU,EAAE,sCAAsC;QAClD,GAAG,sBAAsB,CAAC,QAAQ,CAAC;QACnC,OAAO,EAAE,oBAAoB;QAC7B,WAAW,EAAE,gBAAgB;QAC7B,cAAc,EAAE,wBAAwB,CAAC,QAAQ,CAAC;QAClD,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,SAAS;KAC5C,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,oCAAoC,CAAC,QAMpD;IACC,WAAW,CAAC;QACV,UAAU,EAAE,uCAAuC;QACnD,WAAW,EAAE,QAAQ,CAAC,UAAU;QAChC,UAAU,EAAE,QAAQ,CAAC,SAAS;QAC9B,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,SAAS,EAAE,QAAQ,CAAC,QAAQ;QAC5B,WAAW,EAAE,QAAQ,CAAC,UAAU;QAChC,MAAM,EAAE,6BAA6B;KACtC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,MAO3C;IACC,WAAW,CAAC;QACV,UAAU,EAAE,4BAA4B;QACxC,GAAG,sBAAsB,CAAC,MAAM,CAAC,QAAQ,CAAC;QAC1C,OAAO,EAAE,UAAU;QACnB,cAAc,EAAE,MAAM,CAAC,aAAa;QACpC,WAAW,EAAE,MAAM,CAAC,UAAU;QAC9B,SAAS,EAAE,MAAM,CAAC,QAAQ;QAC1B,eAAe,EAAE,MAAM,CAAC,MAAM;QAC9B,UAAU,EAAE,MAAM,CAAC,SAAS;KAC7B,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,MAMzC;IACC,WAAW,CAAC;QACV,UAAU,EAAE,2BAA2B;QACvC,cAAc,EAAE,MAAM,CAAC,aAAa;QACpC,gBAAgB,EAAE,MAAM,CAAC,cAAc;QACvC,cAAc,EAAE,MAAM,CAAC,aAAa;QACpC,iBAAiB,EAAE,MAAM,CAAC,eAAe,CAAC,QAAQ;QAClD,WAAW,EAAE,MAAM,CAAC,eAAe,CAAC,EAAE;QACtC,cAAc,EAAE,MAAM,CAAC,eAAe,CAAC,KAAK;QAC5C,oBAAoB,EAAE,MAAM,CAAC,eAAe,CAAC,UAAU;QACvD,uBAAuB,EAAE,MAAM,CAAC,eAAe,CAAC,aAAa;QAC7D,UAAU,EAAE,MAAM,CAAC,SAAS;KAC7B,CAAC,CAAC;AACL,CAAC;AAUD,MAAM,UAAU,iCAAiC,CAAC,MAGjD;IACC,WAAW,CAAC;QACV,UAAU,EAAE,mCAAmC;QAC/C,UAAU,EAAE,MAAM,CAAC,SAAS;QAC5B,aAAa,EAAE,MAAM,CAAC,UAAU,CAAC,YAAY;QAC7C,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,IAAI,aAAa;QAC7C,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ;QACrC,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC,UAAU;QACzC,YAAY,EAAE,MAAM,CAAC,UAAU,CAAC,WAAW,IAAI,IAAI;QACnD,kBAAkB,EAAE,MAAM,CAAC,UAAU,CAAC,gBAAgB,IAAI,IAAI;QAC9D,eAAe,EAAE,MAAM,CAAC,UAAU,CAAC,aAAa,IAAI,IAAI;QACxD,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,IAAI,IAAI;KAC9C,CAAC,CAAC;AACL,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import type { EscalationDecision, RouterOutcome } from '../shared/types.js';
2
2
  import type { AnalysisSourceKind } from './analysis-source.js';
3
3
  import type { SecurityFrameVariant } from './security-frame.js';
4
+ import type { SubagentQuarantineLedgerEntry, SubagentQuarantineStatus } from './subagent-quarantine-types.js';
4
5
  export type SynthesizedBy = 'vge' | 'sidecar_local_fallback' | 'user_decision' | 'policy_engine';
5
6
  export type PostToolKillReason = 'cc_contract_unhealthy' | 'pending_subagent_decision' | 'redaction_failed_invalid_shape' | 'unsupported_tool';
6
7
  export declare function logToolOutputEscalated(params: {
@@ -23,7 +24,7 @@ export declare function logToolOutputAnalyzed(params: {
23
24
  toolName: string;
24
25
  resourceId: string;
25
26
  escalationId?: string | null;
26
- userAllowlisted: boolean;
27
+ userApprovedResource: boolean;
27
28
  routerOutcome: RouterOutcome;
28
29
  enforcementTaken: 'none' | 'tainted' | 'escalated' | 'denied';
29
30
  analysisSource: AnalysisSourceKind;
@@ -74,6 +75,16 @@ export declare function logPostToolOutputRedacted(params: {
74
75
  originalHash: string;
75
76
  synthesizedBy: SynthesizedBy;
76
77
  }): void;
78
+ export declare function logPostToolOutputQuarantined(params: {
79
+ sessionId: string;
80
+ toolName: string;
81
+ resourceId: string;
82
+ decisionId: string;
83
+ routerOutcome: RouterOutcome;
84
+ originalSizeBytes: number;
85
+ originalHash: string;
86
+ blocksSession: boolean;
87
+ }): void;
77
88
  export declare function logPostToolKillTurn(params: {
78
89
  sessionId: string;
79
90
  toolName: string;
@@ -120,4 +131,63 @@ export declare function logPostToolPendingDecisionToolDenied(params: {
120
131
  toolName: string;
121
132
  reason: 'pending_posttool_decision' | 'read_replay_required';
122
133
  }): void;
134
+ export declare function logSubagentQuarantineLogged(params: {
135
+ entry: SubagentQuarantineLedgerEntry;
136
+ }): void;
137
+ export declare function logSubagentQuarantineResolved(params: {
138
+ sessionId: string;
139
+ agentId: string;
140
+ agentCallId?: string;
141
+ decisionId: string;
142
+ status: Exclude<SubagentQuarantineStatus, 'pending'>;
143
+ resolvedAt: string;
144
+ }): void;
145
+ export declare function logSubagentQuarantineNoticeInjected(params: {
146
+ sessionId: string;
147
+ agentId: string;
148
+ agentCallId: string;
149
+ entryCount: number;
150
+ noticeBytes: number;
151
+ }): void;
152
+ export declare function logSubagentQuarantineNoticeSkipped(params: {
153
+ sessionId: string;
154
+ agentId?: string;
155
+ agentCallId?: string;
156
+ reason: 'timeout' | 'empty_ledger' | 'correlation_missing' | 'not_agent_tool' | 'lock_timeout';
157
+ }): void;
158
+ export declare function logSubagentQuarantineNoticeDegraded(params: {
159
+ sessionId: string;
160
+ agentId: string;
161
+ agentCallId: string;
162
+ status: 'ledger_unavailable' | 'lock_timeout';
163
+ }): void;
164
+ export declare function logSubagentQuarantineUpdatePropagated(params: {
165
+ sessionId: string;
166
+ agentId: string;
167
+ propagatedCount: number;
168
+ }): void;
169
+ export declare function logSubagentQuarantineUpdateRecovered(params: {
170
+ sessionId: string;
171
+ agentId: string;
172
+ recoveredCount: number;
173
+ }): void;
174
+ export declare function logSubagentQuarantineLedgerRecovered(params: {
175
+ sessionId: string;
176
+ agentId: string;
177
+ recoveredEntries: number;
178
+ }): void;
179
+ export declare function logSubagentQuarantineLedgerUnavailable(params: {
180
+ sessionId: string;
181
+ agentId: string;
182
+ message?: string;
183
+ }): void;
184
+ export declare function logSubagentQuarantineLedgerInvalidLine(params: {
185
+ sessionId: string;
186
+ lineNumber: number;
187
+ }): void;
188
+ export declare function logSubagentQuarantineCorrelationMissing(params: {
189
+ sessionId: string;
190
+ toolUseId?: string;
191
+ reason: 'missing_tool_use_id' | 'missing_agent_call' | 'missing_agent_id' | 'ambiguous_fifo';
192
+ }): void;
123
193
  //# sourceMappingURL=audit-posttool.d.ts.map