@intutic/gate 2.2.0 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +29 -12
- package/dist/actions.d.ts.map +1 -1
- package/dist/actions.js +20 -6
- package/dist/actions.js.map +1 -1
- package/dist/client.d.ts +19 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +48 -4
- package/dist/client.js.map +1 -1
- package/dist/dsh.d.ts +1 -1
- package/dist/dsh.js +1 -1
- package/dist/errors.d.ts +25 -2
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +53 -0
- package/dist/errors.js.map +1 -1
- package/dist/eve.d.ts +11 -11
- package/dist/eve.d.ts.map +1 -1
- package/dist/eve.js +10 -10
- package/dist/eve.js.map +1 -1
- package/dist/gate.d.ts +33 -1
- package/dist/gate.d.ts.map +1 -1
- package/dist/gate.js +118 -9
- package/dist/gate.js.map +1 -1
- package/dist/harness.d.ts +28 -20
- package/dist/harness.d.ts.map +1 -1
- package/dist/harness.js +165 -26
- package/dist/harness.js.map +1 -1
- package/dist/hold.d.ts +69 -0
- package/dist/hold.d.ts.map +1 -0
- package/dist/hold.js +127 -0
- package/dist/hold.js.map +1 -0
- package/dist/imagecheck.d.ts +14 -7
- package/dist/imagecheck.d.ts.map +1 -1
- package/dist/imagecheck.js +3 -3
- package/dist/imagecheck.js.map +1 -1
- package/dist/index.d.ts +7 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/limits.d.ts +26 -0
- package/dist/limits.d.ts.map +1 -0
- package/dist/limits.js +45 -0
- package/dist/limits.js.map +1 -0
- package/dist/managedAgents.d.ts +3 -3
- package/dist/managedAgents.d.ts.map +1 -1
- package/dist/managedAgents.js +2 -2
- package/dist/mcpRegistryRecord.d.ts +143 -0
- package/dist/mcpRegistryRecord.d.ts.map +1 -0
- package/dist/mcpRegistryRecord.js +217 -0
- package/dist/mcpRegistryRecord.js.map +1 -0
- package/dist/openai.d.ts +3 -3
- package/dist/openai.d.ts.map +1 -1
- package/dist/openai.js +9 -8
- package/dist/openai.js.map +1 -1
- package/dist/phrases.d.ts +87 -0
- package/dist/phrases.d.ts.map +1 -0
- package/dist/phrases.js +236 -0
- package/dist/phrases.js.map +1 -0
- package/dist/sequence.d.ts +52 -0
- package/dist/sequence.d.ts.map +1 -0
- package/dist/sequence.js +121 -0
- package/dist/sequence.js.map +1 -0
- package/dist/snapshot.d.ts +50 -36
- package/dist/snapshot.d.ts.map +1 -1
- package/dist/snapshot.js +90 -48
- package/dist/snapshot.js.map +1 -1
- package/dist/ssoGroups.d.ts +6 -0
- package/dist/ssoGroups.d.ts.map +1 -1
- package/dist/ssoGroups.js +27 -7
- package/dist/ssoGroups.js.map +1 -1
- package/dist/workflow.d.ts +5 -3
- package/dist/workflow.d.ts.map +1 -1
- package/dist/workflow.js +8 -4
- package/dist/workflow.js.map +1 -1
- package/package.json +1 -1
package/dist/openai.d.ts
CHANGED
|
@@ -109,7 +109,7 @@
|
|
|
109
109
|
* guardrail injected by this module also gates voice-agent tool calls.
|
|
110
110
|
* `__tests__/openai.test.ts` drives a real `RealtimeSession` (0.16.1) with a
|
|
111
111
|
* stand-in transport emitting `function_call`: a refused call never executes
|
|
112
|
-
* and the BLOCKED message goes back via `sendFunctionCallOutput
|
|
112
|
+
* and the BLOCKED message goes back via `sendFunctionCallOutput`.
|
|
113
113
|
*
|
|
114
114
|
* ## LLM egress and the tracing DLP leak
|
|
115
115
|
*
|
|
@@ -373,8 +373,8 @@ export interface OpenAiGateConfig extends GateConfig {
|
|
|
373
373
|
*/
|
|
374
374
|
/**
|
|
375
375
|
* Where to point `@openai/agents`' tracing exporter so traces stay governed
|
|
376
|
-
*
|
|
377
|
-
* API key the gate uses. Pass the result to the SDK's own exporter —
|
|
376
|
+
* rather than lost: the control plane's ingest route, authenticated with the
|
|
377
|
+
* same API key the gate uses. Pass the result to the SDK's own exporter —
|
|
378
378
|
*
|
|
379
379
|
* ```ts
|
|
380
380
|
* import { setTraceProcessors, BatchTraceProcessor, OpenAITracingExporter } from '@openai/agents'
|
package/dist/openai.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../src/openai.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmJG;AAGH,OAAO,EAAE,IAAI,EAAiC,MAAM,WAAW,CAAA;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAItD;;0DAE0D;AAC1D,eAAO,MAAM,cAAc,YAAY,CAAA;AASvC;;qCAEqC;AACrC,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;CAClB;AAED;;mDAEmD;AACnD,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,sBAAsB,CAAA;CACjC;AAED;;yEAEyE;AACzE,MAAM,WAAW,iCAAiC;IAChD,QAAQ,EAAE;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,eAAe,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;IACxE,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAED;;0CAE0C;AAC1C,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,YAAY,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,CAAC,IAAI,EAAE,4BAA4B,KAAK,OAAO,CAAC,iCAAiC,CAAC,CAAA;CACxF;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,iEAAiE;AACjE,MAAM,WAAW,0BAA0B;IACzC,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED;;oDAEoD;AACpD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,WAAW,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;CACjD;AAkDD,MAAM,WAAW,iBAAiB;IAChC,4EAA4E;IAC5E,IAAI,CAAC,EAAE,IAAI,CAAA;CACZ;AAeD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,SAAS,CAYhF;AAmBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,GAAE,iBAAsB,GAAG,wBAAwB,CAoB3F;
|
|
1
|
+
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../src/openai.ts"],"names":[],"mappings":"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"}
|
package/dist/openai.js
CHANGED
|
@@ -109,7 +109,7 @@
|
|
|
109
109
|
* guardrail injected by this module also gates voice-agent tool calls.
|
|
110
110
|
* `__tests__/openai.test.ts` drives a real `RealtimeSession` (0.16.1) with a
|
|
111
111
|
* stand-in transport emitting `function_call`: a refused call never executes
|
|
112
|
-
* and the BLOCKED message goes back via `sendFunctionCallOutput
|
|
112
|
+
* and the BLOCKED message goes back via `sendFunctionCallOutput`.
|
|
113
113
|
*
|
|
114
114
|
* ## LLM egress and the tracing DLP leak
|
|
115
115
|
*
|
|
@@ -339,10 +339,11 @@ function wrapHostedMcpTool(tool, opts) {
|
|
|
339
339
|
// The caller's original config demanded a human for this tool but gave
|
|
340
340
|
// the runner no resolver. The hosted-MCP approval loop consumes
|
|
341
341
|
// decisions with a truthy check (see OpenAiApprovalDecision's doc), so
|
|
342
|
-
// there is no "leave it pending" here
|
|
343
|
-
//
|
|
344
|
-
//
|
|
345
|
-
// composes with it — to
|
|
342
|
+
// there is no "leave it pending" here, and the demand is the caller's
|
|
343
|
+
// own config rather than an Intutic hold rule, so there is no hold to
|
|
344
|
+
// record either: an approval nobody can grant is a block. Keep your own
|
|
345
|
+
// onApproval on the hostedMcpTool — this wrapper composes with it — to
|
|
346
|
+
// retain a human flow.
|
|
346
347
|
return {
|
|
347
348
|
approve: false,
|
|
348
349
|
reason: '[Intutic Governance] BLOCKED: this MCP tool call requires human approval ' +
|
|
@@ -361,7 +362,7 @@ function wrapHostedMcpTool(tool, opts) {
|
|
|
361
362
|
/** Shared shell/apply_patch wrapping: force every action through the
|
|
362
363
|
* approval path, gate it there, then replay the tool's original policy.
|
|
363
364
|
*
|
|
364
|
-
* Fall-through, stated because it is easy to miss
|
|
365
|
+
* Fall-through, stated because it is easy to miss: this relies on
|
|
365
366
|
* `needsApproval`/`onApproval` being the SDK's veto point for these two
|
|
366
367
|
* hosted tools. A future `@openai/agents` that executes a shell or
|
|
367
368
|
* apply_patch action without consulting `onApproval` would bypass the gate
|
|
@@ -613,8 +614,8 @@ export function suppressAgentsTracingExport() {
|
|
|
613
614
|
*/
|
|
614
615
|
/**
|
|
615
616
|
* Where to point `@openai/agents`' tracing exporter so traces stay governed
|
|
616
|
-
*
|
|
617
|
-
* API key the gate uses. Pass the result to the SDK's own exporter —
|
|
617
|
+
* rather than lost: the control plane's ingest route, authenticated with the
|
|
618
|
+
* same API key the gate uses. Pass the result to the SDK's own exporter —
|
|
618
619
|
*
|
|
619
620
|
* ```ts
|
|
620
621
|
* import { setTraceProcessors, BatchTraceProcessor, OpenAITracingExporter } from '@openai/agents'
|
package/dist/openai.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../src/openai.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../src/openai.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmJG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,UAAU,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAE/D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAEhD;;0DAE0D;AAC1D,MAAM,CAAC,MAAM,cAAc,GAAG,SAAS,CAAA;AA2HvC,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAA;AACzD,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAA;AAOpE,6EAA6E;AAE7E,SAAS,WAAW,CAAC,QAA0B,EAAE,IAAY;IAC3D,MAAM,CAAC,GAAG,QAAQ,IAAI,UAAU,EAAE,CAAA;IAClC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,8EAA8E;YAC5E,eAAe,IAAI,uCAAuC,CAC7D,CAAA;IACH,CAAC;IACD,OAAO,CAAC,CAAA;AACV,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,GAA8B;IACnE,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAA;IACnB,IAAI,MAAe,CAAA;IACnB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,GAAG,EAAE,CAAA;IAChB,CAAC;IACD,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5E,OAAO,MAAmB,CAAA;IAC5B,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAA;AAC1B,CAAC;AAED,SAAS,YAAY,CAAC,GAAY;IAChC,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAC/D,OAAO,+CAA+C,MAAM,8DAA8D,CAAA;AAC5H,CAAC;AAED;;wEAEwE;AACxE,SAAS,eAAe,CAAC,GAAY;IACnC,IAAI,GAAG,YAAY,kBAAkB,EAAE,CAAC;QACtC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,CAAA;IAChD,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,CAAA;AACtD,CAAC;AAED,6EAA6E;AAE7E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAA0B,EAAE;IAC/D,OAAO;QACL,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,cAAc;QACpB,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YAClB,MAAM,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,wBAAwB,CAAC,CAAA;YAC1D,IAAI,CAAC;gBACH,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAA;YACpF,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,GAAG,YAAY,kBAAkB,EAAE,CAAC;oBACtC,OAAO;wBACL,QAAQ,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE;wBACzD,UAAU,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE;qBAC3D,CAAA;gBACH,CAAC;gBACD,OAAO,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,CAAA;YAC5E,CAAC;YACD,OAAO,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAA;QACxC,CAAC;KACF,CAAA;AACH,CAAC;AAED,4EAA4E;AAE5E,SAAS,gBAAgB,CAAC,IAAuB,EAAE,IAAuB;IACxE,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,IAAI,EAAE,CAAA;IAC3C,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,cAAc,CAAC;QAAE,OAAO,IAAI,CAAA;IAClE,uEAAuE;IACvE,0DAA0D;IAC1D,OAAO,EAAE,GAAG,IAAI,EAAE,eAAe,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAA;AAChF,CAAC;AAED,SAAS,WAAW,CAAC,IAAqB;IACxC,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY;QAAE,OAAO,IAAI,CAAA;IAC3C,MAAM,EAAE,GAAG,IAAI,CAAC,YAAsD,CAAA;IACtE,OAAO,EAAE,EAAE,IAAI,KAAK,KAAK,CAAA;AAC3B,CAAC;AAED;;;;qDAIqD;AACrD,SAAS,0BAA0B,CAAC,eAAwB,EAAE,QAAgB;IAC5E,IAAI,eAAe,KAAK,SAAS,IAAI,eAAe,KAAK,OAAO;QAAE,OAAO,KAAK,CAAA;IAC9E,IAAI,eAAe,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAA;IAC7C,IAAI,eAAe,KAAK,IAAI,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE,CAAC;QACpE,MAAM,MAAM,GAAG,eAGd,CAAA;QACD,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,EAAE,UAAU,IAAI,MAAM,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,CAAA;QAC5E,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAA;QAC/C,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAgC;IAChE,MAAM,OAAO,GAAG,IAAI,EAAE,OAAiG,CAAA;IACvH,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,kBAAkB;QAAE,OAAO,IAAI,CAAA;IAChE,MAAM,EAAE,GAAG,OAAO,CAAC,YAAY,IAAI,EAAE,CAAA;IACrC,MAAM,QAAQ,GACZ,OAAO,EAAE,CAAC,IAAI,KAAK,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;QAC/C,CAAC,CAAC,EAAE,CAAC,IAAI;QACT,CAAC,CAAC,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,KAAK,sBAAsB;YAC3E,CAAC,CAAC,OAAO,CAAC,IAAI;YACd,CAAC,CAAC,IAAI,CAAA;IACZ,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IAClC,OAAO;QACL,QAAQ;QACR,GAAG,CAAC,OAAO,EAAE,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5E,CAAA;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAqB,EAAE,IAAuB;IACvE,MAAM,MAAM,GAAG,IAAiD,CAAA;IAChE,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IAEzC,MAAM,EAAE,GAA+B,EAAE,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE,CAAA;IACvE,MAAM,kBAAkB,GAAG,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,UAAU,CAAA;IAC1D,MAAM,uBAAuB,GAAG,EAAE,CAAC,gBAAgB,IAAI,EAAE,CAAC,eAAe,CAAA;IAEzE,EAAE,CAAC,gBAAgB,GAAG,QAAQ,CAAA;IAC9B,EAAE,CAAC,WAAW,GAAG,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QACvC,MAAM,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;QAC/C,MAAM,OAAO,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAA;QAC9C,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,uEAAuE;YACvE,sBAAsB;YACtB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM,EACJ,sFAAsF;oBACtF,qEAAqE;aACxE,CAAA;QACH,CAAC;QACD,IAAI,CAAC;YACH,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,sBAAsB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAA;QAC/E,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,eAAe,CAAC,GAAG,CAAC,CAAA;QAC7B,CAAC;QACD,IAAI,kBAAkB;YAAE,OAAO,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;QAChE,IAAI,0BAA0B,CAAC,uBAAuB,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1E,uEAAuE;YACvE,gEAAgE;YAChE,uEAAuE;YACvE,sEAAsE;YACtE,sEAAsE;YACtE,wEAAwE;YACxE,uEAAuE;YACvE,uBAAuB;YACvB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM,EACJ,2EAA2E;oBAC3E,+EAA+E;oBAC/E,oDAAoD;aACvD,CAAA;QACH,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAC1B,CAAC,CAAA;IACD,OAAO,EAAE,CAAC,eAAe,CAAA;IACzB,OAAO,EAAE,CAAC,UAAU,CAAA;IAEpB,MAAM,OAAO,GAAoB,EAAE,GAAG,IAAI,EAAE,YAAY,EAAE,EAA6B,EAAE,CAAA;IACzF,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAA;IAC3E,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;;;;;;;;yDASyD;AACzD,SAAS,qBAAqB,CAC5B,IAAO,EACP,IAAuB,EACvB,OAAmG;IAEnG,MAAM,MAAM,GAAG,IAAmC,CAAA;IAClD,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IAEzC,MAAM,qBAAqB,GAAG,IAAI,CAAC,aAAa,CAAA;IAChD,MAAM,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAA;IAE1C,MAAM,UAAU,GAAG,KAAK,EAAE,UAAmB,EAAE,IAAgC,EAAmC,EAAE;QAClH,MAAM,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAA;QAC/C,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QACtC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM,EACJ,uDAAuD,IAAI,CAAC,IAAI,mBAAmB;oBACnF,2EAA2E;aAC9E,CAAA;QACH,CAAC;QACD,IAAI,CAAC;YACH,KAAK,MAAM,SAAS,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBAC3C,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;YACrC,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,eAAe,CAAC,GAAG,CAAC,CAAA;QAC7B,CAAC;QACD,yEAAyE;QACzE,+CAA+C;QAC/C,MAAM,gBAAgB,GACpB,OAAO,qBAAqB,KAAK,UAAU;YACzC,CAAC,CAAC,MAAM,qBAAqB,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC;YACzE,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAA;QACpC,IAAI,CAAC,gBAAgB;YAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;QAC/C,IAAI,kBAAkB;YAAE,OAAO,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;QACnE,yEAAyE;QACzE,uEAAuE;QACvE,gEAAgE;QAChE,uEAAuE;QACvE,OAAO,EAAE,CAAA;IACX,CAAC,CAAA;IAED,MAAM,OAAO,GAAM,EAAE,GAAG,IAAI,EAAE,aAAa,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,CAAA;IAC3E,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAA;IAC3E,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,SAAS,YAAY,CAAC,OAAgB;IACpC,MAAM,GAAG,GAAG,OAA4F,CAAA;IACxG,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY;QAAE,OAAO,IAAI,CAAA;IAClD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAA;IACjF,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IAClC,OAAO;QACL,yEAAyE;QACzE,uDAAuD;QACvD,UAAU,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACrE,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,GAAG,CAAC,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAClE,CAAA;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAgB;IACzC,MAAM,GAAG,GAAG,OAIC,CAAA;IACb,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,kBAAkB,IAAI,CAAC,GAAG,CAAC,SAAS;QAAE,OAAO,IAAI,CAAA;IAC1E,MAAM,EAAE,GAAG,GAAG,CAAC,SAAS,CAAA;IACxB,IAAI,OAAO,EAAE,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAA;IAC5C,MAAM,SAAS,GAAc;QAC3B,IAAI,EAAE,EAAE,CAAC,IAAI;QACb,SAAS,EAAE,OAAO,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;QAC5D,wEAAwE;QACxE,GAAG,CAAC,OAAO,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,GAAG,CAAC,OAAO,EAAE,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACjE,CAAA;IACD,OAAO;QACL,UAAU,EAAE,CAAC,SAAS,CAAC;QACvB,MAAM,EAAE,EAAE;QACV,GAAG,CAAC,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAClE,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,4BAA4B,CAC1C,OAKI,EAAE;IAEN,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,sBAAsB,CAAA;IACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;QAC1C,MAAM,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,gCAAgC,CAAC,CAAA;QAClE,MAAM,SAAS,GACb,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YACrE,CAAC,CAAE,MAAoB;YACvB,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAA;QACvB,IAAI,CAAC;YACH,MAAM,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;QACpC,CAAC;QAAC,MAAM,CAAC;YACP,mEAAmE;YACnE,mEAAmE;YACnE,kBAAkB;YAClB,OAAO,IAAI,CAAA;QACb,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;QAClD,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC,CAAA;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAuB,EAAE,IAAuB;IACxE,MAAM,MAAM,GAAG,IAAmD,CAAA;IAClE,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IACzC,MAAM,OAAO,GAAsB;QACjC,GAAG,IAAI;QACP,aAAa,EAAE,4BAA4B,CAAC;YAC1C,GAAG,IAAI;YACP,QAAQ,EAAE,IAAI,CAAC,IAAI;YACnB,QAAQ,EAAE,OAAO,IAAI,CAAC,aAAa,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;SACpF,CAAC;KACH,CAAA;IACD,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAA;IAC3E,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,4EAA4E;AAE5E,SAAS,WAAW,CAAmB,IAAO,EAAE,IAAuB;IACrE,MAAM,CAAC,GAAG,IAA2C,CAAA;IACrD,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QACf,KAAK,UAAU;YACb,OAAO,gBAAgB,CAAC,IAAoC,EAAE,IAAI,CAAiB,CAAA;QACrF,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,MAAM,MAAM,GAAG,IAAkC,CAAA;YACjD,sEAAsE;YACtE,qEAAqE;YACrE,+DAA+D;YAC/D,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAE,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAkB,CAAC,CAAC,CAAC,IAAI,CAAA;QACvF,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,oEAAoE;YACpE,uEAAuE;YACvE,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS;gBAAE,OAAO,IAAI,CAAA;YACtC,OAAO,qBAAqB,CAAC,IAAiC,EAAE,IAAI,EAAE,YAAY,CAAiB,CAAA;QACrG,CAAC;QACD,KAAK,aAAa;YAChB,OAAO,qBAAqB,CAAC,IAAsC,EAAE,IAAI,EAAE,iBAAiB,CAAiB,CAAA;QAC/G,KAAK,UAAU;YACb,OAAO,gBAAgB,CAAC,IAAoC,EAAE,IAAI,CAAiB,CAAA;QACrF;YACE,OAAO,IAAI,CAAA;IACf,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,SAAS,CAAmB,KAAmB,EAAE,OAA0B,EAAE;IAC3F,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA;AAC/C,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,UAAU,SAAS,CAA4B,KAAQ,EAAE,OAA0B,EAAE;IACzF,MAAM,MAAM,GAAG,KAAoC,CAAA;IACnD,IAAI,MAAM,CAAC,aAAa,CAAC,KAAK,IAAI;QAAE,OAAO,KAAK,CAAA;IAEhD,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IAE1C,MAAM,mBAAmB,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAA8C,CACrG;IAAC,KAAyB,CAAC,WAAW,GAAG,KAAK,EAAE,GAAG,IAAe,EAAE,EAAE,CACrE,SAAS,CAAC,MAAM,mBAAmB,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,CAAA;IAErD,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAA;IAChF,OAAO,KAAK,CAAA;AACd,CAAC;AAED,4EAA4E;AAE5E;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,2BAA2B;IACzC,OAAO,CAAC,GAAG,CAAC,6BAA6B,GAAG,GAAG,CAAA;AACjD,CAAC;AAiBD;;;;;;;;;;;;GAYG;AACH;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,6BAA6B,CAAC,MAAyB,OAAO,CAAC,GAAG;IAChF,yEAAyE;IACzE,0EAA0E;IAC1E,iEAAiE;IACjE,IAAI,IAAI,GAAG,GAAG,CAAC,yBAAyB,IAAI,EAAE,CAAA;IAC9C,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IACnD,MAAM,MAAM,GAAG,GAAG,CAAC,eAAe,IAAI,EAAE,CAAA;IACxC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,qHAAqH,CAAC,CAAA;IACxI,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,kDAAkD,EAAE,MAAM,EAAE,CAAA;AACxF,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,SAA2B,EAAE;IAC7D,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,SAAS,CAAC,KAAK,SAAS,EAAE,CAAC;QACtD,2BAA2B,EAAE,CAAA;IAC/B,CAAC;IAED,IAAI,MAAyB,CAAA;IAC7B,IAAI,CAAC;QACH,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC;YAC1B,OAAO,EAAE,eAAe;YACxB,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,UAAU,EAAE;SAC9E,CAAC,CAAA;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,GAAG,IAAI,CAAA;IACf,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACrC,OAAO,CAAC,IAAI,CAAC,CAAA;IACb,OAAO,IAAI,CAAA;AACb,CAAC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Phrase matching for shell commands and SQL in linear time.
|
|
3
|
+
*
|
|
4
|
+
* Every command classifier asks the same question: does this text contain
|
|
5
|
+
* `git push`, `drop table`, `curl --data`, whatever separates the words? The
|
|
6
|
+
* separators that count are the ones the shell or the database reads as a
|
|
7
|
+
* word break:
|
|
8
|
+
*
|
|
9
|
+
* - whitespace, a two-character escaped `\n`, `\t` or `\r`, and a backslash
|
|
10
|
+
* before whitespace (a line continuation, or an escaped space);
|
|
11
|
+
* - a `/* … *\/` comment;
|
|
12
|
+
* - a `-- …` comment that runs to a newline (real or escaped);
|
|
13
|
+
* - a run of options starting with `--` (`git --no-pager push`,
|
|
14
|
+
* `kubectl --context prod apply`), which stops at `;`, `&`, `|` or a real
|
|
15
|
+
* newline — the end of the shell command it is in.
|
|
16
|
+
*
|
|
17
|
+
* The proxy's Rust classifier expresses this as a regex (`SQL_GAP` in
|
|
18
|
+
* `actions.rs`), which is safe there: Rust's engine is linear. JavaScript's
|
|
19
|
+
* and Python's backtrack, and that regex took seconds on a few hundred
|
|
20
|
+
* kilobytes of `git -- git -- …` — text an agent can be talked into producing.
|
|
21
|
+
* So here the text is cut into words in one pass, and a phrase is matched over
|
|
22
|
+
* the words right to left with one array per phrase word: O(length × words).
|
|
23
|
+
* No regex runs on the input.
|
|
24
|
+
*
|
|
25
|
+
* The two functions are self-contained on purpose — no imports, no module
|
|
26
|
+
* state — because the hook gates emit them as source (`phraseText.toString()`)
|
|
27
|
+
* and run them outside this package. `packages/gate-js/src/phrases.ts` is a
|
|
28
|
+
* byte-identical copy and `intutic_clawde/gate/phrases.py` a transliteration;
|
|
29
|
+
* all of them run `action_vectors.json` beside the proxy's `actions.rs`.
|
|
30
|
+
*
|
|
31
|
+
* @module
|
|
32
|
+
*/
|
|
33
|
+
/** A text cut into words, ready for any number of {@link hasPhrase} calls. */
|
|
34
|
+
export interface PhraseText {
|
|
35
|
+
/** The whole text, lower-cased: one-word phrases are plain substrings of it. */
|
|
36
|
+
raw: string;
|
|
37
|
+
/** The words, lower-cased, separated by single spaces: a cheap filter. */
|
|
38
|
+
joined: string;
|
|
39
|
+
toks: string[];
|
|
40
|
+
/** A separator (not a glued `--`) stands before the word. */
|
|
41
|
+
sep: boolean[];
|
|
42
|
+
/** A real newline stands before the word: the end of an option run. */
|
|
43
|
+
nl: boolean[];
|
|
44
|
+
/** A real or escaped newline stands before the word: the end of a `--` comment. */
|
|
45
|
+
eol: boolean[];
|
|
46
|
+
/** The word starts with `--`. */
|
|
47
|
+
dash: boolean[];
|
|
48
|
+
/** The word contains `;`, `&` or `|`: an option run cannot cross it. */
|
|
49
|
+
bar: boolean[];
|
|
50
|
+
/** A separator follows the last word. */
|
|
51
|
+
tail: boolean;
|
|
52
|
+
/** Per-word match arrays already computed, by mode and word. */
|
|
53
|
+
memo: Record<string, Uint8Array>;
|
|
54
|
+
/**
|
|
55
|
+
* Per word x: the first word at or after x containing `;&|`, with a real
|
|
56
|
+
* newline before it, and with any newline before it (the word count when
|
|
57
|
+
* none). Built by the first {@link hasPhrase} call that needs them.
|
|
58
|
+
*/
|
|
59
|
+
next: {
|
|
60
|
+
bar: Int32Array;
|
|
61
|
+
nl: Int32Array;
|
|
62
|
+
eol: Int32Array;
|
|
63
|
+
} | null;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Cuts `input` into words in one pass. A `--` inside a word starts a new one
|
|
67
|
+
* (`drop--why` is `drop` and `--why`), glued rather than separated, so it can
|
|
68
|
+
* open a comment or an option run but cannot stand for a plain gap.
|
|
69
|
+
*/
|
|
70
|
+
export declare function phraseText(input: unknown): PhraseText;
|
|
71
|
+
/**
|
|
72
|
+
* Whether `t` contains `needle`, a phrase whose words are separated by single
|
|
73
|
+
* spaces. A one-word needle is a plain substring. In a longer one the first
|
|
74
|
+
* word may end a word of the text (`digit push` contains `git push`, as a
|
|
75
|
+
* substring would), the last may begin one, and the words between must be
|
|
76
|
+
* whole; a trailing space (`'update '`) asks for a separator after the last
|
|
77
|
+
* word. `bounded` additionally requires a non-word character (or the edge of
|
|
78
|
+
* the word) before the first word and after the last, where `.` also counts
|
|
79
|
+
* as part of a word (`table.log` is not `table`).
|
|
80
|
+
*/
|
|
81
|
+
export declare function hasPhrase(t: PhraseText, needle: string, bounded?: boolean): boolean;
|
|
82
|
+
/**
|
|
83
|
+
* Both functions as JavaScript source, for a hook gate to emit: the gates run
|
|
84
|
+
* this exact code, not a retyped copy.
|
|
85
|
+
*/
|
|
86
|
+
export declare const PHRASES_JS_SOURCE: string;
|
|
87
|
+
//# sourceMappingURL=phrases.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phrases.d.ts","sourceRoot":"","sources":["../src/phrases.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,8EAA8E;AAC9E,MAAM,WAAW,UAAU;IACzB,gFAAgF;IAChF,GAAG,EAAE,MAAM,CAAA;IACX,0EAA0E;IAC1E,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,6DAA6D;IAC7D,GAAG,EAAE,OAAO,EAAE,CAAA;IACd,uEAAuE;IACvE,EAAE,EAAE,OAAO,EAAE,CAAA;IACb,mFAAmF;IACnF,GAAG,EAAE,OAAO,EAAE,CAAA;IACd,iCAAiC;IACjC,IAAI,EAAE,OAAO,EAAE,CAAA;IACf,wEAAwE;IACxE,GAAG,EAAE,OAAO,EAAE,CAAA;IACd,yCAAyC;IACzC,IAAI,EAAE,OAAO,CAAA;IACb,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IAChC;;;;OAIG;IACH,IAAI,EAAE;QAAE,GAAG,EAAE,UAAU,CAAC;QAAC,EAAE,EAAE,UAAU,CAAC;QAAC,GAAG,EAAE,UAAU,CAAA;KAAE,GAAG,IAAI,CAAA;CAClE;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CA8DrD;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CA6FnF;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,QAAsD,CAAA"}
|
package/dist/phrases.js
ADDED
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Phrase matching for shell commands and SQL in linear time.
|
|
3
|
+
*
|
|
4
|
+
* Every command classifier asks the same question: does this text contain
|
|
5
|
+
* `git push`, `drop table`, `curl --data`, whatever separates the words? The
|
|
6
|
+
* separators that count are the ones the shell or the database reads as a
|
|
7
|
+
* word break:
|
|
8
|
+
*
|
|
9
|
+
* - whitespace, a two-character escaped `\n`, `\t` or `\r`, and a backslash
|
|
10
|
+
* before whitespace (a line continuation, or an escaped space);
|
|
11
|
+
* - a `/* … *\/` comment;
|
|
12
|
+
* - a `-- …` comment that runs to a newline (real or escaped);
|
|
13
|
+
* - a run of options starting with `--` (`git --no-pager push`,
|
|
14
|
+
* `kubectl --context prod apply`), which stops at `;`, `&`, `|` or a real
|
|
15
|
+
* newline — the end of the shell command it is in.
|
|
16
|
+
*
|
|
17
|
+
* The proxy's Rust classifier expresses this as a regex (`SQL_GAP` in
|
|
18
|
+
* `actions.rs`), which is safe there: Rust's engine is linear. JavaScript's
|
|
19
|
+
* and Python's backtrack, and that regex took seconds on a few hundred
|
|
20
|
+
* kilobytes of `git -- git -- …` — text an agent can be talked into producing.
|
|
21
|
+
* So here the text is cut into words in one pass, and a phrase is matched over
|
|
22
|
+
* the words right to left with one array per phrase word: O(length × words).
|
|
23
|
+
* No regex runs on the input.
|
|
24
|
+
*
|
|
25
|
+
* The two functions are self-contained on purpose — no imports, no module
|
|
26
|
+
* state — because the hook gates emit them as source (`phraseText.toString()`)
|
|
27
|
+
* and run them outside this package. `packages/gate-js/src/phrases.ts` is a
|
|
28
|
+
* byte-identical copy and `intutic_clawde/gate/phrases.py` a transliteration;
|
|
29
|
+
* all of them run `action_vectors.json` beside the proxy's `actions.rs`.
|
|
30
|
+
*
|
|
31
|
+
* @module
|
|
32
|
+
*/
|
|
33
|
+
/**
|
|
34
|
+
* Cuts `input` into words in one pass. A `--` inside a word starts a new one
|
|
35
|
+
* (`drop--why` is `drop` and `--why`), glued rather than separated, so it can
|
|
36
|
+
* open a comment or an option run but cannot stand for a plain gap.
|
|
37
|
+
*/
|
|
38
|
+
export function phraseText(input) {
|
|
39
|
+
const s = String(input == null ? '' : input).toLowerCase();
|
|
40
|
+
const n = s.length;
|
|
41
|
+
const isSpace = (c) => c === ' ' || c === '\t' || c === '\n' || c === '\r' || c === '\v' || c === '\f' ||
|
|
42
|
+
c === '\u00a0' || c === '\u1680' || (c >= '\u2000' && c <= '\u200a') ||
|
|
43
|
+
c === '\u2028' || c === '\u2029' || c === '\u202f' || c === '\u205f' || c === '\u3000' || c === '\ufeff';
|
|
44
|
+
const t = { raw: s, joined: '', toks: [], sep: [], nl: [], eol: [], dash: [], bar: [], tail: false, memo: {}, next: null };
|
|
45
|
+
let start = -1;
|
|
46
|
+
let tokBar = false;
|
|
47
|
+
let pendSep = false;
|
|
48
|
+
let pendNl = false;
|
|
49
|
+
let pendEol = false;
|
|
50
|
+
// The next `*/` at or after the last search; -1 once there is none left.
|
|
51
|
+
let close = -2;
|
|
52
|
+
const end = (at) => {
|
|
53
|
+
if (start < 0)
|
|
54
|
+
return;
|
|
55
|
+
t.toks.push(s.slice(start, at));
|
|
56
|
+
t.sep.push(pendSep);
|
|
57
|
+
t.nl.push(pendNl);
|
|
58
|
+
t.eol.push(pendEol);
|
|
59
|
+
t.dash.push(s.charAt(start) === '-' && s.charAt(start + 1) === '-');
|
|
60
|
+
t.bar.push(tokBar);
|
|
61
|
+
start = -1;
|
|
62
|
+
tokBar = false;
|
|
63
|
+
pendSep = false;
|
|
64
|
+
pendNl = false;
|
|
65
|
+
pendEol = false;
|
|
66
|
+
};
|
|
67
|
+
const gap = (newline, eol) => {
|
|
68
|
+
end(i);
|
|
69
|
+
pendSep = true;
|
|
70
|
+
if (newline)
|
|
71
|
+
pendNl = true;
|
|
72
|
+
if (eol)
|
|
73
|
+
pendEol = true;
|
|
74
|
+
};
|
|
75
|
+
let i = 0;
|
|
76
|
+
while (i < n) {
|
|
77
|
+
const c = s.charAt(i);
|
|
78
|
+
const d = i + 1 < n ? s.charAt(i + 1) : '';
|
|
79
|
+
if (isSpace(c)) {
|
|
80
|
+
gap(c === '\n', c === '\n');
|
|
81
|
+
i += 1;
|
|
82
|
+
}
|
|
83
|
+
else if (c === '\\' && (d === 'n' || d === 't' || d === 'r')) {
|
|
84
|
+
gap(false, d === 'n');
|
|
85
|
+
i += 2;
|
|
86
|
+
}
|
|
87
|
+
else if (c === '\\' && d !== '' && isSpace(d)) {
|
|
88
|
+
gap(false, false);
|
|
89
|
+
i += 2;
|
|
90
|
+
}
|
|
91
|
+
else if (c === '/' && d === '*' && close !== -1 && (close >= i + 2 || (close = s.indexOf('*/', i + 2)) !== -1)) {
|
|
92
|
+
gap(false, false);
|
|
93
|
+
i = close + 2;
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
if (c === '-' && d === '-' && start >= 0 && s.charAt(i - 1) !== '-')
|
|
97
|
+
end(i);
|
|
98
|
+
if (start < 0)
|
|
99
|
+
start = i;
|
|
100
|
+
if (c === ';' || c === '&' || c === '|')
|
|
101
|
+
tokBar = true;
|
|
102
|
+
i += 1;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
end(n);
|
|
106
|
+
t.tail = pendSep;
|
|
107
|
+
t.joined = t.toks.join(' ');
|
|
108
|
+
return t;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Whether `t` contains `needle`, a phrase whose words are separated by single
|
|
112
|
+
* spaces. A one-word needle is a plain substring. In a longer one the first
|
|
113
|
+
* word may end a word of the text (`digit push` contains `git push`, as a
|
|
114
|
+
* substring would), the last may begin one, and the words between must be
|
|
115
|
+
* whole; a trailing space (`'update '`) asks for a separator after the last
|
|
116
|
+
* word. `bounded` additionally requires a non-word character (or the edge of
|
|
117
|
+
* the word) before the first word and after the last, where `.` also counts
|
|
118
|
+
* as part of a word (`table.log` is not `table`).
|
|
119
|
+
*/
|
|
120
|
+
export function hasPhrase(t, needle, bounded) {
|
|
121
|
+
const words = needle.toLowerCase().split(' ');
|
|
122
|
+
if (words.length === 1)
|
|
123
|
+
return t.raw.indexOf(words[0]) !== -1;
|
|
124
|
+
const trailingGap = words[words.length - 1] === '';
|
|
125
|
+
if (trailingGap)
|
|
126
|
+
words.pop();
|
|
127
|
+
for (const w of words)
|
|
128
|
+
if (w === '' || t.joined.indexOf(w) === -1)
|
|
129
|
+
return false;
|
|
130
|
+
const T = t.toks.length;
|
|
131
|
+
const k = words.length;
|
|
132
|
+
const isWord = (c) => (c >= 'a' && c <= 'z') || (c >= '0' && c <= '9') || c === '_';
|
|
133
|
+
// Whether word `i` of the phrase can be the word at `q`, by its position.
|
|
134
|
+
// Typed arrays throughout: every array here has one entry per word of the
|
|
135
|
+
// text, and a classifier asks dozens of phrases of the same text.
|
|
136
|
+
const matches = (i) => {
|
|
137
|
+
const w = words[i];
|
|
138
|
+
const first = i === 0;
|
|
139
|
+
const last = i === k - 1 && !trailingGap;
|
|
140
|
+
const key = (first ? 'f' : '') + (last ? 'l' : '') + (bounded ? 'b' : '') + ':' + w;
|
|
141
|
+
const hit = t.memo[key];
|
|
142
|
+
if (hit)
|
|
143
|
+
return hit;
|
|
144
|
+
const out = new Uint8Array(T);
|
|
145
|
+
for (let q = 0; q < T; q++) {
|
|
146
|
+
const tok = t.toks[q];
|
|
147
|
+
let ok;
|
|
148
|
+
if (first && last)
|
|
149
|
+
ok = tok.indexOf(w) !== -1;
|
|
150
|
+
else if (first)
|
|
151
|
+
ok = tok.length >= w.length && tok.lastIndexOf(w) === tok.length - w.length;
|
|
152
|
+
else if (last)
|
|
153
|
+
ok = tok.lastIndexOf(w, 0) === 0;
|
|
154
|
+
else
|
|
155
|
+
ok = tok === w;
|
|
156
|
+
if (ok && bounded && first)
|
|
157
|
+
ok = tok.length === w.length || !isWord(tok.charAt(tok.length - w.length - 1));
|
|
158
|
+
if (ok && bounded && last)
|
|
159
|
+
ok = tok.length === w.length || !(isWord(tok.charAt(w.length)) || tok.charAt(w.length) === '.');
|
|
160
|
+
out[q] = ok ? 1 : 0;
|
|
161
|
+
}
|
|
162
|
+
t.memo[key] = out;
|
|
163
|
+
return out;
|
|
164
|
+
};
|
|
165
|
+
// nextBar[x]: first word at or after x containing `;&|`; nextNl[x]: first
|
|
166
|
+
// word at or after x with a real newline before it; nextEol likewise for any
|
|
167
|
+
// newline. T when there is none. Once per text, not once per phrase.
|
|
168
|
+
if (t.next === null) {
|
|
169
|
+
const bar = new Int32Array(T + 1);
|
|
170
|
+
const nl = new Int32Array(T + 1);
|
|
171
|
+
const eol = new Int32Array(T + 1);
|
|
172
|
+
bar[T] = T;
|
|
173
|
+
nl[T] = T;
|
|
174
|
+
eol[T] = T;
|
|
175
|
+
for (let x = T - 1; x >= 0; x--) {
|
|
176
|
+
bar[x] = t.bar[x] ? x : bar[x + 1];
|
|
177
|
+
nl[x] = t.nl[x] ? x : nl[x + 1];
|
|
178
|
+
eol[x] = t.eol[x] ? x : eol[x + 1];
|
|
179
|
+
}
|
|
180
|
+
t.next = { bar, nl, eol };
|
|
181
|
+
}
|
|
182
|
+
const nextBar = t.next.bar;
|
|
183
|
+
const nextNl = t.next.nl;
|
|
184
|
+
const nextEol = t.next.eol;
|
|
185
|
+
// ok[q]: the rest of the phrase, from the current word on, matches with
|
|
186
|
+
// that word at q. Start with the last word and walk back.
|
|
187
|
+
let ok = new Uint8Array(T + 1);
|
|
188
|
+
const lastHits = matches(k - 1);
|
|
189
|
+
for (let q = 0; q < T; q++) {
|
|
190
|
+
let v = lastHits[q] === 1;
|
|
191
|
+
if (v && trailingGap) {
|
|
192
|
+
const r = q + 1;
|
|
193
|
+
v = r < T ? t.sep[r] || (t.dash[r] && !t.bar[r] && (r + 1 < T || t.tail)) : t.tail;
|
|
194
|
+
}
|
|
195
|
+
ok[q] = v ? 1 : 0;
|
|
196
|
+
}
|
|
197
|
+
for (let i = k - 2; i >= 0; i--) {
|
|
198
|
+
// nextOk[x]: first word at or after x where the rest matches after a separator.
|
|
199
|
+
const nextOk = new Int32Array(T + 2);
|
|
200
|
+
nextOk[T] = T;
|
|
201
|
+
nextOk[T + 1] = T;
|
|
202
|
+
for (let x = T - 1; x >= 0; x--)
|
|
203
|
+
nextOk[x] = ok[x] === 1 && t.sep[x] ? x : nextOk[x + 1];
|
|
204
|
+
// reach[r]: the gap that starts at word r leads into the rest of the phrase.
|
|
205
|
+
const reach = new Uint8Array(T + 1);
|
|
206
|
+
for (let r = T - 1; r >= 0; r--) {
|
|
207
|
+
let v = t.sep[r] && ok[r] === 1;
|
|
208
|
+
if (!v && t.dash[r]) {
|
|
209
|
+
// A `--` comment runs to the next newline; more gap may follow it.
|
|
210
|
+
const after = nextEol[r + 1];
|
|
211
|
+
if (after < T && reach[after] === 1)
|
|
212
|
+
v = true;
|
|
213
|
+
// An option run reaches any word before a `;&|` word or a real newline.
|
|
214
|
+
const limit = Math.min(nextBar[r], nextNl[r + 1], T - 1);
|
|
215
|
+
if (!v && nextOk[r + 1] <= limit)
|
|
216
|
+
v = true;
|
|
217
|
+
}
|
|
218
|
+
reach[r] = v ? 1 : 0;
|
|
219
|
+
}
|
|
220
|
+
const hits = matches(i);
|
|
221
|
+
const prev = new Uint8Array(T + 1);
|
|
222
|
+
for (let p = 0; p < T; p++)
|
|
223
|
+
prev[p] = hits[p] & reach[p + 1];
|
|
224
|
+
ok = prev;
|
|
225
|
+
}
|
|
226
|
+
for (let p = 0; p < T; p++)
|
|
227
|
+
if (ok[p] === 1)
|
|
228
|
+
return true;
|
|
229
|
+
return false;
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Both functions as JavaScript source, for a hook gate to emit: the gates run
|
|
233
|
+
* this exact code, not a retyped copy.
|
|
234
|
+
*/
|
|
235
|
+
export const PHRASES_JS_SOURCE = `${phraseText.toString()}\n${hasPhrase.toString()}`;
|
|
236
|
+
//# sourceMappingURL=phrases.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phrases.js","sourceRoot":"","sources":["../src/phrases.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sequence rules: a gate rule `A.*B` run as "find A, then find B after it" in
|
|
3
|
+
* linear time.
|
|
4
|
+
*
|
|
5
|
+
* A rule like ` git .*reset +--hard` is a regex. `grep -E` runs it as an
|
|
6
|
+
* automaton, in time linear in the command. JavaScript's and Python's engines
|
|
7
|
+
* backtrack: for every ` git ` they try every end of `.*`, so 200 KB of
|
|
8
|
+
* ` git git git …` took 9.5 s, which is past the point where a harness that
|
|
9
|
+
* treats a hook timeout as "allow" runs the call. A rule marked `sequence`
|
|
10
|
+
* (`s` in a `.rules` line's flags column) is the same regex, read differently:
|
|
11
|
+
*
|
|
12
|
+
* - its top-level `|` alternatives are tried in turn;
|
|
13
|
+
* - each alternative is cut at its top-level `.*` into steps;
|
|
14
|
+
* - each step is searched for once, starting where the previous one ended.
|
|
15
|
+
*
|
|
16
|
+
* Each search is one pass over the text, so a rule costs at most its number of
|
|
17
|
+
* steps times the length of the text. It means the same as the regex provided
|
|
18
|
+
* the first match of every step but the last also ends first, which holds for
|
|
19
|
+
* every step the rule tables use: a step that starts and ends at a space with
|
|
20
|
+
* no space inside, or a fixed word. `.` does not match a newline and neither
|
|
21
|
+
* does a step search cross one in the regex, but the gates normalise every
|
|
22
|
+
* command subject to single spaces first, so there is none. A test fuzzes each
|
|
23
|
+
* sequence rule against its own regex.
|
|
24
|
+
*
|
|
25
|
+
* Self-contained on purpose — no imports, no module state — because the
|
|
26
|
+
* JavaScript gates emit it as source ({@link SEQUENCE_JS_SOURCE}).
|
|
27
|
+
* `packages/gate-js/src/sequence.ts` is a byte-identical copy and
|
|
28
|
+
* `intutic_clawde/gate/sequence.py` a transliteration; all of them run
|
|
29
|
+
* `fixtures/gate-rule-vectors.json`.
|
|
30
|
+
*
|
|
31
|
+
* @module
|
|
32
|
+
*/
|
|
33
|
+
/**
|
|
34
|
+
* A sequence rule's source as alternatives of steps: split at every top-level
|
|
35
|
+
* `|`, then each alternative at every top-level `.*`. ` a .*b| c .*d` is
|
|
36
|
+
* `[[' a ', 'b'], [' c ', 'd']]`. Outside a group or a class only, so `(x|y)`
|
|
37
|
+
* stays inside its step. Empty steps are dropped.
|
|
38
|
+
*/
|
|
39
|
+
export declare function sequenceAlternatives(source: string): string[][];
|
|
40
|
+
/**
|
|
41
|
+
* Compiles a sequence rule's source for {@link sequenceMatch}: each step with
|
|
42
|
+
* the `g` flag, which is what lets a search start at `lastIndex`.
|
|
43
|
+
*/
|
|
44
|
+
export declare function compileSequence(source: string, ignoreCase: boolean): RegExp[][];
|
|
45
|
+
/** Whether `text` matches a compiled sequence rule: some alternative's steps occur in order. */
|
|
46
|
+
export declare function sequenceMatch(alternatives: RegExp[][], text: string): boolean;
|
|
47
|
+
/**
|
|
48
|
+
* The three functions as JavaScript source, for a gate to emit: the gates run
|
|
49
|
+
* this exact code, not a retyped copy.
|
|
50
|
+
*/
|
|
51
|
+
export declare const SEQUENCE_JS_SOURCE: string;
|
|
52
|
+
//# sourceMappingURL=sequence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sequence.d.ts","sourceRoot":"","sources":["../src/sequence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,CA6C/D;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,GAAG,MAAM,EAAE,EAAE,CAE/E;AAED,gGAAgG;AAChG,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAgB7E;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,QAAmG,CAAA"}
|