@cat-factory/kernel 0.179.0 → 0.182.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.
Files changed (35) hide show
  1. package/dist/domain/errors.d.ts +47 -1
  2. package/dist/domain/errors.d.ts.map +1 -1
  3. package/dist/domain/errors.js +55 -0
  4. package/dist/domain/errors.js.map +1 -1
  5. package/dist/domain/validation-detection.d.ts +101 -0
  6. package/dist/domain/validation-detection.d.ts.map +1 -0
  7. package/dist/domain/validation-detection.js +166 -0
  8. package/dist/domain/validation-detection.js.map +1 -0
  9. package/dist/domain/validation-detectors.d.ts +40 -0
  10. package/dist/domain/validation-detectors.d.ts.map +1 -0
  11. package/dist/domain/validation-detectors.js +441 -0
  12. package/dist/domain/validation-detectors.js.map +1 -0
  13. package/dist/index.d.ts +3 -1
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +3 -1
  16. package/dist/index.js.map +1 -1
  17. package/dist/ports/agent-context.d.ts +56 -0
  18. package/dist/ports/agent-context.d.ts.map +1 -1
  19. package/dist/ports/agent-search-queries.d.ts +19 -0
  20. package/dist/ports/agent-search-queries.d.ts.map +1 -1
  21. package/dist/ports/index.d.ts +5 -4
  22. package/dist/ports/index.d.ts.map +1 -1
  23. package/dist/ports/index.js +2 -1
  24. package/dist/ports/index.js.map +1 -1
  25. package/dist/ports/llm-metrics.d.ts +127 -0
  26. package/dist/ports/llm-metrics.d.ts.map +1 -1
  27. package/dist/ports/llm-metrics.js +9 -0
  28. package/dist/ports/llm-metrics.js.map +1 -1
  29. package/dist/ports/provisioning-log-repositories.d.ts +23 -2
  30. package/dist/ports/provisioning-log-repositories.d.ts.map +1 -1
  31. package/dist/ports/repositories.d.ts +72 -1
  32. package/dist/ports/repositories.d.ts.map +1 -1
  33. package/dist/ports/repositories.js +21 -1
  34. package/dist/ports/repositories.js.map +1 -1
  35. package/package.json +2 -2
@@ -14,11 +14,30 @@ export type RecordAgentSearchQueryInput = Omit<AgentSearchQuery, 'id' | 'created
14
14
  export interface AgentSearchQueryRecorder {
15
15
  record(input: RecordAgentSearchQueryInput): Promise<void>;
16
16
  }
