@intutic/gate 2.0.0 → 2.2.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.
Files changed (60) hide show
  1. package/README.md +18 -10
  2. package/dist/actions.d.ts.map +1 -1
  3. package/dist/actions.js +2 -0
  4. package/dist/actions.js.map +1 -1
  5. package/dist/dsh.d.ts +27 -2
  6. package/dist/dsh.d.ts.map +1 -1
  7. package/dist/dsh.js +23 -1
  8. package/dist/dsh.js.map +1 -1
  9. package/dist/eve.d.ts +81 -14
  10. package/dist/eve.d.ts.map +1 -1
  11. package/dist/eve.js +93 -10
  12. package/dist/eve.js.map +1 -1
  13. package/dist/gate.d.ts +3 -4
  14. package/dist/gate.d.ts.map +1 -1
  15. package/dist/gate.js +21 -10
  16. package/dist/gate.js.map +1 -1
  17. package/dist/harness.d.ts +86 -31
  18. package/dist/harness.d.ts.map +1 -1
  19. package/dist/harness.js +103 -28
  20. package/dist/harness.js.map +1 -1
  21. package/dist/index.d.ts +1 -0
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js.map +1 -1
  24. package/dist/managedAgents.d.ts +35 -6
  25. package/dist/managedAgents.d.ts.map +1 -1
  26. package/dist/managedAgents.js +26 -6
  27. package/dist/managedAgents.js.map +1 -1
  28. package/dist/mastra.d.ts +5 -2
  29. package/dist/mastra.d.ts.map +1 -1
  30. package/dist/mastra.js +3 -1
  31. package/dist/mastra.js.map +1 -1
  32. package/dist/openai.d.ts +5 -3
  33. package/dist/openai.d.ts.map +1 -1
  34. package/dist/openai.js +5 -3
  35. package/dist/openai.js.map +1 -1
  36. package/dist/registry.d.ts +18 -0
  37. package/dist/registry.d.ts.map +1 -0
  38. package/dist/registry.js +24 -0
  39. package/dist/registry.js.map +1 -0
  40. package/dist/snapshot.d.ts +8 -0
  41. package/dist/snapshot.d.ts.map +1 -1
  42. package/dist/snapshot.js +17 -1
  43. package/dist/snapshot.js.map +1 -1
  44. package/dist/ssoGroups.d.ts +44 -0
  45. package/dist/ssoGroups.d.ts.map +1 -0
  46. package/dist/ssoGroups.js +81 -0
  47. package/dist/ssoGroups.js.map +1 -0
  48. package/dist/vercel.d.ts +3 -3
  49. package/dist/vercel.d.ts.map +1 -1
  50. package/dist/vercel.js +1 -1
  51. package/dist/vercel.js.map +1 -1
  52. package/dist/workflow.d.ts +153 -39
  53. package/dist/workflow.d.ts.map +1 -1
  54. package/dist/workflow.js +162 -49
  55. package/dist/workflow.js.map +1 -1
  56. package/dist/wrapTools.d.ts +1 -1
  57. package/dist/wrapTools.d.ts.map +1 -1
  58. package/dist/wrapTools.js +1 -1
  59. package/dist/wrapTools.js.map +1 -1
  60. package/package.json +11 -10
