background-agents 0.1.2 → 1.0.2
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 +46 -297
- package/app/assets/icon.png +0 -0
- package/app/assets/tray-icon.png +0 -0
- package/app/assets/tray-icon.svg +4 -0
- package/app/dist/main.js +932 -0
- package/app/dist/preload.cjs +70 -0
- package/app/package.json +6 -0
- package/bin/background-agents.js +298 -0
- package/lib/ui.js +110 -0
- package/package.json +33 -57
- package/dist/agents/claude/index.d.ts +0 -11
- package/dist/agents/claude/index.d.ts.map +0 -1
- package/dist/agents/claude/index.js +0 -78
- package/dist/agents/claude/index.js.map +0 -1
- package/dist/agents/claude/parser.d.ts +0 -16
- package/dist/agents/claude/parser.d.ts.map +0 -1
- package/dist/agents/claude/parser.js +0 -87
- package/dist/agents/claude/parser.js.map +0 -1
- package/dist/agents/claude/tools.d.ts +0 -7
- package/dist/agents/claude/tools.d.ts.map +0 -1
- package/dist/agents/claude/tools.js +0 -15
- package/dist/agents/claude/tools.js.map +0 -1
- package/dist/agents/codex/index.d.ts +0 -11
- package/dist/agents/codex/index.d.ts.map +0 -1
- package/dist/agents/codex/index.js +0 -60
- package/dist/agents/codex/index.js.map +0 -1
- package/dist/agents/codex/parser.d.ts +0 -12
- package/dist/agents/codex/parser.d.ts.map +0 -1
- package/dist/agents/codex/parser.js +0 -108
- package/dist/agents/codex/parser.js.map +0 -1
- package/dist/agents/codex/tools.d.ts +0 -11
- package/dist/agents/codex/tools.d.ts.map +0 -1
- package/dist/agents/codex/tools.js +0 -40
- package/dist/agents/codex/tools.js.map +0 -1
- package/dist/agents/eliza/bundle-content.d.ts +0 -6
- package/dist/agents/eliza/bundle-content.d.ts.map +0 -1
- package/dist/agents/eliza/bundle-content.js +0 -7
- package/dist/agents/eliza/bundle-content.js.map +0 -1
- package/dist/agents/eliza/cli.bundle.js +0 -579
- package/dist/agents/eliza/cli.d.ts +0 -10
- package/dist/agents/eliza/cli.d.ts.map +0 -1
- package/dist/agents/eliza/cli.js +0 -342
- package/dist/agents/eliza/cli.js.map +0 -1
- package/dist/agents/eliza/index.d.ts +0 -22
- package/dist/agents/eliza/index.d.ts.map +0 -1
- package/dist/agents/eliza/index.js +0 -54
- package/dist/agents/eliza/index.js.map +0 -1
- package/dist/agents/eliza/parser.d.ts +0 -16
- package/dist/agents/eliza/parser.d.ts.map +0 -1
- package/dist/agents/eliza/parser.js +0 -67
- package/dist/agents/eliza/parser.js.map +0 -1
- package/dist/agents/eliza/patterns.d.ts +0 -41
- package/dist/agents/eliza/patterns.d.ts.map +0 -1
- package/dist/agents/eliza/patterns.js +0 -259
- package/dist/agents/eliza/patterns.js.map +0 -1
- package/dist/agents/eliza/tools.d.ts +0 -7
- package/dist/agents/eliza/tools.d.ts.map +0 -1
- package/dist/agents/eliza/tools.js +0 -14
- package/dist/agents/eliza/tools.js.map +0 -1
- package/dist/agents/gemini/index.d.ts +0 -11
- package/dist/agents/gemini/index.d.ts.map +0 -1
- package/dist/agents/gemini/index.js +0 -46
- package/dist/agents/gemini/index.js.map +0 -1
- package/dist/agents/gemini/parser.d.ts +0 -31
- package/dist/agents/gemini/parser.d.ts.map +0 -1
- package/dist/agents/gemini/parser.js +0 -106
- package/dist/agents/gemini/parser.js.map +0 -1
- package/dist/agents/gemini/tools.d.ts +0 -7
- package/dist/agents/gemini/tools.d.ts.map +0 -1
- package/dist/agents/gemini/tools.js +0 -23
- package/dist/agents/gemini/tools.js.map +0 -1
- package/dist/agents/goose/index.d.ts +0 -11
- package/dist/agents/goose/index.d.ts.map +0 -1
- package/dist/agents/goose/index.js +0 -73
- package/dist/agents/goose/index.js.map +0 -1
- package/dist/agents/goose/parser.d.ts +0 -24
- package/dist/agents/goose/parser.d.ts.map +0 -1
- package/dist/agents/goose/parser.js +0 -86
- package/dist/agents/goose/parser.js.map +0 -1
- package/dist/agents/goose/tools.d.ts +0 -10
- package/dist/agents/goose/tools.d.ts.map +0 -1
- package/dist/agents/goose/tools.js +0 -30
- package/dist/agents/goose/tools.js.map +0 -1
- package/dist/agents/index.d.ts +0 -27
- package/dist/agents/index.d.ts.map +0 -1
- package/dist/agents/index.js +0 -46
- package/dist/agents/index.js.map +0 -1
- package/dist/agents/opencode/index.d.ts +0 -12
- package/dist/agents/opencode/index.d.ts.map +0 -1
- package/dist/agents/opencode/index.js +0 -53
- package/dist/agents/opencode/index.js.map +0 -1
- package/dist/agents/opencode/parser.d.ts +0 -15
- package/dist/agents/opencode/parser.d.ts.map +0 -1
- package/dist/agents/opencode/parser.js +0 -71
- package/dist/agents/opencode/parser.js.map +0 -1
- package/dist/agents/opencode/tools.d.ts +0 -7
- package/dist/agents/opencode/tools.d.ts.map +0 -1
- package/dist/agents/opencode/tools.js +0 -10
- package/dist/agents/opencode/tools.js.map +0 -1
- package/dist/agents/openhands/index.d.ts +0 -17
- package/dist/agents/openhands/index.d.ts.map +0 -1
- package/dist/agents/openhands/index.js +0 -67
- package/dist/agents/openhands/index.js.map +0 -1
- package/dist/agents/openhands/parser.d.ts +0 -16
- package/dist/agents/openhands/parser.d.ts.map +0 -1
- package/dist/agents/openhands/parser.js +0 -93
- package/dist/agents/openhands/parser.js.map +0 -1
- package/dist/agents/openhands/tools.d.ts +0 -7
- package/dist/agents/openhands/tools.d.ts.map +0 -1
- package/dist/agents/openhands/tools.js +0 -24
- package/dist/agents/openhands/tools.js.map +0 -1
- package/dist/agents/pi/index.d.ts +0 -14
- package/dist/agents/pi/index.d.ts.map +0 -1
- package/dist/agents/pi/index.js +0 -54
- package/dist/agents/pi/index.js.map +0 -1
- package/dist/agents/pi/parser.d.ts +0 -21
- package/dist/agents/pi/parser.d.ts.map +0 -1
- package/dist/agents/pi/parser.js +0 -91
- package/dist/agents/pi/parser.js.map +0 -1
- package/dist/agents/pi/tools.d.ts +0 -8
- package/dist/agents/pi/tools.d.ts.map +0 -1
- package/dist/agents/pi/tools.js +0 -16
- package/dist/agents/pi/tools.js.map +0 -1
- package/dist/agents/picocode/index.d.ts +0 -18
- package/dist/agents/picocode/index.d.ts.map +0 -1
- package/dist/agents/picocode/index.js +0 -68
- package/dist/agents/picocode/index.js.map +0 -1
- package/dist/agents/picocode/parser.d.ts +0 -19
- package/dist/agents/picocode/parser.d.ts.map +0 -1
- package/dist/agents/picocode/parser.js +0 -104
- package/dist/agents/picocode/parser.js.map +0 -1
- package/dist/agents/picocode/tools.d.ts +0 -9
- package/dist/agents/picocode/tools.d.ts.map +0 -1
- package/dist/agents/picocode/tools.js +0 -27
- package/dist/agents/picocode/tools.js.map +0 -1
- package/dist/background/index.d.ts +0 -6
- package/dist/background/index.d.ts.map +0 -1
- package/dist/background/index.js +0 -5
- package/dist/background/index.js.map +0 -1
- package/dist/background/session.d.ts +0 -47
- package/dist/background/session.d.ts.map +0 -1
- package/dist/background/session.js +0 -481
- package/dist/background/session.js.map +0 -1
- package/dist/background/types.d.ts +0 -55
- package/dist/background/types.d.ts.map +0 -1
- package/dist/background/types.js +0 -5
- package/dist/background/types.js.map +0 -1
- package/dist/core/agent.d.ts +0 -95
- package/dist/core/agent.d.ts.map +0 -1
- package/dist/core/agent.js +0 -8
- package/dist/core/agent.js.map +0 -1
- package/dist/core/index.d.ts +0 -7
- package/dist/core/index.d.ts.map +0 -1
- package/dist/core/index.js +0 -6
- package/dist/core/index.js.map +0 -1
- package/dist/core/registry.d.ts +0 -48
- package/dist/core/registry.d.ts.map +0 -1
- package/dist/core/registry.js +0 -68
- package/dist/core/registry.js.map +0 -1
- package/dist/core/tools.d.ts +0 -31
- package/dist/core/tools.d.ts.map +0 -1
- package/dist/core/tools.js +0 -82
- package/dist/core/tools.js.map +0 -1
- package/dist/debug.d.ts +0 -7
- package/dist/debug.d.ts.map +0 -1
- package/dist/debug.js +0 -19
- package/dist/debug.js.map +0 -1
- package/dist/factory.d.ts +0 -28
- package/dist/factory.d.ts.map +0 -1
- package/dist/factory.js +0 -44
- package/dist/factory.js.map +0 -1
- package/dist/index.d.ts +0 -48
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -62
- package/dist/index.js.map +0 -1
- package/dist/providers/base.d.ts +0 -187
- package/dist/providers/base.d.ts.map +0 -1
- package/dist/providers/base.js +0 -619
- package/dist/providers/base.js.map +0 -1
- package/dist/providers/claude.d.ts +0 -14
- package/dist/providers/claude.d.ts.map +0 -1
- package/dist/providers/claude.js +0 -122
- package/dist/providers/claude.js.map +0 -1
- package/dist/providers/codex.d.ts +0 -14
- package/dist/providers/codex.d.ts.map +0 -1
- package/dist/providers/codex.js +0 -160
- package/dist/providers/codex.js.map +0 -1
- package/dist/providers/gemini.d.ts +0 -16
- package/dist/providers/gemini.d.ts.map +0 -1
- package/dist/providers/gemini.js +0 -101
- package/dist/providers/gemini.js.map +0 -1
- package/dist/providers/index.d.ts +0 -6
- package/dist/providers/index.d.ts.map +0 -1
- package/dist/providers/index.js +0 -6
- package/dist/providers/index.js.map +0 -1
- package/dist/providers/opencode.d.ts +0 -14
- package/dist/providers/opencode.d.ts.map +0 -1
- package/dist/providers/opencode.js +0 -100
- package/dist/providers/opencode.js.map +0 -1
- package/dist/sandbox/daytona.d.ts +0 -8
- package/dist/sandbox/daytona.d.ts.map +0 -1
- package/dist/sandbox/daytona.js +0 -181
- package/dist/sandbox/daytona.js.map +0 -1
- package/dist/sandbox/index.d.ts +0 -14
- package/dist/sandbox/index.d.ts.map +0 -1
- package/dist/sandbox/index.js +0 -15
- package/dist/sandbox/index.js.map +0 -1
- package/dist/session.d.ts +0 -75
- package/dist/session.d.ts.map +0 -1
- package/dist/session.js +0 -117
- package/dist/session.js.map +0 -1
- package/dist/types/events.d.ts +0 -114
- package/dist/types/events.d.ts.map +0 -1
- package/dist/types/events.js +0 -50
- package/dist/types/events.js.map +0 -1
- package/dist/types/index.d.ts +0 -3
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -3
- package/dist/types/index.js.map +0 -1
- package/dist/types/provider.d.ts +0 -67
- package/dist/types/provider.d.ts.map +0 -1
- package/dist/types/provider.js +0 -5
- package/dist/types/provider.js.map +0 -1
- package/dist/utils/index.d.ts +0 -3
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/index.js +0 -3
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/install.d.ts +0 -37
- package/dist/utils/install.d.ts.map +0 -1
- package/dist/utils/install.js +0 -122
- package/dist/utils/install.js.map +0 -1
- package/dist/utils/json.d.ts +0 -8
- package/dist/utils/json.d.ts.map +0 -1
- package/dist/utils/json.js +0 -15
- package/dist/utils/json.js.map +0 -1
- package/src/index.ts +0 -156
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import type { Event, ProviderCommand, ProviderName, ProviderOptions, RunOptions } from "../types/index.js";
|
|
2
|
-
import { Provider } from "./base.js";
|
|
3
|
-
/**
|
|
4
|
-
* Claude Code CLI provider
|
|
5
|
-
*
|
|
6
|
-
* Interacts with the Claude CLI tool which outputs JSON lines in stream-json format
|
|
7
|
-
*/
|
|
8
|
-
export declare class ClaudeProvider extends Provider {
|
|
9
|
-
readonly name: ProviderName;
|
|
10
|
-
constructor(options: ProviderOptions);
|
|
11
|
-
getCommand(options?: RunOptions): ProviderCommand;
|
|
12
|
-
parse(line: string): Event | Event[] | null;
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=claude.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/providers/claude.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAG1G,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AA0EpC;;;;GAIG;AACH,qBAAa,cAAe,SAAQ,QAAQ;IAC1C,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAW;gBAE1B,OAAO,EAAE,eAAe;IAIpC,UAAU,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,eAAe;IAsCjD,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,EAAE,GAAG,IAAI;CAoE5C"}
|
package/dist/providers/claude.js
DELETED
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
import { createToolStartEvent } from "../types/events.js";
|
|
2
|
-
import { safeJsonParse } from "../utils/json.js";
|
|
3
|
-
import { Provider } from "./base.js";
|
|
4
|
-
// Canonical names: read, edit, write, glob, grep, shell (full set, lowercase)
|
|
5
|
-
const CLAUDE_TOOL_NAME_MAP = {
|
|
6
|
-
Write: "write",
|
|
7
|
-
Read: "read",
|
|
8
|
-
Edit: "edit",
|
|
9
|
-
Glob: "glob",
|
|
10
|
-
Grep: "grep",
|
|
11
|
-
Bash: "shell",
|
|
12
|
-
WebSearch: "web_search",
|
|
13
|
-
};
|
|
14
|
-
function normalizeClaudeToolName(name) {
|
|
15
|
-
return CLAUDE_TOOL_NAME_MAP[name] ?? name.toLowerCase();
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Claude Code CLI provider
|
|
19
|
-
*
|
|
20
|
-
* Interacts with the Claude CLI tool which outputs JSON lines in stream-json format
|
|
21
|
-
*/
|
|
22
|
-
export class ClaudeProvider extends Provider {
|
|
23
|
-
name = "claude";
|
|
24
|
-
constructor(options) {
|
|
25
|
-
super(options);
|
|
26
|
-
}
|
|
27
|
-
getCommand(options) {
|
|
28
|
-
const args = [];
|
|
29
|
-
// Print mode for non-interactive usage
|
|
30
|
-
args.push("-p");
|
|
31
|
-
// Add output format flag for JSON streaming (requires --verbose)
|
|
32
|
-
args.push("--output-format", "stream-json", "--verbose");
|
|
33
|
-
// Skip permission prompts when already running in a sandbox
|
|
34
|
-
args.push("--dangerously-skip-permissions");
|
|
35
|
-
// Apply system prompt via native CLI flag when provided.
|
|
36
|
-
if (options?.systemPrompt) {
|
|
37
|
-
args.push("--system-prompt", options.systemPrompt);
|
|
38
|
-
}
|
|
39
|
-
// Add model if specified (e.g., "sonnet", "opus", "claude-sonnet-4-5-20250929")
|
|
40
|
-
if (options?.model) {
|
|
41
|
-
args.push("--model", options.model);
|
|
42
|
-
}
|
|
43
|
-
if (this.sessionId || options?.sessionId) {
|
|
44
|
-
args.push("--resume", this.sessionId || options.sessionId);
|
|
45
|
-
}
|
|
46
|
-
// Add the prompt if provided
|
|
47
|
-
if (options?.prompt) {
|
|
48
|
-
args.push(options.prompt);
|
|
49
|
-
}
|
|
50
|
-
return {
|
|
51
|
-
cmd: "claude",
|
|
52
|
-
args,
|
|
53
|
-
env: options?.env,
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
parse(line) {
|
|
57
|
-
const json = safeJsonParse(line);
|
|
58
|
-
if (!json) {
|
|
59
|
-
return null;
|
|
60
|
-
}
|
|
61
|
-
// System init event contains session ID
|
|
62
|
-
if (json.type === "system" && "subtype" in json && json.subtype === "init") {
|
|
63
|
-
return { type: "session", id: json.session_id };
|
|
64
|
-
}
|
|
65
|
-
// Assistant message contains the response content
|
|
66
|
-
if (json.type === "assistant" && "message" in json) {
|
|
67
|
-
const content = json.message.content;
|
|
68
|
-
if (content && content.length > 0) {
|
|
69
|
-
// Find text content and emit as token
|
|
70
|
-
for (const block of content) {
|
|
71
|
-
if (block.type === "text" && block.text) {
|
|
72
|
-
return { type: "token", text: block.text };
|
|
73
|
-
}
|
|
74
|
-
if (block.type === "tool_use" && block.name) {
|
|
75
|
-
return createToolStartEvent(normalizeClaudeToolName(block.name), block.input);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
return null;
|
|
80
|
-
}
|
|
81
|
-
// Tool use event
|
|
82
|
-
if (json.type === "tool_use" && "name" in json) {
|
|
83
|
-
return createToolStartEvent(normalizeClaudeToolName(json.name), json.input);
|
|
84
|
-
}
|
|
85
|
-
// Tool result (standalone or inside user message)
|
|
86
|
-
function toolResultOutput(obj) {
|
|
87
|
-
let out = obj.result;
|
|
88
|
-
if (out === undefined && obj.content !== undefined) {
|
|
89
|
-
if (typeof obj.content === "string")
|
|
90
|
-
out = obj.content;
|
|
91
|
-
else if (Array.isArray(obj.content) && obj.content[0]?.text)
|
|
92
|
-
out = obj.content[0].text;
|
|
93
|
-
}
|
|
94
|
-
return out;
|
|
95
|
-
}
|
|
96
|
-
if (json.type === "tool_result") {
|
|
97
|
-
return { type: "tool_end", output: toolResultOutput(json) };
|
|
98
|
-
}
|
|
99
|
-
if (json.type === "user" && json.message?.content) {
|
|
100
|
-
for (const block of json.message.content) {
|
|
101
|
-
if (block.type === "tool_result") {
|
|
102
|
-
let out;
|
|
103
|
-
if (typeof block.content === "string")
|
|
104
|
-
out = block.content;
|
|
105
|
-
else if (Array.isArray(block.content) && block.content[0]?.text)
|
|
106
|
-
out = block.content[0].text;
|
|
107
|
-
return { type: "tool_end", output: out };
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
// Result event marks end of interaction (success or CLI error)
|
|
112
|
-
if (json.type === "result") {
|
|
113
|
-
const err = json.subtype === "error_during_execution" ||
|
|
114
|
-
json.subtype === "error"
|
|
115
|
-
? json.error ?? json.result ?? "Unknown error"
|
|
116
|
-
: undefined;
|
|
117
|
-
return { type: "end", ...(err ? { error: err } : {}) };
|
|
118
|
-
}
|
|
119
|
-
return null;
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
//# sourceMappingURL=claude.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/providers/claude.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import type { Event, ProviderCommand, ProviderName, ProviderOptions, RunOptions } from "../types/index.js";
|
|
2
|
-
import { Provider } from "./base.js";
|
|
3
|
-
/**
|
|
4
|
-
* OpenAI Codex provider
|
|
5
|
-
*
|
|
6
|
-
* Interacts with the Codex CLI tool which outputs JSON lines
|
|
7
|
-
*/
|
|
8
|
-
export declare class CodexProvider extends Provider {
|
|
9
|
-
readonly name: ProviderName;
|
|
10
|
-
constructor(options: ProviderOptions);
|
|
11
|
-
getCommand(options?: RunOptions): ProviderCommand;
|
|
12
|
-
parse(line: string): Event | Event[] | null;
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=codex.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../src/providers/codex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAI1G,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AA6GpC;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,QAAQ;IACzC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAU;gBAEzB,OAAO,EAAE,eAAe;IAIpC,UAAU,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,eAAe;IAsCjD,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,EAAE,GAAG,IAAI;CAiG5C"}
|
package/dist/providers/codex.js
DELETED
|
@@ -1,160 +0,0 @@
|
|
|
1
|
-
import { createToolStartEvent } from "../types/events.js";
|
|
2
|
-
import { safeJsonParse } from "../utils/json.js";
|
|
3
|
-
import { Provider } from "./base.js";
|
|
4
|
-
// Map Codex item types / MCP tools into same canonical set as Claude: read, edit, write, glob, grep, shell
|
|
5
|
-
const CODEX_ITEM_TYPE_MAP = {
|
|
6
|
-
command_execution: "shell",
|
|
7
|
-
file_change: "write",
|
|
8
|
-
};
|
|
9
|
-
function normalizeCodexToolName(itemType, toolName) {
|
|
10
|
-
const fromType = CODEX_ITEM_TYPE_MAP[itemType];
|
|
11
|
-
if (fromType)
|
|
12
|
-
return fromType;
|
|
13
|
-
if (itemType === "mcp_tool_call" && toolName) {
|
|
14
|
-
const lower = toolName.toLowerCase();
|
|
15
|
-
if (lower === "read" || lower === "read_file")
|
|
16
|
-
return "read";
|
|
17
|
-
if (lower === "write" || lower === "write_file")
|
|
18
|
-
return "write";
|
|
19
|
-
if (lower === "edit" || lower === "apply_patch" || lower === "patch")
|
|
20
|
-
return "edit";
|
|
21
|
-
if (lower === "glob" || lower === "glob_file_search")
|
|
22
|
-
return "glob";
|
|
23
|
-
if (lower === "grep" || lower === "grep_search")
|
|
24
|
-
return "grep";
|
|
25
|
-
if (lower === "bash" || lower === "shell" || lower === "run_command")
|
|
26
|
-
return "shell";
|
|
27
|
-
return lower;
|
|
28
|
-
}
|
|
29
|
-
return itemType;
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* OpenAI Codex provider
|
|
33
|
-
*
|
|
34
|
-
* Interacts with the Codex CLI tool which outputs JSON lines
|
|
35
|
-
*/
|
|
36
|
-
export class CodexProvider extends Provider {
|
|
37
|
-
name = "codex";
|
|
38
|
-
constructor(options) {
|
|
39
|
-
super(options);
|
|
40
|
-
}
|
|
41
|
-
getCommand(options) {
|
|
42
|
-
const session = this.sessionId || options?.sessionId;
|
|
43
|
-
const args = [];
|
|
44
|
-
// Use exec subcommand for non-interactive mode with JSON output
|
|
45
|
-
args.push("exec");
|
|
46
|
-
// JSON output for streaming events
|
|
47
|
-
args.push("--json");
|
|
48
|
-
// Skip git repo check for sandbox environments
|
|
49
|
-
args.push("--skip-git-repo-check");
|
|
50
|
-
// Skip permission prompts when already running in a sandbox
|
|
51
|
-
args.push("--yolo");
|
|
52
|
-
// Add model if specified (e.g., "gpt-4o", "o1", "o3")
|
|
53
|
-
if (options?.model) {
|
|
54
|
-
args.push("--model", options.model);
|
|
55
|
-
}
|
|
56
|
-
if (session) {
|
|
57
|
-
// Resume an existing session in headless mode (exec subcommand)
|
|
58
|
-
args.push("resume", session);
|
|
59
|
-
}
|
|
60
|
-
// Add prompt as trailing argument
|
|
61
|
-
if (options?.prompt) {
|
|
62
|
-
args.push(options.prompt);
|
|
63
|
-
}
|
|
64
|
-
return {
|
|
65
|
-
cmd: "codex",
|
|
66
|
-
args,
|
|
67
|
-
env: options?.env,
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
parse(line) {
|
|
71
|
-
const json = safeJsonParse(line);
|
|
72
|
-
if (!json) {
|
|
73
|
-
return null;
|
|
74
|
-
}
|
|
75
|
-
// Thread/session start
|
|
76
|
-
if (json.type === "thread.started") {
|
|
77
|
-
return { type: "session", id: json.thread_id };
|
|
78
|
-
}
|
|
79
|
-
// Message text delta
|
|
80
|
-
if (json.type === "item.message.delta") {
|
|
81
|
-
return { type: "token", text: json.text };
|
|
82
|
-
}
|
|
83
|
-
// Item completed (full message)
|
|
84
|
-
if (json.type === "item.completed" && json.item?.type === "agent_message" && json.item?.text) {
|
|
85
|
-
return { type: "token", text: json.item.text };
|
|
86
|
-
}
|
|
87
|
-
// Item started - tool/action beginning (current Codex schema)
|
|
88
|
-
if (json.type === "item.started" && json.item) {
|
|
89
|
-
const it = json.item;
|
|
90
|
-
const name = normalizeCodexToolName(it.type, it.tool);
|
|
91
|
-
let input;
|
|
92
|
-
if (it.type === "command_execution" && it.command != null) {
|
|
93
|
-
input = { command: it.command };
|
|
94
|
-
}
|
|
95
|
-
else if (it.type === "file_change") {
|
|
96
|
-
input = {};
|
|
97
|
-
}
|
|
98
|
-
else if (it.type === "mcp_tool_call" && it.arguments != null) {
|
|
99
|
-
input = it.arguments;
|
|
100
|
-
}
|
|
101
|
-
else {
|
|
102
|
-
input = undefined;
|
|
103
|
-
}
|
|
104
|
-
return createToolStartEvent(name, input);
|
|
105
|
-
}
|
|
106
|
-
// Item completed - tool/action result (current Codex schema)
|
|
107
|
-
if (json.type === "item.completed" && json.item) {
|
|
108
|
-
const it = json.item;
|
|
109
|
-
if (it.type === "command_execution" && it.aggregated_output !== undefined) {
|
|
110
|
-
return { type: "tool_end", output: it.aggregated_output };
|
|
111
|
-
}
|
|
112
|
-
if (it.type === "mcp_tool_call") {
|
|
113
|
-
let output;
|
|
114
|
-
if (it.result?.content?.length && it.result.content[0]?.text) {
|
|
115
|
-
output = it.result.content[0].text;
|
|
116
|
-
}
|
|
117
|
-
else if (it.result) {
|
|
118
|
-
output = JSON.stringify(it.result);
|
|
119
|
-
}
|
|
120
|
-
return { type: "tool_end", output };
|
|
121
|
-
}
|
|
122
|
-
// file_change: emit tool_start then tool_end (Codex only sends item.completed) so output matches Claude
|
|
123
|
-
if (it.type === "file_change" && it.changes && it.changes.length > 0) {
|
|
124
|
-
const c = it.changes[0];
|
|
125
|
-
const input = { file_path: c.path, kind: c.kind, content: null };
|
|
126
|
-
return [
|
|
127
|
-
createToolStartEvent("write", input),
|
|
128
|
-
{ type: "tool_end", output: JSON.stringify(it.changes) },
|
|
129
|
-
];
|
|
130
|
-
}
|
|
131
|
-
return null;
|
|
132
|
-
}
|
|
133
|
-
// Tool start (legacy)
|
|
134
|
-
if (json.type === "item.tool.start") {
|
|
135
|
-
return createToolStartEvent(normalizeCodexToolName("mcp_tool_call", json.name), undefined);
|
|
136
|
-
}
|
|
137
|
-
// Tool input delta (legacy)
|
|
138
|
-
if (json.type === "item.tool.input.delta") {
|
|
139
|
-
return { type: "tool_delta", text: json.text };
|
|
140
|
-
}
|
|
141
|
-
// Tool end (legacy)
|
|
142
|
-
if (json.type === "item.tool.end") {
|
|
143
|
-
return { type: "tool_end" };
|
|
144
|
-
}
|
|
145
|
-
// Turn complete
|
|
146
|
-
if (json.type === "turn.completed") {
|
|
147
|
-
return { type: "end" };
|
|
148
|
-
}
|
|
149
|
-
// Turn failed - emit end event with error
|
|
150
|
-
if (json.type === "turn.failed") {
|
|
151
|
-
return { type: "end", error: json.error?.message };
|
|
152
|
-
}
|
|
153
|
-
// Error event - emit as end with error (these are typically fatal errors like auth failures)
|
|
154
|
-
if (json.type === "error") {
|
|
155
|
-
return { type: "end", error: json.message };
|
|
156
|
-
}
|
|
157
|
-
return null;
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
//# sourceMappingURL=codex.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/providers/codex.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import type { Event, ProviderCommand, ProviderName, ProviderOptions, RunOptions } from "../types/index.js";
|
|
2
|
-
import { Provider } from "./base.js";
|
|
3
|
-
/**
|
|
4
|
-
* Google Gemini CLI provider
|
|
5
|
-
*
|
|
6
|
-
* Interacts with the Gemini CLI tool which outputs JSON lines
|
|
7
|
-
*/
|
|
8
|
-
export declare class GeminiProvider extends Provider {
|
|
9
|
-
readonly name: ProviderName;
|
|
10
|
-
/** Accumulated tool output between tool.start and tool.end */
|
|
11
|
-
private toolOutputBuffer;
|
|
12
|
-
constructor(options: ProviderOptions);
|
|
13
|
-
getCommand(options?: RunOptions): ProviderCommand;
|
|
14
|
-
parse(line: string): Event | null;
|
|
15
|
-
}
|
|
16
|
-
//# sourceMappingURL=gemini.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/providers/gemini.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAG1G,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAyEpC;;;;GAIG;AACH,qBAAa,cAAe,SAAQ,QAAQ;IAC1C,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAW;IACtC,8DAA8D;IAC9D,OAAO,CAAC,gBAAgB,CAAK;gBAEjB,OAAO,EAAE,eAAe;IAIpC,UAAU,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,eAAe;IA2BjD,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI;CAyDlC"}
|
package/dist/providers/gemini.js
DELETED
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
import { createToolStartEvent } from "../types/events.js";
|
|
2
|
-
import { safeJsonParse } from "../utils/json.js";
|
|
3
|
-
import { Provider } from "./base.js";
|
|
4
|
-
// Map Gemini CLI tool names to canonical set (same as Claude/Codex)
|
|
5
|
-
const GEMINI_TOOL_NAME_MAP = {
|
|
6
|
-
execute_code: "shell",
|
|
7
|
-
run_command: "shell",
|
|
8
|
-
bash: "shell",
|
|
9
|
-
write_file: "write",
|
|
10
|
-
read_file: "read",
|
|
11
|
-
apply_patch: "edit",
|
|
12
|
-
glob_file_search: "glob",
|
|
13
|
-
grep_search: "grep",
|
|
14
|
-
};
|
|
15
|
-
function normalizeGeminiToolName(name) {
|
|
16
|
-
const lower = name.toLowerCase();
|
|
17
|
-
return GEMINI_TOOL_NAME_MAP[lower] ?? GEMINI_TOOL_NAME_MAP[name] ?? lower;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Google Gemini CLI provider
|
|
21
|
-
*
|
|
22
|
-
* Interacts with the Gemini CLI tool which outputs JSON lines
|
|
23
|
-
*/
|
|
24
|
-
export class GeminiProvider extends Provider {
|
|
25
|
-
name = "gemini";
|
|
26
|
-
/** Accumulated tool output between tool.start and tool.end */
|
|
27
|
-
toolOutputBuffer = "";
|
|
28
|
-
constructor(options) {
|
|
29
|
-
super(options);
|
|
30
|
-
}
|
|
31
|
-
getCommand(options) {
|
|
32
|
-
const args = [];
|
|
33
|
-
// Stream JSON for event parsing
|
|
34
|
-
args.push("--output-format", "stream-json");
|
|
35
|
-
// Add model if specified (e.g., "gemini-2.0-flash", "gemini-1.5-pro")
|
|
36
|
-
if (options?.model) {
|
|
37
|
-
args.push("--model", options.model);
|
|
38
|
-
}
|
|
39
|
-
if (this.sessionId || options?.sessionId) {
|
|
40
|
-
args.push("--resume", this.sessionId || options.sessionId);
|
|
41
|
-
}
|
|
42
|
-
// Add prompt with -p flag if provided
|
|
43
|
-
if (options?.prompt) {
|
|
44
|
-
args.push("-p", options.prompt);
|
|
45
|
-
}
|
|
46
|
-
return {
|
|
47
|
-
cmd: "gemini",
|
|
48
|
-
args,
|
|
49
|
-
env: options?.env,
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
parse(line) {
|
|
53
|
-
const json = safeJsonParse(line);
|
|
54
|
-
if (!json) {
|
|
55
|
-
return null;
|
|
56
|
-
}
|
|
57
|
-
// Session init
|
|
58
|
-
if (json.type === "init") {
|
|
59
|
-
return { type: "session", id: json.session_id };
|
|
60
|
-
}
|
|
61
|
-
// Assistant text delta (legacy format)
|
|
62
|
-
if (json.type === "assistant.delta") {
|
|
63
|
-
return { type: "token", text: json.text };
|
|
64
|
-
}
|
|
65
|
-
// Message event (new format)
|
|
66
|
-
if (json.type === "message") {
|
|
67
|
-
if (json.role === "assistant" && json.content) {
|
|
68
|
-
return { type: "token", text: json.content };
|
|
69
|
-
}
|
|
70
|
-
// Skip user messages
|
|
71
|
-
return null;
|
|
72
|
-
}
|
|
73
|
-
// Result event (new format) - marks completion
|
|
74
|
-
if (json.type === "result") {
|
|
75
|
-
return { type: "end" };
|
|
76
|
-
}
|
|
77
|
-
// Tool start
|
|
78
|
-
if (json.type === "tool.start") {
|
|
79
|
-
this.toolOutputBuffer = "";
|
|
80
|
-
const name = normalizeGeminiToolName(json.name);
|
|
81
|
-
return createToolStartEvent(name, json.input);
|
|
82
|
-
}
|
|
83
|
-
// Tool delta (streaming tool input or output)
|
|
84
|
-
if (json.type === "tool.delta") {
|
|
85
|
-
this.toolOutputBuffer += json.text;
|
|
86
|
-
return { type: "tool_delta", text: json.text };
|
|
87
|
-
}
|
|
88
|
-
// Tool end
|
|
89
|
-
if (json.type === "tool.end") {
|
|
90
|
-
const output = this.toolOutputBuffer.trim() || undefined;
|
|
91
|
-
this.toolOutputBuffer = "";
|
|
92
|
-
return { type: "tool_end", output };
|
|
93
|
-
}
|
|
94
|
-
// Assistant complete (legacy format)
|
|
95
|
-
if (json.type === "assistant.complete") {
|
|
96
|
-
return { type: "end" };
|
|
97
|
-
}
|
|
98
|
-
return null;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
//# sourceMappingURL=gemini.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/providers/gemini.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA"}
|
package/dist/providers/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import type { Event, ProviderCommand, ProviderName, ProviderOptions, RunOptions } from "../types/index.js";
|
|
2
|
-
import { Provider } from "./base.js";
|
|
3
|
-
/**
|
|
4
|
-
* OpenCode provider
|
|
5
|
-
*
|
|
6
|
-
* Interacts with the OpenCode CLI tool which outputs JSON lines
|
|
7
|
-
*/
|
|
8
|
-
export declare class OpenCodeProvider extends Provider {
|
|
9
|
-
readonly name: ProviderName;
|
|
10
|
-
constructor(options: ProviderOptions);
|
|
11
|
-
getCommand(options?: RunOptions): ProviderCommand;
|
|
12
|
-
parse(line: string): Event | null;
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=opencode.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../src/providers/opencode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAG1G,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAyFpC;;;;GAIG;AACH,qBAAa,gBAAiB,SAAQ,QAAQ;IAC5C,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAa;gBAE5B,OAAO,EAAE,eAAe;IAIpC,UAAU,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,eAAe;IA2CjD,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI;CAwDlC"}
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
import { createToolStartEvent } from "../types/events.js";
|
|
2
|
-
import { safeJsonParse } from "../utils/json.js";
|
|
3
|
-
import { Provider } from "./base.js";
|
|
4
|
-
/**
|
|
5
|
-
* OpenCode provider
|
|
6
|
-
*
|
|
7
|
-
* Interacts with the OpenCode CLI tool which outputs JSON lines
|
|
8
|
-
*/
|
|
9
|
-
export class OpenCodeProvider extends Provider {
|
|
10
|
-
name = "opencode";
|
|
11
|
-
constructor(options) {
|
|
12
|
-
super(options);
|
|
13
|
-
}
|
|
14
|
-
getCommand(options) {
|
|
15
|
-
// OpenCode sometimes writes JSON events to stderr; run under bash and redirect 2>&1
|
|
16
|
-
// to ensure the sandbox PTY captures the JSONL stream.
|
|
17
|
-
const quote = (s) => `'${s.replace(/'/g, "'\\''")}'`;
|
|
18
|
-
const model = options?.model;
|
|
19
|
-
const session = this.sessionId || options?.sessionId;
|
|
20
|
-
const prompt = options?.prompt;
|
|
21
|
-
const parts = [
|
|
22
|
-
"opencode",
|
|
23
|
-
"run",
|
|
24
|
-
"--format",
|
|
25
|
-
"json",
|
|
26
|
-
"--variant",
|
|
27
|
-
"medium",
|
|
28
|
-
];
|
|
29
|
-
if (model) {
|
|
30
|
-
parts.push("-m", quote(model));
|
|
31
|
-
}
|
|
32
|
-
if (session) {
|
|
33
|
-
parts.push("-s", quote(session));
|
|
34
|
-
}
|
|
35
|
-
if (prompt) {
|
|
36
|
-
parts.push(quote(prompt));
|
|
37
|
-
}
|
|
38
|
-
const command = `${parts.join(" ")} 2>&1`;
|
|
39
|
-
return {
|
|
40
|
-
cmd: "bash",
|
|
41
|
-
args: ["-lc", command],
|
|
42
|
-
env: {
|
|
43
|
-
// Allow all tool actions without interactive approval in headless runs
|
|
44
|
-
OPENCODE_PERMISSION: '{"*":"allow"}',
|
|
45
|
-
...options?.env,
|
|
46
|
-
},
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
parse(line) {
|
|
50
|
-
const json = safeJsonParse(line);
|
|
51
|
-
if (!json) {
|
|
52
|
-
return null;
|
|
53
|
-
}
|
|
54
|
-
// Step start - session initialization
|
|
55
|
-
if (json.type === "step_start") {
|
|
56
|
-
// OpenCode can emit multiple step_start lines for the same session; only emit once.
|
|
57
|
-
if (this.sessionId === json.sessionID)
|
|
58
|
-
return null;
|
|
59
|
-
this.sessionId = json.sessionID;
|
|
60
|
-
return { type: "session", id: json.sessionID };
|
|
61
|
-
}
|
|
62
|
-
// Text content - the actual response
|
|
63
|
-
if (json.type === "text") {
|
|
64
|
-
if (json.part?.type === "text" && json.part.text) {
|
|
65
|
-
return { type: "token", text: json.part.text };
|
|
66
|
-
}
|
|
67
|
-
return null;
|
|
68
|
-
}
|
|
69
|
-
// Tool call start
|
|
70
|
-
if (json.type === "tool_call") {
|
|
71
|
-
const toolName = (json.part?.tool || "unknown").toLowerCase();
|
|
72
|
-
const normalized = toolName === "bash" ? "shell" : toolName;
|
|
73
|
-
return createToolStartEvent(normalized, json.part?.args);
|
|
74
|
-
}
|
|
75
|
-
// Tool use (stream-json: emitted when tool completes; emit as tool_start so it appears in stream)
|
|
76
|
-
if (json.type === "tool_use") {
|
|
77
|
-
const toolName = (json.part?.tool || "unknown").toLowerCase();
|
|
78
|
-
const normalized = toolName === "bash" ? "shell" : toolName;
|
|
79
|
-
const raw = json.part;
|
|
80
|
-
return createToolStartEvent(normalized, raw?.state?.input);
|
|
81
|
-
}
|
|
82
|
-
// Tool result - tool completed
|
|
83
|
-
if (json.type === "tool_result") {
|
|
84
|
-
return { type: "tool_end" };
|
|
85
|
-
}
|
|
86
|
-
// Step finish - emit end only when run actually stops (reason "stop"); ignore intermediate steps (e.g. reason "tool-calls").
|
|
87
|
-
if (json.type === "step_finish") {
|
|
88
|
-
if (json.part?.reason === "stop")
|
|
89
|
-
return { type: "end" };
|
|
90
|
-
return null;
|
|
91
|
-
}
|
|
92
|
-
// Error event - emit as end with error
|
|
93
|
-
if (json.type === "error") {
|
|
94
|
-
const errorMsg = json.error?.data?.message || json.error?.name || "Unknown error";
|
|
95
|
-
return { type: "end", error: errorMsg };
|
|
96
|
-
}
|
|
97
|
-
return null;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
//# sourceMappingURL=opencode.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../src/providers/opencode.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Daytona sandbox adapter: wraps a Sandbox from @daytonaio/sdk into CodeAgentSandbox.
|
|
3
|
-
* Background-only execution using executeCommand + nohup.
|
|
4
|
-
*/
|
|
5
|
-
import type { Sandbox } from "@daytonaio/sdk";
|
|
6
|
-
import type { CodeAgentSandbox, AdaptSandboxOptions } from "../types/index";
|
|
7
|
-
export declare function adaptDaytonaSandbox(sandbox: Sandbox, options?: AdaptSandboxOptions): CodeAgentSandbox;
|
|
8
|
-
//# sourceMappingURL=daytona.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"daytona.d.ts","sourceRoot":"","sources":["../../src/sandbox/daytona.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAA0C,MAAM,gBAAgB,CAAA;AAYnH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,mBAAwB,GAChC,gBAAgB,CA8MlB"}
|