@rallycry/conveyor-agent 6.0.5 → 6.0.7
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/cli.js
CHANGED
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
ProjectRunner,
|
|
5
5
|
createServiceLogger,
|
|
6
6
|
errorMeta
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-ANYHEBDY.js";
|
|
8
8
|
|
|
9
9
|
// src/cli.ts
|
|
10
10
|
import { readFileSync } from "fs";
|
|
@@ -121,7 +121,9 @@ if (CONVEYOR_PROJECT_TOKEN && CONVEYOR_PROJECT_ID) {
|
|
|
121
121
|
{
|
|
122
122
|
onEvent: (event) => {
|
|
123
123
|
const detail = "message" in event ? event.message : "content" in event ? event.content : "summary" in event ? event.summary : "";
|
|
124
|
-
|
|
124
|
+
if (detail) {
|
|
125
|
+
logger.info(detail, { eventType: event.type });
|
|
126
|
+
}
|
|
125
127
|
},
|
|
126
128
|
onStatusChange: (status) => {
|
|
127
129
|
logger.info("Status changed", { status });
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cli.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport { readFileSync } from \"node:fs\";\nimport { join, dirname } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { AgentRunner } from \"./runner/index.js\";\nimport { ProjectRunner } from \"./runner/index.js\";\nimport type { AgentEvent, AgentRunnerStatus, RunnerMode } from \"./types.js\";\nimport { createServiceLogger, errorMeta } from \"./utils/logger.js\";\n\n// Handle --version flag before any other initialization\nif (process.argv.includes(\"--version\")) {\n const __dirname = dirname(fileURLToPath(import.meta.url));\n const pkgPath = join(__dirname, \"..\", \"package.json\");\n const pkg = JSON.parse(readFileSync(pkgPath, \"utf-8\"));\n process.stdout.write(pkg.version + \"\\n\");\n process.exit(0);\n}\n\nconst logger = createServiceLogger(\"CLI\");\n\nasync function bootstrapFromCodespace(apiUrl: string, instanceName: string): Promise<void> {\n logger.info(\"Bootstrapping from codespace\", { codespace: instanceName });\n const response = await fetch(`${apiUrl}/api/codespace/bootstrap/${instanceName}`);\n if (!response.ok) {\n const errorText = await response.text();\n logger.error(\"Bootstrap failed\", { status: response.status, body: errorText });\n process.exit(1);\n }\n const config = (await response.json()) as {\n mode?: \"task\" | \"project\";\n taskId?: string;\n taskToken?: string;\n agentMode?: string;\n isAuto?: string;\n taskBranch?: string;\n projectId?: string;\n projectToken?: string;\n apiUrl?: string;\n workspaceBranch?: string;\n envVars: Record<string, string>;\n };\n\n // Apply shared env vars first\n for (const [key, value] of Object.entries(config.envVars ?? {})) {\n process.env[key] = value;\n }\n\n if (config.mode === \"project\") {\n // Project codespace → set project runner env vars\n process.env.CONVEYOR_PROJECT_TOKEN = config.projectToken;\n process.env.CONVEYOR_PROJECT_ID = config.projectId;\n if (config.workspaceBranch) {\n process.env.CONVEYOR_WORKSPACE_BRANCH = config.workspaceBranch;\n }\n logger.info(\"Bootstrap complete\", { projectId: config.projectId });\n } else {\n // Task codespace → existing behavior\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.taskBranch) {\n process.env.CONVEYOR_TASK_BRANCH = config.taskBranch;\n }\n logger.info(\"Bootstrap complete\", { taskId: config.taskId });\n }\n}\n\nprocess.on(\"uncaughtException\", (err: NodeJS.ErrnoException) => {\n if (err.code === \"EPIPE\") return;\n logger.error(\"Uncaught exception\", { error: err.message, code: err.code });\n process.exit(1);\n});\n\nlet conveyorApiUrl = process.env.CONVEYOR_API_URL;\n\n// Step 1: Codespace bootstrap (before project runner check)\n// Bootstrap runs when in a codespace/claudespace and neither token is already set.\n// This allows the bootstrap endpoint to return either task or project credentials.\nconst INSTANCE_NAME = process.env.CODESPACE_NAME || process.env.CLAUDESPACE_NAME;\nif (INSTANCE_NAME && !process.env.CONVEYOR_TASK_TOKEN && !process.env.CONVEYOR_PROJECT_TOKEN) {\n if (!conveyorApiUrl) {\n logger.error(\"CONVEYOR_API_URL is required for codespace bootstrap\");\n process.exit(1);\n }\n await bootstrapFromCodespace(conveyorApiUrl, INSTANCE_NAME);\n conveyorApiUrl = process.env.CONVEYOR_API_URL ?? conveyorApiUrl;\n}\n\n// Step 2: Re-read env vars (bootstrap may have set them)\nconst CONVEYOR_PROJECT_TOKEN = process.env.CONVEYOR_PROJECT_TOKEN;\nconst CONVEYOR_PROJECT_ID = process.env.CONVEYOR_PROJECT_ID;\n\n// Step 3: Branch on mode\nif (CONVEYOR_PROJECT_TOKEN && CONVEYOR_PROJECT_ID) {\n // Project runner mode: connect once, auto-handle tasks\n const projectRunner = new ProjectRunner({\n conveyorApiUrl: conveyorApiUrl ?? \"\",\n projectToken: CONVEYOR_PROJECT_TOKEN,\n projectId: CONVEYOR_PROJECT_ID,\n projectDir: process.env.CONVEYOR_WORKSPACE ?? process.cwd(),\n });\n\n await projectRunner.start().catch((error: unknown) => {\n logger.error(\"Project runner failed\", errorMeta(error));\n process.exit(1);\n });\n} else {\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_TASK_TOKEN || !CONVEYOR_TASK_ID) {\n logger.error(\"Missing required environment variables\");\n logger.error(\" CONVEYOR_TASK_TOKEN - JWT token for task authentication\");\n logger.error(\" CONVEYOR_TASK_ID - ID of the task to execute\");\n logger.error(\"\");\n logger.error(\"CONVEYOR_API_URL is provided via codespace secret or bootstrap.\");\n logger.error(\"\");\n logger.error(\"Optional:\");\n logger.error(\" CONVEYOR_MODE - Runner mode: 'task' (default) or 'pm'\");\n logger.error(\" CONVEYOR_MODEL - Claude model to use\");\n logger.error(\" CONVEYOR_WORKSPACE - Working directory (defaults to cwd)\");\n logger.error(\"\");\n logger.error(\"Project runner mode:\");\n logger.error(\" CONVEYOR_PROJECT_TOKEN - Project token for project runner\");\n logger.error(\" CONVEYOR_PROJECT_ID - Project ID for project runner\");\n process.exit(1);\n }\n\n if (CONVEYOR_MODE !== \"task\" && CONVEYOR_MODE !== \"pm\") {\n logger.error(\"Invalid CONVEYOR_MODE\", { mode: CONVEYOR_MODE, expected: [\"task\", \"pm\"] });\n process.exit(1);\n }\n\n logger.info(\"Starting agent\", { mode: CONVEYOR_MODE });\n\n const runner = new AgentRunner(\n {\n conveyorApiUrl: conveyorApiUrl ?? \"\",\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 logger.info(detail, { eventType: event.type });\n },\n onStatusChange: (status: AgentRunnerStatus) => {\n logger.info(\"Status changed\", { status });\n },\n },\n );\n\n process.on(\"SIGTERM\", () => {\n logger.info(\"Received SIGTERM, stopping agent\");\n runner.stop();\n });\n\n process.on(\"SIGINT\", () => {\n logger.info(\"Received SIGINT, stopping agent\");\n runner.stop();\n });\n\n runner.start().catch((error: unknown) => {\n logger.error(\"Agent runner failed\", errorMeta(error));\n process.exit(1);\n });\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/cli.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport { readFileSync } from \"node:fs\";\nimport { join, dirname } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { AgentRunner } from \"./runner/index.js\";\nimport { ProjectRunner } from \"./runner/index.js\";\nimport type { AgentEvent, AgentRunnerStatus, RunnerMode } from \"./types.js\";\nimport { createServiceLogger, errorMeta } from \"./utils/logger.js\";\n\n// Handle --version flag before any other initialization\nif (process.argv.includes(\"--version\")) {\n const __dirname = dirname(fileURLToPath(import.meta.url));\n const pkgPath = join(__dirname, \"..\", \"package.json\");\n const pkg = JSON.parse(readFileSync(pkgPath, \"utf-8\"));\n process.stdout.write(pkg.version + \"\\n\");\n process.exit(0);\n}\n\nconst logger = createServiceLogger(\"CLI\");\n\nasync function bootstrapFromCodespace(apiUrl: string, instanceName: string): Promise<void> {\n logger.info(\"Bootstrapping from codespace\", { codespace: instanceName });\n const response = await fetch(`${apiUrl}/api/codespace/bootstrap/${instanceName}`);\n if (!response.ok) {\n const errorText = await response.text();\n logger.error(\"Bootstrap failed\", { status: response.status, body: errorText });\n process.exit(1);\n }\n const config = (await response.json()) as {\n mode?: \"task\" | \"project\";\n taskId?: string;\n taskToken?: string;\n agentMode?: string;\n isAuto?: string;\n taskBranch?: string;\n projectId?: string;\n projectToken?: string;\n apiUrl?: string;\n workspaceBranch?: string;\n envVars: Record<string, string>;\n };\n\n // Apply shared env vars first\n for (const [key, value] of Object.entries(config.envVars ?? {})) {\n process.env[key] = value;\n }\n\n if (config.mode === \"project\") {\n // Project codespace → set project runner env vars\n process.env.CONVEYOR_PROJECT_TOKEN = config.projectToken;\n process.env.CONVEYOR_PROJECT_ID = config.projectId;\n if (config.workspaceBranch) {\n process.env.CONVEYOR_WORKSPACE_BRANCH = config.workspaceBranch;\n }\n logger.info(\"Bootstrap complete\", { projectId: config.projectId });\n } else {\n // Task codespace → existing behavior\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.taskBranch) {\n process.env.CONVEYOR_TASK_BRANCH = config.taskBranch;\n }\n logger.info(\"Bootstrap complete\", { taskId: config.taskId });\n }\n}\n\nprocess.on(\"uncaughtException\", (err: NodeJS.ErrnoException) => {\n if (err.code === \"EPIPE\") return;\n logger.error(\"Uncaught exception\", { error: err.message, code: err.code });\n process.exit(1);\n});\n\nlet conveyorApiUrl = process.env.CONVEYOR_API_URL;\n\n// Step 1: Codespace bootstrap (before project runner check)\n// Bootstrap runs when in a codespace/claudespace and neither token is already set.\n// This allows the bootstrap endpoint to return either task or project credentials.\nconst INSTANCE_NAME = process.env.CODESPACE_NAME || process.env.CLAUDESPACE_NAME;\nif (INSTANCE_NAME && !process.env.CONVEYOR_TASK_TOKEN && !process.env.CONVEYOR_PROJECT_TOKEN) {\n if (!conveyorApiUrl) {\n logger.error(\"CONVEYOR_API_URL is required for codespace bootstrap\");\n process.exit(1);\n }\n await bootstrapFromCodespace(conveyorApiUrl, INSTANCE_NAME);\n conveyorApiUrl = process.env.CONVEYOR_API_URL ?? conveyorApiUrl;\n}\n\n// Step 2: Re-read env vars (bootstrap may have set them)\nconst CONVEYOR_PROJECT_TOKEN = process.env.CONVEYOR_PROJECT_TOKEN;\nconst CONVEYOR_PROJECT_ID = process.env.CONVEYOR_PROJECT_ID;\n\n// Step 3: Branch on mode\nif (CONVEYOR_PROJECT_TOKEN && CONVEYOR_PROJECT_ID) {\n // Project runner mode: connect once, auto-handle tasks\n const projectRunner = new ProjectRunner({\n conveyorApiUrl: conveyorApiUrl ?? \"\",\n projectToken: CONVEYOR_PROJECT_TOKEN,\n projectId: CONVEYOR_PROJECT_ID,\n projectDir: process.env.CONVEYOR_WORKSPACE ?? process.cwd(),\n });\n\n await projectRunner.start().catch((error: unknown) => {\n logger.error(\"Project runner failed\", errorMeta(error));\n process.exit(1);\n });\n} else {\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_TASK_TOKEN || !CONVEYOR_TASK_ID) {\n logger.error(\"Missing required environment variables\");\n logger.error(\" CONVEYOR_TASK_TOKEN - JWT token for task authentication\");\n logger.error(\" CONVEYOR_TASK_ID - ID of the task to execute\");\n logger.error(\"\");\n logger.error(\"CONVEYOR_API_URL is provided via codespace secret or bootstrap.\");\n logger.error(\"\");\n logger.error(\"Optional:\");\n logger.error(\" CONVEYOR_MODE - Runner mode: 'task' (default) or 'pm'\");\n logger.error(\" CONVEYOR_MODEL - Claude model to use\");\n logger.error(\" CONVEYOR_WORKSPACE - Working directory (defaults to cwd)\");\n logger.error(\"\");\n logger.error(\"Project runner mode:\");\n logger.error(\" CONVEYOR_PROJECT_TOKEN - Project token for project runner\");\n logger.error(\" CONVEYOR_PROJECT_ID - Project ID for project runner\");\n process.exit(1);\n }\n\n if (CONVEYOR_MODE !== \"task\" && CONVEYOR_MODE !== \"pm\") {\n logger.error(\"Invalid CONVEYOR_MODE\", { mode: CONVEYOR_MODE, expected: [\"task\", \"pm\"] });\n process.exit(1);\n }\n\n logger.info(\"Starting agent\", { mode: CONVEYOR_MODE });\n\n const runner = new AgentRunner(\n {\n conveyorApiUrl: conveyorApiUrl ?? \"\",\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 if (detail) {\n logger.info(detail, { eventType: event.type });\n }\n },\n onStatusChange: (status: AgentRunnerStatus) => {\n logger.info(\"Status changed\", { status });\n },\n },\n );\n\n process.on(\"SIGTERM\", () => {\n logger.info(\"Received SIGTERM, stopping agent\");\n runner.stop();\n });\n\n process.on(\"SIGINT\", () => {\n logger.info(\"Received SIGINT, stopping agent\");\n runner.stop();\n });\n\n runner.start().catch((error: unknown) => {\n logger.error(\"Agent runner failed\", errorMeta(error));\n process.exit(1);\n });\n}\n"],"mappings":"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","names":[]}
|
package/dist/index.js
CHANGED