@frontmcp/plugin-approval 1.7.2 → 1.8.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.
package/esm/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@frontmcp/plugin-approval",
3
- "version": "1.7.2",
3
+ "version": "1.8.1",
4
4
  "description": "Approval plugin for FrontMCP - tool authorization workflow with PKCE webhook security",
5
5
  "author": "AgentFront <info@agentfront.dev>",
6
6
  "license": "Apache-2.0",
@@ -49,13 +49,13 @@
49
49
  }
50
50
  },
51
51
  "dependencies": {
52
- "@frontmcp/sdk": "1.7.2",
53
- "@frontmcp/utils": "1.7.2",
52
+ "@frontmcp/sdk": "1.8.1",
53
+ "@frontmcp/utils": "1.8.1",
54
54
  "ioredis": "^5.8.0",
55
55
  "reflect-metadata": "^0.2.2"
56
56
  },
57
57
  "peerDependencies": {
58
- "@frontmcp/lazy-zod": "1.7.2",
58
+ "@frontmcp/lazy-zod": "1.8.1",
59
59
  "@vercel/kv": "^2.0.0 || ^3.0.0"
60
60
  },
61
61
  "peerDependenciesMeta": {
@@ -3,10 +3,11 @@
3
3
  *
4
4
  * @module @frontmcp/plugin-approval
5
5
  */
6
- import { DynamicPlugin, FlowCtxOf } from '@frontmcp/sdk';
6
+ import { DynamicPlugin, type FlowCtxOf } from '@frontmcp/sdk';
7
7
  /**
8
8
  * Hook plugin that checks tool approval before execution.
9
9
  *
10
+ * `ApprovalPlugin` registers it, so it never needs to be listed on its own.
10
11
  * Priority 100 ensures this runs early (before cache at 1000).
11
12
  */
12
13
  export default class ApprovalCheckPlugin extends DynamicPlugin<Record<string, never>> {
@@ -14,11 +15,20 @@ export default class ApprovalCheckPlugin extends DynamicPlugin<Record<string, ne
14
15
  * Check tool approval before execution.
15
16
  */
16
17
  checkApproval(flowCtx: FlowCtxOf<'tools:call-tool'>): Promise<void>;
18
+ private enforceApproval;
17
19
  private resolveApprovalConfig;
18
20
  private isExpired;
21
+ /**
22
+ * The context this call is running in, as established by the SESSION (GHSA-r848-p7wf-96rc).
23
+ *
24
+ * Deliberately ignores `toolContext.input.context`. The only consumer of this value is
25
+ * `isPreApprovedContext`, which skips the approval prompt outright, so reading it from the
26
+ * arguments of the call being gated let a caller name its own pre-approved context and walk
27
+ * straight past the gate. Only `authInfo.extra.approvalContext`, which the server sets
28
+ * while authenticating, can say what context a call belongs to.
29
+ */
19
30
  private getCurrentContext;
20
31
  private isApprovalContext;
21
- private getStringExtra;
22
32
  private isPreApprovedContext;
23
33
  private handleApprovalRequired;
24
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"approval-check.hook.d.ts","sourceRoot":"","sources":["../../src/hooks/approval-check.hook.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAoB,SAAS,EAAE,MAAM,eAAe,CAAC;AAO3E;;;;GAIG;AAKH,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACnF;;OAEG;IAEG,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,iBAAiB,CAAC;IAwDzD,OAAO,CAAC,qBAAqB;IAc7B,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,oBAAoB;YAUd,sBAAsB;CAsBrC"}
1
+ {"version":3,"file":"approval-check.hook.d.ts","sourceRoot":"","sources":["../../src/hooks/approval-check.hook.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAoB,KAAK,SAAS,EAAE,MAAM,eAAe,CAAC;AAmBhF;;;;;GAKG;AAKH,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACnF;;OAEG;IAEG,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,iBAAiB,CAAC;YA2B3C,eAAe;IAqC7B,OAAO,CAAC,qBAAqB;IAc7B,OAAO,CAAC,SAAS;IAKjB;;;;;;;;OAQG;IACH,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,oBAAoB;YAUd,sBAAsB;CAsBrC"}