@northflare/runner 0.0.23 → 0.0.25

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.
Files changed (37) hide show
  1. package/README.md +3 -3
  2. package/bin/northflare-runner +234 -172
  3. package/dist/components/claude-sdk-manager.d.ts +6 -0
  4. package/dist/components/claude-sdk-manager.d.ts.map +1 -1
  5. package/dist/components/claude-sdk-manager.js +46 -5
  6. package/dist/components/claude-sdk-manager.js.map +1 -1
  7. package/dist/components/message-handler-sse.d.ts +3 -0
  8. package/dist/components/message-handler-sse.d.ts.map +1 -1
  9. package/dist/components/message-handler-sse.js +148 -72
  10. package/dist/components/message-handler-sse.js.map +1 -1
  11. package/dist/components/repository-manager.js +4 -4
  12. package/dist/components/repository-manager.js.map +1 -1
  13. package/dist/index.d.ts +2 -1
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +49 -14
  16. package/dist/index.js.map +1 -1
  17. package/dist/runner-sse.d.ts +10 -6
  18. package/dist/runner-sse.d.ts.map +1 -1
  19. package/dist/runner-sse.js +130 -109
  20. package/dist/runner-sse.js.map +1 -1
  21. package/dist/services/RunnerAPIClient.d.ts +20 -0
  22. package/dist/services/RunnerAPIClient.d.ts.map +1 -1
  23. package/dist/services/RunnerAPIClient.js +50 -1
  24. package/dist/services/RunnerAPIClient.js.map +1 -1
  25. package/dist/services/SSEClient.d.ts.map +1 -1
  26. package/dist/services/SSEClient.js +22 -0
  27. package/dist/services/SSEClient.js.map +1 -1
  28. package/dist/types/index.d.ts +4 -2
  29. package/dist/types/index.d.ts.map +1 -1
  30. package/dist/types/runner-interface.d.ts +4 -1
  31. package/dist/types/runner-interface.d.ts.map +1 -1
  32. package/dist/utils/config.d.ts +7 -1
  33. package/dist/utils/config.d.ts.map +1 -1
  34. package/dist/utils/config.js +185 -62
  35. package/dist/utils/config.js.map +1 -1
  36. package/docs/claude-manager.md +1 -1
  37. package/package.json +2 -2
@@ -2,13 +2,36 @@
2
2
  * Configuration management utilities
3
3
  */
4
4
  import fs from "fs/promises";
5
+ import { existsSync } from "fs";
5
6
  import path from "path";
6
7
  import envPaths from "env-paths";
8
+ import os from "os";
7
9
  import { createLogger } from './logger.js';
8
10
  import { Command } from "commander";
11
+ import readline from "readline/promises";
12
+ import { stdin as input, stdout as output } from "node:process";
9
13
  const logger = createLogger("ConfigManager");
10
- const ENV_PATHS_APP_NAME = "northflare-runner";
14
+ const ENV_PATHS_APP_NAME = resolveEnvPathsAppName();
11
15
  const ENV_PATHS_OPTIONS = { suffix: "" };
