clawsec 0.0.1 → 0.0.2

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 (146) hide show
  1. package/dist/src/actions/block.js +2 -2
  2. package/dist/src/actions/block.js.map +1 -1
  3. package/dist/src/actions/confirm.d.ts +1 -1
  4. package/dist/src/actions/confirm.d.ts.map +1 -1
  5. package/dist/src/actions/confirm.js +57 -26
  6. package/dist/src/actions/confirm.js.map +1 -1
  7. package/dist/src/actions/executor.d.ts +3 -1
  8. package/dist/src/actions/executor.d.ts.map +1 -1
  9. package/dist/src/actions/executor.js +48 -11
  10. package/dist/src/actions/executor.js.map +1 -1
  11. package/dist/src/actions/warn.js +2 -2
  12. package/dist/src/actions/warn.js.map +1 -1
  13. package/dist/src/approval/agent-confirm.d.ts +4 -0
  14. package/dist/src/approval/agent-confirm.d.ts.map +1 -1
  15. package/dist/src/approval/agent-confirm.js +14 -0
  16. package/dist/src/approval/agent-confirm.js.map +1 -1
  17. package/dist/src/approval/store.d.ts +4 -0
  18. package/dist/src/approval/store.d.ts.map +1 -1
  19. package/dist/src/approval/store.js +19 -0
  20. package/dist/src/approval/store.js.map +1 -1
  21. package/dist/src/config/loader.d.ts +7 -4
  22. package/dist/src/config/loader.d.ts.map +1 -1
  23. package/dist/src/config/loader.js +58 -27
  24. package/dist/src/config/loader.js.map +1 -1
  25. package/dist/src/config/schema.d.ts +60 -41
  26. package/dist/src/config/schema.d.ts.map +1 -1
  27. package/dist/src/config/schema.js +12 -0
  28. package/dist/src/config/schema.js.map +1 -1
  29. package/dist/src/config/template-loader.d.ts +34 -0
  30. package/dist/src/config/template-loader.d.ts.map +1 -0
  31. package/dist/src/config/template-loader.js +127 -0
  32. package/dist/src/config/template-loader.js.map +1 -0
  33. package/dist/src/detectors/destructive/cloud-detector.d.ts +10 -3
  34. package/dist/src/detectors/destructive/cloud-detector.d.ts.map +1 -1
  35. package/dist/src/detectors/destructive/cloud-detector.js +45 -5
  36. package/dist/src/detectors/destructive/cloud-detector.js.map +1 -1
  37. package/dist/src/detectors/destructive/code-detector.d.ts +9 -2
  38. package/dist/src/detectors/destructive/code-detector.d.ts.map +1 -1
  39. package/dist/src/detectors/destructive/code-detector.js +43 -4
  40. package/dist/src/detectors/destructive/code-detector.js.map +1 -1
  41. package/dist/src/detectors/destructive/index.d.ts +5 -3
  42. package/dist/src/detectors/destructive/index.d.ts.map +1 -1
  43. package/dist/src/detectors/destructive/index.js +42 -10
  44. package/dist/src/detectors/destructive/index.js.map +1 -1
  45. package/dist/src/detectors/destructive/shell-detector.d.ts +10 -3
  46. package/dist/src/detectors/destructive/shell-detector.d.ts.map +1 -1
  47. package/dist/src/detectors/destructive/shell-detector.js +44 -5
  48. package/dist/src/detectors/destructive/shell-detector.js.map +1 -1
  49. package/dist/src/detectors/destructive/types.d.ts +6 -0
  50. package/dist/src/detectors/destructive/types.d.ts.map +1 -1
  51. package/dist/src/detectors/exfiltration/cloud-detector.d.ts +3 -2
  52. package/dist/src/detectors/exfiltration/cloud-detector.d.ts.map +1 -1
  53. package/dist/src/detectors/exfiltration/cloud-detector.js +21 -3
  54. package/dist/src/detectors/exfiltration/cloud-detector.js.map +1 -1
  55. package/dist/src/detectors/exfiltration/http-detector.d.ts +3 -2
  56. package/dist/src/detectors/exfiltration/http-detector.d.ts.map +1 -1
  57. package/dist/src/detectors/exfiltration/http-detector.js +21 -3
  58. package/dist/src/detectors/exfiltration/http-detector.js.map +1 -1
  59. package/dist/src/detectors/exfiltration/index.d.ts +5 -3
  60. package/dist/src/detectors/exfiltration/index.d.ts.map +1 -1
  61. package/dist/src/detectors/exfiltration/index.js +44 -11
  62. package/dist/src/detectors/exfiltration/index.js.map +1 -1
  63. package/dist/src/detectors/exfiltration/network-detector.d.ts +3 -2
  64. package/dist/src/detectors/exfiltration/network-detector.d.ts.map +1 -1
  65. package/dist/src/detectors/exfiltration/network-detector.js +26 -8
  66. package/dist/src/detectors/exfiltration/network-detector.js.map +1 -1
  67. package/dist/src/detectors/exfiltration/types.d.ts +2 -0
  68. package/dist/src/detectors/exfiltration/types.d.ts.map +1 -1
  69. package/dist/src/detectors/purchase/domain-detector.d.ts +1 -1
  70. package/dist/src/detectors/purchase/domain-detector.d.ts.map +1 -1
  71. package/dist/src/detectors/purchase/domain-detector.js +1 -1
  72. package/dist/src/detectors/purchase/domain-detector.js.map +1 -1
  73. package/dist/src/detectors/purchase/form-detector.d.ts +2 -2
  74. package/dist/src/detectors/purchase/form-detector.d.ts.map +1 -1
  75. package/dist/src/detectors/purchase/form-detector.js +7 -4
  76. package/dist/src/detectors/purchase/form-detector.js.map +1 -1
  77. package/dist/src/detectors/purchase/index.d.ts +5 -3
  78. package/dist/src/detectors/purchase/index.d.ts.map +1 -1
  79. package/dist/src/detectors/purchase/index.js +35 -6
  80. package/dist/src/detectors/purchase/index.js.map +1 -1
  81. package/dist/src/detectors/purchase/spend-tracker.d.ts +6 -2
  82. package/dist/src/detectors/purchase/spend-tracker.d.ts.map +1 -1
  83. package/dist/src/detectors/purchase/spend-tracker.js +19 -3
  84. package/dist/src/detectors/purchase/spend-tracker.js.map +1 -1
  85. package/dist/src/detectors/purchase/url-detector.d.ts +2 -2
  86. package/dist/src/detectors/purchase/url-detector.d.ts.map +1 -1
  87. package/dist/src/detectors/purchase/url-detector.js +3 -3
  88. package/dist/src/detectors/purchase/url-detector.js.map +1 -1
  89. package/dist/src/detectors/secrets/api-key-detector.d.ts +6 -6
  90. package/dist/src/detectors/secrets/api-key-detector.d.ts.map +1 -1
  91. package/dist/src/detectors/secrets/api-key-detector.js +33 -7
  92. package/dist/src/detectors/secrets/api-key-detector.js.map +1 -1
  93. package/dist/src/detectors/secrets/index.d.ts +5 -3
  94. package/dist/src/detectors/secrets/index.d.ts.map +1 -1
  95. package/dist/src/detectors/secrets/index.js +52 -11
  96. package/dist/src/detectors/secrets/index.js.map +1 -1
  97. package/dist/src/detectors/secrets/pii-detector.d.ts +2 -2
  98. package/dist/src/detectors/secrets/pii-detector.d.ts.map +1 -1
  99. package/dist/src/detectors/secrets/pii-detector.js +3 -3
  100. package/dist/src/detectors/secrets/pii-detector.js.map +1 -1
  101. package/dist/src/detectors/secrets/token-detector.d.ts +2 -2
  102. package/dist/src/detectors/secrets/token-detector.d.ts.map +1 -1
  103. package/dist/src/detectors/secrets/token-detector.js +3 -3
  104. package/dist/src/detectors/secrets/token-detector.js.map +1 -1
  105. package/dist/src/detectors/secrets/types.d.ts +5 -3
  106. package/dist/src/detectors/secrets/types.d.ts.map +1 -1
  107. package/dist/src/detectors/website/index.d.ts +5 -3
  108. package/dist/src/detectors/website/index.d.ts.map +1 -1
  109. package/dist/src/detectors/website/index.js +21 -6
  110. package/dist/src/detectors/website/index.js.map +1 -1
  111. package/dist/src/engine/analyzer.d.ts +3 -1
  112. package/dist/src/engine/analyzer.d.ts.map +1 -1
  113. package/dist/src/engine/analyzer.js +66 -10
  114. package/dist/src/engine/analyzer.js.map +1 -1
  115. package/dist/src/engine/types.d.ts +4 -1
  116. package/dist/src/engine/types.d.ts.map +1 -1
  117. package/dist/src/engine/types.js.map +1 -1
  118. package/dist/src/hooks/before-agent-start/handler.d.ts +3 -1
  119. package/dist/src/hooks/before-agent-start/handler.d.ts.map +1 -1
  120. package/dist/src/hooks/before-agent-start/handler.js +59 -12
  121. package/dist/src/hooks/before-agent-start/handler.js.map +1 -1
  122. package/dist/src/hooks/before-tool-call/handler.d.ts +3 -1
  123. package/dist/src/hooks/before-tool-call/handler.d.ts.map +1 -1
  124. package/dist/src/hooks/before-tool-call/handler.js +86 -54
  125. package/dist/src/hooks/before-tool-call/handler.js.map +1 -1
  126. package/dist/src/hooks/tool-result-persist/handler.d.ts +3 -1
  127. package/dist/src/hooks/tool-result-persist/handler.d.ts.map +1 -1
  128. package/dist/src/hooks/tool-result-persist/handler.js +36 -34
  129. package/dist/src/hooks/tool-result-persist/handler.js.map +1 -1
  130. package/dist/src/index.d.ts +45 -47
  131. package/dist/src/index.d.ts.map +1 -1
  132. package/dist/src/index.js +120 -96
  133. package/dist/src/index.js.map +1 -1
  134. package/dist/src/notifications/index.d.ts.map +1 -1
  135. package/dist/src/notifications/index.js +2 -1
  136. package/dist/src/notifications/index.js.map +1 -1
  137. package/dist/src/notifications/telegram.js +1 -1
  138. package/dist/src/notifications/telegram.js.map +1 -1
  139. package/dist/src/notifications/types.d.ts +1 -1
  140. package/dist/src/notifications/types.d.ts.map +1 -1
  141. package/dist/src/utils/logger.d.ts +26 -0
  142. package/dist/src/utils/logger.d.ts.map +1 -0
  143. package/dist/src/utils/logger.js +76 -0
  144. package/dist/src/utils/logger.js.map +1 -0
  145. package/openclaw.plugin.json +7 -22
  146. package/package.json +8 -2