package/dist/workflow.js CHANGED
@@ -1,6 +1,7 @@
1
1
  /**
2
- * `@ai-sdk/workflow` adapter: `intuticNeedsApproval()`, `withIntuticApproval()`,
3
- * `wrapWorkflowTools()`, and the FatalError-compatible `IntuticWorkflowRefusal`.
2
+ * `@ai-sdk/workflow` adapter: `withIntuticApproval()`, `intuticNeedsApproval()`,
3
+ * `intuticApprovalStep()`, `wrapWorkflowTools()`, and the FatalError-compatible
4
+ * `IntuticWorkflowRefusal`.
4
5
  *
5
6
  * `@intutic/gate/workflow` — the same idea `vercel.ts` implements for the base
6
7
  * `ai` package (wrap the framework's own veto point around this package's
@@ -9,10 +10,11 @@
9
10
  *
10
11
  * ## 1. The veto surface is per-tool `needsApproval`, not an agent option
11
12
  *
12
- * Confirmed against a real install (`@ai-sdk/workflow@1.0.69`):
13
- * `WorkflowAgent`/`WorkflowAgentOptions` carry ZERO approval fields — the
14
- * string `toolApproval` does not appear anywhere in the package's shipped
15
- * `.d.ts`. The veto surface is `needsApproval` (boolean | function) on the
13
+ * Confirmed against a real install (`@ai-sdk/workflow@1.0.69`, re-read on
14
+ * 2.0.58): `WorkflowAgent`/`WorkflowAgentOptions` carry NO approval-policy
15
+ * field — 1.x's shipped `.d.ts` never mentions `toolApproval`, and 2.x adds
16
+ * only `experimental_toolApprovalSecret`, an HMAC secret that signs approval
17
+ * requests so a replayed approval can be verified, not a veto. The veto surface is `needsApproval` (boolean | function) on the
16
18
  * TOOL definition, exactly as the framework's own workflow-agent docs
17
19
  * describe under "Tool Approval". The compiled agent loop confirms the
18
20
  * semantics (dist/index.js): `needsApproval == null` → no approval; a
@@ -22,9 +24,9 @@
22
24
  * later — so this framework, uniquely in this package, has a real
23
25
  * human-in-the-loop lane for the gate to route into.
24
26
  *
25
- * (`ai@7.0.68` marks tool-level `needsApproval` `@deprecated` in favour of
26
- * generateText-level `toolApproval` — but `@ai-sdk/workflow`'s OWN agent loop
27
- * reads the tool-level field and exposes no other veto surface, so it is the
27
+ * (`ai@7` — still in 7.0.127 — marks tool-level `needsApproval` `@deprecated`
28
+ * in favour of generateText-level `toolApproval` — but `@ai-sdk/workflow`'s
29
+ * OWN agent loop (1.x and 2.0.58 alike) reads the tool-level field and exposes no other veto surface, so it is the
28
30
  * correct — indeed the only — integration point here. Noted in the TD entry
29
31
  * this phase filed, so a future @ai-sdk/workflow release moving to the
30
32
  * generateText-shaped surface gets caught rather than silently ungated.)
@@ -33,11 +35,13 @@
33
35
  *
34
36
  * A durable workflow retries failed steps. Confirmed against real installs
35
37
  * (`workflow@4.8.3` re-exporting `@workflow/errors@4.2.1` via
36
- * `@workflow/core`): the runtime's retry/abort decision consults
37
- * `FatalError.is(err)` (`@workflow/core`'s `runtime/step-handler.js` — a
38
- * fatal error "bubbl[es] up to parent workflow"; anything else is retried
39
- * toward `maxAttempts`), and `FatalError.is()` DUCK-TYPES: it checks
40
- * `err.name === 'FatalError'` on any Error-shaped object, precisely because
38
+ * `@workflow/core`; re-read on `workflow@5.0.1` / `@workflow/errors@5.0.1`):
39
+ * the runtime's retry/abort decision consults `FatalError.is(err)`
40
+ * (`@workflow/core`'s `runtime/step-handler.js` in 4.x,
41
+ * `runtime/step-executor.js` in 5.x — a fatal error "bubbl[es] up to parent
42
+ * workflow"; anything else is retried toward `maxAttempts`), and
43
+ * `FatalError.is()` DUCK-TYPES: it checks `err.name === 'FatalError'` (5.x
44
+ * also accepts `err.fatal === true`) on any Error-shaped object, precisely because
41
45
  * workflows execute in a separate `vm` realm where `instanceof` fails across
42
46
  * the boundary. A plain `IntuticGateRefusal` thrown from `needsApproval` or a
43
47
  * tool body would therefore be RETRIED — a governance denial replayed on a
@@ -56,10 +60,45 @@
56
60
  * "no gate configured" case, which is deterministic and would fail every
57
61
  * retry identically) is made fatal.
58
62
  *
63
+ * ## 3. `needsApproval` runs in the workflow VM — the gate must run in a step
64
+ *
65
+ * Observed in a live run on the Workflow DevKit's local world (TD-498):
66
+ * `WorkflowAgent`'s loop runs inside the `"use workflow"` function, so it
67
+ * calls `needsApproval` in the workflow VM, which has no Node.js modules.
68
+ * `Gate` reads its policy snapshot with `node:fs`, so evaluating it there
69
+ * fails with `require is not defined` — and when the workflow bundle pulls
70
+ * `node:fs` in at module level, EVERY workflow sharing that bundle fails at
71
+ * load (observed with `workflow/nitro`).
72
+ *
73
+ * So the gate runs in a STEP, which has full Node.js and is durable. The
74
+ * caller declares one `"use step"` function in their own module — the
75
+ * directive must sit in a module the workflow bundler transforms, and the
76
+ * step's body must build/receive the `Gate` itself, because step arguments
77
+ * are serialized and a `Gate` instance is not serializable — whose body is
78
+ * {@link intuticApprovalStep}, and passes it as `{ step }`:
79
+ *
80
+ * ```ts
81
+ * export async function intuticGate(toolName: string, input: unknown) {
82
+ * 'use step'
83
+ * return intuticApprovalStep(toolName, input, { gate: new Gate({ ... }) })
84
+ * }
85
+ * // in the workflow: tools: withIntuticApproval(tools, { step: intuticGate })
86
+ * ```
87
+ *
88
+ * With `{ step }`, the `needsApproval` this module builds only calls the step
89
+ * (a durable step invocation from the VM's point of view) and maps its
90
+ * boolean; nothing Node-only runs in the VM. This module itself is safe to
91
+ * import into workflow code: it imports nothing that touches Node.js
92
+ * (`errors.ts`, `registry.ts`, `wrapTools.ts`; `Gate` is a type-only
93
+ * import). Without `{ step }`, the gate is evaluated in-process, which still
94
+ * works wherever Node.js is available (inside a step, or any plain `ai`
95
+ * loop); called in the workflow VM it throws an {@link IntuticWorkflowRefusal}
96
+ * naming this fix instead of failing with `require is not defined`.
97
+ *
59
98
  * @module
60
99
  */