16
+ const IS_DEV_APP = ENV_PATHS_APP_NAME.endsWith("-dev");
17
+ function resolveEnvPathsAppName() {
18
+ if (process.env["NODE_ENV"] === "development")
19
+ return "northflare-runner-dev";
20
+ try {
21
+ // When running from workspace (e.g., pnpm exec or direct node dist/...)
22
+ // use the dev app name so config lives under the "-dev" path.
23
+ const __dirname = path.dirname(new URL(import.meta.url).pathname);
24
+ const repoRoot = path.resolve(__dirname, "../..");
25
+ if (existsSync(path.join(repoRoot, "pnpm-workspace.yaml"))) {
26
+ return "northflare-runner-dev";
27
+ }
28
+ }
29
+ catch {
30
+ // ignore and fall back to prod name
31
+ }
32
+ return "northflare-runner";
33
+ }
34
+ // ENV_PATHS_APP_NAME/OPTIONS defined above for reuse across helpers
12
35
  export class ConfigManager {
13
36
  static DEFAULT_CONFIG = {
14
37
  dataDir: ConfigManager.resolveDefaultDataDir(),
@@ -16,6 +39,7 @@ export class ConfigManager {
16
39
  retryStrategy: "exponential",
17
40
  retryIntervalSecs: 60,
18
41
  retryDurationSecs: 900,
42
+ orchestratorUrl: "https://api.northflare.app",
19
43
  };
20
44
  static resolveDefaultDataDir() {
21
45
  try {
@@ -24,46 +48,67 @@ export class ConfigManager {
24
48
  }
25
49
  catch (error) {
26
50
  logger.debug("Falling back to cwd-relative data directory", error);
27
- return path.resolve("./data");
51
+ // Keep dev and prod state isolated when env-paths cannot resolve
52
+ return path.resolve(IS_DEV_APP ? "./data/dev" : "./data");
53
+ }
54
+ }
55
+ static getDefaultConfigPath() {
56
+ try {
57
+ const paths = envPaths(ENV_PATHS_APP_NAME, ENV_PATHS_OPTIONS);
58
+ return path.join(paths.config, "config.json");
59
+ }
60
+ catch (error) {
61
+ logger.debug("Falling back to repo-relative config path", error);
62
+ // Separate dev/prod config files even when env-paths fails
63
+ const localDir = IS_DEV_APP ? "./config/dev" : "./config";
64
+ return path.resolve(localDir, "config.json");
28
65
  }
29
66
  }
30
67
  /**
31
68
  * Load configuration without parsing command line arguments
32
69
  * Used when arguments have already been parsed by the CLI
33
70
  */
34
- static async loadConfig(configPath) {
35
- // Validate required environment variables
71
+ static async loadConfig(configPath, options) {
36
72
  this.validateEnvironment();
37
- // Start with defaults
38
73
  let config = { ...this.DEFAULT_CONFIG };
39
- // Determine config path - use provided path or default location
40
- let effectiveConfigPath = configPath;
41
- if (!effectiveConfigPath) {
42
- // Try to use default config location
43
- try {
44
- const paths = envPaths(ENV_PATHS_APP_NAME, ENV_PATHS_OPTIONS);
45
- const defaultConfigPath = path.join(paths.config, "config.json");
46
- // Check if default config exists
47
- const fs = require("fs");
48
- if (fs.existsSync(defaultConfigPath)) {
49
- effectiveConfigPath = defaultConfigPath;
50
- logger.info(`Using default config file: ${defaultConfigPath}`);
51
- }
74
+ const effectiveConfigPath = configPath || this.getDefaultConfigPath();
75
+ const fileConfig = await this.loadConfigFile(effectiveConfigPath);
76
+ // Runner repos are now server-owned; ignore any persisted runnerRepos in config files
77
+ if (fileConfig && fileConfig.runnerRepos) {
78
+ delete fileConfig.runnerRepos;
79
+ }
80
+ const migratedWorkspacePath = !fileConfig.workspacePath && fileConfig.workspaceDir
81
+ ? fileConfig.workspaceDir
82
+ : undefined;
83
+ config = { ...config, ...fileConfig };
84
+ const envConfig = this.loadFromEnvironment();
85
+ config = { ...config, ...envConfig };
86
+ // Determine the workspacePath to use after env/CLI overrides
87
+ let workspacePath = config.workspacePath;
88
+ const appliedMigration = !workspacePath && !!migratedWorkspacePath;
89
+ let shouldPersistWorkspacePath = false;
90
+ if (appliedMigration) {
91
+ workspacePath = migratedWorkspacePath;
92
+ shouldPersistWorkspacePath = true;
93
+ }
94
+ if (!workspacePath) {
95
+ if (options?.promptForWorkspacePath) {
96
+ workspacePath = await this.promptForWorkspacePath();
97
+ shouldPersistWorkspacePath = true;
52
98
  }
53
- catch (error) {
54
- // env-paths not available or error accessing default location
55
- logger.debug("Could not check default config location:", error);
99
+ else {
100
+ throw new Error("workspacePath is required. Provide NORTHFLARE_WORKSPACE_PATH, --workspace-path, or set it in the runner config file.");
56
101
  }
57
102
  }
58
- // Load from config file if we have a path
59
- if (effectiveConfigPath) {
60
- const fileConfig = await this.loadConfigFile(effectiveConfigPath);
61
- config = { ...config, ...fileConfig };
103
+ const normalizedWorkspacePath = this.normalizeWorkspacePath(workspacePath);
104
+ config.workspacePath = normalizedWorkspacePath;
105
+ if (shouldPersistWorkspacePath) {
106
+ await this.persistConfigFile(effectiveConfigPath, {
107
+ ...fileConfig,
108
+ ...config,
109
+ workspacePath: normalizedWorkspacePath,
110
+ });
62
111
  }
63
- // Override with environment variables
64
- const envConfig = this.loadFromEnvironment();
65
- config = { ...config, ...envConfig };
66
- // Validate final configuration
67
112
  this.validateConfig(config);
68
113
  return config;
69
114
  }
@@ -81,18 +126,24 @@ export class ConfigManager {
81
126
  .option("--retry-interval-secs <seconds>", "Retry interval in seconds for interval strategy", "60")
82
127
  .option("--retry-duration-secs <seconds>", "Max retry duration in seconds for exponential strategy", "900")
83
128
  .option("--data-dir <path>", "Data directory path")
84
- .option("--heartbeat-interval <ms>", "Heartbeat interval in milliseconds", "120000");
129
+ .option("--heartbeat-interval <ms>", "Heartbeat interval in milliseconds", "120000")
130
+ .option("--workspace-path <path>", "Workspace directory path");
85
131
  program.parse(argv);
86
132
  const options = program.opts();
87
133
  // Validate required environment variables
88
134
  this.validateEnvironment();
89
135
  // Start with defaults
90
136
  let config = { ...this.DEFAULT_CONFIG };
91
- // Load from config file if provided
92
- if (options["config"]) {
93
- const fileConfig = await this.loadConfigFile(options["config"]);
94
- config = { ...config, ...fileConfig };
137
+ // Load from config file (explicit path or default) and capture legacy workspaceDir for migration
138
+ const effectiveConfigPath = options["config"] || this.getDefaultConfigPath();
139
+ const fileConfig = await this.loadConfigFile(effectiveConfigPath);
140
+ if (fileConfig && fileConfig.runnerRepos) {
141
+ delete fileConfig.runnerRepos;
95
142
  }
143
+ const migratedWorkspacePath = !fileConfig.workspacePath && fileConfig.workspaceDir
144
+ ? fileConfig.workspaceDir
145
+ : undefined;
146
+ config = { ...config, ...fileConfig };
96
147
  // Override with environment variables
97
148
  const envConfig = this.loadFromEnvironment();
98
149
  config = { ...config, ...envConfig };
@@ -112,6 +163,30 @@ export class ConfigManager {
112
163
  if (options["heartbeatInterval"]) {
113
164
  config.heartbeatInterval = parseInt(options["heartbeatInterval"]);
114
165
  }
166
+ if (options["workspacePath"]) {
167
+ config.workspacePath = options["workspacePath"];
168
+ }
169
+ const appliedMigration = !config.workspacePath && !!migratedWorkspacePath;
170
+ let shouldPersistWorkspacePath = false;
171
+ if (appliedMigration) {
172
+ config.workspacePath = migratedWorkspacePath;
173
+ shouldPersistWorkspacePath = true;
174
+ }
175
+ if (!config.workspacePath) {
176
+ // Mirror loadConfig behavior: prompt when missing
177
+ const workspacePath = await this.promptForWorkspacePath();
178
+ config.workspacePath = workspacePath;
179
+ shouldPersistWorkspacePath = true;
180
+ }
181
+ const normalizedWorkspacePath = this.normalizeWorkspacePath(config.workspacePath);
182
+ config.workspacePath = normalizedWorkspacePath;
183
+ if (shouldPersistWorkspacePath) {
184
+ await this.persistConfigFile(effectiveConfigPath, {
185
+ ...fileConfig,
186
+ ...config,
187
+ workspacePath: normalizedWorkspacePath,
188
+ });
189
+ }
115
190
  // Validate final configuration
116
191
  this.validateConfig(config);
117
192
  return config;
@@ -120,26 +195,7 @@ export class ConfigManager {
120
195
  * Validate required environment variables
121
196
  */
122
197
  static validateEnvironment() {
123
- // Set default for NORTHFLARE_WORKSPACE_DIR if not provided
124
- if (!process.env["NORTHFLARE_WORKSPACE_DIR"]) {
125
- try {
126
- const paths = envPaths(ENV_PATHS_APP_NAME, ENV_PATHS_OPTIONS);
127
- process.env["NORTHFLARE_WORKSPACE_DIR"] = paths.data;
128
- }
129
- catch (error) {
130
- // Fallback to original default if env-paths is not available
131
- process.env["NORTHFLARE_WORKSPACE_DIR"] = "/workspace";
132
- }
133
- }
134
- // Set default for NORTHFLARE_ORCHESTRATOR_URL if not provided
135
- if (!process.env["NORTHFLARE_ORCHESTRATOR_URL"]) {
136
- process.env["NORTHFLARE_ORCHESTRATOR_URL"] = "https://api.northflare.app";
137
- }
138
- const required = [
139
- "NORTHFLARE_RUNNER_TOKEN",
140
- "NORTHFLARE_WORKSPACE_DIR",
141
- "NORTHFLARE_ORCHESTRATOR_URL",
142
- ];
198
+ const required = ["NORTHFLARE_RUNNER_TOKEN"];
143
199
  const missing = required.filter((key) => !process.env[key]);
144
200
  if (missing.length > 0) {
145
201
  throw new Error(`Missing required environment variables: ${missing.join(", ")}\n` +
@@ -150,13 +206,17 @@ export class ConfigManager {
150
206
  * Load configuration from environment variables
151
207
  */
152
208
  static loadFromEnvironment() {
153
- const config = {
154
- orchestratorUrl: process.env["NORTHFLARE_ORCHESTRATOR_URL"],
155
- };
209
+ const config = {};
210
+ if (process.env["NORTHFLARE_ORCHESTRATOR_URL"]) {
211
+ config.orchestratorUrl = process.env["NORTHFLARE_ORCHESTRATOR_URL"];
212
+ }
156
213
  // Optional environment overrides
157
214
  if (process.env["NORTHFLARE_DATA_DIR"]) {
158
215
  config.dataDir = process.env["NORTHFLARE_DATA_DIR"];
159
216
  }
217
+ if (process.env["NORTHFLARE_WORKSPACE_PATH"]) {
218
+ config.workspacePath = process.env["NORTHFLARE_WORKSPACE_PATH"];
219
+ }
160
220
  return config;
161
221
  }
162
222
  /**
@@ -169,10 +229,8 @@ export class ConfigManager {
169
229
  // Support both JSON and YAML formats
170
230
  if (configPath.endsWith(".json")) {
171
231
  const config = JSON.parse(content);
172
- // Log if runnerRepos are found in config
173
- if (config.runnerRepos && Array.isArray(config.runnerRepos)) {
174
- logger.info(`Found ${config.runnerRepos.length} runner repos in config file`);
175
- }
232
+ // Runner repos are now server-sourced; ignore any persisted copy
233
+ delete config.runnerRepos;
176
234
  return config;
177
235
  }
178
236
  else if (configPath.endsWith(".yaml") || configPath.endsWith(".yml")) {
@@ -191,11 +249,75 @@ export class ConfigManager {
191
249
  throw error;
192
250
  }
193
251
  }
252
+ static async promptForWorkspacePath() {
253
+ const suggestedBase = this.resolveDefaultDataDir();
254
+ const defaultPath = path.join(suggestedBase, "workspaces");
255
+ const rl = readline.createInterface({ input, output });
256
+ try {
257
+ // Keep prompting until an absolute path is provided (tilde is allowed)
258
+ // to avoid silently resolving relative paths.
259
+ while (true) {
260
+ const answer = await rl.question(`Enter a local workspace directory for runner workspaces (default: ${defaultPath}): `);
261
+ const chosen = answer.trim() === "" ? defaultPath : answer.trim();
262
+ try {
263
+ const normalized = this.normalizeWorkspacePath(chosen);
264
+ await fs.mkdir(normalized, { recursive: true });
265
+ logger.info(`Using workspace path: ${normalized}`);
266
+ return normalized;
267
+ }
268
+ catch (error) {
269
+ logger.error(error.message ||
270
+ "workspacePath must be an absolute path. Please try again.");
271
+ }
272
+ }
273
+ }
274
+ finally {
275
+ rl.close();
276
+ }
277
+ }
278
+ static normalizeWorkspacePath(workspacePath) {
279
+ const trimmed = workspacePath?.trim();
280
+ if (!trimmed) {
281
+ throw new Error("workspacePath is required");
282
+ }
283
+ // Expand tilde to the user's home directory without accidentally
284
+ // discarding the home path when the remainder begins with a path separator.
285
+ let expanded = trimmed;
286
+ if (trimmed === "~") {
287
+ expanded = os.homedir();
288
+ }
289
+ else if (trimmed.startsWith("~/")) {
290
+ expanded = path.join(os.homedir(), trimmed.slice(2));
291
+ }
292
+ else if (trimmed.startsWith("~\\")) {
293
+ expanded = path.join(os.homedir(), trimmed.slice(2));
294
+ }
295
+ if (!path.isAbsolute(expanded)) {
296
+ throw new Error("workspacePath must be an absolute path");
297
+ }
298
+ return expanded;
299
+ }
300
+ static async persistConfigFile(configPath, config) {
301
+ try {
302
+ const absolutePath = path.resolve(configPath);
303
+ await fs.mkdir(path.dirname(absolutePath), { recursive: true });
304
+ await this.saveConfigFile(absolutePath, config);
305
+ }
306
+ catch (error) {
307
+ logger.error("Failed to persist config file", error);
308
+ }
309
+ }
194
310
  /**
195
311
  * Validate final configuration
196
312
  */
197
313
  static validateConfig(config) {
198
314
  // Note: Runner ID will be generated by server during registration
315
+ if (!config.workspacePath || config.workspacePath.trim() === "") {
316
+ throw new Error("workspacePath is required");
317
+ }
318
+ if (!path.isAbsolute(config.workspacePath)) {
319
+ throw new Error("workspacePath must be an absolute path");
320
+ }
199
321
  if (!config.orchestratorUrl) {
200
322
  throw new Error("orchestratorUrl is required");
201
323
  }
@@ -230,7 +352,7 @@ export class ConfigManager {
230
352
  static getEnvironmentConfig() {
231
353
  return {
232
354
  NORTHFLARE_RUNNER_TOKEN: process.env["NORTHFLARE_RUNNER_TOKEN"],
233
- NORTHFLARE_WORKSPACE_DIR: process.env["NORTHFLARE_WORKSPACE_DIR"],
355
+ NORTHFLARE_WORKSPACE_PATH: process.env["NORTHFLARE_WORKSPACE_PATH"],
234
356
  NORTHFLARE_ORCHESTRATOR_URL: process.env["NORTHFLARE_ORCHESTRATOR_URL"],
235
357
  NORTHFLARE_RUNNER_DEBUG: process.env["NORTHFLARE_RUNNER_DEBUG"],
236
358
  DEBUG: process.env["DEBUG"],
@@ -242,6 +364,7 @@ export class ConfigManager {
242
364
  static async saveConfigFile(configPath, config) {
243
365
  try {
244
366
  const absolutePath = path.resolve(configPath);
367
+ await fs.mkdir(path.dirname(absolutePath), { recursive: true });
245
368
  const content = JSON.stringify(config, null, 2);
246
369
  await fs.writeFile(absolutePath, content, "utf-8");
247
370
  logger.info(`Updated configuration file: ${absolutePath}`);
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"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"}
@@ -87,5 +87,5 @@ The ClaudeManager classifies errors into the following types:
87
87
 
88
88
  - `ANTHROPIC_API_KEY`: Required for Claude API access
89
89
  - `NORTHFLARE_RUNNER_TOKEN`: Required for orchestrator API authentication
90
- - `NORTHFLARE_WORKSPACE_DIR`: Base directory for Git checkouts
90
+ - `NORTHFLARE_WORKSPACE_PATH`: Base directory for Git checkouts
91
91
  - `DEBUG` (optional): Enable debug logging
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@northflare/runner",
3
- "version": "0.0.23",
3
+ "version": "0.0.25",
4
4
  "description": "Distributed conversation runner for Northflare",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -12,7 +12,7 @@
12
12
  "@anthropic-ai/claude-agent-sdk": "0.1.51",
13
13
  "@botanicastudios/claude-code-sdk-ts": "0.2.22-fork",
14
14
  "@botanicastudios/mcp-host-rpc": "^0.4.0",
15
- "@openai/codex-sdk": "^0.60.1",
15
+ "@openai/codex-sdk": "^0.71.0",
16
16
  "@openrouter/ai-sdk-provider": "^1.2.8",
17
17
  "@tanstack/react-query": "^5.x.x",
18
18
  "@types/jsonwebtoken": "^9.0.10",