@trenchwork/erosolar 1.1.62 → 1.2.0

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 (225) hide show
  1. package/dist/capabilities/todoCapability.js +2 -2
  2. package/dist/capabilities/todoCapability.js.map +1 -1
  3. package/dist/config.js +1 -1
  4. package/dist/contracts/v1/agent.d.ts +12 -2
  5. package/dist/contracts/v1/agent.d.ts.map +1 -1
  6. package/dist/core/adversarialCorrection.d.ts +22 -0
  7. package/dist/core/adversarialCorrection.d.ts.map +1 -0
  8. package/dist/core/adversarialCorrection.js +25 -0
  9. package/dist/core/adversarialCorrection.js.map +1 -0
  10. package/dist/core/agent.d.ts +2 -0
  11. package/dist/core/agent.d.ts.map +1 -1
  12. package/dist/core/agent.js +11 -45
  13. package/dist/core/agent.js.map +1 -1
  14. package/dist/core/contextManager.d.ts.map +1 -1
  15. package/dist/core/contextManager.js +5 -2
  16. package/dist/core/contextManager.js.map +1 -1
  17. package/dist/core/errorClassification.d.ts +44 -0
  18. package/dist/core/errorClassification.d.ts.map +1 -0
  19. package/dist/core/errorClassification.js +333 -0
  20. package/dist/core/errorClassification.js.map +1 -0
  21. package/dist/core/failureRegistry.d.ts +30 -0
  22. package/dist/core/failureRegistry.d.ts.map +1 -0
  23. package/dist/core/failureRegistry.js +74 -0
  24. package/dist/core/failureRegistry.js.map +1 -0
  25. package/dist/core/hitl.d.ts.map +1 -1
  26. package/dist/core/hitl.js +8 -0
  27. package/dist/core/hitl.js.map +1 -1
  28. package/dist/core/hostedAuth.d.ts +88 -0
  29. package/dist/core/hostedAuth.d.ts.map +1 -0
  30. package/dist/core/hostedAuth.js +219 -0
  31. package/dist/core/hostedAuth.js.map +1 -0
  32. package/dist/core/quota.d.ts +61 -0
  33. package/dist/core/quota.d.ts.map +1 -0
  34. package/dist/core/quota.js +104 -0
  35. package/dist/core/quota.js.map +1 -0
  36. package/dist/core/quotaErrors.d.ts.map +1 -1
  37. package/dist/core/quotaErrors.js +3 -5
  38. package/dist/core/quotaErrors.js.map +1 -1
  39. package/dist/core/resultVerification.d.ts +3 -2
  40. package/dist/core/resultVerification.d.ts.map +1 -1
  41. package/dist/core/resultVerification.js +3 -2
  42. package/dist/core/resultVerification.js.map +1 -1
  43. package/dist/core/secretStore.d.ts +11 -0
  44. package/dist/core/secretStore.d.ts.map +1 -1
  45. package/dist/core/secretStore.js +25 -0
  46. package/dist/core/secretStore.js.map +1 -1
  47. package/dist/core/slashCommands.d.ts.map +1 -1
  48. package/dist/core/slashCommands.js +4 -0
  49. package/dist/core/slashCommands.js.map +1 -1
  50. package/dist/core/thinkingVerbs.d.ts +31 -0
  51. package/dist/core/thinkingVerbs.d.ts.map +1 -0
  52. package/dist/core/thinkingVerbs.js +58 -0
  53. package/dist/core/thinkingVerbs.js.map +1 -0
  54. package/dist/core/turnGovernor.d.ts +63 -0
  55. package/dist/core/turnGovernor.d.ts.map +1 -0
  56. package/dist/core/turnGovernor.js +94 -0
  57. package/dist/core/turnGovernor.js.map +1 -0
  58. package/dist/core/updateChecker.d.ts.map +1 -1
  59. package/dist/core/updateChecker.js +5 -1
  60. package/dist/core/updateChecker.js.map +1 -1
  61. package/dist/core/usage.d.ts +28 -0
  62. package/dist/core/usage.d.ts.map +1 -0
  63. package/dist/core/usage.js +77 -0
  64. package/dist/core/usage.js.map +1 -0
  65. package/dist/headless/interactiveShell.d.ts +6 -0
  66. package/dist/headless/interactiveShell.d.ts.map +1 -1
  67. package/dist/headless/interactiveShell.js +262 -42
  68. package/dist/headless/interactiveShell.js.map +1 -1
  69. package/dist/plugins/providers/deepseek/index.d.ts.map +1 -1
  70. package/dist/plugins/providers/deepseek/index.js +8 -5
  71. package/dist/plugins/providers/deepseek/index.js.map +1 -1
  72. package/dist/providers/baseProvider.d.ts +5 -13
  73. package/dist/providers/baseProvider.d.ts.map +1 -1
  74. package/dist/providers/baseProvider.js +12 -66
  75. package/dist/providers/baseProvider.js.map +1 -1
  76. package/dist/providers/openaiChatCompletionsProvider.d.ts.map +1 -1
  77. package/dist/providers/openaiChatCompletionsProvider.js +27 -76
  78. package/dist/providers/openaiChatCompletionsProvider.js.map +1 -1
  79. package/dist/providers/resilientProvider.d.ts +2 -9
  80. package/dist/providers/resilientProvider.d.ts.map +1 -1
  81. package/dist/providers/resilientProvider.js +13 -199
  82. package/dist/providers/resilientProvider.js.map +1 -1
  83. package/dist/runtime/agentController.d.ts.map +1 -1
  84. package/dist/runtime/agentController.js +7 -0
  85. package/dist/runtime/agentController.js.map +1 -1
  86. package/dist/shell/toolPresentation.d.ts +7 -0
  87. package/dist/shell/toolPresentation.d.ts.map +1 -1
  88. package/dist/shell/toolPresentation.js +78 -4
  89. package/dist/shell/toolPresentation.js.map +1 -1
  90. package/dist/tools/bashTools.d.ts.map +1 -1
  91. package/dist/tools/bashTools.js +9 -3
  92. package/dist/tools/bashTools.js.map +1 -1
  93. package/dist/tools/grepTools.d.ts.map +1 -1
  94. package/dist/tools/grepTools.js +10 -1
  95. package/dist/tools/grepTools.js.map +1 -1
  96. package/dist/tools/memoryTools.d.ts +7 -0
  97. package/dist/tools/memoryTools.d.ts.map +1 -1
  98. package/dist/tools/memoryTools.js +17 -0
  99. package/dist/tools/memoryTools.js.map +1 -1
  100. package/dist/tools/searchTools.d.ts.map +1 -1
  101. package/dist/tools/searchTools.js +5 -4
  102. package/dist/tools/searchTools.js.map +1 -1
  103. package/dist/tools/todoTools.d.ts +3 -4
  104. package/dist/tools/todoTools.d.ts.map +1 -1
  105. package/dist/tools/todoTools.js +23 -4
  106. package/dist/tools/todoTools.js.map +1 -1
  107. package/dist/tools/webTools.d.ts.map +1 -1
  108. package/dist/tools/webTools.js +3 -1
  109. package/dist/tools/webTools.js.map +1 -1
  110. package/dist/ui/ink/ChatStatic.d.ts.map +1 -1
  111. package/dist/ui/ink/ChatStatic.js +21 -5
  112. package/dist/ui/ink/ChatStatic.js.map +1 -1
  113. package/dist/ui/ink/InkPromptController.d.ts +5 -0
  114. package/dist/ui/ink/InkPromptController.d.ts.map +1 -1
  115. package/dist/ui/ink/InkPromptController.js +16 -6
  116. package/dist/ui/ink/InkPromptController.js.map +1 -1
  117. package/dist/ui/ink/Prompt.d.ts +6 -0
  118. package/dist/ui/ink/Prompt.d.ts.map +1 -1
  119. package/dist/ui/ink/Prompt.js +69 -10
  120. package/dist/ui/ink/Prompt.js.map +1 -1
  121. package/dist/ui/ink/StatusLine.d.ts +6 -0
  122. package/dist/ui/ink/StatusLine.d.ts.map +1 -1
  123. package/dist/ui/ink/StatusLine.js +17 -3
  124. package/dist/ui/ink/StatusLine.js.map +1 -1
  125. package/dist/ui/ink/pasteBuffer.d.ts +44 -0
  126. package/dist/ui/ink/pasteBuffer.d.ts.map +1 -0
  127. package/dist/ui/ink/pasteBuffer.js +73 -0
  128. package/dist/ui/ink/pasteBuffer.js.map +1 -0
  129. package/package.json +1 -1
  130. package/dist/core/index.d.ts +0 -7
  131. package/dist/core/index.d.ts.map +0 -1
  132. package/dist/core/index.js +0 -7
  133. package/dist/core/index.js.map +0 -1
  134. package/dist/core/providerKeys.d.ts +0 -20
  135. package/dist/core/providerKeys.d.ts.map +0 -1
  136. package/dist/core/providerKeys.js +0 -40
  137. package/dist/core/providerKeys.js.map +0 -1
  138. package/dist/plugins/index.d.ts +0 -49
  139. package/dist/plugins/index.d.ts.map +0 -1
  140. package/dist/plugins/index.js +0 -104
  141. package/dist/plugins/index.js.map +0 -1
  142. package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.d.ts +0 -10
  143. package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.d.ts.map +0 -1
  144. package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.js +0 -110
  145. package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.js.map +0 -1
  146. package/dist/plugins/tools/bash/localBashPlugin.d.ts +0 -3
  147. package/dist/plugins/tools/bash/localBashPlugin.d.ts.map +0 -1
  148. package/dist/plugins/tools/bash/localBashPlugin.js +0 -14
  149. package/dist/plugins/tools/bash/localBashPlugin.js.map +0 -1
  150. package/dist/plugins/tools/edit/editPlugin.d.ts +0 -9
  151. package/dist/plugins/tools/edit/editPlugin.d.ts.map +0 -1
  152. package/dist/plugins/tools/edit/editPlugin.js +0 -15
  153. package/dist/plugins/tools/edit/editPlugin.js.map +0 -1
  154. package/dist/plugins/tools/enhancedGit/enhancedGitPlugin.d.ts +0 -3
  155. package/dist/plugins/tools/enhancedGit/enhancedGitPlugin.d.ts.map +0 -1
  156. package/dist/plugins/tools/enhancedGit/enhancedGitPlugin.js +0 -9
  157. package/dist/plugins/tools/enhancedGit/enhancedGitPlugin.js.map +0 -1
  158. package/dist/plugins/tools/filesystem/localFilesystemPlugin.d.ts +0 -3
  159. package/dist/plugins/tools/filesystem/localFilesystemPlugin.d.ts.map +0 -1
  160. package/dist/plugins/tools/filesystem/localFilesystemPlugin.js +0 -14
  161. package/dist/plugins/tools/filesystem/localFilesystemPlugin.js.map +0 -1
  162. package/dist/plugins/tools/gitHistory/gitHistoryPlugin.d.ts +0 -3
  163. package/dist/plugins/tools/gitHistory/gitHistoryPlugin.d.ts.map +0 -1
  164. package/dist/plugins/tools/gitHistory/gitHistoryPlugin.js +0 -9
  165. package/dist/plugins/tools/gitHistory/gitHistoryPlugin.js.map +0 -1
  166. package/dist/plugins/tools/index.d.ts +0 -3
  167. package/dist/plugins/tools/index.d.ts.map +0 -1
  168. package/dist/plugins/tools/index.js +0 -3
  169. package/dist/plugins/tools/index.js.map +0 -1
  170. package/dist/plugins/tools/integrity/integrityPlugin.d.ts +0 -3
  171. package/dist/plugins/tools/integrity/integrityPlugin.d.ts.map +0 -1
  172. package/dist/plugins/tools/integrity/integrityPlugin.js +0 -31
  173. package/dist/plugins/tools/integrity/integrityPlugin.js.map +0 -1
  174. package/dist/plugins/tools/mcp/mcpPlugin.d.ts +0 -3
  175. package/dist/plugins/tools/mcp/mcpPlugin.d.ts.map +0 -1
  176. package/dist/plugins/tools/mcp/mcpPlugin.js +0 -27
  177. package/dist/plugins/tools/mcp/mcpPlugin.js.map +0 -1
  178. package/dist/plugins/tools/nodeDefaults.d.ts +0 -13
  179. package/dist/plugins/tools/nodeDefaults.d.ts.map +0 -1
  180. package/dist/plugins/tools/nodeDefaults.js +0 -33
  181. package/dist/plugins/tools/nodeDefaults.js.map +0 -1
  182. package/dist/plugins/tools/orchestration/orchestrationPlugin.d.ts +0 -3
  183. package/dist/plugins/tools/orchestration/orchestrationPlugin.d.ts.map +0 -1
  184. package/dist/plugins/tools/orchestration/orchestrationPlugin.js +0 -340
  185. package/dist/plugins/tools/orchestration/orchestrationPlugin.js.map +0 -1
  186. package/dist/plugins/tools/registry.d.ts +0 -22
  187. package/dist/plugins/tools/registry.d.ts.map +0 -1
  188. package/dist/plugins/tools/registry.js +0 -58
  189. package/dist/plugins/tools/registry.js.map +0 -1
  190. package/dist/plugins/tools/search/localSearchPlugin.d.ts +0 -3
  191. package/dist/plugins/tools/search/localSearchPlugin.d.ts.map +0 -1
  192. package/dist/plugins/tools/search/localSearchPlugin.js +0 -14
  193. package/dist/plugins/tools/search/localSearchPlugin.js.map +0 -1
  194. package/dist/plugins/tools/skills/skillPlugin.d.ts +0 -3
  195. package/dist/plugins/tools/skills/skillPlugin.d.ts.map +0 -1
  196. package/dist/plugins/tools/skills/skillPlugin.js +0 -27
  197. package/dist/plugins/tools/skills/skillPlugin.js.map +0 -1
  198. package/dist/plugins/tools/todo/todoPlugin.d.ts +0 -3
  199. package/dist/plugins/tools/todo/todoPlugin.d.ts.map +0 -1
  200. package/dist/plugins/tools/todo/todoPlugin.js +0 -10
  201. package/dist/plugins/tools/todo/todoPlugin.js.map +0 -1
  202. package/dist/runtime/agentWorkerPool.d.ts +0 -167
  203. package/dist/runtime/agentWorkerPool.d.ts.map +0 -1
  204. package/dist/runtime/agentWorkerPool.js +0 -435
  205. package/dist/runtime/agentWorkerPool.js.map +0 -1
  206. package/dist/shell/autoExecutor.d.ts +0 -70
  207. package/dist/shell/autoExecutor.d.ts.map +0 -1
  208. package/dist/shell/autoExecutor.js +0 -320
  209. package/dist/shell/autoExecutor.js.map +0 -1
  210. package/dist/shell/commandRegistry.d.ts +0 -122
  211. package/dist/shell/commandRegistry.d.ts.map +0 -1
  212. package/dist/shell/commandRegistry.js +0 -355
  213. package/dist/shell/commandRegistry.js.map +0 -1
  214. package/dist/shell/composableMessage.d.ts +0 -178
  215. package/dist/shell/composableMessage.d.ts.map +0 -1
  216. package/dist/shell/composableMessage.js +0 -384
  217. package/dist/shell/composableMessage.js.map +0 -1
  218. package/dist/shell/vimMode.d.ts +0 -66
  219. package/dist/shell/vimMode.d.ts.map +0 -1
  220. package/dist/shell/vimMode.js +0 -435
  221. package/dist/shell/vimMode.js.map +0 -1
  222. package/dist/tools/localExplore.d.ts +0 -38
  223. package/dist/tools/localExplore.d.ts.map +0 -1
  224. package/dist/tools/localExplore.js +0 -30
  225. package/dist/tools/localExplore.js.map +0 -1
