@lit-protocol/vincent-app-sdk 1.0.1 → 1.0.3-beta.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/CHANGELOG.md +21 -0
- package/CONTRIBUTING.md +2 -2
- package/README.md +12 -11
- package/dist/CHANGELOG.md +21 -0
- package/dist/CONTRIBUTING.md +2 -2
- package/dist/README.md +12 -11
- package/dist/package.json +32 -3
- package/dist/src/expressMiddleware/express.d.ts +63 -0
- package/dist/src/expressMiddleware/express.d.ts.map +1 -0
- package/dist/src/expressMiddleware/express.js +125 -0
- package/dist/src/expressMiddleware/express.js.map +1 -0
- package/dist/src/expressMiddleware/index.d.ts +14 -0
- package/dist/src/expressMiddleware/index.d.ts.map +1 -0
- package/dist/src/expressMiddleware/index.js +17 -0
- package/dist/src/expressMiddleware/index.js.map +1 -0
- package/dist/src/expressMiddleware/types.d.ts +31 -0
- package/dist/src/expressMiddleware/types.d.ts.map +1 -0
- package/dist/src/expressMiddleware/types.js.map +1 -0
- package/dist/src/index.d.ts +1 -17
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +0 -16
- package/dist/src/index.js.map +1 -1
- package/dist/src/internal/LitNodeClient/LitNodeClientInstance.d.ts +1 -1
- package/dist/src/internal/LitNodeClient/LitNodeClientInstance.d.ts.map +1 -1
- package/dist/src/internal/LitNodeClient/LitNodeClientInstance.js +3 -2
- package/dist/src/internal/LitNodeClient/LitNodeClientInstance.js.map +1 -1
- package/dist/src/internal/LitNodeClient/getLitNodeClient.d.ts +2 -2
- package/dist/src/internal/LitNodeClient/getLitNodeClient.d.ts.map +1 -1
- package/dist/src/jwt/accessors.d.ts +8 -0
- package/dist/src/jwt/accessors.d.ts.map +1 -0
- package/dist/src/jwt/accessors.js +15 -0
- package/dist/src/jwt/accessors.js.map +1 -0
- package/dist/src/jwt/core/create.d.ts +2 -19
- package/dist/src/jwt/core/create.d.ts.map +1 -1
- package/dist/src/jwt/core/create.js +9 -28
- package/dist/src/jwt/core/create.js.map +1 -1
- package/dist/src/jwt/core/isExpired.d.ts +9 -0
- package/dist/src/jwt/core/isExpired.d.ts.map +1 -0
- package/dist/src/jwt/core/{utils/isJWTExpired.js → isExpired.js} +4 -3
- package/dist/src/jwt/core/isExpired.js.map +1 -0
- package/dist/src/jwt/core/utils/base64.d.ts +14 -0
- package/dist/src/jwt/core/utils/base64.d.ts.map +1 -0
- package/dist/src/jwt/core/utils/base64.js +54 -0
- package/dist/src/jwt/core/utils/base64.js.map +1 -0
- package/dist/src/jwt/core/utils/index.d.ts +0 -1
- package/dist/src/jwt/core/utils/index.d.ts.map +1 -1
- package/dist/src/jwt/core/utils/index.js +1 -3
- package/dist/src/jwt/core/utils/index.js.map +1 -1
- package/dist/src/jwt/core/utils/processJWTSignature.d.ts.map +1 -1
- package/dist/src/jwt/core/utils/processJWTSignature.js +2 -9
- package/dist/src/jwt/core/utils/processJWTSignature.js.map +1 -1
- package/dist/src/jwt/core/validate.d.ts +28 -22
- package/dist/src/jwt/core/validate.d.ts.map +1 -1
- package/dist/src/jwt/core/validate.js +82 -35
- package/dist/src/jwt/core/validate.js.map +1 -1
- package/dist/src/jwt/index.d.ts +15 -63
- package/dist/src/jwt/index.d.ts.map +1 -1
- package/dist/src/jwt/index.js +24 -64
- package/dist/src/jwt/index.js.map +1 -1
- package/dist/src/jwt/typeGuards.d.ts +14 -0
- package/dist/src/jwt/typeGuards.d.ts.map +1 -0
- package/dist/src/jwt/typeGuards.js +32 -0
- package/dist/src/jwt/typeGuards.js.map +1 -0
- package/dist/src/jwt/types.d.ts +32 -22
- package/dist/src/jwt/types.d.ts.map +1 -1
- package/dist/src/toolClient/constants.d.ts +2 -0
- package/dist/src/toolClient/constants.d.ts.map +1 -0
- package/dist/src/toolClient/constants.js +5 -0
- package/dist/src/toolClient/constants.js.map +1 -0
- package/dist/src/toolClient/execute/generateVincentToolSessionSigs.d.ts +8 -0
- package/dist/src/toolClient/execute/generateVincentToolSessionSigs.d.ts.map +1 -0
- package/dist/src/toolClient/execute/generateVincentToolSessionSigs.js +33 -0
- package/dist/src/toolClient/execute/generateVincentToolSessionSigs.js.map +1 -0
- package/dist/src/toolClient/{resultCreators.d.ts → execute/resultCreators.d.ts} +22 -20
- package/dist/src/toolClient/execute/resultCreators.d.ts.map +1 -0
- package/dist/src/toolClient/{resultCreators.js → execute/resultCreators.js} +14 -12
- package/dist/src/toolClient/execute/resultCreators.js.map +1 -0
- package/dist/src/toolClient/execute/types.d.ts +38 -0
- package/dist/src/toolClient/execute/types.d.ts.map +1 -0
- package/dist/src/toolClient/execute/types.js +4 -0
- package/dist/src/toolClient/execute/types.js.map +1 -0
- package/dist/src/toolClient/index.d.ts +17 -1
- package/dist/src/toolClient/index.d.ts.map +1 -1
- package/dist/src/toolClient/index.js +21 -1
- package/dist/src/toolClient/index.js.map +1 -1
- package/dist/src/toolClient/precheck/resultCreators.d.ts +71 -0
- package/dist/src/toolClient/precheck/resultCreators.d.ts.map +1 -0
- package/dist/src/toolClient/precheck/resultCreators.js +57 -0
- package/dist/src/toolClient/precheck/resultCreators.js.map +1 -0
- package/dist/src/toolClient/precheck/runPolicyPrechecks.d.ts +14 -0
- package/dist/src/toolClient/precheck/runPolicyPrechecks.d.ts.map +1 -0
- package/dist/src/toolClient/precheck/runPolicyPrechecks.js +97 -0
- package/dist/src/toolClient/precheck/runPolicyPrechecks.js.map +1 -0
- package/dist/src/toolClient/precheck/types.d.ts +82 -0
- package/dist/src/toolClient/precheck/types.d.ts.map +1 -0
- package/dist/src/toolClient/precheck/types.js +4 -0
- package/dist/src/toolClient/precheck/types.js.map +1 -0
- package/dist/src/toolClient/typeGuards.d.ts +26 -17
- package/dist/src/toolClient/typeGuards.d.ts.map +1 -1
- package/dist/src/toolClient/typeGuards.js +32 -13
- package/dist/src/toolClient/typeGuards.js.map +1 -1
- package/dist/src/toolClient/types.d.ts +5 -35
- package/dist/src/toolClient/types.d.ts.map +1 -1
- package/dist/src/toolClient/types.js +1 -0
- package/dist/src/toolClient/types.js.map +1 -1
- package/dist/src/toolClient/vincentToolClient.d.ts +54 -6
- package/dist/src/toolClient/vincentToolClient.d.ts.map +1 -1
- package/dist/src/toolClient/vincentToolClient.js +132 -138
- package/dist/src/toolClient/vincentToolClient.js.map +1 -1
- package/dist/src/type-inference-verification/tool-client-inference.d.ts.map +1 -1
- package/dist/src/type-inference-verification/tool-client-inference.js +11 -6
- package/dist/src/type-inference-verification/tool-client-inference.js.map +1 -1
- package/dist/src/utils/delegation.d.ts +7 -0
- package/dist/src/utils/delegation.d.ts.map +1 -0
- package/dist/src/utils/delegation.js +18 -0
- package/dist/src/utils/delegation.js.map +1 -0
- package/dist/src/utils/index.d.ts +3 -0
- package/dist/src/utils/index.d.ts.map +1 -0
- package/dist/src/utils/index.js +6 -0
- package/dist/src/utils/index.js.map +1 -0
- package/dist/src/utils/typedocRoot.d.ts +7 -0
- package/dist/src/utils/typedocRoot.d.ts.map +1 -0
- package/dist/src/utils/typedocRoot.js +13 -0
- package/dist/src/utils/typedocRoot.js.map +1 -0
- package/dist/src/utils/types.d.ts +15 -0
- package/dist/src/utils/types.d.ts.map +1 -0
- package/dist/src/{app → utils}/types.js.map +1 -1
- package/dist/src/webAuthClient/app.d.ts +7 -0
- package/dist/src/webAuthClient/app.d.ts.map +1 -0
- package/dist/src/webAuthClient/app.js +39 -0
- package/dist/src/webAuthClient/app.js.map +1 -0
- package/dist/src/webAuthClient/constants.d.ts.map +1 -0
- package/dist/src/webAuthClient/constants.js.map +1 -0
- package/dist/src/webAuthClient/index.d.ts +13 -0
- package/dist/src/webAuthClient/index.d.ts.map +1 -0
- package/dist/src/webAuthClient/index.js +15 -0
- package/dist/src/webAuthClient/index.js.map +1 -0
- package/dist/src/webAuthClient/internal/index.d.ts.map +1 -0
- package/dist/src/webAuthClient/internal/index.js.map +1 -0
- package/dist/src/webAuthClient/internal/uriHelpers.d.ts +15 -0
- package/dist/src/webAuthClient/internal/uriHelpers.d.ts.map +1 -0
- package/dist/src/{app → webAuthClient}/internal/uriHelpers.js +12 -6
- package/dist/src/webAuthClient/internal/uriHelpers.js.map +1 -0
- package/dist/src/{app → webAuthClient}/types.d.ts +33 -41
- package/dist/src/webAuthClient/types.d.ts.map +1 -0
- package/dist/src/{types.js.map → webAuthClient/types.js.map} +1 -1
- package/package.json +31 -4
- package/dist/src/app/app.d.ts +0 -9
- package/dist/src/app/app.d.ts.map +0 -1
- package/dist/src/app/app.js +0 -33
- package/dist/src/app/app.js.map +0 -1
- package/dist/src/app/constants.d.ts.map +0 -1
- package/dist/src/app/constants.js.map +0 -1
- package/dist/src/app/index.d.ts +0 -3
- package/dist/src/app/index.d.ts.map +0 -1
- package/dist/src/app/index.js +0 -6
- package/dist/src/app/index.js.map +0 -1
- package/dist/src/app/internal/index.d.ts.map +0 -1
- package/dist/src/app/internal/index.js.map +0 -1
- package/dist/src/app/internal/uriHelpers.d.ts +0 -11
- package/dist/src/app/internal/uriHelpers.d.ts.map +0 -1
- package/dist/src/app/internal/uriHelpers.js.map +0 -1
- package/dist/src/app/types.d.ts.map +0 -1
- package/dist/src/express-authentication-middleware/express.d.ts +0 -79
- package/dist/src/express-authentication-middleware/express.d.ts.map +0 -1
- package/dist/src/express-authentication-middleware/express.js +0 -137
- package/dist/src/express-authentication-middleware/express.js.map +0 -1
- package/dist/src/express-authentication-middleware/index.d.ts +0 -43
- package/dist/src/express-authentication-middleware/index.d.ts.map +0 -1
- package/dist/src/express-authentication-middleware/index.js +0 -47
- package/dist/src/express-authentication-middleware/index.js.map +0 -1
- package/dist/src/express-authentication-middleware/types.d.ts +0 -25
- package/dist/src/express-authentication-middleware/types.d.ts.map +0 -1
- package/dist/src/express-authentication-middleware/types.js.map +0 -1
- package/dist/src/jwt/core/utils/isJWTExpired.d.ts +0 -8
- package/dist/src/jwt/core/utils/isJWTExpired.d.ts.map +0 -1
- package/dist/src/jwt/core/utils/isJWTExpired.js.map +0 -1
- package/dist/src/toolClient/resultCreators.d.ts.map +0 -1
- package/dist/src/toolClient/resultCreators.js.map +0 -1
- package/dist/src/types.d.ts +0 -5
- package/dist/src/types.d.ts.map +0 -1
- /package/dist/src/{app → expressMiddleware}/types.js +0 -0
- /package/dist/src/{express-authentication-middleware → utils}/types.js +0 -0
- /package/dist/src/{app → webAuthClient}/constants.d.ts +0 -0
- /package/dist/src/{app → webAuthClient}/constants.js +0 -0
- /package/dist/src/{app → webAuthClient}/internal/index.d.ts +0 -0
- /package/dist/src/{app → webAuthClient}/internal/index.js +0 -0
- /package/dist/src/{types.js → webAuthClient/types.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typeGuards.js","sourceRoot":"","sources":["../../../src/toolClient/typeGuards.ts"],"names":[],"mappings":";AAAA,mCAAmC;;AAcnC,sDAWC;
|
|
1
|
+
{"version":3,"file":"typeGuards.js","sourceRoot":"","sources":["../../../src/toolClient/typeGuards.ts"],"names":[],"mappings":";AAAA,mCAAmC;;AAcnC,sDAWC;AAID,sDAWC;AAUD,oEAMC;AAOD,sFAOC;AAGD,wCASC;AAGD,gFAYC;AAtFD;;KAEK;AACL,SAAgB,qBAAqB,CACnC,KAAc;IAId,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,SAAS,IAAI,KAAK;QACjB,KAAa,CAAC,OAAO,KAAK,IAAI,CAChC,CAAC;AACJ,CAAC;AAED;oBACoB;AACpB,SAAgB,qBAAqB,CACnC,KAAc;IAId,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,SAAS,IAAI,KAAK;QACjB,KAAa,CAAC,OAAO,KAAK,KAAK,CACjC,CAAC;AACJ,CAAC;AAED;;;;;;;mBAOmB;AACnB,SAAgB,4BAA4B,CAC1C,KAAc;IAEd,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAEhD,OAAO,cAAc,IAAI,KAAK,IAAI,OAAQ,KAAa,CAAC,YAAY,KAAK,QAAQ,CAAC;AACpF,CAAC;AAED;;;;mBAImB;AACnB,SAAgB,qCAAqC,CACnD,KAAc;IAEd,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAChD,OAAO,CACL,uBAAuB,IAAI,KAAK,IAAI,OAAQ,KAAa,CAAC,qBAAqB,KAAK,QAAQ,CAC7F,CAAC;AACJ,CAAC;AAED,cAAc;AACd,SAAgB,cAAc,CAC5B,KAAc;IAEd,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,SAAS,IAAI,KAAK;QAClB,OAAQ,KAAa,CAAC,OAAO,KAAK,SAAS,CAC5C,CAAC;AACJ,CAAC;AAED,cAAc;AACd,SAAgB,kCAAkC,CAChD,KAAc;IAEd,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,qBAAqB,IAAI,KAAK;QAC9B,aAAa,IAAI,KAAK;QACtB,cAAc,CAAE,KAAa,CAAC,mBAAmB,CAAC;QAClD,OAAQ,KAAa,CAAC,WAAW,KAAK,QAAQ;QAC7C,KAAa,CAAC,WAAW,KAAK,IAAI,CACpC,CAAC;AACJ,CAAC"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { z } from 'zod';
|
|
2
|
-
import type { BaseToolContext
|
|
2
|
+
import type { BaseToolContext } from '@lit-protocol/vincent-tool-sdk';
|
|
3
|
+
import type { ToolExecuteResponse } from './execute/types';
|
|
4
|
+
import type { ToolPrecheckResponse } from './precheck/types';
|
|
3
5
|
export { type BaseToolContext };
|
|
4
6
|
/**
|
|
5
7
|
* The Vincent Tool Client is used to interact with Vincent tools.
|
|
@@ -28,7 +30,7 @@ export interface VincentToolClient<ToolParamsSchema extends z.ZodType, PoliciesB
|
|
|
28
30
|
*/
|
|
29
31
|
precheck(rawToolParams: z.infer<ToolParamsSchema>, context: ToolClientContext & {
|
|
30
32
|
rpcUrl?: string;
|
|
31
|
-
}): Promise<
|
|
33
|
+
}): Promise<ToolPrecheckResponse<PrecheckSuccessSchema, PrecheckFailSchema, PoliciesByPackageName>>;
|
|
32
34
|
/**
|
|
33
35
|
* Executes the tool with the given parameters.
|
|
34
36
|
*
|
|
@@ -39,39 +41,7 @@ export interface VincentToolClient<ToolParamsSchema extends z.ZodType, PoliciesB
|
|
|
39
41
|
* @returns A promise that resolves to a ToolResponse containing the execution result
|
|
40
42
|
*
|
|
41
43
|
*/
|
|
42
|
-
execute(rawToolParams: z.infer<ToolParamsSchema>, context: ToolClientContext): Promise<
|
|
43
|
-
}
|
|
44
|
-
/** @category Interfaces */
|
|
45
|
-
export interface ToolResponseSuccess<Result, Policies extends Record<string, any>> {
|
|
46
|
-
success: true;
|
|
47
|
-
result: Result;
|
|
48
|
-
context?: BaseToolContext<PolicyEvaluationResultContext<Policies>>;
|
|
49
|
-
}
|
|
50
|
-
/** @category Interfaces */
|
|
51
|
-
export interface ToolResponseSuccessNoResult<Policies extends Record<string, any>> {
|
|
52
|
-
success: true;
|
|
53
|
-
result?: never;
|
|
54
|
-
context?: BaseToolContext<PolicyEvaluationResultContext<Policies>>;
|
|
55
|
-
}
|
|
56
|
-
/** @category Interfaces */
|
|
57
|
-
export interface ToolResponseFailure<Result, Policies extends Record<string, any>> {
|
|
58
|
-
success: false;
|
|
59
|
-
error?: string;
|
|
60
|
-
result: Result;
|
|
61
|
-
context?: BaseToolContext<PolicyEvaluationResultContext<Policies>>;
|
|
62
|
-
}
|
|
63
|
-
/** @category Interfaces */
|
|
64
|
-
export interface ToolResponseFailureNoResult<Policies extends Record<string, any>> {
|
|
65
|
-
success: false;
|
|
66
|
-
error?: string;
|
|
67
|
-
result?: never;
|
|
68
|
-
context?: BaseToolContext<PolicyEvaluationResultContext<Policies>>;
|
|
69
|
-
}
|
|
70
|
-
/** @category Interfaces */
|
|
71
|
-
export type ToolResponse<SuccessSchema extends z.ZodType | undefined, FailSchema extends z.ZodType | undefined, Policies extends Record<string, any>> = (SuccessSchema extends z.ZodType ? ToolResponseSuccess<z.infer<SuccessSchema>, Policies> : ToolResponseSuccessNoResult<Policies>) | (FailSchema extends z.ZodType ? ToolResponseFailure<z.infer<FailSchema>, Policies> : ToolResponseFailureNoResult<Policies>);
|
|
72
|
-
export interface RemoteVincentToolExecutionResult<SuccessSchema extends z.ZodType | undefined, FailSchema extends z.ZodType | undefined, Policies extends Record<string, any>> {
|
|
73
|
-
toolExecutionResult: ToolResponse<SuccessSchema, FailSchema, Policies>;
|
|
74
|
-
toolContext: BaseToolContext<PolicyEvaluationResultContext<Policies>>;
|
|
44
|
+
execute(rawToolParams: z.infer<ToolParamsSchema>, context: ToolClientContext): Promise<ToolExecuteResponse<ExecuteSuccessSchema, ExecuteFailSchema, PoliciesByPackageName>>;
|
|
75
45
|
}
|
|
76
46
|
/** @category Interfaces */
|
|
77
47
|
export interface ToolClientContext {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/toolClient/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/toolClient/types.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEtE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAE7D,OAAO,EAAE,KAAK,eAAe,EAAE,CAAC;AAEhC;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,iBAAiB,CAChC,gBAAgB,SAAS,CAAC,CAAC,OAAO,EAClC,qBAAqB,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACjD,oBAAoB,SAAS,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,YAAY,EACvD,iBAAiB,SAAS,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,YAAY,EACpD,qBAAqB,SAAS,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,YAAY,EACxD,kBAAkB,SAAS,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,YAAY;IAErD;;;;;;;;OAQG;IACH,QAAQ,CACN,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,EACxC,OAAO,EAAE,iBAAiB,GAAG;QAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GACA,OAAO,CACR,oBAAoB,CAAC,qBAAqB,EAAE,kBAAkB,EAAE,qBAAqB,CAAC,CACvF,CAAC;IAEF;;;;;;;;;OASG;IACH,OAAO,CACL,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,EACxC,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,mBAAmB,CAAC,oBAAoB,EAAE,iBAAiB,EAAE,qBAAqB,CAAC,CAAC,CAAC;CACjG;AAED,2BAA2B;AAC3B,MAAM,WAAW,iBAAiB;IAChC,sBAAsB,EAAE,MAAM,CAAC;CAChC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/toolClient/types.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/toolClient/types.ts"],"names":[],"mappings":";AAAA,8BAA8B"}
|
|
@@ -1,11 +1,58 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
1
|
import { ethers } from 'ethers';
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import type { BundledVincentTool, VincentTool } from '@lit-protocol/vincent-tool-sdk';
|
|
4
|
+
import type { ToolPolicyMap } from '@lit-protocol/vincent-tool-sdk/internal';
|
|
5
|
+
import type { VincentToolClient } from './types';
|
|
6
6
|
/** A VincentToolClient provides a type-safe interface for executing tools, for both `precheck()`
|
|
7
7
|
* and `execute()` functionality.
|
|
8
8
|
*
|
|
9
|
+
* ```typescript
|
|
10
|
+
* import { disconnectVincentToolClients, getVincentToolClient, isToolResponseFailure } from '@lit-protocol/vincent-app-sdk/toolClient';
|
|
11
|
+
* import { bundledVincentTool as uniswapBundledTool } from '@lit-protocol/vincent-tool-uniswap-swap';
|
|
12
|
+
* import { delegateeEthersSigner } = from './ethersSigner';
|
|
13
|
+
* import { ETH_RPC_URL, BASE_RPC_URL } from './rpcConfigs';
|
|
14
|
+
*
|
|
15
|
+
* const uniswapToolClient = getVincentToolClient({
|
|
16
|
+
* bundledVincentTool: uniswapBundledTool,
|
|
17
|
+
* ethersSigner: delegateeEthersSigner,
|
|
18
|
+
* });
|
|
19
|
+
*
|
|
20
|
+
* // First, call `precheck()` to get a best-estimate result indicating that the tool execution in the LIT action runtime will not fail
|
|
21
|
+
* const precheckResult = await uniswapSwapToolClient.precheck({
|
|
22
|
+
* ethRpcUrl: ETH_RPC_URL,
|
|
23
|
+
* rpcUrlForUniswap: BASE_RPC_URL,
|
|
24
|
+
* chainIdForUniswap: 8453, // Base
|
|
25
|
+
* tokenInAddress: '0x4200000000000000000000000000000000000006', // WETH
|
|
26
|
+
* tokenInDecimals: 18,
|
|
27
|
+
* tokenInAmount: 0.0000077,
|
|
28
|
+
* tokenOutAddress: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913', // USDC on Base
|
|
29
|
+
* tokenOutDecimals: 8,
|
|
30
|
+
* },
|
|
31
|
+
* {
|
|
32
|
+
* delegatorPkpEthAddress: '0x123456789123456789123456789...',
|
|
33
|
+
* });
|
|
34
|
+
*
|
|
35
|
+
* const uniswapSwapExecutionResult = await uniswapSwapToolClient.execute({
|
|
36
|
+
* ethRpcUrl: ETH_RPC_URL,
|
|
37
|
+
* rpcUrlForUniswap: BASE_RPC_URL,
|
|
38
|
+
* chainIdForUniswap: 8453,
|
|
39
|
+
* tokenInAddress: '0x4200000000000000000000000000000000000006', // WETH
|
|
40
|
+
* tokenInDecimals: 18,
|
|
41
|
+
* tokenInAmount: 0.0000077,
|
|
42
|
+
* tokenOutAddress: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913', // USDC on Base
|
|
43
|
+
* tokenOutDecimals: 8,
|
|
44
|
+
* },
|
|
45
|
+
* {
|
|
46
|
+
* delegatorPkpEthAddress: '0x123456789123456789123456789...',
|
|
47
|
+
* });
|
|
48
|
+
*
|
|
49
|
+
* if(isToolResponseFailure(uniswapSwapExecutionResult)) {
|
|
50
|
+
* ...handle failure
|
|
51
|
+
* } else {
|
|
52
|
+
* ...handle result
|
|
53
|
+
* }
|
|
54
|
+
* ```
|
|
55
|
+
*
|
|
9
56
|
* @typeParam IpfsCid {@removeTypeParameterCompletely}
|
|
10
57
|
* @typeParam ToolParamsSchema {@removeTypeParameterCompletely}
|
|
11
58
|
* @typeParam PkgNames {@removeTypeParameterCompletely}
|
|
@@ -17,9 +64,10 @@ import { type VincentToolClient } from './types';
|
|
|
17
64
|
* @typeParam PrecheckFailSchema {@removeTypeParameterCompletely}
|
|
18
65
|
*
|
|
19
66
|
* @param params
|
|
20
|
-
* @param
|
|
67
|
+
* @param params.ethersSigner - An ethers signer that has been configured with your delegatee key
|
|
68
|
+
* @param params.bundledVincentTool - The bundled vincent tool that you want to interact with
|
|
21
69
|
*
|
|
22
|
-
* @category API
|
|
70
|
+
* @category API
|
|
23
71
|
* */
|
|
24
72
|
export declare function getVincentToolClient<const IpfsCid extends string, ToolParamsSchema extends z.ZodType, PkgNames extends string, PolicyMap extends ToolPolicyMap<any, PkgNames>, PoliciesByPackageName extends PolicyMap['policyByPackageName'], ExecuteSuccessSchema extends z.ZodType = z.ZodUndefined, ExecuteFailSchema extends z.ZodType = z.ZodUndefined, PrecheckSuccessSchema extends z.ZodType = z.ZodUndefined, PrecheckFailSchema extends z.ZodType = z.ZodUndefined>(params: {
|
|
25
73
|
bundledVincentTool: BundledVincentTool<VincentTool<ToolParamsSchema, PkgNames, PolicyMap, PoliciesByPackageName, ExecuteSuccessSchema, ExecuteFailSchema, PrecheckSuccessSchema, PrecheckFailSchema, any, any>, IpfsCid>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vincentToolClient.d.ts","sourceRoot":"","sources":["../../../src/toolClient/vincentToolClient.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"vincentToolClient.d.ts","sourceRoot":"","sources":["../../../src/toolClient/vincentToolClient.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AACtF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAc7E,OAAO,KAAK,EAAqB,iBAAiB,EAAE,MAAM,SAAS,CAAC;AA2BpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAiEK;AACL,wBAAgB,oBAAoB,CAClC,KAAK,CAAC,OAAO,SAAS,MAAM,EAC5B,gBAAgB,SAAS,CAAC,CAAC,OAAO,EAClC,QAAQ,SAAS,MAAM,EACvB,SAAS,SAAS,aAAa,CAAC,GAAG,EAAE,QAAQ,CAAC,EAC9C,qBAAqB,SAAS,SAAS,CAAC,qBAAqB,CAAC,EAC9D,oBAAoB,SAAS,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,YAAY,EACvD,iBAAiB,SAAS,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,YAAY,EACpD,qBAAqB,SAAS,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,YAAY,EACxD,kBAAkB,SAAS,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,YAAY,EACrD,MAAM,EAAE;IACR,kBAAkB,EAAE,kBAAkB,CACpC,WAAW,CACT,gBAAgB,EAChB,QAAQ,EACR,SAAS,EACT,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,GAAG,EACH,GAAG,CACJ,EACD,OAAO,CACR,CAAC;IACF,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC;CAC7B,GAAG,iBAAiB,CACnB,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,CACnB,CAmTA"}
|
|
@@ -2,119 +2,70 @@
|
|
|
2
2
|
// src/toolClient/vincentToolClient.ts
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.getVincentToolClient = getVincentToolClient;
|
|
5
|
-
const tslib_1 = require("tslib");
|
|
6
|
-
const zod_1 = require("zod");
|
|
7
5
|
const ethers_1 = require("ethers");
|
|
8
|
-
const
|
|
6
|
+
const zod_1 = require("zod");
|
|
9
7
|
const constants_1 = require("@lit-protocol/constants");
|
|
10
8
|
const internal_1 = require("@lit-protocol/vincent-tool-sdk/internal");
|
|
11
9
|
const getLitNodeClient_1 = require("../internal/LitNodeClient/getLitNodeClient");
|
|
12
|
-
const
|
|
10
|
+
const generateVincentToolSessionSigs_1 = require("./execute/generateVincentToolSessionSigs");
|
|
11
|
+
const resultCreators_1 = require("./execute/resultCreators");
|
|
12
|
+
const resultCreators_2 = require("./precheck/resultCreators");
|
|
13
|
+
const runPolicyPrechecks_1 = require("./precheck/runPolicyPrechecks");
|
|
13
14
|
const typeGuards_1 = require("./typeGuards");
|
|
14
|
-
const
|
|
15
|
-
const
|
|
16
|
-
return
|
|
17
|
-
chain: 'ethereum',
|
|
18
|
-
resourceAbilityRequests: [
|
|
19
|
-
{ resource: new auth_helpers_1.LitPKPResource('*'), ability: constants_1.LIT_ABILITY.PKPSigning },
|
|
20
|
-
{ resource: new auth_helpers_1.LitActionResource('*'), ability: constants_1.LIT_ABILITY.LitActionExecution },
|
|
21
|
-
],
|
|
22
|
-
authNeededCallback: async ({ resourceAbilityRequests, uri }) => {
|
|
23
|
-
const [walletAddress, nonce] = await Promise.all([
|
|
24
|
-
ethersSigner.getAddress(),
|
|
25
|
-
litNodeClient.getLatestBlockhash(),
|
|
26
|
-
]);
|
|
27
|
-
const toSign = await (0, auth_helpers_1.createSiweMessageWithRecaps)({
|
|
28
|
-
uri: uri || 'http://localhost:3000',
|
|
29
|
-
expiration: new Date(Date.now() + 1000 * 60 * 10).toISOString(),
|
|
30
|
-
resources: resourceAbilityRequests || [],
|
|
31
|
-
walletAddress,
|
|
32
|
-
nonce,
|
|
33
|
-
litNodeClient,
|
|
34
|
-
});
|
|
35
|
-
return await (0, auth_helpers_1.generateAuthSig)({ signer: ethersSigner, toSign });
|
|
36
|
-
},
|
|
37
|
-
});
|
|
15
|
+
const YELLOWSTONE_RPC_URL = 'https://yellowstone-rpc.litprotocol.com/';
|
|
16
|
+
const bigintReplacer = (key, value) => {
|
|
17
|
+
return typeof value === 'bigint' ? value.toString() : value;
|
|
38
18
|
};
|
|
39
|
-
async function runToolPolicyPrechecks(params) {
|
|
40
|
-
var _a, _b;
|
|
41
|
-
const { bundledVincentTool: { vincentTool, ipfsCid }, toolParams, context, policies, } = params;
|
|
42
|
-
console.log('Executing runToolPolicyPrechecks()', Object.keys(params.bundledVincentTool.vincentTool.supportedPolicies.policyByPackageName));
|
|
43
|
-
const validatedPolicies = await (0, internal_1.validatePolicies)({
|
|
44
|
-
policies,
|
|
45
|
-
vincentTool,
|
|
46
|
-
toolIpfsCid: ipfsCid,
|
|
47
|
-
parsedToolParams: toolParams,
|
|
48
|
-
});
|
|
49
|
-
const decodedPoliciesByPackageName = {};
|
|
50
|
-
for (const { policyPackageName, parameters } of validatedPolicies) {
|
|
51
|
-
decodedPoliciesByPackageName[policyPackageName] = (0, internal_1.decodePolicyParams)({
|
|
52
|
-
params: parameters,
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
const evaluatedPolicies = [];
|
|
56
|
-
const allowedPolicies = {};
|
|
57
|
-
let deniedPolicy = undefined;
|
|
58
|
-
const policyByName = vincentTool.supportedPolicies.policyByPackageName;
|
|
59
|
-
for (const { policyPackageName, toolPolicyParams } of validatedPolicies) {
|
|
60
|
-
const key = policyPackageName;
|
|
61
|
-
const toolPolicy = policyByName[key];
|
|
62
|
-
evaluatedPolicies.push(key);
|
|
63
|
-
const vincentPolicy = toolPolicy.vincentPolicy;
|
|
64
|
-
if (!vincentPolicy.precheck) {
|
|
65
|
-
console.log('No precheck() defined policy', key, 'skipping...');
|
|
66
|
-
continue;
|
|
67
|
-
}
|
|
68
|
-
try {
|
|
69
|
-
console.log('Executing precheck() for policy', key);
|
|
70
|
-
const result = await vincentPolicy.precheck({
|
|
71
|
-
toolParams: toolPolicyParams,
|
|
72
|
-
userParams: decodedPoliciesByPackageName[key],
|
|
73
|
-
}, context);
|
|
74
|
-
console.log('vincentPolicy.precheck() result', util.inspect(result, { depth: 10 }));
|
|
75
|
-
const { schemaToUse } = (0, internal_1.getSchemaForPolicyResponseResult)({
|
|
76
|
-
value: result,
|
|
77
|
-
allowResultSchema: (_a = vincentPolicy.precheckAllowResultSchema) !== null && _a !== void 0 ? _a : zod_1.z.undefined(),
|
|
78
|
-
denyResultSchema: (_b = vincentPolicy.precheckDenyResultSchema) !== null && _b !== void 0 ? _b : zod_1.z.undefined(),
|
|
79
|
-
});
|
|
80
|
-
const validated = (0, internal_1.validateOrDeny)(result.result, schemaToUse, 'precheck', 'output');
|
|
81
|
-
if ((0, internal_1.isPolicyDenyResponse)(validated)) {
|
|
82
|
-
// @ts-expect-error We know the shape of this is valid.
|
|
83
|
-
deniedPolicy = { ...validated, packageName: key };
|
|
84
|
-
break;
|
|
85
|
-
}
|
|
86
|
-
else if ((0, internal_1.isPolicyAllowResponse)(validated)) {
|
|
87
|
-
allowedPolicies[key] = {
|
|
88
|
-
result: validated.result,
|
|
89
|
-
};
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
catch (err) {
|
|
93
|
-
deniedPolicy = {
|
|
94
|
-
packageName: key,
|
|
95
|
-
...(0, internal_1.createDenyResult)({
|
|
96
|
-
message: err instanceof Error ? err.message : 'Unknown error in precheck()',
|
|
97
|
-
}),
|
|
98
|
-
};
|
|
99
|
-
break;
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
if (deniedPolicy) {
|
|
103
|
-
const policiesContext = (0, resultCreators_1.createDenyEvaluationResult)(evaluatedPolicies, allowedPolicies, deniedPolicy);
|
|
104
|
-
return {
|
|
105
|
-
...context,
|
|
106
|
-
policiesContext,
|
|
107
|
-
};
|
|
108
|
-
}
|
|
109
|
-
const policiesContext = (0, resultCreators_1.createAllowEvaluationResult)(evaluatedPolicies, allowedPolicies);
|
|
110
|
-
return {
|
|
111
|
-
...context,
|
|
112
|
-
policiesContext,
|
|
113
|
-
};
|
|
114
|
-
}
|
|
115
19
|
/** A VincentToolClient provides a type-safe interface for executing tools, for both `precheck()`
|
|
116
20
|
* and `execute()` functionality.
|
|
117
21
|
*
|
|
22
|
+
* ```typescript
|
|
23
|
+
* import { disconnectVincentToolClients, getVincentToolClient, isToolResponseFailure } from '@lit-protocol/vincent-app-sdk/toolClient';
|
|
24
|
+
* import { bundledVincentTool as uniswapBundledTool } from '@lit-protocol/vincent-tool-uniswap-swap';
|
|
25
|
+
* import { delegateeEthersSigner } = from './ethersSigner';
|
|
26
|
+
* import { ETH_RPC_URL, BASE_RPC_URL } from './rpcConfigs';
|
|
27
|
+
*
|
|
28
|
+
* const uniswapToolClient = getVincentToolClient({
|
|
29
|
+
* bundledVincentTool: uniswapBundledTool,
|
|
30
|
+
* ethersSigner: delegateeEthersSigner,
|
|
31
|
+
* });
|
|
32
|
+
*
|
|
33
|
+
* // First, call `precheck()` to get a best-estimate result indicating that the tool execution in the LIT action runtime will not fail
|
|
34
|
+
* const precheckResult = await uniswapSwapToolClient.precheck({
|
|
35
|
+
* ethRpcUrl: ETH_RPC_URL,
|
|
36
|
+
* rpcUrlForUniswap: BASE_RPC_URL,
|
|
37
|
+
* chainIdForUniswap: 8453, // Base
|
|
38
|
+
* tokenInAddress: '0x4200000000000000000000000000000000000006', // WETH
|
|
39
|
+
* tokenInDecimals: 18,
|
|
40
|
+
* tokenInAmount: 0.0000077,
|
|
41
|
+
* tokenOutAddress: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913', // USDC on Base
|
|
42
|
+
* tokenOutDecimals: 8,
|
|
43
|
+
* },
|
|
44
|
+
* {
|
|
45
|
+
* delegatorPkpEthAddress: '0x123456789123456789123456789...',
|
|
46
|
+
* });
|
|
47
|
+
*
|
|
48
|
+
* const uniswapSwapExecutionResult = await uniswapSwapToolClient.execute({
|
|
49
|
+
* ethRpcUrl: ETH_RPC_URL,
|
|
50
|
+
* rpcUrlForUniswap: BASE_RPC_URL,
|
|
51
|
+
* chainIdForUniswap: 8453,
|
|
52
|
+
* tokenInAddress: '0x4200000000000000000000000000000000000006', // WETH
|
|
53
|
+
* tokenInDecimals: 18,
|
|
54
|
+
* tokenInAmount: 0.0000077,
|
|
55
|
+
* tokenOutAddress: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913', // USDC on Base
|
|
56
|
+
* tokenOutDecimals: 8,
|
|
57
|
+
* },
|
|
58
|
+
* {
|
|
59
|
+
* delegatorPkpEthAddress: '0x123456789123456789123456789...',
|
|
60
|
+
* });
|
|
61
|
+
*
|
|
62
|
+
* if(isToolResponseFailure(uniswapSwapExecutionResult)) {
|
|
63
|
+
* ...handle failure
|
|
64
|
+
* } else {
|
|
65
|
+
* ...handle result
|
|
66
|
+
* }
|
|
67
|
+
* ```
|
|
68
|
+
*
|
|
118
69
|
* @typeParam IpfsCid {@removeTypeParameterCompletely}
|
|
119
70
|
* @typeParam ToolParamsSchema {@removeTypeParameterCompletely}
|
|
120
71
|
* @typeParam PkgNames {@removeTypeParameterCompletely}
|
|
@@ -126,17 +77,20 @@ async function runToolPolicyPrechecks(params) {
|
|
|
126
77
|
* @typeParam PrecheckFailSchema {@removeTypeParameterCompletely}
|
|
127
78
|
*
|
|
128
79
|
* @param params
|
|
129
|
-
* @param
|
|
80
|
+
* @param params.ethersSigner - An ethers signer that has been configured with your delegatee key
|
|
81
|
+
* @param params.bundledVincentTool - The bundled vincent tool that you want to interact with
|
|
130
82
|
*
|
|
131
|
-
* @category API
|
|
83
|
+
* @category API
|
|
132
84
|
* */
|
|
133
85
|
function getVincentToolClient(params) {
|
|
134
|
-
var _a, _b;
|
|
135
86
|
const { bundledVincentTool, ethersSigner } = params;
|
|
136
|
-
const { ipfsCid, vincentTool } = bundledVincentTool;
|
|
87
|
+
const { ipfsCid, vincentTool, vincentToolApiVersion } = bundledVincentTool;
|
|
88
|
+
(0, internal_1.assertSupportedToolVersion)(vincentToolApiVersion);
|
|
137
89
|
const network = constants_1.LIT_NETWORK.Datil;
|
|
138
|
-
const executeSuccessSchema = (
|
|
139
|
-
|
|
90
|
+
const executeSuccessSchema = (vincentTool.__schemaTypes.executeSuccessSchema ??
|
|
91
|
+
zod_1.z.undefined());
|
|
92
|
+
const executeFailSchema = (vincentTool.__schemaTypes.executeFailSchema ??
|
|
93
|
+
zod_1.z.undefined());
|
|
140
94
|
return {
|
|
141
95
|
async precheck(rawToolParams, { rpcUrl, delegatorPkpEthAddress, }) {
|
|
142
96
|
console.log('precheck', { rawToolParams, delegatorPkpEthAddress, rpcUrl });
|
|
@@ -151,52 +105,66 @@ function getVincentToolClient(params) {
|
|
|
151
105
|
// appId: undefined,
|
|
152
106
|
// appVersion: undefined,
|
|
153
107
|
};
|
|
154
|
-
const parsedParams = (0, internal_1.validateOrFail)(rawToolParams, vincentTool.toolParamsSchema, '
|
|
108
|
+
const parsedParams = (0, internal_1.validateOrFail)(rawToolParams, vincentTool.toolParamsSchema, 'precheck', 'input');
|
|
155
109
|
if ((0, typeGuards_1.isToolResponseFailure)(parsedParams)) {
|
|
156
|
-
return (0,
|
|
110
|
+
return (0, resultCreators_2.createToolPrecheckResponseFailureNoResult)({
|
|
157
111
|
...parsedParams,
|
|
158
112
|
context: baseContext,
|
|
159
113
|
});
|
|
160
114
|
}
|
|
161
115
|
const userPkpInfo = await (0, internal_1.getPkpInfo)({
|
|
162
116
|
litPubkeyRouterAddress: internal_1.LIT_DATIL_PUBKEY_ROUTER_ADDRESS,
|
|
163
|
-
yellowstoneRpcUrl: rpcUrl
|
|
117
|
+
yellowstoneRpcUrl: rpcUrl ?? YELLOWSTONE_RPC_URL,
|
|
164
118
|
pkpEthAddress: delegatorPkpEthAddress,
|
|
165
119
|
});
|
|
166
120
|
baseContext.delegation.delegatorPkpInfo = userPkpInfo;
|
|
167
121
|
console.log('userPkpInfo', userPkpInfo);
|
|
168
|
-
const {
|
|
169
|
-
delegationRpcUrl: rpcUrl
|
|
170
|
-
vincentContractAddress: internal_1.LIT_DATIL_VINCENT_ADDRESS,
|
|
122
|
+
const { decodedPolicies, appId, appVersion } = await (0, internal_1.getPoliciesAndAppVersion)({
|
|
123
|
+
delegationRpcUrl: rpcUrl ?? YELLOWSTONE_RPC_URL,
|
|
171
124
|
appDelegateeAddress: delegateePkpEthAddress,
|
|
172
|
-
|
|
125
|
+
agentWalletPkpEthAddress: delegatorPkpEthAddress,
|
|
173
126
|
toolIpfsCid: ipfsCid,
|
|
174
127
|
});
|
|
175
128
|
baseContext.appId = appId.toNumber();
|
|
176
129
|
baseContext.appVersion = appVersion.toNumber();
|
|
177
|
-
console.log('Fetched policies and app info', {
|
|
178
|
-
const baseToolContext = await runToolPolicyPrechecks({
|
|
130
|
+
console.log('Fetched policies and app info', { decodedPolicies, appId, appVersion });
|
|
131
|
+
const baseToolContext = await (0, runPolicyPrechecks_1.runToolPolicyPrechecks)({
|
|
179
132
|
bundledVincentTool,
|
|
180
133
|
toolParams: parsedParams,
|
|
181
|
-
|
|
134
|
+
decodedPolicies,
|
|
182
135
|
context: {
|
|
183
136
|
...baseContext,
|
|
184
137
|
rpcUrl,
|
|
185
138
|
},
|
|
186
139
|
});
|
|
187
140
|
if (!vincentTool.precheck) {
|
|
188
|
-
console.log('No tool precheck defined - returning baseContext
|
|
141
|
+
console.log('No tool precheck defined - returning baseContext policy evaluation results', {
|
|
189
142
|
rawToolParams,
|
|
190
143
|
delegatorPkpEthAddress,
|
|
191
144
|
rpcUrl,
|
|
192
145
|
});
|
|
193
|
-
|
|
146
|
+
if (!baseToolContext.policiesContext.allow) {
|
|
147
|
+
return (0, resultCreators_2.createToolPrecheckResponseFailureNoResult)({
|
|
148
|
+
context: baseToolContext,
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
return (0, resultCreators_2.createToolPrecheckResponseSuccessNoResult)({
|
|
194
152
|
context: baseToolContext,
|
|
195
153
|
});
|
|
196
154
|
}
|
|
197
155
|
console.log('Executing tool precheck');
|
|
198
156
|
const precheckResult = await vincentTool.precheck({ toolParams: parsedParams }, baseToolContext);
|
|
199
|
-
|
|
157
|
+
if ((0, typeGuards_1.isToolResponseSchemaValidationFailure)(precheckResult) ||
|
|
158
|
+
(0, typeGuards_1.isToolResponseRuntimeFailure)(precheckResult)) {
|
|
159
|
+
console.log('Detected runtime or schema validation error in toolPrecheckResult - returning as-is:', JSON.stringify({
|
|
160
|
+
isToolResponseRuntimeFailure: (0, typeGuards_1.isToolResponseRuntimeFailure)(precheckResult),
|
|
161
|
+
isToolResponseSchemaValidationFailure: (0, typeGuards_1.isToolResponseSchemaValidationFailure)(precheckResult),
|
|
162
|
+
precheckResult,
|
|
163
|
+
}, bigintReplacer));
|
|
164
|
+
// Runtime errors and schema validation errors will not have results; return them as-is.
|
|
165
|
+
return precheckResult;
|
|
166
|
+
}
|
|
167
|
+
console.log('precheckResult()', JSON.stringify(precheckResult, bigintReplacer));
|
|
200
168
|
return {
|
|
201
169
|
...precheckResult,
|
|
202
170
|
context: baseToolContext,
|
|
@@ -211,60 +179,86 @@ function getVincentToolClient(params) {
|
|
|
211
179
|
};
|
|
212
180
|
}
|
|
213
181
|
const litNodeClient = await (0, getLitNodeClient_1.getLitNodeClientInstance)({ network });
|
|
214
|
-
const sessionSigs = await
|
|
182
|
+
const sessionSigs = await (0, generateVincentToolSessionSigs_1.generateVincentToolSessionSigs)({ ethersSigner, litNodeClient });
|
|
215
183
|
const result = await litNodeClient.executeJs({
|
|
216
184
|
ipfsId: ipfsCid,
|
|
217
185
|
sessionSigs,
|
|
218
186
|
jsParams: {
|
|
219
187
|
toolParams: parsedParams,
|
|
220
188
|
context,
|
|
189
|
+
vincentToolApiVersion,
|
|
221
190
|
},
|
|
222
191
|
});
|
|
223
192
|
const { success, response } = result;
|
|
193
|
+
console.log('executeResult - raw result from `litNodeClient.executeJs()', {
|
|
194
|
+
response,
|
|
195
|
+
success,
|
|
196
|
+
});
|
|
224
197
|
if (success !== true) {
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
message: `Remote tool failed with unknown error: ${JSON.stringify(response)}`,
|
|
198
|
+
return (0, resultCreators_1.createToolExecuteResponseFailureNoResult)({
|
|
199
|
+
runtimeError: `Remote tool failed with unknown error: ${JSON.stringify(response, bigintReplacer, 2)}`,
|
|
228
200
|
});
|
|
229
201
|
}
|
|
230
202
|
let parsedResult = response;
|
|
231
203
|
if (typeof response === 'string') {
|
|
232
204
|
// lit-node-client returns a string if no signed data, even if the result could be JSON.parse'd :(
|
|
233
|
-
console.log('executeResult 2', { response, success });
|
|
234
205
|
try {
|
|
235
206
|
parsedResult = JSON.parse(response);
|
|
236
207
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
237
208
|
}
|
|
238
209
|
catch (e) {
|
|
239
|
-
return (0, resultCreators_1.
|
|
240
|
-
|
|
210
|
+
return (0, resultCreators_1.createToolExecuteResponseFailureNoResult)({
|
|
211
|
+
runtimeError: `Remote tool failed with unknown error: ${JSON.stringify(response, bigintReplacer)}`,
|
|
241
212
|
});
|
|
242
213
|
}
|
|
243
214
|
}
|
|
244
215
|
if (!(0, typeGuards_1.isRemoteVincentToolExecutionResult)(parsedResult)) {
|
|
245
|
-
console.log('
|
|
246
|
-
return (0, resultCreators_1.
|
|
247
|
-
|
|
216
|
+
console.log('Result from `executeJs` was valid JSON, but not a vincentToolExecutionResult', { parsedResult, success });
|
|
217
|
+
return (0, resultCreators_1.createToolExecuteResponseFailureNoResult)({
|
|
218
|
+
runtimeError: `Remote tool failed with unknown error: ${JSON.stringify(parsedResult, bigintReplacer)}`,
|
|
248
219
|
});
|
|
249
220
|
}
|
|
250
221
|
const resp = parsedResult;
|
|
222
|
+
console.log('Parsed executeJs vincentToolExecutionResult:', JSON.stringify(parsedResult, bigintReplacer));
|
|
251
223
|
const executionResult = resp.toolExecutionResult;
|
|
252
|
-
|
|
224
|
+
if ((0, typeGuards_1.isToolResponseSchemaValidationFailure)(executionResult) ||
|
|
225
|
+
(0, typeGuards_1.isToolResponseRuntimeFailure)(executionResult)) {
|
|
226
|
+
console.log('Detected runtime or schema validation error in toolExecutionResult - returning as-is:', JSON.stringify({
|
|
227
|
+
isToolResponseRuntimeFailure: (0, typeGuards_1.isToolResponseRuntimeFailure)(executionResult),
|
|
228
|
+
isToolResponseSchemaValidationFailure: (0, typeGuards_1.isToolResponseSchemaValidationFailure)(executionResult),
|
|
229
|
+
executionResult,
|
|
230
|
+
}, bigintReplacer));
|
|
231
|
+
// Runtime errors and schema validation errors will not have results; return them as-is.
|
|
232
|
+
return executionResult;
|
|
233
|
+
}
|
|
234
|
+
const resultSchemaDetails = (0, internal_1.getSchemaForToolResult)({
|
|
253
235
|
value: executionResult,
|
|
254
236
|
successResultSchema: executeSuccessSchema,
|
|
255
237
|
failureResultSchema: executeFailSchema,
|
|
256
238
|
});
|
|
239
|
+
const { schemaToUse, parsedType } = resultSchemaDetails;
|
|
240
|
+
console.log(`Parsing tool result using the ${parsedType} Zod schema`);
|
|
257
241
|
// Parse returned result using appropriate execute zod schema
|
|
258
242
|
const executeResult = (0, internal_1.validateOrFail)(executionResult.result, schemaToUse, 'execute', 'output');
|
|
243
|
+
console.log('Zod parse result:', executeResult);
|
|
259
244
|
if ((0, typeGuards_1.isToolResponseFailure)(executeResult)) {
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
245
|
+
// Parsing the result threw a zodError
|
|
246
|
+
return executeResult;
|
|
247
|
+
}
|
|
248
|
+
console.log('Raw toolExecutionResult was:', executionResult);
|
|
249
|
+
// We parsed the result -- it may be a success or a failure; return appropriately.
|
|
250
|
+
if ((0, typeGuards_1.isToolResponseFailure)(executionResult)) {
|
|
251
|
+
return (0, resultCreators_1.createToolExecuteResponseFailure)({
|
|
252
|
+
...(executionResult.runtimeError ? { runtimeError: executionResult.runtimeError } : {}),
|
|
253
|
+
...(executionResult.schemaValidationError
|
|
254
|
+
? { schemaValidationError: executionResult.schemaValidationError }
|
|
255
|
+
: {}),
|
|
256
|
+
result: executeResult,
|
|
263
257
|
context: resp.toolContext,
|
|
264
258
|
});
|
|
265
259
|
}
|
|
266
260
|
const res = executeResult;
|
|
267
|
-
return (0, resultCreators_1.
|
|
261
|
+
return (0, resultCreators_1.createToolExecuteResponseSuccess)({
|
|
268
262
|
result: res,
|
|
269
263
|
context: resp.toolContext,
|
|
270
264
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vincentToolClient.js","sourceRoot":"","sources":["../../../src/toolClient/vincentToolClient.ts"],"names":[],"mappings":";AAAA,sCAAsC;;
|
|
1
|
+
{"version":3,"file":"vincentToolClient.js","sourceRoot":"","sources":["../../../src/toolClient/vincentToolClient.ts"],"names":[],"mappings":";AAAA,sCAAsC;;AAiHtC,oDAqVC;AApcD,mCAAgC;AAChC,6BAAwB;AAKxB,uDAAsD;AACtD,sEAOiD;AAMjD,iFAAsF;AACtF,6FAA0F;AAC1F,6DAIkC;AAClC,8DAGmC;AACnC,sEAAuE;AACvE,6CAKsB;AAEtB,MAAM,mBAAmB,GAAG,0CAA0C,CAAC;AAEvE,MAAM,cAAc,GAAG,CAAC,GAAQ,EAAE,KAAU,EAAE,EAAE;IAC9C,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;AAC9D,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAiEK;AACL,SAAgB,oBAAoB,CAUlC,MAiBD;IAQC,MAAM,EAAE,kBAAkB,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;IACpD,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,GAAG,kBAAkB,CAAC;IAE3E,IAAA,qCAA0B,EAAC,qBAAqB,CAAC,CAAC;IAElD,MAAM,OAAO,GAAG,uBAAW,CAAC,KAAK,CAAC;IAElC,MAAM,oBAAoB,GAAG,CAAC,WAAW,CAAC,aAAa,CAAC,oBAAoB;QAC1E,OAAC,CAAC,SAAS,EAAE,CAAyB,CAAC;IACzC,MAAM,iBAAiB,GAAG,CAAC,WAAW,CAAC,aAAa,CAAC,iBAAiB;QACpE,OAAC,CAAC,SAAS,EAAE,CAAsB,CAAC;IAEtC,OAAO;QACL,KAAK,CAAC,QAAQ,CACZ,aAAwC,EACxC,EACE,MAAM,EACN,sBAAsB,GAGvB;YAID,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,EAAE,CAAC,CAAC;YAC3E,MAAM,sBAAsB,GAAG,eAAM,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC;YAExF,qIAAqI;YACrI,MAAM,WAAW,GAAG;gBAClB,UAAU,EAAE;oBACV,gBAAgB,EAAE,sBAAsB;oBACxC,0BAA0B;iBAC3B;gBACD,WAAW,EAAE,OAAO;gBACpB,oBAAoB;gBACpB,yBAAyB;aACnB,CAAC;YAET,MAAM,YAAY,GAAG,IAAA,yBAAc,EACjC,aAAa,EACb,WAAW,CAAC,gBAAgB,EAC5B,UAAU,EACV,OAAO,CACR,CAAC;YAEF,IAAI,IAAA,kCAAqB,EAAC,YAAY,CAAC,EAAE,CAAC;gBACxC,OAAO,IAAA,0DAAyC,EAAC;oBAC/C,GAAG,YAAY;oBACf,OAAO,EAAE,WAAW;iBACrB,CAIA,CAAC;YACJ,CAAC;YAED,MAAM,WAAW,GAAG,MAAM,IAAA,qBAAU,EAAC;gBACnC,sBAAsB,EAAE,0CAA+B;gBACvD,iBAAiB,EAAE,MAAM,IAAI,mBAAmB;gBAChD,aAAa,EAAE,sBAAsB;aACtC,CAAC,CAAC;YACH,WAAW,CAAC,UAAU,CAAC,gBAAgB,GAAG,WAAW,CAAC;YAEtD,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;YAExC,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,MAAM,IAAA,mCAAwB,EAAC;gBAC5E,gBAAgB,EAAE,MAAM,IAAI,mBAAmB;gBAC/C,mBAAmB,EAAE,sBAAsB;gBAC3C,wBAAwB,EAAE,sBAAsB;gBAChD,WAAW,EAAE,OAAO;aACrB,CAAC,CAAC;YACH,WAAW,CAAC,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;YACrC,WAAW,CAAC,UAAU,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC;YAE/C,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;YAErF,MAAM,eAAe,GAAG,MAAM,IAAA,2CAAsB,EAAC;gBACnD,kBAAkB;gBAClB,UAAU,EAAE,YAAyC;gBACrD,eAAe;gBACf,OAAO,EAAE;oBACP,GAAG,WAAW;oBACd,MAAM;iBACP;aACF,CAAC,CAAC;YAEH,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;gBAC1B,OAAO,CAAC,GAAG,CAAC,4EAA4E,EAAE;oBACxF,aAAa;oBACb,sBAAsB;oBACtB,MAAM;iBACP,CAAC,CAAC;gBACH,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;oBAC3C,OAAO,IAAA,0DAAyC,EAAC;wBAC/C,OAAO,EAAE,eAAe;qBACzB,CAIA,CAAC;gBACJ,CAAC;gBAED,OAAO,IAAA,0DAAyC,EAAC;oBAC/C,OAAO,EAAE,eAAe;iBACzB,CAIA,CAAC;YACJ,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;YAEvC,MAAM,cAAc,GAAG,MAAM,WAAW,CAAC,QAAQ,CAC/C,EAAE,UAAU,EAAE,YAAY,EAAE,EAC5B,eAAe,CAChB,CAAC;YAEF,IACE,IAAA,kDAAqC,EAAC,cAAc,CAAC;gBACrD,IAAA,yCAA4B,EAAC,cAAc,CAAC,EAC5C,CAAC;gBACD,OAAO,CAAC,GAAG,CACT,sFAAsF,EACtF,IAAI,CAAC,SAAS,CACZ;oBACE,4BAA4B,EAAE,IAAA,yCAA4B,EAAC,cAAc,CAAC;oBAC1E,qCAAqC,EACnC,IAAA,kDAAqC,EAAC,cAAc,CAAC;oBACvD,cAAc;iBACf,EACD,cAAc,CACf,CACF,CAAC;gBACF,wFAAwF;gBACxF,OAAO,cAIN,CAAC;YACJ,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC;YAChF,OAAO;gBACL,GAAG,cAAc;gBACjB,OAAO,EAAE,eAAe;aACiE,CAAC;QAC9F,CAAC;QAED,KAAK,CAAC,OAAO,CACX,aAAwC,EACxC,OAA0B;YAI1B,MAAM,YAAY,GAAG,IAAA,yBAAc,EACjC,aAAa,EACb,WAAW,CAAC,gBAAgB,EAC5B,SAAS,EACT,OAAO,CACR,CAAC;YAEF,IAAI,IAAA,kCAAqB,EAAC,YAAY,CAAC,EAAE,CAAC;gBACxC,OAAO;oBACL,GAAG,YAAY;oBACf,OAAO;iBAC+E,CAAC;YAC3F,CAAC;YAED,MAAM,aAAa,GAAG,MAAM,IAAA,2CAAwB,EAAC,EAAE,OAAO,EAAE,CAAC,CAAC;YAClE,MAAM,WAAW,GAAG,MAAM,IAAA,+DAA8B,EAAC,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC,CAAC;YAE1F,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC;gBAC3C,MAAM,EAAE,OAAO;gBACf,WAAW;gBACX,QAAQ,EAAE;oBACR,UAAU,EAAE,YAAY;oBACxB,OAAO;oBACP,qBAAqB;iBACtB;aACF,CAAC,CAAC;YAEH,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,4DAA4D,EAAE;gBACxE,QAAQ;gBACR,OAAO;aACR,CAAC,CAAC;YAEH,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACrB,OAAO,IAAA,yDAAwC,EAAC;oBAC9C,YAAY,EAAE,0CAA0C,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC,EAAE;iBACtG,CAAwF,CAAC;YAC5F,CAAC;YAED,IAAI,YAAY,GAAG,QAAQ,CAAC;YAE5B,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBACjC,kGAAkG;gBAClG,IAAI,CAAC;oBACH,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;oBACpC,6DAA6D;gBAC/D,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,OAAO,IAAA,yDAAwC,EAAC;wBAC9C,YAAY,EAAE,0CAA0C,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,cAAc,CAAC,EAAE;qBACnG,CAAwF,CAAC;gBAC5F,CAAC;YACH,CAAC;YAED,IAAI,CAAC,IAAA,+CAAkC,EAAC,YAAY,CAAC,EAAE,CAAC;gBACtD,OAAO,CAAC,GAAG,CACT,8EAA8E,EAC9E,EAAE,YAAY,EAAE,OAAO,EAAE,CAC1B,CAAC;gBAEF,OAAO,IAAA,yDAAwC,EAAC;oBAC9C,YAAY,EAAE,0CAA0C,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,cAAc,CAAC,EAAE;iBACvG,CAAwF,CAAC;YAC5F,CAAC;YAED,MAAM,IAAI,GAIN,YAAY,CAAC;YAEjB,OAAO,CAAC,GAAG,CACT,8CAA8C,EAC9C,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,cAAc,CAAC,CAC7C,CAAC;YACF,MAAM,eAAe,GAAG,IAAI,CAAC,mBAAmB,CAAC;YAEjD,IACE,IAAA,kDAAqC,EAAC,eAAe,CAAC;gBACtD,IAAA,yCAA4B,EAAC,eAAe,CAAC,EAC7C,CAAC;gBACD,OAAO,CAAC,GAAG,CACT,uFAAuF,EACvF,IAAI,CAAC,SAAS,CACZ;oBACE,4BAA4B,EAAE,IAAA,yCAA4B,EAAC,eAAe,CAAC;oBAC3E,qCAAqC,EACnC,IAAA,kDAAqC,EAAC,eAAe,CAAC;oBACxD,eAAe;iBAChB,EACD,cAAc,CACf,CACF,CAAC;gBACF,wFAAwF;gBACxF,OAAO,eAIN,CAAC;YACJ,CAAC;YAED,MAAM,mBAAmB,GAAG,IAAA,iCAAsB,EAAC;gBACjD,KAAK,EAAE,eAAe;gBACtB,mBAAmB,EAAE,oBAAoB;gBACzC,mBAAmB,EAAE,iBAAiB;aACvC,CAAC,CAAC;YAEH,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,mBAAmB,CAAC;YAExD,OAAO,CAAC,GAAG,CAAC,iCAAiC,UAAU,aAAa,CAAC,CAAC;YAEtE,6DAA6D;YAC7D,MAAM,aAAa,GAAG,IAAA,yBAAc,EAClC,eAAe,CAAC,MAAM,EACtB,WAAW,EACX,SAAS,EACT,QAAQ,CACT,CAAC;YAEF,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,aAAa,CAAC,CAAC;YAEhD,IAAI,IAAA,kCAAqB,EAAC,aAAa,CAAC,EAAE,CAAC;gBACzC,sCAAsC;gBACtC,OAAO,aAIN,CAAC;YACJ,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,eAAe,CAAC,CAAC;YAE7D,kFAAkF;YAClF,IAAI,IAAA,kCAAqB,EAAC,eAAe,CAAC,EAAE,CAAC;gBAC3C,OAAO,IAAA,iDAAgC,EAAC;oBACtC,GAAG,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,eAAe,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACvF,GAAG,CAAC,eAAe,CAAC,qBAAqB;wBACvC,CAAC,CAAC,EAAE,qBAAqB,EAAE,eAAe,CAAC,qBAAqB,EAAE;wBAClE,CAAC,CAAC,EAAE,CAAC;oBACP,MAAM,EAAE,aAAa;oBACrB,OAAO,EAAE,IAAI,CAAC,WAAW;iBAC1B,CAAwF,CAAC;YAC5F,CAAC;YAED,MAAM,GAAG,GAA6C,aAAa,CAAC;YAEpE,OAAO,IAAA,iDAAgC,EAAC;gBACtC,MAAM,EAAE,GAAG;gBACX,OAAO,EAAE,IAAI,CAAC,WAAW;aAC1B,CAAwF,CAAC;QAC5F,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-client-inference.d.ts","sourceRoot":"","sources":["../../../src/type-inference-verification/tool-client-inference.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tool-client-inference.d.ts","sourceRoot":"","sources":["../../../src/type-inference-verification/tool-client-inference.ts"],"names":[],"mappings":"AAqEA,wBAAsB,GAAG,kBA6FxB;AAwDD,wBAAsB,IAAI,kBAiCzB"}
|