autodev-cli 1.4.131 → 1.4.133

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 (265) hide show
  1. package/LICENSE.md +21 -0
  2. package/media/profile/00b-self-verifiable-work.md +62 -0
  3. package/media/profile/00c-verifiable-threads.md +78 -0
  4. package/media/profile/00d-turn-end-retrospective.md +61 -0
  5. package/media/profile/00e-long-horizon-planning.md +83 -0
  6. package/out/commands/office.js +4 -0
  7. package/out/commands/office.js.map +1 -1
  8. package/out/commands/start.js +1 -1
  9. package/out/commands/start.js.map +1 -1
  10. package/out/core/claudeUsage.d.ts +1 -26
  11. package/out/core/claudeUsage.js +15 -91
  12. package/out/core/claudeUsage.js.map +1 -1
  13. package/out/core/modelInfo.d.ts +1 -28
  14. package/out/core/modelInfo.js +15 -94
  15. package/out/core/modelInfo.js.map +1 -1
  16. package/out/core/provider/BaseProvider.d.ts +1 -14
  17. package/out/core/provider/BaseProvider.js +15 -22
  18. package/out/core/provider/BaseProvider.js.map +1 -1
  19. package/out/core/provider/ProviderRegistry.d.ts +1 -12
  20. package/out/core/provider/ProviderRegistry.js +15 -38
  21. package/out/core/provider/ProviderRegistry.js.map +1 -1
  22. package/out/core/provider/contract.d.ts +1 -62
  23. package/out/core/provider/contract.js +15 -6
  24. package/out/core/provider/contract.js.map +1 -1
  25. package/out/core/provider/implementations.d.ts +1 -65
  26. package/out/core/provider/implementations.js +4 -169
  27. package/out/core/provider/implementations.js.map +1 -1
  28. package/out/dispatcher.js +7 -0
  29. package/out/dispatcher.js.map +1 -1
  30. package/out/hookEventNormalizer.d.ts +1 -33
  31. package/out/hookEventNormalizer.js +15 -424
  32. package/out/hookEventNormalizer.js.map +1 -1
  33. package/out/profileBuilder.js +32 -0
  34. package/out/profileBuilder.js.map +1 -1
  35. package/out/providers/base/BaseProvider.d.ts +14 -0
  36. package/out/providers/base/BaseProvider.js +25 -0
  37. package/out/providers/base/BaseProvider.js.map +1 -0
  38. package/out/providers/base/ProviderEvents.d.ts +12 -0
  39. package/out/providers/base/ProviderEvents.js +81 -0
  40. package/out/providers/base/ProviderEvents.js.map +1 -0
  41. package/out/providers/base/ProviderManager.d.ts +25 -0
  42. package/out/providers/base/ProviderManager.js +22 -0
  43. package/out/providers/base/ProviderManager.js.map +1 -0
  44. package/out/providers/base/ProviderModels.d.ts +28 -0
  45. package/out/providers/base/ProviderModels.js +89 -0
  46. package/out/providers/base/ProviderModels.js.map +1 -0
  47. package/out/providers/base/ProviderNormalizer.d.ts +42 -0
  48. package/out/providers/base/ProviderNormalizer.js +439 -0
  49. package/out/providers/base/ProviderNormalizer.js.map +1 -0
  50. package/out/providers/base/ProviderRegistry.d.ts +12 -0
  51. package/out/providers/base/ProviderRegistry.js +42 -0
  52. package/out/providers/base/ProviderRegistry.js.map +1 -0
  53. package/out/providers/base/ProviderSessions.d.ts +15 -0
  54. package/out/providers/base/ProviderSessions.js +15 -0
  55. package/out/providers/base/ProviderSessions.js.map +1 -0
  56. package/out/providers/base/ProviderState.d.ts +9 -0
  57. package/out/providers/base/ProviderState.js +16 -0
  58. package/out/providers/base/ProviderState.js.map +1 -0
  59. package/out/providers/base/ProviderUsage.d.ts +12 -0
  60. package/out/providers/base/ProviderUsage.js +33 -0
  61. package/out/providers/base/ProviderUsage.js.map +1 -0
  62. package/out/providers/base/contract.d.ts +62 -0
  63. package/out/providers/base/contract.js +9 -0
  64. package/out/providers/base/contract.js.map +1 -0
  65. package/out/providers/base/factories.d.ts +64 -0
  66. package/out/providers/base/factories.js +265 -0
  67. package/out/providers/base/factories.js.map +1 -0
  68. package/out/providers/base/implementations.d.ts +5 -0
  69. package/out/providers/base/implementations.js +23 -0
  70. package/out/providers/base/implementations.js.map +1 -0
  71. package/out/providers/base/index.d.ts +13 -0
  72. package/out/providers/base/index.js +29 -0
  73. package/out/providers/base/index.js.map +1 -0
  74. package/out/providers/base/types.d.ts +30 -0
  75. package/out/providers/base/types.js +8 -0
  76. package/out/providers/base/types.js.map +1 -0
  77. package/out/providers/claude/ProviderEvents.d.ts +5 -0
  78. package/out/providers/claude/ProviderEvents.js +18 -0
  79. package/out/providers/claude/ProviderEvents.js.map +1 -0
  80. package/out/providers/claude/ProviderManager.d.ts +39 -0
  81. package/out/providers/claude/ProviderManager.js +50 -0
  82. package/out/providers/claude/ProviderManager.js.map +1 -0
  83. package/out/providers/claude/ProviderModels.d.ts +8 -0
  84. package/out/providers/claude/ProviderModels.js +23 -0
  85. package/out/providers/claude/ProviderModels.js.map +1 -0
  86. package/out/providers/claude/ProviderNormalizer.d.ts +5 -0
  87. package/out/providers/claude/ProviderNormalizer.js +10 -0
  88. package/out/providers/claude/ProviderNormalizer.js.map +1 -0
  89. package/out/providers/claude/ProviderSessions.d.ts +14 -0
  90. package/out/providers/claude/ProviderSessions.js +35 -0
  91. package/out/providers/claude/ProviderSessions.js.map +1 -0
  92. package/out/providers/claude/ProviderState.d.ts +13 -0
  93. package/out/providers/claude/ProviderState.js +19 -0
  94. package/out/providers/claude/ProviderState.js.map +1 -0
  95. package/out/providers/claude/ProviderUsage.d.ts +13 -0
  96. package/out/providers/claude/ProviderUsage.js +59 -0
  97. package/out/providers/claude/ProviderUsage.js.map +1 -0
  98. package/out/providers/claude/cli.d.ts +95 -0
  99. package/out/providers/claude/cli.js +674 -0
  100. package/out/providers/claude/cli.js.map +1 -0
  101. package/out/providers/claude/index.d.ts +9 -0
  102. package/out/providers/claude/index.js +26 -0
  103. package/out/providers/claude/index.js.map +1 -0
  104. package/out/providers/claude/tui.d.ts +38 -0
  105. package/out/providers/claude/tui.js +346 -0
  106. package/out/providers/claude/tui.js.map +1 -0
  107. package/out/providers/claudeCliProvider.d.ts +1 -95
  108. package/out/providers/claudeCliProvider.js +4 -660
  109. package/out/providers/claudeCliProvider.js.map +1 -1
  110. package/out/providers/claudeTuiProvider.d.ts +1 -38
  111. package/out/providers/claudeTuiProvider.js +4 -332
  112. package/out/providers/claudeTuiProvider.js.map +1 -1
  113. package/out/providers/copilot/ProviderEvents.d.ts +6 -0
  114. package/out/providers/copilot/ProviderEvents.js +18 -0
  115. package/out/providers/copilot/ProviderEvents.js.map +1 -0
  116. package/out/providers/copilot/ProviderManager.d.ts +39 -0
  117. package/out/providers/copilot/ProviderManager.js +98 -0
  118. package/out/providers/copilot/ProviderManager.js.map +1 -0
  119. package/out/providers/copilot/ProviderModels.d.ts +7 -0
  120. package/out/providers/copilot/ProviderModels.js +18 -0
  121. package/out/providers/copilot/ProviderModels.js.map +1 -0
  122. package/out/providers/copilot/ProviderNormalizer.d.ts +5 -0
  123. package/out/providers/copilot/ProviderNormalizer.js +10 -0
  124. package/out/providers/copilot/ProviderNormalizer.js.map +1 -0
  125. package/out/providers/copilot/ProviderSessions.d.ts +12 -0
  126. package/out/providers/copilot/ProviderSessions.js +39 -0
  127. package/out/providers/copilot/ProviderSessions.js.map +1 -0
  128. package/out/providers/copilot/ProviderState.d.ts +11 -0
  129. package/out/providers/copilot/ProviderState.js +17 -0
  130. package/out/providers/copilot/ProviderState.js.map +1 -0
  131. package/out/providers/copilot/ProviderUsage.d.ts +12 -0
  132. package/out/providers/copilot/ProviderUsage.js +41 -0
  133. package/out/providers/copilot/ProviderUsage.js.map +1 -0
  134. package/out/providers/copilot/cli.d.ts +16 -0
  135. package/out/providers/copilot/cli.js +52 -0
  136. package/out/providers/copilot/cli.js.map +1 -0
  137. package/out/providers/copilot/index.d.ts +10 -0
  138. package/out/providers/copilot/index.js +27 -0
  139. package/out/providers/copilot/index.js.map +1 -0
  140. package/out/providers/copilot/sdk.d.ts +22 -0
  141. package/out/providers/copilot/sdk.js +489 -0
  142. package/out/providers/copilot/sdk.js.map +1 -0
  143. package/out/providers/copilot/sessions.d.ts +25 -0
  144. package/out/providers/copilot/sessions.js +214 -0
  145. package/out/providers/copilot/sessions.js.map +1 -0
  146. package/out/providers/copilotCliProvider.d.ts +1 -16
  147. package/out/providers/copilotCliProvider.js +15 -49
  148. package/out/providers/copilotCliProvider.js.map +1 -1
  149. package/out/providers/copilotSdkProvider.d.ts +1 -22
  150. package/out/providers/copilotSdkProvider.js +4 -475
  151. package/out/providers/copilotSdkProvider.js.map +1 -1
  152. package/out/providers/copilotSessions.d.ts +1 -25
  153. package/out/providers/copilotSessions.js +4 -200
  154. package/out/providers/copilotSessions.js.map +1 -1
  155. package/out/providers/dummy/ProviderEvents.d.ts +5 -0
  156. package/out/providers/dummy/ProviderEvents.js +16 -0
  157. package/out/providers/dummy/ProviderEvents.js.map +1 -0
  158. package/out/providers/dummy/ProviderManager.d.ts +31 -0
  159. package/out/providers/dummy/ProviderManager.js +115 -0
  160. package/out/providers/dummy/ProviderManager.js.map +1 -0
  161. package/out/providers/dummy/ProviderModels.d.ts +7 -0
  162. package/out/providers/dummy/ProviderModels.js +15 -0
  163. package/out/providers/dummy/ProviderModels.js.map +1 -0
  164. package/out/providers/dummy/ProviderNormalizer.d.ts +4 -0
  165. package/out/providers/dummy/ProviderNormalizer.js +9 -0
  166. package/out/providers/dummy/ProviderNormalizer.js.map +1 -0
  167. package/out/providers/dummy/ProviderSessions.d.ts +12 -0
  168. package/out/providers/dummy/ProviderSessions.js +105 -0
  169. package/out/providers/dummy/ProviderSessions.js.map +1 -0
  170. package/out/providers/dummy/ProviderState.d.ts +12 -0
  171. package/out/providers/dummy/ProviderState.js +23 -0
  172. package/out/providers/dummy/ProviderState.js.map +1 -0
  173. package/out/providers/dummy/ProviderUsage.d.ts +9 -0
  174. package/out/providers/dummy/ProviderUsage.js +27 -0
  175. package/out/providers/dummy/ProviderUsage.js.map +1 -0
  176. package/out/providers/dummy/commands.d.ts +9 -0
  177. package/out/providers/dummy/commands.js +48 -0
  178. package/out/providers/dummy/commands.js.map +1 -0
  179. package/out/providers/dummy/index.d.ts +10 -0
  180. package/out/providers/dummy/index.js +27 -0
  181. package/out/providers/dummy/index.js.map +1 -0
  182. package/out/providers/dummy/office.d.ts +23 -0
  183. package/out/providers/dummy/office.js +66 -0
  184. package/out/providers/dummy/office.js.map +1 -0
  185. package/out/providers/dummy/traces.d.ts +8 -0
  186. package/out/providers/dummy/traces.js +174 -0
  187. package/out/providers/dummy/traces.js.map +1 -0
  188. package/out/providers/grok/ProviderEvents.d.ts +6 -0
  189. package/out/providers/grok/ProviderEvents.js +17 -0
  190. package/out/providers/grok/ProviderEvents.js.map +1 -0
  191. package/out/providers/grok/ProviderManager.d.ts +42 -0
  192. package/out/providers/grok/ProviderManager.js +48 -0
  193. package/out/providers/grok/ProviderManager.js.map +1 -0
  194. package/out/providers/grok/ProviderModels.d.ts +7 -0
  195. package/out/providers/grok/ProviderModels.js +16 -0
  196. package/out/providers/grok/ProviderModels.js.map +1 -0
  197. package/out/providers/grok/ProviderNormalizer.d.ts +5 -0
  198. package/out/providers/grok/ProviderNormalizer.js +10 -0
  199. package/out/providers/grok/ProviderNormalizer.js.map +1 -0
  200. package/out/providers/grok/ProviderSessions.d.ts +12 -0
  201. package/out/providers/grok/ProviderSessions.js +27 -0
  202. package/out/providers/grok/ProviderSessions.js.map +1 -0
  203. package/out/providers/grok/ProviderState.d.ts +10 -0
  204. package/out/providers/grok/ProviderState.js +15 -0
  205. package/out/providers/grok/ProviderState.js.map +1 -0
  206. package/out/providers/grok/ProviderUsage.d.ts +7 -0
  207. package/out/providers/grok/ProviderUsage.js +20 -0
  208. package/out/providers/grok/ProviderUsage.js.map +1 -0
  209. package/out/providers/grok/index.d.ts +9 -0
  210. package/out/providers/grok/index.js +26 -0
  211. package/out/providers/grok/index.js.map +1 -0
  212. package/out/providers/grok/sessions.d.ts +27 -0
  213. package/out/providers/grok/sessions.js +246 -0
  214. package/out/providers/grok/sessions.js.map +1 -0
  215. package/out/providers/grok/tui.d.ts +38 -0
  216. package/out/providers/grok/tui.js +1630 -0
  217. package/out/providers/grok/tui.js.map +1 -0
  218. package/out/providers/grokSessions.d.ts +1 -27
  219. package/out/providers/grokSessions.js +4 -232
  220. package/out/providers/grokSessions.js.map +1 -1
  221. package/out/providers/grokTuiProvider.d.ts +1 -38
  222. package/out/providers/grokTuiProvider.js +4 -1616
  223. package/out/providers/grokTuiProvider.js.map +1 -1
  224. package/out/providers/opencode/ProviderEvents.d.ts +6 -0
  225. package/out/providers/opencode/ProviderEvents.js +18 -0
  226. package/out/providers/opencode/ProviderEvents.js.map +1 -0
  227. package/out/providers/opencode/ProviderManager.d.ts +39 -0
  228. package/out/providers/opencode/ProviderManager.js +90 -0
  229. package/out/providers/opencode/ProviderManager.js.map +1 -0
  230. package/out/providers/opencode/ProviderModels.d.ts +7 -0
  231. package/out/providers/opencode/ProviderModels.js +17 -0
  232. package/out/providers/opencode/ProviderModels.js.map +1 -0
  233. package/out/providers/opencode/ProviderNormalizer.d.ts +5 -0
  234. package/out/providers/opencode/ProviderNormalizer.js +10 -0
  235. package/out/providers/opencode/ProviderNormalizer.js.map +1 -0
  236. package/out/providers/opencode/ProviderSessions.d.ts +11 -0
  237. package/out/providers/opencode/ProviderSessions.js +28 -0
  238. package/out/providers/opencode/ProviderSessions.js.map +1 -0
  239. package/out/providers/opencode/ProviderState.d.ts +14 -0
  240. package/out/providers/opencode/ProviderState.js +20 -0
  241. package/out/providers/opencode/ProviderState.js.map +1 -0
  242. package/out/providers/opencode/ProviderUsage.d.ts +7 -0
  243. package/out/providers/opencode/ProviderUsage.js +20 -0
  244. package/out/providers/opencode/ProviderUsage.js.map +1 -0
  245. package/out/providers/opencode/cli.d.ts +29 -0
  246. package/out/providers/opencode/cli.js +199 -0
  247. package/out/providers/opencode/cli.js.map +1 -0
  248. package/out/providers/opencode/index.d.ts +9 -0
  249. package/out/providers/opencode/index.js +26 -0
  250. package/out/providers/opencode/index.js.map +1 -0
  251. package/out/providers/opencode/sdk.d.ts +32 -0
  252. package/out/providers/opencode/sdk.js +610 -0
  253. package/out/providers/opencode/sdk.js.map +1 -0
  254. package/out/providers/opencodeCliProvider.d.ts +1 -29
  255. package/out/providers/opencodeCliProvider.js +15 -196
  256. package/out/providers/opencodeCliProvider.js.map +1 -1
  257. package/out/providers/opencodeSdkProvider.d.ts +1 -32
  258. package/out/providers/opencodeSdkProvider.js +4 -596
  259. package/out/providers/opencodeSdkProvider.js.map +1 -1
  260. package/out/providers.d.ts +1 -1
  261. package/out/providers.js +5 -0
  262. package/out/providers.js.map +1 -1
  263. package/out/sdk/index.js +5 -0
  264. package/out/sdk/index.js.map +1 -1
  265. package/package.json +2 -2
