@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.
- package/dist/capabilities/todoCapability.js +2 -2
- package/dist/capabilities/todoCapability.js.map +1 -1
- package/dist/config.js +1 -1
- package/dist/contracts/v1/agent.d.ts +12 -2
- package/dist/contracts/v1/agent.d.ts.map +1 -1
- package/dist/core/adversarialCorrection.d.ts +22 -0
- package/dist/core/adversarialCorrection.d.ts.map +1 -0
- package/dist/core/adversarialCorrection.js +25 -0
- package/dist/core/adversarialCorrection.js.map +1 -0
- package/dist/core/agent.d.ts +2 -0
- package/dist/core/agent.d.ts.map +1 -1
- package/dist/core/agent.js +11 -45
- package/dist/core/agent.js.map +1 -1
- package/dist/core/contextManager.d.ts.map +1 -1
- package/dist/core/contextManager.js +5 -2
- package/dist/core/contextManager.js.map +1 -1
- package/dist/core/errorClassification.d.ts +44 -0
- package/dist/core/errorClassification.d.ts.map +1 -0
- package/dist/core/errorClassification.js +333 -0
- package/dist/core/errorClassification.js.map +1 -0
- package/dist/core/failureRegistry.d.ts +30 -0
- package/dist/core/failureRegistry.d.ts.map +1 -0
- package/dist/core/failureRegistry.js +74 -0
- package/dist/core/failureRegistry.js.map +1 -0
- package/dist/core/hitl.d.ts.map +1 -1
- package/dist/core/hitl.js +8 -0
- package/dist/core/hitl.js.map +1 -1
- package/dist/core/hostedAuth.d.ts +88 -0
- package/dist/core/hostedAuth.d.ts.map +1 -0
- package/dist/core/hostedAuth.js +219 -0
- package/dist/core/hostedAuth.js.map +1 -0
- package/dist/core/quota.d.ts +61 -0
- package/dist/core/quota.d.ts.map +1 -0
- package/dist/core/quota.js +104 -0
- package/dist/core/quota.js.map +1 -0
- package/dist/core/quotaErrors.d.ts.map +1 -1
- package/dist/core/quotaErrors.js +3 -5
- package/dist/core/quotaErrors.js.map +1 -1
- package/dist/core/resultVerification.d.ts +3 -2
- package/dist/core/resultVerification.d.ts.map +1 -1
- package/dist/core/resultVerification.js +3 -2
- package/dist/core/resultVerification.js.map +1 -1
- package/dist/core/secretStore.d.ts +11 -0
- package/dist/core/secretStore.d.ts.map +1 -1
- package/dist/core/secretStore.js +25 -0
- package/dist/core/secretStore.js.map +1 -1
- package/dist/core/slashCommands.d.ts.map +1 -1
- package/dist/core/slashCommands.js +4 -0
- package/dist/core/slashCommands.js.map +1 -1
- package/dist/core/thinkingVerbs.d.ts +31 -0
- package/dist/core/thinkingVerbs.d.ts.map +1 -0
- package/dist/core/thinkingVerbs.js +58 -0
- package/dist/core/thinkingVerbs.js.map +1 -0
- package/dist/core/turnGovernor.d.ts +63 -0
- package/dist/core/turnGovernor.d.ts.map +1 -0
- package/dist/core/turnGovernor.js +94 -0
- package/dist/core/turnGovernor.js.map +1 -0
- package/dist/core/updateChecker.d.ts.map +1 -1
- package/dist/core/updateChecker.js +5 -1
- package/dist/core/updateChecker.js.map +1 -1
- package/dist/core/usage.d.ts +28 -0
- package/dist/core/usage.d.ts.map +1 -0
- package/dist/core/usage.js +77 -0
- package/dist/core/usage.js.map +1 -0
- package/dist/headless/interactiveShell.d.ts +6 -0
- package/dist/headless/interactiveShell.d.ts.map +1 -1
- package/dist/headless/interactiveShell.js +262 -42
- package/dist/headless/interactiveShell.js.map +1 -1
- package/dist/plugins/providers/deepseek/index.d.ts.map +1 -1
- package/dist/plugins/providers/deepseek/index.js +8 -5
- package/dist/plugins/providers/deepseek/index.js.map +1 -1
- package/dist/providers/baseProvider.d.ts +5 -13
- package/dist/providers/baseProvider.d.ts.map +1 -1
- package/dist/providers/baseProvider.js +12 -66
- package/dist/providers/baseProvider.js.map +1 -1
- package/dist/providers/openaiChatCompletionsProvider.d.ts.map +1 -1
- package/dist/providers/openaiChatCompletionsProvider.js +27 -76
- package/dist/providers/openaiChatCompletionsProvider.js.map +1 -1
- package/dist/providers/resilientProvider.d.ts +2 -9
- package/dist/providers/resilientProvider.d.ts.map +1 -1
- package/dist/providers/resilientProvider.js +13 -199
- package/dist/providers/resilientProvider.js.map +1 -1
- package/dist/runtime/agentController.d.ts.map +1 -1
- package/dist/runtime/agentController.js +7 -0
- package/dist/runtime/agentController.js.map +1 -1
- package/dist/shell/toolPresentation.d.ts +7 -0
- package/dist/shell/toolPresentation.d.ts.map +1 -1
- package/dist/shell/toolPresentation.js +78 -4
- package/dist/shell/toolPresentation.js.map +1 -1
- package/dist/tools/bashTools.d.ts.map +1 -1
- package/dist/tools/bashTools.js +9 -3
- package/dist/tools/bashTools.js.map +1 -1
- package/dist/tools/grepTools.d.ts.map +1 -1
- package/dist/tools/grepTools.js +10 -1
- package/dist/tools/grepTools.js.map +1 -1
- package/dist/tools/memoryTools.d.ts +7 -0
- package/dist/tools/memoryTools.d.ts.map +1 -1
- package/dist/tools/memoryTools.js +17 -0
- package/dist/tools/memoryTools.js.map +1 -1
- package/dist/tools/searchTools.d.ts.map +1 -1
- package/dist/tools/searchTools.js +5 -4
- package/dist/tools/searchTools.js.map +1 -1
- package/dist/tools/todoTools.d.ts +3 -4
- package/dist/tools/todoTools.d.ts.map +1 -1
- package/dist/tools/todoTools.js +23 -4
- package/dist/tools/todoTools.js.map +1 -1
- package/dist/tools/webTools.d.ts.map +1 -1
- package/dist/tools/webTools.js +3 -1
- package/dist/tools/webTools.js.map +1 -1
- package/dist/ui/ink/ChatStatic.d.ts.map +1 -1
- package/dist/ui/ink/ChatStatic.js +21 -5
- package/dist/ui/ink/ChatStatic.js.map +1 -1
- package/dist/ui/ink/InkPromptController.d.ts +5 -0
- package/dist/ui/ink/InkPromptController.d.ts.map +1 -1
- package/dist/ui/ink/InkPromptController.js +16 -6
- package/dist/ui/ink/InkPromptController.js.map +1 -1
- package/dist/ui/ink/Prompt.d.ts +6 -0
- package/dist/ui/ink/Prompt.d.ts.map +1 -1
- package/dist/ui/ink/Prompt.js +69 -10
- package/dist/ui/ink/Prompt.js.map +1 -1
- package/dist/ui/ink/StatusLine.d.ts +6 -0
- package/dist/ui/ink/StatusLine.d.ts.map +1 -1
- package/dist/ui/ink/StatusLine.js +17 -3
- package/dist/ui/ink/StatusLine.js.map +1 -1
- package/dist/ui/ink/pasteBuffer.d.ts +44 -0
- package/dist/ui/ink/pasteBuffer.d.ts.map +1 -0
- package/dist/ui/ink/pasteBuffer.js +73 -0
- package/dist/ui/ink/pasteBuffer.js.map +1 -0
- package/package.json +1 -1
- package/dist/core/index.d.ts +0 -7
- package/dist/core/index.d.ts.map +0 -1
- package/dist/core/index.js +0 -7
- package/dist/core/index.js.map +0 -1
- package/dist/core/providerKeys.d.ts +0 -20
- package/dist/core/providerKeys.d.ts.map +0 -1
- package/dist/core/providerKeys.js +0 -40
- package/dist/core/providerKeys.js.map +0 -1
- package/dist/plugins/index.d.ts +0 -49
- package/dist/plugins/index.d.ts.map +0 -1
- package/dist/plugins/index.js +0 -104
- package/dist/plugins/index.js.map +0 -1
- package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.d.ts +0 -10
- package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.js +0 -110
- package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.js.map +0 -1
- package/dist/plugins/tools/bash/localBashPlugin.d.ts +0 -3
- package/dist/plugins/tools/bash/localBashPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/bash/localBashPlugin.js +0 -14
- package/dist/plugins/tools/bash/localBashPlugin.js.map +0 -1
- package/dist/plugins/tools/edit/editPlugin.d.ts +0 -9
- package/dist/plugins/tools/edit/editPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/edit/editPlugin.js +0 -15
- package/dist/plugins/tools/edit/editPlugin.js.map +0 -1
- package/dist/plugins/tools/enhancedGit/enhancedGitPlugin.d.ts +0 -3
- package/dist/plugins/tools/enhancedGit/enhancedGitPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/enhancedGit/enhancedGitPlugin.js +0 -9
- package/dist/plugins/tools/enhancedGit/enhancedGitPlugin.js.map +0 -1
- package/dist/plugins/tools/filesystem/localFilesystemPlugin.d.ts +0 -3
- package/dist/plugins/tools/filesystem/localFilesystemPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/filesystem/localFilesystemPlugin.js +0 -14
- package/dist/plugins/tools/filesystem/localFilesystemPlugin.js.map +0 -1
- package/dist/plugins/tools/gitHistory/gitHistoryPlugin.d.ts +0 -3
- package/dist/plugins/tools/gitHistory/gitHistoryPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/gitHistory/gitHistoryPlugin.js +0 -9
- package/dist/plugins/tools/gitHistory/gitHistoryPlugin.js.map +0 -1
- package/dist/plugins/tools/index.d.ts +0 -3
- package/dist/plugins/tools/index.d.ts.map +0 -1
- package/dist/plugins/tools/index.js +0 -3
- package/dist/plugins/tools/index.js.map +0 -1
- package/dist/plugins/tools/integrity/integrityPlugin.d.ts +0 -3
- package/dist/plugins/tools/integrity/integrityPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/integrity/integrityPlugin.js +0 -31
- package/dist/plugins/tools/integrity/integrityPlugin.js.map +0 -1
- package/dist/plugins/tools/mcp/mcpPlugin.d.ts +0 -3
- package/dist/plugins/tools/mcp/mcpPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/mcp/mcpPlugin.js +0 -27
- package/dist/plugins/tools/mcp/mcpPlugin.js.map +0 -1
- package/dist/plugins/tools/nodeDefaults.d.ts +0 -13
- package/dist/plugins/tools/nodeDefaults.d.ts.map +0 -1
- package/dist/plugins/tools/nodeDefaults.js +0 -33
- package/dist/plugins/tools/nodeDefaults.js.map +0 -1
- package/dist/plugins/tools/orchestration/orchestrationPlugin.d.ts +0 -3
- package/dist/plugins/tools/orchestration/orchestrationPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/orchestration/orchestrationPlugin.js +0 -340
- package/dist/plugins/tools/orchestration/orchestrationPlugin.js.map +0 -1
- package/dist/plugins/tools/registry.d.ts +0 -22
- package/dist/plugins/tools/registry.d.ts.map +0 -1
- package/dist/plugins/tools/registry.js +0 -58
- package/dist/plugins/tools/registry.js.map +0 -1
- package/dist/plugins/tools/search/localSearchPlugin.d.ts +0 -3
- package/dist/plugins/tools/search/localSearchPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/search/localSearchPlugin.js +0 -14
- package/dist/plugins/tools/search/localSearchPlugin.js.map +0 -1
- package/dist/plugins/tools/skills/skillPlugin.d.ts +0 -3
- package/dist/plugins/tools/skills/skillPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/skills/skillPlugin.js +0 -27
- package/dist/plugins/tools/skills/skillPlugin.js.map +0 -1
- package/dist/plugins/tools/todo/todoPlugin.d.ts +0 -3
- package/dist/plugins/tools/todo/todoPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/todo/todoPlugin.js +0 -10
- package/dist/plugins/tools/todo/todoPlugin.js.map +0 -1
- package/dist/runtime/agentWorkerPool.d.ts +0 -167
- package/dist/runtime/agentWorkerPool.d.ts.map +0 -1
- package/dist/runtime/agentWorkerPool.js +0 -435
- package/dist/runtime/agentWorkerPool.js.map +0 -1
- package/dist/shell/autoExecutor.d.ts +0 -70
- package/dist/shell/autoExecutor.d.ts.map +0 -1
- package/dist/shell/autoExecutor.js +0 -320
- package/dist/shell/autoExecutor.js.map +0 -1
- package/dist/shell/commandRegistry.d.ts +0 -122
- package/dist/shell/commandRegistry.d.ts.map +0 -1
- package/dist/shell/commandRegistry.js +0 -355
- package/dist/shell/commandRegistry.js.map +0 -1
- package/dist/shell/composableMessage.d.ts +0 -178
- package/dist/shell/composableMessage.d.ts.map +0 -1
- package/dist/shell/composableMessage.js +0 -384
- package/dist/shell/composableMessage.js.map +0 -1
- package/dist/shell/vimMode.d.ts +0 -66
- package/dist/shell/vimMode.d.ts.map +0 -1
- package/dist/shell/vimMode.js +0 -435
- package/dist/shell/vimMode.js.map +0 -1
- package/dist/tools/localExplore.d.ts +0 -38
- package/dist/tools/localExplore.d.ts.map +0 -1
- package/dist/tools/localExplore.js +0 -30
- 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,
|
|
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"}
|
package/dist/core/quotaErrors.js
CHANGED
|
@@ -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
|
|
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
|
|
21
|
-
' •
|
|
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,
|
|
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
|
|
3
|
-
*
|
|
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
|
|
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
|
|
3
|
-
*
|
|
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":"AAAA
|
|
1
|
+
{"version":3,"file":"resultVerification.js","sourceRoot":"","sources":["../../src/core/resultVerification.ts"],"names":[],"mappings":"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"}
|
|
@@ -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"}
|
package/dist/core/secretStore.js
CHANGED
|
@@ -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,
|
|
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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"}
|