@cat-factory/kernel 0.214.1 → 0.215.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.
- package/dist/domain/binary-generator-registry.d.ts +66 -0
- package/dist/domain/binary-generator-registry.d.ts.map +1 -0
- package/dist/domain/binary-generator-registry.js +89 -0
- package/dist/domain/binary-generator-registry.js.map +1 -0
- package/dist/domain/binary-generators.d.ts +97 -0
- package/dist/domain/binary-generators.d.ts.map +1 -0
- package/dist/domain/binary-generators.js +212 -0
- package/dist/domain/binary-generators.js.map +1 -0
- package/dist/domain/binary-output-paths.d.ts +25 -0
- package/dist/domain/binary-output-paths.d.ts.map +1 -0
- package/dist/domain/binary-output-paths.js +47 -0
- package/dist/domain/binary-output-paths.js.map +1 -0
- package/dist/domain/binary-outputs.d.ts +24 -18
- package/dist/domain/binary-outputs.d.ts.map +1 -1
- package/dist/domain/binary-outputs.js +78 -45
- package/dist/domain/binary-outputs.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -1
- package/dist/index.js.map +1 -1
- package/dist/ports/agent-executor.d.ts +13 -0
- package/dist/ports/agent-executor.d.ts.map +1 -1
- package/dist/ports/agent-executor.js.map +1 -1
- package/dist/ports/agent-runs.d.ts +22 -0
- package/dist/ports/agent-runs.d.ts.map +1 -1
- package/dist/ports/agent-tools.d.ts +36 -13
- package/dist/ports/agent-tools.d.ts.map +1 -1
- package/dist/ports/index.d.ts +3 -2
- package/dist/ports/index.d.ts.map +1 -1
- package/dist/ports/index.js +1 -0
- package/dist/ports/index.js.map +1 -1
- package/dist/ports/llm-trace-sink.d.ts +26 -5
- package/dist/ports/llm-trace-sink.d.ts.map +1 -1
- package/dist/ports/llm-trace-sink.js +52 -56
- package/dist/ports/llm-trace-sink.js.map +1 -1
- package/dist/ports/operational-metrics.d.ts +87 -0
- package/dist/ports/operational-metrics.d.ts.map +1 -0
- package/dist/ports/operational-metrics.js +67 -0
- package/dist/ports/operational-metrics.js.map +1 -0
- package/package.json +2 -2
|
@@ -1,28 +1,51 @@
|
|
|
1
1
|
import type { McpSecretRef } from '../domain/agent-capabilities.js';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
3
|
+
* WHAT a credential is being resolved for. A discriminated subject rather than a bare id,
|
|
4
|
+
* because two different registries mint these ids and nothing stops them colliding: a
|
|
5
|
+
* deployment may register a `retro-diffusion` tool server AND a `retro-diffusion` generative
|
|
6
|
+
* integration, and a per-workspace resolver keyed on the id alone would hand each the other's
|
|
7
|
+
* secret. The env-backed default resolver ignores the subject entirely (it looks up the KEY),
|
|
8
|
+
* so the discriminator costs nothing until a deployment scopes by it.
|
|
9
|
+
*/
|
|
10
|
+
export type ToolSecretSubject =
|
|
11
|
+
/** A tool server (MCP) an agent kind declared — see `McpServerDefinition`. */
|
|
12
|
+
{
|
|
13
|
+
kind: 'tool-server';
|
|
14
|
+
id: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* A generative binary integration a STEP selected — see `BinaryGeneratorRegistry`. Its
|
|
18
|
+
* resolved value never reaches a prompt or the telemetry snapshot either; it rides the job
|
|
19
|
+
* body and becomes an environment variable of that one job's agent process.
|
|
20
|
+
*/
|
|
21
|
+
| {
|
|
22
|
+
kind: 'binary-generator';
|
|
23
|
+
id: string;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Resolves the credentials a declared CAPABILITY needs, per dispatch. The port exists so the
|
|
27
|
+
* SECRET half of a capability is a deployment concern the facade owns, while the DEFINITION
|
|
28
|
+
* stays static composition-root data on an app-owned registry.
|
|
6
29
|
*
|
|
7
30
|
* Both facades wire the deployment-environment resolver by default (`createEnvToolSecretResolver`
|
|
8
31
|
* in `@cat-factory/server`), which reads each declared key off the deployment's own configured
|
|
9
|
-
* environment — so a tool server works with no new storage, no table
|
|
10
|
-
* needs PER-WORKSPACE credentials implements this port instead
|
|
11
|
-
* nothing else in the dispatch path changes.
|
|
32
|
+
* environment — so a tool server or a generative integration works with no new storage, no table
|
|
33
|
+
* and no UI. A deployment that needs PER-WORKSPACE credentials implements this port instead
|
|
34
|
+
* (reading its own sealed store); nothing else in the dispatch path changes.
|
|
12
35
|
*
|
|
13
|
-
* Contract: it is called ONCE per dispatch per
|
|
14
|
-
* simply absent from the returned record — the caller decides whether that drops the
|
|
15
|
-
* the values it returns are written STRAIGHT into
|
|
16
|
-
*
|
|
36
|
+
* Contract: it is called ONCE per dispatch per subject, must never throw (an unresolvable key is
|
|
37
|
+
* simply absent from the returned record — the caller decides whether that drops the capability),
|
|
38
|
+
* and the values it returns are written STRAIGHT into a dedicated job-body field. They never touch
|
|
39
|
+
* `AgentRunContext`, a prompt, or the telemetry snapshot.
|
|
17
40
|
*/
|
|
18
41
|
export interface ToolSecretResolver {
|
|
19
42
|
resolve(input: {
|
|
20
43
|
workspaceId: string;
|
|
21
44
|
/** The block the run is for, so a per-service credential store can scope its lookup. */
|
|
22
45
|
blockId?: string;
|
|
23
|
-
/**
|
|
24
|
-
|
|
25
|
-
/** The secrets the
|
|
46
|
+
/** What the credentials are for — a tool server, or a generative binary integration. */
|
|
47
|
+
subject: ToolSecretSubject;
|
|
48
|
+
/** The secrets the subject declared. */
|
|
26
49
|
keys: McpSecretRef[];
|
|
27
50
|
}): Promise<Record<string, string>>;
|
|
28
51
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-tools.d.ts","sourceRoot":"","sources":["../../src/ports/agent-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAEnE;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,KAAK,EAAE;QACb,WAAW,EAAE,MAAM,CAAA;QACnB,wFAAwF;QACxF,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,
|
|
1
|
+
{"version":3,"file":"agent-tools.d.ts","sourceRoot":"","sources":["../../src/ports/agent-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAEnE;;;;;;;GAOG;AACH,MAAM,MAAM,iBAAiB;AAC3B,8EAA8E;AAC5E;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE;AACrC;;;;GAIG;GACD;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAA;AAE5C;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,KAAK,EAAE;QACb,WAAW,EAAE,MAAM,CAAA;QACnB,wFAAwF;QACxF,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,wFAAwF;QACxF,OAAO,EAAE,iBAAiB,CAAA;QAC1B,wCAAwC;QACxC,IAAI,EAAE,YAAY,EAAE,CAAA;KACrB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CACpC"}
|
package/dist/ports/index.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ export type { PasswordResetTokenRecord, PasswordResetTokenRepository, PasswordRe
|
|
|
10
10
|
export type { ServicePatch, ServiceRepository, WorkspaceMountPatch, WorkspaceMountRepository, } from './service-repositories.js';
|
|
11
11
|
export type { Clock, IdGenerator } from './runtime.js';
|
|
12
12
|
export { type LogFields, type LogLevel, type Logger, type RecordedLogLine, createRecordingLogger, noopLogger, } from './logging.js';
|
|
13
|
+
export { type OperationalCounter, type OperationalCounterSample, type OperationalDimensions, type OperationalGauge, type OperationalGaugeSample, type OperationalMetrics, type OperationalMetricsCollector, createOperationalMetricsCollector, noopOperationalMetrics, } from './operational-metrics.js';
|
|
13
14
|
export type { RequirementReviewRepository } from './requirement-review-repositories.js';
|
|
14
15
|
export type { DocInterviewRepository } from './doc-interview-repositories.js';
|
|
15
16
|
export type { InitiativeRepository } from './initiative-repositories.js';
|
|
@@ -27,11 +28,11 @@ export type { PlatformDurationStats, PlatformFailureCount, PlatformLiveCounts, P
|
|
|
27
28
|
export type { ReportActivityGroup, ReportRange, ReportScope, ReportSpendGroup, ReportSpendTrendBucket, ReportsRepository, } from './reports.js';
|
|
28
29
|
export type { AgentContextFile, AgentContextFragment, AgentContextIndexQuery, AgentContextRecorder, AgentContextRunPageQuery, AgentContextSnapshot, AgentContextSnapshotIndex, AgentContextSnapshotRepository, RecordAgentContextInput, } from './agent-context.js';
|
|
29
30
|
export type { AgentSearchQuery, AgentSearchQueryPageQuery, AgentSearchQueryRecorder, AgentSearchQueryRepository, RecordAgentSearchQueryInput, } from './agent-search-queries.js';
|
|
30
|
-
export type { LlmGenerationEvent, LlmToolSpan, LlmToolSpanContext, LlmTraceSink, InlineAttribution, InlineAttributionScope, InlineObservabilityContext, } from './llm-trace-sink.js';
|
|
31
|
+
export type { LlmGenerationEvent, LlmToolSpan, LlmToolSpanContext, LlmTraceSink, InlineAttribution, InlineAttributionScope, InlineObservabilityContext, TraceSinkObservability, } from './llm-trace-sink.js';
|
|
31
32
|
export { INLINE_OBSERVABILITY_NS, CompositeTraceSink, catFactoryObservability, composeTraceSinks, readInlineObservabilityContext, resolveInlineAttribution, } from './llm-trace-sink.js';
|
|
32
33
|
export type { AgentDecisionRequest, AgentExecutor, AgentJobHandle, AgentJobUpdate, AgentRunContext, AgentRunResult, AgentTokenUsage, AsyncAgentExecutor, } from './agent-executor.js';
|
|
33
34
|
export { isAsyncAgentExecutor } from './agent-executor.js';
|
|
34
|
-
export type { ToolSecretResolver } from './agent-tools.js';
|
|
35
|
+
export type { ToolSecretResolver, ToolSecretSubject } from './agent-tools.js';
|
|
35
36
|
export { type WorkRunner, NoopWorkRunner } from './work-runner.js';
|
|
36
37
|
export { type ExecutionEventPublisher, NoopEventPublisher } from './execution-events.js';
|
|
37
38
|
export type { CommitFilesResult, CreateReviewComment, CreateReviewInput, CreateReviewResult, ReviewCommentOutcome, GitHubChangedFile, GitHubClient, GitHubCodeSearchHit, GitHubIssueComment, GitHubIssueDetail, GitHubIssueSearchHit, GitHubPullRequestReview, GitHubReviewThread, GitHubReviewThreadComment, GitHubPullRequestComment, GitHubSubIssue, GitHubRepoRef, BranchProtectionState, BranchProtectionUnknownReason, BranchProtectionDetail, BranchProtectionSummary, InstallationMeta, InstallationSummary, ListOptions, Paged, RateLimitSnapshot, RepoContentEntry, RepoEntry, RepoFileContent, } from './github-client.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ports/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,UAAU,EACV,eAAe,EACf,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,MAAM,EACN,aAAa,EACb,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AAC3D,YAAY,EACV,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,UAAU,EACV,oBAAoB,GACrB,MAAM,2BAA2B,CAAA;AAClC,YAAY,EACV,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,oCAAoC,CAAA;AAC3C,YAAY,EACV,gBAAgB,EAChB,UAAU,EACV,kBAAkB,EAClB,cAAc,GACf,MAAM,wBAAwB,CAAA;AAC/B,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,YAAY,EACV,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,mBAAmB,CAAA;AAC1B,YAAY,EACV,uBAAuB,EACvB,2BAA2B,EAC3B,gBAAgB,GACjB,MAAM,8BAA8B,CAAA;AACrC,YAAY,EACV,wBAAwB,EACxB,4BAA4B,EAC5B,wBAAwB,GACzB,MAAM,kCAAkC,CAAA;AACzC,YAAY,EACV,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,2BAA2B,CAAA;AAClC,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AACtD,OAAO,EACL,KAAK,SAAS,EACd,KAAK,QAAQ,EACb,KAAK,MAAM,EACX,KAAK,eAAe,EACpB,qBAAqB,EACrB,UAAU,GACX,MAAM,cAAc,CAAA;AACrB,YAAY,EAAE,2BAA2B,EAAE,MAAM,sCAAsC,CAAA;AACvF,YAAY,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAA;AAC7E,YAAY,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AACxE,YAAY,EACV,uBAAuB,EACvB,6BAA6B,GAC9B,MAAM,0BAA0B,CAAA;AACjC,YAAY,EACV,wBAAwB,EACxB,0BAA0B,GAC3B,MAAM,6BAA6B,CAAA;AACpC,YAAY,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAA;AAC/E,YAAY,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAA;AAC/E,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACrF,YAAY,EACV,WAAW,EACX,aAAa,EACb,qBAAqB,EACrB,QAAQ,EACR,UAAU,GACX,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,cAAc,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAA;AAChF,YAAY,EACV,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,GAClB,MAAM,kBAAkB,CAAA;AACzB,YAAY,EACV,aAAa,EACb,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAChF,YAAY,EACV,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,yBAAyB,EACzB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,uBAAuB,CAAA;AAC9B,YAAY,EACV,mBAAmB,EACnB,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,cAAc,CAAA;AACrB,YAAY,EACV,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,EACpB,yBAAyB,EACzB,8BAA8B,EAC9B,uBAAuB,GACxB,MAAM,oBAAoB,CAAA;AAC3B,YAAY,EACV,gBAAgB,EAChB,yBAAyB,EACzB,wBAAwB,EACxB,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,2BAA2B,CAAA;AAClC,YAAY,EACV,kBAAkB,EAClB,WAAW,EACX,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,EACjB,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EACjB,8BAA8B,EAC9B,wBAAwB,GACzB,MAAM,qBAAqB,CAAA;AAC5B,YAAY,EACV,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,cAAc,EACd,eAAe,EACf,cAAc,EACd,eAAe,EACf,kBAAkB,GACnB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,YAAY,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAC1D,OAAO,EAAE,KAAK,UAAU,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAClE,OAAO,EAAE,KAAK,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AACxF,YAAY,EACV,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,uBAAuB,EACvB,kBAAkB,EAClB,yBAAyB,EACzB,wBAAwB,EACxB,cAAc,EACd,aAAa,EACb,qBAAqB,EACrB,6BAA6B,EAC7B,sBAAsB,EACtB,uBAAuB,EACvB,gBAAgB,EAChB,mBAAmB,EACnB,WAAW,EACX,KAAK,EACL,iBAAiB,EACjB,gBAAgB,EAChB,SAAS,EACT,eAAe,GAChB,MAAM,oBAAoB,CAAA;AAC3B,YAAY,EACV,eAAe,EACf,wBAAwB,EACxB,uBAAuB,EACvB,eAAe,GAChB,MAAM,0BAA0B,CAAA;AACjC,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACpD,YAAY,EACV,WAAW,EACX,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,mBAAmB,CAAA;AAC1B,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAClE,YAAY,EACV,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,cAAc,GACf,MAAM,kBAAkB,CAAA;AACzB,YAAY,EACV,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,qBAAqB,GACtB,MAAM,iBAAiB,CAAA;AACxB,YAAY,EACV,kBAAkB,EAClB,oBAAoB,EACpB,yBAAyB,EACzB,mBAAmB,EACnB,2BAA2B,EAC3B,iBAAiB,EACjB,0BAA0B,EAC1B,wBAAwB,GACzB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAA;AACjE,YAAY,EACV,cAAc,EACd,eAAe,EACf,aAAa,EACb,YAAY,EACZ,MAAM,EACN,aAAa,EACb,YAAY,GACb,MAAM,uBAAuB,CAAA;AAC9B,YAAY,EACV,0BAA0B,EAC1B,4BAA4B,EAC5B,0BAA0B,EAC1B,kBAAkB,EAClB,4BAA4B,EAC5B,yBAAyB,EACzB,+BAA+B,EAC/B,mBAAmB,EACnB,wBAAwB,EACxB,YAAY,EACZ,UAAU,EACV,cAAc,GACf,MAAM,0BAA0B,CAAA;AACjC,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC5D,YAAY,EACV,mBAAmB,EACnB,eAAe,EACf,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,sBAAsB,CAAA;AAC7B,YAAY,EACV,wBAAwB,EACxB,4BAA4B,EAC5B,cAAc,EACd,kBAAkB,GACnB,MAAM,4BAA4B,CAAA;AACnC,YAAY,EACV,eAAe,EACf,WAAW,EACX,mBAAmB,EACnB,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,wBAAwB,EACxB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,kBAAkB,CAAA;AACzB,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AACpE,YAAY,EACV,wBAAwB,EACxB,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACL,+BAA+B,EAC/B,0BAA0B,EAC1B,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,sBAAsB,CAAA;AAC7B,YAAY,EACV,oBAAoB,EACpB,wBAAwB,EACxB,wBAAwB,EACxB,4BAA4B,EAC5B,UAAU,EACV,OAAO,EACP,cAAc,GACf,MAAM,wBAAwB,CAAA;AAC/B,YAAY,EACV,iBAAiB,EACjB,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,4BAA4B,CAAA;AACnC,YAAY,EACV,mBAAmB,EACnB,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,qBAAqB,CAAA;AAC5B,YAAY,EACV,aAAa,EACb,kBAAkB,EAClB,sBAAsB,EACtB,iBAAiB,EACjB,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,yBAAyB,CAAA;AAChC,YAAY,EACV,wBAAwB,EACxB,iBAAiB,EACjB,qBAAqB,EACrB,yBAAyB,EACzB,6BAA6B,EAC7B,+BAA+B,EAC/B,mCAAmC,EACnC,+BAA+B,GAChC,MAAM,wCAAwC,CAAA;AAC/C,YAAY,EACV,SAAS,EACT,4BAA4B,EAC5B,qBAAqB,EACrB,cAAc,EACd,gBAAgB,EAChB,2BAA2B,EAC3B,oBAAoB,EACpB,yBAAyB,EACzB,2BAA2B,GAC5B,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAC/E,YAAY,EACV,kBAAkB,EAClB,wBAAwB,EACxB,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,wBAAwB,CAAA;AAC/B,YAAY,EAAE,YAAY,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAA;AAClF,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAC7E,YAAY,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AACrE,YAAY,EACV,qBAAqB,EACrB,eAAe,EACf,sBAAsB,GACvB,MAAM,8BAA8B,CAAA;AACrC,YAAY,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AACvE,YAAY,EACV,mBAAmB,EACnB,wBAAwB,EACxB,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,gCAAgC,EAChC,gBAAgB,EAChB,2BAA2B,EAC3B,wBAAwB,EACxB,0BAA0B,EAC1B,sBAAsB,EACtB,aAAa,EACb,kBAAkB,EAClB,uBAAuB,EACvB,eAAe,EACf,cAAc,EACd,cAAc,EACd,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,GAChB,MAAM,2BAA2B,CAAA;AAClC,YAAY,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAChF,OAAO,EAAE,KAAK,eAAe,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAA;AACvF,YAAY,EACV,2BAA2B,EAC3B,+BAA+B,EAC/B,wBAAwB,EACxB,iBAAiB,EACjB,sBAAsB,EACtB,6BAA6B,EAC7B,4BAA4B,EAC5B,gCAAgC,EAChC,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,+BAA+B,CAAA;AACtC,YAAY,EACV,qBAAqB,EACrB,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,oCAAoC,CAAA;AAC3C,YAAY,EACV,kBAAkB,EAClB,uBAAuB,EACvB,sBAAsB,EACtB,2BAA2B,EAC3B,gCAAgC,EAChC,+BAA+B,GAChC,MAAM,6BAA6B,CAAA;AACpC,YAAY,EACV,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,KAAK,eAAe,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AACjF,YAAY,EACV,wBAAwB,EACxB,6BAA6B,EAC7B,4BAA4B,EAC5B,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAA;AAClE,YAAY,EACV,wBAAwB,EACxB,6BAA6B,EAC7B,4BAA4B,EAC5B,qBAAqB,GACtB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAA;AACjE,YAAY,EACV,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,aAAa,EACb,uBAAuB,EACvB,wBAAwB,EACxB,iBAAiB,EACjB,eAAe,EACf,sBAAsB,GACvB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AAChE,YAAY,EAAE,UAAU,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACvF,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AACvF,YAAY,EACV,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,+BAA+B,GAChC,MAAM,2BAA2B,CAAA;AAClC,YAAY,EACV,0BAA0B,EAC1B,8BAA8B,GAC/B,MAAM,+BAA+B,CAAA;AACtC,YAAY,EACV,kBAAkB,EAClB,+BAA+B,EAC/B,mCAAmC,GACpC,MAAM,yCAAyC,CAAA;AAChD,YAAY,EACV,WAAW,EACX,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,oCAAoC,CAAA;AAC3C,YAAY,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAA;AAClG,YAAY,EACV,0BAA0B,EAC1B,8BAA8B,EAC9B,4BAA4B,EAC5B,gCAAgC,GACjC,MAAM,yCAAyC,CAAA;AAChD,YAAY,EACV,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,+BAA+B,CAAA;AACtC,YAAY,EACV,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,+BAA+B,CAAA;AACtC,YAAY,EACV,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,oCAAoC,CAAA;AAC3C,YAAY,EACV,0BAA0B,EAC1B,8BAA8B,GAC/B,MAAM,0CAA0C,CAAA;AACjD,YAAY,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAC3D,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACtF,YAAY,EACV,6BAA6B,EAC7B,qBAAqB,EACrB,kBAAkB,EAClB,cAAc,GACf,MAAM,gBAAgB,CAAA;AACvB,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAC7F,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAC5E,YAAY,EACV,YAAY,EACZ,kBAAkB,EAClB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,0BAA0B,CAAA;AACjC,YAAY,EACV,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,qBAAqB,GACtB,MAAM,qBAAqB,CAAA;AAC5B,YAAY,EACV,kBAAkB,EAClB,cAAc,EACd,0BAA0B,GAC3B,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,mCAAmC,EAAE,MAAM,0BAA0B,CAAA;AAC9E,YAAY,EACV,yBAAyB,EACzB,6BAA6B,EAC7B,iCAAiC,EACjC,yBAAyB,EACzB,6BAA6B,GAC9B,MAAM,kCAAkC,CAAA;AACzC,YAAY,EACV,sBAAsB,EACtB,2BAA2B,EAC3B,4BAA4B,EAC5B,gCAAgC,GACjC,MAAM,sCAAsC,CAAA;AAC7C,YAAY,EACV,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EACtB,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,yBAAyB,CAAA;AAChC,YAAY,EACV,kCAAkC,EAClC,sCAAsC,GACvC,MAAM,uCAAuC,CAAA;AAC9C,YAAY,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAA;AAC7F,YAAY,EACV,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,8BAA8B,CAAA;AACrC,YAAY,EACV,+BAA+B,EAC/B,mCAAmC,GACpC,MAAM,oCAAoC,CAAA;AAC3C,YAAY,EACV,qBAAqB,EACrB,yBAAyB,EACzB,uBAAuB,GACxB,MAAM,oCAAoC,CAAA;AAC3C,YAAY,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAA;AACpG,YAAY,EACV,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,+BAA+B,GAChC,MAAM,sBAAsB,CAAA;AAC7B,YAAY,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAC7E,YAAY,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAA;AAC5E,YAAY,EACV,yBAAyB,EACzB,6BAA6B,GAC9B,MAAM,wCAAwC,CAAA;AAC/C,YAAY,EACV,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAClF,YAAY,EACV,qBAAqB,EACrB,yBAAyB,EACzB,mBAAmB,EACnB,uBAAuB,EACvB,4BAA4B,GAC7B,MAAM,yBAAyB,CAAA;AAChC,YAAY,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AACzE,YAAY,EACV,0BAA0B,EAC1B,qBAAqB,GACtB,MAAM,sCAAsC,CAAA;AAC7C,YAAY,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAC9F,YAAY,EAAE,2BAA2B,EAAE,MAAM,sCAAsC,CAAA;AACvF,YAAY,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAA;AAC7E,YAAY,EACV,8BAA8B,EAC9B,wBAAwB,EACxB,2BAA2B,EAC3B,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,2BAA2B,CAAA;AAClC,YAAY,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAA;AAC3E,YAAY,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAA;AAC3E,YAAY,EAAE,gCAAgC,EAAE,MAAM,kCAAkC,CAAA;AACxF,YAAY,EAAE,iCAAiC,EAAE,MAAM,4CAA4C,CAAA;AACnG,YAAY,EAAE,WAAW,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAA;AAC1F,YAAY,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAA;AACnF,YAAY,EAAE,mBAAmB,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AACpG,YAAY,EACV,sBAAsB,EACtB,qBAAqB,EACrB,kBAAkB,EAClB,yBAAyB,EACzB,cAAc,EACd,oBAAoB,GACrB,MAAM,sBAAsB,CAAA;AAC7B,YAAY,EACV,6BAA6B,EAC7B,qBAAqB,EACrB,wBAAwB,EACxB,4BAA4B,EAC5B,wBAAwB,GACzB,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EAAE,iCAAiC,EAAE,MAAM,wCAAwC,CAAA;AAC1F,YAAY,EACV,+BAA+B,EAC/B,uBAAuB,EACvB,0BAA0B,EAC1B,8BAA8B,EAC9B,0BAA0B,GAC3B,MAAM,0CAA0C,CAAA;AACjD,OAAO,EAAE,mCAAmC,EAAE,MAAM,0CAA0C,CAAA;AAC9F,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,4BAA4B,EAC5B,uBAAuB,GACxB,MAAM,2BAA2B,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ports/index.ts"],"names":[],"mappings":"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"}
|
package/dist/ports/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { LIVE_EXECUTION_STATUSES } from './repositories.js';
|
|
2
2
|
export { createRecordingLogger, noopLogger, } from './logging.js';
|
|
3
|
+
export { createOperationalMetricsCollector, noopOperationalMetrics, } from './operational-metrics.js';
|
|
3
4
|
export { inlineModelRef, resolveScopedModelProvider } from './model-provider.js';
|
|
4
5
|
export { LLM_WARNING_FINISH_REASONS, escapeLikePattern } from './llm-metrics.js';
|
|
5
6
|
export { INLINE_OBSERVABILITY_NS, CompositeTraceSink, catFactoryObservability, composeTraceSinks, readInlineObservabilityContext, resolveInlineAttribution, } from './llm-trace-sink.js';
|
package/dist/ports/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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;
|
|
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;AACrB,OAAO,EAQL,iCAAiC,EACjC,sBAAsB,GACvB,MAAM,0BAA0B,CAAA;AAsBjC,OAAO,EAAE,cAAc,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAA;AAwBhF,OAAO,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AA6ChF,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EACjB,8BAA8B,EAC9B,wBAAwB,GACzB,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;AAuCxF,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;AAsD7B,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;AAiBjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AAEhE,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AAgFvF,OAAO,EAAE,mCAAmC,EAAE,MAAM,0BAA0B,CAAA;AA0D9E,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AA6ClF,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,3 +1,5 @@
|
|
|
1
|
+
import { type Logger } from './logging.js';
|
|
2
|
+
import { type OperationalMetrics } from './operational-metrics.js';
|
|
1
3
|
/** One completed LLM call (proxied or inline), normalised for an external trace. */
|
|
2
4
|
export interface LlmGenerationEvent {
|
|
3
5
|
/** The workspace the call ran for, or null when not in a workspace scope. */
|
|
@@ -92,19 +94,38 @@ export interface LlmTraceSink {
|
|
|
92
94
|
*/
|
|
93
95
|
export declare class CompositeTraceSink implements LlmTraceSink {
|
|
94
96
|
private readonly sinks;
|
|
95
|
-
|
|
97
|
+
private readonly log;
|
|
98
|
+
private readonly metrics;
|
|
99
|
+
constructor(sinks: LlmTraceSink[], observability?: TraceSinkObservability);
|
|
100
|
+
/**
|
|
101
|
+
* Run one sink's emit, isolating it. Still best-effort — a sink failing must never block
|
|
102
|
+
* the others or the caller — but no longer SILENT: telemetry completeness was the one
|
|
103
|
+
* property nothing anywhere measured, so a deployment whose collector had been rejecting
|
|
104
|
+
* every batch for a week looked exactly like one with nothing to report.
|
|
105
|
+
*/
|
|
106
|
+
private isolate;
|
|
96
107
|
recordGeneration(event: LlmGenerationEvent): Promise<void>;
|
|
97
108
|
recordToolSpans(context: LlmToolSpanContext, spans: LlmToolSpan[]): Promise<void>;
|
|
98
109
|
forceFlush(): Promise<void>;
|
|
99
110
|
shutdown(): Promise<void>;
|
|
100
111
|
}
|
|
112
|
+
/** How a composed sink reports the batches it drops. Both optional; both degrade to silence. */
|
|
113
|
+
export interface TraceSinkObservability {
|
|
114
|
+
logger?: Logger;
|
|
115
|
+
operationalMetrics?: OperationalMetrics;
|
|
116
|
+
}
|
|
101
117
|
/**
|
|
102
118
|
* Compose zero or more optional sinks into a single one: none ⇒ `undefined` (nothing
|
|
103
|
-
* wired, no external emission),
|
|
104
|
-
*
|
|
105
|
-
*
|
|
119
|
+
* wired, no external emission), otherwise a {@link CompositeTraceSink} fanning out to all.
|
|
120
|
+
* The one helper every facade uses so the "0/1/many" collapse is identical across runtimes.
|
|
121
|
+
*
|
|
122
|
+
* A SINGLE sink used to be returned verbatim, to skip the wrapper's overhead. That collapse
|
|
123
|
+
* is kept only when there is nothing to report through: once `observability` is supplied, one
|
|
124
|
+
* sink is wrapped like any other, because a single external destination is the COMMON
|
|
125
|
+
* deployment shape and unwrapping it there would leave drop counting absent from exactly the
|
|
126
|
+
* deployments that have telemetry to drop — an absence that reads as "no drops".
|
|
106
127
|
*/
|
|
107
|
-
export declare function composeTraceSinks(sinks: readonly (LlmTraceSink | undefined)[]): LlmTraceSink | undefined;
|
|
128
|
+
export declare function composeTraceSinks(sinks: readonly (LlmTraceSink | undefined)[], observability?: TraceSinkObservability): LlmTraceSink | undefined;
|
|
108
129
|
/** Namespace used to smuggle observability context through the AI SDK's providerOptions. */
|
|
109
130
|
export declare const INLINE_OBSERVABILITY_NS = "catFactoryObservability";
|
|
110
131
|
/** The run context an inline LLM call carries for the trace sink. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-trace-sink.d.ts","sourceRoot":"","sources":["../../src/ports/llm-trace-sink.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"llm-trace-sink.d.ts","sourceRoot":"","sources":["../../src/ports/llm-trace-sink.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
// - the runtime-neutral LLM proxy (container agent calls) — the orchestration
|
|
5
|
-
// `LlmObservabilityService` fans every metered call out here after persisting it;
|
|
6
|
-
// - the inline (non-proxied) LLM calls (the requirements reviewer/rework, the
|
|
7
|
-
// document planner, the fragment selector, the inline agent executor) — an
|
|
8
|
-
// `InstrumentedModelProvider` wraps every resolved model so each `generateText`
|
|
9
|
-
// surfaces the same {@link LlmGenerationEvent} here.
|
|
10
|
-
//
|
|
11
|
-
// Both build the identical {@link LlmGenerationEvent} and call {@link
|
|
12
|
-
// LlmTraceSink.recordGeneration}, so adding a second feeder never means a second
|
|
13
|
-
// sink. The port is implemented by an opt-in package (`@cat-factory/observability-langfuse`)
|
|
14
|
-
// and wired into a facade only when configured; absent ⇒ no external emission and no
|
|
15
|
-
// behaviour change. A sink MUST NOT throw into its caller (LLM work must never break
|
|
16
|
-
// because observability is down) — implementations swallow + log their own errors, and
|
|
17
|
-
// callers additionally schedule the call off the response path.
|
|
1
|
+
import { noopLogger } from './logging.js';
|
|
2
|
+
import { noopOperationalMetrics } from './operational-metrics.js';
|
|
3
|
+
import { describeError } from '../shared/best-effort.js';
|
|
18
4
|
/**
|
|
19
5
|
* Fan one trace out to every configured sink, isolating per-sink failures. A deployment
|
|
20
6
|
* that enables more than one external destination (e.g. Langfuse AND an OpenTelemetry
|
|
@@ -25,63 +11,73 @@
|
|
|
25
11
|
*/
|
|
26
12
|
export class CompositeTraceSink {
|
|
27
13
|
sinks;
|
|
28
|
-
|
|
14
|
+
log;
|
|
15
|
+
metrics;
|
|
16
|
+
constructor(sinks, observability = {}) {
|
|
29
17
|
this.sinks = sinks;
|
|
18
|
+
this.log = observability.logger ?? noopLogger;
|
|
19
|
+
this.metrics = observability.operationalMetrics ?? noopOperationalMetrics;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Run one sink's emit, isolating it. Still best-effort — a sink failing must never block
|
|
23
|
+
* the others or the caller — but no longer SILENT: telemetry completeness was the one
|
|
24
|
+
* property nothing anywhere measured, so a deployment whose collector had been rejecting
|
|
25
|
+
* every batch for a week looked exactly like one with nothing to report.
|
|
26
|
+
*/
|
|
27
|
+
async isolate(sink, op, run) {
|
|
28
|
+
try {
|
|
29
|
+
await run();
|
|
30
|
+
}
|
|
31
|
+
catch (error) {
|
|
32
|
+
this.metrics.increment('telemetry.export_dropped', { operation: op });
|
|
33
|
+
this.log.warn('trace sink export dropped', {
|
|
34
|
+
scope: 'trace-sink',
|
|
35
|
+
operation: op,
|
|
36
|
+
sink: sink.constructor?.name ?? 'unknown',
|
|
37
|
+
...describeError(error),
|
|
38
|
+
});
|
|
39
|
+
}
|
|
30
40
|
}
|
|
31
41
|
async recordGeneration(event) {
|
|
32
|
-
await Promise.all(this.sinks.map(async (
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
}
|
|
36
|
-
catch {
|
|
37
|
-
// Best-effort: one sink failing must not block the others or the caller.
|
|
38
|
-
}
|
|
39
|
-
}));
|
|
42
|
+
await Promise.all(this.sinks.map((sink) => this.isolate(sink, 'recordGeneration', async () => {
|
|
43
|
+
await sink.recordGeneration(event);
|
|
44
|
+
})));
|
|
40
45
|
}
|
|
41
46
|
async recordToolSpans(context, spans) {
|
|
42
|
-
await Promise.all(this.sinks.map(async (
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
}
|
|
46
|
-
catch {
|
|
47
|
-
// Best-effort, as above.
|
|
48
|
-
}
|
|
49
|
-
}));
|
|
47
|
+
await Promise.all(this.sinks.map((sink) => this.isolate(sink, 'recordToolSpans', async () => {
|
|
48
|
+
await sink.recordToolSpans?.(context, spans);
|
|
49
|
+
})));
|
|
50
50
|
}
|
|
51
51
|
async forceFlush() {
|
|
52
|
-
await Promise.all(this.sinks.map(async (
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
}
|
|
56
|
-
catch {
|
|
57
|
-
// Best-effort, as above.
|
|
58
|
-
}
|
|
59
|
-
}));
|
|
52
|
+
await Promise.all(this.sinks.map((sink) => this.isolate(sink, 'forceFlush', async () => {
|
|
53
|
+
await sink.forceFlush?.();
|
|
54
|
+
})));
|
|
60
55
|
}
|
|
61
56
|
async shutdown() {
|
|
62
|
-
await Promise.all(this.sinks.map(async (
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
}
|
|
66
|
-
catch {
|
|
67
|
-
// Best-effort, as above.
|
|
68
|
-
}
|
|
69
|
-
}));
|
|
57
|
+
await Promise.all(this.sinks.map((sink) => this.isolate(sink, 'shutdown', async () => {
|
|
58
|
+
await sink.shutdown?.();
|
|
59
|
+
})));
|
|
70
60
|
}
|
|
71
61
|
}
|
|
72
62
|
/**
|
|
73
63
|
* Compose zero or more optional sinks into a single one: none ⇒ `undefined` (nothing
|
|
74
|
-
* wired, no external emission),
|
|
75
|
-
*
|
|
76
|
-
*
|
|
64
|
+
* wired, no external emission), otherwise a {@link CompositeTraceSink} fanning out to all.
|
|
65
|
+
* The one helper every facade uses so the "0/1/many" collapse is identical across runtimes.
|
|
66
|
+
*
|
|
67
|
+
* A SINGLE sink used to be returned verbatim, to skip the wrapper's overhead. That collapse
|
|
68
|
+
* is kept only when there is nothing to report through: once `observability` is supplied, one
|
|
69
|
+
* sink is wrapped like any other, because a single external destination is the COMMON
|
|
70
|
+
* deployment shape and unwrapping it there would leave drop counting absent from exactly the
|
|
71
|
+
* deployments that have telemetry to drop — an absence that reads as "no drops".
|
|
77
72
|
*/
|
|
78
|
-
export function composeTraceSinks(sinks) {
|
|
73
|
+
export function composeTraceSinks(sinks, observability) {
|
|
79
74
|
const active = sinks.filter((sink) => sink != null);
|
|
80
75
|
if (active.length === 0)
|
|
81
76
|
return undefined;
|
|
82
|
-
|
|
77
|
+
const reports = observability?.logger || observability?.operationalMetrics;
|
|
78
|
+
if (active.length === 1 && !reports)
|
|
83
79
|
return active[0];
|
|
84
|
-
return new CompositeTraceSink(active);
|
|
80
|
+
return new CompositeTraceSink(active, observability ?? {});
|
|
85
81
|
}
|
|
86
82
|
// ----------------------------------------------------------------------------
|
|
87
83
|
// Inline-call observability context
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-trace-sink.js","sourceRoot":"","sources":["../../src/ports/llm-trace-sink.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"llm-trace-sink.js","sourceRoot":"","sources":["../../src/ports/llm-trace-sink.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The closed set of operational counters. A closed union rather than a free string, so
|
|
3
|
+
* adding a signal is a typecheck-visible decision (with a metric name and a documented
|
|
4
|
+
* meaning) instead of a name typo that reports zero forever.
|
|
5
|
+
*/
|
|
6
|
+
export type OperationalCounter =
|
|
7
|
+
/** A stale run whose durable instance was lost and was re-created by a sweeper. */
|
|
8
|
+
'sweep.run_redriven'
|
|
9
|
+
/** A stale run whose durable instance was terminal, so the sweeper settled it instead. */
|
|
10
|
+
| 'sweep.run_finalized'
|
|
11
|
+
/** A run failed `stalled`: re-driving never resurrected it past the hard deadline. */
|
|
12
|
+
| 'sweep.run_stalled'
|
|
13
|
+
/** A sweeper pass threw. Dimensioned by `sweep`, so one sick sweeper is identifiable. */
|
|
14
|
+
| 'sweep.failed'
|
|
15
|
+
/** A container job dispatch threw — the job never existed, so no poll can report it. */
|
|
16
|
+
| 'container.dispatch_failed'
|
|
17
|
+
/** A container job settled as evicted/crashed. Dimensioned by the eviction kind. */
|
|
18
|
+
| 'container.evicted'
|
|
19
|
+
/** An observability export was dropped (a trace sink, a metrics POST). */
|
|
20
|
+
| 'telemetry.export_dropped'
|
|
21
|
+
/** An outbound notification delivery failed after its retries. */
|
|
22
|
+
| 'notification.delivery_failed'
|
|
23
|
+
/** An app-cache read served from memory. Dimensioned by cache name. */
|
|
24
|
+
| 'cache.hit'
|
|
25
|
+
/** An app-cache read that had to run its loader. Dimensioned by cache name. */
|
|
26
|
+
| 'cache.miss';
|
|
27
|
+
/** The closed set of operational gauges — point-in-time readings, never accumulated. */
|
|
28
|
+
export type OperationalGauge =
|
|
29
|
+
/** Jobs waiting in a durable queue right now. Dimensioned by `queue`. */
|
|
30
|
+
'queue.depth';
|
|
31
|
+
/**
|
|
32
|
+
* The split dimensions of one sample. Values MUST be bounded — a queue name, a cache name,
|
|
33
|
+
* an eviction kind — never a run/workspace/job id: every distinct value is its own metric
|
|
34
|
+
* time series in the operator's backend, so an unbounded dimension is a cardinality
|
|
35
|
+
* explosion that costs money and eventually gets the series dropped. The correlation ids
|
|
36
|
+
* belong on the LOG line (which is why every increment site also logs), not here.
|
|
37
|
+
*/
|
|
38
|
+
export type OperationalDimensions = Readonly<Record<string, string>>;
|
|
39
|
+
/** One accumulated counter delta, ready to export. */
|
|
40
|
+
export interface OperationalCounterSample {
|
|
41
|
+
counter: OperationalCounter;
|
|
42
|
+
dimensions: OperationalDimensions;
|
|
43
|
+
/** The delta accumulated since the previous drain (always > 0 — empty keys aren't emitted). */
|
|
44
|
+
value: number;
|
|
45
|
+
}
|
|
46
|
+
/** One point-in-time gauge reading. */
|
|
47
|
+
export interface OperationalGaugeSample {
|
|
48
|
+
gauge: OperationalGauge;
|
|
49
|
+
dimensions: OperationalDimensions;
|
|
50
|
+
value: number;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Where operational events are counted. Injected the same way `Logger` is, so a domain
|
|
54
|
+
* service can count an event without knowing whether the deployment exports metrics at all.
|
|
55
|
+
*/
|
|
56
|
+
export interface OperationalMetrics {
|
|
57
|
+
/**
|
|
58
|
+
* Add `value` (default 1) to `counter` under `dimensions`. Never throws, never awaits —
|
|
59
|
+
* a call site on a hot path (a cache read) pays a Map lookup and an add.
|
|
60
|
+
*/
|
|
61
|
+
increment(counter: OperationalCounter, dimensions?: OperationalDimensions, value?: number): void;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* An {@link OperationalMetrics} that accumulates in memory until drained. The accumulate/drain
|
|
65
|
+
* split is what makes delta export correct: whoever drains owns a set of deltas nobody else
|
|
66
|
+
* will report, so two processes (or two Worker isolates) can flush independently and the
|
|
67
|
+
* backend's sum is still right.
|
|
68
|
+
*/
|
|
69
|
+
export interface OperationalMetricsCollector extends OperationalMetrics {
|
|
70
|
+
/**
|
|
71
|
+
* Take everything accumulated since the last call and RESET. Returns `[]` when nothing
|
|
72
|
+
* happened, which a caller should treat as "nothing to flush" — never as a reason to
|
|
73
|
+
* publish zeroes (an unflushed zero and a genuine zero are different facts, and only the
|
|
74
|
+
* absence of a data point states the first one honestly).
|
|
75
|
+
*/
|
|
76
|
+
drain(): OperationalCounterSample[];
|
|
77
|
+
}
|
|
78
|
+
/** The disposition for a deployment that exports nothing: count into the void, cheaply. */
|
|
79
|
+
export declare const noopOperationalMetrics: OperationalMetrics;
|
|
80
|
+
/**
|
|
81
|
+
* Build an in-memory {@link OperationalMetricsCollector}. One per process (Node/local, drained
|
|
82
|
+
* by the platform-metrics sweep) or one per isolate (the Worker, drained at the end of each
|
|
83
|
+
* invocation — an isolate can be discarded at any moment, so anything it holds unflushed is
|
|
84
|
+
* simply lost).
|
|
85
|
+
*/
|
|
86
|
+
export declare function createOperationalMetricsCollector(): OperationalMetricsCollector;
|
|
87
|
+
//# sourceMappingURL=operational-metrics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operational-metrics.d.ts","sourceRoot":"","sources":["../../src/ports/operational-metrics.ts"],"names":[],"mappings":"AAoBA;;;;GAIG;AACH,MAAM,MAAM,kBAAkB;AAC5B,mFAAmF;AACjF,oBAAoB;AACtB,0FAA0F;GACxF,qBAAqB;AACvB,sFAAsF;GACpF,mBAAmB;AACrB,yFAAyF;GACvF,cAAc;AAChB,wFAAwF;GACtF,2BAA2B;AAC7B,oFAAoF;GAClF,mBAAmB;AACrB,0EAA0E;GACxE,0BAA0B;AAC5B,kEAAkE;GAChE,8BAA8B;AAChC,uEAAuE;GACrE,WAAW;AACb,+EAA+E;GAC7E,YAAY,CAAA;AAUhB,wFAAwF;AACxF,MAAM,MAAM,gBAAgB;AAC1B,yEAAyE;AACzE,aAAa,CAAA;AAEf;;;;;;GAMG;AACH,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;AAEpE,sDAAsD;AACtD,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,kBAAkB,CAAA;IAC3B,UAAU,EAAE,qBAAqB,CAAA;IACjC,+FAA+F;IAC/F,KAAK,EAAE,MAAM,CAAA;CACd;AAED,uCAAuC;AACvC,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,gBAAgB,CAAA;IACvB,UAAU,EAAE,qBAAqB,CAAA;IACjC,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,SAAS,CAAC,OAAO,EAAE,kBAAkB,EAAE,UAAU,CAAC,EAAE,qBAAqB,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACjG;AAED;;;;;GAKG;AACH,MAAM,WAAW,2BAA4B,SAAQ,kBAAkB;IACrE;;;;;OAKG;IACH,KAAK,IAAI,wBAAwB,EAAE,CAAA;CACpC;AAED,2FAA2F;AAC3F,eAAO,MAAM,sBAAsB,EAAE,kBAA4C,CAAA;AAYjF;;;;;GAKG;AACH,wBAAgB,iCAAiC,IAAI,2BAA2B,CA8B/E"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
// The operational-metrics port: the counters and gauges that describe how the DEPLOYMENT is
|
|
2
|
+
// behaving, as opposed to how a run went.
|
|
3
|
+
//
|
|
4
|
+
// `PlatformMetricsRepository` already answers "how are the RUNS doing" by aggregating
|
|
5
|
+
// `agent_runs` per account. It structurally cannot answer the questions an operator asks
|
|
6
|
+
// during an incident — how often a container dispatch is failing, how many stale runs the
|
|
7
|
+
// sweeper is re-driving, whether the queue is draining, whether telemetry batches are being
|
|
8
|
+
// dropped — because none of those are rows in a table. They are EVENTS that happen and are
|
|
9
|
+
// gone. This port is where they are counted.
|
|
10
|
+
//
|
|
11
|
+
// Two shapes, because the two facts have different lifetimes:
|
|
12
|
+
// - a COUNTER is a delta accumulated since the last flush (evictions, re-drives, cache
|
|
13
|
+
// misses). Exported with delta temporality, so a partial flush from one process/isolate
|
|
14
|
+
// still sums correctly with every other one.
|
|
15
|
+
// - a GAUGE is read at export time from something that already knows the answer (queue
|
|
16
|
+
// depth). It is never accumulated here; the sweep probes for it.
|
|
17
|
+
//
|
|
18
|
+
// The whole surface is fire-and-forget and MUST NOT throw, for the same reason `Logger` must
|
|
19
|
+
// not: instrumentation that can fail turns observability into a new failure class.
|
|
20
|
+
/** The disposition for a deployment that exports nothing: count into the void, cheaply. */
|
|
21
|
+
export const noopOperationalMetrics = { increment: () => { } };
|
|
22
|
+
/**
|
|
23
|
+
* A dimension map's stable identity, so `{a:'1',b:'2'}` and `{b:'2',a:'1'}` accumulate onto
|
|
24
|
+
* the same counter rather than two. Keys are sorted; the separators are control characters
|
|
25
|
+
* that cannot appear in a metric dimension value.
|
|
26
|
+
*/
|
|
27
|
+
function dimensionKey(dimensions) {
|
|
28
|
+
const keys = Object.keys(dimensions).sort();
|
|
29
|
+
return keys.map((k) => `${k}${dimensions[k]}`).join('');
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Build an in-memory {@link OperationalMetricsCollector}. One per process (Node/local, drained
|
|
33
|
+
* by the platform-metrics sweep) or one per isolate (the Worker, drained at the end of each
|
|
34
|
+
* invocation — an isolate can be discarded at any moment, so anything it holds unflushed is
|
|
35
|
+
* simply lost).
|
|
36
|
+
*/
|
|
37
|
+
export function createOperationalMetricsCollector() {
|
|
38
|
+
// Keyed by `counter` then by the dimension identity, so a drain can rebuild both halves
|
|
39
|
+
// without parsing the composite key back apart.
|
|
40
|
+
const counters = new Map();
|
|
41
|
+
return {
|
|
42
|
+
increment(counter, dimensions = {}, value = 1) {
|
|
43
|
+
let byDimensions = counters.get(counter);
|
|
44
|
+
if (!byDimensions) {
|
|
45
|
+
byDimensions = new Map();
|
|
46
|
+
counters.set(counter, byDimensions);
|
|
47
|
+
}
|
|
48
|
+
const key = dimensionKey(dimensions);
|
|
49
|
+
const existing = byDimensions.get(key);
|
|
50
|
+
if (existing)
|
|
51
|
+
existing.value += value;
|
|
52
|
+
else
|
|
53
|
+
byDimensions.set(key, { dims: dimensions, value });
|
|
54
|
+
},
|
|
55
|
+
drain() {
|
|
56
|
+
const samples = [];
|
|
57
|
+
for (const [counter, byDimensions] of counters) {
|
|
58
|
+
for (const { dims, value } of byDimensions.values()) {
|
|
59
|
+
samples.push({ counter, dimensions: dims, value });
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
counters.clear();
|
|
63
|
+
return samples;
|
|
64
|
+
},
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=operational-metrics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operational-metrics.js","sourceRoot":"","sources":["../../src/ports/operational-metrics.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,0CAA0C;AAC1C,EAAE;AACF,sFAAsF;AACtF,yFAAyF;AACzF,0FAA0F;AAC1F,4FAA4F;AAC5F,2FAA2F;AAC3F,6CAA6C;AAC7C,EAAE;AACF,8DAA8D;AAC9D,yFAAyF;AACzF,4FAA4F;AAC5F,iDAAiD;AACjD,yFAAyF;AACzF,qEAAqE;AACrE,EAAE;AACF,6FAA6F;AAC7F,mFAAmF;AA8FnF,2FAA2F;AAC3F,MAAM,CAAC,MAAM,sBAAsB,GAAuB,EAAE,SAAS,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAA;AAEjF;;;;GAIG;AACH,SAAS,YAAY,CAAC,UAAiC;IACrD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAA;IAC3C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC3D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iCAAiC;IAC/C,wFAAwF;IACxF,gDAAgD;IAChD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAGrB,CAAA;IACH,OAAO;QACL,SAAS,CAAC,OAAO,EAAE,UAAU,GAAG,EAAE,EAAE,KAAK,GAAG,CAAC;YAC3C,IAAI,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;YACxC,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,YAAY,GAAG,IAAI,GAAG,EAAE,CAAA;gBACxB,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;YACrC,CAAC;YACD,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,CAAC,CAAA;YACpC,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YACtC,IAAI,QAAQ;gBAAE,QAAQ,CAAC,KAAK,IAAI,KAAK,CAAA;;gBAChC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAA;QACzD,CAAC;QACD,KAAK;YACH,MAAM,OAAO,GAA+B,EAAE,CAAA;YAC9C,KAAK,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,IAAI,QAAQ,EAAE,CAAC;gBAC/C,KAAK,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC;oBACpD,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;gBACpD,CAAC;YACH,CAAC;YACD,QAAQ,CAAC,KAAK,EAAE,CAAA;YAChB,OAAO,OAAO,CAAA;QAChB,CAAC;KACF,CAAA;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cat-factory/kernel",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.215.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.47",
|
|
28
28
|
"yaml": "^2.9.0",
|
|
29
|
-
"@cat-factory/contracts": "0.
|
|
29
|
+
"@cat-factory/contracts": "0.212.0"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
32
|
"@vitest/coverage-v8": "^4.1.10",
|