@@ -1,29 +1 @@
1
- /**
2
- * Build the shell command string for the opencode-cli provider.
3
- * Accepts a pre-combined file written by the dispatcher and passes it as a
4
- * single `@file` reference so opencode reads it directly.
5
- */
6
- export declare function buildOpenCodeCliCommand(combinedFile: string, sessionId?: string, model?: string, sessionName?: string): string;
7
- /**
8
- * List all OpenCode sessions for this workspace directory (newest first, capped at 20).
9
- * Uses `opencode session list --format json`. Returns empty array on timeout/error.
10
- */
11
- export declare function listOpenCodeSessions(cwd: string): Promise<Array<{
12
- id: string;
13
- mtime: number;
14
- }>>;
15
- /**
16
- * Get the latest OpenCode session ID for this workspace directory by querying
17
- * `opencode session list`. No tokens consumed — purely a metadata read.
18
- *
19
- * @param notBefore Epoch-ms timestamp — ignore sessions created before this
20
- * time (used after "New Session" to skip the old session).
21
- */
22
- export declare function getLatestOpenCodeSessionId(cwd: string, log: (msg: string) => void, notBefore?: number): Promise<string | undefined>;
23
- /**
24
- * Run `/compact` on an existing OpenCode session to summarise conversation
25
- * history and free up context window space. Returns a promise that resolves
26
- * when the compact command exits (success or failure — caller decides whether
27
- * to treat an error as fatal).
28
- */
29
- export declare function runOpenCodeCompact(sessionId: string, cwd: string, log: (msg: string) => void): Promise<void>;
1
+ export * from './opencode/cli';
@@ -1,199 +1,18 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
2
16
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.buildOpenCodeCliCommand = buildOpenCodeCliCommand;
4
- exports.listOpenCodeSessions = listOpenCodeSessions;
5
- exports.getLatestOpenCodeSessionId = getLatestOpenCodeSessionId;
6
- exports.runOpenCodeCompact = runOpenCodeCompact;
7
- const child_process_1 = require("child_process");
8
- const fs_1 = require("fs");
9
- // ---------------------------------------------------------------------------
10
- // OpenCode CLI command builder
11
- // ---------------------------------------------------------------------------
12
- /**
13
- * Build the shell command string for the opencode-cli provider.
14
- * Accepts a pre-combined file written by the dispatcher and passes it as a
15
- * single `@file` reference so opencode reads it directly.
16
- */
17
- function buildOpenCodeCliCommand(combinedFile, sessionId, model, sessionName) {
18
- // Resume an explicit session with `-s <id>`. On a FRESH run (no session id)
19
- // do NOT pass `-c`/`--continue`: opencode's "continue the last session" is
20
- // global, not workspace-scoped, so on the first run it attaches to a stale or
21
- // non-existent session and emits no output (the task never really runs). A
22
- // bare `opencode run` starts a new session; the dispatcher then captures its
23
- // id and resumes it with `-s` on subsequent iterations.
24
- const session = sessionId ? ` -s ${sessionId}` : '';
25
- const modelFlag = model ? ` --model ${JSON.stringify(model)}` : '';
26
- // Only title a FRESH session (resuming keeps the existing title).
27
- const titleFlag = (!sessionId && sessionName) ? ` --title ${JSON.stringify(sessionName)}` : '';
28
- const fileRef = JSON.stringify(`@${combinedFile}`);
29
- return `opencode run${session}${modelFlag}${titleFlag} ${fileRef}`;
30
- }
31
- /**
32
- * List all OpenCode sessions for this workspace directory (newest first, capped at 20).
33
- * Uses `opencode session list --format json`. Returns empty array on timeout/error.
34
- */
35
- function listOpenCodeSessions(cwd) {
36
- return new Promise(resolve => {
37
- let done = false;
38
- let stdout = '';
39
- const child = (0, child_process_1.spawn)('opencode', ['session', 'list', '-n', '20', '--format', 'json'], {
40
- cwd,
41
- detached: true,
42
- stdio: ['ignore', 'pipe', 'ignore'],
43
- });
44
- child.unref();
45
- const timer = setTimeout(() => {
46
- if (done) {
47
- return;
48
- }
49
- done = true;
50
- try {
51
- if (child.pid !== undefined) {
52
- process.kill(-child.pid, 'SIGKILL');
53
- }
54
- }
55
- catch { /* ignore */ }
56
- resolve([]);
57
- }, 10_000);
58
- child.stdout?.on('data', (chunk) => { stdout += chunk.toString('utf8'); });
59
- child.on('close', () => {
60
- if (done) {
61
- return;
62
- }
63
- done = true;
64
- clearTimeout(timer);
65
- try {
66
- const raw = JSON.parse(stdout);
67
- // Realpath-aware match (same reasoning as getLatestOpenCodeSessionId) so
68
- // symlinked/realpath cwds don't drop every session.
69
- const norm = (p) => {
70
- let resolved = p;
71
- try {
72
- resolved = (0, fs_1.realpathSync)(p);
73
- }
74
- catch { /* keep lexical */ }
75
- return resolved.toLowerCase().replace(/\\/g, '/').replace(/\/+$/, '');
76
- };
77
- const cwdNorm = norm(cwd);
78
- const filtered = raw
79
- .filter(s => norm(s.directory) === cwdNorm)
80
- .sort((a, b) => b.updated - a.updated)
81
- .slice(0, 20)
82
- .map(s => ({ id: s.id, mtime: s.updated ?? s.created ?? 0 }));
83
- resolve(filtered);
84
- }
85
- catch {
86
- resolve([]);
87
- }
88
- });
89
- child.on('error', () => { if (done) {
90
- return;
91
- } done = true; clearTimeout(timer); resolve([]); });
92
- });
93
- }
94
- /**
95
- * Get the latest OpenCode session ID for this workspace directory by querying
96
- * `opencode session list`. No tokens consumed — purely a metadata read.
97
- *
98
- * @param notBefore Epoch-ms timestamp — ignore sessions created before this
99
- * time (used after "New Session" to skip the old session).
100
- */
101
- function getLatestOpenCodeSessionId(cwd, log, notBefore = 0) {
102
- return new Promise(resolve => {
103
- let done = false;
104
- let stdout = '';
105
- // Use spawn with detached=true so the child gets its own process group.
106
- // On timeout we kill the entire group (SIGKILL) to avoid leaving the
107
- // opencode binary alive as a zombie when the shell wrapper exits.
108
- const child = (0, child_process_1.spawn)('opencode', ['session', 'list', '-n', '10', '--format', 'json'], {
109
- cwd,
110
- detached: true,
111
- stdio: ['ignore', 'pipe', 'ignore'],
112
- });
113
- child.unref(); // don't prevent extension host from exiting
114
- const timer = setTimeout(() => {
115
- if (done) {
116
- return;
117
- }
118
- done = true;
119
- try {
120
- if (child.pid !== undefined) {
121
- process.kill(-child.pid, 'SIGKILL');
122
- }
123
- }
124
- catch { /* process may have already exited */ }
125
- resolve(undefined);
126
- }, 10_000);
127
- child.stdout?.on('data', (chunk) => { stdout += chunk.toString('utf8'); });
128
- child.on('close', () => {
129
- if (done) {
130
- return;
131
- }
132
- done = true;
133
- clearTimeout(timer);
134
- try {
135
- const sessions = JSON.parse(stdout);
136
- // Normalise a path for comparison, resolving symlinks/realpath when the
137
- // path exists (opencode may record a realpath, e.g. /tmp → /private/tmp,
138
- // while the loop passes the raw cwd — an exact string match then misses
139
- // every session). Fall back to the lexical normalisation when realpath
140
- // fails (path gone / permission).
141
- const norm = (p) => {
142
- let resolved = p;
143
- try {
144
- resolved = (0, fs_1.realpathSync)(p);
145
- }
146
- catch { /* keep lexical */ }
147
- return resolved.toLowerCase().replace(/\\/g, '/').replace(/\/+$/, '');
148
- };
149
- const cwdNorm = norm(cwd);
150
- const inWindow = (s) => !notBefore || (s.created ?? 0) > notBefore;
151
- const byRecency = (a, b) => b.updated - a.updated;
152
- // Primary: sessions whose directory resolves to this workspace.
153
- let match = sessions.filter(s => norm(s.directory) === cwdNorm).filter(inWindow).sort(byRecency)[0];
154
- // Fallback: a directory that is a prefix of, or contained by, this cwd
155
- // (handles nested-root / worktree differences) — still scoped, never global.
156
- if (!match) {
157
- match = sessions
158
- .filter(s => { const d = norm(s.directory); return d && (cwdNorm.startsWith(d + '/') || d.startsWith(cwdNorm + '/')); })
159
- .filter(inWindow).sort(byRecency)[0];
160
- }
161
- const id = match?.id;
162
- log(`OpenCode session list: ${id ?? 'none found for this directory'} (of ${sessions.length} total)${notBefore ? ` (notBefore=${new Date(notBefore).toISOString()})` : ''}`);
163
- resolve(id);
164
- }
165
- catch {
166
- resolve(undefined);
167
- }
168
- });
169
- child.on('error', () => {
170
- if (done) {
171
- return;
172
- }
173
- done = true;
174
- clearTimeout(timer);
175
- resolve(undefined);
176
- });
177
- });
178
- }
179
- /**
180
- * Run `/compact` on an existing OpenCode session to summarise conversation
181
- * history and free up context window space. Returns a promise that resolves
182
- * when the compact command exits (success or failure — caller decides whether
183
- * to treat an error as fatal).
184
- */
185
- function runOpenCodeCompact(sessionId, cwd, log) {
186
- return new Promise((resolve, reject) => {
187
- const cmd = `opencode run -s ${sessionId} /compact`;
188
- log(`OpenCode compact: ${cmd}`);
189
- (0, child_process_1.exec)(cmd, { cwd, encoding: 'utf8', timeout: 120_000 }, (err) => {
190
- if (err) {
191
- reject(err);
192
- }
193
- else {
194
- resolve();
195
- }
196
- });
197
- });
198
- }
17
+ __exportStar(require("./opencode/cli"), exports);
199
18
  //# sourceMappingURL=opencodeCliProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"opencodeCliProvider.js","sourceRoot":"","sources":["../../src/providers/opencodeCliProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"opencodeCliProvider.js","sourceRoot":"","sources":["../../src/providers/opencodeCliProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B"}