17
+ /** A bounded, keyset-paginated query over one run's performed searches. */
18
+ export interface AgentSearchQueryPageQuery {
19
+ executionId: string;
20
+ limit: number;
21
+ /** EXCLUSIVE keyset on the `(createdAt, id)` composite the ordering uses. */
22
+ cursor?: {
23
+ createdAt: number;
24
+ id: string;
25
+ };
26
+ }
17
27
  export interface AgentSearchQueryRepository {
18
28
  /** Append one performed search query. */
19
29
  record(query: AgentSearchQuery): Promise<void>;
20
30
  /** Queries recorded for a run, newest first. */
21
31
  listByExecution(workspaceId: string, executionId: string): Promise<AgentSearchQuery[]>;
32
+ /**
33
+ * One BOUNDED page of a run's searches, newest first. Unlike the other two telemetry
34
+ * sinks these rows carry no unbounded body (the query text is capped at capture time), so
35
+ * the page returns them whole — the bound it adds is on ROW COUNT, which a search-heavy
36
+ * run still needs.
37
+ */
38
+ listPage(workspaceId: string, query: AgentSearchQueryPageQuery): Promise<AgentSearchQuery[]>;
39
+ /** How many searches the run performed — one indexed COUNT, no rows read. */
40
+ countByExecution(workspaceId: string, executionId: string): Promise<number>;
22
41
  /**
23
42
  * Retention: delete rows older than `epochMs` (exclusive), returning how many were
24
43
  * removed. Pruned to the same window as the per-call LLM telemetry.
@@ -1 +1 @@
1
- {"version":3,"file":"agent-search-queries.d.ts","sourceRoot":"","sources":["../../src/ports/agent-search-queries.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAC9D,YAAY,EAAE,gBAAgB,EAAE,CAAA;AAEhC;;;GAGG;AACH,MAAM,MAAM,2BAA2B,GAAG,IAAI,CAAC,gBAAgB,EAAE,IAAI,GAAG,WAAW,CAAC,CAAA;AAEpF;;;;;GAKG;AACH,MAAM,WAAW,wBAAwB;IACvC,MAAM,CAAC,KAAK,EAAE,2BAA2B,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC1D;AAED,MAAM,WAAW,0BAA0B;IACzC,yCAAyC;IACzC,MAAM,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9C,gDAAgD;IAChD,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAA;IACtF;;;OAGG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;CAClD"}
1
+ {"version":3,"file":"agent-search-queries.d.ts","sourceRoot":"","sources":["../../src/ports/agent-search-queries.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAC9D,YAAY,EAAE,gBAAgB,EAAE,CAAA;AAEhC;;;GAGG;AACH,MAAM,MAAM,2BAA2B,GAAG,IAAI,CAAC,gBAAgB,EAAE,IAAI,GAAG,WAAW,CAAC,CAAA;AAEpF;;;;;GAKG;AACH,MAAM,WAAW,wBAAwB;IACvC,MAAM,CAAC,KAAK,EAAE,2BAA2B,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC1D;AAED,2EAA2E;AAC3E,MAAM,WAAW,yBAAyB;IACxC,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,6EAA6E;IAC7E,MAAM,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;CAC3C;AAED,MAAM,WAAW,0BAA0B;IACzC,yCAAyC;IACzC,MAAM,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9C,gDAAgD;IAChD,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAA;IACtF;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAA;IAC5F,6EAA6E;IAC7E,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAC3E;;;OAGG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;CAClD"}
@@ -1,4 +1,5 @@
1
1
  export type { BlockPatch, BlockRepository, ExecutionRepository, LiveRunSummary, PipelineRepository, PreloadedBlocks, RunRef, ServiceRehome, WorkspaceRepository, WorkspaceVisibility, } from './repositories.js';
2
+ export { LIVE_EXECUTION_STATUSES } from './repositories.js';
2
3
  export type { AccountRecord, AccountRepository, AccountSettingsPatch, Membership, MembershipRepository, } from './account-repositories.js';
3
4
  export type { WorkspaceMemberRecord, WorkspaceMemberRepository, } from './workspace-member-repositories.js';
4
5
  export type { IdentityProvider, UserRecord, UserIdentityRecord, UserRepository, } from './user-repositories.js';
@@ -20,12 +21,12 @@ export type { AgentRunRef, AgentRunRepository, StaleAgentRun } from './agent-run
20
21
  export type { HarnessKind, ModelProvider, ModelProviderResolver, ModelRef, ModelScope, } from './model-provider.js';
21
22
  export { inlineModelRef, resolveScopedModelProvider } from './model-provider.js';
22
23
  export type { TokenUsageRecord, TokenUsageRepository, TokenUsageTotals, UsageBilling, UsageBreakdownRow, } from './token-usage.js';
23
- export type { LlmCallMetric, LlmCallMetricRepository, LlmCallMetricSummary, LlmPromptChainTip, } from './llm-metrics.js';
24
- export { LLM_WARNING_FINISH_REASONS } from './llm-metrics.js';
24
+ export type { LlmCallBodySlice, LlmCallBodyWindow, LlmCallMetric, LlmCallMetricPage, LlmCallMetricRepository, LlmCallMetricSummary, LlmCallOutcomeFilter, LlmCallPageQuery, LlmPromptChainTip, } from './llm-metrics.js';
25
+ export { LLM_WARNING_FINISH_REASONS, escapeLikePattern } from './llm-metrics.js';
25
26
  export type { PlatformDurationStats, PlatformFailureCount, PlatformLiveCounts, PlatformMetricsRepository, PlatformRunOutcome, PlatformRunTrendPoint, } from './platform-metrics.js';
26
27
  export type { ReportActivityGroup, ReportRange, ReportScope, ReportSpendGroup, ReportSpendTrendBucket, ReportsRepository, } from './reports.js';
27
- export type { AgentContextFile, AgentContextFragment, AgentContextRecorder, AgentContextSnapshot, AgentContextSnapshotRepository, RecordAgentContextInput, } from './agent-context.js';
28
- export type { AgentSearchQuery, AgentSearchQueryRecorder, AgentSearchQueryRepository, RecordAgentSearchQueryInput, } from './agent-search-queries.js';
28
+ export type { AgentContextFile, AgentContextFragment, AgentContextIndexQuery, AgentContextRecorder, AgentContextSnapshot, AgentContextSnapshotIndex, AgentContextSnapshotRepository, RecordAgentContextInput, } from './agent-context.js';
29
+ export type { AgentSearchQuery, AgentSearchQueryPageQuery, AgentSearchQueryRecorder, AgentSearchQueryRepository, RecordAgentSearchQueryInput, } from './agent-search-queries.js';
29
30
  export type { LlmGenerationEvent, LlmToolSpan, LlmToolSpanContext, LlmTraceSink, InlineObservabilityContext, } from './llm-trace-sink.js';
30
31
  export { INLINE_OBSERVABILITY_NS, CompositeTraceSink, catFactoryObservability, composeTraceSinks, readInlineObservabilityContext, } from './llm-trace-sink.js';
31
32
  export type { AgentDecisionRequest, AgentExecutor, AgentJobHandle, AgentJobUpdate, AgentRunContext, AgentRunResult, AgentTokenUsage, AsyncAgentExecutor, } from './agent-executor.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ports/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ports/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
+ export { LIVE_EXECUTION_STATUSES } from './repositories.js';
1
2
  export { createRecordingLogger, noopLogger, } from './logging.js';
2
3
  export { inlineModelRef, resolveScopedModelProvider } from './model-provider.js';
3
- export { LLM_WARNING_FINISH_REASONS } from './llm-metrics.js';
4
+ export { LLM_WARNING_FINISH_REASONS, escapeLikePattern } from './llm-metrics.js';
4
5
  export { INLINE_OBSERVABILITY_NS, CompositeTraceSink, catFactoryObservability, composeTraceSinks, readInlineObservabilityContext, } from './llm-trace-sink.js';
5
6
  export { isAsyncAgentExecutor } from './agent-executor.js';
6
7
  export { NoopWorkRunner } from './work-runner.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ports/index.ts"],"names":[],"mappings":"AAsDA,OAAO,EAKL,qBAAqB,EACrB,UAAU,GACX,MAAM,cAAc,CAAA;AAmBrB,OAAO,EAAE,cAAc,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAA;AAchF,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAA;AAsC7D,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EACjB,8BAA8B,GAC/B,MAAM,qBAAqB,CAAA;AAW5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAE1D,OAAO,EAAmB,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAClE,OAAO,EAAgC,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAmCxF,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AA8BpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAA;AA2DjE,OAAO,EACL,+BAA+B,EAC/B,0BAA0B,EAC1B,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,sBAAsB,CAAA;AAoC7B,OAAO,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAW/E,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAqC7E,OAAO,EAAwB,wBAAwB,EAAE,MAAM,wBAAwB,CAAA;AAiCvF,OAAO,EAAwB,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAWjF,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAA;AAOlE,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAA;AAgBjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AAEhE,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AA+EvF,OAAO,EAAE,mCAAmC,EAAE,MAAM,0BAA0B,CAAA;AA8F9E,OAAO,EAAE,iCAAiC,EAAE,MAAM,wCAAwC,CAAA;AAQ1F,OAAO,EAAE,mCAAmC,EAAE,MAAM,0CAA0C,CAAA;AAC9F,OAAO,EAGL,4BAA4B,EAC5B,uBAAuB,GACxB,MAAM,2BAA2B,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ports/index.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AA2C3D,OAAO,EAKL,qBAAqB,EACrB,UAAU,GACX,MAAM,cAAc,CAAA;AAmBrB,OAAO,EAAE,cAAc,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAA;AAmBhF,OAAO,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAyChF,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EACjB,8BAA8B,GAC/B,MAAM,qBAAqB,CAAA;AAW5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAE1D,OAAO,EAAmB,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAClE,OAAO,EAAgC,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAmCxF,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AA8BpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAA;AA2DjE,OAAO,EACL,+BAA+B,EAC/B,0BAA0B,EAC1B,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,sBAAsB,CAAA;AAoC7B,OAAO,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAW/E,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAqC7E,OAAO,EAAwB,wBAAwB,EAAE,MAAM,wBAAwB,CAAA;AAiCvF,OAAO,EAAwB,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAWjF,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAA;AAOlE,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAA;AAgBjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AAEhE,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AA+EvF,OAAO,EAAE,mCAAmC,EAAE,MAAM,0BAA0B,CAAA;AA8F9E,OAAO,EAAE,iCAAiC,EAAE,MAAM,wCAAwC,CAAA;AAQ1F,OAAO,EAAE,mCAAmC,EAAE,MAAM,0CAA0C,CAAA;AAC9F,OAAO,EAGL,4BAA4B,EAC5B,uBAAuB,GACxB,MAAM,2BAA2B,CAAA"}
@@ -152,6 +152,112 @@ export interface LlmPromptChainTip {
152
152
  /** The call's {@link LlmCallMetric.promptHash}. */
153
153
  promptHash: string;
154
154
  }
