@northflare/runner 0.0.1
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/DEBUG_LOGGING.md +60 -0
- package/LICENSE +21 -0
- package/MIGRATION_PLAN.md +52 -0
- package/README.md +220 -0
- package/SDK_IMPLEMENTATION_GUIDE.md +1036 -0
- package/bin/northflare-runner +367 -0
- package/coverage/base.css +224 -0
- package/coverage/block-navigation.js +87 -0
- package/coverage/coverage-final.json +12 -0
- package/coverage/favicon.png +0 -0
- package/coverage/index.html +176 -0
- package/coverage/lib/index.html +116 -0
- package/coverage/lib/preload-script.js.html +964 -0
- package/coverage/prettify.css +1 -0
- package/coverage/prettify.js +2 -0
- package/coverage/sort-arrow-sprite.png +0 -0
- package/coverage/sorter.js +196 -0
- package/coverage/src/collections/index.html +116 -0
- package/coverage/src/collections/runner-messages.ts.html +312 -0
- package/coverage/src/components/claude-manager.ts.html +1290 -0
- package/coverage/src/components/index.html +146 -0
- package/coverage/src/components/message-handler.ts.html +730 -0
- package/coverage/src/components/repository-manager.ts.html +841 -0
- package/coverage/src/index.html +131 -0
- package/coverage/src/index.ts.html +448 -0
- package/coverage/src/runner.ts.html +1239 -0
- package/coverage/src/utils/config.ts.html +780 -0
- package/coverage/src/utils/console.ts.html +121 -0
- package/coverage/src/utils/index.html +161 -0
- package/coverage/src/utils/logger.ts.html +475 -0
- package/coverage/src/utils/status-line.ts.html +445 -0
- package/dist/collections/runner-messages.d.ts +52 -0
- package/dist/collections/runner-messages.d.ts.map +1 -0
- package/dist/collections/runner-messages.js +161 -0
- package/dist/collections/runner-messages.js.map +1 -0
- package/dist/components/claude-manager.d.ts +39 -0
- package/dist/components/claude-manager.d.ts.map +1 -0
- package/dist/components/claude-manager.js +783 -0
- package/dist/components/claude-manager.js.map +1 -0
- package/dist/components/claude-sdk-manager.d.ts +47 -0
- package/dist/components/claude-sdk-manager.d.ts.map +1 -0
- package/dist/components/claude-sdk-manager.js +1088 -0
- package/dist/components/claude-sdk-manager.js.map +1 -0
- package/dist/components/enhanced-repository-manager.d.ts +134 -0
- package/dist/components/enhanced-repository-manager.d.ts.map +1 -0
- package/dist/components/enhanced-repository-manager.js +602 -0
- package/dist/components/enhanced-repository-manager.js.map +1 -0
- package/dist/components/message-handler-sse.d.ts +46 -0
- package/dist/components/message-handler-sse.d.ts.map +1 -0
- package/dist/components/message-handler-sse.js +734 -0
- package/dist/components/message-handler-sse.js.map +1 -0
- package/dist/components/message-handler.d.ts +35 -0
- package/dist/components/message-handler.d.ts.map +1 -0
- package/dist/components/message-handler.js +689 -0
- package/dist/components/message-handler.js.map +1 -0
- package/dist/components/repository-manager.d.ts +51 -0
- package/dist/components/repository-manager.d.ts.map +1 -0
- package/dist/components/repository-manager.js +295 -0
- package/dist/components/repository-manager.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +166 -0
- package/dist/index.js.map +1 -0
- package/dist/runner-sse.d.ts +57 -0
- package/dist/runner-sse.d.ts.map +1 -0
- package/dist/runner-sse.js +698 -0
- package/dist/runner-sse.js.map +1 -0
- package/dist/runner.d.ts +51 -0
- package/dist/runner.d.ts.map +1 -0
- package/dist/runner.js +530 -0
- package/dist/runner.js.map +1 -0
- package/dist/services/RunnerAPIClient.d.ts +30 -0
- package/dist/services/RunnerAPIClient.d.ts.map +1 -0
- package/dist/services/RunnerAPIClient.js +112 -0
- package/dist/services/RunnerAPIClient.js.map +1 -0
- package/dist/services/SSEClient.d.ts +60 -0
- package/dist/services/SSEClient.d.ts.map +1 -0
- package/dist/services/SSEClient.js +204 -0
- package/dist/services/SSEClient.js.map +1 -0
- package/dist/types/claude.d.ts +45 -0
- package/dist/types/claude.d.ts.map +1 -0
- package/dist/types/claude.js +6 -0
- package/dist/types/claude.js.map +1 -0
- package/dist/types/index.d.ts +47 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +23 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/messages.d.ts +31 -0
- package/dist/types/messages.d.ts.map +1 -0
- package/dist/types/messages.js +6 -0
- package/dist/types/messages.js.map +1 -0
- package/dist/types/runner-interface.d.ts +24 -0
- package/dist/types/runner-interface.d.ts.map +1 -0
- package/dist/types/runner-interface.js +6 -0
- package/dist/types/runner-interface.js.map +1 -0
- package/dist/utils/StateManager.d.ts +52 -0
- package/dist/utils/StateManager.d.ts.map +1 -0
- package/dist/utils/StateManager.js +162 -0
- package/dist/utils/StateManager.js.map +1 -0
- package/dist/utils/config.d.ts +41 -0
- package/dist/utils/config.d.ts.map +1 -0
- package/dist/utils/config.js +250 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/console.d.ts +11 -0
- package/dist/utils/console.d.ts.map +1 -0
- package/dist/utils/console.js +15 -0
- package/dist/utils/console.js.map +1 -0
- package/dist/utils/expand-env.d.ts +2 -0
- package/dist/utils/expand-env.d.ts.map +1 -0
- package/dist/utils/expand-env.js +20 -0
- package/dist/utils/expand-env.js.map +1 -0
- package/dist/utils/logger.d.ts +9 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +108 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/status-line.d.ts +37 -0
- package/dist/utils/status-line.d.ts.map +1 -0
- package/dist/utils/status-line.js +113 -0
- package/dist/utils/status-line.js.map +1 -0
- package/docs/claude-manager.md +91 -0
- package/exceptions.log +22 -0
- package/lib/preload-script.js +293 -0
- package/package.json +55 -0
- package/rejections.log +63 -0
- package/runner.log +488 -0
- package/src/components/claude-sdk-manager.ts +1354 -0
- package/src/components/enhanced-repository-manager.ts +823 -0
- package/src/components/message-handler-sse.ts +1011 -0
- package/src/components/repository-manager.ts +337 -0
- package/src/index.ts +166 -0
- package/src/runner-sse.ts +847 -0
- package/src/services/RunnerAPIClient.ts +135 -0
- package/src/services/SSEClient.ts +258 -0
- package/src/types/claude.ts +55 -0
- package/src/types/computer-name.d.ts +4 -0
- package/src/types/index.ts +63 -0
- package/src/types/messages.ts +39 -0
- package/src/types/runner-interface.ts +34 -0
- package/src/utils/StateManager.ts +187 -0
- package/src/utils/codex-sdk.js +448 -0
- package/src/utils/config.ts +315 -0
- package/src/utils/console.ts +13 -0
- package/src/utils/expand-env.ts +22 -0
- package/src/utils/logger.ts +131 -0
- package/src/utils/sdk-demo.js +34 -0
- package/src/utils/status-line.ts +121 -0
- package/test-debug.sh +26 -0
- package/tests/retry-strategies.test.ts +410 -0
- package/tests/sdk-integration.test.ts +329 -0
- package/tests/sdk-streaming.test.ts +1180 -0
- package/tests/setup.ts +5 -0
- package/tests/test-claude-manager.ts +120 -0
- package/tsconfig.json +36 -0
- package/vitest.config.ts +27 -0
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* ElectricSQL collection for RunnerMessages with real-time sync
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.RunnerMessagesCollection = exports.runnerMessageSchema = void 0;
|
|
7
|
+
exports.createRunnerMessagesCollection = createRunnerMessagesCollection;
|
|
8
|
+
const client_1 = require("@electric-sql/client");
|
|
9
|
+
const zod_1 = require("zod");
|
|
10
|
+
const logger_1 = require("../utils/logger");
|
|
11
|
+
const logger = (0, logger_1.createLogger)("ElectricSQL");
|
|
12
|
+
// Schema for RunnerMessage from ElectricSQL (raw database columns)
|
|
13
|
+
const electricMessageSchema = zod_1.z.object({
|
|
14
|
+
id: zod_1.z.string(),
|
|
15
|
+
direction: zod_1.z.enum(["to_runner", "to_orchestrator"]),
|
|
16
|
+
runner: zod_1.z.string(), // Database column name
|
|
17
|
+
task: zod_1.z.string().nullable(), // Database column name for taskId
|
|
18
|
+
workspace: zod_1.z.string().nullable(), // Database column name
|
|
19
|
+
conversation: zod_1.z.string().nullable(), // Database column name for conversationId (relation id)
|
|
20
|
+
payload: zod_1.z.any(), // JSONRPC 2.0 message
|
|
21
|
+
expiresAt: zod_1.z.string(),
|
|
22
|
+
createdAt: zod_1.z.string(),
|
|
23
|
+
});
|
|
24
|
+
// Schema for normalized RunnerMessage used internally
|
|
25
|
+
exports.runnerMessageSchema = zod_1.z.object({
|
|
26
|
+
id: zod_1.z.string(),
|
|
27
|
+
direction: zod_1.z.enum(["to_runner", "to_orchestrator"]),
|
|
28
|
+
runnerId: zod_1.z.string(),
|
|
29
|
+
taskId: zod_1.z.string().nullable(),
|
|
30
|
+
workspaceId: zod_1.z.string().nullable(),
|
|
31
|
+
conversationId: zod_1.z.string().nullable(),
|
|
32
|
+
payload: zod_1.z.any(), // JSONRPC 2.0 message
|
|
33
|
+
expiresAt: zod_1.z.string(),
|
|
34
|
+
createdAt: zod_1.z.string(),
|
|
35
|
+
});
|
|
36
|
+
class RunnerMessagesCollection {
|
|
37
|
+
shape;
|
|
38
|
+
stream;
|
|
39
|
+
subscribers = new Set();
|
|
40
|
+
shapeUnsubscribe;
|
|
41
|
+
isInitialized = false;
|
|
42
|
+
state = new Map();
|
|
43
|
+
constructor(config, lastProcessedAt) {
|
|
44
|
+
// Build the where clause based on lastProcessedAt
|
|
45
|
+
let whereClause = `"direction" = 'to_runner' AND "runner" = '${config.runnerId}'`;
|
|
46
|
+
if (lastProcessedAt) {
|
|
47
|
+
// Only get messages created after lastProcessedAt
|
|
48
|
+
whereClause += ` AND "createdAt" > '${lastProcessedAt.toISOString()}'`;
|
|
49
|
+
}
|
|
50
|
+
// Debug logging for ElectricSQL connection setup
|
|
51
|
+
if (process.env["DEBUG"] === "true") {
|
|
52
|
+
logger.debug("Creating ElectricSQL shape stream", {
|
|
53
|
+
electricUrl: config.electricUrl,
|
|
54
|
+
runnerId: config.runnerId,
|
|
55
|
+
lastProcessedAt: lastProcessedAt?.toISOString() || "null",
|
|
56
|
+
whereClause: whereClause,
|
|
57
|
+
table: '"RunnerMessage"',
|
|
58
|
+
authToken: process.env["CLAUDETTE_RUNNER_TOKEN"] ? "present" : "missing"
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
// Create the ShapeStream
|
|
62
|
+
this.stream = new client_1.ShapeStream({
|
|
63
|
+
url: `${config.electricUrl}/v1/shape`,
|
|
64
|
+
params: {
|
|
65
|
+
table: '"RunnerMessage"',
|
|
66
|
+
where: whereClause,
|
|
67
|
+
},
|
|
68
|
+
headers: {
|
|
69
|
+
Authorization: `Bearer ${process.env["CLAUDETTE_RUNNER_TOKEN"]}`,
|
|
70
|
+
},
|
|
71
|
+
});
|
|
72
|
+
// Create the Shape to handle data
|
|
73
|
+
this.shape = new client_1.Shape(this.stream);
|
|
74
|
+
// Subscribe to shape changes
|
|
75
|
+
this.shapeUnsubscribe = this.shape.subscribe(({ rows }) => {
|
|
76
|
+
// Update internal state with normalized messages
|
|
77
|
+
this.state.clear();
|
|
78
|
+
rows.forEach((row) => {
|
|
79
|
+
// Normalize the database column names to our internal schema
|
|
80
|
+
// ElectricSQL always returns raw database columns: task, runner, workspace
|
|
81
|
+
const normalizedMessage = {
|
|
82
|
+
id: row.id,
|
|
83
|
+
direction: row.direction,
|
|
84
|
+
runnerId: row.runner, // Database column 'runner' -> 'runnerId'
|
|
85
|
+
taskId: row.task, // Database column 'task' -> 'taskId'
|
|
86
|
+
workspaceId: row.workspace, // Database column 'workspace' -> 'workspaceId'
|
|
87
|
+
conversationId: row.conversation ?? null,
|
|
88
|
+
payload: row.payload,
|
|
89
|
+
expiresAt: row.expiresAt,
|
|
90
|
+
createdAt: row.createdAt,
|
|
91
|
+
};
|
|
92
|
+
this.state.set(normalizedMessage.id, normalizedMessage);
|
|
93
|
+
});
|
|
94
|
+
// Mark as initialized after first sync
|
|
95
|
+
if (!this.isInitialized) {
|
|
96
|
+
this.isInitialized = true;
|
|
97
|
+
}
|
|
98
|
+
if (process.env["DEBUG"] === "true") {
|
|
99
|
+
logger.debug("ElectricSQL shape updated", {
|
|
100
|
+
messageCount: rows.length,
|
|
101
|
+
runnerId: config.runnerId
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
// Notify all subscribers
|
|
105
|
+
this.subscribers.forEach(callback => callback());
|
|
106
|
+
});
|
|
107
|
+
// Log when collection is created
|
|
108
|
+
if (process.env["DEBUG"] === "true") {
|
|
109
|
+
logger.debug("ElectricSQL collection created", {
|
|
110
|
+
hasState: true,
|
|
111
|
+
shapeUrl: `${config.electricUrl}/v1/shape`
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
// Subscribe to collection changes
|
|
116
|
+
subscribe(callback) {
|
|
117
|
+
this.subscribers.add(callback);
|
|
118
|
+
// Return unsubscribe function
|
|
119
|
+
return () => {
|
|
120
|
+
this.subscribers.delete(callback);
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
// Preload data - wait for initial sync
|
|
124
|
+
async preload() {
|
|
125
|
+
if (process.env["DEBUG"] === "true") {
|
|
126
|
+
logger.debug("Preloading ElectricSQL data");
|
|
127
|
+
}
|
|
128
|
+
// Wait for initial data to load
|
|
129
|
+
await this.shape.rows;
|
|
130
|
+
if (process.env["DEBUG"] === "true") {
|
|
131
|
+
logger.debug("ElectricSQL preload complete", {
|
|
132
|
+
messageCount: this.state.size
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
// Check if collection is ready
|
|
137
|
+
isReady() {
|
|
138
|
+
// Consider ready after initial sync
|
|
139
|
+
return this.isInitialized;
|
|
140
|
+
}
|
|
141
|
+
// Stop the collection
|
|
142
|
+
stop() {
|
|
143
|
+
// Unsubscribe from shape updates
|
|
144
|
+
if (this.shapeUnsubscribe) {
|
|
145
|
+
this.shapeUnsubscribe();
|
|
146
|
+
}
|
|
147
|
+
// Stop all stream subscriptions
|
|
148
|
+
this.stream.unsubscribeAll();
|
|
149
|
+
// Clear internal state
|
|
150
|
+
this.subscribers.clear();
|
|
151
|
+
this.state.clear();
|
|
152
|
+
if (process.env["DEBUG"] === "true") {
|
|
153
|
+
logger.debug("ElectricSQL collection stopped");
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
exports.RunnerMessagesCollection = RunnerMessagesCollection;
|
|
158
|
+
function createRunnerMessagesCollection(config, lastProcessedAt) {
|
|
159
|
+
return new RunnerMessagesCollection(config, lastProcessedAt);
|
|
160
|
+
}
|
|
161
|
+
//# sourceMappingURL=runner-messages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runner-messages.js","sourceRoot":"","sources":["../../src/collections/runner-messages.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ClaudeManager - Manages Claude conversations using claude-code-sdk-ts
|
|
3
|
+
*
|
|
4
|
+
* This component handles stateful conversation lifecycle management, maintaining
|
|
5
|
+
* persistent conversation instances indexed by taskId. It integrates with the
|
|
6
|
+
* Claude SDK to manage sessions, handle MCP server configurations, and coordinate
|
|
7
|
+
* with the orchestrator for authentication and notifications.
|
|
8
|
+
*/
|
|
9
|
+
import { IRunnerApp } from "../types/runner-interface";
|
|
10
|
+
import { EnhancedRepositoryManager } from "./enhanced-repository-manager";
|
|
11
|
+
import { ConversationContext, ConversationConfig, Message } from "../types";
|
|
12
|
+
export declare class ClaudeManager {
|
|
13
|
+
private runner;
|
|
14
|
+
private repositoryManager;
|
|
15
|
+
constructor(runner: IRunnerApp, repositoryManager: EnhancedRepositoryManager);
|
|
16
|
+
private setupInternalMcpServer;
|
|
17
|
+
startConversation(conversationObjectType: "Task" | "TaskPlan", conversationObjectId: string, config: ConversationConfig, initialMessages: Message[], conversationData?: {
|
|
18
|
+
id: string;
|
|
19
|
+
objectType: string;
|
|
20
|
+
objectId: string;
|
|
21
|
+
model: string;
|
|
22
|
+
globalInstructions: string;
|
|
23
|
+
workspaceInstructions: string;
|
|
24
|
+
permissionsMode: string;
|
|
25
|
+
agentSessionId: string;
|
|
26
|
+
}): Promise<ConversationContext>;
|
|
27
|
+
stopConversation(agentSessionId: string, context: ConversationContext): Promise<void>;
|
|
28
|
+
resumeConversation(conversationObjectType: "Task" | "TaskPlan", conversationObjectId: string, agentSessionId: string, config: ConversationConfig, conversationData?: any, resumeMessage?: string): Promise<string>;
|
|
29
|
+
sendUserMessage(conversationId: string, content: any, config?: ConversationConfig, conversationObjectType?: "Task" | "TaskPlan", conversationObjectId?: string, conversation?: any): Promise<void>;
|
|
30
|
+
private fetchGithubTokens;
|
|
31
|
+
private _handleConversationError;
|
|
32
|
+
private classifyError;
|
|
33
|
+
/**
|
|
34
|
+
* Normalize arbitrary content shapes into a plain string for the CLI
|
|
35
|
+
*/
|
|
36
|
+
private normalizeToText;
|
|
37
|
+
private handleStreamedMessage;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=claude-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-manager.d.ts","sourceRoot":"","sources":["../../src/components/claude-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAM5E,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;IA6XzB,gBAAgB,CACpB,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,IAAI,CAAC;IAuBV,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;IAmCZ,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,GACjB,OAAO,CAAC,IAAI,CAAC;YA8JF,iBAAiB;YA2BjB,wBAAwB;IA2BtC,OAAO,CAAC,aAAa;IAerB;;OAEG;IACH,OAAO,CAAC,eAAe;YA2CT,qBAAqB;CAmQpC"}
|