@cat-factory/orchestration 0.243.1 → 0.245.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.
@@ -1,5 +1,5 @@
1
1
  import type { AgentContextSnapshotRepository, AgentSearchQueryRepository, AgentToolCall, AgentToolCallRepository, AgentSearchQuery, Clock, ExecutionInstance, ExecutionRepository, ExecutionStatus, LlmCallMetricRepository, LlmCallOutcomeFilter, LlmRollupCell, ProvisioningLogRecord, ProvisioningLogRepository } from '@cat-factory/kernel';
2
- import type { DebugAgentContextDetail, DebugAgentContextEntry, DebugLlmCall, DebugRunOverview, DebugRunSummary, ToolCallOrder } from '@cat-factory/contracts';
2
+ import type { DebugAgentContextDetail, DebugAgentContextEntry, DebugLlmCall, DebugLlmExport, DebugRunOverview, DebugRunSummary, ToolCallOrder } from '@cat-factory/contracts';
3
3
  /** A decoded keyset position: a row's chronological sort key plus its id (the tiebreaker). */
4
4
  export interface DebugCursor {
5
5
  createdAt: number;
@@ -95,6 +95,29 @@ export declare class RunDebugService {
95
95
  /** Narrow to calls whose bodies contain this literal substring (matched in SQL). */
96
96
  contains?: string;
97
97
  }): Promise<DebugPage<DebugLlmCall>>;
98
+ /**
99
+ * The run's model activity as one self-describing bundle: the rollups, plus a bounded window
100
+ * of the calls behind them.
101
+ *
102
+ * The rollup half is the SAME fold {@link RunDebugService.overview} publishes, over the same
103
+ * priced cells, so the two documents cannot report different money for one run. The call half
104
+ * is `listLlmCalls` with its cursor dropped: a bundle answers a question about one end of the
105
+ * run rather than being a page of a walk, and the walk already exists for the caller that
106
+ * wants the whole sequence.
107
+ *
108
+ * Which end is the caller's to pick, and the bundle says which was kept, because the two are
109
+ * opposite readings of a long run: `oldest` shows how it went wrong, `newest` shows what it
110
+ * was doing when it died.
111
+ *
112
+ * It also states whether the sink exists at all, because both halves degrade to the same
113
+ * empty document when it does not, and this is the one bundle whose intended reader draws a
114
+ * conclusion from what it does not contain.
115
+ */
116
+ llmExport(workspaceId: string, runId: string, opts: {
117
+ limit: number;
118
+ order: 'oldest' | 'newest';
119
+ bodyChars: number;
120
+ }): Promise<DebugLlmExport>;
98
121
  /** One recorded call with its bodies windowed, or null when the workspace has no such call. */
99
122
  getLlmCall(workspaceId: string, callId: string, opts?: {
100
123
  bodyChars?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"RunDebugService.d.ts","sourceRoot":"","sources":["../../../src/modules/debug/RunDebugService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RunDebugService.d.ts","sourceRoot":"","sources":["../../../src/modules/debug/RunDebugService.ts"],"names":[],"mappings":"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"}
@@ -156,6 +156,54 @@ export class RunDebugService {
156
156
  });
157
157
  return paginate(rows, opts.limit, (call) => ({ createdAt: call.createdAt, id: call.id }), (call) => toDebugLlmCall(call));
158
158
  }