@@ -0,0 +1,104 @@
1
+ /**
2
+ * Live quota for the *included* (hosted) DeepSeek + Tavily keys, surfaced on
3
+ * the marketing site's login portal so a visitor can see how much of the
4
+ * included pool is left before signing in.
5
+ *
6
+ * Glasswing: the keys NEVER reach the browser. A server-side job
7
+ * (scripts/gen-quota.mjs, run in the deploy pipeline with the keys in env)
8
+ * calls these fetchers and writes the derived numbers to website/quota.json.
9
+ * The client reads only that file. The parsers are split out from the network
10
+ * so they can be unit-tested against the real API response shapes on CI, while
11
+ * the live fetch is exercised locally against the real endpoints (gated on the
12
+ * keys being present — never mocked).
13
+ *
14
+ * Real response shapes (probed 2026-06-03):
15
+ * DeepSeek GET /user/balance →
16
+ * {"is_available":true,"balance_infos":[{"currency":"USD",
17
+ * "total_balance":"10.22","granted_balance":"0.00","topped_up_balance":"10.22"}]}
18
+ * Tavily GET /usage →
19
+ * {"account":{"current_plan":"...","plan_usage":4710,"plan_limit":1000,...}, "key":{...}}
20
+ * Tavily's response carries no record of the one-time 5,000-credit bonus, so
21
+ * the included pool is the API's monthly allotment PLUS the documented bonus
22
+ * constant; "remaining" is that pool minus live cumulative usage.
23
+ */
24
+ import { TAVILY_MONTHLY_FREE, TAVILY_ONE_TIME_BONUS } from './usage.js';
25
+ const DEEPSEEK_BALANCE_URL = 'https://api.deepseek.com/user/balance';
26
+ const TAVILY_USAGE_URL = 'https://api.tavily.com/usage';
27
+ /* eslint-disable @typescript-eslint/no-explicit-any */
28
+ export function parseDeepSeekBalance(json) {
29
+ const infos = Array.isArray(json?.balance_infos) ? json.balance_infos : [];
30
+ // Prefer the USD line; fall back to the first entry.
31
+ const info = infos.find((b) => b?.currency === 'USD') ?? infos[0];
32
+ const raw = info?.total_balance;
33
+ const balance = raw != null && raw !== '' ? Number(raw) : NaN;
34
+ return {
35
+ available: Boolean(json?.is_available),
36
+ balance: Number.isFinite(balance) ? balance : null,
37
+ currency: typeof info?.currency === 'string' ? info.currency : null,
38
+ };
39
+ }
40
+ export function parseTavilyUsage(json) {
41
+ const rawUsed = json?.account?.plan_usage;
42
+ const used = rawUsed != null ? Number(rawUsed) : NaN;
43
+ const monthlyFree = TAVILY_MONTHLY_FREE;
44
+ const bonus = TAVILY_ONE_TIME_BONUS;
45
+ const included = monthlyFree + bonus;
46
+ const u = Number.isFinite(used) ? used : null;
47
+ return {
48
+ available: u != null,
49
+ used: u,
50
+ monthlyFree,
51
+ bonus,
52
+ included,
53
+ remaining: u == null ? null : Math.max(0, included - u),
54
+ };
55
+ }
56
+ /* eslint-enable @typescript-eslint/no-explicit-any */
57
+ // Error strings are deliberately key-free (status code only). A thrown network
58
+ // error is collapsed to a generic string so a stack/URL can never leak a key.
59
+ export async function fetchDeepSeekBalance(key, fetchImpl) {
60
+ const f = fetchImpl ?? globalThis.fetch;
61
+ const unavailable = (error) => ({ available: false, balance: null, currency: null, error });
62
+ if (!key)
63
+ return unavailable('no key');
64
+ try {
65
+ const res = await f(DEEPSEEK_BALANCE_URL, { headers: { Authorization: `Bearer ${key}` } });
66
+ if (!res.ok)
67
+ return unavailable(`HTTP ${res.status}`);
68
+ return parseDeepSeekBalance(await res.json());
69
+ }
70
+ catch {
71
+ return unavailable('request failed');
72
+ }
73
+ }
74
+ export async function fetchTavilyUsage(key, fetchImpl) {
75
+ const f = fetchImpl ?? globalThis.fetch;
76
+ const unavailable = (error) => ({
77
+ available: false,
78
+ used: null,
79
+ monthlyFree: TAVILY_MONTHLY_FREE,
80
+ bonus: TAVILY_ONE_TIME_BONUS,
81
+ included: TAVILY_MONTHLY_FREE + TAVILY_ONE_TIME_BONUS,
82
+ remaining: null,
83
+ error,
84
+ });
85
+ if (!key)
86
+ return unavailable('no key');
87
+ try {
88
+ const res = await f(TAVILY_USAGE_URL, { headers: { Authorization: `Bearer ${key}` } });
89
+ if (!res.ok)
90
+ return unavailable(`HTTP ${res.status}`);
91
+ return parseTavilyUsage(await res.json());
92
+ }
93
+ catch {
94
+ return unavailable('request failed');
95
+ }
96
+ }
97
+ export async function buildLiveQuota(opts) {
98
+ const [deepseek, tavily] = await Promise.all([
99
+ fetchDeepSeekBalance(opts.deepseekKey ?? '', opts.fetchImpl),
100
+ fetchTavilyUsage(opts.tavilyKey ?? '', opts.fetchImpl),
101
+ ]);
102
+ return { generated: opts.now, deepseek, tavily };
103
+ }
104
+ //# sourceMappingURL=quota.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quota.js","sourceRoot":"","sources":["../../src/core/quota.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"quotaErrors.d.ts","sourceRoot":"","sources":["../../src/core/quotaErrors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,eAAO,MAAM,oBAAoB,QAKrB,CAAC;AAEb,eAAO,MAAM,sBAAsB,QAMvB,CAAC;AAEb;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAY/E;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAW5D;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,KAAK,CAO/C"}
1
+ {"version":3,"file":"quotaErrors.d.ts","sourceRoot":"","sources":["../../src/core/quotaErrors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,eAAO,MAAM,oBAAoB,QAKrB,CAAC;AAEb,eAAO,MAAM,sBAAsB,QAIvB,CAAC;AAEb;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAY/E;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAW5D;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,KAAK,CAO/C"}
@@ -13,14 +13,12 @@ export const TAVILY_QUOTA_MESSAGE = [
13
13
  'Web search is disabled: the Tavily monthly free-tier quota is exhausted.',
14
14
  ' • This automatically re-enables on the 1st of next month (UTC reset).',
15
15
  ' • To restore search immediately, top up at https://app.tavily.com/billing',
16
- ' or set your own TAVILY_API_KEY (`/secrets set TAVILY_API_KEY`).',
16
+ ' or set your own key: /key tvly-…',
17
17
  ].join('\n');
18
18
  export const DEEPSEEK_QUOTA_MESSAGE = [
19
19
  'DeepSeek API is disabled: your account balance is exhausted.',
20
- ' • Top up at https://platform.deepseek.com/billing to resume this month.',
21
- ' • DeepSeek does not auto-reset you must top up; the 75% promo period',
22
- ' (now ended) is no longer subsidizing usage.',
23
- ' • Or switch keys: `/secrets set DEEPSEEK_API_KEY` (paid provider).',
20
+ ' • Top up at https://platform.deepseek.com/billing (DeepSeek does not auto-reset).',
21
+ ' • Or set a different key: /key sk-…',
24
22
  ].join('\n');
25
23
  /**
26
24
  * Detect a Tavily response that means "you've hit your monthly quota
@@ -1 +1 @@
1
- {"version":3,"file":"quotaErrors.js","sourceRoot":"","sources":["../../src/core/quotaErrors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,0EAA0E;IAC1E,yEAAyE;IACzE,6EAA6E;IAC7E,qEAAqE;CACtE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,8DAA8D;IAC9D,2EAA2E;IAC3E,0EAA0E;IAC1E,iDAAiD;IACjD,sEAAsE;CACvE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAc,EAAE,QAAgB;IACpE,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;QACzE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IACpC,OAAO,CACL,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC5B,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC9B,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;QAC3B,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QACrC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CACvB,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,MAAM,MAAM,GAAI,KAA8B,CAAC,MAAM,CAAC;IACtD,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC;IAChC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IAC5C,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,IAAI,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1D,IAAI,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1D,IAAI,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3D,IAAI,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QAAE,OAAO,IAAI,CAAC;IACtD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB;IACrC,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC9C,2DAA2D;IAC3D,2DAA2D;IAC1D,GAAsC,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAC/D,GAA6B,CAAC,QAAQ,GAAG,UAAU,CAAC;IACrD,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"quotaErrors.js","sourceRoot":"","sources":["../../src/core/quotaErrors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,0EAA0E;IAC1E,yEAAyE;IACzE,6EAA6E;IAC7E,sCAAsC;CACvC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,8DAA8D;IAC9D,qFAAqF;IACrF,uCAAuC;CACxC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAc,EAAE,QAAgB;IACpE,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;QACzE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IACpC,OAAO,CACL,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC5B,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC9B,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;QAC3B,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QACrC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CACvB,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,MAAM,MAAM,GAAI,KAA8B,CAAC,MAAM,CAAC;IACtD,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC;IAChC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IAC5C,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,IAAI,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1D,IAAI,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1D,IAAI,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3D,IAAI,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QAAE,OAAO,IAAI,CAAC;IACtD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB;IACrC,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC9C,2DAA2D;IAC3D,2DAA2D;IAC1D,GAAsC,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAC/D,GAA6B,CAAC,QAAQ,GAAG,UAAU,CAAC;IACrD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1,6 +1,7 @@
1
1
  /**
2
- * Result Verification - Re-exported from orchestrationCapability
3
- * Provides verifiedSuccess, verifiedFailure, analyzeOutput, OutputPatterns, etc.
2
+ * Result Verification canonical home for verifiedSuccess, verifiedFailure,
3
+ * analyzeOutput, OutputPatterns, etc. (Defined here, not re-exported; the
4
+ * orchestrationCapability module the old header named no longer exists.)
4
5
  */
5
6
  export type VerificationStatus = 'VERIFIED_SUCCESS' | 'VERIFIED_FAILURE' | 'UNVERIFIED' | 'PARTIAL_SUCCESS' | 'REQUIRES_USER_ACTION';
6
7
  export interface VerifiedResult {
@@ -1 +1 @@
1
- {"version":3,"file":"resultVerification.d.ts","sourceRoot":"","sources":["../../src/core/resultVerification.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAgBH,MAAM,MAAM,kBAAkB,GAC1B,kBAAkB,GAClB,kBAAkB,GAClB,YAAY,GACZ,iBAAiB,GACjB,sBAAsB,CAAC;AAE3B,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACzC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,cAAc;;;;;;;;;;;;;CAa1B,CAAC;AA8BF,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,iBAAiB,EAAE,EAC5B,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,CASR;AAED,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,gBAAgB,CAAC,EAAE,MAAM,EAAE,EAC3B,MAAM,CAAC,EAAE,iBAAiB,EAAE,EAC5B,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,CAUR;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,EAClD,QAAQ,CAAC,EAAE,MAAM,GAChB;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAA;CAAE,CAa5G;AAED,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,gBAAgB,CAAC,EAAE,MAAM,EAAE,GAC1B,iBAAiB,CAWnB;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAE,MAAkB,GAAG,MAAM,CAInG"}
1
+ {"version":3,"file":"resultVerification.d.ts","sourceRoot":"","sources":["../../src/core/resultVerification.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAgBH,MAAM,MAAM,kBAAkB,GAC1B,kBAAkB,GAClB,kBAAkB,GAClB,YAAY,GACZ,iBAAiB,GACjB,sBAAsB,CAAC;AAE3B,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACzC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,cAAc;;;;;;;;;;;;;CAa1B,CAAC;AA8BF,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,iBAAiB,EAAE,EAC5B,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,CASR;AAED,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,gBAAgB,CAAC,EAAE,MAAM,EAAE,EAC3B,MAAM,CAAC,EAAE,iBAAiB,EAAE,EAC5B,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,CAUR;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,EAClD,QAAQ,CAAC,EAAE,MAAM,GAChB;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAA;CAAE,CAa5G;AAED,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,gBAAgB,CAAC,EAAE,MAAM,EAAE,GAC1B,iBAAiB,CAWnB;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAE,MAAkB,GAAG,MAAM,CAInG"}
@@ -1,6 +1,7 @@
1
1
  /**
2
- * Result Verification - Re-exported from orchestrationCapability
3
- * Provides verifiedSuccess, verifiedFailure, analyzeOutput, OutputPatterns, etc.
2
+ * Result Verification canonical home for verifiedSuccess, verifiedFailure,
3
+ * analyzeOutput, OutputPatterns, etc. (Defined here, not re-exported; the
4
+ * orchestrationCapability module the old header named no longer exists.)
4
5
  */
5
6
  // ANSI color codes for enhanced terminal output
6
7
  const ANSI_RESET = '\x1b[0m';
@@ -1 +1 @@
1
- {"version":3,"file":"resultVerification.js","sourceRoot":"","sources":["../../src/core/resultVerification.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resultVerification.js","sourceRoot":"","sources":["../../src/core/resultVerification.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,gDAAgD;AAChD,MAAM,UAAU,GAAG,SAAS,CAAC;AAC7B,MAAM,QAAQ,GAAG,UAAU,CAAC;AAC5B,MAAM,UAAU,GAAG,UAAU,CAAC;AAC9B,MAAM,WAAW,GAAG,UAAU,CAAC;AAC/B,MAAM,SAAS,GAAG,UAAU,CAAC;AAC7B,MAAM,YAAY,GAAG,UAAU,CAAC;AAChC,MAAM,SAAS,GAAG,UAAU,CAAC;AAC7B,MAAM,QAAQ,GAAG,SAAS,CAAC;AAC3B,MAAM,SAAS,GAAG,SAAS,CAAC;AAC5B,MAAM,aAAa,GAAG,YAAY,CAAC;AACnC,MAAM,eAAe,GAAG,YAAY,CAAC;AACrC,MAAM,gBAAgB,GAAG,YAAY,CAAC;AAyBtC,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,GAAG,EAAE;QACH,OAAO,EAAE,CAAC,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,oBAAoB,EAAE,qBAAqB,CAAC;QAC1G,OAAO,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,CAAC;KACnF;IACD,GAAG,EAAE;QACH,OAAO,EAAE,CAAC,aAAa,EAAE,qBAAqB,EAAE,YAAY,CAAC;QAC7D,OAAO,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,CAAC;KAC5D;IACD,OAAO,EAAE;QACP,OAAO,EAAE,CAAC,sCAAsC,EAAE,eAAe,CAAC;QAClE,OAAO,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,SAAS,EAAE,SAAS,CAAC;KAC/G;CACF,CAAC;AAEF,SAAS,oBAAoB,CAAC,MAAsB;IAClD,IAAI,MAAM,CAAC,MAAM,KAAK,kBAAkB;QAAE,OAAO,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC;IAClF,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC;QACtB,KAAK,kBAAkB;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,aAAa,iBAAiB,UAAU,EAAE,CAAC,CAAC;YAAC,MAAM;QAC1F,KAAK,YAAY;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,gBAAgB,qBAAqB,UAAU,EAAE,CAAC,CAAC;YAAC,MAAM;QAC3F,KAAK,iBAAiB;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,gBAAgB,0BAA0B,UAAU,EAAE,CAAC,CAAC;YAAC,MAAM;QACrG,KAAK,sBAAsB;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,0BAA0B,UAAU,EAAE,CAAC,CAAC;YAAC,MAAM;IACrG,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACnC,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;QAC9B,MAAM,YAAY,GAAG,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACtE,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC7B,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;gBACjC,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,IAAI,UAAU,IAAI,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACvG,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IACD,IAAI,MAAM,CAAC,OAAO;QAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACnD,IAAI,MAAM,CAAC,gBAAgB,EAAE,MAAM,EAAE,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACjC,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,gBAAgB;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,UAAU,IAAI,UAAU,IAAI,MAAM,EAAE,CAAC,CAAC;IACtG,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,OAAe,EACf,OAAe,EACf,MAA4B,EAC5B,UAAmB;IAEnB,OAAO,oBAAoB,CAAC;QAC1B,MAAM,EAAE,kBAAkB;QAC1B,OAAO;QACP,OAAO;QACP,kBAAkB,EAAE,MAAM;QAC1B,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACpC,UAAU;KACX,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,OAAe,EACf,OAAe,EACf,gBAA2B,EAC3B,MAA4B,EAC5B,UAAmB;IAEnB,OAAO,oBAAoB,CAAC;QAC1B,MAAM,EAAE,kBAAkB;QAC1B,OAAO;QACP,OAAO;QACP,kBAAkB,EAAE,MAAM;QAC1B,gBAAgB;QAChB,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACpC,UAAU;KACX,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,MAAc,EACd,QAAkD,EAClD,QAAiB;IAEjB,MAAM,gBAAgB,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACjD,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACvC,IAAI,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC;YAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;IACvI,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACvC,IAAI,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC;YAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;IACvI,CAAC;IACD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,IAAI,QAAQ,KAAK,CAAC;YAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;QACrF,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;IACnE,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,SAAiB,EACjB,QAAgB,EAChB,MAAc,EACd,gBAA2B;IAE3B,IAAI,MAAM,GAAG,QAAQ,KAAK,CAAC,CAAC;IAC5B,IAAI,OAAO,GAAG,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,QAAQ,EAAE,CAAC;IACvE,IAAI,gBAAgB,IAAI,MAAM,EAAE,CAAC;QAC/B,MAAM,YAAY,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,GAAG,KAAK,CAAC;YACf,OAAO,GAAG,mDAAmD,CAAC;QAChE,CAAC;IACH,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAe,EAAE,SAAiB,EAAE,SAAiB,SAAS;IACzF,IAAI,OAAO,CAAC,MAAM,IAAI,SAAS;QAAE,OAAO,OAAO,CAAC;IAChD,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAC/C,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,YAAY,WAAW,wBAAwB,CAAC;AACvF,CAAC"}
@@ -24,6 +24,17 @@ export declare function getSecretValue(id: SecretName): string | null;
24
24
  */
25
25
  export declare function loadAllSecrets(): void;
26
26
  export declare function setSecretValue(id: SecretName, rawValue: string): void;
27
+ /**
28
+ * Route a raw `/key` argument to the secret it sets, by prefix or explicit
29
+ * provider word. DeepSeek keys are `sk-…`, Tavily keys are `tvly-…`, so a bare
30
+ * key self-identifies; `/key tavily <k>` / `/key deepseek <k>` force it. Bare
31
+ * keys with no known prefix default to DeepSeek (back-compat — that was the
32
+ * only key `/key` ever set). Returns null for an empty/blank argument.
33
+ */
34
+ export declare function classifyKeyEntry(raw: string): {
35
+ id: SecretName;
36
+ value: string;
37
+ } | null;
27
38
  export declare function maskSecret(value: string): string;
28
39
  export declare function ensureSecretForProvider(provider: ProviderId): string;
29
40
  export declare function getSecretDefinitionForProvider(provider: ProviderId): SecretDefinition | null;
@@ -1 +1 @@
1
- {"version":3,"file":"secretStore.d.ts","sourceRoot":"","sources":["../../src/core/secretStore.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,MAAM,UAAU,GAClB,kBAAkB,GAClB,gBAAgB,CAAC;AAErB,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,UAAU,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,UAAU,EAAE,CAAC;CACzB;AA2BD,qBAAa,kBAAmB,SAAQ,KAAK;aACf,MAAM,EAAE,gBAAgB;gBAAxB,MAAM,EAAE,gBAAgB;CAIrD;AAED,wBAAgB,qBAAqB,IAAI,gBAAgB,EAAE,CAE1D;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,UAAU,GAAG,gBAAgB,GAAG,IAAI,CAE3E;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAkB5D;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAYrC;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAUrE;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAUhD;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,UAAU,GAAG,MAAM,CAQpE;AAED,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,UAAU,GAAG,gBAAgB,GAAG,IAAI,CAE5F;AAmED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CA4B5D;AAoCD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAQlD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAQvD"}
1
+ {"version":3,"file":"secretStore.d.ts","sourceRoot":"","sources":["../../src/core/secretStore.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,MAAM,UAAU,GAClB,kBAAkB,GAClB,gBAAgB,CAAC;AAErB,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,UAAU,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,UAAU,EAAE,CAAC;CACzB;AA2BD,qBAAa,kBAAmB,SAAQ,KAAK;aACf,MAAM,EAAE,gBAAgB;gBAAxB,MAAM,EAAE,gBAAgB;CAIrD;AAED,wBAAgB,qBAAqB,IAAI,gBAAgB,EAAE,CAE1D;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,UAAU,GAAG,gBAAgB,GAAG,IAAI,CAE3E;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAkB5D;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAYrC;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAUrE;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,EAAE,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAetF;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAUhD;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,UAAU,GAAG,MAAM,CAQpE;AAED,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,UAAU,GAAG,gBAAgB,GAAG,IAAI,CAE5F;AAmED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CA4B5D;AAoCD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAQlD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAQvD"}
@@ -82,6 +82,31 @@ export function setSecretValue(id, rawValue) {
82
82
  writeSecretStore(store);
83
83
  process.env[id] = value;
84
84
  }
85
+ /**
86
+ * Route a raw `/key` argument to the secret it sets, by prefix or explicit
87
+ * provider word. DeepSeek keys are `sk-…`, Tavily keys are `tvly-…`, so a bare
88
+ * key self-identifies; `/key tavily <k>` / `/key deepseek <k>` force it. Bare
89
+ * keys with no known prefix default to DeepSeek (back-compat — that was the
90
+ * only key `/key` ever set). Returns null for an empty/blank argument.
91
+ */
92
+ export function classifyKeyEntry(raw) {
93
+ const trimmed = (raw || '').trim();
94
+ if (!trimmed)
95
+ return null;
96
+ const parts = trimmed.split(/\s+/);
97
+ const lead = (parts[0] || '').toLowerCase();
98
+ if (lead === 'tavily' || lead === 'tvly' || lead === 'search') {
99
+ const value = parts.slice(1).join(' ').trim();
100
+ return value ? { id: 'TAVILY_API_KEY', value } : null;
101
+ }
102
+ if (lead === 'deepseek' || lead === 'ds') {
103
+ const value = parts.slice(1).join(' ').trim();
104
+ return value ? { id: 'DEEPSEEK_API_KEY', value } : null;
105
+ }
106
+ if (/^tvly-/i.test(trimmed))
107
+ return { id: 'TAVILY_API_KEY', value: trimmed };
108
+ return { id: 'DEEPSEEK_API_KEY', value: trimmed };
109
+ }
85
110
  export function maskSecret(value) {
86
111
  if (!value) {
87
112
  return '';
@@ -1 +1 @@
1
- {"version":3,"file":"secretStore.js","sourceRoot":"","sources":["../../src/core/secretStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"secretStore.js","sourceRoot":"","sources":["../../src/core/secretStore.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"slashCommands.d.ts","sourceRoot":"","sources":["../../src/core/slashCommands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,cAAc,EAAE,SAAS,YAAY,EAYjD,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG9E;AAED,uFAAuF;AACvF,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,SAAI,GAAG,YAAY,EAAE,CAa7E;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAIpH"}
1
+ {"version":3,"file":"slashCommands.d.ts","sourceRoot":"","sources":["../../src/core/slashCommands.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,cAAc,EAAE,SAAS,YAAY,EAgBjD,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG9E;AAED,uFAAuF;AACvF,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,SAAI,GAAG,YAAY,EAAE,CAa7E;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAIpH"}
@@ -13,9 +13,13 @@
13
13
  */
14
14
  export const SLASH_COMMANDS = [
15
15
  { command: '/key', description: 'Set your DeepSeek API key' },
16
+ { command: '/login', description: 'Sign in with Google (ero.solar) for hosted keys' },
17
+ { command: '/logout', description: 'Sign out of hosted keys' },
18
+ { command: '/account', description: 'Show / switch key source (hosted vs your own)' },
16
19
  { command: '/clear', description: 'Clear the screen and conversation' },
17
20
  { command: '/resume', description: 'Restore a saved conversation' },
18
21
  { command: '/context', description: 'Show context-window usage' },
22
+ { command: '/cost', description: 'DeepSeek tokens + Tavily searches consumed' },
19
23
  { command: '/diff', description: 'Review files changed this run' },
20
24
  { command: '/rewind', description: 'Restore files changed this run' },
21
25
  { command: '/update', description: 'Update to the latest version' },
@@ -1 +1 @@
1
- {"version":3,"file":"slashCommands.js","sourceRoot":"","sources":["../../src/core/slashCommands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slashCommands.js","sourceRoot":"","sources":["../../src/core/slashCommands.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Rotating "thinking" gerunds for the working spinner — Claude Code parity
3
+ * (see src/ui/CLAUDE_CODE_UX.md §4: "a rotating gerund ('Thinking',
4
+ * 'Synthesizing', 'Forging', 'Puzzling', 'Conjuring', 'Noodling')"). When the
5
+ * agent is working without a specific tool activity, the host parks the
6
+ * canonical generic label on the spinner and the renderer swaps it for a
7
+ * whimsical gerund that rotates over time, instead of a static "Thinking…".
8
+ *
9
+ * Pure module: no side effects, no imports. The renderer rotates by calling
10
+ * pickThinkingVerb(); tests seed the rng for determinism.
11
+ */
12
+ export declare const THINKING_VERBS: readonly string[];
13
+ /**
14
+ * Canonical generic-thinking label. The host sets this (or one of the legacy
15
+ * "Thinking…" / "Thinking..." variants) on the spinner when the agent is busy
16
+ * without a named tool activity; the renderer treats it as a sentinel and shows
17
+ * a rotating gerund instead. Never displayed verbatim while spinning.
18
+ */
19
+ export declare const GENERIC_THINKING_LABEL = "Thinking";
20
+ /** True when `message` is a generic-thinking sentinel (any historical spelling). */
21
+ export declare function isGenericThinking(message: string | null | undefined): boolean;
22
+ /**
23
+ * Pick a thinking gerund. Pass `exclude` (the current verb) so a rotation
24
+ * always lands on a different word; pass `rng` to make the choice deterministic
25
+ * in tests.
26
+ */
27
+ export declare function pickThinkingVerb(opts?: {
28
+ rng?: () => number;
29
+ exclude?: string;
30
+ }): string;
31
+ //# sourceMappingURL=thinkingVerbs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thinkingVerbs.d.ts","sourceRoot":"","sources":["../../src/core/thinkingVerbs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,eAAO,MAAM,cAAc,EAAE,SAAS,MAAM,EAqB1C,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,aAAa,CAAC;AAIjD,oFAAoF;AACpF,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAE7E;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,MAAM,CAM5F"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Rotating "thinking" gerunds for the working spinner — Claude Code parity
3
+ * (see src/ui/CLAUDE_CODE_UX.md §4: "a rotating gerund ('Thinking',
4
+ * 'Synthesizing', 'Forging', 'Puzzling', 'Conjuring', 'Noodling')"). When the
5
+ * agent is working without a specific tool activity, the host parks the
6
+ * canonical generic label on the spinner and the renderer swaps it for a
7
+ * whimsical gerund that rotates over time, instead of a static "Thinking…".
8
+ *
9
+ * Pure module: no side effects, no imports. The renderer rotates by calling
10
+ * pickThinkingVerb(); tests seed the rng for determinism.
11
+ */
12
+ export const THINKING_VERBS = Object.freeze([
13
+ 'Thinking',
14
+ 'Synthesizing',
15
+ 'Forging',
16
+ 'Puzzling',
17
+ 'Conjuring',
18
+ 'Noodling',
19
+ 'Pondering',
20
+ 'Brewing',
21
+ 'Cooking',
22
+ 'Churning',
23
+ 'Crafting',
24
+ 'Computing',
25
+ 'Cerebrating',
26
+ 'Simmering',
27
+ 'Percolating',
28
+ 'Ruminating',
29
+ 'Wrangling',
30
+ 'Tinkering',
31
+ 'Marinating',
32
+ 'Spelunking',
33
+ ]);
34
+ /**
35
+ * Canonical generic-thinking label. The host sets this (or one of the legacy
36
+ * "Thinking…" / "Thinking..." variants) on the spinner when the agent is busy
37
+ * without a named tool activity; the renderer treats it as a sentinel and shows
38
+ * a rotating gerund instead. Never displayed verbatim while spinning.
39
+ */
40
+ export const GENERIC_THINKING_LABEL = 'Thinking';
41
+ const GENERIC_VARIANTS = new Set(['Thinking', 'Thinking…', 'Thinking...']);
42
+ /** True when `message` is a generic-thinking sentinel (any historical spelling). */
43
+ export function isGenericThinking(message) {
44
+ return message != null && GENERIC_VARIANTS.has(message.trim());
45
+ }
46
+ /**
47
+ * Pick a thinking gerund. Pass `exclude` (the current verb) so a rotation
48
+ * always lands on a different word; pass `rng` to make the choice deterministic
49
+ * in tests.
50
+ */
51
+ export function pickThinkingVerb(opts = {}) {
52
+ const rng = opts.rng ?? Math.random;
53
+ const pool = opts.exclude ? THINKING_VERBS.filter((v) => v !== opts.exclude) : THINKING_VERBS;
54
+ const list = pool.length ? pool : THINKING_VERBS;
55
+ const idx = Math.abs(Math.floor(rng() * list.length)) % list.length;
56
+ return list[idx];
57
+ }
58
+ //# sourceMappingURL=thinkingVerbs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thinkingVerbs.js","sourceRoot":"","sources":["../../src/core/thinkingVerbs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,CAAC,MAAM,cAAc,GAAsB,MAAM,CAAC,MAAM,CAAC;IAC7D,UAAU;IACV,cAAc;IACd,SAAS;IACT,UAAU;IACV,WAAW;IACX,UAAU;IACV,WAAW;IACX,SAAS;IACT,SAAS;IACT,UAAU;IACV,UAAU;IACV,WAAW;IACX,aAAa;IACb,WAAW;IACX,aAAa;IACb,YAAY;IACZ,WAAW;IACX,WAAW;IACX,YAAY;IACZ,YAAY;CACb,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,UAAU,CAAC;AAEjD,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC;AAE3E,oFAAoF;AACpF,MAAM,UAAU,iBAAiB,CAAC,OAAkC;IAClE,OAAO,OAAO,IAAI,IAAI,IAAI,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;AACjE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAiD,EAAE;IAClF,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC;IACpC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;IAC9F,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC;IACjD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;IACpE,OAAO,IAAI,CAAC,GAAG,CAAE,CAAC;AACpB,CAAC"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Turn governor — a bounded, stall-aware spine for the auto-continue loop.
3
+ *
4
+ * The auto-continue loop (interactiveShell processPrompt → processPrompt
5
+ * recursion) was UNBOUNDED: an agent that couldn't satisfy the completion
6
+ * heuristic ran forever, re-trying dead ends with no escalation. This caps the
7
+ * turns per user request and detects a stall (the same observable work
8
+ * repeating with no new progress), so the loop yields to the user WITH state
9
+ * instead of thrashing for hours. It also derives the next continuation from
10
+ * the agent's live TODO plan (which the loop previously ignored).
11
+ *
12
+ * Pure + dependency-free so it's unit-testable; the shell instantiates one per
13
+ * user request, resets on a fresh prompt, calls recordTurn() each auto-continue,
14
+ * and breaks on check().stop.
15
+ */
16
+ export interface TurnMetrics {
17
+ /** tools invoked during the turn */
18
+ toolsUsed: string[];
19
+ /** files written/edited during the turn */
20
+ filesModified: string[];
21
+ /** failing test/build signal in the turn output, or null */
22
+ failingSignal: string | null;
23
+ }
24
+ export interface GovernorVerdict {
25
+ stop: boolean;
26
+ reason: 'limit' | 'stall' | null;
27
+ turn: number;
28
+ }
29
+ /** Stable signature of a turn's observable work — the same signature repeating means no progress. */
30
+ export declare function fingerprintTurn(m: TurnMetrics): string;
31
+ export declare class TurnGovernor {
32
+ private turn;
33
+ private fps;
34
+ private readonly max;
35
+ private readonly stallWindow;
36
+ constructor(opts?: {
37
+ maxAutoTurns?: number;
38
+ stallWindow?: number;
39
+ });
40
+ /** A new user request starts a fresh turn budget. */
41
+ reset(): void;
42
+ /** Record one completed auto-continue turn. */
43
+ recordTurn(m: TurnMetrics): void;
44
+ /** Whether the auto-continue loop should stop now, and why. */
45
+ check(): GovernorVerdict;
46
+ get turnCount(): number;
47
+ get maxTurns(): number;
48
+ }
49
+ export interface TodoLike {
50
+ content?: string;
51
+ status?: string;
52
+ activeForm?: string;
53
+ }
54
+ /** Todos still to do (pending or in-progress). */
55
+ export declare function pendingTodos(todos: ReadonlyArray<TodoLike> | null | undefined): TodoLike[];
56
+ /**
57
+ * The next auto-continue prompt derived from the plan — the in-progress item
58
+ * (or first pending). Prefixed IMPORTANT: so the loop treats it as an
59
+ * auto-continue (not a fresh user request) and the no-docs guard holds.
60
+ * Returns null when the plan has no pending work.
61
+ */
62
+ export declare function nextTodoPrompt(todos: ReadonlyArray<TodoLike> | null | undefined): string | null;
63
+ //# sourceMappingURL=turnGovernor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"turnGovernor.d.ts","sourceRoot":"","sources":["../../src/core/turnGovernor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,MAAM,WAAW,WAAW;IAC1B,oCAAoC;IACpC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,2CAA2C;IAC3C,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,4DAA4D;IAC5D,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,OAAO,GAAG,OAAO,GAAG,IAAI,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,qGAAqG;AACrG,wBAAgB,eAAe,CAAC,CAAC,EAAE,WAAW,GAAG,MAAM,CAItD;AASD,qBAAa,YAAY;IACvB,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,GAAG,CAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;gBAEzB,IAAI,GAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAO;IAKtE,qDAAqD;IACrD,KAAK,IAAI,IAAI;IAKb,+CAA+C;IAC/C,UAAU,CAAC,CAAC,EAAE,WAAW,GAAG,IAAI;IAMhC,+DAA+D;IAC/D,KAAK,IAAI,eAAe;IAiBxB,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,IAAI,QAAQ,IAAI,MAAM,CAErB;CACF;AAKD,MAAM,WAAW,QAAQ;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,kDAAkD;AAClD,wBAAgB,YAAY,CAAC,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC,GAAG,IAAI,GAAG,SAAS,GAAG,QAAQ,EAAE,CAE1F;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAO/F"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Turn governor — a bounded, stall-aware spine for the auto-continue loop.
3
+ *
4
+ * The auto-continue loop (interactiveShell processPrompt → processPrompt
5
+ * recursion) was UNBOUNDED: an agent that couldn't satisfy the completion
6
+ * heuristic ran forever, re-trying dead ends with no escalation. This caps the
7
+ * turns per user request and detects a stall (the same observable work
8
+ * repeating with no new progress), so the loop yields to the user WITH state
9
+ * instead of thrashing for hours. It also derives the next continuation from
10
+ * the agent's live TODO plan (which the loop previously ignored).
11
+ *
12
+ * Pure + dependency-free so it's unit-testable; the shell instantiates one per
13
+ * user request, resets on a fresh prompt, calls recordTurn() each auto-continue,
14
+ * and breaks on check().stop.
15
+ */
16
+ const DEFAULT_MAX_AUTO_TURNS = 25;
17
+ const STALL_WINDOW = 3;
18
+ /** Stable signature of a turn's observable work — the same signature repeating means no progress. */
19
+ export function fingerprintTurn(m) {
20
+ const tools = [...(m.toolsUsed ?? [])].map((t) => t.toLowerCase()).sort().join(',');
21
+ const files = [...(m.filesModified ?? [])].sort().join(',');
22
+ return `${tools}|${files}|${m.failingSignal ?? ''}`;
23
+ }
24
+ function maxFromEnv() {
25
+ const raw = process.env['EROSOLAR_MAX_AUTO_TURNS'];
26
+ if (!raw)
27
+ return null;
28
+ const n = parseInt(raw, 10);
29
+ return Number.isFinite(n) && n > 0 ? n : null;
30
+ }
31
+ export class TurnGovernor {
32
+ turn = 0;
33
+ fps = [];
34
+ max;
35
+ stallWindow;
36
+ constructor(opts = {}) {
37
+ this.max = opts.maxAutoTurns ?? maxFromEnv() ?? DEFAULT_MAX_AUTO_TURNS;
38
+ this.stallWindow = Math.max(2, opts.stallWindow ?? STALL_WINDOW);
39
+ }
40
+ /** A new user request starts a fresh turn budget. */
41
+ reset() {
42
+ this.turn = 0;
43
+ this.fps = [];
44
+ }
45
+ /** Record one completed auto-continue turn. */
46
+ recordTurn(m) {
47
+ this.turn += 1;
48
+ this.fps.push(fingerprintTurn(m));
49
+ if (this.fps.length > this.stallWindow)
50
+ this.fps.shift();
51
+ }
52
+ /** Whether the auto-continue loop should stop now, and why. */
53
+ check() {
54
+ if (this.turn >= this.max) {
55
+ return { stop: true, reason: 'limit', turn: this.turn };
56
+ }
57
+ // Stall: the last `stallWindow` turns did the exact same observable work
58
+ // (same tools, files, failing signal) — the agent is repeating itself with
59
+ // no new progress (including doing nothing at all), so stop rather than
60
+ // burn turns up to the limit.
61
+ if (this.fps.length >= this.stallWindow &&
62
+ this.fps.every((f) => f === this.fps[0])) {
63
+ return { stop: true, reason: 'stall', turn: this.turn };
64
+ }
65
+ return { stop: false, reason: null, turn: this.turn };
66
+ }
67
+ get turnCount() {
68
+ return this.turn;
69
+ }
70
+ get maxTurns() {
71
+ return this.max;
72
+ }
73
+ }
74
+ /** Todos still to do (pending or in-progress). */
75
+ export function pendingTodos(todos) {
76
+ return (todos ?? []).filter((t) => t && (t.status === 'pending' || t.status === 'in_progress'));
77
+ }
78
+ /**
79
+ * The next auto-continue prompt derived from the plan — the in-progress item
80
+ * (or first pending). Prefixed IMPORTANT: so the loop treats it as an
81
+ * auto-continue (not a fresh user request) and the no-docs guard holds.
82
+ * Returns null when the plan has no pending work.
83
+ */
84
+ export function nextTodoPrompt(todos) {
85
+ const p = pendingTodos(todos);
86
+ if (!p.length)
87
+ return null;
88
+ const next = p.find((t) => t.status === 'in_progress') ?? p[0];
89
+ const content = (next?.content ?? '').trim();
90
+ if (!content)
91
+ return null;
92
+ return `IMPORTANT: Do NOT create docs/markdown/summaries. Continue the plan — the next task is: ${content}. Complete it, then update the todo list (mark it completed and the next one in_progress).`;
93
+ }
94
+ //# sourceMappingURL=turnGovernor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"turnGovernor.js","sourceRoot":"","sources":["../../src/core/turnGovernor.ts"],"names":[],"mappings":"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"}