155
+ /**
156
+ * A stored text body sliced to a caller's budget, plus the length of what is stored. The
157
+ * two travel together because they answer different questions and one without the other
158
+ * misleads: an empty `text` with `totalChars: 0` means the model returned nothing, while an
159
+ * empty `text` with `totalChars: 40000` means the caller asked for no body bytes.
160
+ *
161
+ * `totalChars` is computed in SQL (`length(col)`), so a page that asks for no bodies still
162
+ * reports every size without the text columns ever leaving the store.
163
+ */
164
+ export interface LlmCallBodySlice {
165
+ /** `min(budget, remaining)` characters of the stored body, starting at the slice offset. */
166
+ text: string;
167
+ /** Full stored length of the body. */
168
+ totalChars: number;
169
+ /**
170
+ * 0-based CODE-POINT offset of the first case-insensitive occurrence of the page query's
171
+ * `contains` term in THIS body, or null when the term does not occur here (the row matched
172
+ * via a sibling body). Only set when the query searched — a plain page carries no offsets.
173
+ * Computed in SQL (`instr`/`position`, both of which count characters like `substr` does),
174
+ * so it composes directly with a point read's slice offset: a caller jumps to the match
175
+ * without transferring the bytes before it.
176
+ */
177
+ matchOffset?: number | null;
178
+ }
179
+ /**
180
+ * Escape a literal term for use inside a SQL `LIKE`/`ILIKE` pattern with `\` as the escape
181
+ * character (Postgres' default; SQLite is told via `ESCAPE '\'`). Shared by both runtime
182
+ * stores so a term containing `%`/`_` narrows to the literal text on each, never to a
183
+ * wildcard match on one runtime only.
184
+ */
185
+ export declare function escapeLikePattern(term: string): string;
186
+ /** The slice window a point read applies to each stored body, in code points. */
187
+ export interface LlmCallBodyWindow {
188
+ /** Max characters to return per body; omit for the whole body from `offset` on. */
189
+ chars?: number;
190
+ /** 0-based code-point offset the slice starts at; omit for 0 (the head). */
191
+ offset?: number;
192
+ }
193
+ /**
194
+ * One row of a BOUNDED page over the call log — the shape the remote debugging surface
195
+ * reads. It is {@link LlmCallMetric} with the three unbounded text columns replaced by
196
+ * budgeted slices (and the chain hash, which is storage bookkeeping, dropped).
197
+ *
198
+ * It exists alongside {@link LlmCallMetric} rather than replacing it because the two reads
199
+ * genuinely differ: the metrics EXPORT needs whole bodies and the intact delta chain so it
200
+ * can reconstruct full prompts, while a page walked by a remote client must never be able
201
+ * to return more bytes than the caller budgeted for.
202
+ */
203
+ export interface LlmCallMetricPage extends Omit<LlmCallMetric, 'promptText' | 'responseText' | 'reasoningText' | 'promptHash'> {
204
+ /** The messages this call APPENDED (see {@link LlmCallMetric.promptText}), sliced. */
205
+ prompt: LlmCallBodySlice;
206
+ response: LlmCallBodySlice;
207
+ reasoning: LlmCallBodySlice;
208
+ }
209
+ /** Outcome classes a call page may narrow to, applied in SQL. */
210
+ export type LlmCallOutcomeFilter = 'ok' | 'warning' | 'error';
211
+ /** A bounded, keyset-paginated query over one run's calls. */
212
+ export interface LlmCallPageQuery {
213
+ executionId: string;
214
+ /** Narrow to one step kind's conversation. */
215
+ agentKind?: string;
216
+ /**
217
+ * Narrow to one PHASE's calls (see {@link LlmCallMetric.phase}) — an exact match, applied in
218
+ * SQL like {@link LlmCallPageQuery.agentKind}. `''` is a queryable value, not "no filter": it
219
+ * selects the unattributed slice, which is the only way to ask "what did the un-phased
220
+ * channels spend" without paging the whole run.
221
+ */
222
+ phase?: string;
223
+ /**
224
+ * Narrow to a single outcome class. `error` is `ok = 0`; `warning` is a successful call
225
+ * whose finish reason is in {@link LLM_WARNING_FINISH_REASONS}; `ok` is the rest.
226
+ */
227
+ outcome?: LlmCallOutcomeFilter;
228
+ /**
229
+ * Chronological direction. `newest` (the default) is triage order; `oldest` walks a
230
+ * conversation forwards, which is how a caller reads an agent kind's prompt deltas back
231
+ * into a transcript.
232
+ */
233
+ order?: 'newest' | 'oldest';
234
+ /** Hard cap on rows returned. */
235
+ limit: number;
236
+ /**
237
+ * EXCLUSIVE keyset on the `(createdAt, id)` composite the ordering uses — not a bare
238
+ * timestamp, because calls are recorded off the response path and a burst shares a
239
+ * millisecond, which a timestamp-only cursor would silently drop from the next page.
240
+ */
241
+ cursor?: {
242
+ createdAt: number;
243
+ id: string;
244
+ };
245
+ /**
246
+ * Per-body slice budget in characters. 0 means the text columns are not read at all (only
247
+ * their `length()`), so a sweep over a long run costs no body bytes.
248
+ */
249
+ bodyChars: number;
250
+ /**
251
+ * Narrow to calls whose prompt delta, response or reasoning contains this literal substring,
252
+ * matched case-insensitively IN SQL — the grep a debugging client roots a stuck tool loop
253
+ * with, collapsed to one indexed-scan query instead of paging every body through the caller.
254
+ * `%`/`_` in the term match literally (escaped via {@link escapeLikePattern}). Case folding
255
+ * is ASCII on SQLite (`LIKE`'s default) and locale-aware on Postgres (`ILIKE`); conformance
256
+ * pins the ASCII behaviour the two share. Matched rows report a per-body
257
+ * {@link LlmCallBodySlice.matchOffset}.
258
+ */
259
+ contains?: string;
260
+ }
155
261
  export interface LlmCallMetricRepository {
156
262
  /**
157
263
  * Append one metered call, IGNORING a call whose {@link LlmCallMetric.id} is already stored.
@@ -188,6 +294,27 @@ export interface LlmCallMetricRepository {
188
294
  * that kind's newest calls rather than on the run's other kinds crowding them out.
189
295
  */
190
296
  listByExecution(workspaceId: string, executionId: string, limit?: number, agentKind?: string): Promise<LlmCallMetric[]>;
297
+ /**
298
+ * One BOUNDED, keyset-paginated page of a run's calls with each text body sliced to the
299
+ * query's budget — the read the remote debugging surface walks. Distinct from
300
+ * {@link LlmCallMetricRepository.listByExecution}, which returns whole bodies for the
301
+ * export: this one can never return more bytes than `limit x 3 x bodyChars`, which is what
302
+ * makes it safe to expose to a client that pages through a long run.
303
+ *
304
+ * Every filter (`agentKind`, `outcome`) and the slicing itself are applied IN SQL, so a
305
+ * narrowed or un-previewed page does not read rows (or text columns) it will discard.
306
+ */
307
+ listPage(workspaceId: string, query: LlmCallPageQuery): Promise<LlmCallMetricPage[]>;
308
+ /**
309
+ * One call by id, each body sliced to the window (omit for the whole stored bodies). The
310
+ * window's `offset` is what makes the TAIL of a large body reachable — the last tool result
311
+ * in a long delta, the end of a build log — without transferring the bytes before it; the
312
+ * slice happens in SQL (`substr(col, offset + 1, chars)`), like the page's.
313
+ * Keyed by the call's own id — the page hands the caller that id, so requiring the run id
314
+ * too would only create a mismatched pair that 404s inexplicably. Scoped to the workspace,
315
+ * so a foreign id is indistinguishable from a missing one.
316
+ */
317
+ get(workspaceId: string, id: string, body?: LlmCallBodyWindow): Promise<LlmCallMetricPage | null>;
191
318
  /**
192
319
  * Per-agent-kind aggregates for a run, for the board rollups. Aggregates in SQL
193
320
  * and deliberately selects no text columns, so it is cheap to run on every emit.
@@ -1 +1 @@
1
- {"version":3,"file":"llm-metrics.d.ts","sourceRoot":"","sources":["../../src/ports/llm-metrics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"llm-metrics.d.ts","sourceRoot":"","sources":["../../src/ports/llm-metrics.ts"],"names":[],"mappings":"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"}
@@ -13,4 +13,13 @@
13
13
  * classification and each repo's summary aggregation so the two runtimes agree.
14
14
  */
15
15
  export const LLM_WARNING_FINISH_REASONS = ['length', 'content_filter'];
16
+ /**
17
+ * Escape a literal term for use inside a SQL `LIKE`/`ILIKE` pattern with `\` as the escape
18
+ * character (Postgres' default; SQLite is told via `ESCAPE '\'`). Shared by both runtime
19
+ * stores so a term containing `%`/`_` narrows to the literal text on each, never to a
20
+ * wildcard match on one runtime only.
21
+ */
22
+ export function escapeLikePattern(term) {
23
+ return term.replace(/[\\%_]/g, (ch) => `\\${ch}`);
24
+ }
16
25
  //# sourceMappingURL=llm-metrics.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"llm-metrics.js","sourceRoot":"","sources":["../../src/ports/llm-metrics.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,kFAAkF;AAClF,mFAAmF;AACnF,iFAAiF;AACjF,kFAAkF;AAClF,+EAA+E;AAC/E,iFAAiF;AACjF,oFAAoF;AACpF,gDAAgD;AAEhD;;;;GAIG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,QAAQ,EAAE,gBAAgB,CAAU,CAAA"}
1
+ {"version":3,"file":"llm-metrics.js","sourceRoot":"","sources":["../../src/ports/llm-metrics.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,kFAAkF;AAClF,mFAAmF;AACnF,iFAAiF;AACjF,kFAAkF;AAClF,+EAA+E;AAC/E,iFAAiF;AACjF,oFAAoF;AACpF,gDAAgD;AAEhD;;;;GAIG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,QAAQ,EAAE,gBAAgB,CAAU,CAAA;AAkL/E;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;AACnD,CAAC"}
@@ -28,14 +28,35 @@ export interface ProvisioningLogQuery {
28
28
  targetId?: string;
29
29
  /** Cap on rows returned (the read service clamps to a hard maximum). */
30
30
  limit?: number;
31
- /** Keyset on `createdAt` (exclusive) for paging older rows. */
32
- before?: number;
31
+ /**
32
+ * EXCLUSIVE keyset for paging older rows, on the `(createdAt, id)` composite the ordering
33
+ * uses. A bare `createdAt` bound is NOT enough: provisioning attempts are appended in
34
+ * bursts (a run brings several containers up at once) and rows sharing a millisecond would
35
+ * be silently dropped from the next page — invisible to the caller, and worst on exactly
36
+ * the noisy runs someone is paging through to debug.
37
+ */
38
+ cursor?: {
39
+ createdAt: number;
40
+ id: string;
41
+ };
33
42
  }
34
43
  export interface ProvisioningLogRepository {
35
44
  /** Append one provisioning attempt. */
36
45
  append(record: ProvisioningLogRecord): Promise<void>;
37
46
  /** Rows for a workspace matching the query, newest first. */
38
47
  list(workspaceId: string, query?: ProvisioningLogQuery): Promise<ProvisioningLogRecord[]>;
48
+ /**
49
+ * How many attempts were logged for a run, and how many of them failed — ONE aggregate pass
50
+ * (`COUNT` + a conditional `SUM`), no rows read. The pair travels together because the run
51
+ * overview always wants both, and two separate COUNTs over the same rows would double the
52
+ * round trips only to risk disagreeing with each other. The failure count is what lets an
53
+ * overview state "3 provisioning failures" without paging the log: for a run whose container
54
+ * never came up there is no LLM telemetry at all, so this is the only count that explains it.
55
+ */
56
+ countByExecution(workspaceId: string, executionId: string): Promise<{
57
+ total: number;
58
+ failures: number;
59
+ }>;
39
60
  /**
40
61
  * Retention: delete rows older than `epochMs` (exclusive), returning how many
41
62
  * were removed. The store is high-churn, so it is pruned to a configured window
@@ -1 +1 @@
1
- {"version":3,"file":"provisioning-log-repositories.d.ts","sourceRoot":"","sources":["../../src/ports/provisioning-log-repositories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,oBAAoB,CAAA;AAe3B,yCAAyC;AACzC,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAA;IACV,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,qBAAqB,CAAA;IAChC,SAAS,EAAE,qBAAqB,CAAA;IAChC,yEAAyE;IACzE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,wEAAwE;IACxE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,2DAA2D;IAC3D,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,oFAAoF;IACpF,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,OAAO,EAAE,mBAAmB,CAAA;IAC5B,2EAA2E;IAC3E,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,yFAAyF;IACzF,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,yFAAyF;AACzF,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,EAAE,qBAAqB,CAAA;IACjC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,wEAAwE;IACxE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,+DAA+D;IAC/D,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,yBAAyB;IACxC,uCAAuC;IACvC,MAAM,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACpD,6DAA6D;IAC7D,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAA;IACzF;;;;OAIG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;CAClD"}
1
+ {"version":3,"file":"provisioning-log-repositories.d.ts","sourceRoot":"","sources":["../../src/ports/provisioning-log-repositories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,oBAAoB,CAAA;AAe3B,yCAAyC;AACzC,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAA;IACV,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,qBAAqB,CAAA;IAChC,SAAS,EAAE,qBAAqB,CAAA;IAChC,yEAAyE;IACzE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,wEAAwE;IACxE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,2DAA2D;IAC3D,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,oFAAoF;IACpF,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,OAAO,EAAE,mBAAmB,CAAA;IAC5B,2EAA2E;IAC3E,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,yFAAyF;IACzF,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,yFAAyF;AACzF,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,EAAE,qBAAqB,CAAA;IACjC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,wEAAwE;IACxE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;;;;OAMG;IACH,MAAM,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;CAC3C;AAED,MAAM,WAAW,yBAAyB;IACxC,uCAAuC;IACvC,MAAM,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACpD,6DAA6D;IAC7D,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAA;IACzF;;;;;;;OAOG;IACH,gBAAgB,CACd,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC/C;;;;OAIG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;CAClD"}
@@ -211,6 +211,23 @@ export interface PreloadedBlocks {
211
211
  workspaceId: string;
212
212
  blocks: Block[];
213
213
  }
214
+ /**
215
+ * The execution statuses that count as LIVE: a run in one of these has not settled, holds its
216
+ * block, and occupies a workspace concurrency slot. Shared by {@link ExecutionRepository.listLive}
217
+ * and {@link ExecutionRepository.countActiveByWorkspace} in BOTH runtime repos, so the projection
218
+ * and the capacity COUNT cannot drift apart into a cap checked against a set the board disagrees
219
+ * with (`docs/initiatives/run-admission-control.md`).
220
+ *
221
+ * It is the complement of the terminal statuses over {@link ExecutionStatus}, so a new status has
222
+ * to be classified here rather than silently falling out of both reads.
223
+ *
224
+ * NOT to be reused for the `insertLive` cleanup/ON CONFLICT predicates. Those mirror the frozen
225
+ * partial unique index `uniq_live_execution_per_block`, whose predicate lives in shipped
226
+ * migrations and can only change by migrating both stores — pointing them at a constant a later
227
+ * slice may edit would silently retarget an ON CONFLICT at a predicate no index matches. Same
228
+ * literal today, different invariant.
229
+ */
230
+ export declare const LIVE_EXECUTION_STATUSES: readonly ["running", "blocked", "paused"];
214
231
  export interface ExecutionRepository {
215
232
  listByWorkspace(workspaceId: string): Promise<ExecutionInstance[]>;
216
233
  /**
@@ -220,9 +237,33 @@ export interface ExecutionRepository {
220
237
  * blocks) and `resumePaused` (needs the paused runs' ids), both of which previously loaded
221
238
  * and JSON-decoded EVERY historical run in the workspace via {@link listByWorkspace} only to
222
239
  * discard all but the handful of live rows — so this scales with concurrency, not run history.
223
- * Served by the `(workspace_id, kind, status)` index. Empty when no run is live.
240
+ * Served by the `(workspace_id, kind, status)` index. Empty when no run is live. The predicate
241
+ * is {@link LIVE_EXECUTION_STATUSES}, shared with {@link countActiveByWorkspace}.
224
242
  */
225
243
  listLive(workspaceId: string): Promise<LiveRunSummary[]>;
244
+ /**
245
+ * How many of the workspace's execution runs currently OCCUPY A CONCURRENCY SLOT, as one
246
+ * SQL `COUNT` over the same `(workspace_id, kind, status)` index {@link listLive} rides.
247
+ * Backs run admission control: the cap check in front of the durable driver reads a number,
248
+ * never a row set, so it costs the same whether the workspace has three live runs or three
249
+ * hundred (`docs/initiatives/run-admission-control.md`).
250
+ *
251
+ * "Active" is deliberately the SAME predicate as {@link listLive} — the shared
252
+ * {@link LIVE_EXECUTION_STATUSES}, so the two cannot drift by editing one query. `blocked`
253
+ * (parked on a human decision) and `paused` (spend-paused) are in it: a parked run has no
254
+ * container in flight, but it holds its block and resumes WITHOUT passing admission again, so
255
+ * excluding it would let a workspace exceed its cap simply by parking — every parked run that
256
+ * resumes lands on top of whatever was admitted in its place.
257
+ *
258
+ * The two stay one set only while "not settled" and "occupies a slot" mean the same thing. The
259
+ * `queued` state slice 2 introduces is the first that splits them (queued runs are pre-admission
260
+ * — they must never be counted here, or nothing is ever promoted), and it is what turns this
261
+ * shared constant into two; see the initiative's gotchas before adding a status.
262
+ *
263
+ * Scoped to `kind = 'execution'`, so a live bootstrap job sharing the `agent_runs` table is
264
+ * never counted against a run cap it has nothing to do with.
265
+ */
266
+ countActiveByWorkspace(workspaceId: string): Promise<number>;
226
267
  /**
227
268
  * Every execution belonging to a service, regardless of which workspace it ran under.
228
269
  * Backs the board snapshot for a service mounted from another workspace in the same org,
@@ -260,7 +301,37 @@ export interface ExecutionRepository {
260
301
  statuses?: ExecutionStatus[];
261
302
  since?: number;
262
303
  }): Promise<ExecutionInstance[]>;
304
+ /**
305
+ * One BOUNDED page of the workspace's runs, newest first (`created_at DESC, id DESC`) —
306
+ * the run index the remote debugging surface leads with.
307
+ *
308
+ * The sibling of {@link ExecutionRepository.listInternal}, and deliberately WITHOUT its
309
+ * anchor-block join: the public JOB surface may only ever surface runs it created, whereas
310
+ * a debugger that cannot see the run that failed is useless — a service frame's blueprint
311
+ * run and a recurring bug-intake fire are exactly the ones someone asks about. The scope
312
+ * that remains is the workspace, which is the whole reach of the key doing the asking.
313
+ *
314
+ * Same keyset contract as `listInternal` (composite `(createdAt, id)`, exclusive), and the
315
+ * same reason for it. NOT {@link ExecutionRepository.listByWorkspace} with a slice: that
316
+ * one reads and JSON-decodes every historical run in the workspace before anything is
317
+ * discarded, which is precisely what a paginated surface must not do.
318
+ */
319
+ listRecent(workspaceId: string, opts: {
320
+ limit: number;
321
+ cursor?: {
322
+ createdAt: number;
323
+ id: string;
324
+ };
325
+ statuses?: ExecutionStatus[];
326
+ since?: number;
327
+ }): Promise<ExecutionInstance[]>;
263
328
  get(workspaceId: string, id: string): Promise<ExecutionInstance | null>;
329
+ /**
330
+ * Whether the workspace has this run — one indexed probe that decodes NOTHING. The 404
331
+ * guard the per-run debug lists apply on EVERY page: answering it with `get` would
332
+ * JSON-decode the heaviest row in the request only to discard it.
333
+ */
334
+ exists(workspaceId: string, id: string): Promise<boolean>;
264
335
  getByBlock(workspaceId: string, blockId: string): Promise<ExecutionInstance | null>;
265
336
  /**
266
337
  * Persist the run (force-write). Bumps the row's monotonic `rev` on every write so a
@@ -1 +1 @@
1
- {"version":3,"file":"repositories.d.ts","sourceRoot":"","sources":["../../src/ports/repositories.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repositories.d.ts","sourceRoot":"","sources":["../../src/ports/repositories.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,22 @@
1
- export {};
1
+ /**
2
+ * The execution statuses that count as LIVE: a run in one of these has not settled, holds its
3
+ * block, and occupies a workspace concurrency slot. Shared by {@link ExecutionRepository.listLive}
4
+ * and {@link ExecutionRepository.countActiveByWorkspace} in BOTH runtime repos, so the projection
5
+ * and the capacity COUNT cannot drift apart into a cap checked against a set the board disagrees
6
+ * with (`docs/initiatives/run-admission-control.md`).
7
+ *
8
+ * It is the complement of the terminal statuses over {@link ExecutionStatus}, so a new status has
9
+ * to be classified here rather than silently falling out of both reads.
10
+ *
11
+ * NOT to be reused for the `insertLive` cleanup/ON CONFLICT predicates. Those mirror the frozen
12
+ * partial unique index `uniq_live_execution_per_block`, whose predicate lives in shipped
13
+ * migrations and can only change by migrating both stores — pointing them at a constant a later
14
+ * slice may edit would silently retarget an ON CONFLICT at a predicate no index matches. Same
15
+ * literal today, different invariant.
16
+ */
17
+ export const LIVE_EXECUTION_STATUSES = [
18
+ 'running',
19
+ 'blocked',
20
+ 'paused',
21
+ ];
2
22
  //# sourceMappingURL=repositories.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"repositories.js","sourceRoot":"","sources":["../../src/ports/repositories.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"repositories.js","sourceRoot":"","sources":["../../src/ports/repositories.ts"],"names":[],"mappings":"AA2OA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,SAAS;IACT,SAAS;IACT,QAAQ;CACqC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/kernel",
3
- "version": "0.179.0",
3
+ "version": "0.182.0",
4
4
  "description": "Shared vocabulary, pure logic, and port interfaces for the Agent Architecture Board.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -26,7 +26,7 @@
26
26
  "dependencies": {
27
27
  "ai": "^7.0.37",
28
28
  "yaml": "^2.9.0",
29
- "@cat-factory/contracts": "0.186.0"
29
+ "@cat-factory/contracts": "0.188.0"
30
30
  },
31
31
  "devDependencies": {
32
32
  "@vitest/coverage-v8": "^4.1.10",