autodev-cli 1.4.132 → 1.4.134

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/media/profile/00c-verifiable-threads.md +78 -0
  2. package/media/profile/00d-turn-end-retrospective.md +61 -0
  3. package/media/profile/00e-long-horizon-planning.md +83 -0
  4. package/media/profile/00f-swarm-orchestration.md +101 -0
  5. package/media/profile/00g-swarm-living-documents.md +76 -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 +41 -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,94 +1,18 @@
1
1
  "use strict";
2
- // ---------------------------------------------------------------------------
3
- // claudeUsage derive a running token / context-window snapshot from a Claude
4
- // transcript assistant message's `message.usage` block.
5
- //
6
- // Why this exists
7
- // ---------------
8
- // Claude Code fires NO hook carrying token counts — usage lives only in the
9
- // session transcript (`~/.claude/projects/…/<id>.jsonl`). The mcp-operate
10
- // bridge already tails that transcript for assistant narration; this helper
11
- // turns each message's `usage` block into the compact, provider-agnostic
12
- // snapshot the pixel-office progress bar renders (context% + tokens), matching
13
- // the shape the office already consumes for opencode / copilot.
14
- //
15
- // Contract forwarded to the server (attached to the narration `hook_event`
16
- // frame under `data.usage`):
17
- // { tokens, inputTokens, outputTokens, contextTokens, contextPct }
18
- // where
19
- // tokens = input_tokens + output_tokens (this turn's total —
20
- // same per-turn semantics as opencode's step token total)
21
- // contextTokens = input_tokens + cache_read_input_tokens
22
- // + cache_creation_input_tokens (window occupancy)
23
- // contextPct = contextTokens / limit * 100, clamped 0..100 (1 decimal)
24
- //
25
- // NEVER logs token values or transcript content.
26
- // ---------------------------------------------------------------------------
27
- Object.defineProperty(exports, "__esModule", { value: true });
28
- exports.DEFAULT_CLAUDE_CONTEXT_LIMIT = void 0;
29
- exports.contextLimitForModel = contextLimitForModel;
30
- exports.extractClaudeUsage = extractClaudeUsage;
31
- /**
32
- * Per-model context-window limits (tokens). Every current Claude model —
33
- * Opus / Sonnet / Haiku — exposes a 200k-token context window, and unknown
34
- * Claude models default to the same. Extend this table if a model ever ships a
35
- * different window (e.g. a 1M-token beta).
36
- */
37
- const CLAUDE_CONTEXT_LIMITS = [
38
- [/opus/i, 200_000],
39
- [/sonnet/i, 200_000],
40
- [/haiku/i, 200_000],
41
- ];
42
- /** Fallback window for an unknown / absent Claude model id. */
43
- exports.DEFAULT_CLAUDE_CONTEXT_LIMIT = 200_000;
44
- /** Resolve the context-window limit (tokens) for a Claude model id. */
45
- function contextLimitForModel(model) {
46
- if (model) {
47
- for (const [re, lim] of CLAUDE_CONTEXT_LIMITS) {
48
- if (re.test(model)) {
49
- return lim;
50
- }
51
- }
52
- }
53
- return exports.DEFAULT_CLAUDE_CONTEXT_LIMIT;
54
- }
55
- /** Coerce an unknown to a finite, non-negative number, else 0. */
56
- function nonNeg(v) {
57
- return typeof v === 'number' && Number.isFinite(v) && v >= 0 ? v : 0;
58
- }
59
- /**
60
- * Build a {@link ClaudeUsagePayload} from a Claude message `usage` block.
61
- *
62
- * Guards every field read — transcripts vary and `usage` may be absent or
63
- * partial; returns null when the block carries no usable token signal so the
64
- * caller can fall back to the last message that DID have usage.
65
- *
66
- * @param usage the raw `message.usage` object (any shape; guarded)
67
- * @param model the raw `message.model` id, used only to pick the context limit
68
- */
69
- function extractClaudeUsage(usage, model) {
70
- if (!usage || typeof usage !== 'object') {
71
- return null;
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]; } };
72
7
  }
