autodev-cli 1.4.0 → 1.4.3

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 (237) hide show
  1. package/bin/autodev.js +0 -0
  2. package/out/agentBackup/archive.d.ts +44 -0
  3. package/out/agentBackup/archive.js +131 -0
  4. package/out/agentBackup/archive.js.map +1 -0
  5. package/out/agentBackup/export.d.ts +18 -0
  6. package/out/agentBackup/export.js +92 -0
  7. package/out/agentBackup/export.js.map +1 -0
  8. package/out/agentBackup/import.d.ts +21 -0
  9. package/out/agentBackup/import.js +40 -0
  10. package/out/agentBackup/import.js.map +1 -0
  11. package/out/agentBackup/index.d.ts +6 -0
  12. package/out/agentBackup/index.js +11 -0
  13. package/out/agentBackup/index.js.map +1 -0
  14. package/out/agentBackup/layout.d.ts +30 -0
  15. package/out/agentBackup/layout.js +126 -0
  16. package/out/agentBackup/layout.js.map +1 -0
  17. package/out/agentBackup/manifest.d.ts +24 -0
  18. package/out/agentBackup/manifest.js +70 -0
  19. package/out/agentBackup/manifest.js.map +1 -0
  20. package/out/agentBackup/opencodeDb.d.ts +20 -0
  21. package/out/agentBackup/opencodeDb.js +213 -0
  22. package/out/agentBackup/opencodeDb.js.map +1 -0
  23. package/out/agentBackup/sessionProviders.d.ts +35 -0
  24. package/out/agentBackup/sessionProviders.js +263 -0
  25. package/out/agentBackup/sessionProviders.js.map +1 -0
  26. package/out/agentBackup/upload.d.ts +9 -0
  27. package/out/agentBackup/upload.js +121 -0
  28. package/out/agentBackup/upload.js.map +1 -0
  29. package/out/cli.d.ts +1 -0
  30. package/out/cli.js +8 -0
  31. package/out/cli.js.map +1 -1
  32. package/out/cliExit.d.ts +34 -0
  33. package/out/cliExit.js +159 -0
  34. package/out/cliExit.js.map +1 -0
  35. package/out/commands/config.d.ts +2 -0
  36. package/out/commands/config.js +7 -7
  37. package/out/commands/config.js.map +1 -1
  38. package/out/commands/connect.d.ts +2 -0
  39. package/out/commands/connect.js +11 -0
  40. package/out/commands/connect.js.map +1 -1
  41. package/out/commands/export.d.ts +2 -0
  42. package/out/commands/export.js +79 -0
  43. package/out/commands/export.js.map +1 -0
  44. package/out/commands/import.d.ts +2 -0
  45. package/out/commands/import.js +92 -0
  46. package/out/commands/import.js.map +1 -0
  47. package/out/commands/init.d.ts +16 -0
  48. package/out/commands/init.js +9 -5
  49. package/out/commands/init.js.map +1 -1
  50. package/out/commands/resume.d.ts +2 -0
  51. package/out/commands/resume.js +65 -0
  52. package/out/commands/resume.js.map +1 -0
  53. package/out/commands/sessions.d.ts +2 -0
  54. package/out/commands/sessions.js +64 -0
  55. package/out/commands/sessions.js.map +1 -0
  56. package/out/commands/start.d.ts +2 -0
  57. package/out/commands/start.js +40 -7
  58. package/out/commands/start.js.map +1 -1
  59. package/out/commands/status.d.ts +2 -0
  60. package/out/commands/status.js +3 -3
  61. package/out/commands/status.js.map +1 -1
  62. package/out/commands/tailOutput.d.ts +12 -0
  63. package/out/commands/up.d.ts +3 -0
  64. package/out/configManager.d.ts +42 -0
  65. package/out/configManager.js +430 -0
  66. package/out/configManager.js.map +1 -0
  67. package/out/connect.d.ts +4 -0
  68. package/out/connect.js +7 -7
  69. package/out/connect.js.map +1 -1
  70. package/out/core/adapters.d.ts +34 -0
  71. package/out/core/adapters.js +84 -0
  72. package/out/core/adapters.js.map +1 -0
  73. package/out/core/commandHelpers.d.ts +12 -0
  74. package/out/core/commandHelpers.js +96 -0
  75. package/out/core/commandHelpers.js.map +1 -0
  76. package/out/core/projectMcp.d.ts +25 -0
  77. package/out/core/projectMcp.js +144 -0
  78. package/out/core/projectMcp.js.map +1 -0
  79. package/out/core/provider/BaseProvider.d.ts +14 -0
  80. package/out/core/provider/BaseProvider.js +25 -0
  81. package/out/core/provider/BaseProvider.js.map +1 -0
  82. package/out/core/provider/ProviderRegistry.d.ts +12 -0
  83. package/out/core/provider/ProviderRegistry.js +40 -0
  84. package/out/core/provider/ProviderRegistry.js.map +1 -0
  85. package/out/core/provider/contract.d.ts +62 -0
  86. package/out/core/provider/contract.js +9 -0
  87. package/out/core/provider/contract.js.map +1 -0
  88. package/out/core/provider/implementations.d.ts +54 -0
  89. package/out/core/provider/implementations.js +147 -0
  90. package/out/core/provider/implementations.js.map +1 -0
  91. package/out/core/settingsLoader.d.ts +221 -0
  92. package/out/core/settingsLoader.js +176 -0
  93. package/out/core/settingsLoader.js.map +1 -0
  94. package/out/discordGateway.d.ts +26 -0
  95. package/out/discordGateway.js +230 -0
  96. package/out/discordGateway.js.map +1 -0
  97. package/out/discordPoller.d.ts +28 -0
  98. package/out/discordPoller.js +247 -0
  99. package/out/discordPoller.js.map +1 -0
  100. package/out/dispatcher.d.ts +12 -0
  101. package/out/dispatcher.js +214 -0
  102. package/out/dispatcher.js.map +1 -0
  103. package/out/emailPoller.d.ts +42 -0
  104. package/out/emailPoller.js +221 -0
  105. package/out/emailPoller.js.map +1 -0
  106. package/out/git/gitService.d.ts +36 -0
  107. package/out/git/gitService.js +165 -0
  108. package/out/git/gitService.js.map +1 -0
  109. package/out/hookEventNormalizer.d.ts +39 -0
  110. package/out/hookEventNormalizer.js +397 -0
  111. package/out/hookEventNormalizer.js.map +1 -0
  112. package/out/hooksManager.d.ts +25 -0
  113. package/out/hooksManager.js +471 -0
  114. package/out/hooksManager.js.map +1 -0
  115. package/out/launchIde.d.ts +14 -0
  116. package/out/logger.d.ts +12 -0
  117. package/out/mcpEmailTest.d.ts +29 -0
  118. package/out/mcpEmailTest.js +245 -0
  119. package/out/mcpEmailTest.js.map +1 -0
  120. package/out/mcpInstallCheck.d.ts +23 -0
  121. package/out/mcpInstallCheck.js +219 -0
  122. package/out/mcpInstallCheck.js.map +1 -0
  123. package/out/mcpManager.d.ts +35 -0
  124. package/out/mcpManager.js +371 -0
  125. package/out/mcpManager.js.map +1 -0
  126. package/out/messageBuilder.d.ts +54 -0
  127. package/out/messageBuilder.js +373 -0
  128. package/out/messageBuilder.js.map +1 -0
  129. package/out/openCodeHooksManager.d.ts +23 -0
  130. package/out/openCodeHooksManager.js +511 -0
  131. package/out/openCodeHooksManager.js.map +1 -0
  132. package/out/periodicActions.d.ts +63 -0
  133. package/out/periodicActions.js +237 -0
  134. package/out/periodicActions.js.map +1 -0
  135. package/out/profileBuilder.d.ts +29 -0
  136. package/out/profileBuilder.js +366 -0
  137. package/out/profileBuilder.js.map +1 -0
  138. package/out/prompt.d.ts +12 -0
  139. package/out/prompt.js +18 -0
  140. package/out/prompt.js.map +1 -0
  141. package/out/protocolSections.d.ts +26 -0
  142. package/out/protocolSections.js +209 -0
  143. package/out/protocolSections.js.map +1 -0
  144. package/out/providers/claudeCliProvider.d.ts +71 -0
  145. package/out/providers/claudeCliProvider.js +425 -0
  146. package/out/providers/claudeCliProvider.js.map +1 -0
  147. package/out/providers/claudeTuiProvider.d.ts +23 -0
  148. package/out/providers/claudeTuiProvider.js +296 -0
  149. package/out/providers/claudeTuiProvider.js.map +1 -0
  150. package/out/providers/copilotCliProvider.d.ts +16 -0
  151. package/out/providers/copilotCliProvider.js +44 -0
  152. package/out/providers/copilotCliProvider.js.map +1 -0
  153. package/out/providers/copilotSdkProvider.d.ts +12 -0
  154. package/out/providers/copilotSdkProvider.js +445 -0
  155. package/out/providers/copilotSdkProvider.js.map +1 -0
  156. package/out/providers/grokTuiProvider.d.ts +14 -0
  157. package/out/providers/grokTuiProvider.js +271 -0
  158. package/out/providers/grokTuiProvider.js.map +1 -0
  159. package/out/providers/opencodeCliProvider.d.ts +29 -0
  160. package/out/providers/opencodeCliProvider.js +199 -0
  161. package/out/providers/opencodeCliProvider.js.map +1 -0
  162. package/out/providers/opencodeSdkProvider.d.ts +22 -0
  163. package/out/providers/opencodeSdkProvider.js +557 -0
  164. package/out/providers/opencodeSdkProvider.js.map +1 -0
  165. package/out/providers.d.ts +9 -0
  166. package/out/providers.js +44 -0
  167. package/out/providers.js.map +1 -0
  168. package/out/rateLimit.d.ts +18 -0
  169. package/out/rateLimit.js +90 -0
  170. package/out/rateLimit.js.map +1 -0
  171. package/out/rdp/auth.d.ts +55 -0
  172. package/out/rdp/auth.js +197 -0
  173. package/out/rdp/auth.js.map +1 -0
  174. package/out/rdp/bridge.d.ts +86 -0
  175. package/out/rdp/bridge.js +1398 -0
  176. package/out/rdp/bridge.js.map +1 -0
  177. package/out/rdp/constants.d.ts +86 -0
  178. package/out/rdp/constants.js +182 -0
  179. package/out/rdp/constants.js.map +1 -0
  180. package/out/rdp/index.d.ts +7 -0
  181. package/out/rdp/index.js +14 -0
  182. package/out/rdp/index.js.map +1 -0
  183. package/out/rdp/session.d.ts +30 -0
  184. package/out/rdp/session.js +196 -0
  185. package/out/rdp/session.js.map +1 -0
  186. package/out/rdp/types.d.ts +27 -0
  187. package/out/rdp/types.js +6 -0
  188. package/out/rdp/types.js.map +1 -0
  189. package/out/sdk/index.d.ts +22 -0
  190. package/out/sdk/index.js +81 -0
  191. package/out/sdk/index.js.map +1 -0
  192. package/out/sessionState.d.ts +54 -0
  193. package/out/sessionState.js +284 -0
  194. package/out/sessionState.js.map +1 -0
  195. package/out/sessions.d.ts +11 -0
  196. package/out/sessions.js +32 -0
  197. package/out/sessions.js.map +1 -0
  198. package/out/taskLoop.d.ts +152 -0
  199. package/out/taskLoop.js +2505 -0
  200. package/out/taskLoop.js.map +1 -0
  201. package/out/todo.d.ts +42 -0
  202. package/out/todo.js +311 -0
  203. package/out/todo.js.map +1 -0
  204. package/out/todoWriteManager.d.ts +26 -0
  205. package/out/todoWriteManager.js +44 -0
  206. package/out/todoWriteManager.js.map +1 -0
  207. package/out/vnc/auth.d.ts +52 -0
  208. package/out/vnc/auth.js +181 -0
  209. package/out/vnc/auth.js.map +1 -0
  210. package/out/vnc/bridge.d.ts +40 -0
  211. package/out/vnc/bridge.js +540 -0
  212. package/out/vnc/bridge.js.map +1 -0
  213. package/out/vnc/constants.d.ts +8 -0
  214. package/out/vnc/constants.js +34 -0
  215. package/out/vnc/constants.js.map +1 -0
  216. package/out/vnc/des.d.ts +6 -0
  217. package/out/vnc/des.js +93 -0
  218. package/out/vnc/des.js.map +1 -0
  219. package/out/vnc/index.d.ts +7 -0
  220. package/out/vnc/index.js +13 -0
  221. package/out/vnc/index.js.map +1 -0
  222. package/out/vnc/session.d.ts +18 -0
  223. package/out/vnc/session.js +193 -0
  224. package/out/vnc/session.js.map +1 -0
  225. package/out/vnc/types.d.ts +16 -0
  226. package/out/vnc/types.js +6 -0
  227. package/out/vnc/types.js.map +1 -0
  228. package/out/webSocketPoller.d.ts +95 -0
  229. package/out/webSocketPoller.js +986 -0
  230. package/out/webSocketPoller.js.map +1 -0
  231. package/out/webhook.d.ts +37 -0
  232. package/out/webhook.js +265 -0
  233. package/out/webhook.js.map +1 -0
  234. package/out/webhookPoller.d.ts +40 -0
  235. package/out/webhookPoller.js +378 -0
  236. package/out/webhookPoller.js.map +1 -0
  237. package/package.json +54 -41
