coding-agent-forge 0.2.0 → 1.0.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 +130 -11
- package/agent-forge.yaml +19 -0
- package/dist/agent/agent.d.ts +11 -0
- package/dist/agent/agent.d.ts.map +1 -0
- package/dist/agent/agent.js +13 -0
- package/dist/agent/agent.js.map +1 -0
- package/dist/agent/config.d.ts +15 -0
- package/dist/agent/config.d.ts.map +1 -0
- package/dist/agent/config.js +49 -0
- package/dist/agent/config.js.map +1 -0
- package/dist/agent/factories.d.ts +5 -0
- package/dist/agent/factories.d.ts.map +1 -0
- package/dist/agent/factories.js +5 -0
- package/dist/agent/factories.js.map +1 -0
- package/dist/agent/index.d.ts +10 -0
- package/dist/agent/index.d.ts.map +1 -0
- package/dist/agent/index.js +6 -0
- package/dist/agent/index.js.map +1 -0
- package/dist/agent/team.d.ts +19 -0
- package/dist/agent/team.d.ts.map +1 -0
- package/dist/agent/team.js +81 -0
- package/dist/agent/team.js.map +1 -0
- package/dist/agent/template.d.ts +12 -0
- package/dist/agent/template.d.ts.map +1 -0
- package/dist/agent/template.js +37 -0
- package/dist/agent/template.js.map +1 -0
- package/dist/cli.js +35 -21
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +4 -17
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +6 -56
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +3 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -5
- package/dist/index.js.map +1 -1
- package/dist/runtime/claude.d.ts +3 -1
- package/dist/runtime/claude.d.ts.map +1 -1
- package/dist/runtime/claude.js +9 -8
- package/dist/runtime/claude.js.map +1 -1
- package/dist/runtime/codex.d.ts +1 -1
- package/dist/runtime/codex.d.ts.map +1 -1
- package/dist/runtime/codex.js +4 -15
- package/dist/runtime/codex.js.map +1 -1
- package/dist/runtime/config.d.ts +26 -0
- package/dist/runtime/config.d.ts.map +1 -0
- package/dist/runtime/config.js +75 -0
- package/dist/runtime/config.js.map +1 -0
- package/dist/runtime/format.d.ts +4 -0
- package/dist/runtime/format.d.ts.map +1 -0
- package/dist/runtime/format.js +16 -0
- package/dist/runtime/format.js.map +1 -0
- package/dist/runtime/index.d.ts +4 -3
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +2 -1
- package/dist/runtime/index.js.map +1 -1
- package/dist/runtime/opencode.d.ts +1 -1
- package/dist/runtime/opencode.d.ts.map +1 -1
- package/dist/runtime/opencode.js +4 -8
- package/dist/runtime/opencode.js.map +1 -1
- package/dist/runtime/qwen.d.ts +4 -3
- package/dist/runtime/qwen.d.ts.map +1 -1
- package/dist/runtime/qwen.js +11 -8
- package/dist/runtime/qwen.js.map +1 -1
- package/dist/runtime/types.d.ts +46 -36
- package/dist/runtime/types.d.ts.map +1 -1
- package/dist/runtime/types.js +10 -0
- package/dist/runtime/types.js.map +1 -1
- package/dist/utils/object.d.ts +4 -0
- package/dist/utils/object.d.ts.map +1 -0
- package/dist/utils/object.js +17 -0
- package/dist/utils/object.js.map +1 -0
- package/package.json +6 -2
- package/dist/runtime/factories.d.ts +0 -7
- package/dist/runtime/factories.d.ts.map +0 -1
- package/dist/runtime/factories.js +0 -14
- package/dist/runtime/factories.js.map +0 -1
package/dist/config.d.ts
CHANGED
|
@@ -1,19 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
options?: RuntimeOptions<P>;
|
|
6
|
-
};
|
|
7
|
-
}[K];
|
|
8
|
-
export type ThreadDefinition = {
|
|
9
|
-
runtime: string;
|
|
10
|
-
options?: ThreadOptions;
|
|
11
|
-
};
|
|
12
|
-
export type Config = {
|
|
13
|
-
runtimes: Record<string, RuntimeDefinition>;
|
|
14
|
-
threads: Record<string, ThreadDefinition>;
|
|
15
|
-
};
|
|
1
|
+
import type { AgentDefinitions, RuntimeThreadAgentConfig } from "./agent/config.js";
|
|
2
|
+
import type { RuntimeDefinitions, ThreadDefinitions } from "./runtime/config.js";
|
|
3
|
+
export type Config<Runtimes extends RuntimeDefinitions = RuntimeDefinitions, Threads extends ThreadDefinitions<Runtimes> = ThreadDefinitions<Runtimes>, Agents extends AgentDefinitions<keyof Threads & string> = AgentDefinitions<keyof Threads & string>> = RuntimeThreadAgentConfig<Runtimes, Threads, Agents>;
|
|
4
|
+
export declare function defineConfig<const Runtimes extends RuntimeDefinitions, const Threads extends ThreadDefinitions<Runtimes>, const Agents extends AgentDefinitions<keyof Threads & string>>(config: Config<Runtimes, Threads, Agents>): Config<Runtimes, Threads, Agents>;
|
|
16
5
|
export declare function loadConfig(...paths: string[]): Promise<Config>;
|
|
17
|
-
export declare function createRuntime<K extends RuntimeKind>(runtime: RuntimeDefinition<K>): Runtime<K>;
|
|
18
|
-
export declare function startThread(runtime: Runtime, thread: ThreadDefinition): Promise<Thread>;
|
|
19
6
|
//# sourceMappingURL=config.d.ts.map
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAEpF,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGjF,MAAM,MAAM,MAAM,CAChB,QAAQ,SAAS,kBAAkB,GAAG,kBAAkB,EACxD,OAAO,SAAS,iBAAiB,CAAC,QAAQ,CAAC,GAAG,iBAAiB,CAAC,QAAQ,CAAC,EACzE,MAAM,SAAS,gBAAgB,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,gBAAgB,CACxE,MAAM,OAAO,GAAG,MAAM,CACvB,IACC,wBAAwB,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAExD,wBAAgB,YAAY,CAC1B,KAAK,CAAC,QAAQ,SAAS,kBAAkB,EACzC,KAAK,CAAC,OAAO,SAAS,iBAAiB,CAAC,QAAQ,CAAC,EACjD,KAAK,CAAC,MAAM,SAAS,gBAAgB,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC,EAC7D,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAE9E;AAED,wBAAsB,UAAU,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAepE"}
|
package/dist/config.js
CHANGED
|
@@ -1,25 +1,9 @@
|
|
|
1
1
|
import { readFile } from "node:fs/promises";
|
|
2
2
|
import { parse } from "yaml";
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
function
|
|
6
|
-
|
|
7
|
-
return false;
|
|
8
|
-
}
|
|
9
|
-
const prototype = Object.getPrototypeOf(value);
|
|
10
|
-
return prototype === Object.prototype || prototype === null;
|
|
11
|
-
}
|
|
12
|
-
function mergeObjects(base, override) {
|
|
13
|
-
const merged = { ...base };
|
|
14
|
-
for (const [key, value] of Object.entries(override)) {
|
|
15
|
-
const existing = merged[key];
|
|
16
|
-
merged[key] =
|
|
17
|
-
isPlainObject(existing) && isPlainObject(value) ? mergeObjects(existing, value) : value;
|
|
18
|
-
}
|
|
19
|
-
return merged;
|
|
20
|
-
}
|
|
21
|
-
function isRuntimeKind(value) {
|
|
22
|
-
return typeof value === "string" && runtimeKinds.has(value);
|
|
3
|
+
import { loadRuntimeThreadAgentConfig } from "./agent/config.js";
|
|
4
|
+
import { isPlainObject, mergePlainObjects } from "./utils/object.js";
|
|
5
|
+
export function defineConfig(config) {
|
|
6
|
+
return config;
|
|
23
7
|
}
|
|
24
8
|
export async function loadConfig(...paths) {
|
|
25
9
|
if (paths.length === 0) {
|
|
@@ -31,42 +15,8 @@ export async function loadConfig(...paths) {
|
|
|
31
15
|
if (!isPlainObject(nextConfig)) {
|
|
32
16
|
throw new Error(`Config file must contain an object: ${path}`);
|
|
33
17
|
}
|
|
34
|
-
config =
|
|
35
|
-
}
|
|
36
|
-
if (!isPlainObject(config.runtimes)) {
|
|
37
|
-
throw new Error("Config must define a runtimes object");
|
|
38
|
-
}
|
|
39
|
-
if (!isPlainObject(config.threads)) {
|
|
40
|
-
throw new Error("Config must define a threads object");
|
|
41
|
-
}
|
|
42
|
-
if (Object.keys(config.threads).length === 0) {
|
|
43
|
-
throw new Error("Config must define at least one thread");
|
|
44
|
-
}
|
|
45
|
-
for (const [name, runtime] of Object.entries(config.runtimes)) {
|
|
46
|
-
if (!isPlainObject(runtime)) {
|
|
47
|
-
throw new Error(`Runtime ${name} must be an object`);
|
|
48
|
-
}
|
|
49
|
-
if (!isRuntimeKind(runtime.kind)) {
|
|
50
|
-
throw new Error(`Runtime ${name} must use kind codex, claude, qwen, or opencode`);
|
|
51
|
-
}
|
|
18
|
+
config = mergePlainObjects(config, nextConfig);
|
|
52
19
|
}
|
|
53
|
-
|
|
54
|
-
if (!isPlainObject(thread)) {
|
|
55
|
-
throw new Error(`Thread ${name} must be an object`);
|
|
56
|
-
}
|
|
57
|
-
if (typeof thread.runtime !== "string") {
|
|
58
|
-
throw new Error(`Thread ${name} must define a runtime`);
|
|
59
|
-
}
|
|
60
|
-
if (!config.runtimes[thread.runtime]) {
|
|
61
|
-
throw new Error(`Unknown runtime for thread ${name}: ${thread.runtime}`);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
return config;
|
|
65
|
-
}
|
|
66
|
-
export function createRuntime(runtime) {
|
|
67
|
-
return getRuntimeFactory(runtime.kind)(runtime.options);
|
|
68
|
-
}
|
|
69
|
-
export function startThread(runtime, thread) {
|
|
70
|
-
return runtime.startThread(thread.options ?? {});
|
|
20
|
+
return loadRuntimeThreadAgentConfig(config);
|
|
71
21
|
}
|
|
72
22
|
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAE7B,OAAO,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AAEjE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAoB,MAAM,mBAAmB,CAAC;AAUvF,MAAM,UAAU,YAAY,CAI1B,MAAyC;IACzC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAG,KAAe;IACjD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,MAAM,GAAgB,EAAE,CAAC;IAC7B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAY,CAAC;QAClE,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,uCAAuC,IAAI,EAAE,CAAC,CAAC;QACjE,CAAC;QACD,MAAM,GAAG,iBAAiB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACjD,CAAC;IAED,OAAO,4BAA4B,CAAC,MAAM,CAAC,CAAC;AAC9C,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
export
|
|
4
|
-
export { ClaudeRuntime, ClaudeThread } from "./runtime/claude.js";
|
|
5
|
-
export { QwenRuntime, QwenThread } from "./runtime/qwen.js";
|
|
6
|
-
export { OpencodeRuntime, OpencodeThread } from "./runtime/opencode.js";
|
|
7
|
-
export type { RuntimeKind, Runtime, RuntimeOptions, BaseRuntime, Thread, ThreadOptions, Record, RecordCallback, } from "./runtime/index.js";
|
|
1
|
+
export * from "./config.js";
|
|
2
|
+
export * from "./agent/index.js";
|
|
3
|
+
export * from "./runtime/index.js";
|
|
8
4
|
//# 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":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
export
|
|
4
|
-
export { QwenRuntime, QwenThread } from "./runtime/qwen.js";
|
|
5
|
-
export { OpencodeRuntime, OpencodeThread } from "./runtime/opencode.js";
|
|
1
|
+
export * from "./config.js";
|
|
2
|
+
export * from "./agent/index.js";
|
|
3
|
+
export * from "./runtime/index.js";
|
|
6
4
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC"}
|
package/dist/runtime/claude.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { BaseRuntime } from "./types.js";
|
|
2
|
-
import type {
|
|
2
|
+
import type { RecordCallback, RuntimeOptions, RuntimeRecord, Thread, ThreadOptions } from "./types.js";
|
|
3
3
|
export declare class ClaudeRuntime extends BaseRuntime<"claude"> {
|
|
4
|
+
private readonly options;
|
|
5
|
+
constructor(options?: RuntimeOptions<"claude">);
|
|
4
6
|
startThread(options?: ThreadOptions<"claude">): Promise<Thread<"claude">>;
|
|
5
7
|
}
|
|
6
8
|
export declare class ClaudeThread implements Thread<"claude"> {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/runtime/claude.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/runtime/claude.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACd,aAAa,EACb,MAAM,EACN,aAAa,EACd,MAAM,YAAY,CAAC;AAEpB,qBAAa,aAAc,SAAQ,WAAW,CAAC,QAAQ,CAAC;IAC1C,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,GAAE,cAAc,CAAC,QAAQ,CAAM;IAInE,WAAW,CAAC,OAAO,GAAE,aAAa,CAAC,QAAQ,CAAM,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;CAG9E;AAED,qBAAa,YAAa,YAAW,MAAM,CAAC,QAAQ,CAAC;;IAGvC,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC;IAEvD,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAmCvF,oBAAoB,CAAC,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,GAAG,MAAM;CAwB9D"}
|
package/dist/runtime/claude.js
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
import { query } from "@anthropic-ai/claude-agent-sdk";
|
|
2
2
|
import { BaseRuntime } from "./types.js";
|
|
3
|
+
import { formatValue, mergePlainObjectOptions } from "./format.js";
|
|
3
4
|
export class ClaudeRuntime extends BaseRuntime {
|
|
5
|
+
options;
|
|
6
|
+
constructor(options = {}) {
|
|
7
|
+
super();
|
|
8
|
+
this.options = options;
|
|
9
|
+
}
|
|
4
10
|
startThread(options = {}) {
|
|
5
|
-
return Promise.resolve(new ClaudeThread(options));
|
|
11
|
+
return Promise.resolve(new ClaudeThread(mergePlainObjectOptions(this.options, options)));
|
|
6
12
|
}
|
|
7
13
|
}
|
|
8
14
|
export class ClaudeThread {
|
|
@@ -11,9 +17,7 @@ export class ClaudeThread {
|
|
|
11
17
|
constructor(options) {
|
|
12
18
|
this.options = options;
|
|
13
19
|
}
|
|
14
|
-
async runStreamed(prompt, onRecord
|
|
15
|
-
process.stdout.write(`${this.recordToPrettyString(record)}\n`);
|
|
16
|
-
}) {
|
|
20
|
+
async runStreamed(prompt, onRecord) {
|
|
17
21
|
const options = { ...this.options };
|
|
18
22
|
if (this.#sessionId) {
|
|
19
23
|
delete options.continue;
|
|
@@ -31,7 +35,7 @@ export class ClaudeThread {
|
|
|
31
35
|
if ("session_id" in message && typeof message.session_id === "string") {
|
|
32
36
|
this.#sessionId = message.session_id;
|
|
33
37
|
}
|
|
34
|
-
await onRecord({ runtime: "claude", message });
|
|
38
|
+
await onRecord?.(this, { runtime: "claude", message });
|
|
35
39
|
if (message.type === "result") {
|
|
36
40
|
if (message.subtype === "success") {
|
|
37
41
|
finalResponse = message.result;
|
|
@@ -44,9 +48,6 @@ export class ClaudeThread {
|
|
|
44
48
|
return finalResponse;
|
|
45
49
|
}
|
|
46
50
|
recordToPrettyString(record) {
|
|
47
|
-
const formatValue = (value) => {
|
|
48
|
-
return typeof value === "string" ? value : JSON.stringify(value, null, 2);
|
|
49
|
-
};
|
|
50
51
|
const { message } = record;
|
|
51
52
|
switch (message.type) {
|
|
52
53
|
case "assistant":
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/runtime/claude.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/runtime/claude.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime/codex.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type Thread as CodexSdkThread } from "@openai/codex-sdk";
|
|
2
2
|
import { BaseRuntime } from "./types.js";
|
|
3
|
-
import type {
|
|
3
|
+
import type { RecordCallback, RuntimeRecord, RuntimeOptions, Thread, ThreadOptions } from "./types.js";
|
|
4
4
|
export declare class CodexRuntime extends BaseRuntime<"codex"> {
|
|
5
5
|
#private;
|
|
6
6
|
constructor(options?: RuntimeOptions<"codex">);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../src/runtime/codex.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,MAAM,IAAI,cAAc,EAE9B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../src/runtime/codex.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,MAAM,IAAI,cAAc,EAE9B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,cAAc,EACd,MAAM,EACN,aAAa,EACd,MAAM,YAAY,CAAC;AAEpB,qBAAa,YAAa,SAAQ,WAAW,CAAC,OAAO,CAAC;;gBAGxC,OAAO,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC;IAK7C,WAAW,CAAC,OAAO,GAAE,aAAa,CAAC,OAAO,CAAM,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;CAI5E;AAED,qBAAa,WAAY,YAAW,MAAM,CAAC,OAAO,CAAC;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,cAAc;IAE7C,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAyBtF,oBAAoB,CAAC,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,GAAG,MAAM;CAiE7D"}
|
package/dist/runtime/codex.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Codex, } from "@openai/codex-sdk";
|
|
2
2
|
import { BaseRuntime } from "./types.js";
|
|
3
|
+
import { formatValue, previewText } from "./format.js";
|
|
3
4
|
export class CodexRuntime extends BaseRuntime {
|
|
4
5
|
#codex;
|
|
5
6
|
constructor(options) {
|
|
@@ -16,14 +17,12 @@ export class CodexThread {
|
|
|
16
17
|
constructor(thread) {
|
|
17
18
|
this.thread = thread;
|
|
18
19
|
}
|
|
19
|
-
async runStreamed(prompt, onRecord
|
|
20
|
-
|
|
21
|
-
}) {
|
|
22
|
-
await onRecord({ runtime: "codex", input: prompt });
|
|
20
|
+
async runStreamed(prompt, onRecord) {
|
|
21
|
+
await onRecord?.(this, { runtime: "codex", input: prompt });
|
|
23
22
|
const { events } = await this.thread.runStreamed(prompt);
|
|
24
23
|
let finalResponse = "";
|
|
25
24
|
for await (const event of events) {
|
|
26
|
-
await onRecord({ runtime: "codex", event });
|
|
25
|
+
await onRecord?.(this, { runtime: "codex", event });
|
|
27
26
|
if (event.type === "item.completed" && event.item.type === "agent_message") {
|
|
28
27
|
finalResponse = event.item.text;
|
|
29
28
|
}
|
|
@@ -37,16 +36,6 @@ export class CodexThread {
|
|
|
37
36
|
return finalResponse;
|
|
38
37
|
}
|
|
39
38
|
recordToPrettyString(record) {
|
|
40
|
-
const formatValue = (value) => {
|
|
41
|
-
return typeof value === "string" ? value : JSON.stringify(value, null, 2);
|
|
42
|
-
};
|
|
43
|
-
const previewText = (text, maxLength = 240) => {
|
|
44
|
-
const trimmed = text.trim();
|
|
45
|
-
if (trimmed.length <= maxLength) {
|
|
46
|
-
return trimmed;
|
|
47
|
-
}
|
|
48
|
-
return `${trimmed.slice(0, maxLength - 3)}...`;
|
|
49
|
-
};
|
|
50
39
|
const summarizeItem = (item) => {
|
|
51
40
|
switch (item.type) {
|
|
52
41
|
case "agent_message":
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/runtime/codex.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,GAGN,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/runtime/codex.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type PlainObject } from "../utils/object.js";
|
|
2
|
+
import type { Runtime, RuntimeKind, RuntimeOptions, Thread, ThreadOptions } from "./types.js";
|
|
3
|
+
export type RuntimeDefinition<K extends RuntimeKind = RuntimeKind> = {
|
|
4
|
+
[P in K]: {
|
|
5
|
+
kind: P;
|
|
6
|
+
options?: RuntimeOptions<P>;
|
|
7
|
+
};
|
|
8
|
+
}[K];
|
|
9
|
+
export declare function createRuntime<K extends RuntimeKind>(runtime: RuntimeDefinition<K>): Runtime<K>;
|
|
10
|
+
export declare function startThread<K extends RuntimeKind>(runtime: Runtime<K>, options?: ThreadOptions<K>): Promise<Thread<K>>;
|
|
11
|
+
export type RuntimeDefinitions = Record<string, RuntimeDefinition>;
|
|
12
|
+
export declare function loadRuntimeDefinitions(value: object): RuntimeDefinitions;
|
|
13
|
+
export type ThreadDefinition<Runtimes extends RuntimeDefinitions = RuntimeDefinitions, RuntimeName extends keyof Runtimes & string = keyof Runtimes & string> = {
|
|
14
|
+
[Name in RuntimeName]: Runtimes[Name] extends RuntimeDefinition<infer K extends RuntimeKind> ? {
|
|
15
|
+
runtime: Name;
|
|
16
|
+
options?: ThreadOptions<K>;
|
|
17
|
+
} : never;
|
|
18
|
+
}[RuntimeName];
|
|
19
|
+
export type ThreadDefinitions<Runtimes extends RuntimeDefinitions = RuntimeDefinitions> = Record<string, ThreadDefinition<Runtimes>>;
|
|
20
|
+
export declare function loadThreadDefinitions(value: object, runtimes: RuntimeDefinitions): ThreadDefinitions;
|
|
21
|
+
export type RuntimeThreadConfig<Runtimes extends RuntimeDefinitions = RuntimeDefinitions, Threads extends ThreadDefinitions<Runtimes> = ThreadDefinitions<Runtimes>> = {
|
|
22
|
+
runtimes: Runtimes;
|
|
23
|
+
threads: Threads;
|
|
24
|
+
};
|
|
25
|
+
export declare function loadRuntimeThreadConfig(config: PlainObject): RuntimeThreadConfig;
|
|
26
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/runtime/config.ts"],"names":[],"mappings":"AAIA,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAErE,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAe9F,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,IAAI;KAClE,CAAC,IAAI,CAAC,GAAG;QAAE,IAAI,EAAE,CAAC,CAAC;QAAC,OAAO,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAA;KAAE;CACnD,CAAC,CAAC,CAAC,CAAC;AAEL,wBAAgB,aAAa,CAAC,CAAC,SAAS,WAAW,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAE9F;AAED,wBAAgB,WAAW,CAAC,CAAC,SAAS,WAAW,EAC/C,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EACnB,OAAO,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,GACzB,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAEpB;AAED,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;AAEnE,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB,CAwBxE;AAED,MAAM,MAAM,gBAAgB,CAC1B,QAAQ,SAAS,kBAAkB,GAAG,kBAAkB,EACxD,WAAW,SAAS,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,QAAQ,GAAG,MAAM,IACnE;KACD,IAAI,IAAI,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,iBAAiB,CAAC,MAAM,CAAC,SAAS,WAAW,CAAC,GACxF;QAAE,OAAO,EAAE,IAAI,CAAC;QAAC,OAAO,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAA;KAAE,GAC7C,KAAK;CACV,CAAC,WAAW,CAAC,CAAC;AAEf,MAAM,MAAM,iBAAiB,CAAC,QAAQ,SAAS,kBAAkB,GAAG,kBAAkB,IAAI,MAAM,CAC9F,MAAM,EACN,gBAAgB,CAAC,QAAQ,CAAC,CAC3B,CAAC;AAEF,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,kBAAkB,GAC3B,iBAAiB,CA2BnB;AAED,MAAM,MAAM,mBAAmB,CAC7B,QAAQ,SAAS,kBAAkB,GAAG,kBAAkB,EACxD,OAAO,SAAS,iBAAiB,CAAC,QAAQ,CAAC,GAAG,iBAAiB,CAAC,QAAQ,CAAC,IACvE;IACF,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,WAAW,GAAG,mBAAmB,CAYhF"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { ClaudeRuntime } from "./claude.js";
|
|
2
|
+
import { CodexRuntime } from "./codex.js";
|
|
3
|
+
import { OpencodeRuntime } from "./opencode.js";
|
|
4
|
+
import { QwenRuntime } from "./qwen.js";
|
|
5
|
+
import { isPlainObject } from "../utils/object.js";
|
|
6
|
+
import { isRuntimeKind, runtimeKinds } from "./types.js";
|
|
7
|
+
const runtimeFactoryMap = {
|
|
8
|
+
codex: (options) => new CodexRuntime(options),
|
|
9
|
+
claude: (options) => new ClaudeRuntime(options),
|
|
10
|
+
qwen: (options) => new QwenRuntime(options),
|
|
11
|
+
opencode: (options) => new OpencodeRuntime(options),
|
|
12
|
+
};
|
|
13
|
+
export function createRuntime(runtime) {
|
|
14
|
+
return runtimeFactoryMap[runtime.kind](runtime.options);
|
|
15
|
+
}
|
|
16
|
+
export function startThread(runtime, options) {
|
|
17
|
+
return runtime.startThread(options);
|
|
18
|
+
}
|
|
19
|
+
export function loadRuntimeDefinitions(value) {
|
|
20
|
+
if (Object.keys(value).length === 0) {
|
|
21
|
+
throw new Error("Config must define at least one runtime");
|
|
22
|
+
}
|
|
23
|
+
const runtimes = {};
|
|
24
|
+
for (const [name, runtime] of Object.entries(value)) {
|
|
25
|
+
if (!isPlainObject(runtime)) {
|
|
26
|
+
throw new Error(`Runtime ${name} must be an object`);
|
|
27
|
+
}
|
|
28
|
+
if (!isRuntimeKind(runtime.kind)) {
|
|
29
|
+
throw new Error(`Runtime ${name} must use kind ${runtimeKinds.join(", ")}`);
|
|
30
|
+
}
|
|
31
|
+
const options = runtime.options;
|
|
32
|
+
if (options !== undefined && !isPlainObject(options)) {
|
|
33
|
+
throw new Error(`Runtime ${name} options must be an object`);
|
|
34
|
+
}
|
|
35
|
+
runtimes[name] =
|
|
36
|
+
options === undefined ? { kind: runtime.kind } : { kind: runtime.kind, options };
|
|
37
|
+
}
|
|
38
|
+
return runtimes;
|
|
39
|
+
}
|
|
40
|
+
export function loadThreadDefinitions(value, runtimes) {
|
|
41
|
+
if (Object.keys(value).length === 0) {
|
|
42
|
+
throw new Error("Config must define at least one thread");
|
|
43
|
+
}
|
|
44
|
+
const threads = {};
|
|
45
|
+
for (const [name, thread] of Object.entries(value)) {
|
|
46
|
+
if (!isPlainObject(thread)) {
|
|
47
|
+
throw new Error(`Thread ${name} must be an object`);
|
|
48
|
+
}
|
|
49
|
+
if (typeof thread.runtime !== "string") {
|
|
50
|
+
throw new Error(`Thread ${name} must define a runtime`);
|
|
51
|
+
}
|
|
52
|
+
if (!Object.hasOwn(runtimes, thread.runtime)) {
|
|
53
|
+
throw new Error(`Unknown runtime for thread ${name}: ${thread.runtime}`);
|
|
54
|
+
}
|
|
55
|
+
const options = thread.options;
|
|
56
|
+
if (options !== undefined && !isPlainObject(options)) {
|
|
57
|
+
throw new Error(`Thread ${name} options must be an object`);
|
|
58
|
+
}
|
|
59
|
+
threads[name] =
|
|
60
|
+
options === undefined ? { runtime: thread.runtime } : { runtime: thread.runtime, options };
|
|
61
|
+
}
|
|
62
|
+
return threads;
|
|
63
|
+
}
|
|
64
|
+
export function loadRuntimeThreadConfig(config) {
|
|
65
|
+
if (!isPlainObject(config.runtimes)) {
|
|
66
|
+
throw new Error("Config must define a runtimes object");
|
|
67
|
+
}
|
|
68
|
+
if (!isPlainObject(config.threads)) {
|
|
69
|
+
throw new Error("Config must define a threads object");
|
|
70
|
+
}
|
|
71
|
+
const runtimes = loadRuntimeDefinitions(config.runtimes);
|
|
72
|
+
const threads = loadThreadDefinitions(config.threads, runtimes);
|
|
73
|
+
return { runtimes, threads };
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/runtime/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare function formatValue(value: unknown): string;
|
|
2
|
+
export declare function previewText(text: string, maxLength?: number): string;
|
|
3
|
+
export declare function mergePlainObjectOptions<T extends object>(base: T, override: T): T;
|
|
4
|
+
//# sourceMappingURL=format.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/runtime/format.ts"],"names":[],"mappings":"AAEA,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAOlD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,SAAM,GAAG,MAAM,CAGjE;AAED,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAKjF"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { mergePlainObjects } from "../utils/object.js";
|
|
2
|
+
export function formatValue(value) {
|
|
3
|
+
if (typeof value === "string") {
|
|
4
|
+
return value;
|
|
5
|
+
}
|
|
6
|
+
const serialized = JSON.stringify(value, null, 2);
|
|
7
|
+
return serialized ?? String(value);
|
|
8
|
+
}
|
|
9
|
+
export function previewText(text, maxLength = 240) {
|
|
10
|
+
const trimmed = text.trim();
|
|
11
|
+
return trimmed.length <= maxLength ? trimmed : `${trimmed.slice(0, maxLength - 3)}...`;
|
|
12
|
+
}
|
|
13
|
+
export function mergePlainObjectOptions(base, override) {
|
|
14
|
+
return mergePlainObjects(base, override);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/runtime/format.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAuB,CAAC;IACxE,OAAO,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,SAAS,GAAG,GAAG;IACvD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,OAAO,OAAO,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC;AACzF,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAmB,IAAO,EAAE,QAAW;IAC5E,OAAO,iBAAiB,CACtB,IAA+B,EAC/B,QAAmC,CAC/B,CAAC;AACT,CAAC"}
|
package/dist/runtime/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
export type {
|
|
2
|
-
export {
|
|
3
|
-
export
|
|
1
|
+
export type { RuntimeSpec, RuntimeKind, RuntimeOptions, ThreadOptions, RuntimeRecord, Runtime, BaseRuntime, Thread, RecordCallback, } from "./types.js";
|
|
2
|
+
export { isRuntimeKind, runtimeKinds } from "./types.js";
|
|
3
|
+
export { createRuntime, startThread, loadRuntimeDefinitions, loadThreadDefinitions, } from "./config.js";
|
|
4
|
+
export type { RuntimeDefinition, RuntimeDefinitions, ThreadDefinition, ThreadDefinitions, RuntimeThreadConfig, } from "./config.js";
|
|
4
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,WAAW,EACX,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,WAAW,EACX,WAAW,EACX,cAAc,EACd,aAAa,EACb,aAAa,EACb,OAAO,EACP,WAAW,EACX,MAAM,EACN,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EACL,aAAa,EACb,WAAW,EACX,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,aAAa,CAAC"}
|
package/dist/runtime/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EACL,aAAa,EACb,WAAW,EACX,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,aAAa,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type OpencodeClient } from "@opencode-ai/sdk";
|
|
2
2
|
import { BaseRuntime } from "./types.js";
|
|
3
|
-
import type {
|
|
3
|
+
import type { RecordCallback, RuntimeRecord, RuntimeOptions, Thread, ThreadOptions } from "./types.js";
|
|
4
4
|
export declare class OpencodeRuntime extends BaseRuntime<"opencode"> {
|
|
5
5
|
#private;
|
|
6
6
|
constructor(options?: RuntimeOptions<"opencode">);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../src/runtime/opencode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../src/runtime/opencode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,cAAc,EACd,MAAM,EACN,aAAa,EACd,MAAM,YAAY,CAAC;AAIpB,qBAAa,eAAgB,SAAQ,WAAW,CAAC,UAAU,CAAC;;gBAG9C,OAAO,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC;IAK1C,WAAW,CAAC,OAAO,GAAE,aAAa,CAAC,UAAU,CAAM,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAUjF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAI7B;AAED,qBAAa,cAAe,YAAW,MAAM,CAAC,UAAU,CAAC;IAErD,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBADT,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,MAAM;IAG9B,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAuDzF,oBAAoB,CAAC,MAAM,EAAE,aAAa,CAAC,UAAU,CAAC,GAAG,MAAM;CA0ChE"}
|
package/dist/runtime/opencode.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { createOpencode } from "@opencode-ai/sdk";
|
|
2
2
|
import { BaseRuntime } from "./types.js";
|
|
3
|
+
import { formatValue } from "./format.js";
|
|
3
4
|
export class OpencodeRuntime extends BaseRuntime {
|
|
4
5
|
#opencode;
|
|
5
6
|
constructor(options) {
|
|
@@ -26,16 +27,14 @@ export class OpencodeThread {
|
|
|
26
27
|
this.client = client;
|
|
27
28
|
this.sessionId = sessionId;
|
|
28
29
|
}
|
|
29
|
-
async runStreamed(prompt, onRecord
|
|
30
|
-
process.stdout.write(`${this.recordToPrettyString(record)}\n`);
|
|
31
|
-
}) {
|
|
30
|
+
async runStreamed(prompt, onRecord) {
|
|
32
31
|
const request = {
|
|
33
32
|
path: { id: this.sessionId },
|
|
34
33
|
body: {
|
|
35
34
|
parts: [{ type: "text", text: prompt }],
|
|
36
35
|
},
|
|
37
36
|
};
|
|
38
|
-
await onRecord({ runtime: "opencode", request: prompt });
|
|
37
|
+
await onRecord?.(this, { runtime: "opencode", request: prompt });
|
|
39
38
|
const { stream } = await this.client.event.subscribe({
|
|
40
39
|
throwOnError: true,
|
|
41
40
|
});
|
|
@@ -45,7 +44,7 @@ export class OpencodeThread {
|
|
|
45
44
|
});
|
|
46
45
|
for await (const event of stream) {
|
|
47
46
|
if ("sessionID" in event.properties && event.properties.sessionID === this.sessionId) {
|
|
48
|
-
await onRecord({ runtime: "opencode", event });
|
|
47
|
+
await onRecord?.(this, { runtime: "opencode", event });
|
|
49
48
|
if (event.type === "session.error") {
|
|
50
49
|
throw new Error(event.properties.error?.name ?? "Opencode session error");
|
|
51
50
|
}
|
|
@@ -73,9 +72,6 @@ export class OpencodeThread {
|
|
|
73
72
|
.join("");
|
|
74
73
|
}
|
|
75
74
|
recordToPrettyString(record) {
|
|
76
|
-
const formatValue = (value) => {
|
|
77
|
-
return typeof value === "string" ? value : JSON.stringify(value, null, 2);
|
|
78
|
-
};
|
|
79
75
|
if ("request" in record) {
|
|
80
76
|
return `[opencode] request\n${record.request}`;
|
|
81
77
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../src/runtime/opencode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAuB,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../src/runtime/opencode.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime/qwen.d.ts
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import { type QueryOptions } from "@qwen-code/sdk";
|
|
2
1
|
import { BaseRuntime } from "./types.js";
|
|
3
|
-
import type {
|
|
2
|
+
import type { RecordCallback, RuntimeOptions, RuntimeRecord, Thread, ThreadOptions } from "./types.js";
|
|
4
3
|
export declare class QwenRuntime extends BaseRuntime<"qwen"> {
|
|
4
|
+
private readonly options;
|
|
5
|
+
constructor(options?: RuntimeOptions<"qwen">);
|
|
5
6
|
startThread(options?: ThreadOptions<"qwen">): Promise<Thread<"qwen">>;
|
|
6
7
|
}
|
|
7
8
|
export declare class QwenThread implements Thread<"qwen"> {
|
|
8
9
|
#private;
|
|
9
10
|
private readonly options;
|
|
10
|
-
constructor(options:
|
|
11
|
+
constructor(options: ThreadOptions<"qwen">);
|
|
11
12
|
runStreamed(prompt: string, onRecord?: RecordCallback<"qwen">): Promise<string>;
|
|
12
13
|
recordToPrettyString(record: RuntimeRecord<"qwen">): string;
|
|
13
14
|
}
|