@intutic/sync-daemon 2.9.1 → 3.0.1

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 (90) hide show
  1. package/dist/disconnect/harnesses.d.ts.map +1 -1
  2. package/dist/disconnect/harnesses.js +3 -2
  3. package/dist/disconnect/harnesses.js.map +1 -1
  4. package/dist/harness/antigravityCliHooks.js +3 -3
  5. package/dist/harness/antigravityCliHooks.js.map +1 -1
  6. package/dist/harness/antigravityHooks.d.ts +8 -0
  7. package/dist/harness/antigravityHooks.d.ts.map +1 -1
  8. package/dist/harness/antigravityHooks.js +27 -5
  9. package/dist/harness/antigravityHooks.js.map +1 -1
  10. package/dist/harness/claudeCodeHooks.d.ts.map +1 -1
  11. package/dist/harness/claudeCodeHooks.js +58 -16
  12. package/dist/harness/claudeCodeHooks.js.map +1 -1
  13. package/dist/harness/clineHooks.d.ts.map +1 -1
  14. package/dist/harness/clineHooks.js +4 -2
  15. package/dist/harness/clineHooks.js.map +1 -1
  16. package/dist/harness/codexHooks.d.ts.map +1 -1
  17. package/dist/harness/codexHooks.js +4 -2
  18. package/dist/harness/codexHooks.js.map +1 -1
  19. package/dist/harness/cursorHooks.d.ts.map +1 -1
  20. package/dist/harness/cursorHooks.js +8 -3
  21. package/dist/harness/cursorHooks.js.map +1 -1
  22. package/dist/harness/gateBody.d.ts +177 -4
  23. package/dist/harness/gateBody.d.ts.map +1 -1
  24. package/dist/harness/gateBody.js +1658 -26
  25. package/dist/harness/gateBody.js.map +1 -1
  26. package/dist/harness/githubCopilotHooks.js +3 -3
  27. package/dist/harness/githubCopilotHooks.js.map +1 -1
  28. package/dist/harness/gooseHooks.d.ts.map +1 -1
  29. package/dist/harness/gooseHooks.js +8 -1
  30. package/dist/harness/gooseHooks.js.map +1 -1
  31. package/dist/harness/grokHooks.js +2 -2
  32. package/dist/harness/hermesHooks.js +1 -1
  33. package/dist/harness/hermesHooks.js.map +1 -1
  34. package/dist/harness/museHooks.d.ts.map +1 -1
  35. package/dist/harness/museHooks.js +4 -2
  36. package/dist/harness/museHooks.js.map +1 -1
  37. package/dist/harness/n8nHooks.js +1 -1
  38. package/dist/harness/openCodeHooks.d.ts.map +1 -1
  39. package/dist/harness/openCodeHooks.js +32 -8
  40. package/dist/harness/openCodeHooks.js.map +1 -1
  41. package/dist/harness/openclawHooks.d.ts.map +1 -1
  42. package/dist/harness/openclawHooks.js +19 -8
  43. package/dist/harness/openclawHooks.js.map +1 -1
  44. package/dist/harness/piHooks.js +7 -7
  45. package/dist/harness/windsurfHooks.js +2 -2
  46. package/dist/index.d.ts +9 -3
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +8 -2
  49. package/dist/index.js.map +1 -1
  50. package/dist/lib/approvedBypasses.d.ts +17 -4
  51. package/dist/lib/approvedBypasses.d.ts.map +1 -1
  52. package/dist/lib/approvedBypasses.js +17 -4
  53. package/dist/lib/approvedBypasses.js.map +1 -1
  54. package/dist/lib/approvedPlans.d.ts +73 -0
  55. package/dist/lib/approvedPlans.d.ts.map +1 -0
  56. package/dist/lib/approvedPlans.js +124 -0
  57. package/dist/lib/approvedPlans.js.map +1 -0
  58. package/dist/lib/decideLogs.d.ts +46 -0
  59. package/dist/lib/decideLogs.d.ts.map +1 -0
  60. package/dist/lib/decideLogs.js +160 -0
  61. package/dist/lib/decideLogs.js.map +1 -0
  62. package/dist/lib/policySnapshot.d.ts +143 -3
  63. package/dist/lib/policySnapshot.d.ts.map +1 -1
  64. package/dist/lib/policySnapshot.js +480 -14
  65. package/dist/lib/policySnapshot.js.map +1 -1
  66. package/dist/lib/refusalDetailPy.d.ts +11 -0
  67. package/dist/lib/refusalDetailPy.d.ts.map +1 -0
  68. package/dist/lib/refusalDetailPy.js +109 -0
  69. package/dist/lib/refusalDetailPy.js.map +1 -0
  70. package/dist/lib/ruleRecordPy.d.ts +11 -0
  71. package/dist/lib/ruleRecordPy.d.ts.map +1 -0
  72. package/dist/lib/ruleRecordPy.js +277 -0
  73. package/dist/lib/ruleRecordPy.js.map +1 -0
  74. package/dist/lib/scopeMatchPy.d.ts +11 -0
  75. package/dist/lib/scopeMatchPy.d.ts.map +1 -0
  76. package/dist/lib/scopeMatchPy.js +278 -0
  77. package/dist/lib/scopeMatchPy.js.map +1 -0
  78. package/dist/lib/testOutcomePy.d.ts +11 -0
  79. package/dist/lib/testOutcomePy.d.ts.map +1 -0
  80. package/dist/lib/testOutcomePy.js +371 -0
  81. package/dist/lib/testOutcomePy.js.map +1 -0
  82. package/dist/skillWriter.d.ts +1 -1
  83. package/dist/skillWriter.d.ts.map +1 -1
  84. package/dist/skillWriter.js +7 -0
  85. package/dist/skillWriter.js.map +1 -1
  86. package/dist/syncCycle.d.ts +15 -2
  87. package/dist/syncCycle.d.ts.map +1 -1
  88. package/dist/syncCycle.js +15 -3
  89. package/dist/syncCycle.js.map +1 -1
  90. package/package.json +5 -5