73
- const u = usage;
74
- const input = nonNeg(u['input_tokens']);
75
- const output = nonNeg(u['output_tokens']);
76
- const cacheRead = nonNeg(u['cache_read_input_tokens']);
77
- const cacheCreate = nonNeg(u['cache_creation_input_tokens']);
78
- // No usable signal treat as absent (caller keeps the last known usage).
79
- if (input === 0 && output === 0 && cacheRead === 0 && cacheCreate === 0) {
80
- return null;
81
- }
82
- const contextTokens = input + cacheRead + cacheCreate;
83
- const limit = contextLimitForModel(model);
84
- const rawPct = limit > 0 ? (contextTokens / limit) * 100 : 0;
85
- const contextPct = Math.max(0, Math.min(100, Math.round(rawPct * 10) / 10));
86
- return {
87
- tokens: input + output,
88
- inputTokens: input,
89
- outputTokens: output,
90
- contextTokens,
91
- contextPct,
92
- };
93
- }
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
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("../providers/claude/ProviderUsage"), exports);
94
18
  //# sourceMappingURL=claudeUsage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"claudeUsage.js","sourceRoot":"","sources":["../../src/core/claudeUsage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claudeUsage.js","sourceRoot":"","sources":["../../src/core/claudeUsage.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oEAAkD"}
@@ -1,28 +1 @@
1
- /** Minimal shape this resolver needs from Settings (kept loose for reuse). */
2
- export interface ModelResolvableSettings {
3
- provider?: string;
4
- claudeModel?: string;
5
- copilotModel?: string;
6
- opencodeModel?: string;
7
- grokModel?: string;
8
- }
9
- /**
10
- * Map a raw provider model id to a friendly display name.
11
- *
12
- * Handles:
13
- * - opencode "vendor/model" ids → keep the model segment
14
- * - ":cloud" / ":free" / "@date" suffixes → stripped
15
- * - claude 1M-context "-1m" suffix → stripped
16
- * - full/generic claude ids (claude-opus-4-8, claude-sonnet-4.6) → "Opus 4.8"
17
- * - bare claude aliases (opus/sonnet/haiku) → Title-cased
18
- * - everything else → passed through verbatim
19
- *
20
- * Returns undefined for empty/absent input (never fabricates a name).
21
- */
22
- export declare function friendlyModelName(raw: string | undefined | null): string | undefined;
23
- /**
24
- * Resolve the effective, friendly model name for an agent from its provider +
25
- * per-provider model override. Returns undefined when no override is set (the
26
- * provider's own account default is in effect and not known statically here).
27
- */
28
- export declare function resolveConfiguredModel(s: ModelResolvableSettings): string | undefined;
1
+ export * from '../providers/base/ProviderModels';
@@ -1,97 +1,18 @@
1
1
  "use strict";
