@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.
Files changed (154) hide show
  1. package/DEBUG_LOGGING.md +60 -0
  2. package/LICENSE +21 -0
  3. package/MIGRATION_PLAN.md +52 -0
  4. package/README.md +220 -0
  5. package/SDK_IMPLEMENTATION_GUIDE.md +1036 -0
  6. package/bin/northflare-runner +367 -0
  7. package/coverage/base.css +224 -0
  8. package/coverage/block-navigation.js +87 -0
  9. package/coverage/coverage-final.json +12 -0
  10. package/coverage/favicon.png +0 -0
  11. package/coverage/index.html +176 -0
  12. package/coverage/lib/index.html +116 -0
  13. package/coverage/lib/preload-script.js.html +964 -0
  14. package/coverage/prettify.css +1 -0
  15. package/coverage/prettify.js +2 -0
  16. package/coverage/sort-arrow-sprite.png +0 -0
  17. package/coverage/sorter.js +196 -0
  18. package/coverage/src/collections/index.html +116 -0
  19. package/coverage/src/collections/runner-messages.ts.html +312 -0
  20. package/coverage/src/components/claude-manager.ts.html +1290 -0
  21. package/coverage/src/components/index.html +146 -0
  22. package/coverage/src/components/message-handler.ts.html +730 -0
  23. package/coverage/src/components/repository-manager.ts.html +841 -0
  24. package/coverage/src/index.html +131 -0
  25. package/coverage/src/index.ts.html +448 -0
  26. package/coverage/src/runner.ts.html +1239 -0
  27. package/coverage/src/utils/config.ts.html +780 -0
  28. package/coverage/src/utils/console.ts.html +121 -0
  29. package/coverage/src/utils/index.html +161 -0
  30. package/coverage/src/utils/logger.ts.html +475 -0
  31. package/coverage/src/utils/status-line.ts.html +445 -0
  32. package/dist/collections/runner-messages.d.ts +52 -0
  33. package/dist/collections/runner-messages.d.ts.map +1 -0
  34. package/dist/collections/runner-messages.js +161 -0
  35. package/dist/collections/runner-messages.js.map +1 -0
  36. package/dist/components/claude-manager.d.ts +39 -0
  37. package/dist/components/claude-manager.d.ts.map +1 -0
  38. package/dist/components/claude-manager.js +783 -0
  39. package/dist/components/claude-manager.js.map +1 -0
  40. package/dist/components/claude-sdk-manager.d.ts +47 -0
  41. package/dist/components/claude-sdk-manager.d.ts.map +1 -0
  42. package/dist/components/claude-sdk-manager.js +1088 -0
  43. package/dist/components/claude-sdk-manager.js.map +1 -0
  44. package/dist/components/enhanced-repository-manager.d.ts +134 -0
  45. package/dist/components/enhanced-repository-manager.d.ts.map +1 -0
  46. package/dist/components/enhanced-repository-manager.js +602 -0
  47. package/dist/components/enhanced-repository-manager.js.map +1 -0
  48. package/dist/components/message-handler-sse.d.ts +46 -0
  49. package/dist/components/message-handler-sse.d.ts.map +1 -0
  50. package/dist/components/message-handler-sse.js +734 -0
  51. package/dist/components/message-handler-sse.js.map +1 -0
  52. package/dist/components/message-handler.d.ts +35 -0
  53. package/dist/components/message-handler.d.ts.map +1 -0
  54. package/dist/components/message-handler.js +689 -0
  55. package/dist/components/message-handler.js.map +1 -0
  56. package/dist/components/repository-manager.d.ts +51 -0
  57. package/dist/components/repository-manager.d.ts.map +1 -0
  58. package/dist/components/repository-manager.js +295 -0
  59. package/dist/components/repository-manager.js.map +1 -0
  60. package/dist/index.d.ts +9 -0
  61. package/dist/index.d.ts.map +1 -0
  62. package/dist/index.js +166 -0
  63. package/dist/index.js.map +1 -0
  64. package/dist/runner-sse.d.ts +57 -0
  65. package/dist/runner-sse.d.ts.map +1 -0
  66. package/dist/runner-sse.js +698 -0
  67. package/dist/runner-sse.js.map +1 -0
  68. package/dist/runner.d.ts +51 -0
  69. package/dist/runner.d.ts.map +1 -0
  70. package/dist/runner.js +530 -0
  71. package/dist/runner.js.map +1 -0
  72. package/dist/services/RunnerAPIClient.d.ts +30 -0
  73. package/dist/services/RunnerAPIClient.d.ts.map +1 -0
  74. package/dist/services/RunnerAPIClient.js +112 -0
  75. package/dist/services/RunnerAPIClient.js.map +1 -0
  76. package/dist/services/SSEClient.d.ts +60 -0
  77. package/dist/services/SSEClient.d.ts.map +1 -0
  78. package/dist/services/SSEClient.js +204 -0
  79. package/dist/services/SSEClient.js.map +1 -0
  80. package/dist/types/claude.d.ts +45 -0
  81. package/dist/types/claude.d.ts.map +1 -0
  82. package/dist/types/claude.js +6 -0
  83. package/dist/types/claude.js.map +1 -0
  84. package/dist/types/index.d.ts +47 -0
  85. package/dist/types/index.d.ts.map +1 -0
  86. package/dist/types/index.js +23 -0
  87. package/dist/types/index.js.map +1 -0
  88. package/dist/types/messages.d.ts +31 -0
  89. package/dist/types/messages.d.ts.map +1 -0
  90. package/dist/types/messages.js +6 -0
  91. package/dist/types/messages.js.map +1 -0
  92. package/dist/types/runner-interface.d.ts +24 -0
  93. package/dist/types/runner-interface.d.ts.map +1 -0
  94. package/dist/types/runner-interface.js +6 -0
  95. package/dist/types/runner-interface.js.map +1 -0
  96. package/dist/utils/StateManager.d.ts +52 -0
  97. package/dist/utils/StateManager.d.ts.map +1 -0
  98. package/dist/utils/StateManager.js +162 -0
  99. package/dist/utils/StateManager.js.map +1 -0
  100. package/dist/utils/config.d.ts +41 -0
  101. package/dist/utils/config.d.ts.map +1 -0
  102. package/dist/utils/config.js +250 -0
  103. package/dist/utils/config.js.map +1 -0
  104. package/dist/utils/console.d.ts +11 -0
  105. package/dist/utils/console.d.ts.map +1 -0
  106. package/dist/utils/console.js +15 -0
  107. package/dist/utils/console.js.map +1 -0
  108. package/dist/utils/expand-env.d.ts +2 -0
  109. package/dist/utils/expand-env.d.ts.map +1 -0
  110. package/dist/utils/expand-env.js +20 -0
  111. package/dist/utils/expand-env.js.map +1 -0
  112. package/dist/utils/logger.d.ts +9 -0
  113. package/dist/utils/logger.d.ts.map +1 -0
  114. package/dist/utils/logger.js +108 -0
  115. package/dist/utils/logger.js.map +1 -0
  116. package/dist/utils/status-line.d.ts +37 -0
  117. package/dist/utils/status-line.d.ts.map +1 -0
  118. package/dist/utils/status-line.js +113 -0
  119. package/dist/utils/status-line.js.map +1 -0
  120. package/docs/claude-manager.md +91 -0
  121. package/exceptions.log +22 -0
  122. package/lib/preload-script.js +293 -0
  123. package/package.json +55 -0
  124. package/rejections.log +63 -0
  125. package/runner.log +488 -0
  126. package/src/components/claude-sdk-manager.ts +1354 -0
  127. package/src/components/enhanced-repository-manager.ts +823 -0
  128. package/src/components/message-handler-sse.ts +1011 -0
  129. package/src/components/repository-manager.ts +337 -0
  130. package/src/index.ts +166 -0
  131. package/src/runner-sse.ts +847 -0
  132. package/src/services/RunnerAPIClient.ts +135 -0
  133. package/src/services/SSEClient.ts +258 -0
  134. package/src/types/claude.ts +55 -0
  135. package/src/types/computer-name.d.ts +4 -0
  136. package/src/types/index.ts +63 -0
  137. package/src/types/messages.ts +39 -0
  138. package/src/types/runner-interface.ts +34 -0
  139. package/src/utils/StateManager.ts +187 -0
  140. package/src/utils/codex-sdk.js +448 -0
  141. package/src/utils/config.ts +315 -0
  142. package/src/utils/console.ts +13 -0
  143. package/src/utils/expand-env.ts +22 -0
  144. package/src/utils/logger.ts +131 -0
  145. package/src/utils/sdk-demo.js +34 -0
  146. package/src/utils/status-line.ts +121 -0
  147. package/test-debug.sh +26 -0
  148. package/tests/retry-strategies.test.ts +410 -0
  149. package/tests/sdk-integration.test.ts +329 -0
  150. package/tests/sdk-streaming.test.ts +1180 -0
  151. package/tests/setup.ts +5 -0
  152. package/tests/test-claude-manager.ts +120 -0
  153. package/tsconfig.json +36 -0
  154. 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"}