paracosm 0.4.145 → 0.4.147
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/src/runtime/citations-catalog.d.ts +34 -0
- package/dist/src/runtime/citations-catalog.d.ts.map +1 -0
- package/dist/src/runtime/citations-catalog.js +52 -0
- package/dist/src/runtime/citations-catalog.js.map +1 -0
- package/dist/src/runtime/cost-tracker.d.ts +87 -0
- package/dist/src/runtime/cost-tracker.d.ts.map +1 -0
- package/dist/src/runtime/cost-tracker.js +119 -0
- package/dist/src/runtime/cost-tracker.js.map +1 -0
- package/dist/src/runtime/orchestrator.d.ts +2 -41
- package/dist/src/runtime/orchestrator.d.ts.map +1 -1
- package/dist/src/runtime/orchestrator.js +34 -225
- package/dist/src/runtime/orchestrator.js.map +1 -1
- package/dist/src/runtime/tool-ledger.d.ts +100 -0
- package/dist/src/runtime/tool-ledger.d.ts.map +1 -0
- package/dist/src/runtime/tool-ledger.js +111 -0
- package/dist/src/runtime/tool-ledger.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Flat, deduplicated citation catalog builder.
|
|
3
|
+
*
|
|
4
|
+
* Every department report in a run carries its own citations. The
|
|
5
|
+
* catalog merges them by URL (falling back to text when no URL is
|
|
6
|
+
* present) and tracks which departments + turns referenced each
|
|
7
|
+
* citation, so the References section in reports can show
|
|
8
|
+
* provenance across the whole run.
|
|
9
|
+
*
|
|
10
|
+
* Pure — takes the per-turn report list, returns a serialisable array.
|
|
11
|
+
*
|
|
12
|
+
* @module paracosm/runtime/citations-catalog
|
|
13
|
+
*/
|
|
14
|
+
import type { DepartmentReport } from './contracts.js';
|
|
15
|
+
/** One row in the run's flat citation catalog. */
|
|
16
|
+
export interface CitationCatalogEntry {
|
|
17
|
+
text: string;
|
|
18
|
+
url: string;
|
|
19
|
+
doi?: string;
|
|
20
|
+
departments: string[];
|
|
21
|
+
turns: number[];
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Build the canonical citation catalog from a run's department reports.
|
|
25
|
+
* Dedup key is URL when present, else the citation text. DOI is
|
|
26
|
+
* preserved from whichever occurrence first supplies it. Turn numbers
|
|
27
|
+
* are sorted ascending in the output so consumers render a clean
|
|
28
|
+
* chronological trail.
|
|
29
|
+
*/
|
|
30
|
+
export declare function buildCitationCatalog(allDepartmentReports: ReadonlyArray<{
|
|
31
|
+
turn: number;
|
|
32
|
+
report: DepartmentReport;
|
|
33
|
+
}>): CitationCatalogEntry[];
|
|
34
|
+
//# sourceMappingURL=citations-catalog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"citations-catalog.d.ts","sourceRoot":"","sources":["../../../src/runtime/citations-catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,kDAAkD;AAClD,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,oBAAoB,EAAE,aAAa,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,gBAAgB,CAAA;CAAE,CAAC,GAC9E,oBAAoB,EAAE,CAiCxB"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Flat, deduplicated citation catalog builder.
|
|
3
|
+
*
|
|
4
|
+
* Every department report in a run carries its own citations. The
|
|
5
|
+
* catalog merges them by URL (falling back to text when no URL is
|
|
6
|
+
* present) and tracks which departments + turns referenced each
|
|
7
|
+
* citation, so the References section in reports can show
|
|
8
|
+
* provenance across the whole run.
|
|
9
|
+
*
|
|
10
|
+
* Pure — takes the per-turn report list, returns a serialisable array.
|
|
11
|
+
*
|
|
12
|
+
* @module paracosm/runtime/citations-catalog
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Build the canonical citation catalog from a run's department reports.
|
|
16
|
+
* Dedup key is URL when present, else the citation text. DOI is
|
|
17
|
+
* preserved from whichever occurrence first supplies it. Turn numbers
|
|
18
|
+
* are sorted ascending in the output so consumers render a clean
|
|
19
|
+
* chronological trail.
|
|
20
|
+
*/
|
|
21
|
+
export function buildCitationCatalog(allDepartmentReports) {
|
|
22
|
+
const byKey = new Map();
|
|
23
|
+
for (const { turn, report } of allDepartmentReports) {
|
|
24
|
+
for (const c of report.citations) {
|
|
25
|
+
const key = (c.url || '').trim() || `text:${(c.text || '').trim()}`;
|
|
26
|
+
if (!key)
|
|
27
|
+
continue;
|
|
28
|
+
let entry = byKey.get(key);
|
|
29
|
+
if (!entry) {
|
|
30
|
+
entry = {
|
|
31
|
+
text: c.text || c.url || '',
|
|
32
|
+
url: c.url || '',
|
|
33
|
+
doi: c.doi,
|
|
34
|
+
departments: new Set(),
|
|
35
|
+
turns: new Set(),
|
|
36
|
+
};
|
|
37
|
+
byKey.set(key, entry);
|
|
38
|
+
}
|
|
39
|
+
if (report.department)
|
|
40
|
+
entry.departments.add(report.department);
|
|
41
|
+
entry.turns.add(turn);
|
|
42
|
+
if (!entry.doi && c.doi)
|
|
43
|
+
entry.doi = c.doi;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return [...byKey.values()].map(e => ({
|
|
47
|
+
...e,
|
|
48
|
+
departments: [...e.departments],
|
|
49
|
+
turns: [...e.turns].sort((a, b) => a - b),
|
|
50
|
+
}));
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=citations-catalog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"citations-catalog.js","sourceRoot":"","sources":["../../../src/runtime/citations-catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAaH;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAClC,oBAA+E;IAE/E,MAAM,KAAK,GAAG,IAAI,GAAG,EAMjB,CAAC;IACL,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,oBAAoB,EAAE,CAAC;QACpD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACjC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YACpE,IAAI,CAAC,GAAG;gBAAE,SAAS;YACnB,IAAI,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC3B,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,KAAK,GAAG;oBACN,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE;oBAC3B,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE;oBAChB,GAAG,EAAE,CAAC,CAAC,GAAG;oBACV,WAAW,EAAE,IAAI,GAAG,EAAE;oBACtB,KAAK,EAAE,IAAI,GAAG,EAAE;iBACjB,CAAC;gBACF,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACxB,CAAC;YACD,IAAI,MAAM,CAAC,UAAU;gBAAE,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAChE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG;gBAAE,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;QAC7C,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACnC,GAAG,CAAC;QACJ,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC;QAC/B,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;KAC1C,CAAC,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-run cost + token telemetry with per-stage buckets.
|
|
3
|
+
*
|
|
4
|
+
* Extracted from orchestrator.ts so the trackUsage / cache-savings math
|
|
5
|
+
* has one home, testable in isolation from the turn loop. The tracker
|
|
6
|
+
* is stateful (totals accumulate across every tagged LLM call) and
|
|
7
|
+
* returns a buildCostPayload() helper the orchestrator invokes before
|
|
8
|
+
* every SSE emit so the dashboard breakdown modal reflects the latest
|
|
9
|
+
* per-stage split + cache hit rate.
|
|
10
|
+
*
|
|
11
|
+
* Pricing lookup comes from pricing.ts so MODEL_PRICING has one home.
|
|
12
|
+
*
|
|
13
|
+
* @module paracosm/runtime/cost-tracker
|
|
14
|
+
*/
|
|
15
|
+
import type { SimulationModelConfig } from '../engine/types.js';
|
|
16
|
+
import { type CostSite } from './pricing.js';
|
|
17
|
+
/** Token + cost rollup for a single pipeline stage across a run. */
|
|
18
|
+
export interface CostBucket {
|
|
19
|
+
totalTokens: number;
|
|
20
|
+
totalCostUSD: number;
|
|
21
|
+
calls: number;
|
|
22
|
+
/** Cache-read tokens billed at 0.1× input rate (prompt-cache hit). */
|
|
23
|
+
cacheReadTokens: number;
|
|
24
|
+
/** Cache-write tokens billed at 1.25× input rate (new cache entry). */
|
|
25
|
+
cacheCreationTokens: number;
|
|
26
|
+
}
|
|
27
|
+
/** Shape of the `usage` field providers return on each LLM call. */
|
|
28
|
+
export interface CallUsage {
|
|
29
|
+
totalTokens?: number;
|
|
30
|
+
promptTokens?: number;
|
|
31
|
+
completionTokens?: number;
|
|
32
|
+
costUSD?: number;
|
|
33
|
+
cacheReadTokens?: number;
|
|
34
|
+
cacheCreationTokens?: number;
|
|
35
|
+
}
|
|
36
|
+
/** Per-stage entry on the breakdown payload attached to every SSE emit. */
|
|
37
|
+
export interface CostBreakdownEntry {
|
|
38
|
+
totalTokens: number;
|
|
39
|
+
totalCostUSD: number;
|
|
40
|
+
calls: number;
|
|
41
|
+
cacheReadTokens?: number;
|
|
42
|
+
cacheCreationTokens?: number;
|
|
43
|
+
/** USD saved vs no-caching run. Negative during turn 1, positive turn 2+. */
|
|
44
|
+
cacheSavingsUSD?: number;
|
|
45
|
+
}
|
|
46
|
+
/** Aggregate cost payload embedded on every SSE event's `_cost` field. */
|
|
47
|
+
export interface CostPayload {
|
|
48
|
+
totalTokens: number;
|
|
49
|
+
totalCostUSD: number;
|
|
50
|
+
llmCalls: number;
|
|
51
|
+
cacheReadTokens: number;
|
|
52
|
+
cacheCreationTokens: number;
|
|
53
|
+
/** Run-wide USD saved by prompt caching vs a no-cache run. */
|
|
54
|
+
cacheSavingsUSD: number;
|
|
55
|
+
breakdown: Record<string, CostBreakdownEntry>;
|
|
56
|
+
}
|
|
57
|
+
/** Cost tracker bundle returned by createCostTracker. */
|
|
58
|
+
export interface CostTracker {
|
|
59
|
+
/** Record token + cost usage from a single LLM call, tagged by site. */
|
|
60
|
+
trackUsage(result: {
|
|
61
|
+
usage?: CallUsage;
|
|
62
|
+
}, site?: CostSite): void;
|
|
63
|
+
/** Build the _cost payload attached to every SSE event. */
|
|
64
|
+
buildCostPayload(): CostPayload;
|
|
65
|
+
/** Final-run snapshot for the output JSON. */
|
|
66
|
+
finalCost(): {
|
|
67
|
+
totalTokens: number;
|
|
68
|
+
totalCostUSD: number;
|
|
69
|
+
llmCalls: number;
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Create a per-run cost tracker bound to a specific model config.
|
|
74
|
+
*
|
|
75
|
+
* Cache cost math: Anthropic bills cache_read at 0.10× input (saves
|
|
76
|
+
* 0.90×) and cache_creation at 1.25× (costs +0.25×). Net savings per
|
|
77
|
+
* site = (reads × 0.90 − creates × 0.25) × inputPrice. Turn 1 is a
|
|
78
|
+
* net COST because the cache hasn't amortized. Turn 3+ with reads
|
|
79
|
+
* dominating produces substantial savings.
|
|
80
|
+
*
|
|
81
|
+
* Fallback cost estimate (when provider omits costUSD) uses
|
|
82
|
+
* commander-tier pricing as an approximation. Previously this path
|
|
83
|
+
* ignored cache entirely so heavy-caching runs under-reported billed
|
|
84
|
+
* amount by ~10-15%.
|
|
85
|
+
*/
|
|
86
|
+
export declare function createCostTracker(modelConfig: SimulationModelConfig): CostTracker;
|
|
87
|
+
//# sourceMappingURL=cost-tracker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cost-tracker.d.ts","sourceRoot":"","sources":["../../../src/runtime/cost-tracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAGL,KAAK,QAAQ,EACd,MAAM,cAAc,CAAC;AAEtB,oEAAoE;AACpE,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,eAAe,EAAE,MAAM,CAAC;IACxB,uEAAuE;IACvE,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,oEAAoE;AACpE,MAAM,WAAW,SAAS;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,2EAA2E;AAC3E,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,6EAA6E;IAC7E,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,0EAA0E;AAC1E,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,8DAA8D;IAC9D,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;CAC/C;AAED,yDAAyD;AACzD,MAAM,WAAW,WAAW;IAC1B,wEAAwE;IACxE,UAAU,CAAC,MAAM,EAAE;QAAE,KAAK,CAAC,EAAE,SAAS,CAAA;KAAE,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IACjE,2DAA2D;IAC3D,gBAAgB,IAAI,WAAW,CAAC;IAChC,8CAA8C;IAC9C,SAAS,IAAI;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9E;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,qBAAqB,GAAG,WAAW,CA6FjF"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-run cost + token telemetry with per-stage buckets.
|
|
3
|
+
*
|
|
4
|
+
* Extracted from orchestrator.ts so the trackUsage / cache-savings math
|
|
5
|
+
* has one home, testable in isolation from the turn loop. The tracker
|
|
6
|
+
* is stateful (totals accumulate across every tagged LLM call) and
|
|
7
|
+
* returns a buildCostPayload() helper the orchestrator invokes before
|
|
8
|
+
* every SSE emit so the dashboard breakdown modal reflects the latest
|
|
9
|
+
* per-stage split + cache hit rate.
|
|
10
|
+
*
|
|
11
|
+
* Pricing lookup comes from pricing.ts so MODEL_PRICING has one home.
|
|
12
|
+
*
|
|
13
|
+
* @module paracosm/runtime/cost-tracker
|
|
14
|
+
*/
|
|
15
|
+
import { buildPriceForSite, getDefaultPricing, } from './pricing.js';
|
|
16
|
+
/**
|
|
17
|
+
* Create a per-run cost tracker bound to a specific model config.
|
|
18
|
+
*
|
|
19
|
+
* Cache cost math: Anthropic bills cache_read at 0.10× input (saves
|
|
20
|
+
* 0.90×) and cache_creation at 1.25× (costs +0.25×). Net savings per
|
|
21
|
+
* site = (reads × 0.90 − creates × 0.25) × inputPrice. Turn 1 is a
|
|
22
|
+
* net COST because the cache hasn't amortized. Turn 3+ with reads
|
|
23
|
+
* dominating produces substantial savings.
|
|
24
|
+
*
|
|
25
|
+
* Fallback cost estimate (when provider omits costUSD) uses
|
|
26
|
+
* commander-tier pricing as an approximation. Previously this path
|
|
27
|
+
* ignored cache entirely so heavy-caching runs under-reported billed
|
|
28
|
+
* amount by ~10-15%.
|
|
29
|
+
*/
|
|
30
|
+
export function createCostTracker(modelConfig) {
|
|
31
|
+
let totalTokens = 0;
|
|
32
|
+
let totalCostUSD = 0;
|
|
33
|
+
let llmCalls = 0;
|
|
34
|
+
let cacheReadTokens = 0;
|
|
35
|
+
let cacheCreationTokens = 0;
|
|
36
|
+
const defaultPricing = getDefaultPricing(modelConfig);
|
|
37
|
+
const priceForSite = buildPriceForSite(modelConfig);
|
|
38
|
+
const newBucket = () => ({
|
|
39
|
+
totalTokens: 0, totalCostUSD: 0, calls: 0,
|
|
40
|
+
cacheReadTokens: 0, cacheCreationTokens: 0,
|
|
41
|
+
});
|
|
42
|
+
const costBySite = {
|
|
43
|
+
director: newBucket(),
|
|
44
|
+
commander: newBucket(),
|
|
45
|
+
departments: newBucket(),
|
|
46
|
+
judge: newBucket(),
|
|
47
|
+
reactions: newBucket(),
|
|
48
|
+
other: newBucket(),
|
|
49
|
+
};
|
|
50
|
+
const trackUsage = (result, site = 'other') => {
|
|
51
|
+
if (!result?.usage)
|
|
52
|
+
return;
|
|
53
|
+
const tokensThisCall = result.usage.totalTokens ?? 0;
|
|
54
|
+
const callCacheRead = result.usage.cacheReadTokens ?? 0;
|
|
55
|
+
const callCacheCreate = result.usage.cacheCreationTokens ?? 0;
|
|
56
|
+
let costThisCall;
|
|
57
|
+
if (typeof result.usage.costUSD === 'number') {
|
|
58
|
+
costThisCall = result.usage.costUSD;
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
const input = result.usage.promptTokens ?? 0;
|
|
62
|
+
const output = result.usage.completionTokens ?? 0;
|
|
63
|
+
costThisCall =
|
|
64
|
+
(input * defaultPricing.input / 1_000_000)
|
|
65
|
+
+ (output * defaultPricing.output / 1_000_000)
|
|
66
|
+
+ (callCacheRead * defaultPricing.input * 0.10 / 1_000_000)
|
|
67
|
+
+ (callCacheCreate * defaultPricing.input * 1.25 / 1_000_000);
|
|
68
|
+
}
|
|
69
|
+
totalTokens += tokensThisCall;
|
|
70
|
+
totalCostUSD += costThisCall;
|
|
71
|
+
llmCalls++;
|
|
72
|
+
cacheReadTokens += callCacheRead;
|
|
73
|
+
cacheCreationTokens += callCacheCreate;
|
|
74
|
+
const bucket = costBySite[site];
|
|
75
|
+
bucket.totalTokens += tokensThisCall;
|
|
76
|
+
bucket.totalCostUSD += costThisCall;
|
|
77
|
+
bucket.calls++;
|
|
78
|
+
bucket.cacheReadTokens += callCacheRead;
|
|
79
|
+
bucket.cacheCreationTokens += callCacheCreate;
|
|
80
|
+
};
|
|
81
|
+
const buildCostPayload = () => {
|
|
82
|
+
let runCacheSavingsUSD = 0;
|
|
83
|
+
const breakdown = {};
|
|
84
|
+
for (const [k, v] of Object.entries(costBySite)) {
|
|
85
|
+
if (v.calls > 0) {
|
|
86
|
+
const sitePricing = priceForSite(k);
|
|
87
|
+
const siteSavings = ((v.cacheReadTokens * 0.90) - (v.cacheCreationTokens * 0.25))
|
|
88
|
+
* sitePricing.input / 1_000_000;
|
|
89
|
+
runCacheSavingsUSD += siteSavings;
|
|
90
|
+
breakdown[k] = {
|
|
91
|
+
totalTokens: v.totalTokens,
|
|
92
|
+
totalCostUSD: Math.round(v.totalCostUSD * 10000) / 10000,
|
|
93
|
+
calls: v.calls,
|
|
94
|
+
...(v.cacheReadTokens > 0 ? { cacheReadTokens: v.cacheReadTokens } : {}),
|
|
95
|
+
...(v.cacheCreationTokens > 0 ? { cacheCreationTokens: v.cacheCreationTokens } : {}),
|
|
96
|
+
...(Math.abs(siteSavings) >= 0.0001
|
|
97
|
+
? { cacheSavingsUSD: Math.round(siteSavings * 10000) / 10000 }
|
|
98
|
+
: {}),
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
return {
|
|
103
|
+
totalTokens,
|
|
104
|
+
totalCostUSD: Math.round(totalCostUSD * 10000) / 10000,
|
|
105
|
+
llmCalls,
|
|
106
|
+
cacheReadTokens,
|
|
107
|
+
cacheCreationTokens,
|
|
108
|
+
cacheSavingsUSD: Math.round(runCacheSavingsUSD * 10000) / 10000,
|
|
109
|
+
breakdown,
|
|
110
|
+
};
|
|
111
|
+
};
|
|
112
|
+
const finalCost = () => ({
|
|
113
|
+
totalTokens,
|
|
114
|
+
totalCostUSD: Math.round(totalCostUSD * 10000) / 10000,
|
|
115
|
+
llmCalls,
|
|
116
|
+
});
|
|
117
|
+
return { trackUsage, buildCostPayload, finalCost };
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=cost-tracker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cost-tracker.js","sourceRoot":"","sources":["../../../src/runtime/cost-tracker.ts"],"names":[],"mappings":"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"}
|
|
@@ -102,48 +102,9 @@ export declare function runSimulation(leader: LeaderConfig, keyPersonnel: KeyPer
|
|
|
102
102
|
eventIndex: number;
|
|
103
103
|
})[];
|
|
104
104
|
/** Canonical deduplicated forged toolbox (parity with dashboard ToolboxSection). */
|
|
105
|
-
forgedToolbox:
|
|
106
|
-
name: string;
|
|
107
|
-
description: string;
|
|
108
|
-
mode: string;
|
|
109
|
-
firstForgedTurn: number;
|
|
110
|
-
firstForgedDepartment: string;
|
|
111
|
-
firstForgedEventTitle: string;
|
|
112
|
-
departments: string[];
|
|
113
|
-
/** Total uses minus the original forge. */
|
|
114
|
-
reuseCount: number;
|
|
115
|
-
/** Total uses including the original forge. */
|
|
116
|
-
totalUses: number;
|
|
117
|
-
/** How many of those uses were re-forge attempts. */
|
|
118
|
-
reforgeCount: number;
|
|
119
|
-
/** Re-forge attempts that the judge rejected. */
|
|
120
|
-
rejectedReforges: number;
|
|
121
|
-
approved: boolean;
|
|
122
|
-
confidence: number;
|
|
123
|
-
inputSchema: unknown;
|
|
124
|
-
outputSchema: unknown;
|
|
125
|
-
sampleOutput: unknown;
|
|
126
|
-
/** Full audit trail: every invocation with turn, year, dept, output. */
|
|
127
|
-
history: Array<{
|
|
128
|
-
turn: number;
|
|
129
|
-
year: number;
|
|
130
|
-
eventIndex: number;
|
|
131
|
-
eventTitle: string;
|
|
132
|
-
department: string;
|
|
133
|
-
output: string | null;
|
|
134
|
-
isReforge: boolean;
|
|
135
|
-
rejected: boolean;
|
|
136
|
-
confidence?: number;
|
|
137
|
-
}>;
|
|
138
|
-
}[];
|
|
105
|
+
forgedToolbox: import("./tool-ledger.js").ForgedToolboxEntry[];
|
|
139
106
|
/** Canonical deduplicated citation catalog (parity with References). */
|
|
140
|
-
citationCatalog:
|
|
141
|
-
departments: string[];
|
|
142
|
-
turns: number[];
|
|
143
|
-
text: string;
|
|
144
|
-
url: string;
|
|
145
|
-
doi?: string;
|
|
146
|
-
}[];
|
|
107
|
+
citationCatalog: import("./citations-catalog.js").CitationCatalogEntry[];
|
|
147
108
|
/** Per-turn agent reactions with mood + quote + memory snippets. */
|
|
148
109
|
agentReactions: {
|
|
149
110
|
turn: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../../src/runtime/orchestrator.ts"],"names":[],"mappings":"AAIA,OAAO,EAKL,KAAK,aAAa,EACnB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../../src/runtime/orchestrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,9 @@ import { resolve, dirname } from 'node:path';
|
|
|
3
3
|
import { fileURLToPath } from 'node:url';
|
|
4
4
|
import { webSearchTool, createEmergentEngine, createCallForgedTool, wrapForgeTool, } from './emergent-setup.js';
|
|
5
5
|
import { humanizeToolName, parseDeptReport, parseCmdDecision, emptyReport, emptyDecision, decisionToPolicy, } from './parsers.js';
|
|
6
|
-
import {
|
|
6
|
+
import { createCostTracker } from './cost-tracker.js';
|
|
7
|
+
import { buildAvailableToolsBlock, buildForgedToolbox } from './tool-ledger.js';
|
|
8
|
+
import { buildCitationCatalog } from './citations-catalog.js';
|
|
7
9
|
import { SeededRng } from '../engine/core/rng.js';
|
|
8
10
|
import { classifyOutcome, classifyOutcomeById } from '../engine/core/progression.js';
|
|
9
11
|
import { SimulationKernel } from '../engine/core/kernel.js';
|
|
@@ -29,128 +31,20 @@ export async function runSimulation(leader, keyPersonnel, opts = {}) {
|
|
|
29
31
|
const sid = `${sc.labels.shortName}-v2-${leader.archetype.toLowerCase().replace(/\s+/g, '-')}`;
|
|
30
32
|
const modelConfig = resolveSimulationModels(provider, opts.models);
|
|
31
33
|
// Cost tracking: accumulate token usage and estimated cost across all LLM calls
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
* the prompt-caching wiring actually hit — a run with `cacheReadTokens
|
|
40
|
-
* = 0` despite configured cache breakpoints means caching didn't work
|
|
41
|
-
* and the reported cost is not reflecting the savings we expected.
|
|
42
|
-
*
|
|
43
|
-
* Reported via `_cost` on every SSE emit so the dashboard breakdown
|
|
44
|
-
* modal can display cache hit rate and estimated savings.
|
|
45
|
-
*/
|
|
46
|
-
let cacheReadTokens = 0;
|
|
47
|
-
let cacheCreationTokens = 0;
|
|
48
|
-
const newBucket = () => ({
|
|
49
|
-
totalTokens: 0, totalCostUSD: 0, calls: 0,
|
|
50
|
-
cacheReadTokens: 0, cacheCreationTokens: 0,
|
|
51
|
-
});
|
|
52
|
-
const costBySite = {
|
|
53
|
-
director: newBucket(),
|
|
54
|
-
commander: newBucket(),
|
|
55
|
-
departments: newBucket(),
|
|
56
|
-
judge: newBucket(),
|
|
57
|
-
reactions: newBucket(),
|
|
58
|
-
other: newBucket(),
|
|
59
|
-
};
|
|
60
|
-
// Pricing comes from pricing.ts so MODEL_PRICING has one home.
|
|
61
|
-
const defaultPricing = getDefaultPricing(modelConfig);
|
|
62
|
-
const priceForSite = buildPriceForSite(modelConfig);
|
|
63
|
-
/**
|
|
64
|
-
* Record token/cost usage from a single LLM call.
|
|
65
|
-
*
|
|
66
|
-
* @param result The result object from generateText / session.send(),
|
|
67
|
-
* which carries an optional `usage` field populated by AgentOS.
|
|
68
|
-
* @param site Which pipeline stage made the call. Used to build the
|
|
69
|
-
* per-site cost breakdown the dashboard StatsBar can drill into.
|
|
70
|
-
* Defaults to 'other' when a call-site isn't tagged (harmless
|
|
71
|
-
* fallback, but tag every new call site so the breakdown stays
|
|
72
|
-
* meaningful).
|
|
73
|
-
*/
|
|
74
|
-
function trackUsage(result, site = 'other') {
|
|
75
|
-
if (!result?.usage)
|
|
76
|
-
return;
|
|
77
|
-
const tokensThisCall = result.usage.totalTokens ?? 0;
|
|
78
|
-
const callCacheRead = result.usage.cacheReadTokens ?? 0;
|
|
79
|
-
const callCacheCreate = result.usage.cacheCreationTokens ?? 0;
|
|
80
|
-
let costThisCall;
|
|
81
|
-
if (typeof result.usage.costUSD === 'number') {
|
|
82
|
-
// Provider returned a cost that already accounts for cache tiers.
|
|
83
|
-
costThisCall = result.usage.costUSD;
|
|
84
|
-
}
|
|
85
|
-
else {
|
|
86
|
-
// Fallback: compute a cache-aware estimate using commander-tier
|
|
87
|
-
// pricing as an approximation. Cache reads billed at 0.1×, cache
|
|
88
|
-
// creations at 1.25× input rate. Previous estimate ignored cache
|
|
89
|
-
// entirely so a run with heavy caching would UNDER-report the
|
|
90
|
-
// billed amount by ~10-15%.
|
|
91
|
-
const input = result.usage.promptTokens ?? 0;
|
|
92
|
-
const output = result.usage.completionTokens ?? 0;
|
|
93
|
-
costThisCall =
|
|
94
|
-
(input * defaultPricing.input / 1_000_000)
|
|
95
|
-
+ (output * defaultPricing.output / 1_000_000)
|
|
96
|
-
+ (callCacheRead * defaultPricing.input * 0.10 / 1_000_000)
|
|
97
|
-
+ (callCacheCreate * defaultPricing.input * 1.25 / 1_000_000);
|
|
98
|
-
}
|
|
99
|
-
totalTokens += tokensThisCall;
|
|
100
|
-
totalCostUSD += costThisCall;
|
|
101
|
-
llmCalls++;
|
|
102
|
-
cacheReadTokens += callCacheRead;
|
|
103
|
-
cacheCreationTokens += callCacheCreate;
|
|
104
|
-
const bucket = costBySite[site];
|
|
105
|
-
bucket.totalTokens += tokensThisCall;
|
|
106
|
-
bucket.totalCostUSD += costThisCall;
|
|
107
|
-
bucket.calls++;
|
|
108
|
-
bucket.cacheReadTokens += callCacheRead;
|
|
109
|
-
bucket.cacheCreationTokens += callCacheCreate;
|
|
110
|
-
}
|
|
34
|
+
// Cost tracker: per-site buckets + cache-aware fallback estimation.
|
|
35
|
+
// Lives in cost-tracker.ts so the math has one home and the turn loop
|
|
36
|
+
// reads as dispatch. trackUsage(result, site) is called at every LLM
|
|
37
|
+
// call site with a site tag; buildCostPayload() is called before each
|
|
38
|
+
// SSE emit so the dashboard breakdown modal sees live data.
|
|
39
|
+
const costTracker = createCostTracker(modelConfig);
|
|
40
|
+
const trackUsage = costTracker.trackUsage;
|
|
111
41
|
const emit = (type, data) => {
|
|
112
|
-
// Per-site cache savings math: estimate USD saved vs a hypothetical
|
|
113
|
-
// no-caching run. Anthropic bills cache_read at 0.10x input rate
|
|
114
|
-
// (saves 0.90x) and cache_creation at 1.25x (costs +0.25x). So net
|
|
115
|
-
// savings per site = (reads × 0.90 - creates × 0.25) × inputPrice.
|
|
116
|
-
// A fresh creation on turn 1 is a net COST relative to no-cache
|
|
117
|
-
// (the run hasn't amortized the 1.25x overhead yet). By turn 3+
|
|
118
|
-
// with reads dominating, savings are substantial.
|
|
119
|
-
let runCacheSavingsUSD = 0;
|
|
120
|
-
const breakdown = {};
|
|
121
|
-
for (const [k, v] of Object.entries(costBySite)) {
|
|
122
|
-
if (v.calls > 0) {
|
|
123
|
-
const sitePricing = priceForSite(k);
|
|
124
|
-
const siteSavings = ((v.cacheReadTokens * 0.90) - (v.cacheCreationTokens * 0.25))
|
|
125
|
-
* sitePricing.input / 1_000_000;
|
|
126
|
-
runCacheSavingsUSD += siteSavings;
|
|
127
|
-
breakdown[k] = {
|
|
128
|
-
totalTokens: v.totalTokens,
|
|
129
|
-
totalCostUSD: Math.round(v.totalCostUSD * 10000) / 10000,
|
|
130
|
-
calls: v.calls,
|
|
131
|
-
...(v.cacheReadTokens > 0 ? { cacheReadTokens: v.cacheReadTokens } : {}),
|
|
132
|
-
...(v.cacheCreationTokens > 0 ? { cacheCreationTokens: v.cacheCreationTokens } : {}),
|
|
133
|
-
...(Math.abs(siteSavings) >= 0.0001
|
|
134
|
-
? { cacheSavingsUSD: Math.round(siteSavings * 10000) / 10000 }
|
|
135
|
-
: {}),
|
|
136
|
-
};
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
42
|
opts.onEvent?.({
|
|
140
43
|
type,
|
|
141
44
|
leader: leader.name,
|
|
142
45
|
data: {
|
|
143
46
|
...data,
|
|
144
|
-
_cost:
|
|
145
|
-
totalTokens,
|
|
146
|
-
totalCostUSD: Math.round(totalCostUSD * 10000) / 10000,
|
|
147
|
-
llmCalls,
|
|
148
|
-
cacheReadTokens,
|
|
149
|
-
cacheCreationTokens,
|
|
150
|
-
/** Run-wide USD saved by prompt caching vs a no-cache run. */
|
|
151
|
-
cacheSavingsUSD: Math.round(runCacheSavingsUSD * 10000) / 10000,
|
|
152
|
-
breakdown,
|
|
153
|
-
},
|
|
47
|
+
_cost: costTracker.buildCostPayload(),
|
|
154
48
|
},
|
|
155
49
|
});
|
|
156
50
|
};
|
|
@@ -234,6 +128,20 @@ export async function runSimulation(leader, keyPersonnel, opts = {}) {
|
|
|
234
128
|
(err) => reportProviderError(err, 'judge'), forgedExecutables);
|
|
235
129
|
const callForgedTool = createCallForgedTool(forgedExecutables);
|
|
236
130
|
const toolRegs = {};
|
|
131
|
+
/**
|
|
132
|
+
* Per-simulation forged-tool ledger. Tracks first-forge metadata + a
|
|
133
|
+
* full reuse history so the UI can show WHEN a tool was used, BY WHICH
|
|
134
|
+
* dept, on WHICH event, and WHAT OUTPUT it produced — not just a flat
|
|
135
|
+
* "reused 3x" count.
|
|
136
|
+
*
|
|
137
|
+
* Two distinct signals:
|
|
138
|
+
* forgeCalls the judge ran a fresh forge (succeeded or failed)
|
|
139
|
+
* uses the LLM cited an existing tool in its dept report
|
|
140
|
+
* without re-forging (self-reported via forgedToolsUsed)
|
|
141
|
+
*
|
|
142
|
+
* Both surface in the UI; only the latter is "real" reuse, but tracking
|
|
143
|
+
* both makes failure / re-forge attempts auditable.
|
|
144
|
+
*/
|
|
237
145
|
const forgedLedger = new Map();
|
|
238
146
|
// Commander does NOT use systemBlocks caching because AgentOS's
|
|
239
147
|
// `systemBlocks` path replaces the assembled system prompt entirely,
|
|
@@ -682,30 +590,7 @@ Respond with valid JSON ONLY (no markdown, no prose outside the JSON):
|
|
|
682
590
|
// was no other way to surface a number than to re-run forge_tool.
|
|
683
591
|
// Now we also include the last approved output so the LLM can
|
|
684
592
|
// cite both the name and the value without re-forging.
|
|
685
|
-
const availableToolsBlock = (
|
|
686
|
-
const approved = [];
|
|
687
|
-
for (const [name, ledger] of forgedLedger.entries()) {
|
|
688
|
-
const lastApproved = [...ledger.history].reverse().find(h => !h.rejected);
|
|
689
|
-
if (!lastApproved)
|
|
690
|
-
continue;
|
|
691
|
-
approved.push({
|
|
692
|
-
name,
|
|
693
|
-
dept: ledger.firstForgedDepartment,
|
|
694
|
-
title: ledger.firstForgedEventTitle || name,
|
|
695
|
-
// Truncate aggressively so the block stays under a few hundred
|
|
696
|
-
// tokens even with 20 tools. 180 chars covers a compact JSON
|
|
697
|
-
// like {"score":42,"warnings":[]} which is what the LLM cites.
|
|
698
|
-
output: lastApproved.output ? lastApproved.output.slice(0, 180) : null,
|
|
699
|
-
});
|
|
700
|
-
}
|
|
701
|
-
if (approved.length === 0)
|
|
702
|
-
return '';
|
|
703
|
-
const lines = approved.slice(-20).reverse().map(t => {
|
|
704
|
-
const head = `- ${t.name} (${t.dept}): ${t.title}`;
|
|
705
|
-
return t.output ? `${head}\n last output: ${t.output}` : head;
|
|
706
|
-
}).join('\n');
|
|
707
|
-
return `\n\nALREADY-FORGED TOOLS IN THIS SESSION:\n${lines}\n\nHARD RULE — how to reuse:\n- Preferred: call the tool for real with fresh inputs via call_forged_tool({"name":"<tool_name>","args":{...}}). This produces a new output using the approved, judge-reviewed code. Then cite the tool in "forgedToolsUsed" with the new output.\n- If the analysis is essentially unchanged from last invocation, cite the tool name in "forgedToolsUsed" and reference the last output from the list above in your summary — no tool call needed.\n- Do NOT call forge_tool with a name from this list. Re-forging costs −0.06 outcome bonus and −0.015 morale. Only forge a NEW tool when NO existing one applies. Each reuse (via call_forged_tool or citation) is +0.02 outcome bonus.\n`;
|
|
708
|
-
})();
|
|
593
|
+
const availableToolsBlock = buildAvailableToolsBlock(forgedLedger);
|
|
709
594
|
const deptPromises = depts.map(async (dept) => {
|
|
710
595
|
const sess = deptSess.get(dept);
|
|
711
596
|
if (!sess)
|
|
@@ -1351,89 +1236,13 @@ Respond with valid JSON ONLY (no markdown, no prose outside the JSON):
|
|
|
1351
1236
|
? sc.hooks.fingerprintHook(final, outcomeLog, leader, toolRegs, maxTurns)
|
|
1352
1237
|
: {};
|
|
1353
1238
|
const fingerprint = { ...generic, ...scenarioOverlay };
|
|
1354
|
-
//
|
|
1355
|
-
//
|
|
1356
|
-
//
|
|
1357
|
-
|
|
1358
|
-
//
|
|
1359
|
-
//
|
|
1360
|
-
|
|
1361
|
-
// calls; the ledger.history captures every USE (forge or reuse).
|
|
1362
|
-
const forgedToolbox = (() => {
|
|
1363
|
-
const out = [];
|
|
1364
|
-
for (const [name, entry] of forgedLedger) {
|
|
1365
|
-
// Find the original forge metadata (description, mode) from the
|
|
1366
|
-
// first matching captured forge if available; fall back to history.
|
|
1367
|
-
const firstForge = allForges.find(f => f.name === name);
|
|
1368
|
-
const departments = new Set();
|
|
1369
|
-
let approved = false;
|
|
1370
|
-
let maxConfidence = 0;
|
|
1371
|
-
let sampleOutput = null;
|
|
1372
|
-
let reforgeCount = 0;
|
|
1373
|
-
let rejectedReforges = 0;
|
|
1374
|
-
for (const h of entry.history) {
|
|
1375
|
-
departments.add(h.department);
|
|
1376
|
-
if (!h.rejected)
|
|
1377
|
-
approved = true;
|
|
1378
|
-
if (typeof h.confidence === 'number' && h.confidence > maxConfidence)
|
|
1379
|
-
maxConfidence = h.confidence;
|
|
1380
|
-
if (h.output)
|
|
1381
|
-
sampleOutput = h.output;
|
|
1382
|
-
if (h.isReforge) {
|
|
1383
|
-
reforgeCount++;
|
|
1384
|
-
if (h.rejected)
|
|
1385
|
-
rejectedReforges++;
|
|
1386
|
-
}
|
|
1387
|
-
}
|
|
1388
|
-
const totalUses = entry.history.length;
|
|
1389
|
-
out.push({
|
|
1390
|
-
name,
|
|
1391
|
-
description: firstForge?.description || name,
|
|
1392
|
-
mode: firstForge?.mode || 'sandbox',
|
|
1393
|
-
firstForgedTurn: entry.firstForgedTurn,
|
|
1394
|
-
firstForgedDepartment: entry.firstForgedDepartment,
|
|
1395
|
-
firstForgedEventTitle: entry.firstForgedEventTitle,
|
|
1396
|
-
departments: [...departments],
|
|
1397
|
-
reuseCount: Math.max(0, totalUses - 1),
|
|
1398
|
-
totalUses,
|
|
1399
|
-
reforgeCount,
|
|
1400
|
-
rejectedReforges,
|
|
1401
|
-
approved: approved || (firstForge?.approved ?? false),
|
|
1402
|
-
// Use the highest judge confidence across this tool's invocations.
|
|
1403
|
-
// If the tool was never approved (only failed forges), confidence
|
|
1404
|
-
// is 0 — never fabricate an 0.85 default that misrepresents
|
|
1405
|
-
// rejected tools as borderline-passable.
|
|
1406
|
-
confidence: maxConfidence || (firstForge?.approved ? firstForge.confidence : 0),
|
|
1407
|
-
inputSchema: entry.inputSchema,
|
|
1408
|
-
outputSchema: entry.outputSchema,
|
|
1409
|
-
sampleOutput,
|
|
1410
|
-
history: entry.history.slice(),
|
|
1411
|
-
});
|
|
1412
|
-
}
|
|
1413
|
-
return out.sort((a, b) => a.firstForgedTurn - b.firstForgedTurn);
|
|
1414
|
-
})();
|
|
1415
|
-
// Flat unique citation list across all department reports.
|
|
1416
|
-
const citationCatalog = (() => {
|
|
1417
|
-
const byKey = new Map();
|
|
1418
|
-
for (const { turn: t, report } of allDepartmentReports) {
|
|
1419
|
-
for (const c of report.citations) {
|
|
1420
|
-
const key = (c.url || '').trim() || `text:${(c.text || '').trim()}`;
|
|
1421
|
-
if (!key)
|
|
1422
|
-
continue;
|
|
1423
|
-
let entry = byKey.get(key);
|
|
1424
|
-
if (!entry) {
|
|
1425
|
-
entry = { text: c.text || c.url || '', url: c.url || '', doi: c.doi, departments: new Set(), turns: new Set() };
|
|
1426
|
-
byKey.set(key, entry);
|
|
1427
|
-
}
|
|
1428
|
-
if (report.department)
|
|
1429
|
-
entry.departments.add(report.department);
|
|
1430
|
-
entry.turns.add(t);
|
|
1431
|
-
if (!entry.doi && c.doi)
|
|
1432
|
-
entry.doi = c.doi;
|
|
1433
|
-
}
|
|
1434
|
-
}
|
|
1435
|
-
return [...byKey.values()].map(e => ({ ...e, departments: [...e.departments], turns: [...e.turns].sort((a, b) => a - b) }));
|
|
1436
|
-
})();
|
|
1239
|
+
// Canonical Forged Toolbox: deduplicated by tool name with first-forge
|
|
1240
|
+
// metadata, full invocation history, and reuse/rejection rollups.
|
|
1241
|
+
// Matches the data the dashboard's ToolboxSection renders.
|
|
1242
|
+
const forgedToolbox = buildForgedToolbox(forgedLedger, allForges);
|
|
1243
|
+
// Flat unique citation list across all department reports. URL is the
|
|
1244
|
+
// dedup key; each entry carries the departments + turns that cited it.
|
|
1245
|
+
const citationCatalog = buildCitationCatalog(allDepartmentReports);
|
|
1437
1246
|
const output = {
|
|
1438
1247
|
simulation: `${sc.id}-v3`,
|
|
1439
1248
|
leader: { name: leader.name, archetype: leader.archetype, colony: leader.colony, hexaco: leader.hexaco },
|
|
@@ -1459,7 +1268,7 @@ Respond with valid JSON ONLY (no markdown, no prose outside the JSON):
|
|
|
1459
1268
|
/** Per-turn agent reactions with mood + quote + memory snippets. */
|
|
1460
1269
|
agentReactions: allAgentReactions,
|
|
1461
1270
|
/** Cost telemetry for the run. */
|
|
1462
|
-
cost:
|
|
1271
|
+
cost: costTracker.finalCost(),
|
|
1463
1272
|
/**
|
|
1464
1273
|
* When a terminal provider error (quota exhausted, invalid API key)
|
|
1465
1274
|
* was hit during the run, this carries the classified reason. `null`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../../src/runtime/orchestrator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../../src/runtime/orchestrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Forged-tool ledger types + prompt-block builder.
|
|
3
|
+
*
|
|
4
|
+
* The orchestrator keeps a per-tool history of every invocation across
|
|
5
|
+
* a run so the dashboard can show WHEN a tool was first forged, WHICH
|
|
6
|
+
* department invoked it, WHAT each invocation produced, and whether
|
|
7
|
+
* each appearance was a fresh forge, a re-forge, or a pure citation.
|
|
8
|
+
*
|
|
9
|
+
* These shapes + the "ALREADY-FORGED TOOLS" context block builder
|
|
10
|
+
* extracted here are pure data structures and a pure text generator —
|
|
11
|
+
* no IO, no side effects — so they move cleanly out of the
|
|
12
|
+
* turn-loop soup.
|
|
13
|
+
*
|
|
14
|
+
* @module paracosm/runtime/tool-ledger
|
|
15
|
+
*/
|
|
16
|
+
/** A single invocation of a forged tool, appended to the tool's history. */
|
|
17
|
+
export interface ToolUseRecord {
|
|
18
|
+
turn: number;
|
|
19
|
+
year: number;
|
|
20
|
+
eventIndex: number;
|
|
21
|
+
eventTitle: string;
|
|
22
|
+
department: string;
|
|
23
|
+
/** What the tool produced this invocation (string-truncated to 400). */
|
|
24
|
+
output: string | null;
|
|
25
|
+
/** True when the LLM re-invoked forge_tool (vs cited an existing tool). */
|
|
26
|
+
isReforge: boolean;
|
|
27
|
+
/** Set when isReforge=true and the judge rejected the new attempt. */
|
|
28
|
+
rejected: boolean;
|
|
29
|
+
/** Judge confidence on this invocation (only meaningful for forge calls). */
|
|
30
|
+
confidence?: number;
|
|
31
|
+
}
|
|
32
|
+
/** Per-tool ledger entry. First-forge metadata + full history. */
|
|
33
|
+
export interface ForgedToolLedgerEntry {
|
|
34
|
+
firstForgedTurn: number;
|
|
35
|
+
firstForgedDepartment: string;
|
|
36
|
+
firstForgedEventIndex: number;
|
|
37
|
+
firstForgedEventTitle: string;
|
|
38
|
+
inputSchema?: unknown;
|
|
39
|
+
outputSchema?: unknown;
|
|
40
|
+
/** Append-only history of every invocation across the run. */
|
|
41
|
+
history: ToolUseRecord[];
|
|
42
|
+
}
|
|
43
|
+
/** Shorthand alias used across the orchestrator's closures. */
|
|
44
|
+
export type ForgedLedger = Map<string, ForgedToolLedgerEntry>;
|
|
45
|
+
/**
|
|
46
|
+
* Build the ALREADY-FORGED TOOLS block appended to every department's
|
|
47
|
+
* per-turn context. Tells the LLM which tools are available to reuse,
|
|
48
|
+
* shows each tool's last approved output so the LLM can cite a number
|
|
49
|
+
* without re-forging, and enforces a hard rule against re-forging by
|
|
50
|
+
* the same name.
|
|
51
|
+
*
|
|
52
|
+
* Only approved (non-rejected) tools appear. Capped at 20 most recent
|
|
53
|
+
* so the block stays under ~500 tokens even in long runs.
|
|
54
|
+
*
|
|
55
|
+
* Returns an empty string when no tools have been approved yet, so
|
|
56
|
+
* callers can concatenate unconditionally without an empty section
|
|
57
|
+
* appearing in turn 1 prompts.
|
|
58
|
+
*/
|
|
59
|
+
export declare function buildAvailableToolsBlock(ledger: ForgedLedger): string;
|
|
60
|
+
/** One entry in the canonical Forged Toolbox that ships in the run output. */
|
|
61
|
+
export interface ForgedToolboxEntry {
|
|
62
|
+
name: string;
|
|
63
|
+
description: string;
|
|
64
|
+
mode: string;
|
|
65
|
+
firstForgedTurn: number;
|
|
66
|
+
firstForgedDepartment: string;
|
|
67
|
+
firstForgedEventTitle: string;
|
|
68
|
+
departments: string[];
|
|
69
|
+
/** Total uses minus the original forge. */
|
|
70
|
+
reuseCount: number;
|
|
71
|
+
/** Total uses including the original forge. */
|
|
72
|
+
totalUses: number;
|
|
73
|
+
/** How many of those uses were re-forge attempts. */
|
|
74
|
+
reforgeCount: number;
|
|
75
|
+
/** Re-forge attempts that the judge rejected. */
|
|
76
|
+
rejectedReforges: number;
|
|
77
|
+
approved: boolean;
|
|
78
|
+
confidence: number;
|
|
79
|
+
inputSchema: unknown;
|
|
80
|
+
outputSchema: unknown;
|
|
81
|
+
sampleOutput: unknown;
|
|
82
|
+
history: ToolUseRecord[];
|
|
83
|
+
}
|
|
84
|
+
/** Minimal shape of a captured forge event needed to hydrate toolbox entries. */
|
|
85
|
+
export interface ForgeCaptureForToolbox {
|
|
86
|
+
name: string;
|
|
87
|
+
description: string;
|
|
88
|
+
mode: string;
|
|
89
|
+
approved: boolean;
|
|
90
|
+
confidence: number;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Build the canonical Forged Toolbox from a completed run's ledger.
|
|
94
|
+
* Deduplicates by tool name, preserves first-forge metadata, and rolls
|
|
95
|
+
* up reuse/reforge/rejection counts from the full invocation history.
|
|
96
|
+
* Pure function — takes the ledger + the raw stream of captured forge
|
|
97
|
+
* events and returns a sorted, enriched array ready for serialization.
|
|
98
|
+
*/
|
|
99
|
+
export declare function buildForgedToolbox(ledger: ForgedLedger, allForges: readonly ForgeCaptureForToolbox[]): ForgedToolboxEntry[];
|
|
100
|
+
//# sourceMappingURL=tool-ledger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-ledger.d.ts","sourceRoot":"","sources":["../../../src/runtime/tool-ledger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,4EAA4E;AAC5E,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,wEAAwE;IACxE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,2EAA2E;IAC3E,SAAS,EAAE,OAAO,CAAC;IACnB,sEAAsE;IACtE,QAAQ,EAAE,OAAO,CAAC;IAClB,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,kEAAkE;AAClE,MAAM,WAAW,qBAAqB;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,8DAA8D;IAC9D,OAAO,EAAE,aAAa,EAAE,CAAC;CAC1B;AAED,+DAA+D;AAC/D,MAAM,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;AAE9D;;;;;;;;;;;;;GAaG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAsBrE;AAED,8EAA8E;AAC9E,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,qDAAqD;IACrD,YAAY,EAAE,MAAM,CAAC;IACrB,iDAAiD;IACjD,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,aAAa,EAAE,CAAC;CAC1B;AAED,iFAAiF;AACjF,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,SAAS,sBAAsB,EAAE,GAC3C,kBAAkB,EAAE,CA6CtB"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Forged-tool ledger types + prompt-block builder.
|
|
3
|
+
*
|
|
4
|
+
* The orchestrator keeps a per-tool history of every invocation across
|
|
5
|
+
* a run so the dashboard can show WHEN a tool was first forged, WHICH
|
|
6
|
+
* department invoked it, WHAT each invocation produced, and whether
|
|
7
|
+
* each appearance was a fresh forge, a re-forge, or a pure citation.
|
|
8
|
+
*
|
|
9
|
+
* These shapes + the "ALREADY-FORGED TOOLS" context block builder
|
|
10
|
+
* extracted here are pure data structures and a pure text generator —
|
|
11
|
+
* no IO, no side effects — so they move cleanly out of the
|
|
12
|
+
* turn-loop soup.
|
|
13
|
+
*
|
|
14
|
+
* @module paracosm/runtime/tool-ledger
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* Build the ALREADY-FORGED TOOLS block appended to every department's
|
|
18
|
+
* per-turn context. Tells the LLM which tools are available to reuse,
|
|
19
|
+
* shows each tool's last approved output so the LLM can cite a number
|
|
20
|
+
* without re-forging, and enforces a hard rule against re-forging by
|
|
21
|
+
* the same name.
|
|
22
|
+
*
|
|
23
|
+
* Only approved (non-rejected) tools appear. Capped at 20 most recent
|
|
24
|
+
* so the block stays under ~500 tokens even in long runs.
|
|
25
|
+
*
|
|
26
|
+
* Returns an empty string when no tools have been approved yet, so
|
|
27
|
+
* callers can concatenate unconditionally without an empty section
|
|
28
|
+
* appearing in turn 1 prompts.
|
|
29
|
+
*/
|
|
30
|
+
export function buildAvailableToolsBlock(ledger) {
|
|
31
|
+
const approved = [];
|
|
32
|
+
for (const [name, entry] of ledger.entries()) {
|
|
33
|
+
const lastApproved = [...entry.history].reverse().find(h => !h.rejected);
|
|
34
|
+
if (!lastApproved)
|
|
35
|
+
continue;
|
|
36
|
+
approved.push({
|
|
37
|
+
name,
|
|
38
|
+
dept: entry.firstForgedDepartment,
|
|
39
|
+
title: entry.firstForgedEventTitle || name,
|
|
40
|
+
// Truncate aggressively so the block stays under a few hundred
|
|
41
|
+
// tokens even with 20 tools. 180 chars covers a compact JSON
|
|
42
|
+
// like {"score":42,"warnings":[]} which is what the LLM cites.
|
|
43
|
+
output: lastApproved.output ? lastApproved.output.slice(0, 180) : null,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
if (approved.length === 0)
|
|
47
|
+
return '';
|
|
48
|
+
const lines = approved.slice(-20).reverse().map(t => {
|
|
49
|
+
const head = `- ${t.name} (${t.dept}): ${t.title}`;
|
|
50
|
+
return t.output ? `${head}\n last output: ${t.output}` : head;
|
|
51
|
+
}).join('\n');
|
|
52
|
+
return `\n\nALREADY-FORGED TOOLS IN THIS SESSION:\n${lines}\n\nHARD RULE — how to reuse:\n- Preferred: call the tool for real with fresh inputs via call_forged_tool({"name":"<tool_name>","args":{...}}). This produces a new output using the approved, judge-reviewed code. Then cite the tool in "forgedToolsUsed" with the new output.\n- If the analysis is essentially unchanged from last invocation, cite the tool name in "forgedToolsUsed" and reference the last output from the list above in your summary — no tool call needed.\n- Do NOT call forge_tool with a name from this list. Re-forging costs −0.06 outcome bonus and −0.015 morale. Only forge a NEW tool when NO existing one applies. Each reuse (via call_forged_tool or citation) is +0.02 outcome bonus.\n`;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Build the canonical Forged Toolbox from a completed run's ledger.
|
|
56
|
+
* Deduplicates by tool name, preserves first-forge metadata, and rolls
|
|
57
|
+
* up reuse/reforge/rejection counts from the full invocation history.
|
|
58
|
+
* Pure function — takes the ledger + the raw stream of captured forge
|
|
59
|
+
* events and returns a sorted, enriched array ready for serialization.
|
|
60
|
+
*/
|
|
61
|
+
export function buildForgedToolbox(ledger, allForges) {
|
|
62
|
+
const out = [];
|
|
63
|
+
for (const [name, entry] of ledger) {
|
|
64
|
+
const firstForge = allForges.find(f => f.name === name);
|
|
65
|
+
const departments = new Set();
|
|
66
|
+
let approved = false;
|
|
67
|
+
let maxConfidence = 0;
|
|
68
|
+
let sampleOutput = null;
|
|
69
|
+
let reforgeCount = 0;
|
|
70
|
+
let rejectedReforges = 0;
|
|
71
|
+
for (const h of entry.history) {
|
|
72
|
+
departments.add(h.department);
|
|
73
|
+
if (!h.rejected)
|
|
74
|
+
approved = true;
|
|
75
|
+
if (typeof h.confidence === 'number' && h.confidence > maxConfidence)
|
|
76
|
+
maxConfidence = h.confidence;
|
|
77
|
+
if (h.output)
|
|
78
|
+
sampleOutput = h.output;
|
|
79
|
+
if (h.isReforge) {
|
|
80
|
+
reforgeCount++;
|
|
81
|
+
if (h.rejected)
|
|
82
|
+
rejectedReforges++;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
const totalUses = entry.history.length;
|
|
86
|
+
out.push({
|
|
87
|
+
name,
|
|
88
|
+
description: firstForge?.description || name,
|
|
89
|
+
mode: firstForge?.mode || 'sandbox',
|
|
90
|
+
firstForgedTurn: entry.firstForgedTurn,
|
|
91
|
+
firstForgedDepartment: entry.firstForgedDepartment,
|
|
92
|
+
firstForgedEventTitle: entry.firstForgedEventTitle,
|
|
93
|
+
departments: [...departments],
|
|
94
|
+
reuseCount: Math.max(0, totalUses - 1),
|
|
95
|
+
totalUses,
|
|
96
|
+
reforgeCount,
|
|
97
|
+
rejectedReforges,
|
|
98
|
+
approved: approved || (firstForge?.approved ?? false),
|
|
99
|
+
// Highest judge confidence across this tool's invocations. When
|
|
100
|
+
// no approval ever landed, confidence is 0 — never fabricate a
|
|
101
|
+
// default that misrepresents rejected tools as borderline.
|
|
102
|
+
confidence: maxConfidence || (firstForge?.approved ? firstForge.confidence : 0),
|
|
103
|
+
inputSchema: entry.inputSchema,
|
|
104
|
+
outputSchema: entry.outputSchema,
|
|
105
|
+
sampleOutput,
|
|
106
|
+
history: entry.history.slice(),
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
return out.sort((a, b) => a.firstForgedTurn - b.firstForgedTurn);
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=tool-ledger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-ledger.js","sourceRoot":"","sources":["../../../src/runtime/tool-ledger.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "paracosm",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.147",
|
|
4
4
|
"description": "AI agent swarm simulation engine with emergent crises, runtime tool forging, HEXACO personality drift, and deterministic kernels. Built on AgentOS.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/engine/index.js",
|