@dreb/coding-agent 2.67.0 → 2.68.1
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/README.md +1 -1
- package/dist/core/agent-session.d.ts +1 -0
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/daily-cost-tracker.d.ts +58 -7
- package/dist/core/daily-cost-tracker.d.ts.map +1 -1
- package/dist/core/daily-cost-tracker.js +146 -88
- package/dist/core/daily-cost-tracker.js.map +1 -1
- package/dist/core/footer-data-provider.d.ts +11 -3
- package/dist/core/footer-data-provider.d.ts.map +1 -1
- package/dist/core/footer-data-provider.js +19 -3
- package/dist/core/footer-data-provider.js.map +1 -1
- package/dist/core/session-manager.d.ts +14 -0
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +182 -88
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/subagent-session-cost-tracker.d.ts +22 -0
- package/dist/core/subagent-session-cost-tracker.d.ts.map +1 -0
- package/dist/core/subagent-session-cost-tracker.js +94 -0
- package/dist/core/subagent-session-cost-tracker.js.map +1 -0
- package/dist/modes/interactive/components/footer.d.ts.map +1 -1
- package/dist/modes/interactive/components/footer.js +8 -2
- package/dist/modes/interactive/components/footer.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +7 -2
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-client.d.ts +7 -2
- package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-client.js +3 -2
- package/dist/modes/rpc/rpc-client.js.map +1 -1
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-mode.js +29 -6
- package/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-types.d.ts +2 -0
- package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-types.js.map +1 -1
- package/docs/dashboard.md +21 -15
- package/docs/rpc.md +8 -2
- package/docs/settings.md +1 -1
- package/package.json +1 -1
|
@@ -15,13 +15,14 @@ import { basename } from "node:path";
|
|
|
15
15
|
import { isValidThinkingLevel, VALID_THINKING_LEVELS } from "../../cli/args.js";
|
|
16
16
|
import { VERSION } from "../../config.js";
|
|
17
17
|
import { canonicalizeTrustedRoots, matchContextTrust, validateTrustedContextFolder, validateTrustedContextFolders, } from "../../core/context-trust.js";
|
|
18
|
-
import { DailyCostTracker } from "../../core/daily-cost-tracker.js";
|
|
18
|
+
import { DailyCostTracker, dailyCostSourcesForSession, } from "../../core/daily-cost-tracker.js";
|
|
19
19
|
import { acquireDreamLock, buildDreamPrompt, cleanupDreamTmpDirs, parseDreamCommand, performDreamBackup, pruneOldBackups, resolveDreamContext, validateArchivePath, validateMemoryLinks, } from "../../core/dream.js";
|
|
20
20
|
import { getGitBranch } from "../../core/git-branch.js";
|
|
21
21
|
import { parseModelPattern, resolveModelScopePatterns } from "../../core/model-resolver.js";
|
|
22
22
|
import { takeOverStdout, writeRawStdout } from "../../core/output-guard.js";
|
|
23
23
|
import { SessionManager } from "../../core/session-manager.js";
|
|
24
24
|
import { BUILTIN_SLASH_COMMANDS, parseBuiltinSlashCommand } from "../../core/slash-commands.js";
|
|
25
|
+
import { SubagentSessionCostTracker } from "../../core/subagent-session-cost-tracker.js";
|
|
25
26
|
import { TabTitleGenerator } from "../../core/tab-title.js";
|
|
26
27
|
import { validateThinkingLevelForModel } from "../../core/thinking.js";
|
|
27
28
|
import { resolveToCwd } from "../../core/tools/path-utils.js";
|
|
@@ -1446,6 +1447,9 @@ export async function runRpcMode(session, modelFallbackMessage) {
|
|
|
1446
1447
|
let shutdownRequested = false;
|
|
1447
1448
|
let dailyCostTracker;
|
|
1448
1449
|
let dailyCostTrackerPrimed = false;
|
|
1450
|
+
let subagentSessionCostTracker;
|
|
1451
|
+
let subagentCostGeneration = 0;
|
|
1452
|
+
let refreshedSubagentCostGeneration = -1;
|
|
1449
1453
|
// Extension UI context uses the RPC protocol; built by a module-scope
|
|
1450
1454
|
// factory so the dialog round trip is unit-testable (see createRpcExtensionUIContext).
|
|
1451
1455
|
const createExtensionUIContext = () => createRpcExtensionUIContext(output, pendingExtensionRequests, () => void session.abort());
|
|
@@ -1487,13 +1491,13 @@ export async function runRpcMode(session, modelFallbackMessage) {
|
|
|
1487
1491
|
output({ type: "extension_error", extensionPath: err.extensionPath, event: err.event, error: err.error });
|
|
1488
1492
|
},
|
|
1489
1493
|
});
|
|
1490
|
-
const
|
|
1491
|
-
dailyCostTracker ??= new DailyCostTracker();
|
|
1494
|
+
const getDailyCostBreakdown = async () => {
|
|
1495
|
+
dailyCostTracker ??= new DailyCostTracker(dailyCostSourcesForSession(session));
|
|
1492
1496
|
if (!dailyCostTrackerPrimed) {
|
|
1493
1497
|
await dailyCostTracker.refresh();
|
|
1494
1498
|
dailyCostTrackerPrimed = true;
|
|
1495
1499
|
}
|
|
1496
|
-
return dailyCostTracker.
|
|
1500
|
+
return dailyCostTracker.getDailyCostBreakdown();
|
|
1497
1501
|
};
|
|
1498
1502
|
const cwd = session.cwd;
|
|
1499
1503
|
const tabTitleSettings = session.settingsManager.getTabTitleSettings();
|
|
@@ -1533,6 +1537,10 @@ export async function runRpcMode(session, modelFallbackMessage) {
|
|
|
1533
1537
|
const dashboardEventProjector = session.uiType === "dashboard" ? createDashboardRpcEventProjector() : undefined;
|
|
1534
1538
|
// Output all agent events as JSON
|
|
1535
1539
|
session.subscribe((event) => {
|
|
1540
|
+
if (event.type === "background_agent_end") {
|
|
1541
|
+
// Force the next stats request to await a fresh per-session cost scan.
|
|
1542
|
+
subagentCostGeneration++;
|
|
1543
|
+
}
|
|
1536
1544
|
if (tabTitleGenerator && !session.sessionName) {
|
|
1537
1545
|
if (event.type === "tool_execution_end") {
|
|
1538
1546
|
tabTitleGenerator.onToolEnd({
|
|
@@ -1650,7 +1658,12 @@ export async function runRpcMode(session, modelFallbackMessage) {
|
|
|
1650
1658
|
return success(id, "get_git_branch", { branch: getGitBranch(session.cwd) });
|
|
1651
1659
|
}
|
|
1652
1660
|
case "get_daily_cost": {
|
|
1653
|
-
|
|
1661
|
+
const breakdown = await getDailyCostBreakdown();
|
|
1662
|
+
return success(id, "get_daily_cost", {
|
|
1663
|
+
cost: breakdown.total,
|
|
1664
|
+
main: breakdown.main,
|
|
1665
|
+
subagent: breakdown.subagent,
|
|
1666
|
+
});
|
|
1654
1667
|
}
|
|
1655
1668
|
// =================================================================
|
|
1656
1669
|
// Model
|
|
@@ -1791,8 +1804,17 @@ export async function runRpcMode(session, modelFallbackMessage) {
|
|
|
1791
1804
|
// Session
|
|
1792
1805
|
// =================================================================
|
|
1793
1806
|
case "get_session_stats": {
|
|
1807
|
+
subagentSessionCostTracker ??= new SubagentSessionCostTracker();
|
|
1808
|
+
if (refreshedSubagentCostGeneration !== subagentCostGeneration) {
|
|
1809
|
+
const refreshGeneration = subagentCostGeneration;
|
|
1810
|
+
await subagentSessionCostTracker.refresh();
|
|
1811
|
+
refreshedSubagentCostGeneration = refreshGeneration;
|
|
1812
|
+
}
|
|
1794
1813
|
const stats = session.getSessionStats();
|
|
1795
|
-
return success(id, "get_session_stats",
|
|
1814
|
+
return success(id, "get_session_stats", {
|
|
1815
|
+
...stats,
|
|
1816
|
+
subagentCost: subagentSessionCostTracker.getCost(),
|
|
1817
|
+
});
|
|
1796
1818
|
}
|
|
1797
1819
|
case "get_performance_stats": {
|
|
1798
1820
|
return success(id, "get_performance_stats", getPerformanceStatsData(session));
|
|
@@ -1968,6 +1990,7 @@ export async function runRpcMode(session, modelFallbackMessage) {
|
|
|
1968
1990
|
await currentRunner.emit({ type: "session_shutdown" });
|
|
1969
1991
|
}
|
|
1970
1992
|
dailyCostTracker?.dispose();
|
|
1993
|
+
subagentSessionCostTracker?.dispose();
|
|
1971
1994
|
detachInput();
|
|
1972
1995
|
process.stdin.pause();
|
|
1973
1996
|
process.exit(0);
|