@aiden-ade/sandbox-agent 0.1.13 → 0.1.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/updater.js DELETED
@@ -1,54 +0,0 @@
1
- /**
2
- * Self-update logic for the sandbox agent.
3
- * In prod/staging, installs the new version from npm.
4
- */
5
- import { execSync, spawn } from "node:child_process";
6
- const DEFAULT_PATH = "/home/user/.local/node/bin:/home/user/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin";
7
- /**
8
- * Install the new agent version via npm.
9
- * Returns true if the install succeeded.
10
- */
11
- export async function installUpdate(payload) {
12
- const version = payload.version ?? "latest";
13
- if (!/^[\w.\-+]+$/.test(version)) {
14
- console.error(`[updater] Refusing to install: invalid version string "${version}"`);
15
- return false;
16
- }
17
- try {
18
- console.info(`[updater] Installing @aiden-ade/sandbox-agent@${version} via npm`);
19
- execSync(`npm install -g @aiden-ade/sandbox-agent@${version}`, {
20
- timeout: 60_000,
21
- env: { ...process.env, PATH: DEFAULT_PATH },
22
- stdio: "pipe",
23
- });
24
- console.info("[updater] npm install complete");
25
- return true;
26
- }
27
- catch (error) {
28
- console.error("[updater] npm install failed:", error.message);
29
- return false;
30
- }
31
- }
32
- /**
33
- * Spawn a new agent process with the same env vars, then exit this process.
34
- * Preserves the provider session ID so the new agent can resume Claude context.
35
- */
36
- export function respawnAgent(lastProviderSessionId) {
37
- const env = { ...process.env };
38
- if (lastProviderSessionId) {
39
- env.AIDEN_PROVIDER_SESSION_ID = lastProviderSessionId;
40
- }
41
- console.info("[updater] Spawning new agent process");
42
- const child = spawn("aiden-agent", [], {
43
- detached: true,
44
- stdio: "ignore",
45
- env: { ...env, PATH: DEFAULT_PATH },
46
- });
47
- child.unref();
48
- // Give the new process a moment to start before we exit
49
- setTimeout(() => {
50
- console.info("[updater] Old agent exiting after respawn");
51
- process.exit(0);
52
- }, 500);
53
- }
54
- //# sourceMappingURL=updater.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"updater.js","sourceRoot":"","sources":["../src/updater.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,YAAY,GAAG,+GAA+G,CAAC;AAOrI;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAsB;IACxD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAC;IAC5C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,KAAK,CAAC,0DAA0D,OAAO,GAAG,CAAC,CAAC;QACpF,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,iDAAiD,OAAO,UAAU,CAAC,CAAC;QACjF,QAAQ,CAAC,2CAA2C,OAAO,EAAE,EAAE;YAC7D,OAAO,EAAE,MAAM;YACf,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE;YAC3C,KAAK,EAAE,MAAM;SACd,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;QACzE,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,qBAA8B;IACzD,MAAM,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC/B,IAAI,qBAAqB,EAAE,CAAC;QAC1B,GAAG,CAAC,yBAAyB,GAAG,qBAAqB,CAAC;IACxD,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;IACrD,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,EAAE,EAAE,EAAE;QACrC,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,QAAQ;QACf,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE;KACpC,CAAC,CAAC;IACH,KAAK,CAAC,KAAK,EAAE,CAAC;IAEd,wDAAwD;IACxD,UAAU,CAAC,GAAG,EAAE;QACd,OAAO,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,EAAE,GAAG,CAAC,CAAC;AACV,CAAC"}
package/dist/version.d.ts DELETED
@@ -1,2 +0,0 @@
1
- export declare const AGENT_VERSION = "0.1.8";
2
- //# sourceMappingURL=version.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,UAAU,CAAC"}
package/dist/version.js DELETED
@@ -1,2 +0,0 @@
1
- export const AGENT_VERSION = "0.1.8";
2
- //# sourceMappingURL=version.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAC"}
@@ -1,33 +0,0 @@
1
- import type { WSClient } from "./ws-client.js";
2
- import type { AgentConfig, AgentResult, ExitPlanModeInput, UsageUpdate } from "./types.js";
3
- import type { AgentPresenter } from "./types.js";
4
- export declare class WebPresenter implements AgentPresenter {
5
- private wsClient;
6
- private conversationId;
7
- private suppressSessionLifecycle;
8
- constructor(wsClient: WSClient, conversationId: string);
9
- setSuppressSessionLifecycle(suppress: boolean): void;
10
- onStart(config: AgentConfig): void;
11
- onLog(message: string): void;
12
- onAssistantText(text: string): void;
13
- onThinking(text: string): void;
14
- onToolUse(tool: string, input: unknown, toolId: string): void;
15
- onToolResult(toolId: string, content: string, isError?: boolean): void;
16
- onTurnComplete(content: unknown[]): void;
17
- onUsageUpdate(usage: UsageUpdate): void;
18
- onAskUser(id: string, questions: unknown[]): void;
19
- onTodoWrite(todos: unknown[]): void;
20
- onExitPlanMode(id: string, input: ExitPlanModeInput, planFilePath?: string): void;
21
- onCheckpoint(id: string): void;
22
- onActivity(status: string): void;
23
- onOpenBrowserTab(browserId: string, url?: string): void;
24
- recordRawTranscript(): void;
25
- onError(message: string, _isAgentError?: boolean): void;
26
- onComplete(result: AgentResult): void;
27
- /**
28
- * Manually emit session lifecycle events and close.
29
- * Called after the multi-turn loop exits.
30
- */
31
- emitSessionEnd(result: AgentResult): Promise<void>;
32
- }
33
- //# sourceMappingURL=web-presenter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"web-presenter.d.ts","sourceRoot":"","sources":["../src/web-presenter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAc,WAAW,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACvG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,qBAAa,YAAa,YAAW,cAAc;IACjD,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,wBAAwB,CAAS;gBAE7B,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM;IAKtD,2BAA2B,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAIpD,OAAO,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAIlC,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI5B,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAInC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI9B,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAI7D,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI;IAUtE,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI;IAIxC,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAIvC,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,IAAI;IAIjD,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI;IAInC,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI;IAIjF,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAI9B,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIhC,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI;IAIvD,mBAAmB,IAAI,IAAI;IAI3B,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,OAAO,GAAG,IAAI;IAQvD,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAkBrC;;;OAGG;IACG,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAQzD"}
@@ -1,100 +0,0 @@
1
- export class WebPresenter {
2
- wsClient;
3
- conversationId;
4
- suppressSessionLifecycle = false;
5
- constructor(wsClient, conversationId) {
6
- this.wsClient = wsClient;
7
- this.conversationId = conversationId;
8
- }
9
- setSuppressSessionLifecycle(suppress) {
10
- this.suppressSessionLifecycle = suppress;
11
- }
12
- onStart(config) {
13
- this.wsClient.emitEvent({ type: "start", task: config.task, ts: Date.now() });
14
- }
15
- onLog(message) {
16
- console.error(message);
17
- }
18
- onAssistantText(text) {
19
- this.wsClient.emitEvent({ type: "text", text, ts: Date.now() });
20
- }
21
- onThinking(text) {
22
- this.wsClient.emitEvent({ type: "thinking", text, ts: Date.now() });
23
- }
24
- onToolUse(tool, input, toolId) {
25
- this.wsClient.emitEvent({ type: "tool_use", id: toolId, name: tool, input, ts: Date.now() });
26
- }
27
- onToolResult(toolId, content, isError) {
28
- this.wsClient.emitEvent({
29
- type: "tool_result",
30
- id: toolId,
31
- content,
32
- ts: Date.now(),
33
- ...(isError ? { is_error: true } : {}),
34
- });
35
- }
36
- onTurnComplete(content) {
37
- this.wsClient.emitEvent({ type: "turn_complete", content, ts: Date.now() });
38
- }
39
- onUsageUpdate(usage) {
40
- this.wsClient.emitEvent({ type: "usage", usage });
41
- }
42
- onAskUser(id, questions) {
43
- this.wsClient.emitEvent({ type: "ask_user", id, questions });
44
- }
45
- onTodoWrite(todos) {
46
- this.wsClient.emitEvent({ type: "todo_write", todos });
47
- }
48
- onExitPlanMode(id, input, planFilePath) {
49
- this.wsClient.emitEvent({ type: "exit_plan_mode", id, input, ...(planFilePath ? { planFilePath } : {}) });
50
- }
51
- onCheckpoint(id) {
52
- this.wsClient.emitEvent({ type: "checkpoint", id });
53
- }
54
- onActivity(status) {
55
- this.wsClient.emitEvent({ type: "activity", status, ts: Date.now() });
56
- }
57
- onOpenBrowserTab(browserId, url) {
58
- this.wsClient.emitEvent({ type: "open_browser_tab", browserId, ...(url ? { url } : {}) });
59
- }
60
- recordRawTranscript() {
61
- // No-op for sandbox — raw transcripts stay in the container
62
- }
63
- onError(message, _isAgentError) {
64
- this.wsClient.emitEvent({ type: "error", message });
65
- if (!this.suppressSessionLifecycle) {
66
- this.wsClient.emitEvent({ type: "session_error", error: message });
67
- this.wsClient.close();
68
- }
69
- }
70
- onComplete(result) {
71
- // Always send query_complete so the server persists query content
72
- this.wsClient.emitEvent({ type: "query_complete", result, ts: Date.now() });
73
- // In multi-turn mode (suppressSessionLifecycle=true), skip session lifecycle
74
- if (this.suppressSessionLifecycle) {
75
- return;
76
- }
77
- // Single-turn mode: also send session lifecycle event and close
78
- if (result.success) {
79
- this.wsClient.emitEvent({ type: "session_complete", result });
80
- }
81
- else {
82
- this.wsClient.emitEvent({ type: "session_error", error: result.error || "Unknown error" });
83
- }
84
- this.wsClient.close();
85
- }
86
- /**
87
- * Manually emit session lifecycle events and close.
88
- * Called after the multi-turn loop exits.
89
- */
90
- async emitSessionEnd(result) {
91
- if (result.success) {
92
- this.wsClient.emitEvent({ type: "session_complete", result });
93
- }
94
- else {
95
- this.wsClient.emitEvent({ type: "session_error", error: result.error || "Unknown error" });
96
- }
97
- this.wsClient.close();
98
- }
99
- }
100
- //# sourceMappingURL=web-presenter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"web-presenter.js","sourceRoot":"","sources":["../src/web-presenter.ts"],"names":[],"mappings":"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"}
@@ -1,79 +0,0 @@
1
- import type { AgentEvent } from "./types.js";
2
- export interface ResolvedImage {
3
- id: string;
4
- data: string;
5
- mimeType: string;
6
- filename: string;
7
- }
8
- export interface UserMessagePayload {
9
- text: string;
10
- images?: ResolvedImage[];
11
- providerSessionId?: string;
12
- backendKind?: string;
13
- agentId?: string;
14
- agentPrompt?: string;
15
- selectedModel?: string;
16
- selectedContextWindow?: string | null;
17
- selectedEffortLevel?: string | null;
18
- mode?: string;
19
- /** Structured task metadata for system prompt injection. */
20
- taskMeta?: {
21
- id: string;
22
- title: string;
23
- description: string | null;
24
- status: string;
25
- priority: string;
26
- labels: string[] | null;
27
- assignees: Array<{
28
- name: string | null;
29
- email: string;
30
- }>;
31
- descriptionAttachmentIds?: Array<{
32
- id: string;
33
- filename: string;
34
- }>;
35
- };
36
- /** Workflow tool allowlist (present when triggered from a workflow). */
37
- workflowTools?: Array<{
38
- type: string;
39
- id: string;
40
- }>;
41
- /** Agent run ID for status tracking. */
42
- runId?: string;
43
- /** Message ID that triggered this run. */
44
- messageId?: string;
45
- /** Maximum number of agent iterations. */
46
- maxIterations?: number;
47
- /** Task ID for MCP artifact creation. */
48
- taskId?: string;
49
- /** Conversation ID for MCP artifact creation. */
50
- conversationId?: string;
51
- /** Role attached to this conversation. */
52
- /** Team ID of the active team context — injected into system prompt for MCP calls. */
53
- teamId?: string;
54
- /** User who initiated the run. */
55
- currentUser?: {
56
- id: string;
57
- name: string | null;
58
- email: string;
59
- };
60
- }
61
- export interface WSClientCallbacks {
62
- onUserMessage: (payload: UserMessagePayload) => void;
63
- onStop: () => void;
64
- onToolResponse?: (toolId: string, response: string) => void;
65
- onConnect?: () => void;
66
- onDisconnect?: (reason: string) => void;
67
- }
68
- export declare class WSClient {
69
- private socket;
70
- constructor(wsUrl: string, sessionId: string, // conversationId
71
- taskId: string, token: string, // sandboxSessionToken
72
- callbacks: WSClientCallbacks, agentVersion?: string);
73
- emitEvent(event: AgentEvent): void;
74
- waitForConnection(timeoutMs?: number): Promise<void>;
75
- get connected(): boolean;
76
- close(): void;
77
- private setupListeners;
78
- }
79
- //# sourceMappingURL=ws-client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ws-client.d.ts","sourceRoot":"","sources":["../src/ws-client.ts"],"names":[],"mappings":"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"}
package/dist/ws-client.js DELETED
@@ -1,74 +0,0 @@
1
- import { io } from "socket.io-client";
2
- export class WSClient {
3
- socket;
4
- constructor(wsUrl, sessionId, // conversationId
5
- taskId, token, // sandboxSessionToken
6
- callbacks, agentVersion) {
7
- this.socket = io(wsUrl, {
8
- query: { type: "agent", sessionId, taskId, agentVersion: agentVersion ?? "" },
9
- auth: { token },
10
- transports: ["websocket"],
11
- reconnection: true,
12
- reconnectionAttempts: Infinity,
13
- reconnectionDelay: 1000,
14
- reconnectionDelayMax: 5000,
15
- timeout: 20_000,
16
- upgrade: false,
17
- extraHeaders: { "ngrok-skip-browser-warning": "1" },
18
- });
19
- this.setupListeners(callbacks);
20
- }
21
- emitEvent(event) {
22
- this.socket.emit("agent_event", event);
23
- }
24
- waitForConnection(timeoutMs = 15000) {
25
- return new Promise((resolve, reject) => {
26
- if (this.socket.connected) {
27
- resolve();
28
- return;
29
- }
30
- const timeout = setTimeout(() => reject(new Error(`WSClient connection timeout after ${timeoutMs}ms`)), timeoutMs);
31
- this.socket.once("connect", () => { clearTimeout(timeout); resolve(); });
32
- this.socket.once("connect_error", (err) => { clearTimeout(timeout); reject(new Error(`WSClient connection failed: ${err.message}`)); });
33
- });
34
- }
35
- get connected() { return this.socket.connected; }
36
- close() { this.socket.disconnect(); }
37
- setupListeners(callbacks) {
38
- this.socket.on("connect", () => { console.debug("[WSClient] Connected to WS server"); callbacks.onConnect?.(); });
39
- this.socket.on("disconnect", (reason) => { console.debug(`[WSClient] Disconnected: ${reason}`); callbacks.onDisconnect?.(reason); });
40
- this.socket.on("connect_error", (error) => { console.warn(`[WSClient] Connection error: ${error.message}`); });
41
- this.socket.on("user_message", (data, ack) => {
42
- ack?.({ ok: true });
43
- callbacks.onUserMessage({
44
- text: data.text,
45
- images: data.images,
46
- providerSessionId: data.providerSessionId,
47
- backendKind: data.backendKind,
48
- agentId: data.agentId,
49
- agentPrompt: data.agentPrompt,
50
- selectedModel: data.selectedModel,
51
- selectedContextWindow: data.selectedContextWindow,
52
- selectedEffortLevel: data.selectedEffortLevel,
53
- mode: data.mode,
54
- taskMeta: data.taskMeta,
55
- workflowTools: data.workflowTools,
56
- runId: data.runId,
57
- messageId: data.messageId,
58
- maxIterations: data.maxIterations,
59
- taskId: data.taskId,
60
- conversationId: data.conversationId,
61
- teamId: data.teamId,
62
- currentUser: data.currentUser,
63
- });
64
- });
65
- this.socket.on("stop", () => { callbacks.onStop(); });
66
- this.socket.on("tool_response", (data) => {
67
- if (data?.toolId && typeof data.response === "string") {
68
- callbacks.onToolResponse?.(data.toolId, data.response);
69
- }
70
- });
71
- this.socket.on("error", (data) => { console.error(`[WSClient] Server error: ${data.message} (${data.code})`); });
72
- }
73
- }
74
- //# sourceMappingURL=ws-client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ws-client.js","sourceRoot":"","sources":["../src/ws-client.ts"],"names":[],"mappings":"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"}