opencastle 0.32.3 → 0.32.4
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/cli/convoy/engine.d.ts +1 -0
- package/dist/cli/convoy/engine.d.ts.map +1 -1
- package/dist/cli/convoy/engine.js +17 -2
- package/dist/cli/convoy/engine.js.map +1 -1
- package/dist/cli/convoy/pipeline.d.ts +1 -0
- package/dist/cli/convoy/pipeline.d.ts.map +1 -1
- package/dist/cli/convoy/pricing.d.ts +3 -0
- package/dist/cli/convoy/pricing.d.ts.map +1 -0
- package/dist/cli/convoy/pricing.js +52 -0
- package/dist/cli/convoy/pricing.js.map +1 -0
- package/dist/cli/convoy/pricing.test.d.ts +2 -0
- package/dist/cli/convoy/pricing.test.d.ts.map +1 -0
- package/dist/cli/convoy/pricing.test.js +63 -0
- package/dist/cli/convoy/pricing.test.js.map +1 -0
- package/dist/cli/convoy/store.d.ts +1 -1
- package/dist/cli/convoy/store.d.ts.map +1 -1
- package/dist/cli/convoy/store.js +1 -1
- package/dist/cli/convoy/store.js.map +1 -1
- package/dist/cli/run/adapters/opencode.js +1 -1
- package/dist/cli/run/adapters/opencode.js.map +1 -1
- package/dist/cli/run.d.ts.map +1 -1
- package/dist/cli/run.js +10 -2
- package/dist/cli/run.js.map +1 -1
- package/package.json +1 -1
- package/src/cli/convoy/engine.ts +18 -3
- package/src/cli/convoy/pipeline.ts +1 -1
- package/src/cli/convoy/pricing.test.ts +78 -0
- package/src/cli/convoy/pricing.ts +62 -0
- package/src/cli/convoy/store.ts +3 -3
- package/src/cli/run/adapters/opencode.ts +1 -1
- package/src/cli/run.ts +10 -2
- package/src/dashboard/dist/_astro/index.wyN9vmjZ.css +1 -0
- package/src/dashboard/dist/index.html +4 -4
- package/src/dashboard/node_modules/.vite/deps/_metadata.json +6 -6
- package/src/dashboard/src/pages/index.astro +5 -3
- package/src/dashboard/src/styles/dashboard.css +6 -0
- package/src/dashboard/dist/_astro/index.D6quLrA6.css +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/cli/convoy/engine.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAQ,QAAQ,EAAE,YAAY,EAAiB,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAChG,OAAO,EAA+C,KAAK,WAAW,EAAE,MAAM,YAAY,CAAA;AAG1F,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,eAAe,CAAA;AAC3E,OAAO,EAAwC,KAAK,UAAU,EAAE,MAAM,YAAY,CAAA;AAElF,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAoB,WAAW,EAAE,oBAAoB,EAAwD,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/cli/convoy/engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,6 +27,7 @@ import { checkTDD, formatTDDFailure, DEFAULT_TDD_CONFIG } from './tdd-gate.js';
|
|
|
27
27
|
import { runSkillRefinementCheck } from './skill-refinement.js';
|
|
28
28
|
import { getArtifactDir, extractArtifactRefs } from './artifacts.js';
|
|
29
29
|
import { shouldCompact, parseCompactionSummary, saveCompaction, canCompact, getMaxCompactions, generateCompactionPrompt, buildContinuationPrompt } from './compaction.js';
|
|
30
|
+
import { calculateCost } from './pricing.js';
|
|
30
31
|
const execFile = promisify(execFileCb);
|
|
31
32
|
export class CircuitBreakerManager {
|
|
32
33
|
states = new Map();
|
|
@@ -1976,6 +1977,9 @@ async function runConvoy(convoyId, spec, adapter, store, events, wtManager, merg
|
|
|
1976
1977
|
if (result.usage.total_tokens != null)
|
|
1977
1978
|
usageExtra.total_tokens = result.usage.total_tokens;
|
|
1978
1979
|
}
|
|
1980
|
+
else if (verbose) {
|
|
1981
|
+
process.stdout.write(` ${c.dim('ℹ')} No token usage data returned by adapter ${taskAdapter.name}\n`);
|
|
1982
|
+
}
|
|
1979
1983
|
// ── Context compaction check (Phase 44) ─────────────────────────────
|
|
1980
1984
|
const compactionConfig = spec.defaults?.compaction;
|
|
1981
1985
|
if (compactionConfig?.enabled && usageExtra.total_tokens != null && taskRecord.model) {
|
|
@@ -2149,12 +2153,16 @@ async function runConvoy(convoyId, spec, adapter, store, events, wtManager, merg
|
|
|
2149
2153
|
}
|
|
2150
2154
|
catch { /* non-critical */ }
|
|
2151
2155
|
}
|
|
2156
|
+
const taskModel = taskRecord.model ?? taskAdapter.name;
|
|
2157
|
+
const taskCost = calculateCost(taskModel, usageExtra.prompt_tokens, usageExtra.completion_tokens);
|
|
2152
2158
|
store.withTransaction(() => {
|
|
2153
2159
|
store.updateTaskStatus(taskRecord.id, convoyId, 'done', {
|
|
2154
2160
|
finished_at: finishedAt,
|
|
2155
2161
|
output: result.output,
|
|
2156
2162
|
exit_code: result.exitCode,
|
|
2157
2163
|
...usageExtra,
|
|
2164
|
+
model: taskModel,
|
|
2165
|
+
cost_usd: taskCost,
|
|
2158
2166
|
contract_result: JSON.stringify(contractResult),
|
|
2159
2167
|
});
|
|
2160
2168
|
store.updateWorkerStatus(workerId, 'done', { finished_at: finishedAt });
|
|
@@ -2463,16 +2471,21 @@ async function runConvoy(convoyId, spec, adapter, store, events, wtManager, merg
|
|
|
2463
2471
|
: summary.failed > 0 || summary.timedOut > 0
|
|
2464
2472
|
? 'failed'
|
|
2465
2473
|
: 'done';
|
|
2466
|
-
// Aggregate token usage across completed tasks
|
|
2474
|
+
// Aggregate token usage and cost across completed tasks
|
|
2467
2475
|
let convoyTotalTokens = null;
|
|
2476
|
+
let convoyTotalCost = null;
|
|
2468
2477
|
for (const t of allTasksFinal) {
|
|
2469
2478
|
if (t.total_tokens != null) {
|
|
2470
2479
|
convoyTotalTokens = (convoyTotalTokens ?? 0) + t.total_tokens;
|
|
2471
2480
|
}
|
|
2481
|
+
if (t.cost_usd != null) {
|
|
2482
|
+
convoyTotalCost = (convoyTotalCost ?? 0) + (typeof t.cost_usd === 'number' ? t.cost_usd : parseFloat(t.cost_usd));
|
|
2483
|
+
}
|
|
2472
2484
|
}
|
|
2473
2485
|
store.updateConvoyStatus(convoyId, finalStatus, {
|
|
2474
2486
|
finished_at: new Date().toISOString(),
|
|
2475
2487
|
total_tokens: convoyTotalTokens,
|
|
2488
|
+
total_cost_usd: convoyTotalCost,
|
|
2476
2489
|
});
|
|
2477
2490
|
if (finalStatus === 'done') {
|
|
2478
2491
|
events.emit('convoy_finished', { status: 'done' }, { convoy_id: convoyId });
|
|
@@ -2498,7 +2511,9 @@ async function runConvoy(convoyId, spec, adapter, store, events, wtManager, merg
|
|
|
2498
2511
|
summary,
|
|
2499
2512
|
duration: formatDuration(Date.now() - startTime),
|
|
2500
2513
|
gateResults: spec.gates && spec.gates.length > 0 ? gateResults : undefined,
|
|
2501
|
-
cost: convoyTotalTokens != null
|
|
2514
|
+
cost: convoyTotalTokens != null || convoyTotalCost != null
|
|
2515
|
+
? { total_tokens: convoyTotalTokens ?? 0, total_cost_usd: convoyTotalCost ?? undefined }
|
|
2516
|
+
: undefined,
|
|
2502
2517
|
};
|
|
2503
2518
|
}
|
|
2504
2519
|
// ── Factory ───────────────────────────────────────────────────────────────────
|