61
- import { active as activeGate } from './gate.js';
62
100
  import { IntuticGateRefusal } from './errors.js';
101
+ import { active as activeGate } from './registry.js';
63
102
  import { wrapTools } from './wrapTools.js';
64
103
  /**
65
104
  * A refused call inside a durable workflow.
@@ -97,6 +136,25 @@ export class IntuticWorkflowRefusal extends IntuticGateRefusal {
97
136
  (value.message.startsWith('[Intutic Governance] BLOCKED:')));
98
137
  }
99
138
  }
139
+ // Set on the workflow VM's global object by the Workflow DevKit runtime
140
+ // (`@workflow/core`'s `workflow.js`: `vmGlobalThis[WORKFLOW_USE_STEP] =
141
+ // useStep`); never set in the Node.js realm where steps execute.
142
+ const WORKFLOW_USE_STEP = Symbol.for('WORKFLOW_USE_STEP');
143
+ function inWorkflowSandbox() {
144
+ return typeof globalThis[WORKFLOW_USE_STEP] === 'function';
145
+ }
146
+ function refuseInWorkflowSandbox(helper) {
147
+ if (!inWorkflowSandbox())
148
+ return;
149
+ // Fail closed, FatalError-shaped, and NAME THE FIX: the gate needs
150
+ // Node.js, which the workflow VM does not have, and retrying cannot
151
+ // change that.
152
+ throw new IntuticWorkflowRefusal(`${helper} ran inside the workflow sandbox, which has no Node.js, so the gate cannot evaluate ` +
153
+ 'the call there. Run it in a "use step" function: declare ' +
154
+ "`async function intuticGate(toolName, input) { 'use step'; return intuticApprovalStep(toolName, input, { gate }) }` " +
155
+ 'and pass { step: intuticGate } to withIntuticApproval()/intuticNeedsApproval(). ' +
156
+ 'Refusing to run the tool unguarded.', 'WORKFLOW_SANDBOX');
157
+ }
100
158
  function requireGate(gate, helper) {
101
159
  const g = gate ?? activeGate();
102
160
  if (g === null) {
@@ -116,26 +174,60 @@ function renderWorkflowToolInput(input) {
116
174
  return { args: [input] };
117
175
  }
118
176
  /**
119
- * Build an async `needsApproval` function for ONE workflow tool:
177
+ * The gate evaluation for ONE call, written to be the body of the caller's
178
+ * `"use step"` function (see module doc, section 3):
120
179
  *
121
180
  * ```ts
122
- * import { WorkflowAgent } from '@ai-sdk/workflow'
123
- * import { Gate, install } from '@intutic/gate'
124
- * import { intuticNeedsApproval } from '@intutic/gate/workflow'
125
- *
126
- * install(new Gate({ workspaceId: process.env.INTUTIC_WORKSPACE_ID }))
127
- *
128
- * const agent = new WorkflowAgent({
129
- * model,
130
- * tools: {
131
- * deployService: {
132
- * description: '...',
133
- * inputSchema,
134
- * execute: deployStep,
135
- * needsApproval: intuticNeedsApproval('deployService'),
136
- * },
137
- * },
138
- * })
181
+ * // workflows/intutic-gate.ts
182
+ * import { Gate } from '@intutic/gate'
183
+ * import { intuticApprovalStep } from '@intutic/gate/workflow'
184
+ *
185
+ * export async function intuticGate(toolName: string, input: unknown): Promise<boolean> {
186
+ * 'use step'
187
+ * return intuticApprovalStep(toolName, input, {
188
+ * gate: new Gate({ workspaceId: process.env.INTUTIC_WORKSPACE_ID }),
189
+ * })
190
+ * }
191
+ * ```
192
+ *
193
+ * Reference `@intutic/gate` only inside step bodies in that module: the
194
+ * workflow bundler also bundles it into the VM with the step bodies
195
+ * replaced, and a module-level use would keep the Node-only gate there.
196
+ *
197
+ * Verdict mapping: BLOCK → throws {@link IntuticWorkflowRefusal} (fatal — the
198
+ * step runs once and the run fails instead of retry-looping; see module doc);
199
+ * ALLOW → `false`, or `true` with `onAllow: 'human'`. A non-refusal crash in
200
+ * the gate is re-thrown untouched (the step retries — correct for
201
+ * transients). Requires a gate (`{ gate }` or `install()` in the process
202
+ * that runs steps); called in the workflow VM itself, it throws naming the
203
+ * fix.
204
+ */
205
+ export async function intuticApprovalStep(toolName, input, opts = {}) {
206
+ refuseInWorkflowSandbox('intuticApprovalStep()');
207
+ const g = requireGate(opts.gate, 'intuticApprovalStep()');
208
+ try {
209
+ await g.guard(toolName, renderWorkflowToolInput(input));
210
+ }
211
+ catch (exc) {
212
+ if (exc instanceof IntuticGateRefusal && !(exc instanceof IntuticWorkflowRefusal)) {
213
+ throw IntuticWorkflowRefusal.from(exc);
214
+ }
215
+ throw exc;
216
+ }
217
+ return opts.onAllow === 'human';
218
+ }
219
+ /**
220
+ * Build an async `needsApproval` function for ONE workflow tool. On a
221
+ * `WorkflowAgent`, pass the caller's gate step (see
222
+ * {@link intuticApprovalStep}):
223
+ *
224
+ * ```ts
225
+ * deployService: {
226
+ * description: '...',
227
+ * inputSchema,
228
+ * execute: deployStep,
229
+ * needsApproval: intuticNeedsApproval('deployService', { step: intuticGate }),
230
+ * },
139
231
  * ```
140
232
  *
141
233
  * The tool name is a parameter because the framework's `needsApproval`
@@ -144,25 +236,28 @@ function renderWorkflowToolInput(input) {
144
236
  * {@link withIntuticApproval} to attach this to a whole tools record without
145
237
  * hand-repeating each name.
146
238
  *
239
+ * With `{ step }`, the returned function only calls the step and maps its
240
+ * answer — safe in the workflow VM. Without it, the gate is evaluated
241
+ * in-process (`{ gate }` or the installed gate), which needs Node.js: fine in
242
+ * a plain `ai` loop or inside a step, and in the workflow VM it throws an
243
+ * {@link IntuticWorkflowRefusal} naming the `{ step }` fix.
244
+ *
147
245
  * Verdict mapping: BLOCK → throws {@link IntuticWorkflowRefusal} (fatal —
148
246
  * aborts instead of retry-looping; see module doc); ALLOW → `false` or `true`
149
247
  * per `onAllow`. A non-refusal crash in the gate is re-thrown untouched
150
248
  * (retryable — correct for transients).
151
249
  */
