@yeshwanthyk/runtime-effect 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +19 -0
- package/dist/agent.d.ts +15 -0
- package/dist/agent.d.ts.map +1 -0
- package/dist/agent.js +28 -0
- package/dist/agent.js.map +1 -0
- package/dist/config.d.ts +65 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +232 -0
- package/dist/config.js.map +1 -0
- package/dist/extensibility/custom-commands.d.ts +51 -0
- package/dist/extensibility/custom-commands.d.ts.map +1 -0
- package/dist/extensibility/custom-commands.js +139 -0
- package/dist/extensibility/custom-commands.js.map +1 -0
- package/dist/extensibility/custom-tools/index.d.ts +6 -0
- package/dist/extensibility/custom-tools/index.d.ts.map +1 -0
- package/dist/extensibility/custom-tools/index.js +5 -0
- package/dist/extensibility/custom-tools/index.js.map +1 -0
- package/dist/extensibility/custom-tools/loader.d.ts +24 -0
- package/dist/extensibility/custom-tools/loader.d.ts.map +1 -0
- package/dist/extensibility/custom-tools/loader.js +219 -0
- package/dist/extensibility/custom-tools/loader.js.map +1 -0
- package/dist/extensibility/custom-tools/types.d.ts +102 -0
- package/dist/extensibility/custom-tools/types.d.ts.map +1 -0
- package/dist/extensibility/custom-tools/types.js +5 -0
- package/dist/extensibility/custom-tools/types.js.map +1 -0
- package/dist/extensibility/index.d.ts +36 -0
- package/dist/extensibility/index.d.ts.map +1 -0
- package/dist/extensibility/index.js +79 -0
- package/dist/extensibility/index.js.map +1 -0
- package/dist/extensibility/schema.d.ts +40 -0
- package/dist/extensibility/schema.d.ts.map +1 -0
- package/dist/extensibility/schema.js +75 -0
- package/dist/extensibility/schema.js.map +1 -0
- package/dist/extensibility/validation.d.ts +11 -0
- package/dist/extensibility/validation.d.ts.map +1 -0
- package/dist/extensibility/validation.js +59 -0
- package/dist/extensibility/validation.js.map +1 -0
- package/dist/hooks/context-controller.d.ts +25 -0
- package/dist/hooks/context-controller.d.ts.map +1 -0
- package/dist/hooks/context-controller.js +21 -0
- package/dist/hooks/context-controller.js.map +1 -0
- package/dist/hooks/effects.d.ts +25 -0
- package/dist/hooks/effects.d.ts.map +1 -0
- package/dist/hooks/effects.js +45 -0
- package/dist/hooks/effects.js.map +1 -0
- package/dist/hooks/hook-messages.d.ts +10 -0
- package/dist/hooks/hook-messages.d.ts.map +1 -0
- package/dist/hooks/hook-messages.js +28 -0
- package/dist/hooks/hook-messages.js.map +1 -0
- package/dist/hooks/hook-tool-adapter.d.ts +12 -0
- package/dist/hooks/hook-tool-adapter.d.ts.map +1 -0
- package/dist/hooks/hook-tool-adapter.js +39 -0
- package/dist/hooks/hook-tool-adapter.js.map +1 -0
- package/dist/hooks/hook-transport.d.ts +19 -0
- package/dist/hooks/hook-transport.d.ts.map +1 -0
- package/dist/hooks/hook-transport.js +29 -0
- package/dist/hooks/hook-transport.js.map +1 -0
- package/dist/hooks/hook-ui-context.d.ts +20 -0
- package/dist/hooks/hook-ui-context.d.ts.map +1 -0
- package/dist/hooks/hook-ui-context.js +16 -0
- package/dist/hooks/hook-ui-context.js.map +1 -0
- package/dist/hooks/index.d.ts +17 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +27 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/loader.d.ts +59 -0
- package/dist/hooks/loader.d.ts.map +1 -0
- package/dist/hooks/loader.js +170 -0
- package/dist/hooks/loader.js.map +1 -0
- package/dist/hooks/message-transformer.d.ts +16 -0
- package/dist/hooks/message-transformer.d.ts.map +1 -0
- package/dist/hooks/message-transformer.js +46 -0
- package/dist/hooks/message-transformer.js.map +1 -0
- package/dist/hooks/runner.d.ts +109 -0
- package/dist/hooks/runner.d.ts.map +1 -0
- package/dist/hooks/runner.js +426 -0
- package/dist/hooks/runner.js.map +1 -0
- package/dist/hooks/tool-wrapper.d.ts +16 -0
- package/dist/hooks/tool-wrapper.d.ts.map +1 -0
- package/dist/hooks/tool-wrapper.js +74 -0
- package/dist/hooks/tool-wrapper.js.map +1 -0
- package/dist/hooks/types.d.ts +431 -0
- package/dist/hooks/types.d.ts.map +1 -0
- package/dist/hooks/types.js +8 -0
- package/dist/hooks/types.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -0
- package/dist/instrumentation.d.ts +56 -0
- package/dist/instrumentation.d.ts.map +1 -0
- package/dist/instrumentation.js +13 -0
- package/dist/instrumentation.js.map +1 -0
- package/dist/lazy-tool-loader.d.ts +67 -0
- package/dist/lazy-tool-loader.d.ts.map +1 -0
- package/dist/lazy-tool-loader.js +129 -0
- package/dist/lazy-tool-loader.js.map +1 -0
- package/dist/lsp.d.ts +16 -0
- package/dist/lsp.d.ts.map +1 -0
- package/dist/lsp.js +24 -0
- package/dist/lsp.js.map +1 -0
- package/dist/runtime.d.ts +62 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +243 -0
- package/dist/runtime.js.map +1 -0
- package/dist/session/execution-plan.d.ts +53 -0
- package/dist/session/execution-plan.d.ts.map +1 -0
- package/dist/session/execution-plan.js +170 -0
- package/dist/session/execution-plan.js.map +1 -0
- package/dist/session/orchestrator.d.ts +21 -0
- package/dist/session/orchestrator.d.ts.map +1 -0
- package/dist/session/orchestrator.js +154 -0
- package/dist/session/orchestrator.js.map +1 -0
- package/dist/session/prompt-queue.d.ts +50 -0
- package/dist/session/prompt-queue.d.ts.map +1 -0
- package/dist/session/prompt-queue.js +155 -0
- package/dist/session/prompt-queue.js.map +1 -0
- package/dist/session-manager.d.ts +80 -0
- package/dist/session-manager.d.ts.map +1 -0
- package/dist/session-manager.js +257 -0
- package/dist/session-manager.js.map +1 -0
- package/dist/tools.d.ts +10 -0
- package/dist/tools.d.ts.map +1 -0
- package/dist/tools.js +19 -0
- package/dist/tools.js.map +1 -0
- package/dist/transports.d.ts +18 -0
- package/dist/transports.d.ts.map +1 -0
- package/dist/transports.js +37 -0
- package/dist/transports.js.map +1 -0
- package/package.json +43 -0
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lazily loads tools from registry + manages custom/hook tools.
|
|
3
|
+
* Pre-loads core tools (read, bash) on instantiation for fast startup.
|
|
4
|
+
*/
|
|
5
|
+
export class LazyToolLoader {
|
|
6
|
+
registry;
|
|
7
|
+
customTools;
|
|
8
|
+
hookTools;
|
|
9
|
+
loaded = new Map();
|
|
10
|
+
loading = new Map();
|
|
11
|
+
constructor(registry, customTools = [], hookTools = []) {
|
|
12
|
+
this.registry = registry;
|
|
13
|
+
this.customTools = customTools;
|
|
14
|
+
this.hookTools = hookTools;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Pre-load core tools for fast startup.
|
|
18
|
+
* Call this after construction but before agent runs.
|
|
19
|
+
*/
|
|
20
|
+
async preloadCoreTools() {
|
|
21
|
+
await Promise.all([this.getTool("read"), this.getTool("bash"), this.getTool("edit"), this.getTool("write")]);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Get a tool, loading lazily if not yet loaded.
|
|
25
|
+
* Returns null if tool doesn't exist.
|
|
26
|
+
*/
|
|
27
|
+
async getTool(name) {
|
|
28
|
+
// Check already loaded
|
|
29
|
+
const cached = this.loaded.get(name);
|
|
30
|
+
if (cached) {
|
|
31
|
+
return cached;
|
|
32
|
+
}
|
|
33
|
+
// Check currently loading (avoid duplicate loads)
|
|
34
|
+
const inflight = this.loading.get(name);
|
|
35
|
+
if (inflight) {
|
|
36
|
+
return inflight;
|
|
37
|
+
}
|
|
38
|
+
// Check custom tools (always available, no loading needed)
|
|
39
|
+
const custom = this.customTools.find((t) => t.name === name);
|
|
40
|
+
if (custom)
|
|
41
|
+
return custom;
|
|
42
|
+
// Check hook tools (always available)
|
|
43
|
+
const hook = this.hookTools.find((t) => t.name === name);
|
|
44
|
+
if (hook)
|
|
45
|
+
return hook;
|
|
46
|
+
// Load from registry
|
|
47
|
+
const def = this.registry[name];
|
|
48
|
+
if (!def)
|
|
49
|
+
return null;
|
|
50
|
+
const promise = def
|
|
51
|
+
.load()
|
|
52
|
+
.then((tool) => {
|
|
53
|
+
this.loaded.set(name, tool);
|
|
54
|
+
this.loading.delete(name);
|
|
55
|
+
return tool;
|
|
56
|
+
})
|
|
57
|
+
.catch((err) => {
|
|
58
|
+
this.loading.delete(name);
|
|
59
|
+
throw err;
|
|
60
|
+
});
|
|
61
|
+
this.loading.set(name, promise);
|
|
62
|
+
return promise;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Get all currently loaded tools as an array.
|
|
66
|
+
* Includes custom and hook tools.
|
|
67
|
+
*/
|
|
68
|
+
getLoadedTools() {
|
|
69
|
+
return [
|
|
70
|
+
...Array.from(this.loaded.values()),
|
|
71
|
+
...this.customTools,
|
|
72
|
+
...this.hookTools,
|
|
73
|
+
];
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Get all tools (loaded + pre-loaded + custom + hooks)
|
|
77
|
+
* For use with agent initialization.
|
|
78
|
+
* Returns a proxy array that supports find() without full loading.
|
|
79
|
+
*/
|
|
80
|
+
getToolsProxy() {
|
|
81
|
+
return new ToolProxyArray(this);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Proxy array that supports array operations but loads tools lazily.
|
|
86
|
+
* Used for agent.state.tools to maintain array interface.
|
|
87
|
+
*/
|
|
88
|
+
export class ToolProxyArray {
|
|
89
|
+
loader;
|
|
90
|
+
constructor(loader) {
|
|
91
|
+
this.loader = loader;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Find a tool by predicate.
|
|
95
|
+
* Only searches pre-loaded tools (core + custom + hooks).
|
|
96
|
+
* Secondary tools are loaded on-demand by agent-loop.
|
|
97
|
+
*/
|
|
98
|
+
find(predicate) {
|
|
99
|
+
return this.loader.getLoadedTools().find(predicate);
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Check if array is empty.
|
|
103
|
+
*/
|
|
104
|
+
get length() {
|
|
105
|
+
return this.loader.getLoadedTools().length;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Iterate over loaded tools.
|
|
109
|
+
*/
|
|
110
|
+
[Symbol.iterator]() {
|
|
111
|
+
return this.loader.getLoadedTools()[Symbol.iterator]();
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Filter loaded tools.
|
|
115
|
+
*/
|
|
116
|
+
filter(predicate) {
|
|
117
|
+
return this.loader.getLoadedTools().filter(predicate);
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Map over loaded tools.
|
|
121
|
+
*/
|
|
122
|
+
map(fn) {
|
|
123
|
+
return this.loader.getLoadedTools().map(fn);
|
|
124
|
+
}
|
|
125
|
+
toArray() {
|
|
126
|
+
return this.loader.getLoadedTools();
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=lazy-tool-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lazy-tool-loader.js","sourceRoot":"","sources":["../src/lazy-tool-loader.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,MAAM,OAAO,cAAc;IAKjB;IACA;IACA;IAND,MAAM,GAAG,IAAI,GAAG,EAAqB,CAAC;IACtC,OAAO,GAAG,IAAI,GAAG,EAA8B,CAAC;IAExD,YACS,QAAiC,EACjC,cAA2B,EAAE,EAC7B,YAAyB,EAAE;QAF3B,aAAQ,GAAR,QAAQ,CAAyB;QACjC,gBAAW,GAAX,WAAW,CAAkB;QAC7B,cAAS,GAAT,SAAS,CAAkB;IACjC,CAAC;IAEJ;;;OAGG;IACH,KAAK,CAAC,gBAAgB;QACrB,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9G,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,OAAO,CAAC,IAAY;QACzB,uBAAuB;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,MAAM,EAAE,CAAC;YACZ,OAAO,MAAM,CAAC;QACf,CAAC;QAED,kDAAkD;QAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,QAAQ,EAAE,CAAC;YACd,OAAO,QAAQ,CAAC;QACjB,CAAC;QAED,2DAA2D;QAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QAC7D,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAE1B,sCAAsC;QACtC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QACzD,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;QAEtB,qBAAqB;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QAEtB,MAAM,OAAO,GAAG,GAAG;aACjB,IAAI,EAAE;aACN,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC5B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC1B,OAAO,IAAI,CAAC;QACb,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;YACvB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC1B,MAAM,GAAG,CAAC;QACX,CAAC,CAAC,CAAC;QAEJ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAChC,OAAO,OAAO,CAAC;IAChB,CAAC;IAED;;;OAGG;IACH,cAAc;QACb,OAAO;YACN,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnC,GAAG,IAAI,CAAC,WAAW;YACnB,GAAG,IAAI,CAAC,SAAS;SACjB,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,aAAa;QACZ,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;CACD;AAED;;;GAGG;AACH,MAAM,OAAO,cAAc;IACN;IAApB,YAAoB,MAAsB;QAAtB,WAAM,GAAN,MAAM,CAAgB;IAAG,CAAC;IAE9C;;;;OAIG;IACH,IAAI,CAAC,SAAuC;QAC3C,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACrD,CAAC;IAED;;OAEG;IACH,IAAI,MAAM;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,SAAuC;QAC7C,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACvD,CAAC;IAED;;OAEG;IACH,GAAG,CAAI,EAA0B;QAChC,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;IACrC,CAAC;CACD"}
|
package/dist/lsp.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Context, Layer } from "effect";
|
|
2
|
+
import { createLspManager, type LspManager } from "@yeshwanthyk/lsp";
|
|
3
|
+
export interface LspService {
|
|
4
|
+
manager: LspManager;
|
|
5
|
+
activityRef: {
|
|
6
|
+
setActive: (value: boolean) => void;
|
|
7
|
+
};
|
|
8
|
+
notifyActivity: (active: boolean) => void;
|
|
9
|
+
}
|
|
10
|
+
export declare const LspServiceTag: Context.Tag<LspService, LspService>;
|
|
11
|
+
export interface LspLayerOptions {
|
|
12
|
+
cwd: string;
|
|
13
|
+
lspFactory?: typeof createLspManager;
|
|
14
|
+
}
|
|
15
|
+
export declare const LspLayer: (options: LspLayerOptions) => Layer.Layer<LspService, never, import("./config.js").ConfigService | import("./instrumentation.js").InstrumentationService>;
|
|
16
|
+
//# sourceMappingURL=lsp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lsp.d.ts","sourceRoot":"","sources":["../src/lsp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,KAAK,EAAE,MAAM,QAAQ,CAAA;AAC/C,OAAO,EAAE,gBAAgB,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAIpE,MAAM,WAAW,UAAU;IAC1B,OAAO,EAAE,UAAU,CAAA;IACnB,WAAW,EAAE;QAAE,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;KAAE,CAAA;IACpD,cAAc,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAA;CACzC;AAED,eAAO,MAAM,aAAa,qCAA8D,CAAA;AAExF,MAAM,WAAW,eAAe;IAC/B,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,CAAC,EAAE,OAAO,gBAAgB,CAAA;CACpC;AAED,eAAO,MAAM,QAAQ,GAAI,SAAS,eAAe,gIA2B/C,CAAA"}
|
package/dist/lsp.js
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Context, Effect, Layer } from "effect";
|
|
2
|
+
import { createLspManager } from "@yeshwanthyk/lsp";
|
|
3
|
+
import { ConfigTag } from "./config.js";
|
|
4
|
+
import { InstrumentationTag } from "./instrumentation.js";
|
|
5
|
+
export const LspServiceTag = Context.GenericTag("runtime-effect/LspService");
|
|
6
|
+
export const LspLayer = (options) => Layer.scoped(LspServiceTag, Effect.gen(function* () {
|
|
7
|
+
const { config } = yield* ConfigTag;
|
|
8
|
+
const instrumentation = yield* InstrumentationTag;
|
|
9
|
+
const factory = options.lspFactory ?? createLspManager;
|
|
10
|
+
const manager = factory({
|
|
11
|
+
cwd: options.cwd,
|
|
12
|
+
configDir: config.configDir,
|
|
13
|
+
enabled: config.lsp.enabled,
|
|
14
|
+
autoInstall: config.lsp.autoInstall,
|
|
15
|
+
});
|
|
16
|
+
const activityRef = { setActive: (_value) => { } };
|
|
17
|
+
const notifyActivity = (active) => {
|
|
18
|
+
instrumentation.record({ type: "lsp:activity", active });
|
|
19
|
+
activityRef.setActive(active);
|
|
20
|
+
};
|
|
21
|
+
yield* Effect.addFinalizer(() => Effect.promise(() => manager.shutdown().catch(() => { })));
|
|
22
|
+
return { manager, activityRef, notifyActivity };
|
|
23
|
+
}));
|
|
24
|
+
//# sourceMappingURL=lsp.js.map
|
package/dist/lsp.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lsp.js","sourceRoot":"","sources":["../src/lsp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAC/C,OAAO,EAAE,gBAAgB,EAAmB,MAAM,kBAAkB,CAAA;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAQzD,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAC,UAAU,CAAa,2BAA2B,CAAC,CAAA;AAOxF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,OAAwB,EAAE,EAAE,CACpD,KAAK,CAAC,MAAM,CACX,aAAa,EACb,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,SAAS,CAAA;IACnC,MAAM,eAAe,GAAG,KAAK,CAAC,CAAC,kBAAkB,CAAA;IACjD,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,IAAI,gBAAgB,CAAA;IAEtD,MAAM,OAAO,GAAG,OAAO,CAAC;QACvB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO;QAC3B,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC,WAAW;KACnC,CAAC,CAAA;IAEF,MAAM,WAAW,GAAG,EAAE,SAAS,EAAE,CAAC,MAAe,EAAE,EAAE,GAAE,CAAC,EAAE,CAAA;IAC1D,MAAM,cAAc,GAAG,CAAC,MAAe,EAAE,EAAE;QAC1C,eAAe,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,CAAA;QACxD,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;IAC9B,CAAC,CAAA;IAED,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,CAC/B,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC,CACxD,CAAA;IAED,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,CAAA;AAChD,CAAC,CAAC,CACF,CAAA"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { Agent, CodexTransport, ProviderTransport, RouterTransport } from "@yeshwanthyk/agent-core";
|
|
2
|
+
import { type Api, type KnownProvider, type Model } from "@yeshwanthyk/ai";
|
|
3
|
+
import { createLspManager, type LspManager } from "@yeshwanthyk/lsp";
|
|
4
|
+
import { Context, Layer } from "effect";
|
|
5
|
+
import { HookRunner, type HookContextController } from "./hooks/index.js";
|
|
6
|
+
import { type CustomCommand } from "./extensibility/custom-commands.js";
|
|
7
|
+
import type { ValidationIssue } from "./extensibility/schema.js";
|
|
8
|
+
import type { SendRef } from "./extensibility/custom-tools/index.js";
|
|
9
|
+
import { type LoadConfigOptions, type LoadedAppConfig } from "./config.js";
|
|
10
|
+
import { type PromptQueueService } from "./session/prompt-queue.js";
|
|
11
|
+
import { type SessionOrchestratorService } from "./session/orchestrator.js";
|
|
12
|
+
import { SessionManager } from "./session-manager.js";
|
|
13
|
+
import { type AgentFactoryService } from "./agent.js";
|
|
14
|
+
import { type InstrumentationService } from "./instrumentation.js";
|
|
15
|
+
import { type ApiKeyResolver, type TransportBundle } from "./transports.js";
|
|
16
|
+
export type AdapterKind = "tui" | "headless" | "acp";
|
|
17
|
+
export interface ToolRegistryEntry {
|
|
18
|
+
label: string;
|
|
19
|
+
source: "builtin" | "custom";
|
|
20
|
+
sourcePath?: string;
|
|
21
|
+
renderCall?: unknown;
|
|
22
|
+
renderResult?: unknown;
|
|
23
|
+
}
|
|
24
|
+
export interface RuntimeServices {
|
|
25
|
+
readonly adapter: AdapterKind;
|
|
26
|
+
readonly agent: Agent;
|
|
27
|
+
readonly createAgent: AgentFactoryService["createAgent"];
|
|
28
|
+
readonly sessionManager: SessionManager;
|
|
29
|
+
readonly hookRunner: HookRunner;
|
|
30
|
+
readonly hookContext: HookContextController;
|
|
31
|
+
readonly customCommands: Map<string, CustomCommand>;
|
|
32
|
+
readonly toolByName: Map<string, ToolRegistryEntry>;
|
|
33
|
+
readonly lsp: LspManager;
|
|
34
|
+
readonly lspActiveRef: {
|
|
35
|
+
setActive: (value: boolean) => void;
|
|
36
|
+
};
|
|
37
|
+
readonly sendRef: SendRef;
|
|
38
|
+
readonly config: LoadedAppConfig;
|
|
39
|
+
readonly cycleModels: Array<{
|
|
40
|
+
provider: KnownProvider;
|
|
41
|
+
model: Model<Api>;
|
|
42
|
+
}>;
|
|
43
|
+
readonly getApiKey: ApiKeyResolver;
|
|
44
|
+
readonly transport: RouterTransport;
|
|
45
|
+
readonly providerTransport: ProviderTransport;
|
|
46
|
+
readonly codexTransport: CodexTransport;
|
|
47
|
+
readonly validationIssues: ValidationIssue[];
|
|
48
|
+
readonly promptQueue: PromptQueueService;
|
|
49
|
+
readonly sessionOrchestrator: SessionOrchestratorService;
|
|
50
|
+
}
|
|
51
|
+
export declare const RuntimeServicesTag: Context.Tag<RuntimeServices, RuntimeServices>;
|
|
52
|
+
export interface RuntimeLayerOptions extends LoadConfigOptions {
|
|
53
|
+
readonly adapter?: AdapterKind;
|
|
54
|
+
readonly cwd?: string;
|
|
55
|
+
readonly hasUI?: boolean;
|
|
56
|
+
readonly sendRef?: SendRef;
|
|
57
|
+
readonly instrumentation?: InstrumentationService;
|
|
58
|
+
readonly lspFactory?: typeof createLspManager;
|
|
59
|
+
readonly transportFactory?: (config: LoadedAppConfig, resolver: ApiKeyResolver) => TransportBundle;
|
|
60
|
+
}
|
|
61
|
+
export declare const RuntimeLayer: (options?: RuntimeLayerOptions) => Layer.Layer<RuntimeServices, unknown, never>;
|
|
62
|
+
//# sourceMappingURL=runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,cAAc,EACd,iBAAiB,EACjB,eAAe,EAEhB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAIL,KAAK,GAAG,EACR,KAAK,aAAa,EAClB,KAAK,KAAK,EACX,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,gBAAgB,EAEhB,KAAK,UAAU,EAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAU,KAAK,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EACN,UAAU,EAMV,KAAK,qBAAqB,EAC1B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,oCAAoC,CAAC;AAM5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAoB,OAAO,EAAE,MAAM,uCAAuC,CAAC;AACvF,OAAO,EAA4B,KAAK,iBAAiB,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAErG,OAAO,EAGL,KAAK,kBAAkB,EACxB,MAAM,2BAA2B,CAAC;AAKnC,OAAO,EAGL,KAAK,0BAA0B,EAChC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,cAAc,EAGf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,YAAY,CAAC;AACpB,OAAO,EAGL,KAAK,sBAAsB,EAC5B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAIL,KAAK,cAAc,EACnB,KAAK,eAAe,EACrB,MAAM,iBAAiB,CAAC;AAGzB,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,UAAU,GAAG,KAAK,CAAC;AAErD,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,mBAAmB,CAAC,aAAa,CAAC,CAAC;IACzD,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,qBAAqB,CAAC;IAC5C,QAAQ,CAAC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACpD,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACpD,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE;QAAE,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;KAAE,CAAC;IAC/D,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,aAAa,CAAC;QAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAA;KAAE,CAAC,CAAC;IAC5E,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IACpC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAC9C,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,gBAAgB,EAAE,eAAe,EAAE,CAAC;IAC7C,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;IACzC,QAAQ,CAAC,mBAAmB,EAAE,0BAA0B,CAAC;CAC1D;AAED,eAAO,MAAM,kBAAkB,+CAAwE,CAAC;AAUxG,MAAM,WAAW,mBAAoB,SAAQ,iBAAiB;IAC5D,QAAQ,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,eAAe,CAAC,EAAE,sBAAsB,CAAC;IAClD,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,gBAAgB,CAAC;IAC9C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,cAAc,KAAK,eAAe,CAAC;CACpG;AAUD,eAAO,MAAM,YAAY,GAAI,UAAU,mBAAmB,KAAG,KAAK,CAAC,KAAK,CAAC,eAAe,EAAE,OAAO,EAAE,KAAK,CAkFvG,CAAC"}
|
package/dist/runtime.js
ADDED
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
import { Agent, CodexTransport, ProviderTransport, RouterTransport, } from "@yeshwanthyk/agent-core";
|
|
2
|
+
import { getModels, getProviders, } from "@yeshwanthyk/ai";
|
|
3
|
+
import { createToolRegistry } from "@yeshwanthyk/base-tools";
|
|
4
|
+
import { createLspManager, wrapToolsWithLspDiagnostics, } from "@yeshwanthyk/lsp";
|
|
5
|
+
import { Context, Effect, Layer } from "effect";
|
|
6
|
+
import { HookRunner, HookedTransport, getHookTools, wrapToolsWithHooks, HookContextControllerLayer, HookContextControllerTag, } from "./hooks/index.js";
|
|
7
|
+
import { HookEffectsTag, createHookEffects } from "./hooks/effects.js";
|
|
8
|
+
import { CustomCommandLayer, CustomCommandTag, } from "./extensibility/custom-commands.js";
|
|
9
|
+
import { ExtensibilityLayer, ExtensibilityTag, attachHookErrorLogging, } from "./extensibility/index.js";
|
|
10
|
+
import { ConfigTag, loadAppConfig } from "./config.js";
|
|
11
|
+
import { LazyToolLoader } from "./lazy-tool-loader.js";
|
|
12
|
+
import { PromptQueueLayer, PromptQueueTag, } from "./session/prompt-queue.js";
|
|
13
|
+
import { ExecutionPlanBuilderLayer, } from "./session/execution-plan.js";
|
|
14
|
+
import { SessionOrchestratorLayer, SessionOrchestratorTag, } from "./session/orchestrator.js";
|
|
15
|
+
import { SessionManager, SessionManagerTag, } from "./session-manager.js";
|
|
16
|
+
import { AgentFactoryTag, } from "./agent.js";
|
|
17
|
+
import { InstrumentationTag, NoopInstrumentationLayer, } from "./instrumentation.js";
|
|
18
|
+
import { TransportLayer, TransportTag, createApiKeyResolver, } from "./transports.js";
|
|
19
|
+
import { LspLayer, LspServiceTag } from "./lsp.js";
|
|
20
|
+
export const RuntimeServicesTag = Context.GenericTag("runtime-effect/RuntimeServices");
|
|
21
|
+
const ToolRuntimeTag = Context.GenericTag("runtime-effect/ToolRuntimeService");
|
|
22
|
+
export const RuntimeLayer = (options) => {
|
|
23
|
+
const adapter = options?.adapter ?? "tui";
|
|
24
|
+
const cwd = options?.cwd ?? process.cwd();
|
|
25
|
+
const hasUI = options?.hasUI ?? adapter === "tui";
|
|
26
|
+
const sendRef = options?.sendRef ?? { current: () => { } };
|
|
27
|
+
const instrumentationLayer = options?.instrumentation !== undefined
|
|
28
|
+
? Layer.succeed(InstrumentationTag, options.instrumentation)
|
|
29
|
+
: NoopInstrumentationLayer;
|
|
30
|
+
const layerOptions = {
|
|
31
|
+
...options,
|
|
32
|
+
adapter,
|
|
33
|
+
cwd,
|
|
34
|
+
hasUI,
|
|
35
|
+
sendRef,
|
|
36
|
+
instrumentationLayer,
|
|
37
|
+
};
|
|
38
|
+
const layerEffect = Effect.gen(function* () {
|
|
39
|
+
const config = yield* Effect.tryPromise(() => loadAppConfig(layerOptions));
|
|
40
|
+
const apiKeyResolver = createApiKeyResolver(config.configDir);
|
|
41
|
+
const cycleModels = buildCycleModels(layerOptions.model, config);
|
|
42
|
+
const configLayer = Layer.succeed(ConfigTag, { config });
|
|
43
|
+
const sessionManagerLayer = Layer.succeed(SessionManagerTag, {
|
|
44
|
+
sessionManager: new SessionManager(config.configDir),
|
|
45
|
+
});
|
|
46
|
+
const transportLayer = layerOptions.transportFactory
|
|
47
|
+
? Layer.succeed(TransportTag, {
|
|
48
|
+
transport: layerOptions.transportFactory(config, apiKeyResolver),
|
|
49
|
+
})
|
|
50
|
+
: TransportLayer(config, apiKeyResolver);
|
|
51
|
+
const customCommandsLayer = CustomCommandLayer({ configDir: config.configDir });
|
|
52
|
+
const executionPlanLayer = ExecutionPlanBuilderLayer({
|
|
53
|
+
cycle: cycleModels.map((entry) => ({ provider: entry.provider, model: entry.model })),
|
|
54
|
+
});
|
|
55
|
+
const toolRegistry = createToolRegistry(layerOptions.cwd);
|
|
56
|
+
const extensibilityLayer = ExtensibilityLayer({
|
|
57
|
+
cwd: layerOptions.cwd,
|
|
58
|
+
sendRef: layerOptions.sendRef,
|
|
59
|
+
builtinToolNames: Object.keys(toolRegistry),
|
|
60
|
+
hasUI: layerOptions.hasUI,
|
|
61
|
+
});
|
|
62
|
+
const hookContextLayer = HookContextControllerLayer;
|
|
63
|
+
const hookEffectsLayer = createHookEffectsLayer();
|
|
64
|
+
const promptQueueLayer = PromptQueueLayer;
|
|
65
|
+
const lspLayer = LspLayer({
|
|
66
|
+
cwd: layerOptions.cwd,
|
|
67
|
+
...(layerOptions.lspFactory ? { lspFactory: layerOptions.lspFactory } : {}),
|
|
68
|
+
});
|
|
69
|
+
const toolRuntimeLayer = createToolRuntimeLayer({
|
|
70
|
+
cwd: layerOptions.cwd,
|
|
71
|
+
toolRegistry,
|
|
72
|
+
});
|
|
73
|
+
const agentFactoryLayer = createAgentFactoryLayer();
|
|
74
|
+
const runtimeServicesLayer = createRuntimeServicesLayer({
|
|
75
|
+
adapter: layerOptions.adapter,
|
|
76
|
+
sendRef: layerOptions.sendRef,
|
|
77
|
+
apiKeyResolver,
|
|
78
|
+
cycleModels,
|
|
79
|
+
});
|
|
80
|
+
const baseProviders = Layer.merge(configLayer, layerOptions.instrumentationLayer);
|
|
81
|
+
const withSessionManager = Layer.provideMerge(sessionManagerLayer, baseProviders);
|
|
82
|
+
const withTransport = Layer.provideMerge(transportLayer, withSessionManager);
|
|
83
|
+
const withCommands = Layer.provideMerge(customCommandsLayer, withTransport);
|
|
84
|
+
const withExecutionPlan = Layer.provideMerge(executionPlanLayer, withCommands);
|
|
85
|
+
const withPromptQueue = Layer.provideMerge(promptQueueLayer, withExecutionPlan);
|
|
86
|
+
const withExtensibility = Layer.provideMerge(extensibilityLayer, withPromptQueue);
|
|
87
|
+
const withHookContext = Layer.provideMerge(hookContextLayer, withExtensibility);
|
|
88
|
+
const withHookEffects = Layer.provideMerge(hookEffectsLayer, withHookContext);
|
|
89
|
+
const withLsp = Layer.provideMerge(lspLayer, withHookEffects);
|
|
90
|
+
const withToolRuntime = Layer.provideMerge(toolRuntimeLayer, withLsp);
|
|
91
|
+
const withAgentFactory = Layer.provideMerge(agentFactoryLayer, withToolRuntime);
|
|
92
|
+
const withOrchestrator = Layer.provideMerge(SessionOrchestratorLayer(), withAgentFactory);
|
|
93
|
+
return Layer.provide(runtimeServicesLayer, withOrchestrator);
|
|
94
|
+
});
|
|
95
|
+
return Layer.unwrapEffect(layerEffect);
|
|
96
|
+
};
|
|
97
|
+
const createToolRuntimeLayer = (options) => Layer.effect(ToolRuntimeTag, Effect.gen(function* () {
|
|
98
|
+
const { hookRunner, customTools } = yield* ExtensibilityTag;
|
|
99
|
+
const lspService = yield* LspServiceTag;
|
|
100
|
+
const loader = new LazyToolLoader(options.toolRegistry, customTools.map((entry) => entry.tool), getHookTools(hookRunner));
|
|
101
|
+
yield* Effect.promise(() => loader.preloadCoreTools());
|
|
102
|
+
const tools = wrapToolsWithLspDiagnostics(wrapToolsWithHooks(loader.getToolsProxy().toArray(), hookRunner), lspService.manager, {
|
|
103
|
+
cwd: options.cwd,
|
|
104
|
+
onCheckStart: () => lspService.notifyActivity(true),
|
|
105
|
+
onCheckEnd: () => lspService.notifyActivity(false),
|
|
106
|
+
});
|
|
107
|
+
return {
|
|
108
|
+
loader,
|
|
109
|
+
tools,
|
|
110
|
+
toolByName: buildToolRegistry(options.toolRegistry, customTools),
|
|
111
|
+
};
|
|
112
|
+
}));
|
|
113
|
+
const createHookEffectsLayer = () => Layer.scoped(HookEffectsTag, Effect.gen(function* () {
|
|
114
|
+
const { hookRunner } = yield* ExtensibilityTag;
|
|
115
|
+
return yield* createHookEffects(hookRunner);
|
|
116
|
+
}));
|
|
117
|
+
const createAgentFactoryLayer = () => Layer.effect(AgentFactoryTag, Effect.gen(function* () {
|
|
118
|
+
const { config } = yield* ConfigTag;
|
|
119
|
+
const { transport } = yield* TransportTag;
|
|
120
|
+
const { hookRunner } = yield* ExtensibilityTag;
|
|
121
|
+
const { tools } = yield* ToolRuntimeTag;
|
|
122
|
+
const hookedTransport = new HookedTransport(transport.router, hookRunner);
|
|
123
|
+
const makeAgent = (options) => new Agent({
|
|
124
|
+
transport: hookedTransport,
|
|
125
|
+
initialState: {
|
|
126
|
+
systemPrompt: config.systemPrompt,
|
|
127
|
+
model: options?.model ?? config.model,
|
|
128
|
+
thinkingLevel: options?.thinking ?? config.thinking,
|
|
129
|
+
tools,
|
|
130
|
+
},
|
|
131
|
+
});
|
|
132
|
+
return {
|
|
133
|
+
bootstrapAgent: makeAgent(),
|
|
134
|
+
createAgent: makeAgent,
|
|
135
|
+
transport: hookedTransport,
|
|
136
|
+
tools,
|
|
137
|
+
};
|
|
138
|
+
}));
|
|
139
|
+
const createRuntimeServicesLayer = (options) => Layer.effect(RuntimeServicesTag, Effect.gen(function* () {
|
|
140
|
+
const { config } = yield* ConfigTag;
|
|
141
|
+
const { sessionManager } = yield* SessionManagerTag;
|
|
142
|
+
const { hookRunner, validationIssues: extensibilityIssues } = yield* ExtensibilityTag;
|
|
143
|
+
const { commands, issues: commandIssues } = yield* CustomCommandTag;
|
|
144
|
+
const toolRuntime = yield* ToolRuntimeTag;
|
|
145
|
+
const { transport } = yield* TransportTag;
|
|
146
|
+
const promptQueue = yield* PromptQueueTag;
|
|
147
|
+
const sessionOrchestrator = yield* SessionOrchestratorTag;
|
|
148
|
+
const agentFactory = yield* AgentFactoryTag;
|
|
149
|
+
const hookContext = yield* HookContextControllerTag;
|
|
150
|
+
const lspService = yield* LspServiceTag;
|
|
151
|
+
attachHookErrorLogging(hookRunner, (message) => process.stderr.write(`${message}\n`));
|
|
152
|
+
yield* Effect.promise(() => hookRunner.emit({ type: "app.start" }));
|
|
153
|
+
const validationIssues = [...commandIssues, ...extensibilityIssues];
|
|
154
|
+
for (const issue of validationIssues) {
|
|
155
|
+
if (issue.severity === "error") {
|
|
156
|
+
process.stderr.write(`[${issue.kind}] ${issue.path}: ${issue.message}\n`);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
return {
|
|
160
|
+
adapter: options.adapter,
|
|
161
|
+
agent: agentFactory.bootstrapAgent,
|
|
162
|
+
createAgent: agentFactory.createAgent,
|
|
163
|
+
sessionManager,
|
|
164
|
+
hookRunner,
|
|
165
|
+
hookContext,
|
|
166
|
+
customCommands: commands,
|
|
167
|
+
toolByName: toolRuntime.toolByName,
|
|
168
|
+
lsp: lspService.manager,
|
|
169
|
+
lspActiveRef: lspService.activityRef,
|
|
170
|
+
sendRef: options.sendRef,
|
|
171
|
+
config,
|
|
172
|
+
cycleModels: options.cycleModels,
|
|
173
|
+
getApiKey: options.apiKeyResolver,
|
|
174
|
+
transport: transport.router,
|
|
175
|
+
providerTransport: transport.provider,
|
|
176
|
+
codexTransport: transport.codex,
|
|
177
|
+
validationIssues,
|
|
178
|
+
promptQueue,
|
|
179
|
+
sessionOrchestrator,
|
|
180
|
+
};
|
|
181
|
+
}));
|
|
182
|
+
const buildToolRegistry = (toolRegistry, customTools) => {
|
|
183
|
+
const registry = new Map();
|
|
184
|
+
for (const [name, def] of Object.entries(toolRegistry)) {
|
|
185
|
+
registry.set(name, { label: def.label, source: "builtin" });
|
|
186
|
+
}
|
|
187
|
+
for (const entry of customTools) {
|
|
188
|
+
registry.set(entry.tool.name, {
|
|
189
|
+
label: entry.tool.label,
|
|
190
|
+
source: "custom",
|
|
191
|
+
sourcePath: entry.resolvedPath,
|
|
192
|
+
renderCall: entry.tool.renderCall,
|
|
193
|
+
renderResult: entry.tool.renderResult,
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
return registry;
|
|
197
|
+
};
|
|
198
|
+
const buildCycleModels = (modelSpec, loaded) => {
|
|
199
|
+
const entries = [];
|
|
200
|
+
const requested = modelSpec?.split(",").map((value) => value.trim()).filter(Boolean) ?? [loaded.modelId];
|
|
201
|
+
for (const id of requested) {
|
|
202
|
+
if (id.includes("/")) {
|
|
203
|
+
const [providerId, modelId] = id.split("/");
|
|
204
|
+
const provider = getKnownProvider(providerId);
|
|
205
|
+
if (!provider)
|
|
206
|
+
continue;
|
|
207
|
+
const model = findModel(provider, modelId);
|
|
208
|
+
if (model)
|
|
209
|
+
entries.push({ provider, model });
|
|
210
|
+
continue;
|
|
211
|
+
}
|
|
212
|
+
let resolved = false;
|
|
213
|
+
for (const provider of getProviders()) {
|
|
214
|
+
const known = getKnownProvider(provider);
|
|
215
|
+
if (!known)
|
|
216
|
+
continue;
|
|
217
|
+
const model = findModel(known, id);
|
|
218
|
+
if (model) {
|
|
219
|
+
entries.push({ provider: known, model });
|
|
220
|
+
resolved = true;
|
|
221
|
+
break;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
if (!resolved) {
|
|
225
|
+
const fallbackModel = findModel(loaded.provider, id);
|
|
226
|
+
if (fallbackModel) {
|
|
227
|
+
entries.push({ provider: loaded.provider, model: fallbackModel });
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
if (entries.length === 0) {
|
|
232
|
+
entries.push({ provider: loaded.provider, model: loaded.model });
|
|
233
|
+
}
|
|
234
|
+
return entries;
|
|
235
|
+
};
|
|
236
|
+
const findModel = (provider, modelId) => {
|
|
237
|
+
const models = getModels(provider);
|
|
238
|
+
return models.find((model) => model.id === modelId);
|
|
239
|
+
};
|
|
240
|
+
const getKnownProvider = (value) => {
|
|
241
|
+
return getProviders().find((provider) => provider === value);
|
|
242
|
+
};
|
|
243
|
+
//# sourceMappingURL=runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,cAAc,EACd,iBAAiB,EACjB,eAAe,GAEhB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,SAAS,EACT,YAAY,GAKb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,kBAAkB,EAAqB,MAAM,yBAAyB,CAAC;AAChF,OAAO,EACL,gBAAgB,EAChB,2BAA2B,GAE5B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EACN,UAAU,EACV,eAAe,EACf,YAAY,EACZ,kBAAkB,EAClB,0BAA0B,EAC1B,wBAAwB,GAExB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EACL,kBAAkB,EAClB,gBAAgB,GAEjB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAgD,MAAM,aAAa,CAAC;AACrG,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EACL,gBAAgB,EAChB,cAAc,GAEf,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,yBAAyB,GAE1B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,wBAAwB,EACxB,sBAAsB,GAEvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,cAAc,EACd,iBAAiB,GAElB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,eAAe,GAEhB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,kBAAkB,EAClB,wBAAwB,GAEzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,cAAc,EACd,YAAY,EACZ,oBAAoB,GAGrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAmCnD,MAAM,CAAC,MAAM,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAkB,gCAAgC,CAAC,CAAC;AAQxG,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,CAAqB,mCAAmC,CAAC,CAAC;AAoBnG,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAA6B,EAAgD,EAAE;IAC1G,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,KAAK,CAAC;IAC1C,MAAM,GAAG,GAAG,OAAO,EAAE,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1C,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,OAAO,KAAK,KAAK,CAAC;IAClD,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC;IAC1D,MAAM,oBAAoB,GACxB,OAAO,EAAE,eAAe,KAAK,SAAS;QACpC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,kBAAkB,EAAE,OAAO,CAAC,eAAe,CAAC;QAC5D,CAAC,CAAC,wBAAwB,CAAC;IAE/B,MAAM,YAAY,GAAgC;QAChD,GAAG,OAAO;QACV,OAAO;QACP,GAAG;QACH,KAAK;QACL,OAAO;QACP,oBAAoB;KACrB,CAAC;IAEF,MAAM,WAAW,GACf,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC;QAC3E,MAAM,cAAc,GAAG,oBAAoB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC9D,MAAM,WAAW,GAAG,gBAAgB,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAEjE,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QACzD,MAAM,mBAAmB,GAAG,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAAE;YAC3D,cAAc,EAAE,IAAI,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC;SACrB,CAAC,CAAC;QACnC,MAAM,cAAc,GAClB,YAAY,CAAC,gBAAgB;YAC3B,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE;gBAC1B,SAAS,EAAE,YAAY,CAAC,gBAAgB,CAAC,MAAM,EAAE,cAAc,CAAC;aACjE,CAAC;YACJ,CAAC,CAAC,cAAc,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAC7C,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAChF,MAAM,kBAAkB,GAAG,yBAAyB,CAAC;YACnD,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAA0B,CAAC;SAC/G,CAAC,CAAC;QACH,MAAM,YAAY,GAAG,kBAAkB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAC1D,MAAM,kBAAkB,GAAG,kBAAkB,CAAC;YAC5C,GAAG,EAAE,YAAY,CAAC,GAAG;YACrB,OAAO,EAAE,YAAY,CAAC,OAAO;YAC7B,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;YAC3C,KAAK,EAAE,YAAY,CAAC,KAAK;SAC1B,CAAC,CAAC;QACH,MAAM,gBAAgB,GAAG,0BAA0B,CAAC;QACpD,MAAM,gBAAgB,GAAG,sBAAsB,EAAE,CAAC;QAClD,MAAM,gBAAgB,GAAG,gBAAgB,CAAC;QAC1C,MAAM,QAAQ,GAAG,QAAQ,CAAC;YACxB,GAAG,EAAE,YAAY,CAAC,GAAG;YACrB,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5E,CAAC,CAAC;QACH,MAAM,gBAAgB,GAAG,sBAAsB,CAAC;YAC9C,GAAG,EAAE,YAAY,CAAC,GAAG;YACrB,YAAY;SACb,CAAC,CAAC;QACH,MAAM,iBAAiB,GAAG,uBAAuB,EAAE,CAAC;QACpD,MAAM,oBAAoB,GAAG,0BAA0B,CAAC;YACtD,OAAO,EAAE,YAAY,CAAC,OAAO;YAC7B,OAAO,EAAE,YAAY,CAAC,OAAO;YAC7B,cAAc;YACd,WAAW;SACZ,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,YAAY,CAAC,oBAAoB,CAAC,CAAC;QAClF,MAAM,kBAAkB,GAAG,KAAK,CAAC,YAAY,CAAC,mBAAmB,EAAE,aAAa,CAAC,CAAC;QAClF,MAAM,aAAa,GAAG,KAAK,CAAC,YAAY,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;QAC7E,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,mBAAmB,EAAE,aAAa,CAAC,CAAC;QAC5E,MAAM,iBAAiB,GAAG,KAAK,CAAC,YAAY,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC;QAC/E,MAAM,eAAe,GAAG,KAAK,CAAC,YAAY,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;QAChF,MAAM,iBAAiB,GAAG,KAAK,CAAC,YAAY,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAAC;QAClF,MAAM,eAAe,GAAG,KAAK,CAAC,YAAY,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;QAChF,MAAM,eAAe,GAAG,KAAK,CAAC,YAAY,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;QAC9E,MAAM,OAAO,GAAG,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;QAC9D,MAAM,eAAe,GAAG,KAAK,CAAC,YAAY,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;QACtE,MAAM,gBAAgB,GAAG,KAAK,CAAC,YAAY,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;QAChF,MAAM,gBAAgB,GAAG,KAAK,CAAC,YAAY,CAAC,wBAAwB,EAAE,EAAE,gBAAgB,CAAC,CAAC;QAC1F,OAAO,KAAK,CAAC,OAAO,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEL,OAAO,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;AACzC,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAAG,CAAC,OAAoD,EAAE,EAAE,CACtF,KAAK,CAAC,MAAM,CACV,cAAc,EACd,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC,CAAC,gBAAgB,CAAC;IAC5D,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,aAAa,CAAC;IAExC,MAAM,MAAM,GAAG,IAAI,cAAc,CAC/B,OAAO,CAAC,YAAY,EACpB,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EACtC,YAAY,CAAC,UAAU,CAAC,CACzB,CAAC;IACF,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAEvD,MAAM,KAAK,GAAG,2BAA2B,CACvC,kBAAkB,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,EAChE,UAAU,CAAC,OAAO,EAClB;QACE,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,YAAY,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC;QACnD,UAAU,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,KAAK,CAAC;KACnD,CACF,CAAC;IAEF,OAAO;QACL,MAAM;QACN,KAAK;QACL,UAAU,EAAE,iBAAiB,CAAC,OAAO,CAAC,YAAY,EAAE,WAAW,CAAC;KACpC,CAAC;AACjC,CAAC,CAAC,CACH,CAAC;AAEJ,MAAM,sBAAsB,GAAG,GAAG,EAAE,CAClC,KAAK,CAAC,MAAM,CACV,cAAc,EACd,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC,CAAC,gBAAgB,CAAC;IAC/C,OAAO,KAAK,CAAC,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;AAC9C,CAAC,CAAC,CACH,CAAC;AAEJ,MAAM,uBAAuB,GAAG,GAAG,EAAE,CACnC,KAAK,CAAC,MAAM,CACV,eAAe,EACf,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC;IACpC,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC;IAC1C,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC,CAAC,gBAAgB,CAAC;IAC/C,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC;IAExC,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAE1E,MAAM,SAAS,GAAG,CAAC,OAA0D,EAAE,EAAE,CAC/E,IAAI,KAAK,CAAC;QACR,SAAS,EAAE,eAAe;QAC1B,YAAY,EAAE;YACZ,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,MAAM,CAAC,KAAK;YACrC,aAAa,EAAE,OAAO,EAAE,QAAQ,IAAI,MAAM,CAAC,QAAQ;YACnD,KAAK;SACN;KACF,CAAC,CAAC;IAEL,OAAO;QACL,cAAc,EAAE,SAAS,EAAE;QAC3B,WAAW,EAAE,SAAS;QACtB,SAAS,EAAE,eAAe;QAC1B,KAAK;KACwB,CAAC;AAClC,CAAC,CAAC,CACH,CAAC;AAEJ,MAAM,0BAA0B,GAAG,CAAC,OAKnC,EAAE,EAAE,CACH,KAAK,CAAC,MAAM,CACV,kBAAkB,EAClB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC;IACpC,MAAM,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC,CAAC,iBAAiB,CAAC;IACpD,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,GAAG,KAAK,CAAC,CAAC,gBAAgB,CAAC;IACtF,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC,CAAC,gBAAgB,CAAC;IACpE,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC;IAC1C,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC;IAC1C,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC;IAC1C,MAAM,mBAAmB,GAAG,KAAK,CAAC,CAAC,sBAAsB,CAAC;IAC1D,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,eAAe,CAAC;IAC5C,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,wBAAwB,CAAC;IACpD,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,aAAa,CAAC;IAExC,sBAAsB,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC,CAAC;IACtF,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;IAEpE,MAAM,gBAAgB,GAAG,CAAC,GAAG,aAAa,EAAE,GAAG,mBAAmB,CAAC,CAAC;IACpE,KAAK,MAAM,KAAK,IAAI,gBAAgB,EAAE,CAAC;QACrC,IAAI,KAAK,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YAC/B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,KAAK,EAAE,YAAY,CAAC,cAAc;QAClC,WAAW,EAAE,YAAY,CAAC,WAAW;QACrC,cAAc;QACd,UAAU;QACV,WAAW;QACX,cAAc,EAAE,QAAQ;QACxB,UAAU,EAAE,WAAW,CAAC,UAAU;QAClC,GAAG,EAAE,UAAU,CAAC,OAAO;QACvB,YAAY,EAAE,UAAU,CAAC,WAAW;QACpC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,MAAM;QACN,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,SAAS,EAAE,OAAO,CAAC,cAAc;QACjC,SAAS,EAAE,SAAS,CAAC,MAAM;QAC3B,iBAAiB,EAAE,SAAS,CAAC,QAAQ;QACrC,cAAc,EAAE,SAAS,CAAC,KAAK;QAC/B,gBAAgB;QAChB,WAAW;QACX,mBAAmB;KACM,CAAC;AAC9B,CAAC,CAAC,CACH,CAAC;AAEJ,MAAM,iBAAiB,GAAG,CACxB,YAA0B,EAC1B,WAA+B,EACC,EAAE;IAClC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA6B,CAAC;IAEtD,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QACvD,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;QAChC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;YAC5B,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK;YACvB,MAAM,EAAE,QAAQ;YAChB,UAAU,EAAE,KAAK,CAAC,YAAY;YAC9B,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU;YACjC,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY;SACtC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CACvB,SAA6B,EAC7B,MAAuB,EACgC,EAAE;IACzD,MAAM,OAAO,GAA0D,EAAE,CAAC;IAC1E,MAAM,SAAS,GAAG,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEzG,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;QAC3B,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5C,MAAM,QAAQ,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;YAC9C,IAAI,CAAC,QAAQ;gBAAE,SAAS;YACxB,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC3C,IAAI,KAAK;gBAAE,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;YAC7C,SAAS;QACX,CAAC;QAED,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,KAAK,MAAM,QAAQ,IAAI,YAAY,EAAE,EAAE,CAAC;YACtC,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YACzC,IAAI,CAAC,KAAK;gBAAE,SAAS;YACrB,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACnC,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;gBACzC,QAAQ,GAAG,IAAI,CAAC;gBAChB,MAAM;YACR,CAAC;QACH,CAAC;QACD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACrD,IAAI,aAAa,EAAE,CAAC;gBAClB,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,QAAuB,EAAE,OAAe,EAA0B,EAAE;IACrF,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IACnC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CAA2B,CAAC;AAChF,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,KAAa,EAA6B,EAAE;IACpE,OAAO,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,KAAK,KAAK,CAA8B,CAAC;AAC5F,CAAC,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { Context, Layer, Schedule } from "effect";
|
|
2
|
+
import type { ExecutionPlan as ExecutionPlanType } from "effect/ExecutionPlan";
|
|
3
|
+
import type { Api, Model, KnownProvider } from "@yeshwanthyk/ai";
|
|
4
|
+
import { type InstrumentationService } from "../instrumentation.js";
|
|
5
|
+
export interface PlanModelEntry {
|
|
6
|
+
readonly provider: KnownProvider;
|
|
7
|
+
readonly model: Model<Api>;
|
|
8
|
+
}
|
|
9
|
+
export interface ExecutionPlanAttempts {
|
|
10
|
+
readonly primary: number;
|
|
11
|
+
readonly fallback: number;
|
|
12
|
+
}
|
|
13
|
+
export declare const defaultAttempts: ExecutionPlanAttempts;
|
|
14
|
+
type ExecutionPlanSchedule = Schedule.Schedule<unknown, unknown, never>;
|
|
15
|
+
export type ExecutionPlanErrorCategory = "network" | "rateLimit" | "providerOutage" | "auth" | "unknown";
|
|
16
|
+
export declare const classifyExecutionPlanError: (error: unknown) => ExecutionPlanErrorCategory;
|
|
17
|
+
export declare const isRetryableExecutionPlanError: (error: unknown) => boolean;
|
|
18
|
+
export interface ExecutionPlanStepDescriptor {
|
|
19
|
+
readonly id: string;
|
|
20
|
+
readonly index: number;
|
|
21
|
+
readonly provider: KnownProvider;
|
|
22
|
+
readonly modelId: string;
|
|
23
|
+
readonly modelName: string;
|
|
24
|
+
readonly attempts: number;
|
|
25
|
+
readonly isFallback: boolean;
|
|
26
|
+
}
|
|
27
|
+
export interface ExecutionPlanStepContext {
|
|
28
|
+
readonly descriptor: ExecutionPlanStepDescriptor;
|
|
29
|
+
readonly model: Model<Api>;
|
|
30
|
+
}
|
|
31
|
+
export declare const ExecutionPlanStepTag: Context.Tag<ExecutionPlanStepContext, ExecutionPlanStepContext>;
|
|
32
|
+
export interface BuiltExecutionPlan {
|
|
33
|
+
readonly plan: ExecutionPlanType<{
|
|
34
|
+
provides: ExecutionPlanStepContext;
|
|
35
|
+
input: unknown;
|
|
36
|
+
error: never;
|
|
37
|
+
requirements: never;
|
|
38
|
+
}>;
|
|
39
|
+
readonly steps: ExecutionPlanStepDescriptor[];
|
|
40
|
+
}
|
|
41
|
+
export interface ExecutionPlanBuilderOptions {
|
|
42
|
+
readonly cycle?: ReadonlyArray<PlanModelEntry>;
|
|
43
|
+
readonly attempts?: Partial<ExecutionPlanAttempts>;
|
|
44
|
+
readonly schedule?: ExecutionPlanSchedule;
|
|
45
|
+
}
|
|
46
|
+
export interface ExecutionPlanBuilderService {
|
|
47
|
+
readonly defaultPlan: BuiltExecutionPlan;
|
|
48
|
+
readonly build: (options?: ExecutionPlanBuilderOptions) => BuiltExecutionPlan;
|
|
49
|
+
}
|
|
50
|
+
export declare const ExecutionPlanBuilderTag: Context.Tag<ExecutionPlanBuilderService, ExecutionPlanBuilderService>;
|
|
51
|
+
export declare const ExecutionPlanBuilderLayer: (options?: ExecutionPlanBuilderOptions) => Layer.Layer<ExecutionPlanBuilderService, never, import("../config.js").ConfigService | InstrumentationService>;
|
|
52
|
+
export {};
|
|
53
|
+
//# sourceMappingURL=execution-plan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execution-plan.d.ts","sourceRoot":"","sources":["../../src/session/execution-plan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAmC,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACnF,OAAO,KAAK,EAAE,aAAa,IAAI,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEjE,OAAO,EAAsB,KAAK,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAExF,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;CAC5B;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,eAAO,MAAM,eAAe,EAAE,qBAG7B,CAAC;AAEF,KAAK,qBAAqB,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AA0CxE,MAAM,MAAM,0BAA0B,GAAG,SAAS,GAAG,WAAW,GAAG,gBAAgB,GAAG,MAAM,GAAG,SAAS,CAAC;AA2BzG,eAAO,MAAM,0BAA0B,GAAI,OAAO,OAAO,KAAG,0BAQ3D,CAAC;AAEF,eAAO,MAAM,6BAA6B,GAAI,OAAO,OAAO,KAAG,OAG9D,CAAC;AAaF,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,UAAU,EAAE,2BAA2B,CAAC;IACjD,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;CAC5B;AAED,eAAO,MAAM,oBAAoB,iEAAmF,CAAC;AAErH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;QAC/B,QAAQ,EAAE,wBAAwB,CAAC;QACnC,KAAK,EAAE,OAAO,CAAC;QACf,KAAK,EAAE,KAAK,CAAC;QACb,YAAY,EAAE,KAAK,CAAC;KACrB,CAAC,CAAC;IACH,QAAQ,CAAC,KAAK,EAAE,2BAA2B,EAAE,CAAC;CAC/C;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IAC/C,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACnD,QAAQ,CAAC,QAAQ,CAAC,EAAE,qBAAqB,CAAC;CAC3C;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;IACzC,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,2BAA2B,KAAK,kBAAkB,CAAC;CAC/E;AAED,eAAO,MAAM,uBAAuB,uEAAyF,CAAC;AAwE9H,eAAO,MAAM,yBAAyB,GAAI,UAAU,2BAA2B,mHA8B5E,CAAC"}
|