@@ -1,32 +1 @@
1
- /** True while an opencode-sdk turn is running for the given workspace root. */
2
- export declare function isOpencodeSdkBusy(root: string): boolean;
3
- /** Current tool activity label for the given root (undefined = idle). */
4
- export declare function getOpencodeSdkActivity(root: string): string | undefined;
5
- export declare function getOpencodeSdkLatestSessionId(root: string): string | undefined;
6
- /**
7
- * Steer the live OpenCode SDK session MID-TURN. Unlike opencode-cli / grok /
8
- * copilot-cli (one-shot subprocesses), the SDK keeps a persistent in-process
9
- * server + session, so a new prompt sent to the live session while it's busy is
10
- * picked up by the running turn (opencode interrupts and continues with the added
11
- * message, keeping the conversation context). Returns true only when there's a
12
- * live/busy session to inject into; false otherwise so the caller falls back to
13
- * the durable TODO queue (at-least-once delivery preserved).
14
- */
15
- export declare function steerOpencodeSdk(root: string, text: string, log: (msg: string) => void): Promise<boolean>;
16
- export declare function sendOpencodeSdkPrompt(root: string,
17
- /** Absolute path to the combined agent-profile + message file. */
18
- promptFilePath: string, resumeSessionId: string | undefined, stdoutFile: string, exitFile: string, log: (msg: string) => void,
19
- /** Optional model string "providerID/modelID" */
20
- model?: string,
21
- /** Optional callback invoked once to reveal the output panel to the user. */
22
- showOutput?: () => void): void;
23
- export declare function runOpencodeSdkCompact(root: string, log: (msg: string) => void): Promise<void>;
24
- export declare function closeOpencodeSdkClient(root: string, log: (msg: string) => void): void;
25
- /**
26
- * Force-clear the busy flag for a root — used by the task loop when it detects
27
- * via hooks-events.jsonl that the server was disposed while the SDK async was
28
- * still running (i.e. the for-await loop never received the disposed event).
29
- */
30
- export declare function forceIdleOpencodeSdk(root: string): void;
31
- /** Close all open SDK servers — called on extension deactivate to avoid orphaned processes. */
32
- export declare function closeAllOpencodeSdkClients(): void;
1
+ export * from './opencode/sdk';