152
250
  export function intuticNeedsApproval(toolName, opts = {}) {
153
- const onAllow = opts.onAllow ?? 'auto';
154
- return async (input, _options) => {
155
- const g = requireGate(opts.gate, 'intuticNeedsApproval()');
156
- try {
157
- await g.guard(toolName, renderWorkflowToolInput(input));
158
- }
159
- catch (exc) {
160
- if (exc instanceof IntuticGateRefusal && !(exc instanceof IntuticWorkflowRefusal)) {
161
- throw IntuticWorkflowRefusal.from(exc);
162
- }
163
- throw exc;
164
- }
165
- return onAllow === 'human';
251
+ const human = (opts.onAllow ?? 'auto') === 'human';
252
+ const step = opts.step;
253
+ if (step !== undefined) {
254
+ // A refusal thrown by the step reaches here already FatalError-shaped
255
+ // (it crossed the step boundary as one) and is rethrown untouched.
256
+ return async (input) => (await step(toolName, input)) || human;
257
+ }
258
+ return async (input) => {
259
+ refuseInWorkflowSandbox('intuticNeedsApproval()');
260
+ return intuticApprovalStep(toolName, input, { gate: opts.gate, onAllow: opts.onAllow });
166
261
  };
167
262
  }
168
263
  /**
@@ -170,13 +265,29 @@ export function intuticNeedsApproval(toolName, opts = {}) {
170
265
  * `needsApproval` the tool already declares:
171
266
  *
172
267
  * ```ts
173
- * const agent = new WorkflowAgent({ model, tools: withIntuticApproval(tools) })
268
+ * import { WorkflowAgent } from '@ai-sdk/workflow'
269
+ * import { withIntuticApproval } from '@intutic/gate/workflow'
270
+ * import { intuticGate } from './intutic-gate' // the "use step" function
271
+ *
272
+ * export async function deployAgent(messages: ModelMessage[]) {
273
+ * 'use workflow'
274
+ * const agent = new WorkflowAgent({
275
+ * model,
276
+ * tools: withIntuticApproval(tools, { step: intuticGate }),
277
+ * })
278
+ * // ...
279
+ * }
174
280
  * ```
175
281
  *
282
+ * (`{ step }` is what makes this work on a `WorkflowAgent`, whose
283
+ * `needsApproval` runs in the workflow VM — see {@link intuticApprovalStep}
284
+ * and the module doc, section 3. Without it the gate is evaluated
285
+ * in-process, which needs Node.js.)
286
+ *
176
287
  * For each tool (the record KEY is the tool name reported to the gate — the
177
288
  * same identity the framework itself dispatches on):
178
289
  *
179
- * 1. `Gate.guard()` runs first. BLOCK throws {@link IntuticWorkflowRefusal}.
290
+ * 1. The gate runs first. BLOCK throws {@link IntuticWorkflowRefusal}.
180
291
  * 2. On allow, the tool's OWN prior `needsApproval` still applies: a
181
292
  * boolean is returned as-is; a function is awaited with the original
182
293
  * arguments; a tool with none falls back to `onAllow` ('auto' → false).
@@ -217,7 +328,9 @@ export function withIntuticApproval(tools, opts = {}) {
217
328
  * "no gate configured" handling and the record-key-is-tool-name convention —
218
329
  * is `wrapTools`'s own behaviour, reused rather than reimplemented.
219
330
  *
220
- * Prefer {@link withIntuticApproval} as the primary integration: it uses the
331
+ * Call it inside the tool's `"use step"` body (it evaluates the gate
332
+ * in-process, so it needs Node.js). Prefer {@link withIntuticApproval} as the
333
+ * primary integration: it uses the
221
334
  * framework's own pre-execution veto surface, refuses BEFORE the durable
222
335
  * step ever starts, and keeps the human-approval lane available. This
223
336
  * execute-level wrapper is defense in depth (or the option for callers whose
@@ -1 +1 @@
1
- {"version":3,"file":"workflow.js","sourceRoot":"","sources":["../src/workflow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow.js","sourceRoot":"","sources":["../src/workflow.ts"],"names":[],"mappings":"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"}
@@ -28,7 +28,7 @@
28
28
  * wrapped tool with neither throws, refusing to run the tool unguarded
29
29
  * rather than silently skipping enforcement.
30
30
  */
31
- import { type Gate } from './gate.js';
31
+ import type { Gate } from './gate.js';
32
32
  export type AnyFn = (...args: any[]) => any;
33
33
  export interface ExecutableTool {
34
34
  execute: AnyFn;
@@ -1 +1 @@
1
- {"version":3,"file":"wrapTools.d.ts","sourceRoot":"","sources":["../src/wrapTools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,EAAwB,KAAK,IAAI,EAAE,MAAM,WAAW,CAAA;AAG3D,MAAM,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAA;AAE3C,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,KAAK,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B;uEACmE;IACnE,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,oEAAoE;IACpE,IAAI,CAAC,EAAE,IAAI,CAAA;CACZ;AAgDD;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,eAAe,GAAG,CAAC,CAAA;AAC3E,wBAAgB,QAAQ,CAAC,CAAC,SAAS,cAAc,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,eAAe,GAAG,CAAC,CAAA;AAgBtF;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,KAAK,GAAG,cAAc,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,CAAA;AAClG,wBAAgB,SAAS,CAAC,CAAC,SAAS,KAAK,GAAG,cAAc,EACxD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EACxB,IAAI,CAAC,EAAE,IAAI,GACV,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"wrapTools.d.ts","sourceRoot":"","sources":["../src/wrapTools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAIrC,MAAM,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAA;AAE3C,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,KAAK,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B;uEACmE;IACnE,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,oEAAoE;IACpE,IAAI,CAAC,EAAE,IAAI,CAAA;CACZ;AAgDD;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,eAAe,GAAG,CAAC,CAAA;AAC3E,wBAAgB,QAAQ,CAAC,CAAC,SAAS,cAAc,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,eAAe,GAAG,CAAC,CAAA;AAgBtF;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,KAAK,GAAG,cAAc,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,CAAA;AAClG,wBAAgB,SAAS,CAAC,CAAC,SAAS,KAAK,GAAG,cAAc,EACxD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EACxB,IAAI,CAAC,EAAE,IAAI,GACV,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA"}
package/dist/wrapTools.js CHANGED
@@ -28,7 +28,7 @@
28
28
  * wrapped tool with neither throws, refusing to run the tool unguarded
29
29
  * rather than silently skipping enforcement.
30
30
  */
31
- import { active as activeGate } from './gate.js';
31
+ import { active as activeGate } from './registry.js';
32
32
  const GUARDED = Symbol.for('intutic.gate.guarded');
33
33
  function isGuarded(fn) {
34
34
  return fn[GUARDED] === true;
@@ -1 +1 @@
1
- {"version":3,"file":"wrapTools.js","sourceRoot":"","sources":["../src/wrapTools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wrapTools.js","sourceRoot":"","sources":["../src/wrapTools.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intutic/gate",
3
- "version": "2.0.0",
3
+ "version": "2.2.0",
4
4
  "description": "Intutic pre-execution tool gate for JS/TS agent frameworks without a shipped Intutic harness (Mastra, the Vercel AI SDK, LangChain.js, dsh, and hand-rolled agent loops)",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -95,20 +95,21 @@
95
95
  "yaml": "^2.9.0"
96
96
  },
97
97
  "devDependencies": {
98
- "@ai-sdk/harness": "^1.0.75",
99
- "@anthropic-ai/sdk": "^0.117.1",
100
- "@ai-sdk/openai": "^4.0.43",
101
- "@ai-sdk/workflow": "^1.0.69",
102
- "@mastra/core": "^1.59.0",
98
+ "@ai-sdk/harness": "^1.0.138",
99
+ "@anthropic-ai/sdk": "^0.131.0",
100
+ "@ai-sdk/openai": "^4.0.83",
101
+ "@ai-sdk/workflow": "^2.0.58",
102
+ "@mastra/core": "^1.74.0",
103
103
  "@deepseek-ai/cordis": "^4.0.1",
104
104
  "@openai/agents": "0.16.1",
105
+ "@openai/agents-realtime": "0.16.1",
105
106
  "@truefoundry/trueforge-core": "^0.1.4",
106
107
  "@types/node": "^22",
107
- "ai": "^7.0.68",
108
- "eve": "^0.39.1",
108
+ "ai": "^7.0.127",
109
+ "eve": "^0.71.0",
109
110
  "typescript": "^5.5",
110
111
  "vitest": "^4",
111
- "workflow": "^4.8.3",
112
+ "workflow": "^5.0.1",
112
113
  "zod": "^4.2.0"
113
114
  },
114
115
  "engines": {
@@ -117,7 +118,7 @@
117
118
  "scripts": {
118
119
  "lint": "eslint src",
119
120
  "build": "tsc",
120
- "typecheck": "tsc --noEmit",
121
+ "typecheck": "tsc --noEmit && tsc -p tsconfig.test.json",
121
122
  "test": "vitest run --passWithNoTests"
122
123
  }
123
124
  }