@executor-js/sdk 1.5.2 → 1.5.4
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/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/promise.d.ts +1 -1
- package/dist/promise.d.ts.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -27,6 +27,7 @@ import "./chunk-EIHWBY6T.js";
|
|
|
27
27
|
import {
|
|
28
28
|
AuthTemplateSlug,
|
|
29
29
|
ConnectionName,
|
|
30
|
+
ElicitationId,
|
|
30
31
|
IntegrationSlug,
|
|
31
32
|
Owner,
|
|
32
33
|
PolicyId,
|
|
@@ -112,6 +113,7 @@ export {
|
|
|
112
113
|
CredentialProviderNotRegisteredError,
|
|
113
114
|
CredentialResolutionError,
|
|
114
115
|
ElicitationAction,
|
|
116
|
+
ElicitationId,
|
|
115
117
|
ElicitationResponse,
|
|
116
118
|
FormElicitation,
|
|
117
119
|
IntegrationDetectionResult,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/promise-executor.ts"],"sourcesContent":["// ---------------------------------------------------------------------------\n// @executor-js/sdk/promise — thin Promise façade over the Effect SDK.\n//\n// Consumer goal: use executors + plugins without touching Effect. The\n// façade wraps `createExecutor` so it returns a Promise, and proxies\n// every method on the returned executor to unwrap its Effect into a\n// Promise. Plugin factories are Effect-native but consumers never see\n// that — the proxy flattens plugin extension methods too.\n//\n// Not a goal: authoring plugins in Promise style. The plugin model\n// (storage, schema, staticSources, Effect ctx) is Effect-only. Bring\n// your own `@executor-js/plugin-*` from the Effect side.\n// ---------------------------------------------------------------------------\n\nimport { Brand, Effect } from \"effect\";\n\nimport {\n collectTables,\n createExecutor as createEffectExecutor,\n type Executor as EffectExecutor,\n type InvokeOptions as EffectInvokeOptions,\n type OnElicitation,\n} from \"./executor\";\nimport type { ElicitationContext, ElicitationResponse } from \"./elicitation\";\nimport type { FumaDb, FumaTables } from \"./fuma-runtime\";\nimport { Subject, Tenant } from \"./ids\";\nimport type { AnyPlugin } from \"./plugin\";\nimport type { CredentialProvider } from \"./provider\";\n\n// ---------------------------------------------------------------------------\n// Types\n//\n// Promise consumers shouldn't need to construct Effect `Brand`s to call into\n// the executor — branded ids (`SecretId`, `ScopeId`, `ToolId`, `PolicyId`,\n// `ConnectionId`) are typed as `string & Brand<...>` on the Effect side, but\n// at runtime they're plain strings. `Unbrand` strips brand tags from\n// parameter types (recursively, so it walks into object fields like\n// `secrets.set({ id, scope })`) so consumers can pass plain strings. Return\n// types are passed through unchanged — caller code that reads `.id` etc.\n// off a returned ref still gets the branded type for use as an opaque token.\n// ---------------------------------------------------------------------------\n\ntype Unbrand<T> =\n T extends Brand.Brand<string>\n ? string\n : T extends readonly (infer U)[]\n ? readonly Unbrand<U>[]\n : T extends ReadonlyMap<infer K, infer V>\n ? ReadonlyMap<Unbrand<K>, Unbrand<V>>\n : T extends ReadonlySet<infer U>\n ? ReadonlySet<Unbrand<U>>\n : T extends Date\n ? T\n : T extends (...args: infer A) => infer R\n ? (...args: { [I in keyof A]: Unbrand<A[I]> }) => Unbrand<R>\n : T extends object\n ? { readonly [K in keyof T]: Unbrand<T[K]> }\n : T;\n\nexport type PromiseOnElicitation =\n | \"accept-all\"\n | ((ctx: Unbrand<ElicitationContext>) => ElicitationResponse | Promise<ElicitationResponse>);\n\nexport interface PromiseInvokeOptions {\n readonly onElicitation?: PromiseOnElicitation;\n}\n\ntype PromisifiedArg<T> = T extends EffectInvokeOptions | undefined\n ? PromiseInvokeOptions | undefined\n : Unbrand<T>;\n\ntype PromisifiedArgs<TArgs extends readonly unknown[]> = {\n [I in keyof TArgs]: PromisifiedArg<TArgs[I]>;\n};\n\nexport type Promisified<T> = T extends (...args: infer A) => Effect.Effect<infer R, infer _E>\n ? (...args: PromisifiedArgs<A>) => Promise<R>\n : T extends readonly unknown[]\n ? T\n : T extends object\n ? { readonly [K in keyof T]: Promisified<T[K]> }\n : T;\n\nexport type Executor<TPlugins extends readonly AnyPlugin[] = readonly []> = Promisified<\n EffectExecutor<TPlugins>\n>;\n\nexport interface ExecutorConfig<TPlugins extends readonly AnyPlugin[] = readonly []> {\n /** The org / workspace this executor binds to. Optional — defaults to\n * `\"default-tenant\"`. `owner: \"org\"` rows file here. */\n readonly tenant?: string;\n /** The acting member. Omit for a pure-org executor (no `owner:\"user\"`). */\n readonly subject?: string;\n readonly plugins?: TPlugins;\n /**\n * Config-level credential providers, merged with every\n * `plugin.credentialProviders`. Config providers register first, so the\n * default (first writable) store is selected from them when present. A\n * writable provider is required before `connections.create({ value })` can\n * store an inline credential. Providers are Effect-native objects (their\n * `get`/`set` return `Effect`s) — bring them from `@executor-js/sdk/core`.\n */\n readonly providers?: readonly CredentialProvider[];\n /**\n * FumaDB ORM handle, or a factory that receives the executor-owned table\n * map. Public consumers usually want the factory form so `collectTables()`\n * stays inside `createExecutor`.\n */\n readonly db?:\n | FumaDb\n | { readonly db: FumaDb; readonly close?: () => Promise<void> | void }\n | ((config: { readonly tables: FumaTables }) =>\n | FumaDb\n | { readonly db: FumaDb; readonly close?: () => Promise<void> | void }\n | Promise<\n | FumaDb\n | {\n readonly db: FumaDb;\n readonly close?: () => Promise<void> | void;\n }\n >);\n /**\n * How to respond when a tool requests user input mid-invocation. Pass\n * `\"accept-all\"` for tests / non-interactive hosts, or a handler\n * `(ctx) => Promise<ElicitationResponse>` for interactive ones.\n * Required at construction so per-invoke calls don't have to thread\n * an options arg.\n */\n readonly onElicitation: PromiseOnElicitation;\n}\n\n// ---------------------------------------------------------------------------\n// Promisify proxy — walks nested objects, converts Effect-returning methods\n// into Promise-returning methods. Non-Effect return values pass through.\n// ---------------------------------------------------------------------------\n\nconst isPlainObject = (v: unknown): v is Record<string | symbol, unknown> =>\n v !== null &&\n typeof v === \"object\" &&\n !Array.isArray(v) &&\n !(v instanceof Date) &&\n !(v instanceof Promise);\n\nconst isPromiseOnElicitation = (value: unknown): value is PromiseOnElicitation =>\n value === \"accept-all\" || typeof value === \"function\";\n\nconst toEffectOnElicitation = (handler: PromiseOnElicitation): OnElicitation =>\n handler === \"accept-all\"\n ? \"accept-all\"\n : (ctx) => Effect.promise(() => Promise.resolve(handler(ctx)));\n\nconst adaptPromiseInvokeOptions = (value: unknown): unknown => {\n if (!isPlainObject(value) || !Object.hasOwn(value, \"onElicitation\")) return value;\n const onElicitation = value.onElicitation;\n if (onElicitation === undefined || !isPromiseOnElicitation(onElicitation)) return value;\n return {\n ...value,\n onElicitation: toEffectOnElicitation(onElicitation),\n };\n};\n\nconst adaptPromiseArgs = (args: readonly unknown[]): unknown[] =>\n args.map((arg) => adaptPromiseInvokeOptions(arg));\n\nconst promisifyDeep = <T>(value: T): Promisified<T> => {\n if (typeof value === \"function\") {\n return ((...args: unknown[]) => {\n const result = (value as (...a: unknown[]) => unknown).apply(\n undefined,\n adaptPromiseArgs(args),\n );\n if (Effect.isEffect(result)) {\n return Effect.runPromise(result as Effect.Effect<unknown, unknown>);\n }\n return result;\n }) as Promisified<T>;\n }\n\n if (!isPlainObject(value)) return value as Promisified<T>;\n\n return new Proxy(value, {\n get(target, prop, receiver) {\n const v = Reflect.get(target, prop, receiver);\n if (typeof v === \"function\") {\n return (...args: unknown[]) => {\n const result = (v as (...a: unknown[]) => unknown).apply(target, adaptPromiseArgs(args));\n if (Effect.isEffect(result)) {\n return Effect.runPromise(result as Effect.Effect<unknown, unknown>);\n }\n return result;\n };\n }\n if (isPlainObject(v)) return promisifyDeep(v);\n return v;\n },\n }) as Promisified<T>;\n};\n\n// ---------------------------------------------------------------------------\n// createExecutor — Promise wrapper over the Effect createExecutor.\n// ---------------------------------------------------------------------------\n\nexport const createExecutor = async <const TPlugins extends readonly AnyPlugin[] = readonly []>(\n config: ExecutorConfig<TPlugins>,\n): Promise<Executor<TPlugins>> => {\n const plugins = (config?.plugins ?? []) as TPlugins;\n const db =\n typeof config.db === \"function\" ? await config.db({ tables: collectTables() }) : config.db;\n\n const effectConfig = {\n tenant: Tenant.make(config.tenant ?? \"default-tenant\"),\n ...(config.subject !== undefined ? { subject: Subject.make(config.subject) } : {}),\n plugins,\n ...(config.providers ? { providers: config.providers } : {}),\n onElicitation: toEffectOnElicitation(config.onElicitation),\n ...(db ? { db } : {}),\n };\n\n // The SDK has no observability requirement; storage failures surface\n // as raw `StorageError` / `UniqueViolationError` in the typed channel.\n // `Effect.runPromise` turns them into Promise rejections — consumers\n // get the tagged error as the rejected value. See\n // notes/promise-sdk-typed-errors.md for the planned `runPromiseExit`\n // rewrite that exposes the full error union to consumers.\n const effectExecutor = await Effect.runPromise(createEffectExecutor(effectConfig));\n\n const executor = promisifyDeep(effectExecutor) as Executor<TPlugins>;\n return {\n ...executor,\n close: async () => {\n await Effect.runPromise(effectExecutor.close());\n },\n } as Executor<TPlugins>;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA,SAAgB,cAAc;AA0H9B,IAAM,gBAAgB,CAAC,MACrB,MAAM,QACN,OAAO,MAAM,YACb,CAAC,MAAM,QAAQ,CAAC,KAChB,EAAE,aAAa,SACf,EAAE,aAAa;AAEjB,IAAM,yBAAyB,CAAC,UAC9B,UAAU,gBAAgB,OAAO,UAAU;AAE7C,IAAM,wBAAwB,CAAC,YAC7B,YAAY,eACR,eACA,CAAC,QAAQ,OAAO,QAAQ,MAAM,QAAQ,QAAQ,QAAQ,GAAG,CAAC,CAAC;AAEjE,IAAM,4BAA4B,CAAC,UAA4B;AAC7D,MAAI,CAAC,cAAc,KAAK,KAAK,CAAC,OAAO,OAAO,OAAO,eAAe,EAAG,QAAO;AAC5E,QAAM,gBAAgB,MAAM;AAC5B,MAAI,kBAAkB,UAAa,CAAC,uBAAuB,aAAa,EAAG,QAAO;AAClF,SAAO;AAAA,IACL,GAAG;AAAA,IACH,eAAe,sBAAsB,aAAa;AAAA,EACpD;AACF;AAEA,IAAM,mBAAmB,CAAC,SACxB,KAAK,IAAI,CAAC,QAAQ,0BAA0B,GAAG,CAAC;AAElD,IAAM,gBAAgB,CAAI,UAA6B;AACrD,MAAI,OAAO,UAAU,YAAY;AAC/B,YAAQ,IAAI,SAAoB;AAC9B,YAAM,SAAU,MAAuC;AAAA,QACrD;AAAA,QACA,iBAAiB,IAAI;AAAA,MACvB;AACA,UAAI,OAAO,SAAS,MAAM,GAAG;AAC3B,eAAO,OAAO,WAAW,MAAyC;AAAA,MACpE;AACA,aAAO;AAAA,IACT;AAAA,EACF;AAEA,MAAI,CAAC,cAAc,KAAK,EAAG,QAAO;AAElC,SAAO,IAAI,MAAM,OAAO;AAAA,IACtB,IAAI,QAAQ,MAAM,UAAU;AAC1B,YAAM,IAAI,QAAQ,IAAI,QAAQ,MAAM,QAAQ;AAC5C,UAAI,OAAO,MAAM,YAAY;AAC3B,eAAO,IAAI,SAAoB;AAC7B,gBAAM,SAAU,EAAmC,MAAM,QAAQ,iBAAiB,IAAI,CAAC;AACvF,cAAI,OAAO,SAAS,MAAM,GAAG;AAC3B,mBAAO,OAAO,WAAW,MAAyC;AAAA,UACpE;AACA,iBAAO;AAAA,QACT;AAAA,MACF;AACA,UAAI,cAAc,CAAC,EAAG,QAAO,cAAc,CAAC;AAC5C,aAAO;AAAA,IACT;AAAA,EACF,CAAC;AACH;AAMO,IAAMA,kBAAiB,OAC5B,WACgC;AAChC,QAAM,UAAW,QAAQ,WAAW,CAAC;AACrC,QAAM,KACJ,OAAO,OAAO,OAAO,aAAa,MAAM,OAAO,GAAG,EAAE,QAAQ,cAAc,EAAE,CAAC,IAAI,OAAO;AAE1F,QAAM,eAAe;AAAA,IACnB,QAAQ,OAAO,KAAK,OAAO,UAAU,gBAAgB;AAAA,IACrD,GAAI,OAAO,YAAY,SAAY,EAAE,SAAS,QAAQ,KAAK,OAAO,OAAO,EAAE,IAAI,CAAC;AAAA,IAChF;AAAA,IACA,GAAI,OAAO,YAAY,EAAE,WAAW,OAAO,UAAU,IAAI,CAAC;AAAA,IAC1D,eAAe,sBAAsB,OAAO,aAAa;AAAA,IACzD,GAAI,KAAK,EAAE,GAAG,IAAI,CAAC;AAAA,EACrB;AAQA,QAAM,iBAAiB,MAAM,OAAO,WAAW,eAAqB,YAAY,CAAC;AAEjF,QAAM,WAAW,cAAc,cAAc;AAC7C,SAAO;AAAA,IACL,GAAG;AAAA,IACH,OAAO,YAAY;AACjB,YAAM,OAAO,WAAW,eAAe,MAAM,CAAC;AAAA,IAChD;AAAA,EACF;AACF;","names":["createExecutor"]}
|
|
1
|
+
{"version":3,"sources":["../src/promise-executor.ts"],"sourcesContent":["// ---------------------------------------------------------------------------\n// @executor-js/sdk/promise — thin Promise façade over the Effect SDK.\n//\n// Consumer goal: use executors + plugins without touching Effect. The\n// façade wraps `createExecutor` so it returns a Promise, and proxies\n// every method on the returned executor to unwrap its Effect into a\n// Promise. Plugin factories are Effect-native but consumers never see\n// that — the proxy flattens plugin extension methods too.\n//\n// Not a goal: authoring plugins in Promise style. The plugin model\n// (storage, schema, staticSources, Effect ctx) is Effect-only. Bring\n// your own `@executor-js/plugin-*` from the Effect side.\n// ---------------------------------------------------------------------------\n\nimport { Brand, Effect } from \"effect\";\n\nimport {\n collectTables,\n createExecutor as createEffectExecutor,\n type Executor as EffectExecutor,\n type InvokeOptions as EffectInvokeOptions,\n type OnElicitation,\n} from \"./executor\";\nimport type { ElicitationContext, ElicitationResponse } from \"./elicitation\";\nimport type { FumaDb, FumaTables } from \"./fuma-runtime\";\nimport { Subject, Tenant } from \"./ids\";\nimport type { AnyPlugin } from \"./plugin\";\nimport type { CredentialProvider } from \"./provider\";\n\n// ---------------------------------------------------------------------------\n// Types\n//\n// Promise consumers shouldn't need to construct Effect `Brand`s to call into\n// the executor — branded ids (`SecretId`, `ScopeId`, `ToolId`, `PolicyId`,\n// `ConnectionId`) are typed as `string & Brand<...>` on the Effect side, but\n// at runtime they're plain strings. `Unbrand` strips brand tags from\n// parameter types (recursively, so it walks into object fields like\n// `secrets.set({ id, scope })`) so consumers can pass plain strings. Return\n// types are passed through unchanged — caller code that reads `.id` etc.\n// off a returned ref still gets the branded type for use as an opaque token.\n// ---------------------------------------------------------------------------\n\ntype Unbrand<T> =\n T extends Brand.Brand<string>\n ? string\n : T extends readonly (infer U)[]\n ? readonly Unbrand<U>[]\n : T extends ReadonlyMap<infer K, infer V>\n ? ReadonlyMap<Unbrand<K>, Unbrand<V>>\n : T extends ReadonlySet<infer U>\n ? ReadonlySet<Unbrand<U>>\n : T extends Date\n ? T\n : T extends (...args: infer A) => infer R\n ? (...args: { [I in keyof A]: Unbrand<A[I]> }) => Unbrand<R>\n : T extends object\n ? { readonly [K in keyof T]: Unbrand<T[K]> }\n : T;\n\nexport type PromiseOnElicitation =\n | \"accept-all\"\n | ((ctx: Unbrand<ElicitationContext>) => ElicitationResponse | Promise<ElicitationResponse>);\n\nexport interface PromiseInvokeOptions {\n readonly onElicitation?: PromiseOnElicitation;\n}\n\ntype PromisifiedArg<T> = T extends EffectInvokeOptions | undefined\n ? PromiseInvokeOptions | undefined\n : Unbrand<T>;\n\ntype PromisifiedArgs<TArgs extends readonly unknown[]> = {\n [I in keyof TArgs]: PromisifiedArg<TArgs[I]>;\n};\n\nexport type Promisified<T> = T extends (...args: infer A) => Effect.Effect<infer R, infer _E>\n ? (...args: PromisifiedArgs<A>) => Promise<R>\n : T extends readonly unknown[]\n ? T\n : T extends object\n ? { readonly [K in keyof T]: Promisified<T[K]> }\n : T;\n\nexport type Executor<TPlugins extends readonly AnyPlugin[] = readonly []> = Promisified<\n EffectExecutor<TPlugins>\n>;\n\nexport interface ExecutorConfig<TPlugins extends readonly AnyPlugin[] = readonly []> {\n /** The org / workspace this executor binds to. Optional — defaults to\n * `\"default-tenant\"`. `owner: \"org\"` rows file here. */\n readonly tenant?: string;\n /** The acting member. Omit for a pure-org executor (no `owner:\"user\"`). */\n readonly subject?: string;\n readonly plugins?: TPlugins;\n /**\n * Config-level credential providers, merged with every\n * `plugin.credentialProviders`. Config providers register first, so the\n * default (first writable) store is selected from them when present. A\n * writable provider is required before `connections.create({ value })` can\n * store an inline credential. Providers are Effect-native objects (their\n * `get`/`set` return `Effect`s) — bring them from `@executor-js/sdk/core`.\n */\n readonly providers?: readonly CredentialProvider[];\n /**\n * FumaDB ORM handle, or a factory that receives the executor-owned table\n * map. Public consumers usually want the factory form so `collectTables()`\n * stays inside `createExecutor`.\n */\n readonly db?:\n | FumaDb\n | { readonly db: FumaDb; readonly close?: () => Promise<void> | void }\n | ((config: { readonly tables: FumaTables }) =>\n | FumaDb\n | { readonly db: FumaDb; readonly close?: () => Promise<void> | void }\n | Promise<\n | FumaDb\n | {\n readonly db: FumaDb;\n readonly close?: () => Promise<void> | void;\n }\n >);\n /**\n * How to respond when a tool requests user input mid-invocation. Pass\n * `\"accept-all\"` for tests / non-interactive hosts, or a handler\n * `(ctx) => Promise<ElicitationResponse>` for interactive ones.\n * Required at construction so per-invoke calls don't have to thread\n * an options arg.\n */\n readonly onElicitation: PromiseOnElicitation;\n}\n\n// ---------------------------------------------------------------------------\n// Promisify proxy — walks nested objects, converts Effect-returning methods\n// into Promise-returning methods. Non-Effect return values pass through.\n// ---------------------------------------------------------------------------\n\nconst isPlainObject = (v: unknown): v is Record<string | symbol, unknown> =>\n v !== null &&\n typeof v === \"object\" &&\n !Array.isArray(v) &&\n !(v instanceof Date) &&\n !(v instanceof Promise);\n\nconst isPromiseOnElicitation = (value: unknown): value is PromiseOnElicitation =>\n value === \"accept-all\" || typeof value === \"function\";\n\nconst toEffectOnElicitation = (handler: PromiseOnElicitation): OnElicitation =>\n handler === \"accept-all\"\n ? \"accept-all\"\n : (ctx) => Effect.promise(() => Promise.resolve(handler(ctx)));\n\nconst adaptPromiseInvokeOptions = (value: unknown): unknown => {\n if (!isPlainObject(value) || !Object.hasOwn(value, \"onElicitation\")) return value;\n const onElicitation = value.onElicitation;\n if (onElicitation === undefined || !isPromiseOnElicitation(onElicitation)) return value;\n return {\n ...value,\n onElicitation: toEffectOnElicitation(onElicitation),\n };\n};\n\nconst adaptPromiseArgs = (args: readonly unknown[]): unknown[] =>\n args.map((arg) => adaptPromiseInvokeOptions(arg));\n\nconst promisifyDeep = <T>(value: T): Promisified<T> => {\n if (typeof value === \"function\") {\n return ((...args: unknown[]) => {\n const result = (value as (...a: unknown[]) => unknown).apply(\n undefined,\n adaptPromiseArgs(args),\n );\n if (Effect.isEffect(result)) {\n return Effect.runPromise(result as Effect.Effect<unknown, unknown>);\n }\n return result;\n }) as Promisified<T>;\n }\n\n if (!isPlainObject(value)) return value as Promisified<T>;\n\n return new Proxy(value, {\n get(target, prop, receiver) {\n const v = Reflect.get(target, prop, receiver);\n if (typeof v === \"function\") {\n return (...args: unknown[]) => {\n const result = (v as (...a: unknown[]) => unknown).apply(target, adaptPromiseArgs(args));\n if (Effect.isEffect(result)) {\n return Effect.runPromise(result as Effect.Effect<unknown, unknown>);\n }\n return result;\n };\n }\n if (isPlainObject(v)) return promisifyDeep(v);\n return v;\n },\n }) as Promisified<T>;\n};\n\n// ---------------------------------------------------------------------------\n// createExecutor — Promise wrapper over the Effect createExecutor.\n// ---------------------------------------------------------------------------\n\nexport const createExecutor = async <const TPlugins extends readonly AnyPlugin[] = readonly []>(\n config: ExecutorConfig<TPlugins>,\n): Promise<Executor<TPlugins>> => {\n const plugins = (config?.plugins ?? []) as TPlugins;\n const db =\n typeof config.db === \"function\" ? await config.db({ tables: collectTables() }) : config.db;\n\n const effectConfig = {\n tenant: Tenant.make(config.tenant ?? \"default-tenant\"),\n ...(config.subject !== undefined ? { subject: Subject.make(config.subject) } : {}),\n plugins,\n ...(config.providers ? { providers: config.providers } : {}),\n onElicitation: toEffectOnElicitation(config.onElicitation),\n ...(db ? { db } : {}),\n };\n\n // The SDK has no observability requirement; storage failures surface\n // as raw `StorageError` / `UniqueViolationError` in the typed channel.\n // `Effect.runPromise` turns them into Promise rejections — consumers\n // get the tagged error as the rejected value. See\n // notes/promise-sdk-typed-errors.md for the planned `runPromiseExit`\n // rewrite that exposes the full error union to consumers.\n const effectExecutor = await Effect.runPromise(createEffectExecutor(effectConfig));\n\n const executor = promisifyDeep(effectExecutor) as Executor<TPlugins>;\n return {\n ...executor,\n close: async () => {\n await Effect.runPromise(effectExecutor.close());\n },\n } as Executor<TPlugins>;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA,SAAgB,cAAc;AA0H9B,IAAM,gBAAgB,CAAC,MACrB,MAAM,QACN,OAAO,MAAM,YACb,CAAC,MAAM,QAAQ,CAAC,KAChB,EAAE,aAAa,SACf,EAAE,aAAa;AAEjB,IAAM,yBAAyB,CAAC,UAC9B,UAAU,gBAAgB,OAAO,UAAU;AAE7C,IAAM,wBAAwB,CAAC,YAC7B,YAAY,eACR,eACA,CAAC,QAAQ,OAAO,QAAQ,MAAM,QAAQ,QAAQ,QAAQ,GAAG,CAAC,CAAC;AAEjE,IAAM,4BAA4B,CAAC,UAA4B;AAC7D,MAAI,CAAC,cAAc,KAAK,KAAK,CAAC,OAAO,OAAO,OAAO,eAAe,EAAG,QAAO;AAC5E,QAAM,gBAAgB,MAAM;AAC5B,MAAI,kBAAkB,UAAa,CAAC,uBAAuB,aAAa,EAAG,QAAO;AAClF,SAAO;AAAA,IACL,GAAG;AAAA,IACH,eAAe,sBAAsB,aAAa;AAAA,EACpD;AACF;AAEA,IAAM,mBAAmB,CAAC,SACxB,KAAK,IAAI,CAAC,QAAQ,0BAA0B,GAAG,CAAC;AAElD,IAAM,gBAAgB,CAAI,UAA6B;AACrD,MAAI,OAAO,UAAU,YAAY;AAC/B,YAAQ,IAAI,SAAoB;AAC9B,YAAM,SAAU,MAAuC;AAAA,QACrD;AAAA,QACA,iBAAiB,IAAI;AAAA,MACvB;AACA,UAAI,OAAO,SAAS,MAAM,GAAG;AAC3B,eAAO,OAAO,WAAW,MAAyC;AAAA,MACpE;AACA,aAAO;AAAA,IACT;AAAA,EACF;AAEA,MAAI,CAAC,cAAc,KAAK,EAAG,QAAO;AAElC,SAAO,IAAI,MAAM,OAAO;AAAA,IACtB,IAAI,QAAQ,MAAM,UAAU;AAC1B,YAAM,IAAI,QAAQ,IAAI,QAAQ,MAAM,QAAQ;AAC5C,UAAI,OAAO,MAAM,YAAY;AAC3B,eAAO,IAAI,SAAoB;AAC7B,gBAAM,SAAU,EAAmC,MAAM,QAAQ,iBAAiB,IAAI,CAAC;AACvF,cAAI,OAAO,SAAS,MAAM,GAAG;AAC3B,mBAAO,OAAO,WAAW,MAAyC;AAAA,UACpE;AACA,iBAAO;AAAA,QACT;AAAA,MACF;AACA,UAAI,cAAc,CAAC,EAAG,QAAO,cAAc,CAAC;AAC5C,aAAO;AAAA,IACT;AAAA,EACF,CAAC;AACH;AAMO,IAAMA,kBAAiB,OAC5B,WACgC;AAChC,QAAM,UAAW,QAAQ,WAAW,CAAC;AACrC,QAAM,KACJ,OAAO,OAAO,OAAO,aAAa,MAAM,OAAO,GAAG,EAAE,QAAQ,cAAc,EAAE,CAAC,IAAI,OAAO;AAE1F,QAAM,eAAe;AAAA,IACnB,QAAQ,OAAO,KAAK,OAAO,UAAU,gBAAgB;AAAA,IACrD,GAAI,OAAO,YAAY,SAAY,EAAE,SAAS,QAAQ,KAAK,OAAO,OAAO,EAAE,IAAI,CAAC;AAAA,IAChF;AAAA,IACA,GAAI,OAAO,YAAY,EAAE,WAAW,OAAO,UAAU,IAAI,CAAC;AAAA,IAC1D,eAAe,sBAAsB,OAAO,aAAa;AAAA,IACzD,GAAI,KAAK,EAAE,GAAG,IAAI,CAAC;AAAA,EACrB;AAQA,QAAM,iBAAiB,MAAM,OAAO,WAAW,eAAqB,YAAY,CAAC;AAEjF,QAAM,WAAW,cAAc,cAAc;AAC7C,SAAO;AAAA,IACL,GAAG;AAAA,IACH,OAAO,YAAY;AACjB,YAAM,OAAO,WAAW,eAAe,MAAM,CAAC;AAAA,IAChD;AAAA,EACF;AACF;","names":["createExecutor"]}
|
package/dist/promise.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { createExecutor, type Executor, type ExecutorConfig, type PromiseInvokeOptions, type PromiseOnElicitation, type Promisified, } from "./promise-executor";
|
|
2
|
-
export { Tenant, Subject, Owner, IntegrationSlug, ConnectionName, AuthTemplateSlug, ProviderKey, ProviderItemId, ToolAddress, ToolName, PolicyId, } from "./ids";
|
|
2
|
+
export { Tenant, Subject, Owner, IntegrationSlug, ConnectionName, AuthTemplateSlug, ProviderKey, ProviderItemId, ToolAddress, ToolName, ElicitationId, PolicyId, } from "./ids";
|
|
3
3
|
export type { Integration } from "./integration";
|
|
4
4
|
export type { Connection, ConnectionRef, CreateConnectionInput, ConnectionValueInput, } from "./connection";
|
|
5
5
|
export type { CredentialProvider, ProviderEntry } from "./provider";
|
package/dist/promise.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promise.d.ts","sourceRoot":"","sources":["../src/promise.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,cAAc,EACd,KAAK,QAAQ,EACb,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,WAAW,GACjB,MAAM,oBAAoB,CAAC;AAK5B,OAAO,EACL,MAAM,EACN,OAAO,EACP,KAAK,EACL,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,WAAW,EACX,QAAQ,EACR,QAAQ,GACT,MAAM,OAAO,CAAC;AACf,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,YAAY,EACV,UAAU,EACV,aAAa,EACb,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,cAAc,CAAC;AAItB,YAAY,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACpE,YAAY,EACV,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,cAAc,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AACrE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAC7E,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5D,YAAY,EACV,oBAAoB,IAAI,aAAa,EACrC,oBAAoB,IAAI,aAAa,GACtC,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EACL,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACnB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,GACxB,MAAM,eAAe,CAAC;AAIvB,OAAO,EAAE,oBAAoB,EAAE,KAAK,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAGxE,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,uBAAuB,EACvB,oCAAoC,EACpC,yBAAyB,EACzB,wBAAwB,EACxB,iCAAiC,EACjC,KAAK,aAAa,GACnB,MAAM,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"promise.d.ts","sourceRoot":"","sources":["../src/promise.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,cAAc,EACd,KAAK,QAAQ,EACb,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,WAAW,GACjB,MAAM,oBAAoB,CAAC;AAK5B,OAAO,EACL,MAAM,EACN,OAAO,EACP,KAAK,EACL,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,WAAW,EACX,QAAQ,EACR,aAAa,EACb,QAAQ,GACT,MAAM,OAAO,CAAC;AACf,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,YAAY,EACV,UAAU,EACV,aAAa,EACb,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,cAAc,CAAC;AAItB,YAAY,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACpE,YAAY,EACV,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,cAAc,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AACrE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAC7E,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5D,YAAY,EACV,oBAAoB,IAAI,aAAa,EACrC,oBAAoB,IAAI,aAAa,GACtC,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EACL,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACnB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,GACxB,MAAM,eAAe,CAAC;AAIvB,OAAO,EAAE,oBAAoB,EAAE,KAAK,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAGxE,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,uBAAuB,EACvB,oCAAoC,EACpC,yBAAyB,EACzB,wBAAwB,EACxB,iCAAiC,EACjC,KAAK,aAAa,GACnB,MAAM,UAAU,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@executor-js/sdk",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.4",
|
|
4
4
|
"homepage": "https://github.com/RhysSullivan/executor/tree/main/packages/core/sdk",
|
|
5
5
|
"bugs": {
|
|
6
6
|
"url": "https://github.com/RhysSullivan/executor/issues"
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
"dependencies": {
|
|
72
72
|
"@standard-schema/spec": "^1.1.0",
|
|
73
73
|
"fractional-indexing": "^3.2.0",
|
|
74
|
-
"@executor-js/fumadb": "
|
|
74
|
+
"@executor-js/fumadb": "1.5.4",
|
|
75
75
|
"oauth4webapi": "^3.8.5"
|
|
76
76
|
},
|
|
77
77
|
"devDependencies": {
|