@friskai/frisk-js 0.2.2 → 0.2.3

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 (38) hide show
  1. package/dist/adapters/claude/index.js +1054 -9624
  2. package/dist/adapters/claude/index.js.map +9 -58
  3. package/dist/adapters/langchain/frisk-langchain.d.ts +5 -1
  4. package/dist/adapters/langchain/frisk-langchain.d.ts.map +1 -1
  5. package/dist/adapters/langchain/frisk-tool-middleware.d.ts +25 -5
  6. package/dist/adapters/langchain/frisk-tool-middleware.d.ts.map +1 -1
  7. package/dist/adapters/langchain/index.js +5413 -14537
  8. package/dist/adapters/langchain/index.js.map +26 -77
  9. package/dist/adapters/langchain/interrupt-response-schema.d.ts +15 -0
  10. package/dist/adapters/langchain/interrupt-response-schema.d.ts.map +1 -0
  11. package/dist/adapters/langchain/types.d.ts +0 -5
  12. package/dist/adapters/langchain/types.d.ts.map +1 -1
  13. package/dist/core/frisk-session.d.ts.map +1 -1
  14. package/dist/core/frisk.d.ts +15 -0
  15. package/dist/core/frisk.d.ts.map +1 -1
  16. package/dist/core/tool-approval-request.d.ts +56 -0
  17. package/dist/core/tool-approval-request.d.ts.map +1 -0
  18. package/dist/core/types.d.ts +10 -1
  19. package/dist/core/types.d.ts.map +1 -1
  20. package/dist/index.d.ts +1 -0
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +497 -9066
  23. package/dist/index.js.map +9 -58
  24. package/dist/native-bindings/index.d.ts +1 -3
  25. package/dist/native-bindings/index.d.ts.map +1 -1
  26. package/dist/utils/find-last.d.ts +2 -0
  27. package/dist/utils/find-last.d.ts.map +1 -0
  28. package/native/frisk-js.darwin-arm64.node +0 -0
  29. package/native/frisk-js.darwin-x64.node +0 -0
  30. package/native/frisk-js.linux-arm64-gnu.node +0 -0
  31. package/native/frisk-js.linux-arm64-musl.node +0 -0
  32. package/native/frisk-js.linux-x64-gnu.node +0 -0
  33. package/native/frisk-js.linux-x64-musl.node +0 -0
  34. package/native/frisk-js.win32-arm64-msvc.node +0 -0
  35. package/native/frisk-js.win32-x64-msvc.node +0 -0
  36. package/native/index.cjs +52 -52
  37. package/native/index.d.ts +2 -0
  38. package/package.json +2 -1
@@ -5,6 +5,7 @@
5
5
  */
6
6
  import { DynamicStructuredTool } from '@langchain/core/tools';
7
7
  import { type StateSchema } from '@langchain/langgraph';
8
+ import * as z from 'zod/v4';
8
9
  import { ZodObject } from 'zod/v4';
9
10
  import { Frisk } from '../../core/frisk';
10
11
  import type { FriskOptions } from '../../core/types';
