@executor-js/sdk 0.0.1-beta.5 → 0.0.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/README.md +17 -4
- package/dist/{chunk-ECOS3HQG.js → chunk-D7CT3UMO.js} +67 -72
- package/dist/chunk-D7CT3UMO.js.map +1 -0
- package/dist/core.js +1 -1
- package/dist/elicitation.d.ts.map +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/executor.d.ts.map +1 -1
- package/dist/in-memory/policy-engine.d.ts.map +1 -1
- package/dist/in-memory/secret-store.d.ts.map +1 -1
- package/dist/in-memory/tool-registry.d.ts.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +94 -52
- package/dist/index.js.map +1 -1
- package/dist/plugin-kv.d.ts +12 -4
- package/dist/plugin-kv.d.ts.map +1 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugins/in-memory-tools.d.ts.map +1 -1
- package/dist/policies.d.ts.map +1 -1
- package/dist/promise-executor.d.ts +8 -8
- package/dist/promise-executor.d.ts.map +1 -1
- package/dist/promise.d.ts +2 -2
- package/dist/promise.d.ts.map +1 -1
- package/dist/runtime-tools.d.ts.map +1 -1
- package/dist/schema-refs.d.ts.map +1 -1
- package/dist/schema-types.d.ts.map +1 -1
- package/dist/secrets.d.ts.map +1 -1
- package/dist/sources.d.ts +12 -0
- package/dist/sources.d.ts.map +1 -1
- package/dist/testing.d.ts.map +1 -1
- package/dist/tools.d.ts.map +1 -1
- package/package.json +14 -13
- package/dist/chunk-ECOS3HQG.js.map +0 -1
package/dist/executor.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../src/executor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEzC,OAAO,KAAK,EAAU,QAAQ,EAAY,MAAM,OAAO,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACxF,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EACV,oBAAoB,EACpB,YAAY,EACZ,cAAc,EACd,aAAa,EACd,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,MAAM,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC/E,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../src/executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy-engine.d.ts","sourceRoot":"","sources":["../../src/in-memory/policy-engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE5D,eAAO,MAAM,wBAAwB;oBAKjB,OAAO;
|
|
1
|
+
{"version":3,"file":"policy-engine.d.ts","sourceRoot":"","sources":["../../src/in-memory/policy-engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE5D,eAAO,MAAM,wBAAwB;oBAKjB,OAAO;oBAEP,gBAAgB;kBAClB,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,WAAW,CAAC;uBAO3B,QAAQ;CAE9B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secret-store.d.ts","sourceRoot":"","sources":["../../src/in-memory/secret-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAU,MAAM,QAAQ,CAAC;AAExC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AACvE,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAM5E,eAAO,MAAM,0BAA0B,QAAO,
|
|
1
|
+
{"version":3,"file":"secret-store.d.ts","sourceRoot":"","sources":["../../src/in-memory/secret-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAU,MAAM,QAAQ,CAAC;AAExC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AACvE,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAM5E,eAAO,MAAM,0BAA0B,QAAO,cAa7C,CAAC;AAMF,eAAO,MAAM,uBAAuB;oBA8BhB,OAAO;oBAGP,QAAQ;wBAKJ,QAAQ,YAAY,OAAO;uBAe5B,QAAQ,YAAY,OAAO;iBAMjC,cAAc;uBAwBR,QAAQ;4BAeH,cAAc;;CAOzC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-registry.d.ts","sourceRoot":"","sources":["../../src/in-memory/tool-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACnE,OAAO,KAAK,EACV,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,aAAa,EACb,kBAAkB,EACnB,MAAM,UAAU,CAAC;AAIlB,eAAO,MAAM,wBAAwB;oBAmBjB,cAAc;;;;;;;
|
|
1
|
+
{"version":3,"file":"tool-registry.d.ts","sourceRoot":"","sources":["../../src/in-memory/tool-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACnE,OAAO,KAAK,EACV,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,aAAa,EACb,kBAAkB,EACnB,MAAM,UAAU,CAAC;AAIlB,eAAO,MAAM,wBAAwB;oBAmBjB,cAAc;;;;;;;qBA0Bb,MAAM;;;;;;;;;gCAsCK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;uCAOhB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;0CAOpB,SAAS,MAAM,EAAE;iCAO1B,MAAM,WAAW,WAAW;iCAK5B,MAAM;qBAalB,MAAM,QAAQ,OAAO,WAAW,aAAa;yBAoBzC,SAAS,gBAAgB,EAAE;gCAWpB,SAAS,gBAAgB,EAAE;qCAWtB,MAAM,WAAW,kBAAkB;iCAKvC,SAAS,MAAM,EAAE;0BAQxB,SAAS,MAAM,EAAE;mCASR,MAAM;CAexC,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export { SecretRef, SetSecretInput, SecretStore, type SecretProvider } from "./s
|
|
|
7
7
|
export { Policy, PolicyAction, PolicyCheckInput, PolicyEngine } from "./policies";
|
|
8
8
|
export { Scope } from "./scope";
|
|
9
9
|
export { definePlugin, type ExecutorPlugin, type PluginContext, type PluginHandle, type PluginExtensions, } from "./plugin";
|
|
10
|
-
export { createExecutor, type Executor, type ExecutorConfig
|
|
10
|
+
export { createExecutor, type Executor, type ExecutorConfig } from "./executor";
|
|
11
11
|
export { inMemoryToolsPlugin, tool, type MemoryToolDefinition, type MemoryToolContext, type MemoryToolSdkAccess, type InMemoryToolsPluginExtension, } from "./plugins/in-memory-tools";
|
|
12
12
|
export { hoistDefinitions, collectRefs, reattachDefs, normalizeRefs } from "./schema-refs";
|
|
13
13
|
export { schemaToTypeScriptPreview, schemaToTypeScriptPreviewWithDefs, buildToolTypeScriptPreview, type TypeScriptRenderOptions, type TypeScriptSchemaPreview, } from "./schema-types";
|
|
@@ -16,5 +16,5 @@ export { makeInMemoryToolRegistry } from "./in-memory/tool-registry";
|
|
|
16
16
|
export { makeInMemorySecretStore, makeInMemorySecretProvider } from "./in-memory/secret-store";
|
|
17
17
|
export { makeInMemoryPolicyEngine } from "./in-memory/policy-engine";
|
|
18
18
|
export { makeTestConfig } from "./testing";
|
|
19
|
-
export { type Kv, type ScopedKv, scopeKv, makeInMemoryScopedKv } from "./plugin-kv";
|
|
19
|
+
export { type Kv, type KvEntry, type ScopedKv, scopeKv, makeInMemoryScopedKv } from "./plugin-kv";
|
|
20
20
|
//# 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,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAG5D,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,YAAY,EACZ,UAAU,EACV,oBAAoB,EACpB,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,aAAa,GACnB,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,MAAM,EACN,qBAAqB,EACrB,cAAc,EACd,0BAA0B,EAC1B,KAAK,aAAa,GACnB,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,EACxB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,GACxB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,WAAW,CAAC;AAGxF,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAGlF,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC,OAAO,EACL,YAAY,EACZ,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,gBAAgB,GACtB,MAAM,UAAU,CAAC;AAGlB,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAG5D,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,YAAY,EACZ,UAAU,EACV,oBAAoB,EACpB,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,aAAa,GACnB,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,MAAM,EACN,qBAAqB,EACrB,cAAc,EACd,0BAA0B,EAC1B,KAAK,aAAa,GACnB,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,EACxB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,GACxB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,WAAW,CAAC;AAGxF,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAGlF,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC,OAAO,EACL,YAAY,EACZ,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,gBAAgB,GACtB,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,cAAc,EAAE,KAAK,QAAQ,EAAE,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAGhF,OAAO,EACL,mBAAmB,EACnB,IAAI,EACJ,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,4BAA4B,GAClC,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC3F,OAAO,EACL,yBAAyB,EACzB,iCAAiC,EACjC,0BAA0B,EAC1B,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,GAC7B,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,oBAAoB,EACpB,WAAW,EACX,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,GAC3B,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAC/F,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAGrE,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -3,6 +3,7 @@ import {
|
|
|
3
3
|
ElicitationResponse,
|
|
4
4
|
FormElicitation,
|
|
5
5
|
Policy,
|
|
6
|
+
PolicyCheckInput,
|
|
6
7
|
PolicyDeniedError,
|
|
7
8
|
PolicyId,
|
|
8
9
|
Scope,
|
|
@@ -28,24 +29,35 @@ import {
|
|
|
28
29
|
makeInMemorySecretStore,
|
|
29
30
|
makeInMemorySourceRegistry,
|
|
30
31
|
makeInMemoryToolRegistry
|
|
31
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-D7CT3UMO.js";
|
|
32
33
|
|
|
33
34
|
// src/promise-executor.ts
|
|
34
|
-
import { Effect } from "effect";
|
|
35
|
+
import { Data, Effect } from "effect";
|
|
35
36
|
var run = (effect) => Effect.runPromise(effect);
|
|
36
|
-
var
|
|
37
|
+
var PromiseAdapterError = class extends Data.TaggedError("PromiseAdapterError") {
|
|
38
|
+
};
|
|
39
|
+
var fromPromise = (fn) => Effect.tryPromise({
|
|
40
|
+
try: fn,
|
|
41
|
+
catch: (cause) => new PromiseAdapterError({ cause })
|
|
42
|
+
});
|
|
37
43
|
var fromPromiseDying = (fn) => Effect.orDie(fromPromise(fn));
|
|
38
|
-
var
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
44
|
+
var fromPromiseTagged = (fn, tags) => fromPromise(fn).pipe(
|
|
45
|
+
Effect.catchAll((err) => {
|
|
46
|
+
const cause = err.cause;
|
|
47
|
+
if (cause !== null && typeof cause === "object" && "_tag" in cause && typeof cause._tag === "string" && tags.includes(cause._tag)) {
|
|
48
|
+
return Effect.fail(cause);
|
|
49
|
+
}
|
|
50
|
+
return Effect.die(cause);
|
|
51
|
+
})
|
|
52
|
+
);
|
|
53
|
+
var toEffectElicitationHandler = (handler) => (ctx) => fromPromise(() => handler(ctx)).pipe(
|
|
42
54
|
Effect.map(
|
|
43
55
|
(r) => new ElicitationResponse({
|
|
44
56
|
action: r.action,
|
|
45
57
|
content: r.content
|
|
46
58
|
})
|
|
47
59
|
),
|
|
48
|
-
Effect.catchAll((e) => Effect.die(e))
|
|
60
|
+
Effect.catchAll((e) => Effect.die(e.cause))
|
|
49
61
|
);
|
|
50
62
|
var toEffectInvokeOptions = (options) => ({
|
|
51
63
|
onElicitation: options.onElicitation === "accept-all" ? "accept-all" : toEffectElicitationHandler(options.onElicitation)
|
|
@@ -61,31 +73,39 @@ var effectToPromiseInvokeOptions = (options) => {
|
|
|
61
73
|
};
|
|
62
74
|
};
|
|
63
75
|
var toEffectInvoker = (invoker) => ({
|
|
64
|
-
invoke: (toolId, args, options) =>
|
|
65
|
-
|
|
76
|
+
invoke: (toolId, args, options) => fromPromiseTagged(
|
|
77
|
+
() => invoker.invoke(toolId, args, effectToPromiseInvokeOptions(options)),
|
|
78
|
+
["ToolInvocationError", "ElicitationDeclinedError"]
|
|
79
|
+
),
|
|
80
|
+
resolveAnnotations: invoker.resolveAnnotations ? (toolId) => fromPromiseDying(() => invoker.resolveAnnotations(toolId)) : void 0
|
|
66
81
|
});
|
|
67
82
|
var toEffectRuntimeHandler = (handler) => ({
|
|
68
|
-
invoke: (args, options) =>
|
|
69
|
-
|
|
83
|
+
invoke: (args, options) => fromPromiseTagged(
|
|
84
|
+
() => handler.invoke(args, effectToPromiseInvokeOptions(options)),
|
|
85
|
+
["ToolInvocationError", "ElicitationDeclinedError"]
|
|
86
|
+
),
|
|
87
|
+
resolveAnnotations: handler.resolveAnnotations ? () => fromPromiseDying(() => handler.resolveAnnotations()) : void 0
|
|
70
88
|
});
|
|
71
89
|
var toEffectSourceManager = (manager) => ({
|
|
72
90
|
kind: manager.kind,
|
|
73
|
-
list: () =>
|
|
74
|
-
remove: (sourceId) =>
|
|
75
|
-
refresh: manager.refresh ? (sourceId) =>
|
|
76
|
-
detect: manager.detect ? (url) =>
|
|
91
|
+
list: () => fromPromiseDying(() => manager.list()),
|
|
92
|
+
remove: (sourceId) => fromPromiseDying(() => manager.remove(sourceId)),
|
|
93
|
+
refresh: manager.refresh ? (sourceId) => fromPromiseDying(() => manager.refresh(sourceId)) : void 0,
|
|
94
|
+
detect: manager.detect ? (url) => fromPromiseDying(() => manager.detect(url)) : void 0
|
|
77
95
|
});
|
|
78
96
|
var toEffectSecretProvider = (provider) => ({
|
|
79
97
|
key: provider.key,
|
|
80
98
|
writable: provider.writable,
|
|
81
|
-
get: (key) =>
|
|
82
|
-
set: provider.set ? (key, value) =>
|
|
83
|
-
delete: provider.delete ? (key) =>
|
|
84
|
-
list: provider.list ? () =>
|
|
99
|
+
get: (key) => fromPromiseDying(() => provider.get(key)),
|
|
100
|
+
set: provider.set ? (key, value) => fromPromiseDying(() => provider.set(key, value)) : void 0,
|
|
101
|
+
delete: provider.delete ? (key) => fromPromiseDying(() => provider.delete(key)) : void 0,
|
|
102
|
+
list: provider.list ? () => fromPromiseDying(() => provider.list()) : void 0
|
|
85
103
|
});
|
|
86
104
|
var toPromiseInvoker = (invoker) => ({
|
|
87
|
-
invoke: (toolId, args, options) => run(
|
|
88
|
-
|
|
105
|
+
invoke: (toolId, args, options) => run(
|
|
106
|
+
invoker.invoke(ToolId.make(toolId), args, toEffectInvokeOptions(options))
|
|
107
|
+
),
|
|
108
|
+
resolveAnnotations: invoker.resolveAnnotations ? (toolId) => run(invoker.resolveAnnotations(ToolId.make(toolId))) : void 0
|
|
89
109
|
});
|
|
90
110
|
var toPromiseRuntimeHandler = (handler) => ({
|
|
91
111
|
invoke: (args, options) => run(handler.invoke(args, toEffectInvokeOptions(options))),
|
|
@@ -108,15 +128,16 @@ var toPromiseSecretProvider = (provider) => ({
|
|
|
108
128
|
});
|
|
109
129
|
var toEffectToolRegistry = (r) => ({
|
|
110
130
|
list: (filter) => fromPromiseDying(() => r.list(filter)),
|
|
111
|
-
schema: (toolId) =>
|
|
131
|
+
schema: (toolId) => fromPromiseTagged(() => r.schema(toolId), ["ToolNotFoundError"]),
|
|
112
132
|
definitions: () => fromPromiseDying(() => r.definitions()),
|
|
113
133
|
registerDefinitions: (defs) => fromPromiseDying(() => r.registerDefinitions(defs)),
|
|
114
134
|
registerRuntimeDefinitions: (defs) => fromPromiseDying(() => r.registerRuntimeDefinitions(defs)),
|
|
115
135
|
unregisterRuntimeDefinitions: (names) => fromPromiseDying(() => r.unregisterRuntimeDefinitions(names)),
|
|
116
136
|
registerInvoker: (pluginKey, effectInvoker) => fromPromiseDying(() => r.registerInvoker(pluginKey, toPromiseInvoker(effectInvoker))),
|
|
117
137
|
resolveAnnotations: (toolId) => fromPromiseDying(() => r.resolveAnnotations(toolId)),
|
|
118
|
-
invoke: (toolId, args, options) =>
|
|
119
|
-
() => r.invoke(toolId, args, effectToPromiseInvokeOptions(options))
|
|
138
|
+
invoke: (toolId, args, options) => fromPromiseTagged(
|
|
139
|
+
() => r.invoke(toolId, args, effectToPromiseInvokeOptions(options)),
|
|
140
|
+
["ToolNotFoundError", "ToolInvocationError", "ElicitationDeclinedError"]
|
|
120
141
|
),
|
|
121
142
|
register: (tools) => fromPromiseDying(() => r.register(tools)),
|
|
122
143
|
registerRuntime: (tools) => fromPromiseDying(() => r.registerRuntime(tools)),
|
|
@@ -138,18 +159,31 @@ var toEffectSourceRegistry = (r) => ({
|
|
|
138
159
|
});
|
|
139
160
|
var toEffectSecretStore = (s) => ({
|
|
140
161
|
list: (scopeId) => fromPromiseDying(() => s.list(scopeId)),
|
|
141
|
-
get: (secretId) =>
|
|
142
|
-
|
|
162
|
+
get: (secretId) => fromPromiseTagged(
|
|
163
|
+
() => s.get(secretId),
|
|
164
|
+
["SecretNotFoundError"]
|
|
165
|
+
),
|
|
166
|
+
resolve: (secretId, scopeId) => fromPromiseTagged(
|
|
167
|
+
() => s.resolve(secretId, scopeId),
|
|
168
|
+
["SecretNotFoundError", "SecretResolutionError"]
|
|
169
|
+
),
|
|
143
170
|
status: (secretId, scopeId) => fromPromiseDying(() => s.status(secretId, scopeId)),
|
|
144
|
-
set: (input) =>
|
|
145
|
-
|
|
171
|
+
set: (input) => fromPromiseTagged(
|
|
172
|
+
() => s.set(input),
|
|
173
|
+
["SecretResolutionError"]
|
|
174
|
+
),
|
|
175
|
+
remove: (secretId) => fromPromiseTagged(
|
|
176
|
+
() => s.remove(secretId),
|
|
177
|
+
["SecretNotFoundError"]
|
|
178
|
+
),
|
|
146
179
|
addProvider: (provider) => fromPromiseDying(() => s.addProvider(toPromiseSecretProvider(provider))),
|
|
147
180
|
providers: () => fromPromiseDying(() => s.providers())
|
|
148
181
|
});
|
|
149
182
|
var toEffectPolicyEngine = (p) => ({
|
|
150
183
|
list: (scopeId) => fromPromiseDying(() => p.list(scopeId)),
|
|
151
|
-
check: (input) =>
|
|
152
|
-
() => p.check({ scopeId: input.scopeId, toolId: input.toolId })
|
|
184
|
+
check: (input) => fromPromiseTagged(
|
|
185
|
+
() => p.check({ scopeId: input.scopeId, toolId: input.toolId }),
|
|
186
|
+
["PolicyDeniedError"]
|
|
153
187
|
),
|
|
154
188
|
add: (policy) => fromPromiseDying(() => p.add(policy)),
|
|
155
189
|
remove: (policyId) => fromPromiseDying(() => p.remove(policyId))
|
|
@@ -157,20 +191,20 @@ var toEffectPolicyEngine = (p) => ({
|
|
|
157
191
|
var wrapPluginContext = (ctx) => ({
|
|
158
192
|
scope: ctx.scope,
|
|
159
193
|
tools: {
|
|
160
|
-
list: (filter) => run(ctx.tools.list(filter)),
|
|
161
|
-
schema: (toolId) => run(ctx.tools.schema(toolId)),
|
|
162
|
-
invoke: (toolId, args, options) => run(ctx.tools.invoke(toolId, args, toEffectInvokeOptions(options))),
|
|
194
|
+
list: (filter) => run(ctx.tools.list(filter ? new ToolListFilter(filter) : void 0)),
|
|
195
|
+
schema: (toolId) => run(ctx.tools.schema(ToolId.make(toolId))),
|
|
196
|
+
invoke: (toolId, args, options) => run(ctx.tools.invoke(ToolId.make(toolId), args, toEffectInvokeOptions(options))),
|
|
163
197
|
definitions: () => run(ctx.tools.definitions()),
|
|
164
198
|
registerDefinitions: (defs) => run(ctx.tools.registerDefinitions(defs)),
|
|
165
199
|
registerRuntimeDefinitions: (defs) => run(ctx.tools.registerRuntimeDefinitions(defs)),
|
|
166
200
|
unregisterRuntimeDefinitions: (names) => run(ctx.tools.unregisterRuntimeDefinitions(names)),
|
|
167
201
|
registerInvoker: (pluginKey, invoker) => run(ctx.tools.registerInvoker(pluginKey, toEffectInvoker(invoker))),
|
|
168
|
-
resolveAnnotations: (toolId) => run(ctx.tools.resolveAnnotations(toolId)),
|
|
202
|
+
resolveAnnotations: (toolId) => run(ctx.tools.resolveAnnotations(ToolId.make(toolId))),
|
|
169
203
|
register: (tools) => run(ctx.tools.register(tools)),
|
|
170
204
|
registerRuntime: (tools) => run(ctx.tools.registerRuntime(tools)),
|
|
171
|
-
registerRuntimeHandler: (toolId, handler) => run(ctx.tools.registerRuntimeHandler(toolId, toEffectRuntimeHandler(handler))),
|
|
172
|
-
unregisterRuntime: (toolIds) => run(ctx.tools.unregisterRuntime(toolIds)),
|
|
173
|
-
unregister: (toolIds) => run(ctx.tools.unregister(toolIds)),
|
|
205
|
+
registerRuntimeHandler: (toolId, handler) => run(ctx.tools.registerRuntimeHandler(ToolId.make(toolId), toEffectRuntimeHandler(handler))),
|
|
206
|
+
unregisterRuntime: (toolIds) => run(ctx.tools.unregisterRuntime(toolIds.map((id) => ToolId.make(id)))),
|
|
207
|
+
unregister: (toolIds) => run(ctx.tools.unregister(toolIds.map((id) => ToolId.make(id)))),
|
|
174
208
|
unregisterBySource: (sourceId) => run(ctx.tools.unregisterBySource(sourceId))
|
|
175
209
|
},
|
|
176
210
|
sources: {
|
|
@@ -183,20 +217,27 @@ var wrapPluginContext = (ctx) => ({
|
|
|
183
217
|
detect: (url) => run(ctx.sources.detect(url))
|
|
184
218
|
},
|
|
185
219
|
secrets: {
|
|
186
|
-
list: (scopeId) => run(ctx.secrets.list(scopeId)),
|
|
187
|
-
get: (secretId) => run(ctx.secrets.get(secretId)),
|
|
188
|
-
resolve: (secretId, scopeId) => run(ctx.secrets.resolve(secretId, scopeId)),
|
|
189
|
-
status: (secretId, scopeId) => run(ctx.secrets.status(secretId, scopeId)),
|
|
220
|
+
list: (scopeId) => run(ctx.secrets.list(ScopeId.make(scopeId))),
|
|
221
|
+
get: (secretId) => run(ctx.secrets.get(SecretId.make(secretId))),
|
|
222
|
+
resolve: (secretId, scopeId) => run(ctx.secrets.resolve(SecretId.make(secretId), ScopeId.make(scopeId))),
|
|
223
|
+
status: (secretId, scopeId) => run(ctx.secrets.status(SecretId.make(secretId), ScopeId.make(scopeId))),
|
|
190
224
|
set: (input) => run(ctx.secrets.set(input)),
|
|
191
|
-
remove: (secretId) => run(ctx.secrets.remove(secretId)),
|
|
225
|
+
remove: (secretId) => run(ctx.secrets.remove(SecretId.make(secretId))),
|
|
192
226
|
addProvider: (provider) => run(ctx.secrets.addProvider(toEffectSecretProvider(provider))),
|
|
193
227
|
providers: () => run(ctx.secrets.providers())
|
|
194
228
|
},
|
|
195
229
|
policies: {
|
|
196
|
-
list: (scopeId) => run(ctx.policies.list(scopeId)),
|
|
197
|
-
check: (input) => run(
|
|
230
|
+
list: (scopeId) => run(ctx.policies.list(ScopeId.make(scopeId))),
|
|
231
|
+
check: (input) => run(
|
|
232
|
+
ctx.policies.check(
|
|
233
|
+
new PolicyCheckInput({
|
|
234
|
+
scopeId: ScopeId.make(input.scopeId),
|
|
235
|
+
toolId: ToolId.make(input.toolId)
|
|
236
|
+
})
|
|
237
|
+
)
|
|
238
|
+
),
|
|
198
239
|
add: (policy) => run(ctx.policies.add(policy)),
|
|
199
|
-
remove: (policyId) => run(ctx.policies.remove(policyId))
|
|
240
|
+
remove: (policyId) => run(ctx.policies.remove(PolicyId.make(policyId)))
|
|
200
241
|
}
|
|
201
242
|
});
|
|
202
243
|
var definePlugin = (plugin) => ({ ...plugin, _promise: true });
|
|
@@ -222,7 +263,8 @@ function promisifyObject(obj) {
|
|
|
222
263
|
return result;
|
|
223
264
|
};
|
|
224
265
|
}
|
|
225
|
-
if (value !== null && typeof value === "object" && !Array.isArray(value))
|
|
266
|
+
if (value !== null && typeof value === "object" && !Array.isArray(value))
|
|
267
|
+
return promisifyObject(value);
|
|
226
268
|
return value;
|
|
227
269
|
}
|
|
228
270
|
});
|
|
@@ -248,7 +290,7 @@ var createExecutor2 = async (config = {}) => {
|
|
|
248
290
|
const base = {
|
|
249
291
|
scope: executor.scope,
|
|
250
292
|
tools: {
|
|
251
|
-
list: (filter) => run(executor.tools.list(filter)),
|
|
293
|
+
list: (filter) => run(executor.tools.list(filter ? new ToolListFilter(filter) : void 0)),
|
|
252
294
|
schema: (toolId) => run(executor.tools.schema(toolId)),
|
|
253
295
|
definitions: () => run(executor.tools.definitions()),
|
|
254
296
|
invoke: (toolId, args, options) => run(executor.tools.invoke(toolId, args, toEffectInvokeOptions(options)))
|
|
@@ -266,10 +308,10 @@ var createExecutor2 = async (config = {}) => {
|
|
|
266
308
|
},
|
|
267
309
|
secrets: {
|
|
268
310
|
list: () => run(executor.secrets.list()),
|
|
269
|
-
resolve: (secretId) => run(executor.secrets.resolve(secretId)),
|
|
270
|
-
status: (secretId) => run(executor.secrets.status(secretId)),
|
|
271
|
-
set: (input) => run(executor.secrets.set(input)),
|
|
272
|
-
remove: (secretId) => run(executor.secrets.remove(secretId)),
|
|
311
|
+
resolve: (secretId) => run(executor.secrets.resolve(SecretId.make(secretId))),
|
|
312
|
+
status: (secretId) => run(executor.secrets.status(SecretId.make(secretId))),
|
|
313
|
+
set: (input) => run(executor.secrets.set({ ...input, id: SecretId.make(input.id) })),
|
|
314
|
+
remove: (secretId) => run(executor.secrets.remove(SecretId.make(secretId))),
|
|
273
315
|
addProvider: (provider) => run(executor.secrets.addProvider(toEffectSecretProvider(provider))),
|
|
274
316
|
providers: () => run(executor.secrets.providers())
|
|
275
317
|
},
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/promise-executor.ts"],"sourcesContent":["import { Context, Effect } from \"effect\";\n\nimport {\n createExecutor as createEffectExecutor,\n ElicitationResponse as ElicitationResponseClass,\n makeInMemoryToolRegistry,\n makeInMemorySecretStore,\n makeInMemoryPolicyEngine,\n makeInMemorySourceRegistry,\n ScopeId,\n type ToolRegistry as CoreToolRegistry,\n type SourceRegistry as CoreSourceRegistry,\n type SecretStore as CoreSecretStore,\n type PolicyEngine as CorePolicyEngine,\n type ExecutorConfig as EffectExecutorConfig,\n type ExecutorPlugin,\n type PluginContext as EffectPluginContext,\n type ElicitationContext,\n type InvokeOptions as EffectInvokeOptions,\n type ToolInvocationResult,\n type ToolMetadata,\n type ToolAnnotations,\n type ToolSchema,\n type ToolInvoker as EffectToolInvoker,\n type RuntimeToolHandler as EffectRuntimeToolHandler,\n type Source,\n type SourceDetectionResult,\n type SourceManager as EffectSourceManager,\n type Policy,\n type SecretRef,\n type SecretProvider as EffectSecretProvider,\n type SetSecretInput,\n type Scope,\n type ToolId,\n type SecretId,\n type ScopeId as ScopeIdType,\n type PolicyId,\n type ToolNotFoundError,\n type ToolInvocationError,\n type SecretNotFoundError,\n type SecretResolutionError,\n type PolicyDeniedError,\n type ElicitationDeclinedError,\n} from \"./index\";\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\nconst run = <A, E>(effect: Effect.Effect<A, E>): Promise<A> =>\n Effect.runPromise(effect as Effect.Effect<A, never>);\n\nconst fromPromise = <A>(fn: () => Promise<A>): Effect.Effect<A, Error> =>\n Effect.tryPromise({ try: fn, catch: (e) => (e instanceof Error ? e : new Error(String(e))) });\n\n/**\n * Wrap a promise-returning function as an Effect whose error channel is\n * `never`. Unexpected rejections become unhandled defects. Used by the store\n * adapters where the Effect-layer service interface forbids a typed error\n * channel.\n */\nconst fromPromiseDying = <A>(fn: () => Promise<A>): Effect.Effect<A, never> =>\n Effect.orDie(fromPromise(fn));\n\n// ---------------------------------------------------------------------------\n// Type derivation — derive Promise-based SDK types from core Effect types\n// ---------------------------------------------------------------------------\n\n/** Replace branded IDs with plain strings in parameter types */\ntype UnbrandParam<T> =\n T extends ToolId ? string :\n T extends SecretId ? string :\n T extends ScopeIdType ? string :\n T extends PolicyId ? string :\n T extends readonly (infer U)[] ? readonly UnbrandParam<U>[] :\n T;\n\n/** Convert an Effect service interface to Promise-based, unbranding ID params */\ntype PromisifyService<T> = {\n readonly [K in keyof T]: NonNullable<T[K]> extends (...args: infer A) => Effect.Effect<infer R, infer _E>\n ? (...args: { [I in keyof A]: UnbrandParam<A[I]> }) => Promise<R>\n : T[K];\n};\n\ntype CoreToolRegistryService = Context.Tag.Service<typeof CoreToolRegistry>;\ntype CoreSourceRegistryService = Context.Tag.Service<typeof CoreSourceRegistry>;\ntype CoreSecretStoreService = Context.Tag.Service<typeof CoreSecretStore>;\ntype CorePolicyEngineService = Context.Tag.Service<typeof CorePolicyEngine>;\n\n// ---------------------------------------------------------------------------\n// Elicitation\n// ---------------------------------------------------------------------------\n\nexport interface ElicitationResponse {\n readonly action: \"accept\" | \"decline\" | \"cancel\";\n readonly content?: Record<string, unknown>;\n}\n\nexport type ElicitationHandler = (\n ctx: ElicitationContext,\n) => Promise<ElicitationResponse>;\n\nexport interface InvokeOptions {\n readonly onElicitation: ElicitationHandler | \"accept-all\";\n}\n\nconst toEffectElicitationHandler = (handler: ElicitationHandler) =>\n (ctx: ElicitationContext) =>\n Effect.tryPromise({\n try: () => handler(ctx),\n catch: (e) => e as Error,\n }).pipe(\n Effect.map(\n (r) =>\n new ElicitationResponseClass({\n action: r.action,\n content: r.content,\n }),\n ),\n Effect.catchAll((e) => Effect.die(e)),\n );\n\nconst toEffectInvokeOptions = (options: InvokeOptions): EffectInvokeOptions => ({\n onElicitation:\n options.onElicitation === \"accept-all\"\n ? (\"accept-all\" as const)\n : toEffectElicitationHandler(options.onElicitation),\n});\n\n// ---------------------------------------------------------------------------\n// Plugin callback types\n// ---------------------------------------------------------------------------\n\nexport interface ToolInvoker {\n readonly invoke: (toolId: string, args: unknown, options: InvokeOptions) => Promise<ToolInvocationResult>;\n readonly resolveAnnotations?: (toolId: string) => Promise<ToolAnnotations | undefined>;\n}\n\nexport interface RuntimeToolHandler {\n readonly invoke: (args: unknown, options: InvokeOptions) => Promise<ToolInvocationResult>;\n readonly resolveAnnotations?: () => Promise<ToolAnnotations | undefined>;\n}\n\nexport type SourceManager = PromisifyService<EffectSourceManager>;\n\nexport type SecretProvider = PromisifyService<EffectSecretProvider>;\n\n// --- Adapters ---\n\nconst effectToPromiseInvokeOptions = (options?: EffectInvokeOptions): InvokeOptions => {\n if (!options || options.onElicitation === \"accept-all\") return { onElicitation: \"accept-all\" };\n const handler = options.onElicitation;\n return {\n onElicitation: async (ctx) => {\n const r = await run(handler(ctx));\n return { action: r.action, content: r.content ?? undefined };\n },\n };\n};\n\nconst toEffectInvoker = (invoker: ToolInvoker): EffectToolInvoker => ({\n invoke: (toolId, args, options) =>\n fromPromise(() => invoker.invoke(toolId, args, effectToPromiseInvokeOptions(options))) as Effect.Effect<ToolInvocationResult, any>,\n resolveAnnotations: invoker.resolveAnnotations\n ? (toolId) => fromPromise(() => invoker.resolveAnnotations!(toolId)) as Effect.Effect<ToolAnnotations | undefined>\n : undefined,\n});\n\nconst toEffectRuntimeHandler = (handler: RuntimeToolHandler): EffectRuntimeToolHandler => ({\n invoke: (args, options) =>\n fromPromise(() => handler.invoke(args, effectToPromiseInvokeOptions(options))) as Effect.Effect<ToolInvocationResult, any>,\n resolveAnnotations: handler.resolveAnnotations\n ? () => fromPromise(() => handler.resolveAnnotations!()) as Effect.Effect<ToolAnnotations | undefined>\n : undefined,\n});\n\nconst toEffectSourceManager = (manager: SourceManager): EffectSourceManager => ({\n kind: manager.kind,\n list: () => fromPromise(() => manager.list()) as Effect.Effect<readonly Source[]>,\n remove: (sourceId) => fromPromise(() => manager.remove(sourceId)) as Effect.Effect<void>,\n refresh: manager.refresh ? (sourceId) => fromPromise(() => manager.refresh!(sourceId)) as Effect.Effect<void> : undefined,\n detect: manager.detect ? (url) => fromPromise(() => manager.detect!(url)) as Effect.Effect<SourceDetectionResult | null> : undefined,\n});\n\nconst toEffectSecretProvider = (provider: SecretProvider): EffectSecretProvider => ({\n key: provider.key,\n writable: provider.writable,\n get: (key) => fromPromise(() => provider.get(key)) as Effect.Effect<string | null>,\n set: provider.set ? (key, value) => fromPromise(() => provider.set!(key, value)) as Effect.Effect<void> : undefined,\n delete: provider.delete ? (key) => fromPromise(() => provider.delete!(key)) as Effect.Effect<boolean> : undefined,\n list: provider.list ? () => fromPromise(() => provider.list!()) as Effect.Effect<readonly { id: string; name: string }[]> : undefined,\n});\n\n// --- Reverse adapters (Effect -> Promise) for callbacks handed to user stores ---\n//\n// When the Effect core hands us an Effect-shaped ToolInvoker / ToolHandler /\n// SourceManager / SecretProvider (e.g. from a plugin), we need to convert it\n// into the promise-shaped equivalent before passing it to a user-supplied\n// promise-based store implementation.\n\nconst toPromiseInvoker = (invoker: EffectToolInvoker): ToolInvoker => ({\n invoke: (toolId, args, options) =>\n run(invoker.invoke(toolId as ToolId, args, toEffectInvokeOptions(options))) as Promise<ToolInvocationResult>,\n resolveAnnotations: invoker.resolveAnnotations\n ? (toolId) => run(invoker.resolveAnnotations!(toolId as ToolId))\n : undefined,\n});\n\nconst toPromiseRuntimeHandler = (handler: EffectRuntimeToolHandler): RuntimeToolHandler => ({\n invoke: (args, options) =>\n run(handler.invoke(args, toEffectInvokeOptions(options))) as Promise<ToolInvocationResult>,\n resolveAnnotations: handler.resolveAnnotations\n ? () => run(handler.resolveAnnotations!())\n : undefined,\n});\n\nconst toPromiseSourceManager = (manager: EffectSourceManager): SourceManager => ({\n kind: manager.kind,\n list: () => run(manager.list()),\n remove: (sourceId) => run(manager.remove(sourceId)),\n refresh: manager.refresh ? (sourceId) => run(manager.refresh!(sourceId)) : undefined,\n detect: manager.detect ? (url) => run(manager.detect!(url)) : undefined,\n});\n\nconst toPromiseSecretProvider = (provider: EffectSecretProvider): SecretProvider => ({\n key: provider.key,\n writable: provider.writable,\n get: (key) => run(provider.get(key)),\n set: provider.set ? (key, value) => run(provider.set!(key, value)) : undefined,\n delete: provider.delete ? (key) => run(provider.delete!(key)) : undefined,\n list: provider.list ? () => run(provider.list!()) : undefined,\n});\n\n// --- Main store adapters (Promise -> Effect) ---\n//\n// Users implementing a pluggable store (e.g. a Postgres-backed tool registry)\n// write against the promise-shaped ToolRegistry / SourceRegistry / SecretStore\n// / PolicyEngine interfaces declared below. These adapters wrap the user impl\n// so the Effect core layer sees a native Effect service.\n\nconst toEffectToolRegistry = (r: ToolRegistry): CoreToolRegistryService => ({\n list: (filter) => fromPromiseDying(() => r.list(filter)),\n schema: (toolId) =>\n fromPromise(() => r.schema(toolId)) as Effect.Effect<ToolSchema, ToolNotFoundError>,\n definitions: () => fromPromiseDying(() => r.definitions()),\n registerDefinitions: (defs) => fromPromiseDying(() => r.registerDefinitions(defs)),\n registerRuntimeDefinitions: (defs) =>\n fromPromiseDying(() => r.registerRuntimeDefinitions(defs)),\n unregisterRuntimeDefinitions: (names) =>\n fromPromiseDying(() => r.unregisterRuntimeDefinitions(names)),\n registerInvoker: (pluginKey, effectInvoker) =>\n fromPromiseDying(() => r.registerInvoker(pluginKey, toPromiseInvoker(effectInvoker))),\n resolveAnnotations: (toolId) =>\n fromPromiseDying(() => r.resolveAnnotations(toolId)),\n invoke: (toolId, args, options) =>\n fromPromise(() =>\n r.invoke(toolId, args, effectToPromiseInvokeOptions(options)),\n ) as Effect.Effect<\n ToolInvocationResult,\n ToolNotFoundError | ToolInvocationError | ElicitationDeclinedError\n >,\n register: (tools) => fromPromiseDying(() => r.register(tools)),\n registerRuntime: (tools) => fromPromiseDying(() => r.registerRuntime(tools)),\n registerRuntimeHandler: (toolId, effectHandler) =>\n fromPromiseDying(() =>\n r.registerRuntimeHandler(toolId, toPromiseRuntimeHandler(effectHandler)),\n ),\n unregisterRuntime: (toolIds) => fromPromiseDying(() => r.unregisterRuntime(toolIds)),\n unregister: (toolIds) => fromPromiseDying(() => r.unregister(toolIds)),\n unregisterBySource: (sourceId) => fromPromiseDying(() => r.unregisterBySource(sourceId)),\n});\n\nconst toEffectSourceRegistry = (r: SourceRegistry): CoreSourceRegistryService => ({\n addManager: (manager) =>\n fromPromiseDying(() => r.addManager(toPromiseSourceManager(manager))),\n registerRuntime: (source) => fromPromiseDying(() => r.registerRuntime(source)),\n unregisterRuntime: (sourceId) => fromPromiseDying(() => r.unregisterRuntime(sourceId)),\n list: () => fromPromiseDying(() => r.list()),\n remove: (sourceId) => fromPromiseDying(() => r.remove(sourceId)),\n refresh: (sourceId) => fromPromiseDying(() => r.refresh(sourceId)),\n detect: (url) => fromPromiseDying(() => r.detect(url)),\n});\n\nconst toEffectSecretStore = (s: SecretStore): CoreSecretStoreService => ({\n list: (scopeId) => fromPromiseDying(() => s.list(scopeId)),\n get: (secretId) =>\n fromPromise(() => s.get(secretId)) as Effect.Effect<SecretRef, SecretNotFoundError>,\n resolve: (secretId, scopeId) =>\n fromPromise(() => s.resolve(secretId, scopeId)) as Effect.Effect<\n string,\n SecretNotFoundError | SecretResolutionError\n >,\n status: (secretId, scopeId) =>\n fromPromiseDying(() => s.status(secretId, scopeId)),\n set: (input) =>\n fromPromise(() => s.set(input)) as Effect.Effect<SecretRef, SecretResolutionError>,\n remove: (secretId) =>\n fromPromise(() => s.remove(secretId)) as Effect.Effect<boolean, SecretNotFoundError>,\n addProvider: (provider) =>\n fromPromiseDying(() => s.addProvider(toPromiseSecretProvider(provider))),\n providers: () => fromPromiseDying(() => s.providers()),\n});\n\nconst toEffectPolicyEngine = (p: PolicyEngine): CorePolicyEngineService => ({\n list: (scopeId) => fromPromiseDying(() => p.list(scopeId)),\n check: (input) =>\n fromPromise(() =>\n p.check({ scopeId: input.scopeId, toolId: input.toolId }),\n ) as Effect.Effect<void, PolicyDeniedError>,\n add: (policy) => fromPromiseDying(() => p.add(policy)),\n remove: (policyId) => fromPromiseDying(() => p.remove(policyId)),\n});\n\n// ---------------------------------------------------------------------------\n// Plugin context\n// ---------------------------------------------------------------------------\n\nexport interface PluginContext {\n readonly scope: Scope;\n readonly tools: ToolRegistry;\n readonly sources: SourceRegistry;\n readonly secrets: SecretStore;\n readonly policies: PolicyEngine;\n}\n\nexport interface ToolRegistry extends Omit<\n PromisifyService<CoreToolRegistryService>,\n 'list' | 'invoke' | 'registerInvoker' | 'registerRuntimeHandler'\n> {\n readonly list: (filter?: { sourceId?: string; query?: string }) => Promise<readonly ToolMetadata[]>;\n readonly invoke: (toolId: string, args: unknown, options: InvokeOptions) => Promise<ToolInvocationResult>;\n readonly registerInvoker: (pluginKey: string, invoker: ToolInvoker) => Promise<void>;\n readonly registerRuntimeHandler: (toolId: string, handler: RuntimeToolHandler) => Promise<void>;\n}\n\nexport interface SourceRegistry extends Omit<PromisifyService<CoreSourceRegistryService>, 'addManager'> {\n readonly addManager: (manager: SourceManager) => Promise<void>;\n}\n\nexport interface SecretStore extends Omit<PromisifyService<CoreSecretStoreService>, 'set' | 'addProvider'> {\n readonly set: (input: { readonly id: string; readonly scopeId: string; readonly name: string; readonly value: string; readonly provider?: string; readonly purpose?: string }) => Promise<SecretRef>;\n readonly addProvider: (provider: SecretProvider) => Promise<void>;\n}\n\nexport interface PolicyEngine extends Omit<PromisifyService<CorePolicyEngineService>, 'check'> {\n readonly check: (input: { scopeId: string; toolId: string }) => Promise<void>;\n}\n\nconst wrapPluginContext = (ctx: EffectPluginContext): PluginContext => ({\n scope: ctx.scope,\n tools: {\n list: (filter?) => run(ctx.tools.list(filter as any)),\n schema: (toolId) => run(ctx.tools.schema(toolId as ToolId)),\n invoke: (toolId, args, options) => run(ctx.tools.invoke(toolId as ToolId, args, toEffectInvokeOptions(options))),\n definitions: () => run(ctx.tools.definitions()),\n registerDefinitions: (defs) => run(ctx.tools.registerDefinitions(defs)),\n registerRuntimeDefinitions: (defs) => run(ctx.tools.registerRuntimeDefinitions(defs)),\n unregisterRuntimeDefinitions: (names) => run(ctx.tools.unregisterRuntimeDefinitions(names)),\n registerInvoker: (pluginKey, invoker) => run(ctx.tools.registerInvoker(pluginKey, toEffectInvoker(invoker))),\n resolveAnnotations: (toolId) => run(ctx.tools.resolveAnnotations(toolId as ToolId)),\n register: (tools) => run(ctx.tools.register(tools)),\n registerRuntime: (tools) => run(ctx.tools.registerRuntime(tools)),\n registerRuntimeHandler: (toolId, handler) => run(ctx.tools.registerRuntimeHandler(toolId as ToolId, toEffectRuntimeHandler(handler))),\n unregisterRuntime: (toolIds) => run(ctx.tools.unregisterRuntime(toolIds as readonly ToolId[])),\n unregister: (toolIds) => run(ctx.tools.unregister(toolIds as readonly ToolId[])),\n unregisterBySource: (sourceId) => run(ctx.tools.unregisterBySource(sourceId)),\n },\n sources: {\n addManager: (manager) => run(ctx.sources.addManager(toEffectSourceManager(manager))),\n registerRuntime: (source) => run(ctx.sources.registerRuntime(source)),\n unregisterRuntime: (sourceId) => run(ctx.sources.unregisterRuntime(sourceId)),\n list: () => run(ctx.sources.list()),\n remove: (sourceId) => run(ctx.sources.remove(sourceId)),\n refresh: (sourceId) => run(ctx.sources.refresh(sourceId)),\n detect: (url) => run(ctx.sources.detect(url)),\n },\n secrets: {\n list: (scopeId) => run(ctx.secrets.list(scopeId as ScopeIdType)),\n get: (secretId) => run(ctx.secrets.get(secretId as SecretId)),\n resolve: (secretId, scopeId) => run(ctx.secrets.resolve(secretId as SecretId, scopeId as ScopeIdType)),\n status: (secretId, scopeId) => run(ctx.secrets.status(secretId as SecretId, scopeId as ScopeIdType)),\n set: (input) => run(ctx.secrets.set(input as SetSecretInput)),\n remove: (secretId) => run(ctx.secrets.remove(secretId as SecretId)),\n addProvider: (provider) => run(ctx.secrets.addProvider(toEffectSecretProvider(provider))),\n providers: () => run(ctx.secrets.providers()),\n },\n policies: {\n list: (scopeId) => run(ctx.policies.list(scopeId as ScopeIdType)),\n check: (input) => run(ctx.policies.check(input as any)),\n add: (policy) => run(ctx.policies.add(policy)),\n remove: (policyId) => run(ctx.policies.remove(policyId as PolicyId)),\n },\n});\n\n// ---------------------------------------------------------------------------\n// Plugin definition\n// ---------------------------------------------------------------------------\n\nexport interface Plugin<TKey extends string = string, TExtension extends object = object> {\n readonly key: TKey;\n /** @internal */\n readonly _promise?: true;\n readonly init: (ctx: PluginContext) => Promise<PluginHandle<TExtension>>;\n}\n\nexport interface PluginHandle<TExtension extends object = object> {\n readonly extension: TExtension;\n readonly close?: () => Promise<void>;\n}\n\nexport const definePlugin = <const TKey extends string, TExtension extends object>(\n plugin: Plugin<TKey, TExtension>,\n): Plugin<TKey, TExtension> => ({ ...plugin, _promise: true as const });\n\nconst isPromisePlugin = (plugin: { _promise?: boolean }): boolean => plugin._promise === true;\n\nconst toEffectPlugin = <TKey extends string, TExtension extends object>(\n plugin: Plugin<TKey, TExtension>,\n): ExecutorPlugin<TKey, TExtension> => ({\n key: plugin.key,\n init: (ctx) =>\n fromPromise(async () => {\n const handle = await plugin.init(wrapPluginContext(ctx));\n return {\n extension: handle.extension,\n close: handle.close ? () => fromPromise(() => handle.close!()) as Effect.Effect<void> : undefined,\n };\n }) as Effect.Effect<any, Error>,\n});\n\n// ---------------------------------------------------------------------------\n// Executor type\n// ---------------------------------------------------------------------------\n\ntype Promisified<T> = T extends (...args: infer A) => Effect.Effect<infer R, infer _E>\n ? (...args: A) => Promise<R>\n : T extends object ? { readonly [K in keyof T]: Promisified<T[K]> } : T;\n\nexport type AnyPlugin = Plugin<string, object> | ExecutorPlugin<string, object>;\n\nexport type Executor<TPlugins extends readonly AnyPlugin[] = []> = {\n readonly scope: Scope;\n readonly tools: Pick<ToolRegistry, 'list' | 'schema' | 'definitions' | 'invoke'>;\n readonly sources: Pick<SourceRegistry, 'list' | 'remove' | 'refresh' | 'detect'>;\n readonly policies: {\n readonly list: () => Promise<readonly Policy[]>;\n readonly add: (policy: Omit<Policy, \"id\" | \"createdAt\">) => Promise<Policy>;\n readonly remove: (policyId: string) => Promise<boolean>;\n };\n readonly secrets: {\n readonly list: () => Promise<readonly SecretRef[]>;\n readonly resolve: (secretId: string) => Promise<string>;\n readonly status: (secretId: string) => Promise<\"resolved\" | \"missing\">;\n readonly set: (input: { readonly id: string; readonly name: string; readonly value: string; readonly provider?: string; readonly purpose?: string }) => Promise<SecretRef>;\n readonly remove: (secretId: string) => Promise<boolean>;\n readonly addProvider: (provider: SecretProvider) => Promise<void>;\n readonly providers: () => Promise<readonly string[]>;\n };\n readonly close: () => Promise<void>;\n} & PluginExtensions<TPlugins>;\n\ntype PluginExtensions<TPlugins extends readonly AnyPlugin[]> = {\n readonly [P in TPlugins[number] as P[\"key\"]]: P extends Plugin<string, infer TExt>\n ? TExt\n : P extends ExecutorPlugin<string, infer TExt> ? Promisified<TExt> : never;\n};\n\nfunction promisifyObject<T extends object>(obj: T): Promisified<T> {\n return new Proxy(obj, {\n get(target, prop, receiver) {\n const value = Reflect.get(target, prop, receiver);\n if (typeof value === \"function\") {\n return (...args: unknown[]) => {\n const result = value.apply(target, args);\n if (Effect.isEffect(result)) return run(result as Effect.Effect<unknown, unknown>);\n return result;\n };\n }\n if (value !== null && typeof value === \"object\" && !Array.isArray(value)) return promisifyObject(value as object);\n return value;\n },\n }) as Promisified<T>;\n}\n\n// ---------------------------------------------------------------------------\n// Config & createExecutor\n// ---------------------------------------------------------------------------\n\nexport interface ExecutorConfig<TPlugins extends readonly AnyPlugin[] = []> {\n readonly scope?: { readonly id?: string; readonly name?: string };\n readonly plugins?: TPlugins;\n /**\n * Custom tool registry implementation. Defaults to an in-memory store.\n * Implement the promise-shaped `ToolRegistry` interface to persist tool\n * metadata to a database, remote service, etc.\n */\n readonly tools?: ToolRegistry;\n /** Custom source registry implementation. Defaults to an in-memory store. */\n readonly sources?: SourceRegistry;\n /**\n * Custom secret store implementation. Defaults to an in-memory store.\n * For most use cases, prefer passing a custom `SecretProvider` via\n * `executor.secrets.addProvider(...)` — only replace the whole store if you\n * need to persist the `SecretRef` metadata itself.\n */\n readonly secrets?: SecretStore;\n /** Custom policy engine implementation. Defaults to an in-memory store. */\n readonly policies?: PolicyEngine;\n}\n\nconst KNOWN_KEYS = new Set([\"scope\", \"tools\", \"sources\", \"policies\", \"secrets\", \"close\"]);\n\nexport const createExecutor = async <const TPlugins extends readonly AnyPlugin[] = []>(\n config: ExecutorConfig<TPlugins> = {},\n): Promise<Executor<TPlugins>> => {\n const effectPlugins = (config.plugins ?? []).map((p) =>\n isPromisePlugin(p as any)\n ? toEffectPlugin(p as Plugin<string, object>)\n : (p as unknown as ExecutorPlugin<string, object>),\n );\n\n const effectConfig: EffectExecutorConfig<ExecutorPlugin<string, object>[]> = {\n scope: {\n id: ScopeId.make(config.scope?.id ?? \"default\"),\n name: config.scope?.name ?? \"default\",\n createdAt: new Date(),\n },\n tools: config.tools ? toEffectToolRegistry(config.tools) : makeInMemoryToolRegistry(),\n sources: config.sources\n ? toEffectSourceRegistry(config.sources)\n : makeInMemorySourceRegistry(),\n secrets: config.secrets ? toEffectSecretStore(config.secrets) : makeInMemorySecretStore(),\n policies: config.policies\n ? toEffectPolicyEngine(config.policies)\n : makeInMemoryPolicyEngine(),\n plugins: effectPlugins,\n };\n\n const executor = await run(createEffectExecutor(effectConfig));\n\n const base: Record<string, unknown> = {\n scope: executor.scope,\n tools: {\n list: (filter?: { sourceId?: string; query?: string }) => run(executor.tools.list(filter as any)),\n schema: (toolId: string) => run(executor.tools.schema(toolId)),\n definitions: () => run(executor.tools.definitions()),\n invoke: (toolId: string, args: unknown, options: InvokeOptions) =>\n run(executor.tools.invoke(toolId, args, toEffectInvokeOptions(options))),\n },\n sources: {\n list: () => run(executor.sources.list()),\n remove: (sourceId: string) => run(executor.sources.remove(sourceId)),\n refresh: (sourceId: string) => run(executor.sources.refresh(sourceId)),\n detect: (url: string) => run(executor.sources.detect(url)),\n },\n policies: {\n list: () => run(executor.policies.list()),\n add: (policy: Omit<Policy, \"id\" | \"createdAt\">) => run(executor.policies.add(policy)),\n remove: (policyId: string) => run(executor.policies.remove(policyId)),\n },\n secrets: {\n list: () => run(executor.secrets.list()),\n resolve: (secretId: string) => run(executor.secrets.resolve(secretId as SecretId)),\n status: (secretId: string) => run(executor.secrets.status(secretId as SecretId)),\n set: (input: { readonly id: string; readonly name: string; readonly value: string; readonly provider?: string; readonly purpose?: string }) =>\n run(executor.secrets.set(input as any)),\n remove: (secretId: string) => run(executor.secrets.remove(secretId as SecretId)),\n addProvider: (provider: SecretProvider) => run(executor.secrets.addProvider(toEffectSecretProvider(provider))),\n providers: () => run(executor.secrets.providers()),\n },\n close: () => run(executor.close()),\n };\n\n for (const key of Object.keys(executor)) {\n if (!KNOWN_KEYS.has(key)) {\n const ext = (executor as Record<string, unknown>)[key];\n if (ext !== null && typeof ext === \"object\") base[key] = promisifyObject(ext as object);\n else base[key] = ext;\n }\n }\n\n return base as Executor<TPlugins>;\n};\n"],"mappings":"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","names":["createExecutor"]}
|
|
1
|
+
{"version":3,"sources":["../src/promise-executor.ts"],"sourcesContent":["import { Context, Data, Effect } from \"effect\";\n\nimport {\n createExecutor as createEffectExecutor,\n ElicitationResponse as ElicitationResponseClass,\n makeInMemoryToolRegistry,\n makeInMemorySecretStore,\n makeInMemoryPolicyEngine,\n makeInMemorySourceRegistry,\n ScopeId,\n ToolId,\n SecretId,\n PolicyId,\n type ToolRegistry as CoreToolRegistry,\n type SourceRegistry as CoreSourceRegistry,\n type SecretStore as CoreSecretStore,\n type PolicyEngine as CorePolicyEngine,\n type ExecutorConfig as EffectExecutorConfig,\n type ExecutorPlugin,\n type PluginContext as EffectPluginContext,\n type PluginHandle as EffectPluginHandle,\n type ElicitationContext,\n type InvokeOptions as EffectInvokeOptions,\n type ToolInvocationResult,\n type ToolMetadata,\n type ToolAnnotations,\n type ToolSchema,\n type ToolInvoker as EffectToolInvoker,\n type RuntimeToolHandler as EffectRuntimeToolHandler,\n type SourceManager as EffectSourceManager,\n type Policy,\n type SecretRef,\n type SecretProvider as EffectSecretProvider,\n type SetSecretInput,\n type Scope,\n type ToolId as ToolIdType,\n type SecretId as SecretIdType,\n type ScopeId as ScopeIdType,\n type PolicyId as PolicyIdType,\n type ToolNotFoundError,\n type ToolInvocationError,\n type SecretNotFoundError,\n type SecretResolutionError,\n type PolicyDeniedError,\n type ElicitationDeclinedError,\n ToolListFilter,\n PolicyCheckInput,\n} from \"./index\";\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\nconst run = <A, E>(effect: Effect.Effect<A, E>): Promise<A> =>\n Effect.runPromise(effect as Effect.Effect<A, never>);\n\n/**\n * Tagged error produced by the Promise→Effect adapter layer. User-supplied\n * Promise-based store implementations can reject with anything; we wrap the\n * raw rejection in `cause` so downstream code can inspect or re-throw it.\n */\nclass PromiseAdapterError extends Data.TaggedError(\"PromiseAdapterError\")<{\n readonly cause: unknown;\n}> {}\n\nconst fromPromise = <A>(fn: () => Promise<A>): Effect.Effect<A, PromiseAdapterError> =>\n Effect.tryPromise({\n try: fn,\n catch: (cause) => new PromiseAdapterError({ cause }),\n });\n\n/**\n * Wrap a promise-returning function as an Effect whose error channel is\n * `never`. Unexpected rejections become unhandled defects. Used by the store\n * adapters where the Effect-layer service interface forbids a typed error\n * channel.\n */\nconst fromPromiseDying = <A>(fn: () => Promise<A>): Effect.Effect<A, never> =>\n Effect.orDie(fromPromise(fn));\n\n/**\n * Wrap a promise-returning function as an Effect whose error channel contains\n * only the expected tagged errors listed in `tags`. If the promise rejects\n * with anything whose `_tag` isn't in the list, the rejection becomes an\n * unhandled defect — users of the promise-shaped store interfaces are expected\n * to throw the documented tagged error types from core.\n */\nconst fromPromiseTagged = <E extends { readonly _tag: string }, A>(\n fn: () => Promise<A>,\n tags: readonly E[\"_tag\"][],\n): Effect.Effect<A, E> =>\n fromPromise(fn).pipe(\n Effect.catchAll((err) => {\n const cause = err.cause;\n if (\n cause !== null &&\n typeof cause === \"object\" &&\n \"_tag\" in cause &&\n typeof (cause as { _tag: unknown })._tag === \"string\" &&\n (tags as readonly string[]).includes((cause as { _tag: string })._tag)\n ) {\n return Effect.fail(cause as E);\n }\n return Effect.die(cause);\n }),\n );\n\n// ---------------------------------------------------------------------------\n// Type derivation — derive Promise-based SDK types from core Effect types\n// ---------------------------------------------------------------------------\n\n/** Replace branded IDs with plain strings in parameter types */\ntype UnbrandParam<T> = T extends ToolIdType\n ? string\n : T extends SecretIdType\n ? string\n : T extends ScopeIdType\n ? string\n : T extends PolicyIdType\n ? string\n : T extends readonly (infer U)[]\n ? readonly UnbrandParam<U>[]\n : T;\n\n/** Convert an Effect service interface to Promise-based, unbranding ID params */\ntype PromisifyService<T> = {\n readonly [K in keyof T]: NonNullable<T[K]> extends (\n ...args: infer A\n ) => Effect.Effect<infer R, infer _E>\n ? (...args: { [I in keyof A]: UnbrandParam<A[I]> }) => Promise<R>\n : T[K];\n};\n\ntype CoreToolRegistryService = Context.Tag.Service<typeof CoreToolRegistry>;\ntype CoreSourceRegistryService = Context.Tag.Service<typeof CoreSourceRegistry>;\ntype CoreSecretStoreService = Context.Tag.Service<typeof CoreSecretStore>;\ntype CorePolicyEngineService = Context.Tag.Service<typeof CorePolicyEngine>;\n\n// ---------------------------------------------------------------------------\n// Elicitation\n// ---------------------------------------------------------------------------\n\nexport interface ElicitationResponse {\n readonly action: \"accept\" | \"decline\" | \"cancel\";\n readonly content?: Record<string, unknown>;\n}\n\nexport type ElicitationHandler = (ctx: ElicitationContext) => Promise<ElicitationResponse>;\n\nexport interface InvokeOptions {\n readonly onElicitation: ElicitationHandler | \"accept-all\";\n}\n\nconst toEffectElicitationHandler = (handler: ElicitationHandler) => (ctx: ElicitationContext) =>\n fromPromise(() => handler(ctx)).pipe(\n Effect.map(\n (r) =>\n new ElicitationResponseClass({\n action: r.action,\n content: r.content,\n }),\n ),\n Effect.catchAll((e) => Effect.die(e.cause)),\n );\n\nconst toEffectInvokeOptions = (options: InvokeOptions): EffectInvokeOptions => ({\n onElicitation:\n options.onElicitation === \"accept-all\"\n ? (\"accept-all\" as const)\n : toEffectElicitationHandler(options.onElicitation),\n});\n\n// ---------------------------------------------------------------------------\n// Plugin callback types\n// ---------------------------------------------------------------------------\n\nexport interface ToolInvoker {\n readonly invoke: (\n toolId: string,\n args: unknown,\n options: InvokeOptions,\n ) => Promise<ToolInvocationResult>;\n readonly resolveAnnotations?: (toolId: string) => Promise<ToolAnnotations | undefined>;\n}\n\nexport interface RuntimeToolHandler {\n readonly invoke: (args: unknown, options: InvokeOptions) => Promise<ToolInvocationResult>;\n readonly resolveAnnotations?: () => Promise<ToolAnnotations | undefined>;\n}\n\nexport type SourceManager = PromisifyService<EffectSourceManager>;\n\nexport type SecretProvider = PromisifyService<EffectSecretProvider>;\n\n// --- Adapters ---\n\nconst effectToPromiseInvokeOptions = (options?: EffectInvokeOptions): InvokeOptions => {\n if (!options || options.onElicitation === \"accept-all\") return { onElicitation: \"accept-all\" };\n const handler = options.onElicitation;\n return {\n onElicitation: async (ctx) => {\n const r = await run(handler(ctx));\n return { action: r.action, content: r.content ?? undefined };\n },\n };\n};\n\nconst toEffectInvoker = (invoker: ToolInvoker): EffectToolInvoker => ({\n invoke: (toolId, args, options) =>\n fromPromiseTagged<ToolInvocationError | ElicitationDeclinedError, ToolInvocationResult>(\n () => invoker.invoke(toolId, args, effectToPromiseInvokeOptions(options)),\n [\"ToolInvocationError\", \"ElicitationDeclinedError\"],\n ),\n resolveAnnotations: invoker.resolveAnnotations\n ? (toolId) => fromPromiseDying(() => invoker.resolveAnnotations!(toolId))\n : undefined,\n});\n\nconst toEffectRuntimeHandler = (handler: RuntimeToolHandler): EffectRuntimeToolHandler => ({\n invoke: (args, options) =>\n fromPromiseTagged<ToolInvocationError | ElicitationDeclinedError, ToolInvocationResult>(\n () => handler.invoke(args, effectToPromiseInvokeOptions(options)),\n [\"ToolInvocationError\", \"ElicitationDeclinedError\"],\n ),\n resolveAnnotations: handler.resolveAnnotations\n ? () => fromPromiseDying(() => handler.resolveAnnotations!())\n : undefined,\n});\n\nconst toEffectSourceManager = (manager: SourceManager): EffectSourceManager => ({\n kind: manager.kind,\n list: () => fromPromiseDying(() => manager.list()),\n remove: (sourceId) => fromPromiseDying(() => manager.remove(sourceId)),\n refresh: manager.refresh\n ? (sourceId) => fromPromiseDying(() => manager.refresh!(sourceId))\n : undefined,\n detect: manager.detect ? (url) => fromPromiseDying(() => manager.detect!(url)) : undefined,\n});\n\nconst toEffectSecretProvider = (provider: SecretProvider): EffectSecretProvider => ({\n key: provider.key,\n writable: provider.writable,\n get: (key) => fromPromiseDying(() => provider.get(key)),\n set: provider.set ? (key, value) => fromPromiseDying(() => provider.set!(key, value)) : undefined,\n delete: provider.delete ? (key) => fromPromiseDying(() => provider.delete!(key)) : undefined,\n list: provider.list ? () => fromPromiseDying(() => provider.list!()) : undefined,\n});\n\n// --- Reverse adapters (Effect -> Promise) for callbacks handed to user stores ---\n//\n// When the Effect core hands us an Effect-shaped ToolInvoker / ToolHandler /\n// SourceManager / SecretProvider (e.g. from a plugin), we need to convert it\n// into the promise-shaped equivalent before passing it to a user-supplied\n// promise-based store implementation.\n\nconst toPromiseInvoker = (invoker: EffectToolInvoker): ToolInvoker => ({\n invoke: (toolId, args, options) =>\n run(\n invoker.invoke(ToolId.make(toolId), args, toEffectInvokeOptions(options)),\n ) as Promise<ToolInvocationResult>,\n resolveAnnotations: invoker.resolveAnnotations\n ? (toolId) => run(invoker.resolveAnnotations!(ToolId.make(toolId)))\n : undefined,\n});\n\nconst toPromiseRuntimeHandler = (handler: EffectRuntimeToolHandler): RuntimeToolHandler => ({\n invoke: (args, options) =>\n run(handler.invoke(args, toEffectInvokeOptions(options))) as Promise<ToolInvocationResult>,\n resolveAnnotations: handler.resolveAnnotations\n ? () => run(handler.resolveAnnotations!())\n : undefined,\n});\n\nconst toPromiseSourceManager = (manager: EffectSourceManager): SourceManager => ({\n kind: manager.kind,\n list: () => run(manager.list()),\n remove: (sourceId) => run(manager.remove(sourceId)),\n refresh: manager.refresh ? (sourceId) => run(manager.refresh!(sourceId)) : undefined,\n detect: manager.detect ? (url) => run(manager.detect!(url)) : undefined,\n});\n\nconst toPromiseSecretProvider = (provider: EffectSecretProvider): SecretProvider => ({\n key: provider.key,\n writable: provider.writable,\n get: (key) => run(provider.get(key)),\n set: provider.set ? (key, value) => run(provider.set!(key, value)) : undefined,\n delete: provider.delete ? (key) => run(provider.delete!(key)) : undefined,\n list: provider.list ? () => run(provider.list!()) : undefined,\n});\n\n// --- Main store adapters (Promise -> Effect) ---\n//\n// Users implementing a pluggable store (e.g. a Postgres-backed tool registry)\n// write against the promise-shaped ToolRegistry / SourceRegistry / SecretStore\n// / PolicyEngine interfaces declared below. These adapters wrap the user impl\n// so the Effect core layer sees a native Effect service.\n\nconst toEffectToolRegistry = (r: ToolRegistry): CoreToolRegistryService => ({\n list: (filter) => fromPromiseDying(() => r.list(filter)),\n schema: (toolId) =>\n fromPromiseTagged<ToolNotFoundError, ToolSchema>(() => r.schema(toolId), [\"ToolNotFoundError\"]),\n definitions: () => fromPromiseDying(() => r.definitions()),\n registerDefinitions: (defs) => fromPromiseDying(() => r.registerDefinitions(defs)),\n registerRuntimeDefinitions: (defs) => fromPromiseDying(() => r.registerRuntimeDefinitions(defs)),\n unregisterRuntimeDefinitions: (names) =>\n fromPromiseDying(() => r.unregisterRuntimeDefinitions(names)),\n registerInvoker: (pluginKey, effectInvoker) =>\n fromPromiseDying(() => r.registerInvoker(pluginKey, toPromiseInvoker(effectInvoker))),\n resolveAnnotations: (toolId) => fromPromiseDying(() => r.resolveAnnotations(toolId)),\n invoke: (toolId, args, options) =>\n fromPromiseTagged<\n ToolNotFoundError | ToolInvocationError | ElicitationDeclinedError,\n ToolInvocationResult\n >(\n () => r.invoke(toolId, args, effectToPromiseInvokeOptions(options)),\n [\"ToolNotFoundError\", \"ToolInvocationError\", \"ElicitationDeclinedError\"],\n ),\n register: (tools) => fromPromiseDying(() => r.register(tools)),\n registerRuntime: (tools) => fromPromiseDying(() => r.registerRuntime(tools)),\n registerRuntimeHandler: (toolId, effectHandler) =>\n fromPromiseDying(() =>\n r.registerRuntimeHandler(toolId, toPromiseRuntimeHandler(effectHandler)),\n ),\n unregisterRuntime: (toolIds) => fromPromiseDying(() => r.unregisterRuntime(toolIds)),\n unregister: (toolIds) => fromPromiseDying(() => r.unregister(toolIds)),\n unregisterBySource: (sourceId) => fromPromiseDying(() => r.unregisterBySource(sourceId)),\n});\n\nconst toEffectSourceRegistry = (r: SourceRegistry): CoreSourceRegistryService => ({\n addManager: (manager) => fromPromiseDying(() => r.addManager(toPromiseSourceManager(manager))),\n registerRuntime: (source) => fromPromiseDying(() => r.registerRuntime(source)),\n unregisterRuntime: (sourceId) => fromPromiseDying(() => r.unregisterRuntime(sourceId)),\n list: () => fromPromiseDying(() => r.list()),\n remove: (sourceId) => fromPromiseDying(() => r.remove(sourceId)),\n refresh: (sourceId) => fromPromiseDying(() => r.refresh(sourceId)),\n detect: (url) => fromPromiseDying(() => r.detect(url)),\n});\n\nconst toEffectSecretStore = (s: SecretStore): CoreSecretStoreService => ({\n list: (scopeId) => fromPromiseDying(() => s.list(scopeId)),\n get: (secretId) =>\n fromPromiseTagged<SecretNotFoundError, SecretRef>(\n () => s.get(secretId),\n [\"SecretNotFoundError\"],\n ),\n resolve: (secretId, scopeId) =>\n fromPromiseTagged<SecretNotFoundError | SecretResolutionError, string>(\n () => s.resolve(secretId, scopeId),\n [\"SecretNotFoundError\", \"SecretResolutionError\"],\n ),\n status: (secretId, scopeId) => fromPromiseDying(() => s.status(secretId, scopeId)),\n set: (input) =>\n fromPromiseTagged<SecretResolutionError, SecretRef>(\n () => s.set(input),\n [\"SecretResolutionError\"],\n ),\n remove: (secretId) =>\n fromPromiseTagged<SecretNotFoundError, boolean>(\n () => s.remove(secretId),\n [\"SecretNotFoundError\"],\n ),\n addProvider: (provider) =>\n fromPromiseDying(() => s.addProvider(toPromiseSecretProvider(provider))),\n providers: () => fromPromiseDying(() => s.providers()),\n});\n\nconst toEffectPolicyEngine = (p: PolicyEngine): CorePolicyEngineService => ({\n list: (scopeId) => fromPromiseDying(() => p.list(scopeId)),\n check: (input) =>\n fromPromiseTagged<PolicyDeniedError, void>(\n () => p.check({ scopeId: input.scopeId, toolId: input.toolId }),\n [\"PolicyDeniedError\"],\n ),\n add: (policy) => fromPromiseDying(() => p.add(policy)),\n remove: (policyId) => fromPromiseDying(() => p.remove(policyId)),\n});\n\n// ---------------------------------------------------------------------------\n// Plugin context\n// ---------------------------------------------------------------------------\n\nexport interface PluginContext {\n readonly scope: Scope;\n readonly tools: ToolRegistry;\n readonly sources: SourceRegistry;\n readonly secrets: SecretStore;\n readonly policies: PolicyEngine;\n}\n\nexport interface ToolRegistry extends Omit<\n PromisifyService<CoreToolRegistryService>,\n \"list\" | \"invoke\" | \"registerInvoker\" | \"registerRuntimeHandler\"\n> {\n readonly list: (filter?: {\n sourceId?: string;\n query?: string;\n }) => Promise<readonly ToolMetadata[]>;\n readonly invoke: (\n toolId: string,\n args: unknown,\n options: InvokeOptions,\n ) => Promise<ToolInvocationResult>;\n readonly registerInvoker: (pluginKey: string, invoker: ToolInvoker) => Promise<void>;\n readonly registerRuntimeHandler: (toolId: string, handler: RuntimeToolHandler) => Promise<void>;\n}\n\nexport interface SourceRegistry extends Omit<\n PromisifyService<CoreSourceRegistryService>,\n \"addManager\"\n> {\n readonly addManager: (manager: SourceManager) => Promise<void>;\n}\n\nexport interface SecretStore extends Omit<\n PromisifyService<CoreSecretStoreService>,\n \"set\" | \"addProvider\"\n> {\n readonly set: (input: {\n readonly id: string;\n readonly scopeId: string;\n readonly name: string;\n readonly value: string;\n readonly provider?: string;\n readonly purpose?: string;\n }) => Promise<SecretRef>;\n readonly addProvider: (provider: SecretProvider) => Promise<void>;\n}\n\nexport interface PolicyEngine extends Omit<PromisifyService<CorePolicyEngineService>, \"check\"> {\n readonly check: (input: { scopeId: string; toolId: string }) => Promise<void>;\n}\n\nconst wrapPluginContext = (ctx: EffectPluginContext): PluginContext => ({\n scope: ctx.scope,\n tools: {\n list: (filter?) => run(ctx.tools.list(filter ? new ToolListFilter(filter) : undefined)),\n schema: (toolId) => run(ctx.tools.schema(ToolId.make(toolId))),\n invoke: (toolId, args, options) =>\n run(ctx.tools.invoke(ToolId.make(toolId), args, toEffectInvokeOptions(options))),\n definitions: () => run(ctx.tools.definitions()),\n registerDefinitions: (defs) => run(ctx.tools.registerDefinitions(defs)),\n registerRuntimeDefinitions: (defs) => run(ctx.tools.registerRuntimeDefinitions(defs)),\n unregisterRuntimeDefinitions: (names) => run(ctx.tools.unregisterRuntimeDefinitions(names)),\n registerInvoker: (pluginKey, invoker) =>\n run(ctx.tools.registerInvoker(pluginKey, toEffectInvoker(invoker))),\n resolveAnnotations: (toolId) => run(ctx.tools.resolveAnnotations(ToolId.make(toolId))),\n register: (tools) => run(ctx.tools.register(tools)),\n registerRuntime: (tools) => run(ctx.tools.registerRuntime(tools)),\n registerRuntimeHandler: (toolId, handler) =>\n run(ctx.tools.registerRuntimeHandler(ToolId.make(toolId), toEffectRuntimeHandler(handler))),\n unregisterRuntime: (toolIds) =>\n run(ctx.tools.unregisterRuntime(toolIds.map((id) => ToolId.make(id)))),\n unregister: (toolIds) => run(ctx.tools.unregister(toolIds.map((id) => ToolId.make(id)))),\n unregisterBySource: (sourceId) => run(ctx.tools.unregisterBySource(sourceId)),\n },\n sources: {\n addManager: (manager) => run(ctx.sources.addManager(toEffectSourceManager(manager))),\n registerRuntime: (source) => run(ctx.sources.registerRuntime(source)),\n unregisterRuntime: (sourceId) => run(ctx.sources.unregisterRuntime(sourceId)),\n list: () => run(ctx.sources.list()),\n remove: (sourceId) => run(ctx.sources.remove(sourceId)),\n refresh: (sourceId) => run(ctx.sources.refresh(sourceId)),\n detect: (url) => run(ctx.sources.detect(url)),\n },\n secrets: {\n list: (scopeId) => run(ctx.secrets.list(ScopeId.make(scopeId))),\n get: (secretId) => run(ctx.secrets.get(SecretId.make(secretId))),\n resolve: (secretId, scopeId) =>\n run(ctx.secrets.resolve(SecretId.make(secretId), ScopeId.make(scopeId))),\n status: (secretId, scopeId) =>\n run(ctx.secrets.status(SecretId.make(secretId), ScopeId.make(scopeId))),\n set: (input) => run(ctx.secrets.set(input as SetSecretInput)),\n remove: (secretId) => run(ctx.secrets.remove(SecretId.make(secretId))),\n addProvider: (provider) => run(ctx.secrets.addProvider(toEffectSecretProvider(provider))),\n providers: () => run(ctx.secrets.providers()),\n },\n policies: {\n list: (scopeId) => run(ctx.policies.list(ScopeId.make(scopeId))),\n check: (input) =>\n run(\n ctx.policies.check(\n new PolicyCheckInput({\n scopeId: ScopeId.make(input.scopeId),\n toolId: ToolId.make(input.toolId),\n }),\n ),\n ),\n add: (policy) => run(ctx.policies.add(policy)),\n remove: (policyId) => run(ctx.policies.remove(PolicyId.make(policyId))),\n },\n});\n\n// ---------------------------------------------------------------------------\n// Plugin definition\n// ---------------------------------------------------------------------------\n\nexport interface Plugin<TKey extends string = string, TExtension extends object = object> {\n readonly key: TKey;\n /** @internal */\n readonly _promise?: true;\n readonly init: (ctx: PluginContext) => Promise<PluginHandle<TExtension>>;\n}\n\nexport interface PluginHandle<TExtension extends object = object> {\n readonly extension: TExtension;\n readonly close?: () => Promise<void>;\n}\n\nexport const definePlugin = <const TKey extends string, TExtension extends object>(\n plugin: Plugin<TKey, TExtension>,\n): Plugin<TKey, TExtension> => ({ ...plugin, _promise: true as const });\n\nconst isPromisePlugin = (plugin: { _promise?: boolean }): boolean => plugin._promise === true;\n\nconst toEffectPlugin = <TKey extends string, TExtension extends object>(\n plugin: Plugin<TKey, TExtension>,\n): ExecutorPlugin<TKey, TExtension> => ({\n key: plugin.key,\n init: (ctx) =>\n fromPromise(async () => {\n const handle = await plugin.init(wrapPluginContext(ctx));\n return {\n extension: handle.extension,\n close: handle.close\n ? () => fromPromise(() => handle.close!()) as Effect.Effect<void>\n : undefined,\n };\n }) as Effect.Effect<EffectPluginHandle<TExtension>, PromiseAdapterError>,\n});\n\n// ---------------------------------------------------------------------------\n// Executor type\n// ---------------------------------------------------------------------------\n\ntype Promisified<T> = T extends (...args: infer A) => Effect.Effect<infer R, infer _E>\n ? (...args: A) => Promise<R>\n : T extends object\n ? { readonly [K in keyof T]: Promisified<T[K]> }\n : T;\n\nexport type AnyPlugin = Plugin<string, object> | ExecutorPlugin<string, object>;\n\nexport type Executor<TPlugins extends readonly AnyPlugin[] = []> = {\n readonly scope: Scope;\n readonly tools: Pick<ToolRegistry, \"list\" | \"schema\" | \"definitions\" | \"invoke\">;\n readonly sources: Pick<SourceRegistry, \"list\" | \"remove\" | \"refresh\" | \"detect\">;\n readonly policies: {\n readonly list: () => Promise<readonly Policy[]>;\n readonly add: (policy: Omit<Policy, \"id\" | \"createdAt\">) => Promise<Policy>;\n readonly remove: (policyId: string) => Promise<boolean>;\n };\n readonly secrets: {\n readonly list: () => Promise<readonly SecretRef[]>;\n readonly resolve: (secretId: string) => Promise<string>;\n readonly status: (secretId: string) => Promise<\"resolved\" | \"missing\">;\n readonly set: (input: {\n readonly id: string;\n readonly name: string;\n readonly value: string;\n readonly provider?: string;\n readonly purpose?: string;\n }) => Promise<SecretRef>;\n readonly remove: (secretId: string) => Promise<boolean>;\n readonly addProvider: (provider: SecretProvider) => Promise<void>;\n readonly providers: () => Promise<readonly string[]>;\n };\n readonly close: () => Promise<void>;\n} & PluginExtensions<TPlugins>;\n\ntype PluginExtensions<TPlugins extends readonly AnyPlugin[]> = {\n readonly [P in TPlugins[number] as P[\"key\"]]: P extends Plugin<string, infer TExt>\n ? TExt\n : P extends ExecutorPlugin<string, infer TExt>\n ? Promisified<TExt>\n : never;\n};\n\nfunction promisifyObject<T extends object>(obj: T): Promisified<T> {\n return new Proxy(obj, {\n get(target, prop, receiver) {\n const value = Reflect.get(target, prop, receiver);\n if (typeof value === \"function\") {\n return (...args: unknown[]) => {\n const result = value.apply(target, args);\n if (Effect.isEffect(result)) return run(result as Effect.Effect<unknown, unknown>);\n return result;\n };\n }\n if (value !== null && typeof value === \"object\" && !Array.isArray(value))\n return promisifyObject(value as object);\n return value;\n },\n }) as Promisified<T>;\n}\n\n// ---------------------------------------------------------------------------\n// Config & createExecutor\n// ---------------------------------------------------------------------------\n\nexport interface ExecutorConfig<TPlugins extends readonly AnyPlugin[] = []> {\n readonly scope?: { readonly id?: string; readonly name?: string };\n readonly plugins?: TPlugins;\n /**\n * Custom tool registry implementation. Defaults to an in-memory store.\n * Implement the promise-shaped `ToolRegistry` interface to persist tool\n * metadata to a database, remote service, etc.\n */\n readonly tools?: ToolRegistry;\n /** Custom source registry implementation. Defaults to an in-memory store. */\n readonly sources?: SourceRegistry;\n /**\n * Custom secret store implementation. Defaults to an in-memory store.\n * For most use cases, prefer passing a custom `SecretProvider` via\n * `executor.secrets.addProvider(...)` — only replace the whole store if you\n * need to persist the `SecretRef` metadata itself.\n */\n readonly secrets?: SecretStore;\n /** Custom policy engine implementation. Defaults to an in-memory store. */\n readonly policies?: PolicyEngine;\n}\n\nconst KNOWN_KEYS = new Set([\"scope\", \"tools\", \"sources\", \"policies\", \"secrets\", \"close\"]);\n\nexport const createExecutor = async <const TPlugins extends readonly AnyPlugin[] = []>(\n config: ExecutorConfig<TPlugins> = {},\n): Promise<Executor<TPlugins>> => {\n const effectPlugins = (config.plugins ?? []).map((p) =>\n isPromisePlugin(p as { _promise?: boolean })\n ? toEffectPlugin(p as Plugin<string, object>)\n : (p as unknown as ExecutorPlugin<string, object>),\n );\n\n const effectConfig: EffectExecutorConfig<ExecutorPlugin<string, object>[]> = {\n scope: {\n id: ScopeId.make(config.scope?.id ?? \"default\"),\n name: config.scope?.name ?? \"default\",\n createdAt: new Date(),\n },\n tools: config.tools ? toEffectToolRegistry(config.tools) : makeInMemoryToolRegistry(),\n sources: config.sources ? toEffectSourceRegistry(config.sources) : makeInMemorySourceRegistry(),\n secrets: config.secrets ? toEffectSecretStore(config.secrets) : makeInMemorySecretStore(),\n policies: config.policies ? toEffectPolicyEngine(config.policies) : makeInMemoryPolicyEngine(),\n plugins: effectPlugins,\n };\n\n const executor = await run(createEffectExecutor(effectConfig));\n\n const base: Record<string, unknown> = {\n scope: executor.scope,\n tools: {\n list: (filter?: { sourceId?: string; query?: string }) =>\n run(executor.tools.list(filter ? new ToolListFilter(filter) : undefined)),\n schema: (toolId: string) => run(executor.tools.schema(toolId)),\n definitions: () => run(executor.tools.definitions()),\n invoke: (toolId: string, args: unknown, options: InvokeOptions) =>\n run(executor.tools.invoke(toolId, args, toEffectInvokeOptions(options))),\n },\n sources: {\n list: () => run(executor.sources.list()),\n remove: (sourceId: string) => run(executor.sources.remove(sourceId)),\n refresh: (sourceId: string) => run(executor.sources.refresh(sourceId)),\n detect: (url: string) => run(executor.sources.detect(url)),\n },\n policies: {\n list: () => run(executor.policies.list()),\n add: (policy: Omit<Policy, \"id\" | \"createdAt\">) => run(executor.policies.add(policy)),\n remove: (policyId: string) => run(executor.policies.remove(policyId)),\n },\n secrets: {\n list: () => run(executor.secrets.list()),\n resolve: (secretId: string) => run(executor.secrets.resolve(SecretId.make(secretId))),\n status: (secretId: string) => run(executor.secrets.status(SecretId.make(secretId))),\n set: (input: {\n readonly id: string;\n readonly name: string;\n readonly value: string;\n readonly provider?: string;\n readonly purpose?: string;\n }) => run(executor.secrets.set({ ...input, id: SecretId.make(input.id) })),\n remove: (secretId: string) => run(executor.secrets.remove(SecretId.make(secretId))),\n addProvider: (provider: SecretProvider) =>\n run(executor.secrets.addProvider(toEffectSecretProvider(provider))),\n providers: () => run(executor.secrets.providers()),\n },\n close: () => run(executor.close()),\n };\n\n for (const key of Object.keys(executor)) {\n if (!KNOWN_KEYS.has(key)) {\n const ext = (executor as Record<string, unknown>)[key];\n if (ext !== null && typeof ext === \"object\") base[key] = promisifyObject(ext as object);\n else base[key] = ext;\n }\n }\n\n return base as Executor<TPlugins>;\n};\n"],"mappings":"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","names":["createExecutor"]}
|
package/dist/plugin-kv.d.ts
CHANGED
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
import { Effect } from "effect";
|
|
2
|
+
export interface KvEntry {
|
|
3
|
+
readonly key: string;
|
|
4
|
+
readonly value: string;
|
|
5
|
+
}
|
|
2
6
|
/**
|
|
3
7
|
* Global KV — requires a namespace on every call.
|
|
4
8
|
* Implementations: makeSqliteKv, makeInMemoryKv
|
|
5
9
|
*/
|
|
6
10
|
export interface Kv {
|
|
7
11
|
readonly get: (namespace: string, key: string) => Effect.Effect<string | null>;
|
|
8
|
-
|
|
9
|
-
readonly
|
|
12
|
+
/** Batch upsert — inserts or updates one or more key-value pairs. */
|
|
13
|
+
readonly set: (namespace: string, entries: readonly KvEntry[]) => Effect.Effect<void>;
|
|
14
|
+
/** Batch delete — removes one or more keys. */
|
|
15
|
+
readonly delete: (namespace: string, keys: readonly string[]) => Effect.Effect<number>;
|
|
10
16
|
readonly list: (namespace: string) => Effect.Effect<readonly {
|
|
11
17
|
key: string;
|
|
12
18
|
value: string;
|
|
@@ -20,8 +26,10 @@ export interface Kv {
|
|
|
20
26
|
*/
|
|
21
27
|
export interface ScopedKv {
|
|
22
28
|
readonly get: (key: string) => Effect.Effect<string | null>;
|
|
23
|
-
|
|
24
|
-
readonly
|
|
29
|
+
/** Batch upsert — inserts or updates one or more key-value pairs. */
|
|
30
|
+
readonly set: (entries: readonly KvEntry[]) => Effect.Effect<void>;
|
|
31
|
+
/** Batch delete — removes one or more keys. */
|
|
32
|
+
readonly delete: (keys: readonly string[]) => Effect.Effect<number>;
|
|
25
33
|
readonly list: () => Effect.Effect<readonly {
|
|
26
34
|
key: string;
|
|
27
35
|
value: string;
|
package/dist/plugin-kv.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-kv.d.ts","sourceRoot":"","sources":["../src/plugin-kv.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC;;;GAGG;AACH,MAAM,WAAW,EAAE;IACjB,QAAQ,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC/E,QAAQ,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"plugin-kv.d.ts","sourceRoot":"","sources":["../src/plugin-kv.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,EAAE;IACjB,QAAQ,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC/E,qEAAqE;IACrE,QAAQ,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,OAAO,EAAE,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtF,+CAA+C;IAC/C,QAAQ,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACvF,QAAQ,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC,CAAC;IAC/F,QAAQ,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACjE,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,KAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;CACjC;AAED;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC5D,qEAAqE;IACrE,QAAQ,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,SAAS,OAAO,EAAE,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACnE,+CAA+C;IAC/C,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACpE,QAAQ,CAAC,IAAI,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC,CAAC;IAC9E,QAAQ,CAAC,SAAS,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAChD,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,KAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;CACjC;AAED;;GAEG;AACH,eAAO,MAAM,OAAO,GAAI,IAAI,EAAE,EAAE,WAAW,MAAM,KAAG,QAOlD,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB,QAAO,QAuBvC,CAAC"}
|
package/dist/plugin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAMrC,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,YAAY,CAAC,CAAC;IACzD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,cAAc,CAAC,CAAC;IAC7D,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC;IAC1D,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,YAAY,CAAC,CAAC;CAC7D;AAMD,MAAM,WAAW,cAAc,
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAMrC,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,YAAY,CAAC,CAAC;IACzD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,cAAc,CAAC,CAAC;IAC7D,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC;IAC1D,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,YAAY,CAAC,CAAC;CAC7D;AAMD,MAAM,WAAW,cAAc,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM,EAAE,UAAU,SAAS,MAAM,GAAG,MAAM;IAC9F,kEAAkE;IAClE,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;IAEnB;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC;CACvF;AAED,MAAM,WAAW,YAAY,CAAC,UAAU,SAAS,MAAM,GAAG,MAAM;IAC9D,8EAA8E;IAC9E,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;IAC/B,0CAA0C;IAC1C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;CAC5C;AAMD,sEAAsE;AACtE,MAAM,MAAM,gBAAgB,CAAC,QAAQ,SAAS,SAAS,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI;IACzF,QAAQ,EAAE,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,cAAc,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,GACtF,IAAI,GACJ,KAAK;CACV,CAAC;AAGF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAMtC,eAAO,MAAM,YAAY,GAAI,KAAK,CAAC,IAAI,SAAS,MAAM,EAAE,UAAU,SAAS,MAAM,EAC/E,QAAQ,cAAc,CAAC,IAAI,EAAE,UAAU,CAAC,KACvC,cAAc,CAAC,IAAI,EAAE,UAAU,CAAW,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"in-memory-tools.d.ts","sourceRoot":"","sources":["../../src/plugins/in-memory-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAc,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAGvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAO5C,OAAO,EACL,wBAAwB,EAGxB,KAAK,kBAAkB,EACxB,MAAM,gBAAgB,CAAC;AAQxB,MAAM,WAAW,oBAAoB,
|
|
1
|
+
{"version":3,"file":"in-memory-tools.d.ts","sourceRoot":"","sources":["../../src/plugins/in-memory-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAc,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAGvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAO5C,OAAO,EACL,wBAAwB,EAGxB,KAAK,kBAAkB,EACxB,MAAM,gBAAgB,CAAC;AAQxB,MAAM,WAAW,oBAAoB,CAAC,MAAM,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO;IACvE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5C,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/C,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;CAC7C;AAED,MAAM,MAAM,iBAAiB,CAAC,MAAM,IAChC,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,GAC3B,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,iBAAiB,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;AAEhF,MAAM,WAAW,iBAAiB;IAChC,2EAA2E;IAC3E,QAAQ,CAAC,MAAM,EAAE,CACf,OAAO,EAAE,kBAAkB,KACxB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,wBAAwB,CAAC,CAAC;IAEtE,iCAAiC;IACjC,QAAQ,CAAC,GAAG,EAAE,mBAAmB,CAAC;CACnC;AAED,wDAAwD;AACxD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE;QAChB,QAAQ,CAAC,IAAI,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,SAAS,EAAE,CAAC,CAAC;QACzD,QAAQ,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACzE,QAAQ,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,MAAM,CAAC,MAAM,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC;QAC/E,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE;YACpB,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC;YACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;YACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;YACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;SAC3B,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACxC,QAAQ,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;KAC1E,CAAC;CACH;AAMD,MAAM,WAAW,4BAA4B;IAE3C,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,oBAAoB,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;CAC9F;AA6LD,wBAAgB,IAAI,CAAC,MAAM,EAAE,OAAO,EAClC,GAAG,EAAE,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,GACzC,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,CAEvC;AAMD,eAAO,MAAM,mBAAmB,GAAI,QAAQ;IAC1C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAE5B,QAAQ,CAAC,KAAK,EAAE,SAAS,oBAAoB,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;CAC3D,+EA4DA,CAAC"}
|
package/dist/policies.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policies.d.ts","sourceRoot":"","sources":["../src/policies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEjD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAU,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE7C,eAAO,MAAM,YAAY,uDAAsD,CAAC;AAChF,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEpD,qBAAa,MAAO,SAAQ,WAW1B;CAAG;;;;;;;;;;;;AAEL,qBAAa,gBAAiB,SAAQ,qBAGpC;CAAG;;mBAKc,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,MAAM,EAAE,CAAC;oBACrD,CAAC,KAAK,EAAE,gBAAgB,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,iBAAiB,CAAC;kBACrE,
|
|
1
|
+
{"version":3,"file":"policies.d.ts","sourceRoot":"","sources":["../src/policies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEjD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAU,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE7C,eAAO,MAAM,YAAY,uDAAsD,CAAC;AAChF,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEpD,qBAAa,MAAO,SAAQ,WAW1B;CAAG;;;;;;;;;;;;AAEL,qBAAa,gBAAiB,SAAQ,qBAGpC;CAAG;;mBAKc,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,CAAC,SAAS,MAAM,EAAE,CAAC;oBACrD,CAAC,KAAK,EAAE,gBAAgB,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,iBAAiB,CAAC;kBACrE,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,WAAW,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;qBAChE,CAAC,QAAQ,EAAE,QAAQ,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;;AANnE,qBAAa,YAAa,SAAQ,iBAQ/B;CAAG"}
|