159
+ /**
160
+ * The run's model activity as one self-describing bundle: the rollups, plus a bounded window
161
+ * of the calls behind them.
162
+ *
163
+ * The rollup half is the SAME fold {@link RunDebugService.overview} publishes, over the same
164
+ * priced cells, so the two documents cannot report different money for one run. The call half
165
+ * is `listLlmCalls` with its cursor dropped: a bundle answers a question about one end of the
166
+ * run rather than being a page of a walk, and the walk already exists for the caller that
167
+ * wants the whole sequence.
168
+ *
169
+ * Which end is the caller's to pick, and the bundle says which was kept, because the two are
170
+ * opposite readings of a long run: `oldest` shows how it went wrong, `newest` shows what it
171
+ * was doing when it died.
172
+ *
173
+ * It also states whether the sink exists at all, because both halves degrade to the same
174
+ * empty document when it does not, and this is the one bundle whose intended reader draws a
175
+ * conclusion from what it does not contain.
176
+ */
177
+ async llmExport(workspaceId, runId, opts) {
178
+ const [summaries, page] = await Promise.all([
179
+ this.deps.priceRollup?.(workspaceId, runId) ?? this.unpricedRollup(workspaceId, runId),
180
+ this.listLlmCalls(workspaceId, runId, {
181
+ limit: opts.limit,
182
+ order: opts.order,
183
+ bodyChars: opts.bodyChars,
184
+ }),
185
+ ]);
186
+ const { totals, byAgentKind, byPhase } = foldLlmRollup(summaries);
187
+ return {
188
+ kind: 'cat-factory.run-llm-export',
189
+ version: 1,
190
+ runId,
191
+ generatedAt: this.deps.clock.now(),
192
+ // The SAME expression `overview` publishes as `sinks.llmCalls.available`, and stated for
193
+ // the sharper version of the same reason: with no sink wired, every rollup below folds
194
+ // an empty cell list and every call row is absent, which is a bundle indistinguishable
195
+ // from a run that made no model calls. The reader here is a model asked why the run went
196
+ // wrong, so an unstated absence reads as a finding.
197
+ available: !!this.deps.llmCallMetricRepository,
198
+ llm: { totals, byAgentKind, byPhase, costCurrency: this.deps.costCurrency ?? null },
199
+ order: opts.order,
200
+ // The page's own peek, not `totals.calls > limit`: the rollup counts every recorded call
201
+ // in the run, while this list is what the page actually holds, and only the page can say
202
+ // whether a row was left behind. They agree wherever both are complete.
203
+ truncated: page.nextCursor !== null,
204
+ calls: page.items,
205
+ };
206
+ }
159
207
  /** One recorded call with its bodies windowed, or null when the workspace has no such call. */