2
- // ---------------------------------------------------------------------------
3
- // Effective-model resolution + friendly display names
4
- // ---------------------------------------------------------------------------
5
- //
6
- // The pixel-office UI shows the model each agent is running (e.g. "Opus 4.8",
7
- // "kimi-k2.7-code", "grok-code"). The producer of that signal is the CLI: it
8
- // knows the provider and the per-provider model override the user configured.
9
- // This module maps the raw configured id (claudeModel/copilotModel/
10
- // opencodeModel/grokModel) to a friendly label that rides in the `agent_online`
11
- // frame's meta as `model`.
12
- //
13
- // Design notes:
14
- // - When the per-provider model setting is EMPTY, the provider runs its own
15
- // account default which the CLI does not know statically, so we return
16
- // `undefined` and let the office gate the field (it may still learn the
17
- // runtime model from provider hook events server-side).
18
- // - Unknown ids pass through verbatim (minus a vendor/cloud suffix) — never
19
- // fabricate a name.
20
- Object.defineProperty(exports, "__esModule", { value: true });
21
- exports.friendlyModelName = friendlyModelName;
22
- exports.resolveConfiguredModel = resolveConfiguredModel;
23
- /** Exact raw-id → friendly-name overrides (fast path for the common Claude ids). */
24
- const FRIENDLY_OVERRIDES = {
25
- 'claude-opus-4-8': 'Opus 4.8',
26
- 'claude-opus-4-1': 'Opus 4.1',
27
- 'claude-opus-4': 'Opus 4',
28
- 'claude-sonnet-5': 'Sonnet 5',
29
- 'claude-sonnet-4-5': 'Sonnet 4.5',
30
- 'claude-sonnet-4': 'Sonnet 4',
31
- 'claude-haiku-4-5': 'Haiku 4.5',
32
- 'claude-haiku-4': 'Haiku 4',
33
- };
34
- /**
35
- * Map a raw provider model id to a friendly display name.
36
- *
37
- * Handles:
38
- * - opencode "vendor/model" ids → keep the model segment
39
- * - ":cloud" / ":free" / "@date" suffixes → stripped
40
- * - claude 1M-context "-1m" suffix → stripped
41
- * - full/generic claude ids (claude-opus-4-8, claude-sonnet-4.6) → "Opus 4.8"
42
- * - bare claude aliases (opus/sonnet/haiku) → Title-cased
43
- * - everything else → passed through verbatim
44
- *
45
- * Returns undefined for empty/absent input (never fabricates a name).
46
- */
47
- function friendlyModelName(raw) {
48
- if (raw === undefined || raw === null)
49
- return undefined;
50
- let id = String(raw).trim();
51
- if (id === '')
52
- return undefined;
53
- // opencode "anthropic/claude-sonnet-4-5" → "claude-sonnet-4-5"
54
- if (id.includes('/'))
55
- id = id.slice(id.lastIndexOf('/') + 1);
56
- // Strip a routing/cloud suffix ("kimi-k2.7-code:cloud", "model@2025-01")
57
- id = id.replace(/[:@].*$/, '').trim();
58
- if (id === '')
59
- return undefined;
60
- const lower = id.toLowerCase();
61
- // Claude 1M-context variants share a display name with the base model.
62
- const base = lower.replace(/-1m$/, '');
63
- if (FRIENDLY_OVERRIDES[base])
64
- return FRIENDLY_OVERRIDES[base];
65
- // Generic claude id: claude-<family>-<major>[.<minor>] (dash OR dot separator).
66
- const m = base.match(/^claude-(opus|sonnet|haiku)-(\d+)(?:[-.](\d+))?/);
67
- if (m) {
68
- const fam = m[1][0].toUpperCase() + m[1].slice(1);
69
- const ver = m[3] ? `${m[2]}.${m[3]}` : m[2];
70
- return `${fam} ${ver}`;
71
- }
72
- // Bare claude aliases.
73
- if (base === 'opus' || base === 'sonnet' || base === 'haiku') {
74
- return base[0].toUpperCase() + base.slice(1);
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]; } };
75
7
  }
76
- // Unknown → pass the (de-suffixed) raw id through.
77
- return id;
78
- }
79
- /**
80
- * Resolve the effective, friendly model name for an agent from its provider +
81
- * per-provider model override. Returns undefined when no override is set (the
82
- * provider's own account default is in effect and not known statically here).
83
- */
84
- function resolveConfiguredModel(s) {
85
- const p = String(s.provider ?? '');
86
- let raw;
87
- if (p.startsWith('claude'))
88
- raw = s.claudeModel;
89
- else if (p.startsWith('copilot'))
90
- raw = s.copilotModel;
91
- else if (p.startsWith('opencode'))
92
- raw = s.opencodeModel;
93
- else if (p.startsWith('grok'))
94
- raw = s.grokModel;
95
- return friendlyModelName(raw);
96
- }
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
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("../providers/base/ProviderModels"), exports);
97
18
  //# sourceMappingURL=modelInfo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"modelInfo.js","sourceRoot":"","sources":["../../src/core/modelInfo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"modelInfo.js","sourceRoot":"","sources":["../../src/core/modelInfo.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mEAAiD"}