@@ -1 +1 @@
1
- {"version":3,"file":"clineHooks.d.ts","sourceRoot":"","sources":["../../src/harness/clineHooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAmBH;;;;;;GAMG;AACH,wBAAsB,yBAAyB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAuBvF;AAkBD;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CACnC,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,WAAW,SAAK,GACf,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAwKxB"}
1
+ {"version":3,"file":"clineHooks.d.ts","sourceRoot":"","sources":["../../src/harness/clineHooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAmBH;;;;;;GAMG;AACH,wBAAsB,yBAAyB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAuBvF;AAkBD;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CACnC,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,WAAW,SAAK,GACf,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA0KxB"}
@@ -188,7 +188,7 @@ ${emitJsGate({ harness: 'cline', contract: 'stdout-cancel', reviewRequestFile: p
188
188
 
189
189
  let raw = '';
190
190
  process.stdin.on('data', (c) => { raw += c; });
191
- process.stdin.on('end', () => {
191
+ process.stdin.on('end', async () => {
192
192
  try {
193
193
  const ctx = JSON.parse(raw);
194
194
  _intuticSessionId = ctx.taskId || ctx.task_id || ctx.session_id || ctx.sessionId || ctx.conversation_id || ctx.conversationId || '';
@@ -235,7 +235,9 @@ process.stdin.on('end', () => {
235
235
  const targetPath = input.path || input.file_path || input.filePath ||
236
236
  input.target || input.source || input.notebook_path || firstFile || '';
237
237
  const command = input.command || input.cmd || input.script || commands || '';
238
- intuticGate(rawToolName, targetPath, command, logEvent, _intuticWsId, input);
238
+ // Cline's session is its task (taskId), which requires_before [ok] and
239
+ // plan_approval key their state on (gate body v23).
240
+ await intuticGateWithDecide(rawToolName, targetPath, command, logEvent, _intuticWsId, input, String(ctx.taskId || ''));
239
241
 
240
242
  // Allow all other tool calls
241
243
  logEvent('tool_allowed', tool || 'unknown', '');
@@ -1 +1 @@
1
- {"version":3,"file":"clineHooks.js","sourceRoot":"","sources":["../../src/harness/clineHooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clineHooks.js","sourceRoot":"","sources":["../../src/harness/clineHooks.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"codexHooks.d.ts","sourceRoot":"","sources":["../../src/harness/codexHooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAgBH,qEAAqE;AACrE,wBAAgB,YAAY,IAAI,MAAM,CAErC;AA6KD;;;;;;;;;GASG;AACH,wBAAsB,eAAe,CACnC,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,WAAW,SAAK,GACf,OAAO,CAAC,IAAI,CAAC,CAuBf"}
1
+ {"version":3,"file":"codexHooks.d.ts","sourceRoot":"","sources":["../../src/harness/codexHooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAgBH,qEAAqE;AACrE,wBAAgB,YAAY,IAAI,MAAM,CAErC;AA+KD;;;;;;;;;GASG;AACH,wBAAsB,eAAe,CACnC,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,WAAW,SAAK,GACf,OAAO,CAAC,IAAI,CAAC,CAuBf"}
@@ -111,7 +111,7 @@ function logEvent(verdict, toolName, reason) {
111
111
 
112
112
  let raw = '';
113
113
  process.stdin.on('data', (c) => { raw += c; });
114
- process.stdin.on('end', () => {
114
+ process.stdin.on('end', async () => {
115
115
  try {
116
116
  const ctx = JSON.parse(raw);
117
117
  _intuticSessionId = ctx.session_id || ctx.sessionId || '';
@@ -130,7 +130,9 @@ process.stdin.on('end', () => {
130
130
  input.target || input.notebook_path || '';
131
131
  const command = input.command || input.cmd || input.script || '';
132
132
 
133
- intuticGate(toolName, targetPath, command, logEvent, _intuticWsId, input);
133
+ // The session id (gate body v23): requires_before [ok] and plan_approval
134
+ // key their state on it.
135
+ await intuticGateWithDecide(toolName, targetPath, command, logEvent, _intuticWsId, input, _intuticSessionId);
134
136
 
135
137
  // Allow
136
138
  logEvent('tool_allowed', toolName, '');
@@ -1 +1 @@
1
- {"version":3,"file":"codexHooks.js","sourceRoot":"","sources":["../../src/harness/codexHooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAA;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAA;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAErD,MAAM,GAAG,GAAG,YAAY,CAAC,kBAAkB,CAAC,CAAA;AAE5C,qEAAqE;AACrE,MAAM,UAAU,YAAY;IAC1B,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAA;AACpE,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CAAC,QAAgB,EAAE,aAAqB,EAAE,WAAmB;IACnF,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,mBAAmB,CAAC,CAAA;IACzF,OAAO;;;;YAIG,QAAQ;gBACJ,MAAM,EAAE;;EAEtB,uBAAuB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;;;;;;;;;qBAS7C,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,sCAAsC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;;;;;;;;;;;EAWtH,UAAU,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;wBAsB7B,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgDpD,CAAA;AACD,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,mBAAmB,CAAC,UAAkB,EAAE,cAAsB;IAC3E,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAAC,UAAU,CAAC,CAAA;IACzD,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAM;IAE7B,MAAM,aAAa,GAAI,QAAQ,CAAC,KAAiC,IAAI,EAAE,CAAA;IACvE,MAAM,kBAAkB,GAAG,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC;QAChE,CAAC,CAAE,aAAa,CAAC,UAAwB;QACzC,CAAC,CAAC,EAAE,CAAA;IAEN,MAAM,UAAU,GAAG,SAAS,cAAc,GAAG,CAAA;IAC7C,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC,KAAc,EAAE,EAAE;QAC5D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,IAAI,CAAA;QAC5D,MAAM,KAAK,GAAK,KAAiC,CAAC,KAAmB,IAAI,EAAE,CAAA;QAC3E,OAAO,CAAC,CACN,KAAK,CAAC,MAAM,GAAG,CAAC;YAChB,KAAK,CAAC,KAAK,CACT,CAAC,CAAU,EAAE,EAAE,CACb,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAK,CAA6B,CAAC,OAAO,KAAK,UAAU,CAC/F,CACF,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,mEAAmE;IACnE,4EAA4E;IAC5E,2EAA2E;IAC3E,6EAA6E;IAC7E,sEAAsE;IACtE,mEAAmE;IACnE,2EAA2E;IAC3E,2EAA2E;IAC3E,0EAA0E;IAC1E,wDAAwD;IACxD,OAAQ,QAAoC,CAAC,kBAAkB,CAAC,CAAA;IAChE,OAAQ,QAAoC,CAAC,oBAAoB,CAAC,CAAA;IAClE,MAAM,MAAM,GAAG;QACb,GAAG,QAAQ;QACX,WAAW,EACT,mFAAmF;YACnF,cAAc,MAAM,EAAE,EAAE;QAC1B,KAAK,EAAE;YACL,GAAG,aAAa;YAChB,UAAU,EAAE;gBACV,GAAG,QAAQ;gBACX;oBACE,iEAAiE;oBACjE,mEAAmE;oBACnE,kDAAkD;oBAClD,OAAO,EAAE,IAAI;oBACb,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC;iBACjF;aACF;SACF;KACF,CAAA;IAED,MAAM,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;AAC3E,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,aAAqB,EACrB,QAAgB,EAChB,WAAW,GAAG,EAAE;IAEhB,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;IACnE,MAAM,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAClD,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAEnF,wEAAwE;IACxE,+CAA+C;IAC/C,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAA;IACjE,MAAM,eAAe,CAAC,cAAc,EAAE,eAAe,CAAC,QAAQ,EAAE,aAAa,EAAE,WAAW,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IAE7G,6CAA6C;IAC7C,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAA;IAC1D,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,YAAY,CAAC,EAAE,aAAa,CAAC,CAAA;IAC3E,MAAM,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACpD,MAAM,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,YAAY,CAAC,EAAE,cAAc,CAAC,CAAA;IACnF,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,qBAAqB,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,mCAAmC,CAAC,CAAA;IAEzH,yCAAyC;IACzC,MAAM,YAAY,GAAG,YAAY,EAAE,CAAA;IACnC,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,EAAE,aAAa,CAAC,CAAA;IACxE,MAAM,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACjD,MAAM,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,EAAE,cAAc,CAAC,CAAA;IAChF,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,gCAAgC,CAAC,CAAA;AAClH,CAAC"}
1
+ {"version":3,"file":"codexHooks.js","sourceRoot":"","sources":["../../src/harness/codexHooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAA;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAA;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAErD,MAAM,GAAG,GAAG,YAAY,CAAC,kBAAkB,CAAC,CAAA;AAE5C,qEAAqE;AACrE,MAAM,UAAU,YAAY;IAC1B,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAA;AACpE,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CAAC,QAAgB,EAAE,aAAqB,EAAE,WAAmB;IACnF,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,mBAAmB,CAAC,CAAA;IACzF,OAAO;;;;YAIG,QAAQ;gBACJ,MAAM,EAAE;;EAEtB,uBAAuB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;;;;;;;;;qBAS7C,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,sCAAsC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;;;;;;;;;;;EAWtH,UAAU,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;wBAsB7B,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkDpD,CAAA;AACD,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,mBAAmB,CAAC,UAAkB,EAAE,cAAsB;IAC3E,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAAC,UAAU,CAAC,CAAA;IACzD,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAM;IAE7B,MAAM,aAAa,GAAI,QAAQ,CAAC,KAAiC,IAAI,EAAE,CAAA;IACvE,MAAM,kBAAkB,GAAG,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC;QAChE,CAAC,CAAE,aAAa,CAAC,UAAwB;QACzC,CAAC,CAAC,EAAE,CAAA;IAEN,MAAM,UAAU,GAAG,SAAS,cAAc,GAAG,CAAA;IAC7C,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC,KAAc,EAAE,EAAE;QAC5D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,IAAI,CAAA;QAC5D,MAAM,KAAK,GAAK,KAAiC,CAAC,KAAmB,IAAI,EAAE,CAAA;QAC3E,OAAO,CAAC,CACN,KAAK,CAAC,MAAM,GAAG,CAAC;YAChB,KAAK,CAAC,KAAK,CACT,CAAC,CAAU,EAAE,EAAE,CACb,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAK,CAA6B,CAAC,OAAO,KAAK,UAAU,CAC/F,CACF,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,mEAAmE;IACnE,4EAA4E;IAC5E,2EAA2E;IAC3E,6EAA6E;IAC7E,sEAAsE;IACtE,mEAAmE;IACnE,2EAA2E;IAC3E,2EAA2E;IAC3E,0EAA0E;IAC1E,wDAAwD;IACxD,OAAQ,QAAoC,CAAC,kBAAkB,CAAC,CAAA;IAChE,OAAQ,QAAoC,CAAC,oBAAoB,CAAC,CAAA;IAClE,MAAM,MAAM,GAAG;QACb,GAAG,QAAQ;QACX,WAAW,EACT,mFAAmF;YACnF,cAAc,MAAM,EAAE,EAAE;QAC1B,KAAK,EAAE;YACL,GAAG,aAAa;YAChB,UAAU,EAAE;gBACV,GAAG,QAAQ;gBACX;oBACE,iEAAiE;oBACjE,mEAAmE;oBACnE,kDAAkD;oBAClD,OAAO,EAAE,IAAI;oBACb,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC;iBACjF;aACF;SACF;KACF,CAAA;IAED,MAAM,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;AAC3E,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,aAAqB,EACrB,QAAgB,EAChB,WAAW,GAAG,EAAE;IAEhB,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;IACnE,MAAM,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAClD,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAEnF,wEAAwE;IACxE,+CAA+C;IAC/C,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAA;IACjE,MAAM,eAAe,CAAC,cAAc,EAAE,eAAe,CAAC,QAAQ,EAAE,aAAa,EAAE,WAAW,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IAE7G,6CAA6C;IAC7C,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAA;IAC1D,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,YAAY,CAAC,EAAE,aAAa,CAAC,CAAA;IAC3E,MAAM,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACpD,MAAM,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,YAAY,CAAC,EAAE,cAAc,CAAC,CAAA;IACnF,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,qBAAqB,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,mCAAmC,CAAC,CAAA;IAEzH,yCAAyC;IACzC,MAAM,YAAY,GAAG,YAAY,EAAE,CAAA;IACnC,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,EAAE,aAAa,CAAC,CAAA;IACxE,MAAM,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACjD,MAAM,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,EAAE,cAAc,CAAC,CAAA;IAChF,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,gCAAgC,CAAC,CAAA;AAClH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"cursorHooks.d.ts","sourceRoot":"","sources":["../../src/harness/cursorHooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAuBH;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,GAAG,MAAM,CAQnE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,cAAc,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,CAAA;CAAE,CAUtH;AAED,mDAAmD;AACnD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,eAAe;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAkBnH;AA0ID;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CACpC,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,WAAW,SAAK,EAChB,gBAAgB,UAAQ,GACvB,OAAO,CAAC,IAAI,CAAC,CA2Cf"}
1
+ {"version":3,"file":"cursorHooks.d.ts","sourceRoot":"","sources":["../../src/harness/cursorHooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAuBH;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,GAAG,MAAM,CAQnE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,cAAc,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,CAAA;CAAE,CAUtH;AAED,mDAAmD;AACnD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,eAAe;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAkBnH;AA+ID;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CACpC,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,WAAW,SAAK,EAChB,gBAAgB,UAAQ,GACvB,OAAO,CAAC,IAAI,CAAC,CA2Cf"}
@@ -141,7 +141,7 @@ try {
141
141
  });
142
142
  } catch {}
143
143
 
144
- ${emitJsGate({ harness: 'cursor', contract: 'exit2' })}
144
+ ${emitJsGate({ harness: 'cursor', contract: 'exit2', ask: 'cursor-permission' })}
145
145
 
146
146
  let _intuticSessionId = '';
147
147
  function logEvent(verdict, toolName, reason) {
@@ -179,7 +179,7 @@ function logEvent(verdict, toolName, reason) {
179
179
 
180
180
  let raw = '';
181
181
  process.stdin.on('data', (c) => { raw += c; });
182
- process.stdin.on('end', () => {
182
+ process.stdin.on('end', async () => {
183
183
  try {
184
184
  const ctx = JSON.parse(raw);
185
185
  _intuticSessionId = ctx.session_id || ctx.sessionId || ctx.conversation_id || ctx.conversationId || ctx.task_id || ctx.taskId || '';
@@ -226,7 +226,12 @@ process.stdin.on('end', () => {
226
226
  // || input.path\`, so a shell command naming a protected path was only
227
227
  // caught if it also carried a path argument. The shared gate tests the
228
228
  // command and the target independently.
229
- intuticGate(toolName, targetPath, command, logEvent, _intuticWsId, input);
229
+ // Cursor enforces an ask on its shell and MCP hooks only; on preToolUse
230
+ // it accepts one and runs the call, so an escalation there refuses.
231
+ // Cursor's session is its conversation (conversation_id), which
232
+ // requires_before [ok] and plan_approval key their state on (gate body v23).
233
+ await intuticGateWithDecide(toolName, targetPath, command, logEvent, _intuticWsId, input, String(ctx.conversation_id || ''),
234
+ { canAsk: event === 'beforeshellexecution' || event === 'beforemcpexecution' });
230
235
 
231
236
  // Allow — explicitly: with failClosed set, Cursor treats a hook that
232
237
  // prints nothing as a failure and blocks the call.
@@ -1 +1 @@
1
- {"version":3,"file":"cursorHooks.js","sourceRoot":"","sources":["../../src/harness/cursorHooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cursorHooks.js","sourceRoot":"","sources":["../../src/harness/cursorHooks.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { DESTRUCTIVE_COMMAND_PATTERNS, type GuardPattern } from './protectedPaths.js';
2
2
  import { type HookGateHarness } from '@intutic/shared-types';
3
+ import { type GateRuleKind } from '@intutic/shared-types';
3
4
  /**
4
5
  * Bumped when the emitted evaluator changes shape.
5
6
  *
@@ -196,8 +197,111 @@ import { type HookGateHarness } from '@intutic/shared-types';
196
197
  * audit line keeps the full reason. A TRANSPARENT or SILENT_LOG snapshot has no
197
198
  * such line and is unchanged. A v20 gate skips the line, as it skips any
198
199
  * two-column one, and names the rule.
200
+ *
201
+ * v22: decide rules in the snapshot (snapshot format 2). A snapshot carrying
202
+ * one starts with an `@format` data line (tag and `2`) and holds an
203
+ * `@decide` record per tool-call rule (five columns: tag, fallback line id or
204
+ * `-`, stamped rollout, comma-joined tools, base64 of the rule's record;
205
+ * `decideRecord.ts` in `@intutic/shared-types`), inside the digest. Each rule
206
+ * stamped `enforce` also has a fallback line, an ordinary `block` rule on its
207
+ * tools with an id starting `decide-fallback:`, placed right after the
208
+ * SSO-group rules. The JS gates decode each record, rule and hash checked
209
+ * (`decide.ts`, emitted as source), and carry the ones that decode as
210
+ * `decideRules`; the bash gates keep the records whole for the CLI. Every
211
+ * family evaluates decide rules ({@link GATE_EVALUATES_DECIDE}), so it skips
212
+ * a fallback line, but only when a decoded record names it (the bash gates:
213
+ * an `@decide` record of five columns); a record that does not decode leaves
214
+ * its fallback line in force. The decide tier runs after every deterministic
215
+ * tier allowed the call, and only then (a deterministic refusal asks the
216
+ * engine nothing): the JS gates ask the self-hosted engine in process
217
+ * (`intuticGateWithDecide`, an async wrapper around the synchronous tiers),
218
+ * the bash gates and the n8n gate through `intutic decide check --stdin`,
219
+ * each within its harness's budget (`decideBudgetMs` in gateLimits.ts). A
220
+ * rule refuses with `DECIDE_REFUSED`; one that cannot decide asks a person
221
+ * through the harness's {@link AskContract}, or refuses with
222
+ * `DECIDE_ESCALATED` where there is none; an engine (or CLI) that cannot
223
+ * answer refuses an enforcing rule with `GOVERNANCE_UNAVAILABLE` and lets a
224
+ * shadow rule's call on. Each evaluated call is written to the decide log
225
+ * (`~/.intutic/logs/decide-<date>.jsonl`, `decideLog.ts`): the JS gates write
226
+ * it in process, with the record, redaction and drift stats the CLI writes
227
+ * for the bash and n8n gates; a write that fails changes nothing. The
228
+ * synchronous `intuticGate`, which cannot ask
229
+ * the engine, refuses any call an enforcing decide rule names. An unverified
230
+ * snapshot drops the records with the rest of the dynamic tier. A gate
231
+ * reading a format above 2 reports `snapshot_format_newer` and enforces what
232
+ * it reads. A v21 gate skips the records, as it skips any line under six
233
+ * columns, and refuses each fallback line's tools.
234
+ *
235
+ * v23: rule records, post-tool outcomes and the tier order. A
236
+ * snapshot carrying any `@rule` record (five columns: tag, fallback line id
237
+ * or `-`, kind, stamped rollout, base64 of the canonical payload;
238
+ * `gateRuleRecord.ts` in `@intutic/shared-types`) starts with `@format 3`. Three kinds: `requires_outcome`
239
+ * (`requires_before: action:run_tests[ok] -> X`), `scope_paths` (under
240
+ * `scope_paths_mode: enforce`) and `plan_approval` (`required | strict`). Each
241
+ * enforcing record has a `<kind>-fallback:` line, an ordinary `block` rule
242
+ * placed after the SSO-group rules and the decide fallbacks, which a gate
243
+ * skips only when a record that decodes names it and its family evaluates
244
+ * that kind ({@link GATE_EVALUATES_RULE_RECORDS}); the JS gates decode
245
+ * in process, the bash gates in the extractor's Python. A post-tool
246
+ * invocation (`--event post`, or the writer's own post handler) records a
247
+ * test run's outcome in `~/.intutic/hooks/state/outcomes/<sha256(harness NUL
248
+ * session)[:32]>.json` and always allows: the fail-closed prelude exits 0
249
+ * in post mode. Only the harnesses whose post-tool payload was captured
250
+ * report outcomes ({@link POST_TOOL_OBSERVABLE}); on the others a qualified
251
+ * rule refuses with the "not observable" reason. An `[ok]` outcome goes
252
+ * stale on any later file change in the session. Refusals carry
253
+ * `PREREQUISITE_UNMET`, `OUT_OF_SCOPE`, `PLAN_NOT_APPROVED` and `OFF_PLAN`.
254
+ * The tiers run in one order in every family: deterministic refusals (the
255
+ * floor, the snapshot's block rules, `requires_outcome`, the MCP registry
256
+ * and allowlist), then holds, then trajectory (`scope_paths`,
257
+ * `plan_approval`), then decide; a decide allow never releases a hold. The
258
+ * classifier knows `action:run_tests`, `action:http_post`, `action:migrate`,
259
+ * `action:prod_write`, `action:destroy`, `action:payment` and the
260
+ * `action:force_push` compound. A v22 gate skips the records, refuses each
261
+ * fallback line's calls, and holds lane and revert holds through their
262
+ * `phrase` rules.
263
+ */
264
+ export declare const GATE_VERSION = 23;
265
+ /**
266
+ * Whether each family of rendered gate evaluates each `@rule` kind. A family
267
+ * that does not keeps the kind's fallback lines in force, so it refuses what
268
+ * the rule covers. The n8n workflow gate has no session, no tool results and
269
+ * no file targets, so it keeps every fallback line.
270
+ */
271
+ export declare const GATE_EVALUATES_RULE_RECORDS: Readonly<Record<'js' | 'bash' | 'n8n', Readonly<Record<GateRuleKind, boolean>>>>;
272
+ /**
273
+ * Whether a harness reports tool results a gate can read a test outcome
274
+ * from: only where the post-tool payload was captured from
275
+ * the harness itself and carries an exit code or a structured error flag.
276
+ * The fixtures are `__tests__/fixtures/post-tool/<harness>.json`.
277
+ *
278
+ * - `claude-code`: `PostToolUse` (Bash `tool_response.stdout`/`stderr`, no
279
+ * exit code) and `PostToolUseFailure` (`error`, first line `Exit code N`);
280
+ * captured from Claude Code 2.1.233.
281
+ * - `gemini-cli` (the bash gate the antigravity writer installs): `AfterTool`
282
+ * (`tool_response.llmContent` carrying `Exit Code: N` when non-zero);
283
+ * captured from Gemini CLI 0.36.0.
284
+ *
285
+ * Every other harness is `false`: no payload was captured, so a qualified
286
+ * `requires_before` there refuses with the "not observable" reason.
199
287
  */
200
- export declare const GATE_VERSION = 21;
288
+ export declare const POST_TOOL_OBSERVABLE: Readonly<Record<HookGateHarness, boolean>>;
289
+ /**
290
+ * The approved-plans cache the daemon writes (§4.3, `approvedPlans.ts`), in
291
+ * the same directory as the policy snapshot. Its `#expires` header is three
292
+ * sync intervals after it was written; a gate reads a cache that is missing,
293
+ * past it, or fails its digest or workspace check as "no plan approved".
294
+ */
295
+ export declare const APPROVED_PLANS_FILE = "approved-plans.jsonl";
296
+ /**
297
+ * Whether each family of rendered gate evaluates the decide rules a snapshot
298
+ * carries: the JS gates, the bash gates and the n8n workflow gate. A family
299
+ * that does not keeps every decide rule's fallback line in force, so it
300
+ * refuses what the rule covers exactly as a gate that reads no `@decide`
301
+ * records does; it never skips a fallback line it cannot stand in for. Set a
302
+ * family only where its decide tier runs.
303
+ */
304
+ export declare const GATE_EVALUATES_DECIDE: Readonly<Record<'js' | 'bash' | 'n8n', boolean>>;
201
305
  /**
202
306
  * The refusal codes a hook gate's JSON decision carries, as `code` beside the
203
307
  * deciding `ruleId` (null when no rule decided), for the harnesses that read
@@ -223,13 +327,23 @@ export declare const GATE_VERSION = 21;
223
327
  * (`gateDeadlineMs` in `@intutic/shared-types`);
224
328
  * - `UNREADABLE_CALL`: the payload held no tool call the gate could read;
225
329
  * - `GATE_CRASHED`: the gate failed while deciding, or a chaos run's
226
- * `INTUTIC_CHAOS_PLAN` is set but unreadable.
330
+ * `INTUTIC_CHAOS_PLAN` is set but unreadable;
331
+ * - `DECIDE_REFUSED`, `DECIDE_ESCALATED`, `GOVERNANCE_UNAVAILABLE`: a decide
332
+ * rule refused, could not be decided where the harness cannot ask, or its
333
+ * engine was unavailable while it enforces.
334
+ * - `PREREQUISITE_UNMET`: a `requires_before: action:run_tests[ok] -> X` rule
335
+ * is not met (no run, a failed or unreadable one, a stale one, no session,
336
+ * or a harness whose results cannot be observed);
337
+ * - `OUT_OF_SCOPE`: a file change outside `scope_paths` under
338
+ * `scope_paths_mode: enforce`;
339
+ * - `PLAN_NOT_APPROVED`, `OFF_PLAN`: `plan_approval:` and no approved plan
340
+ * for the session, or (`strict`) a tool that is not one of its steps.
227
341
  *
228
342
  * A fault a chaos run injects into an allowed call is not a refusal by
229
343
  * governance: its JSON decision carries `code: null` and `ruleId: null`, or
230
344
  * `code: 'HELD'` and `ruleId: null` when a permission fault holds the call.
231
345
  */
232
- export declare const HOOK_REFUSAL_CODES: readonly ["BUILT_IN_RULE", "SNAPSHOT", "SSO_GROUP", "HELD", "SERVER_BLOCKED", "SERVER_HELD", "SERVER_NOT_APPROVED", "TOOL_DISABLED", "SERVER_NOT_ALLOWED", "POLICY_SNAPSHOT_UNVERIFIED", "COMMAND_TOO_LARGE", "GATE_DEADLINE", "UNREADABLE_CALL", "GATE_CRASHED"];
346
+ export declare const HOOK_REFUSAL_CODES: readonly ["BUILT_IN_RULE", "SNAPSHOT", "SSO_GROUP", "HELD", "PREREQUISITE_UNMET", "OUT_OF_SCOPE", "OFF_PLAN", "PLAN_NOT_APPROVED", "SERVER_BLOCKED", "SERVER_HELD", "SERVER_NOT_APPROVED", "TOOL_DISABLED", "SERVER_NOT_ALLOWED", "POLICY_SNAPSHOT_UNVERIFIED", "COMMAND_TOO_LARGE", "GATE_DEADLINE", "UNREADABLE_CALL", "GATE_CRASHED", "DECIDE_REFUSED", "DECIDE_ESCALATED", "GOVERNANCE_UNAVAILABLE"];
233
347
  /**
234
348
  * The coarse command → action-token classification the hold tier keys on:
235
349
  * `review_before: action:deploy` holds a shell command that contains one of
@@ -242,6 +356,22 @@ export declare const HOOK_REFUSAL_CODES: readonly ["BUILT_IN_RULE", "SNAPSHOT",
242
356
  * that is what the test's regex finds.
243
357
  */
244
358
  export declare const ACTION_NEEDLES: ReadonlyArray<readonly [string, readonly string[]]>;
359
+ /**
360
+ * `action:force_push` is a compound, not a needle list (§5.1): the `git push`
361
+ * phrase AND a whole-word ` --force ` or ` -f ` in the space-padded,
362
+ * whitespace-collapsed, lower-cased command. ` --force-with-lease` does not
363
+ * match.
364
+ */
365
+ export declare const FORCE_PUSH_TOKEN = "action:force_push";
366
+ export declare const FORCE_PUSH_FLAGS: readonly [" --force ", " -f "];
367
+ /**
368
+ * `action:destroy` also covers a recursive, forced `rm` whose target is
369
+ * outside the working tree (absolute, under `~`, or containing `..`; Q3).
370
+ * No phrase can say "outside the tree", so both classifiers run the
371
+ * predicate `removesOutsideTree` of `@intutic/gate` (`actions.ts`) after the
372
+ * needles; `rm -rf build/` stays unclassified.
373
+ */
374
+ export declare const DESTROY_TOKEN = "action:destroy";
245
375
  /**
246
376
  * The (lower-cased) tool names whose `command` the classifier reads: every
247
377
  * harness's shell tool. The same list as the proxy's `SHELL_TOOLS` in
@@ -261,7 +391,9 @@ export declare const REVIEW_REQUEST_VERSION = 1;
261
391
  /**
262
392
  * The Python the bash gates run, defined once per gate script: the phrase
263
393
  * matcher ({@link PHRASES_PY_SOURCE}), the MCP registry decision
264
- * ({@link MCP_REGISTRY_PY_SOURCE}) and four entry points over them.
394
+ * ({@link MCP_REGISTRY_PY_SOURCE}), the shared rule-record ports (test
395
+ * outcomes, scope match, the `@rule` decoder and refusal detail, emitted
396
+ * from `intutic_clawde/gate/`), and entry points over them.
265
397
  *
266
398
  * - `intutic_actions(tool, command)` — the hold classifier, called by
267
399
  * {@link SHELL_EXTRACT}'s Python, which already reads the raw tool input:
@@ -289,6 +421,18 @@ export declare const GATE_PY_LIB: string;
289
421
  * this fires on "the daemon has been dead for a week", not on "it is Sunday".
290
422
  */
291
423
  export declare const SNAPSHOT_STALE_AFTER_DAYS = 7;
424
+ /**
425
+ * The newest snapshot format a v23 gate reads: 3, the `@rule` records' (LLD
426
+ * #75). The shared `SNAPSHOT_FORMAT` names the decide records' 2 until the
427
+ * shared modules move it.
428
+ */
429
+ export declare const GATE_READS_FORMAT: number;
430
+ /**
431
+ * What a gate reports, once per call, on a snapshot in a format newer than it
432
+ * reads (`snapshot_format_newer`); `{n}` is the snapshot's format. It still
433
+ * enforces every line it reads, and a fallback line of a rule it cannot read.
434
+ */
435
+ export declare const FORMAT_NEWER_MESSAGE: string;
292
436
  /**
293
437
  * How a gate refuses a call.
294
438
  *
@@ -313,6 +457,31 @@ export declare const SNAPSHOT_STALE_AFTER_DAYS = 7;
313
457
  * the n8n workflow gate takes.
314
458
  */
315
459
  export type BlockContract = 'exit2' | 'stdout-cancel' | 'stdout-decision-deny' | 'throw';
460
+ /**
461
+ * How a gate asks a person about a call a decide rule could not decide
462
+ * (`escalate`), beside the {@link BlockContract} it refuses with. Only the
463
+ * shapes each harness documents on its pre-tool path:
464
+ *
465
+ * - `claude-pretooluse`: exit 0 with
466
+ * `{"hookSpecificOutput":{"hookEventName":"PreToolUse","permissionDecision":"ask","permissionDecisionReason":…}}`;
467
+ * - `copilot-decision`: exit 0 with `permissionDecision: "ask"` and its
468
+ * reason both at the top level (the Copilot CLI) and under
469
+ * `hookSpecificOutput` (VS Code);
470
+ * - `cursor-permission`: exit 0 with `{"permission":"ask","user_message":…,"agent_message":…}`,
471
+ * on the shell and MCP hooks only (Cursor accepts an ask on `preToolUse`
472
+ * and does not enforce it, so the writer says when the call can ask);
473
+ * - `antigravity-force-ask`: exit 0 with `{"decision":"force_ask","reason":…}`,
474
+ * which prompts even where the user chose "Always Allow";
475
+ * - `hermes-approve`: exit 0 with `{"action":"approve","message":…,"rule_key":…}`,
476
+ * Hermes' human approval (never `{"decision":"approve"}`, which Hermes
477
+ * reads as an allow);
478
+ * - `throw-ask`: an in-process gate throws an error carrying `intuticAsk`,
479
+ * which the writer turns into its host's approval request;
480
+ * - `none`: the harness cannot ask, or asks and then runs the call (Codex),
481
+ * so an escalation refuses through the {@link BlockContract} with
482
+ * `DECIDE_ESCALATED`. An escalation never allows.
483
+ */
484
+ export type AskContract = 'none' | 'claude-pretooluse' | 'copilot-decision' | 'cursor-permission' | 'antigravity-force-ask' | 'hermes-approve' | 'throw-ask';
316
485
  /**
317
486
  * The `.rules` snapshot record layout, defined once so the writer and every
318
487
  * reader cannot disagree about column order.
@@ -407,6 +576,8 @@ export interface ShellGateOptions {
407
576
  * writer whose artifact lives elsewhere passes it.
408
577
  */
409
578
  reviewRequestFile?: string;
579
+ /** How this harness asks a person about an escalated decide rule; `none` (the default) refuses. */
580
+ ask?: AskContract;
410
581
  }
411
582
  /**
412
583
  * The JS classifier, `intuticActions(toolName, command)`. Needs
@@ -429,6 +600,8 @@ export interface JsGateOptions {
429
600
  /** See {@link ShellGateOptions.reviewRequestFile}. Writers whose artifact
430
601
  * does not live in `.intutic/hooks/` (cline, opencode) pass it. */
431
602
  reviewRequestFile?: string;
603
+ /** How this harness asks a person about an escalated decide rule; `none` (the default) refuses. */
604
+ ask?: AskContract;
432
605
  }
433
606
  /**
434
607
  * The JavaScript gate body.
@@ -1 +1 @@
1
- {"version":3,"file":"gateBody.d.ts","sourceRoot":"","sources":["../../src/harness/gateBody.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gateBody.d.ts","sourceRoot":"","sources":["../../src/harness/gateBody.ts"],"names":[],"mappings":"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"}