160
208
  async getLlmCall(workspaceId, callId, opts = {}) {
161
209
  const repo = this.deps.llmCallMetricRepository;
@@ -1 +1 @@
1
- {"version":3,"file":"RunDebugService.js","sourceRoot":"","sources":["../../../src/modules/debug/RunDebugService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RunDebugService.js","sourceRoot":"","sources":["../../../src/modules/debug/RunDebugService.ts"],"names":[],"mappings":"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"}
@@ -124,11 +124,25 @@ export declare class MergeTrackRecordService {
124
124
  recordExternalMerge(workspaceId: string, repoId: string, prNumber: number): Promise<MergeTrackRecord | null>;
125
125
  /** A record by id (for the tag surface and the notification card's context). */
126
126
  get(workspaceId: string, id: string): Promise<MergeTrackRecord | null>;
127
+ /**
128
+ * The record a RUN left behind, or null when the merge path never wrote one (a pipeline with
129
+ * no `merger` step, or a run that never reached its merge decision).
130
+ *
131
+ * The run-scoped entry point into the record, which is what a headless caller holds: it started
132
+ * the run and knows its id, where the record's own id is minted inside the merge path.
133
+ */
134
+ getForRun(workspaceId: string, executionId: string): Promise<MergeTrackRecord | null>;
127
135
  /** The most recent record for a block — the seam the block-scoped merge controls tag through. */
128
136
  getLatestByBlock(workspaceId: string, blockId: string): Promise<MergeTrackRecord | null>;
129
137
  /**
130
138
  * Tag (or clear) how much review effort a human spent. Unlike the write paths above this is a
131
139
  * deliberate user action, so an unknown id is a real 404 rather than a silent skip.
140
+ *
141
+ * That 404 carries {@link MERGE_RECORD_NOT_FOUND_REASON}, the same `details.reason` the
142
+ * record-addressed READ answers, because from a caller's side the two are one condition: the id
143
+ * names no record this workspace holds. Refusing here rather than pre-checking in the caller is
144
+ * what keeps the write a single round-trip and leaves no window between the check and the patch;
145
+ * the reason has to ride the throw for that to cost the caller nothing.
132
146
  */
133
147
  tag(workspaceId: string, id: string, reviewEffort: ReviewEffort | null): Promise<MergeTrackRecord>;
134
148
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"MergeTrackRecordService.d.ts","sourceRoot":"","sources":["../../../src/modules/merge/MergeTrackRecordService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,WAAW,EACX,KAAK,EACL,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,0BAA0B,EAC1B,qBAAqB,EACrB,YAAY,EACZ,WAAW,EACX,mBAAmB,EACnB,MAAM,EACP,MAAM,qBAAqB,CAAA;AAU5B,kFAAkF;AAClF,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,QAAQ,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;CAC9B;AAED,sFAAsF;AACtF,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,KAAK,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,oEAAoE;IACpE,UAAU,CAAC,EAAE,eAAe,GAAG,IAAI,CAAA;IACnC,6FAA6F;IAC7F,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B;;;;;OAKG;IACH,cAAc,CAAC,EAAE,iBAAiB,CAAA;IAClC,mFAAmF;IACnF,IAAI,CAAC,EAAE,iBAAiB,CAAA;CACzB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,WAAW,CAAA;IACxB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,QAAQ,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;CAC9B;AAED,MAAM,WAAW,mCAAmC;IAClD,0BAA0B,EAAE,0BAA0B,CAAA;IACtD,mBAAmB,EAAE,mBAAmB,CAAA;IACxC,KAAK,EAAE,KAAK,CAAA;IACZ;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,qBAAqB,CAAA;IAC7C;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,uBAAuB;IAGtB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFjC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAE5B,YAA6B,IAAI,EAAE,mCAAmC,EAErE;IAED;;;;;;;;OAQG;IACG,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA8B5E;IAED;;;;;;;;OAQG;IACG,cAAc,CAClB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,wBAAwB,GAC9B,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAoClC;IAED;;;;;;;;;;;;;;;OAeG;IACG,eAAe,CACnB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,OAAO,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,EACvD,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,GACjC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA2BxB;IAED;;;;;;;;;OASG;IACG,mBAAmB,CACvB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CA0BlC;IAED,gFAAgF;IAC1E,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAG3E;IAED,iGAAiG;IAC3F,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAG7F;IAED;;;OAGG;IACG,GAAG,CACP,WAAW,EAAE,MAAM,EACnB,EAAE,EAAE,MAAM,EACV,YAAY,EAAE,YAAY,GAAG,IAAI,GAChC,OAAO,CAAC,gBAAgB,CAAC,CAU3B;IAED;;;;OAIG;IACG,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAK9D;CACF"}
1
+ {"version":3,"file":"MergeTrackRecordService.d.ts","sourceRoot":"","sources":["../../../src/modules/merge/MergeTrackRecordService.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { CHANGE_CLASSES, emptyMergeClassRollup } from '@cat-factory/contracts';
2
- import { assertFound, classifyChangedFiles, describeError, noopLogger, requireWorkspace, } from '@cat-factory/kernel';
1
+ import { CHANGE_CLASSES, emptyMergeClassRollup, MERGE_RECORD_NOT_FOUND_REASON, } from '@cat-factory/contracts';
2
+ import { classifyChangedFiles, describeError, noopLogger, NotFoundError, requireWorkspace, } from '@cat-factory/kernel';
3
3
  /**
4
4
  * The merge TRACK RECORD: one persisted row per merge decision carrying the run's
5
5
  * deterministic change class, the merger's scores, what happened, and the reviewer-effort tag a
@@ -193,6 +193,17 @@ export class MergeTrackRecordService {
193
193
  await requireWorkspace(this.deps.workspaceRepository, workspaceId);
194
194
  return this.deps.mergeTrackRecordRepository.get(workspaceId, id);
195
195
  }
196
+ /**
197
+ * The record a RUN left behind, or null when the merge path never wrote one (a pipeline with
198
+ * no `merger` step, or a run that never reached its merge decision).
199
+ *
200
+ * The run-scoped entry point into the record, which is what a headless caller holds: it started
201
+ * the run and knows its id, where the record's own id is minted inside the merge path.
202
+ */
203
+ async getForRun(workspaceId, executionId) {
204
+ await requireWorkspace(this.deps.workspaceRepository, workspaceId);
205
+ return this.deps.mergeTrackRecordRepository.getByExecution(workspaceId, executionId);
206
+ }
196
207
  /** The most recent record for a block — the seam the block-scoped merge controls tag through. */
197
208
  async getLatestByBlock(workspaceId, blockId) {
198
209
  await requireWorkspace(this.deps.workspaceRepository, workspaceId);
@@ -201,10 +212,19 @@ export class MergeTrackRecordService {
201
212
  /**
202
213
  * Tag (or clear) how much review effort a human spent. Unlike the write paths above this is a
203
214
  * deliberate user action, so an unknown id is a real 404 rather than a silent skip.
215
+ *
216
+ * That 404 carries {@link MERGE_RECORD_NOT_FOUND_REASON}, the same `details.reason` the
217
+ * record-addressed READ answers, because from a caller's side the two are one condition: the id
218
+ * names no record this workspace holds. Refusing here rather than pre-checking in the caller is
219
+ * what keeps the write a single round-trip and leaves no window between the check and the patch;
220
+ * the reason has to ride the throw for that to cost the caller nothing.
204
221
  */
205
222
  async tag(workspaceId, id, reviewEffort) {
206
223
  await requireWorkspace(this.deps.workspaceRepository, workspaceId);
207
- const existing = assertFound(await this.deps.mergeTrackRecordRepository.get(workspaceId, id), 'MergeTrackRecord', id);
224
+ const existing = await this.deps.mergeTrackRecordRepository.get(workspaceId, id);
225
+ if (!existing) {
226
+ throw new NotFoundError('MergeTrackRecord', id, { reason: MERGE_RECORD_NOT_FOUND_REASON });
227
+ }
208
228
  const taggedAt = reviewEffort ? this.deps.clock.now() : null;
209
229
  await this.deps.mergeTrackRecordRepository.patch(workspaceId, id, { reviewEffort, taggedAt });
210
230
  return { ...existing, reviewEffort, taggedAt };
@@ -1 +1 @@
1
- {"version":3,"file":"MergeTrackRecordService.js","sourceRoot":"","sources":["../../../src/modules/merge/MergeTrackRecordService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MergeTrackRecordService.js","sourceRoot":"","sources":["../../../src/modules/merge/MergeTrackRecordService.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,28 @@
1
- import type { ReportWindow, ReportsView } from '@cat-factory/contracts';
1
+ import type { ReportSpendDimension, ReportSpendRow, ReportSpendSource, ReportTotals, ReportWindow, ReportsView } from '@cat-factory/contracts';
2
2
  import type { Clock, ReportsRepository, SpendRollupRepository } from '@cat-factory/kernel';
3
+ /**
4
+ * One dimension's spend over a window, with the window's own facts beside it: which store
5
+ * answered, how far its sweep has covered, and the span the numbers cover.
6
+ *
7
+ * Deliberately NOT the wire shape of any surface that serves it. The public API projects this
8
+ * into its own frozen resource, exactly as it does for the usage breakdown, so an internal
9
+ * analytics shape stays free to change.
10
+ */
11
+ export interface ReportsBreakdown {
12
+ dimension: ReportSpendDimension;
13
+ window: ReportWindow;
14
+ generatedAt: number;
15
+ since: number;
16
+ currency: string;
17
+ source: ReportSpendSource;
18
+ rolledUpThrough: number | null;
19
+ /** Over the window's WHOLE population, never only the rows returned beside it. */
20
+ totals: ReportTotals;
21
+ /** The heaviest slices by metered cost, capped by the caller's `limit` when it named one. */
22
+ rows: ReportSpendRow[];
23
+ /** True when the window held more slices than `limit`, so `rows` is a prefix of them. */
24
+ truncated: boolean;
25
+ }
3
26
  export interface ReportsServiceDependencies {
4
27
  reportsRepository: ReportsRepository;
5
28
  /**
@@ -43,6 +66,23 @@ export declare class ReportsService {
43
66
  private readonly deps;
44
67
  constructor(deps: ReportsServiceDependencies);
45
68
  summarize(accountId: string, window: ReportWindow, workspaceId?: string | null): Promise<ReportsView>;
69
+ /**
70
+ * ONE spend dimension over the same window routing {@link ReportsService.summarize} uses:
71
+ * what the public `GET /api/v1/usage/spend` serves, and what a caller asking a single
72
+ * question (what did this repository cost, what did that ticket cost) actually needs.
73
+ *
74
+ * A separate method rather than a `dimension` option on `summarize`, because the two differ
75
+ * in what they COST: the panel renders every slice together and pays for eleven aggregates,
76
+ * where this is one `GROUP BY` and returning the other ten would be work nobody asked for.
77
+ * Everything else about it is deliberately the same read, so a number here and the same
78
+ * number in the panel come from one code path.
79
+ *
80
+ * `limit` bounds what is RETURNED, not what is aggregated: `totals` folds the window's whole
81
+ * population either way, so a capped breakdown still reports what was spent and only loses
82
+ * the identity of the tail. That is why the cap is applied here rather than pushed into the
83
+ * `GROUP BY` as a SQL `LIMIT`, which would take the totals down with it.
84
+ */
85
+ breakdown(accountId: string, dimension: ReportSpendDimension, window: ReportWindow, workspaceId?: string | null, limit?: number): Promise<ReportsBreakdown>;
46
86
  /**
47
87
  * Bind the window's spend reads to the store that serves them, and report which one that
48
88
  * turned out to be. The window PREFERS the rollup on the long windows; an unwired rollup
@@ -1 +1 @@
1
- {"version":3,"file":"ReportsService.d.ts","sourceRoot":"","sources":["../../../src/modules/reports/ReportsService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,YAAY,EACZ,WAAW,EACZ,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,EACV,KAAK,EAKL,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,qBAAqB,CAAA;AAsB5B,MAAM,WAAW,0BAA0B;IACzC,iBAAiB,EAAE,iBAAiB,CAAA;IACpC;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAE,qBAAqB,CAAA;IAC7C,KAAK,EAAE,KAAK,CAAA;IACZ;;;;;OAKG;IACH,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,cAAc;IACb,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,0BAA0B,EAAI;IAE3D,SAAS,CACb,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,YAAY,EACpB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAC1B,OAAO,CAAC,WAAW,CAAC,CAsEtB;IAED;;;;;OAKG;IACH,OAAO,CAAC,WAAW;CA6BpB"}
1
+ {"version":3,"file":"ReportsService.d.ts","sourceRoot":"","sources":["../../../src/modules/reports/ReportsService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,WAAW,EACZ,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,EACV,KAAK,EAKL,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,qBAAqB,CAAA;AAsB5B;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,oBAAoB,CAAA;IAC/B,MAAM,EAAE,YAAY,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,iBAAiB,CAAA;IACzB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,kFAAkF;IAClF,MAAM,EAAE,YAAY,CAAA;IACpB,6FAA6F;IAC7F,IAAI,EAAE,cAAc,EAAE,CAAA;IACtB,yFAAyF;IACzF,SAAS,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,0BAA0B;IACzC,iBAAiB,EAAE,iBAAiB,CAAA;IACpC;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAE,qBAAqB,CAAA;IAC7C,KAAK,EAAE,KAAK,CAAA;IACZ;;;;;OAKG;IACH,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,cAAc;IACb,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,0BAA0B,EAAI;IAE3D,SAAS,CACb,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,YAAY,EACpB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAC1B,OAAO,CAAC,WAAW,CAAC,CAsEtB;IAED;;;;;;;;;;;;;;;OAeG;IACG,SAAS,CACb,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,oBAAoB,EAC/B,MAAM,EAAE,YAAY,EACpB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,EAC3B,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,gBAAgB,CAAC,CA+B3B;IAED;;;;;OAKG;IACH,OAAO,CAAC,WAAW;CA6BpB"}
@@ -81,6 +81,54 @@ export class ReportsService {
81
81
  trend: { bucketMs, points: buildSpendTrend(trend, since, until, bucketMs) },
82
82
  };
83
83
  }
84
+ /**
85
+ * ONE spend dimension over the same window routing {@link ReportsService.summarize} uses:
86
+ * what the public `GET /api/v1/usage/spend` serves, and what a caller asking a single
87
+ * question (what did this repository cost, what did that ticket cost) actually needs.
88
+ *
89
+ * A separate method rather than a `dimension` option on `summarize`, because the two differ
90
+ * in what they COST: the panel renders every slice together and pays for eleven aggregates,
91
+ * where this is one `GROUP BY` and returning the other ten would be work nobody asked for.
92
+ * Everything else about it is deliberately the same read, so a number here and the same
93
+ * number in the panel come from one code path.
94
+ *
95
+ * `limit` bounds what is RETURNED, not what is aggregated: `totals` folds the window's whole
96
+ * population either way, so a capped breakdown still reports what was spent and only loses
97
+ * the identity of the tail. That is why the cap is applied here rather than pushed into the
98
+ * `GROUP BY` as a SQL `LIMIT`, which would take the totals down with it.
99
+ */
100
+ async breakdown(accountId, dimension, window, workspaceId, limit) {
101
+ const { windowMs, bucketMs, source: preferred } = REPORT_WINDOWS[window];
102
+ const until = this.deps.clock.now();
103
+ // The same snapped start the panel aggregates over, so a slice read here and the same
104
+ // slice read there cover the identical span rather than differing by a partial bucket.
105
+ const since = alignWindowStart(until, windowMs, bucketMs);
106
+ const { source, spend } = this.spendSource(preferred);
107
+ const [groups, rolledUpThrough] = await Promise.all([
108
+ spend.byDimension({ accountId, workspaceId: workspaceId ?? null }, dimension, {
109
+ since,
110
+ until,
111
+ }),
112
+ spend.watermark(),
113
+ ]);
114
+ const rows = groups.map(toSpendRow);
115
+ return {
116
+ dimension,
117
+ window,
118
+ generatedAt: until,
119
+ since,
120
+ currency: this.deps.currency,
121
+ source,
122
+ rolledUpThrough,
123
+ // Folded from ALL the rows rather than queried again: this breakdown partitions the
124
+ // window's whole ledger, so the two cannot disagree by construction. Folded BEFORE the
125
+ // cap for the same reason: a total over the returned prefix would under-report the
126
+ // window while still reading as the window's total.
127
+ totals: foldTotals(rows),
128
+ truncated: limit !== undefined && rows.length > limit,
129
+ rows: limit !== undefined ? rows.slice(0, limit) : rows,
130
+ };
131
+ }
84
132
  /**
85
133
  * Bind the window's spend reads to the store that serves them, and report which one that
86
134
  * turned out to be. The window PREFERS the rollup on the long windows; an unwired rollup
@@ -1 +1 @@
1
- {"version":3,"file":"ReportsService.js","sourceRoot":"","sources":["../../../src/modules/reports/ReportsService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ReportsService.js","sourceRoot":"","sources":["../../../src/modules/reports/ReportsService.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/orchestration",
3
- "version": "0.243.1",
3
+ "version": "0.245.0",
4
4
  "description": "Delivery-workflow engine for the Agent Architecture Board (execution, bootstrap, pipelines, board, boardScan, requirements, and composition root).",
5
5
  "repository": {
6
6
  "type": "git",
@@ -25,20 +25,20 @@
25
25
  },
26
26
  "dependencies": {
27
27
  "ai": "^7.0.51",
28
- "@cat-factory/agents": "0.119.1",
29
- "@cat-factory/caching": "0.18.17",
30
- "@cat-factory/contracts": "0.277.0",
31
- "@cat-factory/integrations": "0.152.2",
32
- "@cat-factory/kernel": "0.275.1",
33
- "@cat-factory/prompt-fragments": "1.0.26",
34
- "@cat-factory/sandbox": "0.11.103",
35
- "@cat-factory/spend": "0.15.44",
36
- "@cat-factory/workspaces": "0.26.16"
28
+ "@cat-factory/agents": "0.119.3",
29
+ "@cat-factory/caching": "0.18.19",
30
+ "@cat-factory/contracts": "0.279.0",
31
+ "@cat-factory/integrations": "0.152.4",
32
+ "@cat-factory/kernel": "0.275.3",
33
+ "@cat-factory/prompt-fragments": "1.0.28",
34
+ "@cat-factory/sandbox": "0.11.105",
35
+ "@cat-factory/spend": "0.15.46",
36
+ "@cat-factory/workspaces": "0.26.18"
37
37
  },
38
38
  "devDependencies": {
39
39
  "typescript": "7.0.2",
40
40
  "vitest": "^4.1.10",
41
- "@cat-factory/sandbox-fixtures": "0.7.312"
41
+ "@cat-factory/sandbox-fixtures": "0.7.314"
42
42
  },
43
43
  "scripts": {
44
44
  "build": "tsc -b tsconfig.build.json",