@@ -16,13 +17,16 @@ import { LangchainFrameworkAdapter, type LangchainToolCall } from './langchain-f
16
17
  * LangChain-specific Frisk init params (without frameworkAdapter since it's preset)
17
18
  */
18
19
  export type FriskLangchainOptions = Omit<FriskOptions<LangchainToolCall, LangchainTool>, 'adapter'>;
20
+ export declare const FRISK_CONTEXT_SCHEMA: z.ZodObject<{
21
+ friskSessionId: z.ZodOptional<z.ZodString>;
22
+ }, z.core.$strip>;
19
23
  /** Parameters used to create Frisk LangGraph/LangChain middleware. */
20
24
  export interface FriskGuardParams {
21
25
  /** LangGraph state schema passed through to middleware creation. */
22
26
  stateSchema: StateSchema<any>;
23
27
  /** Feature toggles for Frisk middleware behavior. */
24
28
  controls?: {
25
- /** Enables policy checks in wrapToolCall middleware when true. */
29
+ /** Enables policy checks in afterModel middleware when true. */
26
30
  toolPolicies?: boolean;
27
31
  };
28
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"frisk-langchain.d.ts","sourceRoot":"","sources":["../../../src/adapters/langchain/frisk-langchain.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAEvD,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAExC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAEL,eAAe,EAChB,MAAM,2CAA2C,CAAA;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AAEjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2DAA2D,CAAA;AAC9F,OAAO,EACL,yBAAyB,EACzB,KAAK,iBAAiB,EACvB,MAAM,2DAA2D,CAAA;AAElE;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,IAAI,CACtC,YAAY,CAAC,iBAAiB,EAAE,aAAa,CAAC,EAC9C,SAAS,CACV,CAAA;AAGD,sEAAsE;AACtE,MAAM,WAAW,gBAAgB;IAC/B,oEAAoE;IACpE,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,CAAA;IAC7B,qDAAqD;IACrD,QAAQ,CAAC,EAAE;QACT,kEAAkE;QAClE,YAAY,CAAC,EAAE,OAAO,CAAA;KAGvB,CAAA;CACF;AAED,4DAA4D;AAC5D,eAAO,MAAM,yBAAyB;;CAErC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBAAa,cAAe,SAAQ,KAAK,CACvC,iBAAiB,EACjB,aAAa,EACb,yBAAyB,CAC1B;gBACa,MAAM,CAAC,EAAE,qBAAqB;IAOnC,OAAO,IAAI,qBAAqB;IAiBhC,KAAK,CAAC,EACX,WAAW,EACX,QAAoC,GACrC,EAAE,gBAAgB;IAgCnB;;;;;;;;;;;;OAYG;IACI,SAAS,CACd,KAAK,EAAE,QAAQ,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,EACjD,OAAO,GAAE,eAAwC,GAChD,qBAAqB,EAAE;IAI1B;;;;;;;;;;;;OAYG;IACI,QAAQ,CACb,IAAI,EAAE,qBAAqB,CAAC,SAAS,CAAC,EACtC,OAAO,GAAE,eAAwC,GAChD,qBAAqB;CAGzB"}
1
+ {"version":3,"file":"frisk-langchain.d.ts","sourceRoot":"","sources":["../../../src/adapters/langchain/frisk-langchain.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAEvD,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAA;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAExC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAEL,eAAe,EAChB,MAAM,2CAA2C,CAAA;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AAEjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2DAA2D,CAAA;AAC9F,OAAO,EACL,yBAAyB,EACzB,KAAK,iBAAiB,EACvB,MAAM,2DAA2D,CAAA;AAGlE;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,IAAI,CACtC,YAAY,CAAC,iBAAiB,EAAE,aAAa,CAAC,EAC9C,SAAS,CACV,CAAA;AAGD,eAAO,MAAM,oBAAoB;;iBAE/B,CAAA;AAEF,sEAAsE;AACtE,MAAM,WAAW,gBAAgB;IAC/B,oEAAoE;IACpE,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,CAAA;IAC7B,qDAAqD;IACrD,QAAQ,CAAC,EAAE;QACT,gEAAgE;QAChE,YAAY,CAAC,EAAE,OAAO,CAAA;KAGvB,CAAA;CACF;AAED,4DAA4D;AAC5D,eAAO,MAAM,yBAAyB;;CAErC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBAAa,cAAe,SAAQ,KAAK,CACvC,iBAAiB,EACjB,aAAa,EACb,yBAAyB,CAC1B;gBACa,MAAM,CAAC,EAAE,qBAAqB;IAOnC,OAAO,IAAI,qBAAqB;IAiBhC,KAAK,CAAC,EACX,WAAW,EACX,QAAoC,GACrC,EAAE,gBAAgB;IA8BnB;;;;;;;;;;;;OAYG;IACI,SAAS,CACd,KAAK,EAAE,QAAQ,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,EACjD,OAAO,GAAE,eAAwC,GAChD,qBAAqB,EAAE;IAI1B;;;;;;;;;;;;OAYG;IACI,QAAQ,CACb,IAAI,EAAE,qBAAqB,CAAC,SAAS,CAAC,EACtC,OAAO,GAAE,eAAwC,GAChD,qBAAqB;CAGzB"}
@@ -4,8 +4,7 @@
4
4
  * Middleware for intercepting and evaluating LangChain tool calls
5
5
  * against Frisk policies before execution.
6
6
  */
7
- import { Command } from '@langchain/langgraph';
8
- import { ToolCallHandler, ToolCallRequest, ToolMessage } from 'langchain';
7
+ import { BaseMessage, Runtime, ToolMessage } from 'langchain';
9
8
  import { FriskSDKLoggingOptions } from '../../logging';
10
9
  import { FriskLangchain } from './frisk-langchain';
11
10
  import { FriskLangchainContext } from './types';
@@ -13,8 +12,12 @@ import { FriskLangchainContext } from './types';
13
12
  * Options for creating a Frisk tool middleware
14
13
  */
15
14
  export interface FriskToolMiddlewareOptions {
15
+ controls?: {
16
+ toolPolicies?: boolean;
17
+ };
16
18
  logging?: FriskSDKLoggingOptions;
17
19
  }
20
+ export declare const DENIED_TOOL_CALL_EXPLANATION = "This is not an error, this is a security measure by the purveyor of the agent. Do not retry this tool call with the same arguments. You may attempt to fulfill the underlying request using a different strategy. Other tool calls in this batch have not been executed.";
18
21
  /**
19
22
  * FriskToolMiddleware - Middleware for LangChain tool call interception
20
23
  *
@@ -49,19 +52,36 @@ export interface FriskToolMiddlewareOptions {
49
52
  * );
50
53
  * ```
51
54
  */
52
- export declare class FriskToolMiddleware<TState extends Record<string, unknown> = Record<string, unknown>, TContext extends FriskLangchainContext = FriskLangchainContext> {
55
+ export declare class FriskToolMiddleware<TState extends {
56
+ messages: BaseMessage[];
57
+ } = {
58
+ messages: BaseMessage[];
59
+ }, TContext extends FriskLangchainContext = FriskLangchainContext> {
53
60
  private _frisk;
54
61
  private logger;
62
+ private readonly toolPoliciesEnabled;
55
63
  constructor(frisk: FriskLangchain, options?: FriskToolMiddlewareOptions);
56
64
  /**
57
65
  * Get the Frisk instance
58
66
  */
59
67
  get frisk(): FriskLangchain;
60
- wrapToolCall(request: ToolCallRequest<TState, TContext>, handler: ToolCallHandler<TState, TContext>): Promise<ToolMessage | Command>;
68
+ afterModel(state: TState, runtime: Runtime<TContext>): Promise<{
69
+ messages: ToolMessage<import("@langchain/core/messages").MessageStructure<import("@langchain/core/messages").MessageToolSet>>[];
70
+ jumpTo: string;
71
+ } | {
72
+ messages: ToolMessage<import("@langchain/core/messages").MessageStructure<import("@langchain/core/messages").MessageToolSet>>[];
73
+ jumpTo?: undefined;
74
+ } | null>;
61
75
  /**
62
76
  * Get the Frisk session from the RunnableConfig
63
77
  */
64
78
  private resolveFriskSession;
65
- private blockOrExecuteToolCall;
79
+ private filterPendingApprovalRequestsByToolCallId;
80
+ private makeInterruptPayload;
81
+ private getToolCallResumeActionsByIdFromInterruptResponse;
82
+ private createEscalatedCanceledToolMessage;
83
+ private createEscalatedRejectedToolMessage;
84
+ private createDeniedToolCallMessage;
85
+ private createSyntheticToolCallMessage;
66
86
  }
67
87
  //# sourceMappingURL=frisk-tool-middleware.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"frisk-tool-middleware.d.ts","sourceRoot":"","sources":["../../../src/adapters/langchain/frisk-tool-middleware.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAUzE,OAAO,EAAE,sBAAsB,EAAa,MAAM,eAAe,CAAA;AAEjE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAElD,OAAO,EAEL,qBAAqB,EAEtB,MAAM,SAAS,CAAA;AAEhB;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,OAAO,CAAC,EAAE,sBAAsB,CAAA;CACjC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,qBAAa,mBAAmB,CAC9B,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChE,QAAQ,SAAS,qBAAqB,GAAG,qBAAqB;IAG9D,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,MAAM,CAAW;gBAEb,KAAK,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,0BAA0B;IAOvE;;OAEG;IACH,IAAI,KAAK,IAAI,cAAc,CAE1B;IAEY,YAAY,CACvB,OAAO,EAAE,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,EAC1C,OAAO,EAAE,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,GACzC,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC;IAkCjC;;OAEG;IACH,OAAO,CAAC,mBAAmB;YAyBb,sBAAsB;CAqBrC"}
1
+ {"version":3,"file":"frisk-tool-middleware.d.ts","sourceRoot":"","sources":["../../../src/adapters/langchain/frisk-tool-middleware.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAa,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAmBxE,OAAO,EAAE,sBAAsB,EAAa,MAAM,eAAe,CAAA;AAGjE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAMlD,OAAO,EAEL,qBAAqB,EAEtB,MAAM,SAAS,CAAA;AAEhB;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,EAAE;QACT,YAAY,CAAC,EAAE,OAAO,CAAA;KACvB,CAAA;IACD,OAAO,CAAC,EAAE,sBAAsB,CAAA;CACjC;AAED,eAAO,MAAM,4BAA4B,6QAA6Q,CAAA;AAEtT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,qBAAa,mBAAmB,CAC9B,MAAM,SAAS;IAAE,QAAQ,EAAE,WAAW,EAAE,CAAA;CAAE,GAAG;IAAE,QAAQ,EAAE,WAAW,EAAE,CAAA;CAAE,EACxE,QAAQ,SAAS,qBAAqB,GAAG,qBAAqB;IAG9D,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAS;gBAEjC,KAAK,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,0BAA0B;IAQvE;;OAEG;IACH,IAAI,KAAK,IAAI,cAAc,CAE1B;IAEY,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC;;;;;;;IA8NjE;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA2B3B,OAAO,CAAC,yCAAyC;IAYjD,OAAO,CAAC,oBAAoB;IA0B5B,OAAO,CAAC,iDAAiD;IAoEzD,OAAO,CAAC,kCAAkC;IAO1C,OAAO,CAAC,kCAAkC;IAM1C,OAAO,CAAC,2BAA2B;IAQnC,OAAO,CAAC,8BAA8B;CAYvC"}