@@ -1,14 +1 @@
1
- import { ProviderId } from '../../providers';
2
- import { IProvider, ProviderKind, Logger, DispatchRequest, DispatchOutcome, DispatchContext } from './contract';
3
- export declare abstract class BaseProvider implements IProvider {
4
- abstract readonly id: ProviderId;
5
- abstract readonly label: string;
6
- abstract readonly kind: ProviderKind;
7
- /** Default: no session to resume. CLI providers that probe override this. */
8
- resolveSession(_root: string, _log: Logger): Promise<string | undefined>;
9
- abstract dispatch(req: DispatchRequest, ctx: DispatchContext): Promise<DispatchOutcome>;
10
- /** Default: stateless, never "busy" between dispatches. */
11
- isBusy(_root: string): boolean;
12
- /** Default: nothing persistent to tear down. */
13
- close(_root: string, _log: Logger): void;
14
- }
1
+ export * from '../../providers/base/BaseProvider';
@@ -1,25 +1,18 @@
1
1
  "use strict";
2
- // ---------------------------------------------------------------------------
3
- // Abstract base provides the sane defaults shared by every provider so each
4
- // concrete class only states what is genuinely different (Liskov + DRY). CLI
5
- // providers inherit the no-op isBusy/close; only persistent sdk/tui providers
6
- // override them.
7
- // ---------------------------------------------------------------------------
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.BaseProvider = void 0;
10
- class BaseProvider {
11
- /** Default: no session to resume. CLI providers that probe override this. */
12
- async resolveSession(_root, _log) {
13
- return undefined;
14
- }
15
- /** Default: stateless, never "busy" between dispatches. */
16
- isBusy(_root) {
17
- return false;
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]; } };
18
7
  }
19
- /** Default: nothing persistent to tear down. */
20
- close(_root, _log) {
21
- /* no-op */
22
- }
23
- }
24
- exports.BaseProvider = BaseProvider;
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
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("../../providers/base/BaseProvider"), exports);
25
18
  //# sourceMappingURL=BaseProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BaseProvider.js","sourceRoot":"","sources":["../../../src/core/provider/BaseProvider.ts"],"names":[],"mappings":";AAAA,8EAA8E;AAC9E,8EAA8E;AAC9E,6EAA6E;AAC7E,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;;;AAO9E,MAAsB,YAAY;IAKhC,6EAA6E;IAC7E,KAAK,CAAC,cAAc,CAAC,KAAa,EAAE,IAAY;QAC9C,OAAO,SAAS,CAAC;IACnB,CAAC;IAID,2DAA2D;IAC3D,MAAM,CAAC,KAAa;QAClB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,gDAAgD;IAChD,KAAK,CAAC,KAAa,EAAE,IAAY;QAC/B,WAAW;IACb,CAAC;CACF;AArBD,oCAqBC"}
