@grantex/sdk 0.2.6 → 0.3.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/dist/client.d.ts +65 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +248 -0
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/manifest.d.ts +126 -0
- package/dist/manifest.d.ts.map +1 -0
- package/dist/manifest.js +116 -0
- package/dist/manifest.js.map +1 -0
- package/dist/manifests/ahrefs.d.ts +3 -0
- package/dist/manifests/ahrefs.d.ts.map +1 -0
- package/dist/manifests/ahrefs.js +13 -0
- package/dist/manifests/ahrefs.js.map +1 -0
- package/dist/manifests/banking_aa.d.ts +3 -0
- package/dist/manifests/banking_aa.d.ts.map +1 -0
- package/dist/manifests/banking_aa.js +13 -0
- package/dist/manifests/banking_aa.js.map +1 -0
- package/dist/manifests/bombora.d.ts +3 -0
- package/dist/manifests/bombora.d.ts.map +1 -0
- package/dist/manifests/bombora.js +12 -0
- package/dist/manifests/bombora.js.map +1 -0
- package/dist/manifests/brandwatch.d.ts +3 -0
- package/dist/manifests/brandwatch.d.ts.map +1 -0
- package/dist/manifests/brandwatch.js +13 -0
- package/dist/manifests/brandwatch.js.map +1 -0
- package/dist/manifests/buffer.d.ts +3 -0
- package/dist/manifests/buffer.d.ts.map +1 -0
- package/dist/manifests/buffer.js +13 -0
- package/dist/manifests/buffer.js.map +1 -0
- package/dist/manifests/confluence.d.ts +3 -0
- package/dist/manifests/confluence.d.ts.map +1 -0
- package/dist/manifests/confluence.js +14 -0
- package/dist/manifests/confluence.js.map +1 -0
- package/dist/manifests/darwinbox.d.ts +3 -0
- package/dist/manifests/darwinbox.d.ts.map +1 -0
- package/dist/manifests/darwinbox.js +18 -0
- package/dist/manifests/darwinbox.js.map +1 -0
- package/dist/manifests/docusign.d.ts +3 -0
- package/dist/manifests/docusign.d.ts.map +1 -0
- package/dist/manifests/docusign.js +14 -0
- package/dist/manifests/docusign.js.map +1 -0
- package/dist/manifests/epfo.d.ts +3 -0
- package/dist/manifests/epfo.d.ts.map +1 -0
- package/dist/manifests/epfo.js +14 -0
- package/dist/manifests/epfo.js.map +1 -0
- package/dist/manifests/g2.d.ts +3 -0
- package/dist/manifests/g2.d.ts.map +1 -0
- package/dist/manifests/g2.js +12 -0
- package/dist/manifests/g2.js.map +1 -0
- package/dist/manifests/ga4.d.ts +3 -0
- package/dist/manifests/ga4.d.ts.map +1 -0
- package/dist/manifests/ga4.js +14 -0
- package/dist/manifests/ga4.js.map +1 -0
- package/dist/manifests/github.d.ts +3 -0
- package/dist/manifests/github.d.ts.map +1 -0
- package/dist/manifests/github.js +17 -0
- package/dist/manifests/github.js.map +1 -0
- package/dist/manifests/gmail.d.ts +3 -0
- package/dist/manifests/gmail.d.ts.map +1 -0
- package/dist/manifests/gmail.js +12 -0
- package/dist/manifests/gmail.js.map +1 -0
- package/dist/manifests/google_ads.d.ts +3 -0
- package/dist/manifests/google_ads.d.ts.map +1 -0
- package/dist/manifests/google_ads.js +13 -0
- package/dist/manifests/google_ads.js.map +1 -0
- package/dist/manifests/google_calendar.d.ts +3 -0
- package/dist/manifests/google_calendar.d.ts.map +1 -0
- package/dist/manifests/google_calendar.js +13 -0
- package/dist/manifests/google_calendar.js.map +1 -0
- package/dist/manifests/greenhouse.d.ts +3 -0
- package/dist/manifests/greenhouse.d.ts.map +1 -0
- package/dist/manifests/greenhouse.js +16 -0
- package/dist/manifests/greenhouse.js.map +1 -0
- package/dist/manifests/gstn.d.ts +3 -0
- package/dist/manifests/gstn.d.ts.map +1 -0
- package/dist/manifests/gstn.js +16 -0
- package/dist/manifests/gstn.js.map +1 -0
- package/dist/manifests/hubspot.d.ts +3 -0
- package/dist/manifests/hubspot.d.ts.map +1 -0
- package/dist/manifests/hubspot.js +21 -0
- package/dist/manifests/hubspot.js.map +1 -0
- package/dist/manifests/income_tax_india.d.ts +3 -0
- package/dist/manifests/income_tax_india.d.ts.map +1 -0
- package/dist/manifests/income_tax_india.js +15 -0
- package/dist/manifests/income_tax_india.js.map +1 -0
- package/dist/manifests/index.d.ts +54 -0
- package/dist/manifests/index.d.ts.map +1 -0
- package/dist/manifests/index.js +59 -0
- package/dist/manifests/index.js.map +1 -0
- package/dist/manifests/jira.d.ts +3 -0
- package/dist/manifests/jira.d.ts.map +1 -0
- package/dist/manifests/jira.js +19 -0
- package/dist/manifests/jira.js.map +1 -0
- package/dist/manifests/keka.d.ts +3 -0
- package/dist/manifests/keka.d.ts.map +1 -0
- package/dist/manifests/keka.js +14 -0
- package/dist/manifests/keka.js.map +1 -0
- package/dist/manifests/langsmith.d.ts +3 -0
- package/dist/manifests/langsmith.d.ts.map +1 -0
- package/dist/manifests/langsmith.js +13 -0
- package/dist/manifests/langsmith.js.map +1 -0
- package/dist/manifests/linkedin_ads.d.ts +3 -0
- package/dist/manifests/linkedin_ads.d.ts.map +1 -0
- package/dist/manifests/linkedin_ads.js +12 -0
- package/dist/manifests/linkedin_ads.js.map +1 -0
- package/dist/manifests/linkedin_talent.d.ts +3 -0
- package/dist/manifests/linkedin_talent.d.ts.map +1 -0
- package/dist/manifests/linkedin_talent.js +14 -0
- package/dist/manifests/linkedin_talent.js.map +1 -0
- package/dist/manifests/mailchimp.d.ts +3 -0
- package/dist/manifests/mailchimp.d.ts.map +1 -0
- package/dist/manifests/mailchimp.js +18 -0
- package/dist/manifests/mailchimp.js.map +1 -0
- package/dist/manifests/mca_portal.d.ts +3 -0
- package/dist/manifests/mca_portal.d.ts.map +1 -0
- package/dist/manifests/mca_portal.js +12 -0
- package/dist/manifests/mca_portal.js.map +1 -0
- package/dist/manifests/meta_ads.d.ts +3 -0
- package/dist/manifests/meta_ads.d.ts.map +1 -0
- package/dist/manifests/meta_ads.js +13 -0
- package/dist/manifests/meta_ads.js.map +1 -0
- package/dist/manifests/mixpanel.d.ts +3 -0
- package/dist/manifests/mixpanel.d.ts.map +1 -0
- package/dist/manifests/mixpanel.js +13 -0
- package/dist/manifests/mixpanel.js.map +1 -0
- package/dist/manifests/moengage.d.ts +3 -0
- package/dist/manifests/moengage.d.ts.map +1 -0
- package/dist/manifests/moengage.js +14 -0
- package/dist/manifests/moengage.js.map +1 -0
- package/dist/manifests/netsuite.d.ts +3 -0
- package/dist/manifests/netsuite.d.ts.map +1 -0
- package/dist/manifests/netsuite.js +16 -0
- package/dist/manifests/netsuite.js.map +1 -0
- package/dist/manifests/okta.d.ts +3 -0
- package/dist/manifests/okta.d.ts.map +1 -0
- package/dist/manifests/okta.js +16 -0
- package/dist/manifests/okta.js.map +1 -0
- package/dist/manifests/oracle_fusion.d.ts +3 -0
- package/dist/manifests/oracle_fusion.d.ts.map +1 -0
- package/dist/manifests/oracle_fusion.js +18 -0
- package/dist/manifests/oracle_fusion.js.map +1 -0
- package/dist/manifests/pagerduty.d.ts +3 -0
- package/dist/manifests/pagerduty.d.ts.map +1 -0
- package/dist/manifests/pagerduty.js +14 -0
- package/dist/manifests/pagerduty.js.map +1 -0
- package/dist/manifests/pinelabs_plural.d.ts +3 -0
- package/dist/manifests/pinelabs_plural.d.ts.map +1 -0
- package/dist/manifests/pinelabs_plural.js +14 -0
- package/dist/manifests/pinelabs_plural.js.map +1 -0
- package/dist/manifests/quickbooks.d.ts +3 -0
- package/dist/manifests/quickbooks.d.ts.map +1 -0
- package/dist/manifests/quickbooks.js +14 -0
- package/dist/manifests/quickbooks.js.map +1 -0
- package/dist/manifests/s3.d.ts +3 -0
- package/dist/manifests/s3.d.ts.map +1 -0
- package/dist/manifests/s3.js +14 -0
- package/dist/manifests/s3.js.map +1 -0
- package/dist/manifests/salesforce.d.ts +3 -0
- package/dist/manifests/salesforce.d.ts.map +1 -0
- package/dist/manifests/salesforce.js +14 -0
- package/dist/manifests/salesforce.js.map +1 -0
- package/dist/manifests/sanctions_api.d.ts +3 -0
- package/dist/manifests/sanctions_api.d.ts.map +1 -0
- package/dist/manifests/sanctions_api.js +13 -0
- package/dist/manifests/sanctions_api.js.map +1 -0
- package/dist/manifests/sap.d.ts +3 -0
- package/dist/manifests/sap.d.ts.map +1 -0
- package/dist/manifests/sap.js +15 -0
- package/dist/manifests/sap.js.map +1 -0
- package/dist/manifests/sendgrid.d.ts +3 -0
- package/dist/manifests/sendgrid.d.ts.map +1 -0
- package/dist/manifests/sendgrid.js +15 -0
- package/dist/manifests/sendgrid.js.map +1 -0
- package/dist/manifests/servicenow.d.ts +3 -0
- package/dist/manifests/servicenow.d.ts.map +1 -0
- package/dist/manifests/servicenow.js +14 -0
- package/dist/manifests/servicenow.js.map +1 -0
- package/dist/manifests/slack.d.ts +3 -0
- package/dist/manifests/slack.d.ts.map +1 -0
- package/dist/manifests/slack.js +15 -0
- package/dist/manifests/slack.js.map +1 -0
- package/dist/manifests/stripe.d.ts +3 -0
- package/dist/manifests/stripe.d.ts.map +1 -0
- package/dist/manifests/stripe.js +16 -0
- package/dist/manifests/stripe.js.map +1 -0
- package/dist/manifests/tally.d.ts +3 -0
- package/dist/manifests/tally.d.ts.map +1 -0
- package/dist/manifests/tally.js +14 -0
- package/dist/manifests/tally.js.map +1 -0
- package/dist/manifests/trustradius.d.ts +3 -0
- package/dist/manifests/trustradius.d.ts.map +1 -0
- package/dist/manifests/trustradius.js +12 -0
- package/dist/manifests/trustradius.js.map +1 -0
- package/dist/manifests/twilio.d.ts +3 -0
- package/dist/manifests/twilio.d.ts.map +1 -0
- package/dist/manifests/twilio.js +13 -0
- package/dist/manifests/twilio.js.map +1 -0
- package/dist/manifests/twitter.d.ts +3 -0
- package/dist/manifests/twitter.d.ts.map +1 -0
- package/dist/manifests/twitter.js +14 -0
- package/dist/manifests/twitter.js.map +1 -0
- package/dist/manifests/whatsapp.d.ts +3 -0
- package/dist/manifests/whatsapp.d.ts.map +1 -0
- package/dist/manifests/whatsapp.js +13 -0
- package/dist/manifests/whatsapp.js.map +1 -0
- package/dist/manifests/wordpress.d.ts +3 -0
- package/dist/manifests/wordpress.d.ts.map +1 -0
- package/dist/manifests/wordpress.js +15 -0
- package/dist/manifests/wordpress.js.map +1 -0
- package/dist/manifests/youtube.d.ts +3 -0
- package/dist/manifests/youtube.d.ts.map +1 -0
- package/dist/manifests/youtube.js +14 -0
- package/dist/manifests/youtube.js.map +1 -0
- package/dist/manifests/zendesk.d.ts +3 -0
- package/dist/manifests/zendesk.d.ts.map +1 -0
- package/dist/manifests/zendesk.js +16 -0
- package/dist/manifests/zendesk.js.map +1 -0
- package/dist/manifests/zoho_books.d.ts +3 -0
- package/dist/manifests/zoho_books.d.ts.map +1 -0
- package/dist/manifests/zoho_books.js +15 -0
- package/dist/manifests/zoho_books.js.map +1 -0
- package/dist/manifests/zoom.d.ts +3 -0
- package/dist/manifests/zoom.d.ts.map +1 -0
- package/dist/manifests/zoom.js +14 -0
- package/dist/manifests/zoom.js.map +1 -0
- package/package.json +1 -1
package/dist/client.d.ts
CHANGED
|
@@ -18,6 +18,7 @@ import { DomainsClient } from './resources/domains.js';
|
|
|
18
18
|
import { WebAuthnClient } from './resources/webauthn.js';
|
|
19
19
|
import { CredentialsClient } from './resources/credentials.js';
|
|
20
20
|
import { PassportsClient } from './resources/passports.js';
|
|
21
|
+
import { ToolManifest, type EnforceOptions, type EnforceResult, type WrapToolOptions, type EnforceMiddlewareOptions } from './manifest.js';
|
|
21
22
|
import type { AuthorizationRequest, AuthorizeParams, GrantexClientOptions, RateLimit, RotateKeyResponse, SignupParams, SignupResponse, UpdateDeveloperSettingsParams, UpdateDeveloperSettingsResponse } from './types.js';
|
|
22
23
|
export declare class Grantex {
|
|
23
24
|
#private;
|
|
@@ -63,5 +64,69 @@ export declare class Grantex {
|
|
|
63
64
|
* Update developer settings (e.g. FIDO/WebAuthn requirements).
|
|
64
65
|
*/
|
|
65
66
|
updateSettings(params: UpdateDeveloperSettingsParams): Promise<UpdateDeveloperSettingsResponse>;
|
|
67
|
+
/**
|
|
68
|
+
* Load a tool manifest for scope enforcement.
|
|
69
|
+
* Manifests define what permission level each tool requires.
|
|
70
|
+
*/
|
|
71
|
+
loadManifest(manifest: ToolManifest): void;
|
|
72
|
+
/**
|
|
73
|
+
* Load multiple tool manifests at once.
|
|
74
|
+
*/
|
|
75
|
+
loadManifests(manifests: ToolManifest[]): void;
|
|
76
|
+
/**
|
|
77
|
+
* Enforce scope for a tool call.
|
|
78
|
+
*
|
|
79
|
+
* 1. Verifies the grant token JWT offline (JWKS cached, <1ms after first call)
|
|
80
|
+
* 2. Looks up the tool's required permission from loaded manifests
|
|
81
|
+
* 3. Checks if the granted scope level covers the required permission
|
|
82
|
+
*
|
|
83
|
+
* Fails closed: unknown connectors/tools are denied by default.
|
|
84
|
+
*
|
|
85
|
+
* @example
|
|
86
|
+
* ```ts
|
|
87
|
+
* const result = await grantex.enforce({
|
|
88
|
+
* grantToken: token,
|
|
89
|
+
* connector: 'salesforce',
|
|
90
|
+
* tool: 'delete_contact',
|
|
91
|
+
* });
|
|
92
|
+
* if (!result.allowed) throw new Error(result.reason);
|
|
93
|
+
* ```
|
|
94
|
+
*/
|
|
95
|
+
enforce(options: EnforceOptions): Promise<EnforceResult>;
|
|
96
|
+
/**
|
|
97
|
+
* Wrap a LangChain StructuredTool with automatic Grantex scope enforcement.
|
|
98
|
+
* Before each tool invocation, the grant token is verified and scopes are checked.
|
|
99
|
+
*
|
|
100
|
+
* @param tool - The LangChain StructuredTool to wrap
|
|
101
|
+
* @param options - Connector name, tool name, and grant token (string or getter function)
|
|
102
|
+
* @returns A new StructuredTool that enforces scopes before calling the original
|
|
103
|
+
*
|
|
104
|
+
* @example
|
|
105
|
+
* ```ts
|
|
106
|
+
* const protectedTool = grantex.wrapTool(myTool, {
|
|
107
|
+
* connector: 'salesforce',
|
|
108
|
+
* tool: 'create_lead',
|
|
109
|
+
* grantToken: () => currentState.grant_token,
|
|
110
|
+
* });
|
|
111
|
+
* ```
|
|
112
|
+
*/
|
|
113
|
+
wrapTool<T extends {
|
|
114
|
+
name: string;
|
|
115
|
+
description: string;
|
|
116
|
+
invoke: (...args: unknown[]) => Promise<unknown>;
|
|
117
|
+
}>(tool: T, options: WrapToolOptions): T;
|
|
118
|
+
/**
|
|
119
|
+
* Create Express/Fastify middleware that enforces Grantex scopes on every request.
|
|
120
|
+
*
|
|
121
|
+
* @example
|
|
122
|
+
* ```ts
|
|
123
|
+
* app.use('/api/tools/*', grantex.enforceMiddleware({
|
|
124
|
+
* extractToken: (req) => req.headers.authorization?.replace('Bearer ', ''),
|
|
125
|
+
* extractConnector: (req) => req.params.connector,
|
|
126
|
+
* extractTool: (req) => req.params.tool,
|
|
127
|
+
* }));
|
|
128
|
+
* ```
|
|
129
|
+
*/
|
|
130
|
+
enforceMiddleware(options: EnforceMiddlewareOptions): (req: unknown, res: unknown, next: unknown) => void;
|
|
66
131
|
}
|
|
67
132
|
//# sourceMappingURL=client.d.ts.map
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,KAAK,EACV,oBAAoB,EACpB,eAAe,EACf,oBAAoB,EACpB,SAAS,EACT,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,6BAA6B,EAC7B,+BAA+B,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/client.js
CHANGED
|
@@ -19,9 +19,14 @@ import { DomainsClient } from './resources/domains.js';
|
|
|
19
19
|
import { WebAuthnClient } from './resources/webauthn.js';
|
|
20
20
|
import { CredentialsClient } from './resources/credentials.js';
|
|
21
21
|
import { PassportsClient } from './resources/passports.js';
|
|
22
|
+
import { permissionCovers } from './manifest.js';
|
|
23
|
+
import { verifyGrantToken } from './verify.js';
|
|
22
24
|
const DEFAULT_BASE_URL = 'https://api.grantex.dev';
|
|
23
25
|
export class Grantex {
|
|
24
26
|
#http;
|
|
27
|
+
#manifests = new Map();
|
|
28
|
+
#jwksUri;
|
|
29
|
+
#enforceMode;
|
|
25
30
|
agents;
|
|
26
31
|
grants;
|
|
27
32
|
tokens;
|
|
@@ -75,6 +80,8 @@ export class Grantex {
|
|
|
75
80
|
this.webauthn = new WebAuthnClient(this.#http);
|
|
76
81
|
this.credentials = new CredentialsClient(this.#http);
|
|
77
82
|
this.passports = new PassportsClient(this.#http);
|
|
83
|
+
this.#jwksUri = `${(options.baseUrl ?? DEFAULT_BASE_URL).replace(/\/$/, '')}/.well-known/jwks.json`;
|
|
84
|
+
this.#enforceMode = options['enforceMode'] ?? 'strict';
|
|
78
85
|
}
|
|
79
86
|
/**
|
|
80
87
|
* Create a new developer account without an API key.
|
|
@@ -122,5 +129,246 @@ export class Grantex {
|
|
|
122
129
|
updateSettings(params) {
|
|
123
130
|
return this.#http.patch('/v1/me', params);
|
|
124
131
|
}
|
|
132
|
+
/**
|
|
133
|
+
* Load a tool manifest for scope enforcement.
|
|
134
|
+
* Manifests define what permission level each tool requires.
|
|
135
|
+
*/
|
|
136
|
+
loadManifest(manifest) {
|
|
137
|
+
this.#manifests.set(manifest.connector, manifest);
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Load multiple tool manifests at once.
|
|
141
|
+
*/
|
|
142
|
+
loadManifests(manifests) {
|
|
143
|
+
for (const m of manifests) {
|
|
144
|
+
this.#manifests.set(m.connector, m);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Enforce scope for a tool call.
|
|
149
|
+
*
|
|
150
|
+
* 1. Verifies the grant token JWT offline (JWKS cached, <1ms after first call)
|
|
151
|
+
* 2. Looks up the tool's required permission from loaded manifests
|
|
152
|
+
* 3. Checks if the granted scope level covers the required permission
|
|
153
|
+
*
|
|
154
|
+
* Fails closed: unknown connectors/tools are denied by default.
|
|
155
|
+
*
|
|
156
|
+
* @example
|
|
157
|
+
* ```ts
|
|
158
|
+
* const result = await grantex.enforce({
|
|
159
|
+
* grantToken: token,
|
|
160
|
+
* connector: 'salesforce',
|
|
161
|
+
* tool: 'delete_contact',
|
|
162
|
+
* });
|
|
163
|
+
* if (!result.allowed) throw new Error(result.reason);
|
|
164
|
+
* ```
|
|
165
|
+
*/
|
|
166
|
+
async enforce(options) {
|
|
167
|
+
const { grantToken, connector, tool, amount } = options;
|
|
168
|
+
const base = {
|
|
169
|
+
grantId: '',
|
|
170
|
+
agentDid: '',
|
|
171
|
+
scopes: [],
|
|
172
|
+
permission: '',
|
|
173
|
+
connector,
|
|
174
|
+
tool,
|
|
175
|
+
};
|
|
176
|
+
// 1. Verify the token offline via JWKS
|
|
177
|
+
let grant;
|
|
178
|
+
try {
|
|
179
|
+
grant = await verifyGrantToken(grantToken, { jwksUri: this.#jwksUri });
|
|
180
|
+
}
|
|
181
|
+
catch (err) {
|
|
182
|
+
return this.#applyEnforceMode({
|
|
183
|
+
...base,
|
|
184
|
+
allowed: false,
|
|
185
|
+
reason: `Token verification failed: ${err instanceof Error ? err.message : String(err)}`,
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
base.grantId = grant.grantId;
|
|
189
|
+
base.agentDid = grant.agentDid;
|
|
190
|
+
base.scopes = grant.scopes;
|
|
191
|
+
// 2. Look up manifest for the connector
|
|
192
|
+
const manifest = this.#manifests.get(connector);
|
|
193
|
+
if (!manifest) {
|
|
194
|
+
return this.#applyEnforceMode({
|
|
195
|
+
...base,
|
|
196
|
+
allowed: false,
|
|
197
|
+
reason: `No manifest loaded for connector '${connector}'. Load a manifest first.`,
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
// 3. Look up tool permission from manifest
|
|
201
|
+
const requiredPermission = manifest.getPermission(tool);
|
|
202
|
+
if (!requiredPermission) {
|
|
203
|
+
return this.#applyEnforceMode({
|
|
204
|
+
...base,
|
|
205
|
+
allowed: false,
|
|
206
|
+
reason: `Unknown tool '${tool}' on connector '${connector}'. Tool not found in manifest.`,
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
base.permission = requiredPermission;
|
|
210
|
+
// 4. Find the best matching scope for this connector
|
|
211
|
+
const grantedPermission = this.#resolveGrantedPermission(grant.scopes, connector);
|
|
212
|
+
if (!grantedPermission) {
|
|
213
|
+
return this.#applyEnforceMode({
|
|
214
|
+
...base,
|
|
215
|
+
allowed: false,
|
|
216
|
+
reason: `No scope grants access to connector '${connector}'.`,
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
// 5. Check permission hierarchy
|
|
220
|
+
if (!permissionCovers(grantedPermission, requiredPermission)) {
|
|
221
|
+
return this.#applyEnforceMode({
|
|
222
|
+
...base,
|
|
223
|
+
allowed: false,
|
|
224
|
+
reason: `${grantedPermission} scope does not permit ${requiredPermission} operations on ${connector}.`,
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
// 6. Check capped amount if provided
|
|
228
|
+
if (amount !== undefined) {
|
|
229
|
+
const cap = this.#extractCap(grant.scopes, connector);
|
|
230
|
+
if (cap !== undefined && amount > cap) {
|
|
231
|
+
return this.#applyEnforceMode({
|
|
232
|
+
...base,
|
|
233
|
+
allowed: false,
|
|
234
|
+
reason: `Amount ${amount} exceeds budget cap of ${cap} on ${connector}.`,
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
return { ...base, allowed: true, reason: '' };
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Resolve the highest granted permission level for a connector from scope strings.
|
|
242
|
+
* Scope format: `tool:{connector}:{permission}[:{resource}][:capped:{N}]`
|
|
243
|
+
*/
|
|
244
|
+
#resolveGrantedPermission(scopes, connector) {
|
|
245
|
+
let best;
|
|
246
|
+
let bestLevel = -1;
|
|
247
|
+
const levels = { read: 0, write: 1, delete: 2, admin: 3 };
|
|
248
|
+
for (const scope of scopes) {
|
|
249
|
+
const parts = scope.split(':');
|
|
250
|
+
// Match: tool:{connector}:{permission}:...
|
|
251
|
+
if (parts[0] === 'tool' && parts[1] === connector && parts[2]) {
|
|
252
|
+
const level = levels[parts[2]] ?? -1;
|
|
253
|
+
if (level > bestLevel) {
|
|
254
|
+
bestLevel = level;
|
|
255
|
+
best = parts[2];
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
// Also match agenticorg:{connector}:{permission}
|
|
259
|
+
if (parts[0] === 'agenticorg' && parts[1] === connector && parts[2]) {
|
|
260
|
+
const level = levels[parts[2]] ?? -1;
|
|
261
|
+
if (level > bestLevel) {
|
|
262
|
+
bestLevel = level;
|
|
263
|
+
best = parts[2];
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
return best;
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Extract the budget cap from capped scopes for a connector.
|
|
271
|
+
* Scope format: `tool:{connector}:{permission}:{resource}:capped:{N}`
|
|
272
|
+
*/
|
|
273
|
+
#extractCap(scopes, connector) {
|
|
274
|
+
for (const scope of scopes) {
|
|
275
|
+
const parts = scope.split(':');
|
|
276
|
+
if (parts[0] === 'tool' && parts[1] === connector) {
|
|
277
|
+
const cappedIdx = parts.indexOf('capped');
|
|
278
|
+
if (cappedIdx !== -1 && parts[cappedIdx + 1]) {
|
|
279
|
+
return Number(parts[cappedIdx + 1]);
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
return undefined;
|
|
284
|
+
}
|
|
285
|
+
#applyEnforceMode(result) {
|
|
286
|
+
if (!result.allowed && this.#enforceMode === 'permissive') {
|
|
287
|
+
console.warn(`[grantex] PERMISSIVE MODE — would deny: ${result.reason} (connector=${result.connector}, tool=${result.tool})`);
|
|
288
|
+
return { ...result, allowed: true };
|
|
289
|
+
}
|
|
290
|
+
return result;
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* Wrap a LangChain StructuredTool with automatic Grantex scope enforcement.
|
|
294
|
+
* Before each tool invocation, the grant token is verified and scopes are checked.
|
|
295
|
+
*
|
|
296
|
+
* @param tool - The LangChain StructuredTool to wrap
|
|
297
|
+
* @param options - Connector name, tool name, and grant token (string or getter function)
|
|
298
|
+
* @returns A new StructuredTool that enforces scopes before calling the original
|
|
299
|
+
*
|
|
300
|
+
* @example
|
|
301
|
+
* ```ts
|
|
302
|
+
* const protectedTool = grantex.wrapTool(myTool, {
|
|
303
|
+
* connector: 'salesforce',
|
|
304
|
+
* tool: 'create_lead',
|
|
305
|
+
* grantToken: () => currentState.grant_token,
|
|
306
|
+
* });
|
|
307
|
+
* ```
|
|
308
|
+
*/
|
|
309
|
+
wrapTool(tool, options) {
|
|
310
|
+
const self = this;
|
|
311
|
+
const originalInvoke = tool.invoke.bind(tool);
|
|
312
|
+
const wrapped = Object.create(tool);
|
|
313
|
+
wrapped.invoke = async function (...args) {
|
|
314
|
+
const token = typeof options.grantToken === 'function'
|
|
315
|
+
? options.grantToken()
|
|
316
|
+
: options.grantToken;
|
|
317
|
+
const result = await self.enforce({
|
|
318
|
+
grantToken: token,
|
|
319
|
+
connector: options.connector,
|
|
320
|
+
tool: options.tool,
|
|
321
|
+
});
|
|
322
|
+
if (!result.allowed) {
|
|
323
|
+
throw new Error(`Grantex scope denied: ${result.reason}`);
|
|
324
|
+
}
|
|
325
|
+
return originalInvoke(...args);
|
|
326
|
+
};
|
|
327
|
+
return wrapped;
|
|
328
|
+
}
|
|
329
|
+
/**
|
|
330
|
+
* Create Express/Fastify middleware that enforces Grantex scopes on every request.
|
|
331
|
+
*
|
|
332
|
+
* @example
|
|
333
|
+
* ```ts
|
|
334
|
+
* app.use('/api/tools/*', grantex.enforceMiddleware({
|
|
335
|
+
* extractToken: (req) => req.headers.authorization?.replace('Bearer ', ''),
|
|
336
|
+
* extractConnector: (req) => req.params.connector,
|
|
337
|
+
* extractTool: (req) => req.params.tool,
|
|
338
|
+
* }));
|
|
339
|
+
* ```
|
|
340
|
+
*/
|
|
341
|
+
enforceMiddleware(options) {
|
|
342
|
+
const self = this;
|
|
343
|
+
return function grantexEnforce(req, res, next) {
|
|
344
|
+
const request = req;
|
|
345
|
+
const response = res;
|
|
346
|
+
const nextFn = next;
|
|
347
|
+
const token = options.extractToken(request);
|
|
348
|
+
const connector = options.extractConnector(request);
|
|
349
|
+
const tool = options.extractTool(request);
|
|
350
|
+
if (!token) {
|
|
351
|
+
const statusFn = response['status'];
|
|
352
|
+
const jsonFn = statusFn.call(response, 401)['json'];
|
|
353
|
+
jsonFn.call(statusFn.call(response, 401), { error: { code: 'UNAUTHORIZED', message: 'Missing grant token' } });
|
|
354
|
+
return;
|
|
355
|
+
}
|
|
356
|
+
self.enforce({ grantToken: token, connector, tool })
|
|
357
|
+
.then((result) => {
|
|
358
|
+
if (!result.allowed) {
|
|
359
|
+
const statusFn = response['status'];
|
|
360
|
+
const jsonFn = statusFn.call(response, 403)['json'];
|
|
361
|
+
jsonFn.call(statusFn.call(response, 403), {
|
|
362
|
+
error: { code: 'SCOPE_DENIED', message: result.reason, connector, tool },
|
|
363
|
+
});
|
|
364
|
+
return;
|
|
365
|
+
}
|
|
366
|
+
// Attach enforce result to request for downstream use
|
|
367
|
+
request['grantexEnforce'] = result;
|
|
368
|
+
nextFn();
|
|
369
|
+
})
|
|
370
|
+
.catch((err) => nextFn(err));
|
|
371
|
+
};
|
|
372
|
+
}
|
|
125
373
|
}
|
|
126
374
|
//# sourceMappingURL=client.js.map
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -5,5 +5,6 @@ export { generatePkce, type PkceChallenge } from './pkce.js';
|
|
|
5
5
|
export { GrantexError, GrantexApiError, GrantexAuthError, GrantexTokenError, GrantexNetworkError, } from './errors.js';
|
|
6
6
|
export { EventsClient, type GrantexEvent as GrantexStreamEvent, type StreamOptions, type EventHandler } from './resources/events.js';
|
|
7
7
|
export { PassportsClient, type IssuePassportParams, type IssuedPassportResponse, type GetPassportResponse, type RevokePassportResponse, type ListPassportsParams, } from './resources/passports.js';
|
|
8
|
+
export { ToolManifest, Permission, permissionCovers, type EnforceOptions, type EnforceResult, type ToolManifestOptions, type WrapToolOptions, type EnforceMiddlewareOptions } from './manifest.js';
|
|
8
9
|
export type { RateLimit, GrantexClientOptions, SignupParams, SignupResponse, RotateKeyResponse, Agent, RegisterAgentParams, UpdateAgentParams, ListAgentsResponse, AuthorizeParams, AuthorizationRequest, Grant, ListGrantsParams, ListGrantsResponse, VerifiedGrant, DelegateParams, ExchangeTokenParams, ExchangeTokenResponse, RefreshTokenParams, VerifyTokenResponse, CreatePrincipalSessionParams, PrincipalSessionResponse, LogAuditParams, AuditEntry, ListAuditParams, ListAuditResponse, VerifyGrantTokenOptions, WebhookEventType, CreateWebhookParams, WebhookEndpoint, WebhookEndpointWithSecret, ListWebhooksResponse, SubscriptionStatus, CreateCheckoutParams, CheckoutResponse, CreatePortalParams, PortalResponse, Policy, CreatePolicyParams, UpdatePolicyParams, ListPoliciesResponse, AnomalyType, AnomalySeverity, Anomaly, DetectAnomaliesResponse, ListAnomaliesResponse, ScimEmail, ScimUserMeta, ScimUser, ScimListResponse, CreateScimUserParams, UpdateScimUserParams, ScimToken, ScimTokenWithSecret, CreateScimTokenParams, ListScimTokensResponse, SsoConfig, CreateSsoConfigParams, SsoLoginResponse, SsoCallbackResponse, StoreCredentialParams, StoreCredentialResponse, VaultCredential, ListVaultCredentialsParams, ListVaultCredentialsResponse, ExchangeCredentialParams, ExchangeCredentialResponse, AllocateBudgetParams, BudgetAllocation, DebitBudgetParams, DebitBudgetResponse, BudgetTransaction, BudgetTransactionsResponse, ComplianceSummary, ComplianceExportGrantsParams, ComplianceExportAuditParams, ComplianceGrantsExport, ComplianceAuditExport, EvidencePackParams, EvidencePack, ChainIntegrity, UsageResponse, UsageHistoryEntry, UsageHistoryResponse, CreateDomainParams, CreateDomainResponse, DomainEntry, ListDomainsResponse, VerifyDomainResponse, WebAuthnRegistrationOptions, WebAuthnRegistrationVerifyParams, WebAuthnCredential, ListWebAuthnCredentialsResponse, VerifiableCredentialRecord, ListCredentialsParams, ListCredentialsResponse, VCVerificationResult, SDJWTPresentParams, SDJWTPresentResult, UpdateDeveloperSettingsParams, UpdateDeveloperSettingsResponse, } from './types.js';
|
|
9
10
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAGtD,OAAO,EAAE,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,WAAW,CAAC;AAG7D,OAAO,EACL,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,YAAY,EAAE,KAAK,YAAY,IAAI,kBAAkB,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGrI,OAAO,EACL,eAAe,EACf,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,GACzB,MAAM,0BAA0B,CAAC;AAGlC,YAAY,EACV,SAAS,EACT,oBAAoB,EAEpB,YAAY,EACZ,cAAc,EACd,iBAAiB,EAEjB,KAAK,EACL,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAElB,eAAe,EACf,oBAAoB,EAEpB,KAAK,EACL,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,EACb,cAAc,EAEd,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EAEnB,4BAA4B,EAC5B,wBAAwB,EAExB,cAAc,EACd,UAAU,EACV,eAAe,EACf,iBAAiB,EAEjB,uBAAuB,EAEvB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,yBAAyB,EACzB,oBAAoB,EAEpB,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EAEd,MAAM,EACN,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EAEpB,WAAW,EACX,eAAe,EACf,OAAO,EACP,uBAAuB,EACvB,qBAAqB,EAErB,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,SAAS,EACT,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EAEtB,SAAS,EACT,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,EAEnB,qBAAqB,EACrB,uBAAuB,EACvB,eAAe,EACf,0BAA0B,EAC1B,4BAA4B,EAC5B,wBAAwB,EACxB,0BAA0B,EAE1B,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,0BAA0B,EAE1B,iBAAiB,EACjB,4BAA4B,EAC5B,2BAA2B,EAC3B,sBAAsB,EACtB,qBAAqB,EACrB,kBAAkB,EAClB,YAAY,EACZ,cAAc,EAEd,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EAEpB,kBAAkB,EAClB,oBAAoB,EACpB,WAAW,EACX,mBAAmB,EACnB,oBAAoB,EAEpB,2BAA2B,EAC3B,gCAAgC,EAChC,kBAAkB,EAClB,+BAA+B,EAE/B,0BAA0B,EAC1B,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EAEpB,kBAAkB,EAClB,kBAAkB,EAElB,6BAA6B,EAC7B,+BAA+B,GAChC,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAGtD,OAAO,EAAE,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,WAAW,CAAC;AAG7D,OAAO,EACL,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,YAAY,EAAE,KAAK,YAAY,IAAI,kBAAkB,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGrI,OAAO,EACL,eAAe,EACf,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,GACzB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,KAAK,mBAAmB,EAAE,KAAK,eAAe,EAAE,KAAK,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAGnM,YAAY,EACV,SAAS,EACT,oBAAoB,EAEpB,YAAY,EACZ,cAAc,EACd,iBAAiB,EAEjB,KAAK,EACL,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAElB,eAAe,EACf,oBAAoB,EAEpB,KAAK,EACL,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,EACb,cAAc,EAEd,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EAEnB,4BAA4B,EAC5B,wBAAwB,EAExB,cAAc,EACd,UAAU,EACV,eAAe,EACf,iBAAiB,EAEjB,uBAAuB,EAEvB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,yBAAyB,EACzB,oBAAoB,EAEpB,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EAEd,MAAM,EACN,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EAEpB,WAAW,EACX,eAAe,EACf,OAAO,EACP,uBAAuB,EACvB,qBAAqB,EAErB,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,SAAS,EACT,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EAEtB,SAAS,EACT,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,EAEnB,qBAAqB,EACrB,uBAAuB,EACvB,eAAe,EACf,0BAA0B,EAC1B,4BAA4B,EAC5B,wBAAwB,EACxB,0BAA0B,EAE1B,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,0BAA0B,EAE1B,iBAAiB,EACjB,4BAA4B,EAC5B,2BAA2B,EAC3B,sBAAsB,EACtB,qBAAqB,EACrB,kBAAkB,EAClB,YAAY,EACZ,cAAc,EAEd,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EAEpB,kBAAkB,EAClB,oBAAoB,EACpB,WAAW,EACX,mBAAmB,EACnB,oBAAoB,EAEpB,2BAA2B,EAC3B,gCAAgC,EAChC,kBAAkB,EAClB,+BAA+B,EAE/B,0BAA0B,EAC1B,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EAEpB,kBAAkB,EAClB,kBAAkB,EAElB,6BAA6B,EAC7B,+BAA+B,GAChC,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -12,4 +12,6 @@ export { GrantexError, GrantexApiError, GrantexAuthError, GrantexTokenError, Gra
|
|
|
12
12
|
export { EventsClient } from './resources/events.js';
|
|
13
13
|
// Passports (MPP Agent Identity)
|
|
14
14
|
export { PassportsClient, } from './resources/passports.js';
|
|
15
|
+
// Scope enforcement
|
|
16
|
+
export { ToolManifest, Permission, permissionCovers } from './manifest.js';
|
|
15
17
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,4DAA4D;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,iCAAiC;AACjC,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEtD,cAAc;AACd,OAAO,EAAE,YAAY,EAAsB,MAAM,WAAW,CAAC;AAE7D,gBAAgB;AAChB,OAAO,EACL,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAErB,kBAAkB;AAClB,OAAO,EAAE,YAAY,EAAkF,MAAM,uBAAuB,CAAC;AAErI,iCAAiC;AACjC,OAAO,EACL,eAAe,GAMhB,MAAM,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,4DAA4D;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,iCAAiC;AACjC,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEtD,cAAc;AACd,OAAO,EAAE,YAAY,EAAsB,MAAM,WAAW,CAAC;AAE7D,gBAAgB;AAChB,OAAO,EACL,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAErB,kBAAkB;AAClB,OAAO,EAAE,YAAY,EAAkF,MAAM,uBAAuB,CAAC;AAErI,iCAAiC;AACjC,OAAO,EACL,eAAe,GAMhB,MAAM,0BAA0B,CAAC;AAElC,oBAAoB;AACpB,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAA0H,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool Manifest & Permission — scope enforcement for AI agent tool calls.
|
|
3
|
+
*
|
|
4
|
+
* A ToolManifest declares the permission level (read/write/delete/admin)
|
|
5
|
+
* required for each tool on a connector. The `enforce()` method on the
|
|
6
|
+
* Grantex client uses loaded manifests to check whether a grant token's
|
|
7
|
+
* scopes allow a given tool call.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* import { ToolManifest, Permission } from '@grantex/sdk';
|
|
12
|
+
*
|
|
13
|
+
* const manifest = new ToolManifest({
|
|
14
|
+
* connector: 'salesforce',
|
|
15
|
+
* tools: {
|
|
16
|
+
* query: Permission.READ,
|
|
17
|
+
* create_lead: Permission.WRITE,
|
|
18
|
+
* delete_contact: Permission.DELETE,
|
|
19
|
+
* },
|
|
20
|
+
* });
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
/** Permission levels for tool operations. */
|
|
24
|
+
export declare enum Permission {
|
|
25
|
+
READ = "read",
|
|
26
|
+
WRITE = "write",
|
|
27
|
+
DELETE = "delete",
|
|
28
|
+
ADMIN = "admin"
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Check whether a granted permission level covers the required level.
|
|
32
|
+
*
|
|
33
|
+
* Hierarchy: `admin > delete > write > read`
|
|
34
|
+
*
|
|
35
|
+
* - A `write` scope covers `read` + `write` tools.
|
|
36
|
+
* - A `delete` scope covers `read` + `write` + `delete` tools.
|
|
37
|
+
* - An `admin` scope covers everything.
|
|
38
|
+
*/
|
|
39
|
+
export declare function permissionCovers(granted: string, required: string): boolean;
|
|
40
|
+
export interface ToolManifestOptions {
|
|
41
|
+
/** Connector name (e.g., "salesforce", "hubspot"). */
|
|
42
|
+
connector: string;
|
|
43
|
+
/** Tool name → Permission mapping. */
|
|
44
|
+
tools: Record<string, Permission>;
|
|
45
|
+
/** Manifest version (default "1.0.0"). */
|
|
46
|
+
version?: string;
|
|
47
|
+
/** Human-readable description. */
|
|
48
|
+
description?: string;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Declares the required permission level for each tool on a connector.
|
|
52
|
+
*
|
|
53
|
+
* Load manifests via `grantex.loadManifest()` and they will be used
|
|
54
|
+
* automatically by `grantex.enforce()`.
|
|
55
|
+
*/
|
|
56
|
+
export declare class ToolManifest {
|
|
57
|
+
readonly connector: string;
|
|
58
|
+
readonly tools: Record<string, Permission>;
|
|
59
|
+
readonly version: string;
|
|
60
|
+
readonly description: string;
|
|
61
|
+
constructor(options: ToolManifestOptions);
|
|
62
|
+
/** Get the declared permission for a tool. Returns undefined if not found. */
|
|
63
|
+
getPermission(toolName: string): Permission | undefined;
|
|
64
|
+
/** Add or update a tool's permission in this manifest. */
|
|
65
|
+
addTool(toolName: string, permission: Permission): void;
|
|
66
|
+
/** Number of tools in this manifest. */
|
|
67
|
+
get toolCount(): number;
|
|
68
|
+
/**
|
|
69
|
+
* Create a ToolManifest from a JSON object (e.g., loaded from file).
|
|
70
|
+
*
|
|
71
|
+
* Expected shape:
|
|
72
|
+
* ```json
|
|
73
|
+
* { "connector": "salesforce", "tools": { "query": "read", ... } }
|
|
74
|
+
* ```
|
|
75
|
+
*/
|
|
76
|
+
static fromJSON(data: Record<string, unknown>): ToolManifest;
|
|
77
|
+
}
|
|
78
|
+
/** Result of a `grantex.enforce()` call. */
|
|
79
|
+
export interface EnforceResult {
|
|
80
|
+
/** Whether the tool call is permitted. */
|
|
81
|
+
allowed: boolean;
|
|
82
|
+
/** Human-readable reason if denied. */
|
|
83
|
+
reason: string;
|
|
84
|
+
/** Grant ID from the JWT (empty if token invalid). */
|
|
85
|
+
grantId: string;
|
|
86
|
+
/** Agent DID from the JWT (empty if token invalid). */
|
|
87
|
+
agentDid: string;
|
|
88
|
+
/** All scopes from the grant token. */
|
|
89
|
+
scopes: string[];
|
|
90
|
+
/** Resolved permission for the requested tool. */
|
|
91
|
+
permission: string;
|
|
92
|
+
/** Connector name. */
|
|
93
|
+
connector: string;
|
|
94
|
+
/** Tool name. */
|
|
95
|
+
tool: string;
|
|
96
|
+
}
|
|
97
|
+
/** Options for `grantex.enforce()`. */
|
|
98
|
+
export interface EnforceOptions {
|
|
99
|
+
/** The Grantex grant token (JWT). */
|
|
100
|
+
grantToken: string;
|
|
101
|
+
/** Connector name (e.g., "salesforce"). */
|
|
102
|
+
connector: string;
|
|
103
|
+
/** Tool name (e.g., "delete_contact"). */
|
|
104
|
+
tool: string;
|
|
105
|
+
/** Amount for capped scope enforcement (optional). */
|
|
106
|
+
amount?: number;
|
|
107
|
+
}
|
|
108
|
+
/** Options for `grantex.wrapTool()`. */
|
|
109
|
+
export interface WrapToolOptions {
|
|
110
|
+
/** Connector name. */
|
|
111
|
+
connector: string;
|
|
112
|
+
/** Tool name. */
|
|
113
|
+
tool: string;
|
|
114
|
+
/** Grant token — static string or getter function for dynamic tokens. */
|
|
115
|
+
grantToken: string | (() => string);
|
|
116
|
+
}
|
|
117
|
+
/** Options for `grantex.enforceMiddleware()`. */
|
|
118
|
+
export interface EnforceMiddlewareOptions {
|
|
119
|
+
/** Extract the grant token from the request (e.g., from Authorization header). */
|
|
120
|
+
extractToken: (req: Record<string, unknown>) => string | undefined;
|
|
121
|
+
/** Extract the connector name from the request. */
|
|
122
|
+
extractConnector: (req: Record<string, unknown>) => string;
|
|
123
|
+
/** Extract the tool name from the request. */
|
|
124
|
+
extractTool: (req: Record<string, unknown>) => string;
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=manifest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAMH,6CAA6C;AAC7C,oBAAY,UAAU;IACpB,IAAI,SAAS;IACb,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,KAAK,UAAU;CAChB;AASD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAI3E;AAMD,MAAM,WAAW,mBAAmB;IAClC,sDAAsD;IACtD,SAAS,EAAE,MAAM,CAAC;IAClB,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAClC,0CAA0C;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kCAAkC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;GAKG;AACH,qBAAa,YAAY;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC3C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;gBAEjB,OAAO,EAAE,mBAAmB;IAqBxC,8EAA8E;IAC9E,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAIvD,0DAA0D;IAC1D,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI;IAIvD,wCAAwC;IACxC,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,YAAY;CAa7D;AAMD,4CAA4C;AAC5C,MAAM,WAAW,aAAa;IAC5B,0CAA0C;IAC1C,OAAO,EAAE,OAAO,CAAC;IACjB,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,OAAO,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,QAAQ,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,kDAAkD;IAClD,UAAU,EAAE,MAAM,CAAC;IACnB,sBAAsB;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,uCAAuC;AACvC,MAAM,WAAW,cAAc;IAC7B,qCAAqC;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wCAAwC;AACxC,MAAM,WAAW,eAAe;IAC9B,sBAAsB;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,yEAAyE;IACzE,UAAU,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;CACrC;AAED,iDAAiD;AACjD,MAAM,WAAW,wBAAwB;IACvC,kFAAkF;IAClF,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,GAAG,SAAS,CAAC;IACnE,mDAAmD;IACnD,gBAAgB,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC;IAC3D,8CAA8C;IAC9C,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC;CACvD"}
|