@@ -0,0 +1,196 @@
1
+ "use strict";
2
+ /**
3
+ * RdpSession — one tunnel: RdpBridge ↔ WS sender ↔ pixel-office.
4
+ *
5
+ * Mirrors VncSession exactly in structure and message naming conventions:
6
+ *
7
+ * rdp_ready — desktop is up; sends { sessionId, name, width, height, colorDepth }
8
+ * rdp_fbu — frame-buffer update batch (same schema as vnc_fbu)
9
+ * rdp_cursor — cursor shape change
10
+ * rdp_close — session ended (error or intentional)
11
+ *
12
+ * Incoming commands from the browser (via webhookPoller):
13
+ * fuq — frame update request (incremental|full; x/y/w/h)
14
+ * pe — pointer (mouse) event
15
+ * ke — key event
16
+ * clipboard — local clipboard pushed to remote
17
+ */
18
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
19
+ if (k2 === undefined) k2 = k;
20
+ var desc = Object.getOwnPropertyDescriptor(m, k);
21
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
22
+ desc = { enumerable: true, get: function() { return m[k]; } };
23
+ }
24
+ Object.defineProperty(o, k2, desc);
25
+ }) : (function(o, m, k, k2) {
26
+ if (k2 === undefined) k2 = k;
27
+ o[k2] = m[k];
28
+ }));
29
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
30
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
31
+ }) : function(o, v) {
32
+ o["default"] = v;
33
+ });
34
+ var __importStar = (this && this.__importStar) || (function () {
35
+ var ownKeys = function(o) {
36
+ ownKeys = Object.getOwnPropertyNames || function (o) {
37
+ var ar = [];
38
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
39
+ return ar;
40
+ };
41
+ return ownKeys(o);
42
+ };
43
+ return function (mod) {
44
+ if (mod && mod.__esModule) return mod;
45
+ var result = {};
46
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
47
+ __setModuleDefault(result, mod);
48
+ return result;
49
+ };
50
+ })();
51
+ Object.defineProperty(exports, "__esModule", { value: true });
52
+ exports.RdpSession = void 0;
53
+ const bridge_1 = require("./bridge");
54
+ const constants_1 = require("./constants");
55
+ const zlib = __importStar(require("zlib"));
56
+ class RdpSession {
57
+ sessionId;
58
+ wsSender;
59
+ logger;
60
+ _bridge = null;
61
+ _active = false;
62
+ // Demand-driven frame pipeline (same pattern as VncSession)
63
+ _pendingFuq = false;
64
+ _bufferedFuq = null;
65
+ constructor(sessionId, wsSender, logger) {
66
+ this.sessionId = sessionId;
67
+ this.wsSender = wsSender;
68
+ this.logger = logger;
69
+ }
70
+ // ── Public API ──────────────────────────────────────────────────────────
71
+ async start(opts) {
72
+ const bridge = new bridge_1.RdpBridge();
73
+ this._bridge = bridge;
74
+ if (this.logger)
75
+ bridge.log = this.logger;
76
+ bridge.on('error', (err) => {
77
+ this.wsSender({ type: 'rdp_close', sessionId: this.sessionId, reason: err.message });
78
+ this._active = false;
79
+ });
80
+ bridge.on('close', () => {
81
+ if (this._active) {
82
+ this.wsSender({ type: 'rdp_close', sessionId: this.sessionId, reason: 'rdp_disconnected' });
83
+ this._active = false;
84
+ }
85
+ });
86
+ bridge.on('clipboard', (text) => {
87
+ this.wsSender({ type: 'rdp_clipboard', sessionId: this.sessionId, text });
88
+ });
89
+ bridge.on('cursor', (cursor) => {
90
+ this.wsSender({ type: 'rdp_cursor', sessionId: this.sessionId, ...cursor });
91
+ });
92
+ bridge.on('fbu', (rects) => {
93
+ this._pendingFuq = false;
94
+ // Pipeline: if the browser already queued a fuq while we were waiting,
95
+ // send the next server-side update request immediately.
96
+ if (this._active && this._bufferedFuq) {
97
+ const bfq = this._bufferedFuq;
98
+ this._bufferedFuq = null;
99
+ // RDP pushes updates automatically — we just note that pipeline is clear.
100
+ void bfq;
101
+ this._pendingFuq = false;
102
+ }
103
+ if (rects.length === 0)
104
+ return;
105
+ // Batch-compress all rect payloads in one deflate pass (same as VncSession)
106
+ const rectMetas = [];
107
+ const parts = [];
108
+ let dataOffset = 0;
109
+ for (const rect of rects) {
110
+ rectMetas.push({
111
+ x: rect.x, y: rect.y, w: rect.w, h: rect.h,
112
+ offset: dataOffset, len: rect.data.length,
113
+ });
114
+ parts.push(rect.data);
115
+ dataOffset += rect.data.length;
116
+ }
117
+ const combined = parts.length === 1 ? parts[0] : Buffer.concat(parts);
118
+ let data;
119
+ let compressed = false;
120
+ if (combined.length > 512) {
121
+ const deflated = zlib.deflateRawSync(combined, { level: 1 });
122
+ if (deflated.length < combined.length) {
123
+ data = deflated.toString('base64');
124
+ compressed = true;
125
+ }
126
+ else {
127
+ data = combined.toString('base64');
128
+ }
129
+ }
130
+ else {
131
+ data = combined.toString('base64');
132
+ }
133
+ this.wsSender({
134
+ type: 'rdp_fbu',
135
+ sessionId: this.sessionId,
136
+ rects: rectMetas,
137
+ data,
138
+ compressed,
139
+ });
140
+ });
141
+ const info = await bridge.connect(opts);
142
+ this._active = true;
143
+ this.wsSender({
144
+ type: 'rdp_ready',
145
+ sessionId: this.sessionId,
146
+ name: info.name,
147
+ width: info.width,
148
+ height: info.height,
149
+ colorDepth: info.colorDepth,
150
+ });
151
+ }
152
+ handleInput(event) {
153
+ if (!this._bridge || !this._active)
154
+ return;
155
+ const t = event['type'];
156
+ if (t === 'fuq') {
157
+ // RDP server pushes updates automatically; we just track pipeline state
158
+ const fuqData = {
159
+ x: Number(event['x'] ?? 0),
160
+ y: Number(event['y'] ?? 0),
161
+ w: event['w'] ? Number(event['w']) : undefined,
162
+ h: event['h'] ? Number(event['h']) : undefined,
163
+ inc: Number(event['incremental'] ?? 1),
164
+ };
165
+ if (!this._pendingFuq) {
166
+ this._pendingFuq = true;
167
+ }
168
+ else {
169
+ this._bufferedFuq = fuqData;
170
+ }
171
+ }
172
+ else if (t === 'pe') {
173
+ // Pointer event: { x, y, buttonMask }
174
+ this._bridge.sendMouse(Number(event['x'] ?? 0), Number(event['y'] ?? 0), Number(event['buttonMask'] ?? 0));
175
+ }
176
+ else if (t === 'ke') {
177
+ // Key event: { keyCode, down }
178
+ const jsKey = Number(event['keyCode'] ?? 0);
179
+ // Use RDP scancode map; fall back to raw keycode
180
+ const scan = constants_1.RDP_SCANCODE[jsKey] ?? jsKey;
181
+ void scan; // bridge handles the mapping internally
182
+ this._bridge.sendKey(jsKey, Boolean(event['down']));
183
+ }
184
+ else if (t === 'clipboard') {
185
+ const text = String(event['text'] ?? '');
186
+ this._bridge.sendClipboardText(text);
187
+ }
188
+ }
189
+ stop() {
190
+ this._active = false;
191
+ this._bridge?.close();
192
+ this._bridge = null;
193
+ }
194
+ }
195
+ exports.RdpSession = RdpSession;
196
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/rdp/session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Shared types for the RDP subsystem.
3
+ */
4
+ export interface RdpInfo {
5
+ name: string;
6
+ width: number;
7
+ height: number;
8
+ colorDepth: number;
9
+ }
10
+ export interface RdpRect {
11
+ x: number;
12
+ y: number;
13
+ w: number;
14
+ h: number;
15
+ data: Buffer;
16
+ }
17
+ /** Options for starting an RDP session. */
18
+ export interface RdpConnectOptions {
19
+ host: string;
20
+ port?: number;
21
+ username?: string;
22
+ password?: string;
23
+ domain?: string;
24
+ width?: number;
25
+ height?: number;
26
+ colorDepth?: number;
27
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ /**
3
+ * Shared types for the RDP subsystem.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/rdp/types.ts"],"names":[],"mappings":";AAAA;;GAEG"}
@@ -0,0 +1,22 @@
1
+ import { ProviderId } from '../providers';
2
+ export interface LoopStartOptions {
3
+ /** AI provider to use (default: 'claude-cli') */
4
+ provider?: ProviderId;
5
+ /** Absolute path to the workspace / project root (default: process.cwd()) */
6
+ cwd?: string;
7
+ /** Logger (default: console.log) */
8
+ log?: (msg: string) => void;
9
+ /** Run until the TODO drains, then stop and resolve (default: false = poll forever). */
10
+ once?: boolean;
11
+ }
12
+ declare class LoopApi {
13
+ private _runner;
14
+ start(options?: LoopStartOptions): Promise<void>;
15
+ stop(): void;
16
+ /** Tear down every persistent provider server/session across all roots. */
17
+ closePersistent(): void;
18
+ }
19
+ export declare const AutoDev: {
20
+ loop: LoopApi;
21
+ };
22
+ export {};
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AutoDev = void 0;
4
+ const taskLoop_1 = require("../taskLoop");
5
+ const dispatcher_1 = require("../dispatcher");
6
+ const adapters_1 = require("../core/adapters");
7
+ const providers_1 = require("../providers");
8
+ const settingsLoader_1 = require("../core/settingsLoader");
9
+ const opencodeSdkProvider_1 = require("../providers/opencodeSdkProvider");
10
+ const claudeTuiProvider_1 = require("../providers/claudeTuiProvider");
11
+ const copilotSdkProvider_1 = require("../providers/copilotSdkProvider");
12
+ const grokTuiProvider_1 = require("../providers/grokTuiProvider");
13
+ class LoopApi {
14
+ _runner = new taskLoop_1.TaskLoopRunner();
15
+ async start(options = {}) {
16
+ const root = options.cwd ?? process.cwd();
17
+ const launcher = new adapters_1.NodeProcessLauncher();
18
+ const log = options.log ?? console.log;
19
+ // Provider resolution order: explicit option → `.autodev/settings.json`
20
+ // provider (parity with the VS Code shell, which reads the same field) →
21
+ // 'claude-cli' fallback. Guard against an unknown settings value.
22
+ const settingsProvider = (0, settingsLoader_1.loadSettingsForRoot)(root).provider;
23
+ const provider = options.provider
24
+ ?? (settingsProvider && settingsProvider in providers_1.PROVIDERS ? settingsProvider : undefined)
25
+ ?? 'claude-cli';
26
+ const callbacks = {
27
+ workspaceRoot: root,
28
+ fileWatcher: new adapters_1.NodeFileWatcher(),
29
+ sendToAi: (prompt, _label, includeProfile, messageFile) => (0, dispatcher_1.sendPromptToAi)(provider, prompt, log, launcher, root, includeProfile, messageFile),
30
+ log,
31
+ getActiveProvider: () => provider,
32
+ onStatusChange: () => { },
33
+ };
34
+ if (options.once) {
35
+ // Resolve as soon as the queue drains and stop the loop — the runner's
36
+ // start() promise does NOT resolve on stop(), so we gate on onAllTasksDone
37
+ // ourselves. stop() also tears down persistent SDK servers so the process
38
+ // can exit cleanly.
39
+ await new Promise((resolve) => {
40
+ let done = false;
41
+ const finish = () => { if (done) {
42
+ return;
43
+ } done = true; this.stop(); resolve(); };
44
+ void this._runner.start({ ...callbacks, onAllTasksDone: finish }).catch(finish);
45
+ });
46
+ return;
47
+ }
48
+ await this._runner.start(callbacks);
49
+ }
50
+ stop() {
51
+ this._runner.stop();
52
+ // Close persistent in-process SDK/TUI servers (opencode-sdk, claude-tui,
53
+ // copilot-sdk). They hold the Node event loop open, so without this a
54
+ // standalone `autodev start` never exits after the loop stops — the VS Code
55
+ // shell does this in deactivate(), the headless path must do it here.
56
+ this.closePersistent();
57
+ }
58
+ /** Tear down every persistent provider server/session across all roots. */
59
+ closePersistent() {
60
+ try {
61
+ (0, opencodeSdkProvider_1.closeAllOpencodeSdkClients)();
62
+ }
63
+ catch { /* ignore */ }
64
+ try {
65
+ (0, claudeTuiProvider_1.closeAllClaudeTuiClients)();
66
+ }
67
+ catch { /* ignore */ }
68
+ try {
69
+ (0, copilotSdkProvider_1.closeAllCopilotSdkSessions)();
70
+ }
71
+ catch { /* ignore */ }
72
+ try {
73
+ (0, grokTuiProvider_1.closeAllGrokTuiSessions)();
74
+ }
75
+ catch { /* ignore */ }
76
+ }
77
+ }
78
+ exports.AutoDev = {
79
+ loop: new LoopApi(),
80
+ };
81
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sdk/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ import { ProviderId } from './providers';
2
+ /** Returns the .autodev directory path, creating it if needed. */
3
+ export declare function autodevDir(root: string): string;
4
+ /** .autodev/session-state.json — session IDs keyed by provider */
5
+ export declare const SESSION_STATE_FILE = ".autodev/session-state.json";
6
+ /** .autodev/TEMP_SESSION_OUT.txt — CLI stdout tee for session ID extraction */
7
+ export declare const SESSION_OUT_FILE = ".autodev/TEMP_SESSION_OUT.txt";
8
+ /** .autodev/TEMP_PROMPT.md — prompt written for CLI providers (legacy) */
9
+ export declare const PROMPT_FILE = ".autodev/TEMP_PROMPT.md";
10
+ /** .autodev/AGENT_PROFILE.md — profile instructions written per task */
11
+ export declare const AGENT_PROFILE_FILE = ".autodev/AGENT_PROFILE.md";
12
+ /** Read the messageId currently pointed at, or null if none yet. */
13
+ export declare function latestMessageId(root: string, providerId: string): string | null;
14
+ /** Path of the latest message's stdout file. Falls back to legacy path if
15
+ * no message has been rotated yet (so first-time installs keep working). */
16
+ export declare function stdoutFilePath(root: string, providerId: string): string;
17
+ /** Path of the latest message's exit file. */
18
+ export declare function exitFilePath(root: string, providerId: string): string;
19
+ /** Rotate to a fresh messageId and return the empty stdout/exit file paths
20
+ * the dispatcher should write to and tee into. Updates the pointer file so
21
+ * every subsequent call to stdoutFilePath/exitFilePath returns these paths. */
22
+ export declare function newMessageOutput(root: string, providerId: string): {
23
+ messageId: string;
24
+ stdoutFile: string;
25
+ exitFile: string;
26
+ };
27
+ export declare function getSessionId(root: string, providerId: ProviderId): string | undefined;
28
+ export declare function saveSessionId(root: string, providerId: ProviderId, sessionId: string): void;
29
+ export declare function clearSessionId(root: string, providerId: ProviderId): void;
30
+ /**
31
+ * Returns the epoch-ms timestamp of the last clearSessionId() call for this
32
+ * provider, or 0 if clearSessionId() has never been called.
33
+ */
34
+ export declare function getSessionClearedAt(root: string, providerId: ProviderId): number;
35
+ /** Save a human-readable display name for a session ID. */
36
+ export declare function saveSessionName(root: string, sessionId: string, name: string): void;
37
+ /** Get the saved display name for a session ID, or undefined if none. */
38
+ export declare function getSessionName(root: string, sessionId: string): string | undefined;
39
+ /** Claude: "session_id":"<id>" in --output-format stream-json events */
40
+ export declare function extractClaudeSessionId(stdout: string): string | undefined;
41
+ /** Copilot: "sessionId":"<id>" in JSON stream */
42
+ export declare function extractCopilotSessionId(stdout: string): string | undefined;
43
+ /** OpenCode: "sessionID":"ses_xxx" in --format json event stream */
44
+ export declare function extractOpenCodeSessionId(stdout: string): string | undefined;
45
+ /**
46
+ * After a CLI task finishes, try to capture and persist the session ID.
47
+ * - claude-cli: reads from .autodev/output/claude-cli.txt (stdout tee)
48
+ * - opencode-cli: reads from .autodev/output/opencode-cli.txt (--format json tee)
49
+ * - copilot-cli: reads from .autodev/TEMP_SESSION_OUT.txt
50
+ * Falls back silently — never throws.
51
+ */
52
+ export declare function captureAndSaveSessionId(root: string, providerId: ProviderId,
53
+ /** Fallback session ID (e.g. from findLatestClaudeSession for claude-cli) */
54
+ fallbackSessionId?: string): void;