1
+ {"version":3,"file":"BaseProvider.js","sourceRoot":"","sources":["../../../src/core/provider/BaseProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oEAAkD"}
@@ -1,12 +1 @@
1
- import { ProviderId } from '../../providers';
2
- import { IProvider } from './contract';
3
- export declare class ProviderRegistry {
4
- private readonly _providers;
5
- constructor(providers: IProvider[]);
6
- /** Resolve a provider by id. Throws on an unknown id (fail loudly). */
7
- get(id: ProviderId): IProvider;
8
- has(id: ProviderId): boolean;
9
- ids(): ProviderId[];
10
- }
11
- /** The default registry wired with every built-in provider. */
12
- export declare const providerRegistry: ProviderRegistry;
1
+ export * from '../../providers/base/ProviderRegistry';
@@ -1,41 +1,18 @@
1
1
  "use strict";
2
- // ---------------------------------------------------------------------------
3
- // ProviderRegistry single point that maps a ProviderId to its IProvider
4
- // strategy (dependency inversion: callers depend on this + IProvider, never on
5
- // a concrete provider). Adding a provider = add a class + one line here, with
6
- // no change to the dispatcher (open/closed).
7
- // ---------------------------------------------------------------------------
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.providerRegistry = exports.ProviderRegistry = void 0;
10
- const implementations_1 = require("./implementations");
11
- class ProviderRegistry {
12
- _providers = new Map();
13
- constructor(providers) {
14
- for (const p of providers) {
15
- this._providers.set(p.id, p);
16
- }
17
- }
18
- /** Resolve a provider by id. Throws on an unknown id (fail loudly). */
19
- get(id) {
20
- const p = this._providers.get(id);
21
- if (!p) {
22
- throw new Error(`No provider registered for id "${id}"`);
23
- }
24
- return p;
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]; } };
25
7
  }
26
- has(id) { return this._providers.has(id); }
27
- ids() { return [...this._providers.keys()]; }
28
- }
29
- exports.ProviderRegistry = ProviderRegistry;
30
- /** The default registry wired with every built-in provider. */
31
- exports.providerRegistry = new ProviderRegistry([
32
- new implementations_1.ClaudeCliProvider(),
33
- new implementations_1.CopilotCliProvider(),
34
- new implementations_1.OpenCodeCliProvider(),
35
- new implementations_1.ClaudeTuiProvider(),
36
- new implementations_1.CopilotSdkProvider(),
37
- new implementations_1.OpenCodeSdkProvider(),
38
- new implementations_1.GrokCliProvider(),
39
- new implementations_1.GrokTuiProvider(),
40
- ]);
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
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("../../providers/base/ProviderRegistry"), exports);
41
18
  //# sourceMappingURL=ProviderRegistry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProviderRegistry.js","sourceRoot":"","sources":["../../../src/core/provider/ProviderRegistry.ts"],"names":[],"mappings":";AAAA,8EAA8E;AAC9E,0EAA0E;AAC1E,+EAA+E;AAC/E,8EAA8E;AAC9E,6CAA6C;AAC7C,8EAA8E;;;AAI9E,uDAG2B;AAE3B,MAAa,gBAAgB;IACV,UAAU,GAAG,IAAI,GAAG,EAAyB,CAAC;IAE/D,YAAY,SAAsB;QAChC,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;YAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAAC,CAAC;IAC9D,CAAC;IAED,uEAAuE;IACvE,GAAG,CAAC,EAAc;QAChB,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClC,IAAI,CAAC,CAAC,EAAE,CAAC;YAAC,MAAM,IAAI,KAAK,CAAC,kCAAkC,EAAE,GAAG,CAAC,CAAC;QAAC,CAAC;QACrE,OAAO,CAAC,CAAC;IACX,CAAC;IAED,GAAG,CAAC,EAAc,IAAa,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAEhE,GAAG,KAAmB,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;CAC5D;AAjBD,4CAiBC;AAED,+DAA+D;AAClD,QAAA,gBAAgB,GAAG,IAAI,gBAAgB,CAAC;IACnD,IAAI,mCAAiB,EAAE;IACvB,IAAI,oCAAkB,EAAE;IACxB,IAAI,qCAAmB,EAAE;IACzB,IAAI,mCAAiB,EAAE;IACvB,IAAI,oCAAkB,EAAE;IACxB,IAAI,qCAAmB,EAAE;IACzB,IAAI,iCAAe,EAAE;IACrB,IAAI,iCAAe,EAAE;CACtB,CAAC,CAAC"}