@@ -29,12 +29,12 @@ export function generateBlockMessage(context) {
29
29
  const { analysis, toolCall } = context;
30
30
  const { primaryDetection, detections } = analysis;
31
31
  if (!primaryDetection) {
32
- return `Action blocked: ${toolCall.toolName} was blocked by security policy.`;
32
+ return `Blocked by ClawSec: ${toolCall.toolName} was blocked by security policy.`;
33
33
  }
34
34
  const category = formatCategory(primaryDetection.category);
35
35
  const severity = formatSeverity(primaryDetection.severity);
36
36
  const reason = primaryDetection.reason;
37
- let message = `[${severity}] ${category} detected - Action blocked\n`;
37
+ let message = `Blocked by ClawSec: [${severity}] ${category} detected\n`;
38
38
  message += `Tool: ${toolCall.toolName}\n`;
39
39
  message += `Reason: ${reason}`;
40
40
  // Include additional detections if any
@@ -1 +1 @@
1
- {"version":3,"file":"block.js","sourceRoot":"","sources":["../../../src/actions/block.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC;;GAEG;AACH,SAAS,cAAc,CAAC,QAAgB;IACtC,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,QAAgB;IACtC,MAAM,aAAa,GAA2B;QAC5C,QAAQ,EAAE,kBAAkB;QAC5B,OAAO,EAAE,mBAAmB;QAC5B,WAAW,EAAE,qBAAqB;QAClC,OAAO,EAAE,sBAAsB;QAC/B,YAAY,EAAE,mBAAmB;KAClC,CAAC;IACF,OAAO,aAAa,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAsB;IACzD,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IACvC,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC;IAElD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,OAAO,mBAAmB,QAAQ,CAAC,QAAQ,kCAAkC,CAAC;IAChF,CAAC;IAED,MAAM,QAAQ,GAAG,cAAc,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,cAAc,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC;IAEvC,IAAI,OAAO,GAAG,IAAI,QAAQ,KAAK,QAAQ,8BAA8B,CAAC;IACtE,OAAO,IAAI,SAAS,QAAQ,CAAC,QAAQ,IAAI,CAAC;IAC1C,OAAO,IAAI,WAAW,MAAM,EAAE,CAAC;IAE/B,uCAAuC;IACvC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,IAAI,8BAA8B,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC;QACnE,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,IAAI,SAAS,KAAK,gBAAgB,EAAE,CAAC;gBACnC,OAAO,IAAI,OAAO,cAAc,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,SAAS,CAAC,MAAM,EAAE,CAAC;YAC9E,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,YAAY;IACf,MAAM,CAAe;IAE7B,YAAY,SAAuB,UAAU;QAC3C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAsB;QAClC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;QACvC,MAAM,OAAO,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAE9C,sBAAsB;QACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE;YACjC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,QAAQ,EAAE,QAAQ,CAAC,gBAAgB,EAAE,QAAQ;YAC7C,QAAQ,EAAE,QAAQ,CAAC,gBAAgB,EAAE,QAAQ;YAC7C,MAAM,EAAE,QAAQ,CAAC,gBAAgB,EAAE,MAAM;YACzC,cAAc,EAAE,QAAQ,CAAC,UAAU,CAAC,MAAM;SAC3C,CAAC,CAAC;QAEH,OAAO;YACL,OAAO,EAAE,KAAK;YACd,OAAO;YACP,MAAM,EAAE,IAAI;SACb,CAAC;IACJ,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAqB;IACtD,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;AAClC,CAAC"}
1
+ {"version":3,"file":"block.js","sourceRoot":"","sources":["../../../src/actions/block.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC;;GAEG;AACH,SAAS,cAAc,CAAC,QAAgB;IACtC,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,QAAgB;IACtC,MAAM,aAAa,GAA2B;QAC5C,QAAQ,EAAE,kBAAkB;QAC5B,OAAO,EAAE,mBAAmB;QAC5B,WAAW,EAAE,qBAAqB;QAClC,OAAO,EAAE,sBAAsB;QAC/B,YAAY,EAAE,mBAAmB;KAClC,CAAC;IACF,OAAO,aAAa,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAsB;IACzD,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IACvC,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC;IAElD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,OAAO,uBAAuB,QAAQ,CAAC,QAAQ,kCAAkC,CAAC;IACpF,CAAC;IAED,MAAM,QAAQ,GAAG,cAAc,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,cAAc,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC;IAEvC,IAAI,OAAO,GAAG,wBAAwB,QAAQ,KAAK,QAAQ,aAAa,CAAC;IACzE,OAAO,IAAI,SAAS,QAAQ,CAAC,QAAQ,IAAI,CAAC;IAC1C,OAAO,IAAI,WAAW,MAAM,EAAE,CAAC;IAE/B,uCAAuC;IACvC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,IAAI,8BAA8B,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC;QACnE,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,IAAI,SAAS,KAAK,gBAAgB,EAAE,CAAC;gBACnC,OAAO,IAAI,OAAO,cAAc,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,SAAS,CAAC,MAAM,EAAE,CAAC;YAC9E,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,YAAY;IACf,MAAM,CAAe;IAE7B,YAAY,SAAuB,UAAU;QAC3C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAsB;QAClC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;QACvC,MAAM,OAAO,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAE9C,sBAAsB;QACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE;YACjC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,QAAQ,EAAE,QAAQ,CAAC,gBAAgB,EAAE,QAAQ;YAC7C,QAAQ,EAAE,QAAQ,CAAC,gBAAgB,EAAE,QAAQ;YAC7C,MAAM,EAAE,QAAQ,CAAC,gBAAgB,EAAE,MAAM;YACzC,cAAc,EAAE,QAAQ,CAAC,UAAU,CAAC,MAAM;SAC3C,CAAC,CAAC;QAEH,OAAO;YACL,OAAO,EAAE,KAAK;YACd,OAAO;YACP,MAAM,EAAE,IAAI;SACb,CAAC;IACJ,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAqB;IACtD,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;AAClC,CAAC"}
@@ -2,7 +2,7 @@
2
2
  * Confirm Action Handler
3
3
  * Handles requesting approval for potentially risky tool calls
4
4
  */
5
- import type { ActionContext, ActionHandler, ActionResult, ActionLogger, ApprovalMethod, PendingApproval } from './types.js';
5
+ import type { ActionContext, ActionHandler, ActionResult, ActionLogger, ApprovalMethod, PendingApproval } from "./types.js";
6
6
  /**
7
7
  * Generate a UUID v4
8
8
  * Uses crypto.randomUUID if available, falls back to manual implementation
@@ -1 +1 @@
1
- {"version":3,"file":"confirm.d.ts","sourceRoot":"","sources":["../../../src/actions/confirm.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAG5H;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAY3C;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,aAAa,GAAG,cAAc,EAAE,CAoBlF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAKjE;AA6CD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,eAAe,GAAG,MAAM,CAuBhG;AAED;;GAEG;AACH,qBAAa,cAAe,YAAW,aAAa;IAClD,OAAO,CAAC,MAAM,CAAe;gBAEjB,MAAM,GAAE,YAAyB;IAIvC,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;CAsC7D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,cAAc,CAE1E"}
1
+ {"version":3,"file":"confirm.d.ts","sourceRoot":"","sources":["../../../src/actions/confirm.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,eAAe,EAChB,MAAM,YAAY,CAAC;AAKpB;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAY3C;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,aAAa,GACrB,cAAc,EAAE,CAoBlB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAKjE;AAoDD;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,eAAe,GACxB,MAAM,CA2BR;AAED;;GAEG;AACH,qBAAa,cAAe,YAAW,aAAa;IAClD,OAAO,CAAC,MAAM,CAAe;gBAEjB,MAAM,GAAE,YAAyB;IAIvC,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;CAoE7D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,cAAc,CAE1E"}
@@ -2,20 +2,21 @@
2
2
  * Confirm Action Handler
3
3
  * Handles requesting approval for potentially risky tool calls
4
4
  */
5
- import { noOpLogger } from './types.js';
5
+ import { noOpLogger } from "./types.js";
6
+ import { getDefaultApprovalStore } from "../approval/store.js";
6
7
  /**
7
8
  * Generate a UUID v4
8
9
  * Uses crypto.randomUUID if available, falls back to manual implementation
9
10
  */
10
11
  export function generateApprovalId() {
11
12
  // Use native crypto if available (Node.js 16+, modern browsers)
12
- if (typeof crypto !== 'undefined' && crypto.randomUUID) {
13
+ if (typeof crypto !== "undefined" && crypto.randomUUID) {
13
14
  return crypto.randomUUID();
14
15
  }
15
16
  // Fallback implementation
16
- return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {
17
+ return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
17
18
  const r = (Math.random() * 16) | 0;
18
- const v = c === 'x' ? r : (r & 0x3) | 0x8;
19
+ const v = c === "x" ? r : (r & 0x3) | 0x8;
19
20
  return v.toString(16);
20
21
  });
21
22
  }
@@ -27,15 +28,15 @@ export function getEnabledApprovalMethods(context) {
27
28
  const methods = [];
28
29
  // Check native approval
29
30
  if (config.approval?.native?.enabled !== false) {
30
- methods.push('native');
31
+ methods.push("native");
31
32
  }
32
33
  // Check agent-confirm
33
34
  if (config.approval?.agentConfirm?.enabled !== false) {
34
- methods.push('agent-confirm');
35
+ methods.push("agent-confirm");
35
36
  }
36
37
  // Check webhook (only if URL is configured)
37
38
  if (config.approval?.webhook?.enabled && config.approval.webhook.url) {
38
- methods.push('webhook');
39
+ methods.push("webhook");
39
40
  }
40
41
  return methods;
41
42
  }
@@ -58,11 +59,12 @@ function formatSeverity(severity) {
58
59
  */
59
60
  function formatCategory(category) {
60
61
  const categoryNames = {
61
- purchase: 'Purchase/Payment',
62
- website: 'Website Access',
63
- destructive: 'Destructive Command',
64
- secrets: 'Secrets/PII',
65
- exfiltration: 'Data Transfer',
62
+ purchase: "Purchase/Payment",
63
+ website: "Website Access",
64
+ destructive: "Destructive Command",
65
+ secrets: "Secrets/PII",
66
+ exfiltration: "Data Transfer",
67
+ unknown: "Manual Approval",
66
68
  };
67
69
  return categoryNames[category] || category;
68
70
  }
@@ -71,17 +73,18 @@ function formatCategory(category) {
71
73
  */
72
74
  function generateApprovalInstructions(methods, approvalId, context) {
73
75
  const instructions = [];
74
- if (methods.includes('native')) {
75
- instructions.push(` - Type: /approve ${approvalId}`);
76
- }
77
- if (methods.includes('agent-confirm')) {
78
- const paramName = context.config.approval?.agentConfirm?.parameterName ?? '_clawsec_confirm';
76
+ // if (methods.includes('native')) {
77
+ // instructions.push(` - Type: /approve ${approvalId}`);
78
+ // }
79
+ if (methods.includes("agent-confirm")) {
80
+ const paramName = context.config.approval?.agentConfirm?.parameterName ??
81
+ "_clawsec_confirm";
79
82
  instructions.push(` - Retry with parameter: ${paramName}="${approvalId}"`);
80
83
  }
81
- if (methods.includes('webhook')) {
82
- instructions.push(` - Webhook approval is enabled (external system will be notified)`);
83
- }
84
- return instructions.join('\n');
84
+ // if (methods.includes('webhook')) {
85
+ // instructions.push(` - Webhook approval is enabled (external system will be notified)`);
86
+ // }
87
+ return instructions.join("\n");
85
88
  }
86
89
  /**
87
90
  * Generate a message explaining the confirmation requirement
@@ -89,21 +92,21 @@ function generateApprovalInstructions(methods, approvalId, context) {
89
92
  export function generateConfirmMessage(context, approval) {
90
93
  const { analysis, toolCall } = context;
91
94
  const { primaryDetection } = analysis;
92
- let message = '';
95
+ let message = "";
93
96
  if (primaryDetection) {
94
97
  const category = formatCategory(primaryDetection.category);
95
98
  const severity = formatSeverity(primaryDetection.severity);
96
- message = `[${severity}] ${category} requires approval\n`;
99
+ message = `ClawSec Protection: [${severity}] ${category} requires approval\n`;
97
100
  message += `Tool: ${toolCall.toolName}\n`;
98
101
  message += `Reason: ${primaryDetection.reason}\n\n`;
99
102
  }
100
103
  else {
101
- message = `Action requires approval\n`;
104
+ message = `ClawSec Protection: Action requires approval\n`;
102
105
  message += `Tool: ${toolCall.toolName}\n\n`;
103
106
  }
104
107
  message += `Approval ID: ${approval.id}\n`;
105
108
  message += `Timeout: ${approval.timeout} seconds\n\n`;
106
- message += `To approve, use one of the following methods:\n`;
109
+ message += `To approve:\n`;
107
110
  message += generateApprovalInstructions(approval.methods, approval.id, context);
108
111
  return message;
109
112
  }
@@ -123,6 +126,34 @@ export class ConfirmHandler {
123
126
  const methods = getEnabledApprovalMethods(context);
124
127
  // Get timeout
125
128
  const timeout = getApprovalTimeout(context);
129
+ // Create full approval record for storage
130
+ const now = Date.now();
131
+ const approvalInput = {
132
+ id: approvalId,
133
+ createdAt: now,
134
+ expiresAt: now + timeout * 1000,
135
+ detection: analysis.primaryDetection
136
+ ? {
137
+ category: analysis.primaryDetection.category,
138
+ severity: analysis.primaryDetection.severity,
139
+ confidence: analysis.primaryDetection.confidence,
140
+ reason: analysis.primaryDetection.reason,
141
+ }
142
+ : {
143
+ category: "unknown", // No specific threat detected - manual approval
144
+ severity: "medium",
145
+ confidence: 0.5,
146
+ reason: "Manual approval required",
147
+ },
148
+ toolCall: {
149
+ toolName: toolCall.toolName,
150
+ toolInput: toolCall.toolInput || {},
151
+ },
152
+ };
153
+ // Store the approval record
154
+ const store = getDefaultApprovalStore();
155
+ store.add(approvalInput);
156
+ // Create lightweight object for ActionResult
126
157
  const pendingApproval = {
127
158
  id: approvalId,
128
159
  timeout,
@@ -130,7 +161,7 @@ export class ConfirmHandler {
130
161
  };
131
162
  const message = generateConfirmMessage(context, pendingApproval);
132
163
  // Log the confirmation request
133
- this.logger.info('Action requires approval', {
164
+ this.logger.info("Action requires approval", {
134
165
  toolName: toolCall.toolName,
135
166
  approvalId,
136
167
  category: analysis.primaryDetection?.category,
@@ -1 +1 @@
1
- {"version":3,"file":"confirm.js","sourceRoot":"","sources":["../../../src/actions/confirm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"confirm.js","sourceRoot":"","sources":["../../../src/actions/confirm.ts"],"names":[],"mappings":"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"}
@@ -3,12 +3,13 @@
3
3
  * Main executor that routes to appropriate action handlers based on analysis results
4
4
  */
5
5
  import type { ActionContext, ActionExecutor, ActionResult, ActionLogger, ActionHandler } from './types.js';
6
+ import { type Logger } from '../utils/logger.js';
6
7
  /**
7
8
  * Configuration for the action executor
8
9
  */
9
10
  export interface ExecutorConfig {
10
11
  /** Logger to use for action logging */
11
- logger?: ActionLogger;
12
+ logger?: ActionLogger | Logger;
12
13
  /** Custom block handler */
13
14
  blockHandler?: ActionHandler;
14
15
  /** Custom confirm handler */
@@ -23,6 +24,7 @@ export interface ExecutorConfig {
23
24
  */
24
25
  export declare class DefaultActionExecutor implements ActionExecutor {
25
26
  private logger;
27
+ private actionLogger;
26
28
  private blockHandler;
27
29
  private confirmHandler;
28
30
  private warnHandler;
@@ -1 +1 @@
1
- {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/actions/executor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAO3G;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,uCAAuC;IACvC,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,2BAA2B;IAC3B,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,6BAA6B;IAC7B,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,0BAA0B;IAC1B,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B,yBAAyB;IACzB,UAAU,CAAC,EAAE,aAAa,CAAC;CAC5B;AAED;;GAEG;AACH,qBAAa,qBAAsB,YAAW,cAAc;IAC1D,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,UAAU,CAAgB;gBAEtB,MAAM,GAAE,cAAmB;IAQvC;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAsC5D;;OAEG;YACW,WAAW;IAWzB;;OAEG;YACW,WAAW;IAIzB;;OAEG;YACW,aAAa;IAI3B;;OAEG;YACW,UAAU;IAIxB;;OAEG;YACW,SAAS;CAGxB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,cAAc,CAE5E;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,GAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAgB,GAAG,cAAc,CAGlH"}
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/actions/executor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAM3G,OAAO,EAAoC,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEnF;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,uCAAuC;IACvC,MAAM,CAAC,EAAE,YAAY,GAAG,MAAM,CAAC;IAC/B,2BAA2B;IAC3B,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,6BAA6B;IAC7B,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,0BAA0B;IAC1B,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B,yBAAyB;IACzB,UAAU,CAAC,EAAE,aAAa,CAAC;CAC5B;AAED;;GAEG;AACH,qBAAa,qBAAsB,YAAW,cAAc;IAC1D,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,UAAU,CAAgB;gBAEtB,MAAM,GAAE,cAAmB;IAiCvC;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAoD5D;;OAEG;YACW,WAAW;IAWzB;;OAEG;YACW,WAAW;IAIzB;;OAEG;YACW,aAAa;IAI3B;;OAEG;YACW,UAAU;IAIxB;;OAEG;YACW,SAAS;CAGxB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,cAAc,CAE5E;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,GAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAgB,GAAG,cAAc,CAGlH"}
@@ -7,21 +7,47 @@ import { createBlockHandler } from './block.js';
7
7
  import { createConfirmHandler } from './confirm.js';
8
8
  import { createWarnHandler } from './warn.js';
9
9
  import { createLogHandler } from './log.js';
10
+ import { createLogger as createUtilLogger } from '../utils/logger.js';
10
11
  /**
11
12
  * Default action executor implementation
12
13
  */
13
14
  export class DefaultActionExecutor {
14
15
  logger;
16
+ actionLogger;
15
17
  blockHandler;
16
18
  confirmHandler;
17
19
  warnHandler;
18
20
  logHandler;
19
21
  constructor(config = {}) {
20
- this.logger = config.logger ?? noOpLogger;
21
- this.blockHandler = config.blockHandler ?? createBlockHandler(this.logger);
22
- this.confirmHandler = config.confirmHandler ?? createConfirmHandler(this.logger);
23
- this.warnHandler = config.warnHandler ?? createWarnHandler(this.logger);
24
- this.logHandler = config.logHandler ?? createLogHandler(this.logger);
22
+ // Accept both Logger and ActionLogger types
23
+ const providedLogger = config.logger;
24
+ // If logger is provided and has the Logger interface, use it for internal logging
25
+ this.logger = providedLogger && 'debug' in providedLogger
26
+ ? providedLogger
27
+ : createUtilLogger(null, null);
28
+ // For action handlers, adapt Logger to ActionLogger if needed
29
+ if (providedLogger && 'debug' in providedLogger) {
30
+ // It's a Logger - create ActionLogger adapter
31
+ const logger = providedLogger;
32
+ this.actionLogger = {
33
+ debug: (msg, context) => logger.debug(msg, context),
34
+ warn: (msg, context) => logger.warn(msg, context),
35
+ info: (msg, context) => logger.info(msg, context),
36
+ error: (msg, context) => logger.error(msg, context),
37
+ };
38
+ }
39
+ else if (providedLogger) {
40
+ // It's already an ActionLogger
41
+ this.actionLogger = providedLogger;
42
+ }
43
+ else {
44
+ // No logger provided
45
+ this.actionLogger = noOpLogger;
46
+ }
47
+ this.blockHandler = config.blockHandler ?? createBlockHandler(this.actionLogger);
48
+ this.confirmHandler = config.confirmHandler ?? createConfirmHandler(this.actionLogger);
49
+ this.warnHandler = config.warnHandler ?? createWarnHandler(this.actionLogger);
50
+ this.logHandler = config.logHandler ?? createLogHandler(this.actionLogger);
25
51
  }
26
52
  /**
27
53
  * Execute the appropriate action based on analysis result
@@ -29,37 +55,48 @@ export class DefaultActionExecutor {
29
55
  async execute(context) {
30
56
  const { analysis, config } = context;
31
57
  const action = analysis.action;
58
+ this.logger.debug(`[Executor] Entry: action=${action}, detections=${analysis.detections.length}`);
32
59
  // Check if the plugin is disabled
33
60
  if (config.global?.enabled === false) {
34
61
  this.logger.debug('Plugin disabled, allowing action');
62
+ this.logger.debug(`[Executor] Exit: plugin disabled, allowing`);
35
63
  return {
36
64
  allowed: true,
37
65
  logged: false,
38
66
  };
39
67
  }
40
68
  // Route to appropriate handler based on action
69
+ this.logger.debug(`[Executor] Routing to ${action} handler`);
70
+ let result;
41
71
  switch (action) {
42
72
  case 'allow':
43
- return this.handleAllow(context);
73
+ result = await this.handleAllow(context);
74
+ break;
44
75
  case 'block':
45
- return this.handleBlock(context);
76
+ result = await this.handleBlock(context);
77
+ break;
46
78
  case 'confirm':
47
- return this.handleConfirm(context);
79
+ result = await this.handleConfirm(context);
80
+ break;
48
81
  case 'warn':
49
- return this.handleWarn(context);
82
+ result = await this.handleWarn(context);
83
+ break;
50
84
  case 'log':
51
- return this.handleLog(context);
85
+ result = await this.handleLog(context);
86
+ break;
52
87
  default:
53
88
  // Unknown action, log and allow as a safety measure
54
89
  this.logger.warn('Unknown action type, defaulting to allow', {
55
90
  action: action,
56
91
  });
57
- return {
92
+ result = {
58
93
  allowed: true,
59
94
  message: `Unknown action type: ${action}`,
60
95
  logged: true,
61
96
  };
62
97
  }
98
+ this.logger.debug(`[Executor] Exit: action=${action}, allowed=${result.allowed}`);
99
+ return result;
63
100
  }
64
101
  /**
65
102
  * Handle allow action - no detection, pass through
@@ -1 +1 @@
1
- {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../src/actions/executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../src/actions/executor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,YAAY,IAAI,gBAAgB,EAAe,MAAM,oBAAoB,CAAC;AAkBnF;;GAEG;AACH,MAAM,OAAO,qBAAqB;IACxB,MAAM,CAAS;IACf,YAAY,CAAe;IAC3B,YAAY,CAAgB;IAC5B,cAAc,CAAgB;IAC9B,WAAW,CAAgB;IAC3B,UAAU,CAAgB;IAElC,YAAY,SAAyB,EAAE;QACrC,4CAA4C;QAC5C,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC;QAErC,kFAAkF;QAClF,IAAI,CAAC,MAAM,GAAG,cAAc,IAAI,OAAO,IAAI,cAAc;YACvD,CAAC,CAAE,cAAyB;YAC5B,CAAC,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAEjC,8DAA8D;QAC9D,IAAI,cAAc,IAAI,OAAO,IAAI,cAAc,EAAE,CAAC;YAChD,8CAA8C;YAC9C,MAAM,MAAM,GAAG,cAAwB,CAAC;YACxC,IAAI,CAAC,YAAY,GAAG;gBAClB,KAAK,EAAE,CAAC,GAAW,EAAE,OAAiC,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC;gBACrF,IAAI,EAAE,CAAC,GAAW,EAAE,OAAiC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC;gBACnF,IAAI,EAAE,CAAC,GAAW,EAAE,OAAiC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC;gBACnF,KAAK,EAAE,CAAC,GAAW,EAAE,OAAiC,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC;aACtF,CAAC;QACJ,CAAC;aAAM,IAAI,cAAc,EAAE,CAAC;YAC1B,+BAA+B;YAC/B,IAAI,CAAC,YAAY,GAAG,cAA8B,CAAC;QACrD,CAAC;aAAM,CAAC;YACN,qBAAqB;YACrB,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC;QACjC,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACjF,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,IAAI,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACvF,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC9E,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC7E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,OAAsB;QAClC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QACrC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;QAE/B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,MAAM,gBAAgB,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;QAElG,kCAAkC;QAClC,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,KAAK,KAAK,EAAE,CAAC;YACrC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;YACtD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;YAChE,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,KAAK;aACd,CAAC;QACJ,CAAC;QAED,+CAA+C;QAC/C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,MAAM,UAAU,CAAC,CAAC;QAE7D,IAAI,MAAoB,CAAC;QACzB,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,OAAO;gBACV,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBACzC,MAAM;YACR,KAAK,OAAO;gBACV,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBACzC,MAAM;YACR,KAAK,SAAS;gBACZ,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBAC3C,MAAM;YACR,KAAK,MAAM;gBACT,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;gBACxC,MAAM;YACR,KAAK,KAAK;gBACR,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;gBACvC,MAAM;YACR;gBACE,oDAAoD;gBACpD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0CAA0C,EAAE;oBAC3D,MAAM,EAAE,MAAgB;iBACzB,CAAC,CAAC;gBACH,MAAM,GAAG;oBACP,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,wBAAwB,MAAM,EAAE;oBACzC,MAAM,EAAE,IAAI;iBACb,CAAC;QACN,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,MAAM,aAAa,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QAClF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,WAAW,CAAC,OAAsB;QAC9C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE;YAClC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ;SACpC,CAAC,CAAC;QAEH,OAAO;YACL,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,KAAK;SACd,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,WAAW,CAAC,OAAsB;QAC9C,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,aAAa,CAAC,OAAsB;QAChD,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,UAAU,CAAC,OAAsB;QAC7C,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,SAAS,CAAC,OAAsB;QAC5C,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAuB;IAC1D,OAAO,IAAI,qBAAqB,CAAC,MAAM,CAAC,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,2BAA2B,CAAC,WAAgD,MAAM;IAChG,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACtC,OAAO,IAAI,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;AAC/C,CAAC"}
@@ -29,12 +29,12 @@ export function generateWarnMessage(context) {
29
29
  const { analysis, toolCall } = context;
30
30
  const { primaryDetection, detections } = analysis;
31
31
  if (!primaryDetection) {
32
- return `Warning: ${toolCall.toolName} executed with security notice.`;
32
+ return `ClawSec Warning: ${toolCall.toolName} executed with security notice.`;
33
33
  }
34
34
  const category = formatCategory(primaryDetection.category);
35
35
  const severity = formatSeverity(primaryDetection.severity);
36
36
  const reason = primaryDetection.reason;
37
- let message = `[${severity}] Warning: ${category} detected\n`;
37
+ let message = `ClawSec Warning: [${severity}] ${category} detected\n`;
38
38
  message += `Tool: ${toolCall.toolName}\n`;
39
39
  message += `Reason: ${reason}\n`;
40
40
  message += `\nAction allowed but logged for audit.`;
@@ -1 +1 @@
1
- {"version":3,"file":"warn.js","sourceRoot":"","sources":["../../../src/actions/warn.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC;;GAEG;AACH,SAAS,cAAc,CAAC,QAAgB;IACtC,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,QAAgB;IACtC,MAAM,aAAa,GAA2B;QAC5C,QAAQ,EAAE,kBAAkB;QAC5B,OAAO,EAAE,gBAAgB;QACzB,WAAW,EAAE,qBAAqB;QAClC,OAAO,EAAE,aAAa;QACtB,YAAY,EAAE,eAAe;KAC9B,CAAC;IACF,OAAO,aAAa,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAsB;IACxD,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IACvC,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC;IAElD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,OAAO,YAAY,QAAQ,CAAC,QAAQ,iCAAiC,CAAC;IACxE,CAAC;IAED,MAAM,QAAQ,GAAG,cAAc,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,cAAc,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC;IAEvC,IAAI,OAAO,GAAG,IAAI,QAAQ,cAAc,QAAQ,aAAa,CAAC;IAC9D,OAAO,IAAI,SAAS,QAAQ,CAAC,QAAQ,IAAI,CAAC;IAC1C,OAAO,IAAI,WAAW,MAAM,IAAI,CAAC;IACjC,OAAO,IAAI,wCAAwC,CAAC;IAEpD,uCAAuC;IACvC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,IAAI,4BAA4B,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC;QACjE,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,IAAI,SAAS,KAAK,gBAAgB,EAAE,CAAC;gBACnC,OAAO,IAAI,OAAO,cAAc,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,SAAS,CAAC,MAAM,EAAE,CAAC;YAC9E,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,WAAW;IACd,MAAM,CAAe;IAE7B,YAAY,SAAuB,UAAU;QAC3C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAsB;QAClC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;QACvC,MAAM,OAAO,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAE7C,kBAAkB;QAClB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE;YAC/C,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,QAAQ,EAAE,QAAQ,CAAC,gBAAgB,EAAE,QAAQ;YAC7C,QAAQ,EAAE,QAAQ,CAAC,gBAAgB,EAAE,QAAQ;YAC7C,MAAM,EAAE,QAAQ,CAAC,gBAAgB,EAAE,MAAM;YACzC,cAAc,EAAE,QAAQ,CAAC,UAAU,CAAC,MAAM;SAC3C,CAAC,CAAC;QAEH,OAAO;YACL,OAAO,EAAE,IAAI;YACb,OAAO;YACP,MAAM,EAAE,IAAI;SACb,CAAC;IACJ,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAqB;IACrD,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"warn.js","sourceRoot":"","sources":["../../../src/actions/warn.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC;;GAEG;AACH,SAAS,cAAc,CAAC,QAAgB;IACtC,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,QAAgB;IACtC,MAAM,aAAa,GAA2B;QAC5C,QAAQ,EAAE,kBAAkB;QAC5B,OAAO,EAAE,gBAAgB;QACzB,WAAW,EAAE,qBAAqB;QAClC,OAAO,EAAE,aAAa;QACtB,YAAY,EAAE,eAAe;KAC9B,CAAC;IACF,OAAO,aAAa,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC;AAC7C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAsB;IACxD,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IACvC,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC;IAElD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,OAAO,oBAAoB,QAAQ,CAAC,QAAQ,iCAAiC,CAAC;IAChF,CAAC;IAED,MAAM,QAAQ,GAAG,cAAc,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,cAAc,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC;IAEvC,IAAI,OAAO,GAAG,qBAAqB,QAAQ,KAAK,QAAQ,aAAa,CAAC;IACtE,OAAO,IAAI,SAAS,QAAQ,CAAC,QAAQ,IAAI,CAAC;IAC1C,OAAO,IAAI,WAAW,MAAM,IAAI,CAAC;IACjC,OAAO,IAAI,wCAAwC,CAAC;IAEpD,uCAAuC;IACvC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,IAAI,4BAA4B,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC;QACjE,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,IAAI,SAAS,KAAK,gBAAgB,EAAE,CAAC;gBACnC,OAAO,IAAI,OAAO,cAAc,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,SAAS,CAAC,MAAM,EAAE,CAAC;YAC9E,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,WAAW;IACd,MAAM,CAAe;IAE7B,YAAY,SAAuB,UAAU;QAC3C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAsB;QAClC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;QACvC,MAAM,OAAO,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAE7C,kBAAkB;QAClB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE;YAC/C,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,QAAQ,EAAE,QAAQ,CAAC,gBAAgB,EAAE,QAAQ;YAC7C,QAAQ,EAAE,QAAQ,CAAC,gBAAgB,EAAE,QAAQ;YAC7C,MAAM,EAAE,QAAQ,CAAC,gBAAgB,EAAE,MAAM;YACzC,cAAc,EAAE,QAAQ,CAAC,UAAU,CAAC,MAAM;SAC3C,CAAC,CAAC;QAEH,OAAO;YACL,OAAO,EAAE,IAAI;YACb,OAAO;YACP,MAAM,EAAE,IAAI;SACb,CAAC;IACJ,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAqB;IACrD,OAAO,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC"}
@@ -7,6 +7,7 @@
7
7
  * the approval ID.
8
8
  */
9
9
  import type { ApprovalStore } from './types.js';
10
+ import { type Logger } from '../utils/logger.js';
10
11
  /** Default parameter name for agent confirmation */
11
12
  export declare const DEFAULT_CONFIRM_PARAMETER = "_clawsec_confirm";
12
13
  /**
@@ -58,6 +59,8 @@ export interface AgentConfirmHandlerConfig {
58
59
  enabled?: boolean;
59
60
  /** Custom parameter name for confirmation */
60
61
  parameterName?: string;
62
+ /** Optional logger instance */
63
+ logger?: Logger;
61
64
  }
62
65
  /**
63
66
  * Default implementation of the agent confirm handler
@@ -66,6 +69,7 @@ export declare class DefaultAgentConfirmHandler implements AgentConfirmHandler {
66
69
  private store;
67
70
  private enabled;
68
71
  private defaultParameterName;
72
+ private logger;
69
73
  constructor(config?: AgentConfirmHandlerConfig);
70
74
  /**
71
75
  * Check if tool input contains a valid confirmation
@@ -1 +1 @@
1
- {"version":3,"file":"agent-confirm.d.ts","sourceRoot":"","sources":["../../../src/approval/agent-confirm.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhD,oDAAoD;AACpD,eAAO,MAAM,yBAAyB,qBAAqB,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,+DAA+D;IAC/D,SAAS,EAAE,OAAO,CAAC;IACnB,sDAAsD;IACtD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,KAAK,EAAE,OAAO,CAAC;IACf,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;;OAKG;IACH,iBAAiB,CACf,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,aAAa,CAAC,EAAE,MAAM,GACrB,kBAAkB,CAAC;IAEtB;;;;;OAKG;IACH,qBAAqB,CACnB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,aAAa,CAAC,EAAE,MAAM,GACrB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE3B;;;;;OAKG;IACH,mBAAmB,CACjB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,aAAa,CAAC,EAAE,MAAM,GACrB,kBAAkB,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,oEAAoE;IACpE,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6CAA6C;IAC7C,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,qBAAa,0BAA2B,YAAW,mBAAmB;IACpE,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,oBAAoB,CAAS;gBAEzB,MAAM,GAAE,yBAA8B;IAMlD;;OAEG;IACH,iBAAiB,CACf,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,aAAa,CAAC,EAAE,MAAM,GACrB,kBAAkB;IAiFrB;;OAEG;IACH,qBAAqB,CACnB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,aAAa,CAAC,EAAE,MAAM,GACrB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAY1B;;;OAGG;IACH,mBAAmB,CACjB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,aAAa,CAAC,EAAE,MAAM,GACrB,kBAAkB;IA4BrB;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,gBAAgB,IAAI,MAAM;CAG3B;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,CAAC,EAAE,yBAAyB,GACjC,0BAA0B,CAE5B;AAOD;;GAEG;AACH,wBAAgB,6BAA6B,IAAI,0BAA0B,CAK1E;AAED;;GAEG;AACH,wBAAgB,+BAA+B,IAAI,IAAI,CAEtD"}
1
+ {"version":3,"file":"agent-confirm.d.ts","sourceRoot":"","sources":["../../../src/approval/agent-confirm.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE/D,oDAAoD;AACpD,eAAO,MAAM,yBAAyB,qBAAqB,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,+DAA+D;IAC/D,SAAS,EAAE,OAAO,CAAC;IACnB,sDAAsD;IACtD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,KAAK,EAAE,OAAO,CAAC;IACf,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;;OAKG;IACH,iBAAiB,CACf,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,aAAa,CAAC,EAAE,MAAM,GACrB,kBAAkB,CAAC;IAEtB;;;;;OAKG;IACH,qBAAqB,CACnB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,aAAa,CAAC,EAAE,MAAM,GACrB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE3B;;;;;OAKG;IACH,mBAAmB,CACjB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,aAAa,CAAC,EAAE,MAAM,GACrB,kBAAkB,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,oEAAoE;IACpE,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6CAA6C;IAC7C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,+BAA+B;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,0BAA2B,YAAW,mBAAmB;IACpE,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,GAAE,yBAA8B;IAOlD;;OAEG;IACH,iBAAiB,CACf,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,aAAa,CAAC,EAAE,MAAM,GACrB,kBAAkB;IA4FrB;;OAEG;IACH,qBAAqB,CACnB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,aAAa,CAAC,EAAE,MAAM,GACrB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAa1B;;;OAGG;IACH,mBAAmB,CACjB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,aAAa,CAAC,EAAE,MAAM,GACrB,kBAAkB;IA4BrB;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,gBAAgB,IAAI,MAAM;CAG3B;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,CAAC,EAAE,yBAAyB,GACjC,0BAA0B,CAE5B;AAOD;;GAEG;AACH,wBAAgB,6BAA6B,IAAI,0BAA0B,CAK1E;AAED;;GAEG;AACH,wBAAgB,+BAA+B,IAAI,IAAI,CAEtD"}
@@ -7,6 +7,7 @@
7
7
  * the approval ID.
8
8
  */
9
9
  import { getDefaultApprovalStore } from './store.js';
10
+ import { createLogger } from '../utils/logger.js';
10
11
  /** Default parameter name for agent confirmation */
11
12
  export const DEFAULT_CONFIRM_PARAMETER = '_clawsec_confirm';
12
13
  /**
@@ -16,18 +17,22 @@ export class DefaultAgentConfirmHandler {
16
17
  store;
17
18
  enabled;
18
19
  defaultParameterName;
20
+ logger;
19
21
  constructor(config = {}) {
20
22
  this.store = config.store ?? getDefaultApprovalStore();
21
23
  this.enabled = config.enabled ?? true;
22
24
  this.defaultParameterName = config.parameterName ?? DEFAULT_CONFIRM_PARAMETER;
25
+ this.logger = config.logger ?? createLogger(null, null);
23
26
  }
24
27
  /**
25
28
  * Check if tool input contains a valid confirmation
26
29
  */
27
30
  checkConfirmation(toolInput, parameterName) {
28
31
  const paramName = parameterName ?? this.defaultParameterName;
32
+ this.logger.debug(`[AgentConfirm] Checking for confirmation parameter: ${paramName}`);
29
33
  // Check if confirmation is disabled
30
34
  if (!this.enabled) {
35
+ this.logger.debug(`[AgentConfirm] Agent confirmation is disabled`);
31
36
  return {
32
37
  confirmed: false,
33
38
  valid: false,
@@ -36,14 +41,17 @@ export class DefaultAgentConfirmHandler {
36
41
  }
37
42
  // Check if parameter exists
38
43
  if (!(paramName in toolInput)) {
44
+ this.logger.debug(`[AgentConfirm] Confirmation parameter not found`);
39
45
  return {
40
46
  confirmed: false,
41
47
  valid: false,
42
48
  };
43
49
  }
44
50
  const approvalId = toolInput[paramName];
51
+ this.logger.debug(`[AgentConfirm] Confirmation parameter found: ${paramName}=${approvalId}`);
45
52
  // Validate the approval ID is a non-empty string
46
53
  if (typeof approvalId !== 'string' || approvalId.trim() === '') {
54
+ this.logger.warn(`[AgentConfirm] Invalid approval ID format`);
47
55
  return {
48
56
  confirmed: true,
49
57
  valid: false,
@@ -54,6 +62,7 @@ export class DefaultAgentConfirmHandler {
54
62
  // Look up the approval record
55
63
  const record = this.store.get(trimmedId);
56
64
  if (!record) {
65
+ this.logger.warn(`[AgentConfirm] Approval not found: id=${trimmedId}`);
57
66
  return {
58
67
  confirmed: true,
59
68
  approvalId: trimmedId,
@@ -63,6 +72,7 @@ export class DefaultAgentConfirmHandler {
63
72
  }
64
73
  // Check the record status
65
74
  if (record.status === 'expired') {
75
+ this.logger.warn(`[AgentConfirm] Approval expired: id=${trimmedId}`);
66
76
  return {
67
77
  confirmed: true,
68
78
  approvalId: trimmedId,
@@ -71,6 +81,7 @@ export class DefaultAgentConfirmHandler {
71
81
  };
72
82
  }
73
83
  if (record.status === 'approved') {
84
+ this.logger.warn(`[AgentConfirm] Approval already used: id=${trimmedId}`);
74
85
  return {
75
86
  confirmed: true,
76
87
  approvalId: trimmedId,
@@ -79,6 +90,7 @@ export class DefaultAgentConfirmHandler {
79
90
  };
80
91
  }
81
92
  if (record.status === 'denied') {
93
+ this.logger.warn(`[AgentConfirm] Approval was denied: id=${trimmedId}`);
82
94
  return {
83
95
  confirmed: true,
84
96
  approvalId: trimmedId,
@@ -87,6 +99,7 @@ export class DefaultAgentConfirmHandler {
87
99
  };
88
100
  }
89
101
  // Valid pending approval
102
+ this.logger.info(`[AgentConfirm] Approval validated: id=${trimmedId}, allowing tool call`);
90
103
  return {
91
104
  confirmed: true,
92
105
  approvalId: trimmedId,
@@ -102,6 +115,7 @@ export class DefaultAgentConfirmHandler {
102
115
  return toolInput;
103
116
  }
104
117
  // Create a shallow copy without the confirm parameter
118
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
105
119
  const { [paramName]: _, ...cleanedInput } = toolInput;
106
120
  return cleanedInput;
107
121
  }
@@ -1 +1 @@
1
- {"version":3,"file":"agent-confirm.js","sourceRoot":"","sources":["../../../src/approval/agent-confirm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-confirm.js","sourceRoot":"","sources":["../../../src/approval/agent-confirm.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@
3
3
  * Stores and manages pending approval records with TTL and auto-cleanup
4
4
  */
5
5
  import type { ApprovalStore, PendingApprovalRecord, PendingApprovalInput } from './types.js';
6
+ import { type Logger } from '../utils/logger.js';
6
7
  /**
7
8
  * Configuration options for the approval store
8
9
  */
@@ -11,6 +12,8 @@ export interface ApprovalStoreConfig {
11
12
  cleanupIntervalMs?: number;
12
13
  /** Whether to remove expired entries on cleanup (vs just marking them expired) */
13
14
  removeOnExpiry?: boolean;
15
+ /** Optional logger instance */
16
+ logger?: Logger;
14
17
  }
15
18
  /**
16
19
  * In-memory implementation of the approval store
@@ -19,6 +22,7 @@ export declare class InMemoryApprovalStore implements ApprovalStore {
19
22
  private records;
20
23
  private cleanupTimer;
21
24
  private removeOnExpiry;
25
+ private logger;
22
26
  constructor(config?: ApprovalStoreConfig);
23
27
  /**
24
28
  * Start the periodic cleanup timer
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/approval/store.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,oEAAoE;IACpE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kFAAkF;IAClF,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAKD;;GAEG;AACH,qBAAa,qBAAsB,YAAW,aAAa;IACzD,OAAO,CAAC,OAAO,CAAiD;IAChE,OAAO,CAAC,YAAY,CAA+C;IACnE,OAAO,CAAC,cAAc,CAAU;gBAEpB,MAAM,GAAE,mBAAwB;IAS5C;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAWzB;;OAEG;IACI,gBAAgB,IAAI,IAAI;IAO/B;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,oBAAoB,GAAG,IAAI;IAQvC;;;OAGG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS;IAclD;;;OAGG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO;IAiBjD;;;OAGG;IACH,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAezB;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAIxB;;;OAGG;IACH,OAAO,IAAI,IAAI;IAqBf;;;OAGG;IACH,UAAU,IAAI,qBAAqB,EAAE;IAkBrC;;;OAGG;IACH,IAAI,IAAI,MAAM;IAId;;;OAGG;IACH,KAAK,IAAI,IAAI;CAGd;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,qBAAqB,CAEvF;AAQD;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,qBAAqB,CAK/D;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAMhD"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/approval/store.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,oEAAoE;IACpE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kFAAkF;IAClF,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,+BAA+B;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAKD;;GAEG;AACH,qBAAa,qBAAsB,YAAW,aAAa;IACzD,OAAO,CAAC,OAAO,CAAiD;IAChE,OAAO,CAAC,YAAY,CAA+C;IACnE,OAAO,CAAC,cAAc,CAAU;IAChC,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,GAAE,mBAAwB;IAU5C;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAWzB;;OAEG;IACI,gBAAgB,IAAI,IAAI;IAO/B;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,oBAAoB,GAAG,IAAI;IAUvC;;;OAGG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS;IAkBlD;;;OAGG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO;IAqBjD;;;OAGG;IACH,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAmBzB;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAIxB;;;OAGG;IACH,OAAO,IAAI,IAAI;IA2Bf;;;OAGG;IACH,UAAU,IAAI,qBAAqB,EAAE;IAkBrC;;;OAGG;IACH,IAAI,IAAI,MAAM;IAId;;;OAGG;IACH,KAAK,IAAI,IAAI;CAGd;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,qBAAqB,CAEvF;AAQD;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,qBAAqB,CAK/D;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAMhD"}