@rallycry/conveyor-agent 4.4.0 → 4.6.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/dist/{chunk-FS3A4THO.js → chunk-XG5DMOJX.js} +175 -43
- package/dist/chunk-XG5DMOJX.js.map +1 -0
- package/dist/cli.js +4 -1
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +7 -0
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-FS3A4THO.js.map +0 -1
package/dist/cli.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import {
|
|
3
3
|
AgentRunner,
|
|
4
4
|
ProjectRunner
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-XG5DMOJX.js";
|
|
6
6
|
|
|
7
7
|
// src/cli.ts
|
|
8
8
|
async function bootstrapFromCodespace(apiUrl) {
|
|
@@ -18,6 +18,9 @@ async function bootstrapFromCodespace(apiUrl) {
|
|
|
18
18
|
process.env.CONVEYOR_TASK_TOKEN = config.taskToken;
|
|
19
19
|
process.env.CONVEYOR_AGENT_MODE = config.agentMode;
|
|
20
20
|
process.env.CONVEYOR_IS_AUTO = config.isAuto;
|
|
21
|
+
if (config.pullBranch) {
|
|
22
|
+
process.env.CONVEYOR_PULL_BRANCH = config.pullBranch;
|
|
23
|
+
}
|
|
21
24
|
for (const [key, value] of Object.entries(config.envVars ?? {})) {
|
|
22
25
|
process.env[key] = value;
|
|
23
26
|
}
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cli.ts"],"sourcesContent":["#!/usr/bin/env node\n/* oxlint-disable no-console */\n\nimport { AgentRunner } from \"./runner/index.js\";\nimport { ProjectRunner } from \"./runner/index.js\";\nimport type { AgentEvent, AgentRunnerStatus, RunnerMode } from \"./types.js\";\n\nasync function bootstrapFromCodespace(apiUrl: string): Promise<void> {\n console.log(`[conveyor-agent] Bootstrapping from codespace ${process.env.CODESPACE_NAME}...`);\n const response = await fetch(`${apiUrl}/api/codespace/bootstrap/${process.env.CODESPACE_NAME}`);\n if (!response.ok) {\n const errorText = await response.text();\n console.error(`Bootstrap failed (${response.status}): ${errorText}`);\n process.exit(1);\n }\n const config = (await response.json()) as {\n taskId: string;\n taskToken: string;\n agentMode: string;\n isAuto: string;\n envVars: Record<string, string>;\n };\n process.env.CONVEYOR_TASK_ID = config.taskId;\n process.env.CONVEYOR_TASK_TOKEN = config.taskToken;\n process.env.CONVEYOR_AGENT_MODE = config.agentMode;\n process.env.CONVEYOR_IS_AUTO = config.isAuto;\n for (const [key, value] of Object.entries(config.envVars ?? {})) {\n process.env[key] = value;\n }\n console.log(`[conveyor-agent] Bootstrap complete, task ${config.taskId}`);\n}\n\nprocess.on(\"uncaughtException\", (err: NodeJS.ErrnoException) => {\n if (err.code === \"EPIPE\") return;\n console.error(\"Uncaught exception:\", err);\n process.exit(1);\n});\n\nconst CONVEYOR_API_URL = process.env.CONVEYOR_API_URL;\nconst CONVEYOR_PROJECT_TOKEN = process.env.CONVEYOR_PROJECT_TOKEN;\nconst CONVEYOR_PROJECT_ID = process.env.CONVEYOR_PROJECT_ID;\n\n// Project runner mode: connect once, auto-handle tasks\nif (CONVEYOR_PROJECT_TOKEN && CONVEYOR_PROJECT_ID) {\n if (!CONVEYOR_API_URL) {\n console.error(\"CONVEYOR_API_URL is required for project mode\");\n process.exit(1);\n }\n\n const projectRunner = new ProjectRunner({\n conveyorApiUrl: CONVEYOR_API_URL,\n projectToken: CONVEYOR_PROJECT_TOKEN,\n projectId: CONVEYOR_PROJECT_ID,\n projectDir: process.env.CONVEYOR_WORKSPACE ?? process.cwd(),\n });\n\n projectRunner.start().catch((error: unknown) => {\n console.error(\"Project runner failed:\", error);\n process.exit(1);\n });\n} else {\n // Codespace bootstrap: fetch task config from API using codespace name\n if (process.env.CODESPACE_NAME && !process.env.CONVEYOR_TASK_TOKEN) {\n if (!CONVEYOR_API_URL) {\n console.error(\"CONVEYOR_API_URL is required for codespace bootstrap\");\n process.exit(1);\n }\n await bootstrapFromCodespace(CONVEYOR_API_URL);\n }\n\n // Standard per-task agent mode\n const CONVEYOR_TASK_TOKEN = process.env.CONVEYOR_TASK_TOKEN;\n const CONVEYOR_TASK_ID = process.env.CONVEYOR_TASK_ID;\n const CONVEYOR_MODEL = process.env.CONVEYOR_MODEL ?? \"claude-sonnet-4-20250514\";\n const CONVEYOR_INSTRUCTIONS = process.env.CONVEYOR_INSTRUCTIONS ?? \"\";\n const CONVEYOR_WORKSPACE = process.env.CONVEYOR_WORKSPACE ?? process.cwd();\n const CONVEYOR_MODE = (process.env.CONVEYOR_MODE ?? \"task\") as RunnerMode;\n const CONVEYOR_AGENT_MODE = process.env.CONVEYOR_AGENT_MODE || undefined;\n const CONVEYOR_IS_AUTO = CONVEYOR_AGENT_MODE\n ? CONVEYOR_AGENT_MODE === \"auto\"\n : process.env.CONVEYOR_IS_AUTO === \"true\";\n\n if (!CONVEYOR_API_URL || !CONVEYOR_TASK_TOKEN || !CONVEYOR_TASK_ID) {\n console.error(\"Missing required environment variables:\");\n console.error(\" CONVEYOR_API_URL - URL of the Conveyor API server\");\n console.error(\" CONVEYOR_TASK_TOKEN - JWT token for task authentication\");\n console.error(\" CONVEYOR_TASK_ID - ID of the task to execute\");\n console.error(\"\");\n console.error(\"Optional:\");\n console.error(\" CONVEYOR_MODE - Runner mode: 'task' (default) or 'pm'\");\n console.error(\" CONVEYOR_MODEL - Claude model to use\");\n console.error(\" CONVEYOR_WORKSPACE - Working directory (defaults to cwd)\");\n console.error(\"\");\n console.error(\"Project runner mode:\");\n console.error(\" CONVEYOR_PROJECT_TOKEN - Project token for project runner\");\n console.error(\" CONVEYOR_PROJECT_ID - Project ID for project runner\");\n process.exit(1);\n }\n\n if (CONVEYOR_MODE !== \"task\" && CONVEYOR_MODE !== \"pm\") {\n console.error(`Invalid CONVEYOR_MODE: \"${CONVEYOR_MODE}\". Must be \"task\" or \"pm\".`);\n process.exit(1);\n }\n\n console.log(`[conveyor-agent] Starting in ${CONVEYOR_MODE} mode`);\n\n const runner = new AgentRunner(\n {\n conveyorApiUrl: CONVEYOR_API_URL,\n taskToken: CONVEYOR_TASK_TOKEN,\n taskId: CONVEYOR_TASK_ID,\n model: CONVEYOR_MODEL,\n instructions: CONVEYOR_INSTRUCTIONS,\n workspaceDir: CONVEYOR_WORKSPACE,\n mode: CONVEYOR_MODE,\n isAuto: CONVEYOR_IS_AUTO,\n },\n {\n onEvent: (event: AgentEvent) => {\n const detail =\n \"message\" in event\n ? event.message\n : \"content\" in event\n ? event.content\n : \"summary\" in event\n ? event.summary\n : \"\";\n console.log(`[${event.type}] ${detail}`);\n },\n onStatusChange: (status: AgentRunnerStatus) => {\n console.log(`[status] ${status}`);\n },\n },\n );\n\n process.on(\"SIGTERM\", () => {\n console.log(\"Received SIGTERM, stopping agent...\");\n runner.stop();\n });\n\n process.on(\"SIGINT\", () => {\n console.log(\"Received SIGINT, stopping agent...\");\n runner.stop();\n });\n\n runner.start().catch((error: unknown) => {\n console.error(\"Agent runner failed:\", error);\n process.exit(1);\n });\n}\n"],"mappings":";;;;;;;AAOA,eAAe,uBAAuB,QAA+B;AACnE,UAAQ,IAAI,iDAAiD,QAAQ,IAAI,cAAc,KAAK;AAC5F,QAAM,WAAW,MAAM,MAAM,GAAG,MAAM,4BAA4B,QAAQ,IAAI,cAAc,EAAE;AAC9F,MAAI,CAAC,SAAS,IAAI;AAChB,UAAM,YAAY,MAAM,SAAS,KAAK;AACtC,YAAQ,MAAM,qBAAqB,SAAS,MAAM,MAAM,SAAS,EAAE;AACnE,YAAQ,KAAK,CAAC;AAAA,EAChB;AACA,QAAM,SAAU,MAAM,SAAS,KAAK;
|
|
1
|
+
{"version":3,"sources":["../src/cli.ts"],"sourcesContent":["#!/usr/bin/env node\n/* oxlint-disable no-console */\n\nimport { AgentRunner } from \"./runner/index.js\";\nimport { ProjectRunner } from \"./runner/index.js\";\nimport type { AgentEvent, AgentRunnerStatus, RunnerMode } from \"./types.js\";\n\nasync function bootstrapFromCodespace(apiUrl: string): Promise<void> {\n console.log(`[conveyor-agent] Bootstrapping from codespace ${process.env.CODESPACE_NAME}...`);\n const response = await fetch(`${apiUrl}/api/codespace/bootstrap/${process.env.CODESPACE_NAME}`);\n if (!response.ok) {\n const errorText = await response.text();\n console.error(`Bootstrap failed (${response.status}): ${errorText}`);\n process.exit(1);\n }\n const config = (await response.json()) as {\n taskId: string;\n taskToken: string;\n agentMode: string;\n isAuto: string;\n pullBranch?: string;\n envVars: Record<string, string>;\n };\n process.env.CONVEYOR_TASK_ID = config.taskId;\n process.env.CONVEYOR_TASK_TOKEN = config.taskToken;\n process.env.CONVEYOR_AGENT_MODE = config.agentMode;\n process.env.CONVEYOR_IS_AUTO = config.isAuto;\n if (config.pullBranch) {\n process.env.CONVEYOR_PULL_BRANCH = config.pullBranch;\n }\n for (const [key, value] of Object.entries(config.envVars ?? {})) {\n process.env[key] = value;\n }\n console.log(`[conveyor-agent] Bootstrap complete, task ${config.taskId}`);\n}\n\nprocess.on(\"uncaughtException\", (err: NodeJS.ErrnoException) => {\n if (err.code === \"EPIPE\") return;\n console.error(\"Uncaught exception:\", err);\n process.exit(1);\n});\n\nconst CONVEYOR_API_URL = process.env.CONVEYOR_API_URL;\nconst CONVEYOR_PROJECT_TOKEN = process.env.CONVEYOR_PROJECT_TOKEN;\nconst CONVEYOR_PROJECT_ID = process.env.CONVEYOR_PROJECT_ID;\n\n// Project runner mode: connect once, auto-handle tasks\nif (CONVEYOR_PROJECT_TOKEN && CONVEYOR_PROJECT_ID) {\n if (!CONVEYOR_API_URL) {\n console.error(\"CONVEYOR_API_URL is required for project mode\");\n process.exit(1);\n }\n\n const projectRunner = new ProjectRunner({\n conveyorApiUrl: CONVEYOR_API_URL,\n projectToken: CONVEYOR_PROJECT_TOKEN,\n projectId: CONVEYOR_PROJECT_ID,\n projectDir: process.env.CONVEYOR_WORKSPACE ?? process.cwd(),\n });\n\n projectRunner.start().catch((error: unknown) => {\n console.error(\"Project runner failed:\", error);\n process.exit(1);\n });\n} else {\n // Codespace bootstrap: fetch task config from API using codespace name\n if (process.env.CODESPACE_NAME && !process.env.CONVEYOR_TASK_TOKEN) {\n if (!CONVEYOR_API_URL) {\n console.error(\"CONVEYOR_API_URL is required for codespace bootstrap\");\n process.exit(1);\n }\n await bootstrapFromCodespace(CONVEYOR_API_URL);\n }\n\n // Standard per-task agent mode\n const CONVEYOR_TASK_TOKEN = process.env.CONVEYOR_TASK_TOKEN;\n const CONVEYOR_TASK_ID = process.env.CONVEYOR_TASK_ID;\n const CONVEYOR_MODEL = process.env.CONVEYOR_MODEL ?? \"claude-sonnet-4-20250514\";\n const CONVEYOR_INSTRUCTIONS = process.env.CONVEYOR_INSTRUCTIONS ?? \"\";\n const CONVEYOR_WORKSPACE = process.env.CONVEYOR_WORKSPACE ?? process.cwd();\n const CONVEYOR_MODE = (process.env.CONVEYOR_MODE ?? \"task\") as RunnerMode;\n const CONVEYOR_AGENT_MODE = process.env.CONVEYOR_AGENT_MODE || undefined;\n const CONVEYOR_IS_AUTO = CONVEYOR_AGENT_MODE\n ? CONVEYOR_AGENT_MODE === \"auto\"\n : process.env.CONVEYOR_IS_AUTO === \"true\";\n\n if (!CONVEYOR_API_URL || !CONVEYOR_TASK_TOKEN || !CONVEYOR_TASK_ID) {\n console.error(\"Missing required environment variables:\");\n console.error(\" CONVEYOR_API_URL - URL of the Conveyor API server\");\n console.error(\" CONVEYOR_TASK_TOKEN - JWT token for task authentication\");\n console.error(\" CONVEYOR_TASK_ID - ID of the task to execute\");\n console.error(\"\");\n console.error(\"Optional:\");\n console.error(\" CONVEYOR_MODE - Runner mode: 'task' (default) or 'pm'\");\n console.error(\" CONVEYOR_MODEL - Claude model to use\");\n console.error(\" CONVEYOR_WORKSPACE - Working directory (defaults to cwd)\");\n console.error(\"\");\n console.error(\"Project runner mode:\");\n console.error(\" CONVEYOR_PROJECT_TOKEN - Project token for project runner\");\n console.error(\" CONVEYOR_PROJECT_ID - Project ID for project runner\");\n process.exit(1);\n }\n\n if (CONVEYOR_MODE !== \"task\" && CONVEYOR_MODE !== \"pm\") {\n console.error(`Invalid CONVEYOR_MODE: \"${CONVEYOR_MODE}\". Must be \"task\" or \"pm\".`);\n process.exit(1);\n }\n\n console.log(`[conveyor-agent] Starting in ${CONVEYOR_MODE} mode`);\n\n const runner = new AgentRunner(\n {\n conveyorApiUrl: CONVEYOR_API_URL,\n taskToken: CONVEYOR_TASK_TOKEN,\n taskId: CONVEYOR_TASK_ID,\n model: CONVEYOR_MODEL,\n instructions: CONVEYOR_INSTRUCTIONS,\n workspaceDir: CONVEYOR_WORKSPACE,\n mode: CONVEYOR_MODE,\n isAuto: CONVEYOR_IS_AUTO,\n },\n {\n onEvent: (event: AgentEvent) => {\n const detail =\n \"message\" in event\n ? event.message\n : \"content\" in event\n ? event.content\n : \"summary\" in event\n ? event.summary\n : \"\";\n console.log(`[${event.type}] ${detail}`);\n },\n onStatusChange: (status: AgentRunnerStatus) => {\n console.log(`[status] ${status}`);\n },\n },\n );\n\n process.on(\"SIGTERM\", () => {\n console.log(\"Received SIGTERM, stopping agent...\");\n runner.stop();\n });\n\n process.on(\"SIGINT\", () => {\n console.log(\"Received SIGINT, stopping agent...\");\n runner.stop();\n });\n\n runner.start().catch((error: unknown) => {\n console.error(\"Agent runner failed:\", error);\n process.exit(1);\n });\n}\n"],"mappings":"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","names":[]}
|
package/dist/index.d.ts
CHANGED
|
@@ -26,6 +26,7 @@ declare class AgentRunner {
|
|
|
26
26
|
private callbacks;
|
|
27
27
|
private _state;
|
|
28
28
|
private stopped;
|
|
29
|
+
private interrupted;
|
|
29
30
|
private inputResolver;
|
|
30
31
|
private pendingMessages;
|
|
31
32
|
private setupLog;
|
|
@@ -43,6 +44,7 @@ declare class AgentRunner {
|
|
|
43
44
|
private idleTimer;
|
|
44
45
|
private idleCheckInterval;
|
|
45
46
|
private deferredStartConfig;
|
|
47
|
+
private _queryHost;
|
|
46
48
|
constructor(config: AgentRunnerConfig, callbacks: AgentRunnerCallbacks);
|
|
47
49
|
get state(): AgentRunnerStatus;
|
|
48
50
|
private get effectiveAgentMode();
|
|
@@ -67,6 +69,7 @@ declare class AgentRunner {
|
|
|
67
69
|
createInputStream(initialPrompt: string | MultimodalBlock[]): AsyncGenerator<SDKUserMessage, void, unknown>;
|
|
68
70
|
private asQueryHost;
|
|
69
71
|
private handleModeChange;
|
|
72
|
+
softStop(): void;
|
|
70
73
|
stop(): void;
|
|
71
74
|
}
|
|
72
75
|
|
|
@@ -98,9 +101,11 @@ declare class ConveyorConnection {
|
|
|
98
101
|
private static readonly EVENT_BATCH_MS;
|
|
99
102
|
private earlyMessages;
|
|
100
103
|
private earlyStop;
|
|
104
|
+
private earlySoftStop;
|
|
101
105
|
private earlyModeChanges;
|
|
102
106
|
private chatMessageCallback;
|
|
103
107
|
private stopCallback;
|
|
108
|
+
private softStopCallback;
|
|
104
109
|
private modeChangeCallback;
|
|
105
110
|
private runStartCommandCallback;
|
|
106
111
|
private pendingQuestionResolvers;
|
|
@@ -131,6 +136,7 @@ declare class ConveyorConnection {
|
|
|
131
136
|
}): void;
|
|
132
137
|
onChatMessage(callback: (message: IncomingMessagePayload) => void): void;
|
|
133
138
|
onStopRequested(callback: () => void): void;
|
|
139
|
+
onSoftStopRequested(callback: () => void): void;
|
|
134
140
|
onModeChange(callback: (data: SetModePayload) => void): void;
|
|
135
141
|
onRunStartCommand(callback: () => void): void;
|
|
136
142
|
emitModeChanged(agentMode?: AgentMode | null): void;
|
|
@@ -149,6 +155,7 @@ declare class ConveyorConnection {
|
|
|
149
155
|
}[];
|
|
150
156
|
}): void;
|
|
151
157
|
emitStatus(status: string): void;
|
|
158
|
+
emitRateLimitPause(resetsAt: string): void;
|
|
152
159
|
sendHeartbeat(): void;
|
|
153
160
|
sendTypingStart(): void;
|
|
154
161
|
sendTypingStop(): void;
|
package/dist/index.js
CHANGED