1
+ {"version":3,"file":"ProviderRegistry.js","sourceRoot":"","sources":["../../../src/core/provider/ProviderRegistry.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wEAAsD"}
@@ -1,62 +1 @@
1
- import { ProviderId } from '../../providers';
2
- import { AutodevSettings } from '../settingsLoader';
3
- import { IProcessLauncher } from '../adapters';
4
- export type ProviderKind = 'cli' | 'sdk' | 'tui';
5
- export type Logger = (msg: string) => void;
6
- /**
7
- * DTO — everything a provider needs to dispatch ONE task. Immutable; built by
8
- * the dispatcher's shared setup phase and handed to the resolved provider.
9
- */
10
- export interface DispatchRequest {
11
- /** Absolute workspace root. */
12
- readonly root: string;
13
- /** Absolute path to `.autodev/AGENT_PROFILE.md`. */
14
- readonly agentProfileFile: string;
15
- /** Absolute path to the task MESSAGE file. */
16
- readonly messageFile: string;
17
- /** Absolute path to a profile+message combined file (built on demand). */
18
- readonly combinedFile: string;
19
- /** Session id to resume, or undefined for a fresh session. */
20
- readonly resolvedSessionId?: string;
21
- /** Whether to inject the agent profile into the prompt. */
22
- readonly includeProfile: boolean;
23
- /** Loaded workspace settings. */
24
- readonly settings: AutodevSettings;
25
- /** Per-message stdout sink. */
26
- readonly stdoutFile: string;
27
- /** Per-message exit-code sink. */
28
- readonly exitFile: string;
29
- }
30
- /**
31
- * DTO — the result of a dispatch. CLI providers return a shell `command` for
32
- * the orchestrator to launch via the injected IProcessLauncher; in-process
33
- * (sdk/tui) providers spawn directly and return `command: undefined`.
34
- */
35
- export interface DispatchOutcome {
36
- readonly command?: string;
37
- }
38
- /** Collaborators passed to a provider at dispatch time (dependency injection). */
39
- export interface DispatchContext {
40
- readonly log: Logger;
41
- readonly launcher: IProcessLauncher;
42
- /** Reveal output UI (VS Code shell only); no-op headless. */
43
- readonly showOutput?: () => void;
44
- }
45
- /**
46
- * A pluggable AI backend. One instance per provider id, registered in the
47
- * ProviderRegistry. Methods are intentionally minimal (interface segregation):
48
- * CLI providers leave isBusy/close as the BaseProvider defaults.
49
- */
50
- export interface IProvider {
51
- readonly id: ProviderId;
52
- readonly label: string;
53
- readonly kind: ProviderKind;
54
- /** Resolve a session id to resume (probe/list), or undefined for fresh. */
55
- resolveSession(root: string, log: Logger): Promise<string | undefined>;
56
- /** Build a shell command (cli) or send in-process (sdk/tui) and return the outcome. */
57
- dispatch(req: DispatchRequest, ctx: DispatchContext): Promise<DispatchOutcome>;
58
- /** True while a persistent in-process turn is still running (sdk/tui only). */
59
- isBusy(root: string): boolean;
60
- /** Tear down any persistent server/session for this root (sdk/tui only). */
61
- close(root: string, log: Logger): void;
62
- }
1
+ export * from '../../providers/base/contract';
@@ -1,9 +1,18 @@
1
1
  "use strict";
2
- // ---------------------------------------------------------------------------
3
- // Provider contract DTOs + interfaces (SOLID: interface segregation +
4
- // dependency inversion). The dispatcher depends on IProvider, never on a
5
- // concrete provider, so adding a provider means adding a class + a registry
6
- // entry (open/closed) with zero changes to the dispatch orchestration.
7
- // ---------------------------------------------------------------------------
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
+ };
8
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("../../providers/base/contract"), exports);
9
18
  //# sourceMappingURL=contract.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"contract.js","sourceRoot":"","sources":["../../../src/core/provider/contract.ts"],"names":[],"mappings":";AAAA,8EAA8E;AAC9E,wEAAwE;AACxE,yEAAyE;AACzE,4EAA4E;AAC5E,uEAAuE;AACvE,8EAA8E"}
