@northflare/runner 0.0.13 → 0.0.16
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 +8 -5
- package/bin/northflare-runner +44 -16
- package/dist/components/claude-sdk-manager.d.ts +3 -3
- package/dist/components/claude-sdk-manager.d.ts.map +1 -1
- package/dist/components/claude-sdk-manager.js +80 -111
- package/dist/components/claude-sdk-manager.js.map +1 -1
- package/dist/components/codex-sdk-manager.d.ts +15 -6
- package/dist/components/codex-sdk-manager.d.ts.map +1 -1
- package/dist/components/codex-sdk-manager.js +128 -97
- package/dist/components/codex-sdk-manager.js.map +1 -1
- package/dist/components/enhanced-repository-manager.d.ts +2 -2
- package/dist/components/enhanced-repository-manager.d.ts.map +1 -1
- package/dist/components/enhanced-repository-manager.js +68 -75
- package/dist/components/enhanced-repository-manager.js.map +1 -1
- package/dist/components/message-handler-sse.d.ts +1 -1
- package/dist/components/message-handler-sse.d.ts.map +1 -1
- package/dist/components/message-handler-sse.js +205 -97
- package/dist/components/message-handler-sse.js.map +1 -1
- package/dist/components/{claude-manager.d.ts → northflare-agent-sdk-manager.d.ts} +17 -14
- package/dist/components/northflare-agent-sdk-manager.d.ts.map +1 -0
- package/dist/components/northflare-agent-sdk-manager.js +1456 -0
- package/dist/components/northflare-agent-sdk-manager.js.map +1 -0
- package/dist/components/repository-manager.d.ts +2 -2
- package/dist/components/repository-manager.d.ts.map +1 -1
- package/dist/components/repository-manager.js +34 -74
- package/dist/components/repository-manager.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +115 -79
- package/dist/index.js.map +1 -1
- package/dist/runner-sse.d.ts +22 -5
- package/dist/runner-sse.d.ts.map +1 -1
- package/dist/runner-sse.js +95 -74
- package/dist/runner-sse.js.map +1 -1
- package/dist/services/RunnerAPIClient.d.ts +1 -1
- package/dist/services/RunnerAPIClient.d.ts.map +1 -1
- package/dist/services/RunnerAPIClient.js +3 -7
- package/dist/services/RunnerAPIClient.js.map +1 -1
- package/dist/services/SSEClient.js +5 -9
- package/dist/services/SSEClient.js.map +1 -1
- package/dist/types/claude.d.ts +16 -2
- package/dist/types/claude.d.ts.map +1 -1
- package/dist/types/claude.js +1 -2
- package/dist/types/claude.js.map +1 -1
- package/dist/types/index.d.ts +5 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +3 -19
- package/dist/types/index.js.map +1 -1
- package/dist/types/messages.js +1 -2
- package/dist/types/messages.js.map +1 -1
- package/dist/types/runner-interface.d.ts +8 -4
- package/dist/types/runner-interface.d.ts.map +1 -1
- package/dist/types/runner-interface.js +1 -2
- package/dist/types/runner-interface.js.map +1 -1
- package/dist/utils/StateManager.js +12 -19
- package/dist/utils/StateManager.js.map +1 -1
- package/dist/utils/config.d.ts +1 -1
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +19 -26
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/console.js +3 -6
- package/dist/utils/console.js.map +1 -1
- package/dist/utils/debug.js +1 -4
- package/dist/utils/debug.js.map +1 -1
- package/dist/utils/expand-env.js +1 -4
- package/dist/utils/expand-env.js.map +1 -1
- package/dist/utils/inactivity-timeout.d.ts +19 -0
- package/dist/utils/inactivity-timeout.d.ts.map +1 -0
- package/dist/utils/inactivity-timeout.js +72 -0
- package/dist/utils/inactivity-timeout.js.map +1 -0
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +24 -35
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/model.d.ts +3 -1
- package/dist/utils/model.d.ts.map +1 -1
- package/dist/utils/model.js +18 -4
- package/dist/utils/model.js.map +1 -1
- package/dist/utils/status-line.d.ts +1 -0
- package/dist/utils/status-line.d.ts.map +1 -1
- package/dist/utils/status-line.js +25 -18
- package/dist/utils/status-line.js.map +1 -1
- package/dist/utils/tool-response-sanitizer.js +6 -10
- package/dist/utils/tool-response-sanitizer.js.map +1 -1
- package/lib/codex-sdk/dist/index.d.ts +1 -1
- package/lib/codex-sdk/dist/samples/basic_streaming.d.ts +3 -0
- package/lib/codex-sdk/dist/samples/basic_streaming.d.ts.map +1 -0
- package/lib/codex-sdk/dist/samples/basic_streaming.js +81 -0
- package/lib/codex-sdk/dist/samples/basic_streaming.js.map +1 -0
- package/lib/codex-sdk/dist/samples/helpers.d.ts +2 -0
- package/lib/codex-sdk/dist/samples/helpers.d.ts.map +1 -0
- package/lib/codex-sdk/dist/samples/helpers.js +6 -0
- package/lib/codex-sdk/dist/samples/helpers.js.map +1 -0
- package/lib/codex-sdk/dist/samples/structured_output.d.ts +3 -0
- package/lib/codex-sdk/dist/samples/structured_output.d.ts.map +1 -0
- package/lib/codex-sdk/dist/samples/structured_output.js +17 -0
- package/lib/codex-sdk/dist/samples/structured_output.js.map +1 -0
- package/lib/codex-sdk/dist/samples/structured_output_zod.d.ts +3 -0
- package/lib/codex-sdk/dist/samples/structured_output_zod.d.ts.map +1 -0
- package/lib/codex-sdk/dist/samples/structured_output_zod.js +16 -0
- package/lib/codex-sdk/dist/samples/structured_output_zod.js.map +1 -0
- package/lib/codex-sdk/dist/tsup.config.d.ts +3 -0
- package/lib/codex-sdk/dist/tsup.config.js +12 -0
- package/package.json +9 -4
- package/scripts/verify-openrouter-agent.ts +163 -0
- package/dist/collections/runner-messages.d.ts +0 -52
- package/dist/collections/runner-messages.d.ts.map +0 -1
- package/dist/collections/runner-messages.js +0 -161
- package/dist/collections/runner-messages.js.map +0 -1
- package/dist/components/claude-manager.d.ts.map +0 -1
- package/dist/components/claude-manager.js +0 -783
- package/dist/components/claude-manager.js.map +0 -1
- package/dist/components/message-handler.d.ts +0 -35
- package/dist/components/message-handler.d.ts.map +0 -1
- package/dist/components/message-handler.js +0 -689
- package/dist/components/message-handler.js.map +0 -1
- package/dist/runner.d.ts +0 -51
- package/dist/runner.d.ts.map +0 -1
- package/dist/runner.js +0 -530
- package/dist/runner.js.map +0 -1
package/README.md
CHANGED
|
@@ -66,7 +66,7 @@ Options:
|
|
|
66
66
|
--retry-strategy <strategy> registration retry strategy (none, interval, exponential) (default: "exponential")
|
|
67
67
|
--retry-interval-secs <seconds> retry interval in seconds for interval strategy (default: "60")
|
|
68
68
|
--retry-duration-secs <seconds> max retry duration in seconds for exponential strategy (default: "900")
|
|
69
|
-
--data-dir <path> data directory path (default:
|
|
69
|
+
--data-dir <path> data directory path (default: env-paths app data dir)
|
|
70
70
|
--heartbeat-interval <ms> heartbeat interval in milliseconds (default: "120000")
|
|
71
71
|
-h, --help display help for command
|
|
72
72
|
```
|
|
@@ -75,11 +75,14 @@ Options:
|
|
|
75
75
|
|
|
76
76
|
### Configuration File (optional)
|
|
77
77
|
|
|
78
|
-
Create a `runner-config.json` file
|
|
78
|
+
Create a `runner-config.json` file (optional). By default data is stored in
|
|
79
|
+
the OS-specific application data directory provided by [`env-paths`](https://www.npmjs.com/package/env-paths)
|
|
80
|
+
under the `northflare-runner` app name. Override it only if you need the data
|
|
81
|
+
somewhere else:
|
|
79
82
|
|
|
80
83
|
```json
|
|
81
84
|
{
|
|
82
|
-
"dataDir": "
|
|
85
|
+
"dataDir": "/custom/path/to/northflare-runner-data"
|
|
83
86
|
}
|
|
84
87
|
```
|
|
85
88
|
|
|
@@ -88,9 +91,9 @@ Create a `runner-config.json` file:
|
|
|
88
91
|
| Variable | Required | Description |
|
|
89
92
|
| ----------------------------- | -------- | ------------------------------------------------------ |
|
|
90
93
|
| `NORTHFLARE_RUNNER_TOKEN` | Yes | Authentication token from server |
|
|
91
|
-
| `NORTHFLARE_WORKSPACE_DIR` | No | Root directory for Git checkouts (default:
|
|
94
|
+
| `NORTHFLARE_WORKSPACE_DIR` | No | Root directory for Git checkouts (default: env-paths app data dir) |
|
|
92
95
|
| `NORTHFLARE_ORCHESTRATOR_URL` | Yes | Orchestrator API endpoint |
|
|
93
|
-
| `NORTHFLARE_DATA_DIR` | No | Override data directory
|
|
96
|
+
| `NORTHFLARE_DATA_DIR` | No | Override data directory (default: env-paths app data dir) |
|
|
94
97
|
| `DEBUG` | No | Enable debug logging |
|
|
95
98
|
|
|
96
99
|
### Programmatic
|
package/bin/northflare-runner
CHANGED
|
@@ -4,9 +4,33 @@
|
|
|
4
4
|
* CLI executable for Northflare Runner
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
import { program, Command } from "commander";
|
|
8
|
+
import path from "path";
|
|
9
|
+
import { fileURLToPath } from "url";
|
|
10
|
+
import { createRequire } from "module";
|
|
11
|
+
import fs from "fs/promises";
|
|
12
|
+
import crypto from "crypto";
|
|
13
|
+
import envPaths from "env-paths";
|
|
14
|
+
|
|
15
|
+
// For reading package.json
|
|
16
|
+
const require = createRequire(import.meta.url);
|
|
8
17
|
const pkg = require("../package.json");
|
|
9
18
|
|
|
19
|
+
const ENV_PATHS_APP_NAME = "northflare-runner";
|
|
20
|
+
const ENV_PATHS_OPTIONS = { suffix: "" };
|
|
21
|
+
|
|
22
|
+
let DEFAULT_DATA_DIR;
|
|
23
|
+
try {
|
|
24
|
+
DEFAULT_DATA_DIR = envPaths(ENV_PATHS_APP_NAME, ENV_PATHS_OPTIONS).data;
|
|
25
|
+
} catch (error) {
|
|
26
|
+
console.warn(
|
|
27
|
+
"env-paths lookup failed, falling back to ./data for data directory",
|
|
28
|
+
error
|
|
29
|
+
);
|
|
30
|
+
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
31
|
+
DEFAULT_DATA_DIR = path.resolve(__dirname, "../data");
|
|
32
|
+
}
|
|
33
|
+
|
|
10
34
|
/**
|
|
11
35
|
* Helper function to fetch runner ID from orchestrator
|
|
12
36
|
*/
|
|
@@ -44,12 +68,16 @@ const startCommand = new Command("start")
|
|
|
44
68
|
.description("start the runner")
|
|
45
69
|
.option("-c, --config <path>", "path to configuration file")
|
|
46
70
|
.option("-d, --debug", "enable debug logging")
|
|
47
|
-
.option("--data-dir <path>", "override data directory")
|
|
71
|
+
.option("--data-dir <path>", "override data directory", DEFAULT_DATA_DIR)
|
|
48
72
|
.option(
|
|
49
73
|
"--workspace-dir <path>",
|
|
50
74
|
"workspace directory for Git checkouts (default: uses env-paths data directory)"
|
|
51
75
|
)
|
|
52
76
|
.option("--token <token>", "authentication token")
|
|
77
|
+
.option(
|
|
78
|
+
"--inactivity-timeout <duration>",
|
|
79
|
+
"exit the runner after this much idle time (e.g. 30s, 5m, 1h)"
|
|
80
|
+
)
|
|
53
81
|
.action(async (options, command) => {
|
|
54
82
|
// Set environment variables from CLI options
|
|
55
83
|
if (options.debug) {
|
|
@@ -65,6 +93,11 @@ const startCommand = new Command("start")
|
|
|
65
93
|
if (token) {
|
|
66
94
|
process.env.NORTHFLARE_RUNNER_TOKEN = token;
|
|
67
95
|
}
|
|
96
|
+
const inactivityTimeout =
|
|
97
|
+
options.inactivityTimeout || command.parent?.opts().inactivityTimeout;
|
|
98
|
+
if (inactivityTimeout) {
|
|
99
|
+
process.env.NORTHFLARE_RUNNER_INACTIVITY_TIMEOUT = inactivityTimeout;
|
|
100
|
+
}
|
|
68
101
|
|
|
69
102
|
// Load the main module with config path if provided
|
|
70
103
|
// Clear argv[2] since it contains 'start' command
|
|
@@ -74,8 +107,8 @@ const startCommand = new Command("start")
|
|
|
74
107
|
process.argv[2] = configPath;
|
|
75
108
|
}
|
|
76
109
|
|
|
77
|
-
//
|
|
78
|
-
const { main } =
|
|
110
|
+
// Dynamically import the main module
|
|
111
|
+
const { main } = await import("../dist/index.js");
|
|
79
112
|
await main().catch((error) => {
|
|
80
113
|
console.error("Fatal error:", error.message);
|
|
81
114
|
process.exit(1);
|
|
@@ -87,7 +120,7 @@ const validateCommand = new Command("validate")
|
|
|
87
120
|
.description("validate configuration without starting")
|
|
88
121
|
.option("-c, --config <path>", "path to configuration file")
|
|
89
122
|
.option("--token <token>", "authentication token")
|
|
90
|
-
.option("--data-dir <path>", "override data directory")
|
|
123
|
+
.option("--data-dir <path>", "override data directory", DEFAULT_DATA_DIR)
|
|
91
124
|
.option(
|
|
92
125
|
"--workspace-dir <path>",
|
|
93
126
|
"workspace directory for Git checkouts (default: uses env-paths data directory)"
|
|
@@ -106,7 +139,7 @@ const validateCommand = new Command("validate")
|
|
|
106
139
|
process.env.NORTHFLARE_WORKSPACE_DIR = options.workspaceDir;
|
|
107
140
|
}
|
|
108
141
|
|
|
109
|
-
const { ConfigManager } =
|
|
142
|
+
const { ConfigManager } = await import("../dist/utils/config.js");
|
|
110
143
|
const configPath = options.config || command.parent?.opts().config;
|
|
111
144
|
const config = await ConfigManager.loadConfig(configPath);
|
|
112
145
|
console.log("Configuration is valid");
|
|
@@ -131,10 +164,6 @@ const listReposCommand = new Command("list-repos")
|
|
|
131
164
|
.option("--token <token>", "authentication token")
|
|
132
165
|
.action(async (options, command) => {
|
|
133
166
|
try {
|
|
134
|
-
const fs = require("fs").promises;
|
|
135
|
-
const path = require("path");
|
|
136
|
-
const envPaths = require("env-paths").default || require("env-paths");
|
|
137
|
-
|
|
138
167
|
// Get token from command options, parent options, or environment
|
|
139
168
|
const token =
|
|
140
169
|
options.token ||
|
|
@@ -238,11 +267,6 @@ const addRepoCommand = new Command("add-repo")
|
|
|
238
267
|
.option("--token <token>", "authentication token")
|
|
239
268
|
.action(async (repoPath, options, command) => {
|
|
240
269
|
try {
|
|
241
|
-
const fs = require("fs").promises;
|
|
242
|
-
const path = require("path");
|
|
243
|
-
const envPaths = require("env-paths").default || require("env-paths");
|
|
244
|
-
const crypto = require("crypto");
|
|
245
|
-
|
|
246
270
|
// Get token from command options, parent options, or environment
|
|
247
271
|
const token =
|
|
248
272
|
options.token ||
|
|
@@ -361,7 +385,7 @@ const addRepoCommand = new Command("add-repo")
|
|
|
361
385
|
config.runnerRepos[runnerId].push(newRepo);
|
|
362
386
|
|
|
363
387
|
// Save updated config
|
|
364
|
-
const { ConfigManager } =
|
|
388
|
+
const { ConfigManager } = await import("../dist/utils/config.js");
|
|
365
389
|
await ConfigManager.saveConfigFile(configPath, config);
|
|
366
390
|
|
|
367
391
|
console.log(
|
|
@@ -429,6 +453,10 @@ program
|
|
|
429
453
|
"--token <token>",
|
|
430
454
|
"authentication token (can be used with any command)"
|
|
431
455
|
)
|
|
456
|
+
.option(
|
|
457
|
+
"--inactivity-timeout <duration>",
|
|
458
|
+
"exit the runner after this much idle time (e.g. 30s, 5m, 1h)"
|
|
459
|
+
)
|
|
432
460
|
.option(
|
|
433
461
|
"-c, --config <path>",
|
|
434
462
|
"path to configuration file (can be used with any command)"
|
|
@@ -13,9 +13,9 @@
|
|
|
13
13
|
* - SDK's onProcessComplete() for proper cleanup
|
|
14
14
|
* - Simplified error handling while maintaining compatibility
|
|
15
15
|
*/
|
|
16
|
-
import { IRunnerApp } from
|
|
17
|
-
import { EnhancedRepositoryManager } from
|
|
18
|
-
import { ConversationContext, ConversationConfig, Message } from
|
|
16
|
+
import { IRunnerApp } from '../types/runner-interface.js';
|
|
17
|
+
import { EnhancedRepositoryManager } from './enhanced-repository-manager.js';
|
|
18
|
+
import { ConversationContext, ConversationConfig, Message } from '../types/index.js';
|
|
19
19
|
export declare class ClaudeManager {
|
|
20
20
|
private runner;
|
|
21
21
|
private repositoryManager;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-sdk-manager.d.ts","sourceRoot":"","sources":["../../src/components/claude-sdk-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,OAAO,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"claude-sdk-manager.d.ts","sourceRoot":"","sources":["../../src/components/claude-sdk-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAOrF,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,iBAAiB,CAA4B;gBAGnD,MAAM,EAAE,UAAU,EAClB,iBAAiB,EAAE,yBAAyB;IAiB9C,OAAO,CAAC,sBAAsB;IAKxB,iBAAiB,CACrB,sBAAsB,EAAE,MAAM,GAAG,UAAU,EAC3C,oBAAoB,EAAE,MAAM,EAC5B,MAAM,EAAE,kBAAkB,EAC1B,eAAe,EAAE,OAAO,EAAE,EAC1B,gBAAgB,CAAC,EAAE;QACjB,EAAE,EAAE,MAAM,CAAC;QACX,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,kBAAkB,EAAE,MAAM,CAAC;QAC3B,qBAAqB,EAAE,MAAM,CAAC;QAC9B,eAAe,EAAE,MAAM,CAAC;QACxB,cAAc,EAAE,MAAM,CAAC;KACxB,GACA,OAAO,CAAC,mBAAmB,CAAC;IA4XzB,gBAAgB,CACpB,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,mBAAmB,EAC5B,gBAAgB,GAAE,OAAe,EACjC,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC;IAmCV,kBAAkB,CACtB,sBAAsB,EAAE,MAAM,GAAG,UAAU,EAC3C,oBAAoB,EAAE,MAAM,EAC5B,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,kBAAkB,EAC1B,gBAAgB,CAAC,EAAE,GAAG,EACtB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,MAAM,CAAC;YAuCJ,qBAAqB;IA2C7B,eAAe,CACnB,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,GAAG,EACZ,MAAM,CAAC,EAAE,kBAAkB,EAC3B,sBAAsB,CAAC,EAAE,MAAM,GAAG,UAAU,EAC5C,oBAAoB,CAAC,EAAE,MAAM,EAC7B,YAAY,CAAC,EAAE,GAAG,EAClB,uBAAuB,CAAC,EAAE,MAAM,GAC/B,OAAO,CAAC,IAAI,CAAC;YAgIF,iBAAiB;YA2BjB,wBAAwB;IA2BtC,OAAO,CAAC,aAAa;IAerB;;OAEG;IACH,OAAO,CAAC,eAAe;YA2CT,qBAAqB;CA0dpC"}
|