1
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../../../src/core/provider/contract.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gEAA8C"}
@@ -1,65 +1 @@
1
- import { ProviderId } from '../../providers';
2
- import { BaseProvider } from './BaseProvider';
3
- import { ProviderKind, Logger, DispatchRequest, DispatchOutcome, DispatchContext } from './contract';
4
- export declare class ClaudeCliProvider extends BaseProvider {
5
- readonly id: ProviderId;
6
- readonly label = "Claude CLI";
7
- readonly kind: ProviderKind;
8
- resolveSession(root: string, log: Logger): Promise<string | undefined>;
9
- dispatch(req: DispatchRequest): Promise<DispatchOutcome>;
10
- }
11
- export declare class CopilotCliProvider extends BaseProvider {
12
- readonly id: ProviderId;
13
- readonly label = "Copilot CLI";
14
- readonly kind: ProviderKind;
15
- resolveSession(root: string, log: Logger): Promise<string | undefined>;
16
- dispatch(req: DispatchRequest): Promise<DispatchOutcome>;
17
- }
18
- export declare class OpenCodeCliProvider extends BaseProvider {
19
- readonly id: ProviderId;
20
- readonly label = "OpenCode CLI";
21
- readonly kind: ProviderKind;
22
- resolveSession(root: string, log: Logger): Promise<string | undefined>;
23
- dispatch(req: DispatchRequest): Promise<DispatchOutcome>;
24
- }
25
- export declare class ClaudeTuiProvider extends BaseProvider {
26
- readonly id: ProviderId;
27
- readonly label = "Claude TUI";
28
- readonly kind: ProviderKind;
29
- dispatch(req: DispatchRequest, ctx: DispatchContext): Promise<DispatchOutcome>;
30
- isBusy(root: string): boolean;
31
- close(root: string, log: Logger): void;
32
- }
33
- export declare class CopilotSdkProvider extends BaseProvider {
34
- readonly id: ProviderId;
35
- readonly label = "Copilot SDK";
36
- readonly kind: ProviderKind;
37
- dispatch(req: DispatchRequest, ctx: DispatchContext): Promise<DispatchOutcome>;
38
- isBusy(root: string): boolean;
39
- close(root: string, log: Logger): void;
40
- }
41
- export declare class OpenCodeSdkProvider extends BaseProvider {
42
- readonly id: ProviderId;
43
- readonly label = "OpenCode SDK";
44
- readonly kind: ProviderKind;
45
- dispatch(req: DispatchRequest, ctx: DispatchContext): Promise<DispatchOutcome>;
46
- isBusy(root: string): boolean;
47
- close(root: string, log: Logger): void;
48
- }
49
- export declare class GrokCliProvider extends BaseProvider {
50
- readonly id: ProviderId;
51
- readonly label = "Grok CLI";
52
- readonly kind: ProviderKind;
53
- dispatch(req: DispatchRequest, ctx: DispatchContext): Promise<DispatchOutcome>;
54
- isBusy(root: string): boolean;
55
- close(root: string, log: Logger): void;
56
- }
57
- export declare class GrokTuiProvider extends BaseProvider {
58
- readonly id: ProviderId;
59
- readonly label = "Grok TUI";
60
- readonly kind: ProviderKind;
61
- resolveSession(root: string): Promise<string | undefined>;
62
- dispatch(req: DispatchRequest, ctx: DispatchContext): Promise<DispatchOutcome>;
63
- isBusy(root: string): boolean;
64
- close(root: string, log: Logger): void;
65
- }
1
+ export * from '../../providers/base/implementations';