@alexnetrebskii/hive-agent 2.37.0 → 2.38.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/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/trace/index.d.ts +1 -0
- package/dist/trace/index.d.ts.map +1 -1
- package/dist/trace/index.js +2 -0
- package/dist/trace/index.js.map +1 -1
- package/dist/trace/multi.d.ts +42 -0
- package/dist/trace/multi.d.ts.map +1 -0
- package/dist/trace/multi.js +71 -0
- package/dist/trace/multi.js.map +1 -0
- package/dist/trace/multi.test.d.ts +2 -0
- package/dist/trace/multi.test.d.ts.map +1 -0
- package/dist/trace/multi.test.js +167 -0
- package/dist/trace/multi.test.js.map +1 -0
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -17,7 +17,7 @@ export { estimateTokens, estimateMessageTokens, estimateTotalTokens, truncateOld
|
|
|
17
17
|
export { summarizeMessages, microCompact, parseSummary } from './summarizer.js';
|
|
18
18
|
export { buildSystemPrompt, buildEnvironmentSection, buildRemindersSection, getCurrentEnvironment, DEFAULT_SYSTEM_PROMPT, SubAgentBuilder, roleSection, subAgentsTable, questionHandlingSection, directToolsSection, workspaceStorageSection, rulesSection, taskExamplesSection, subAgentRoleSection, taskSection, workflowSection, guidelinesSection, outputSection, type SubAgentDef, type ToolDef, type WorkspacePathDef, type WorkspaceStorageOptions, type TaskExample, type WorkflowStep, type OutputFormat, type SubAgentPromptConfig } from './prompt.js';
|
|
19
19
|
export { TaskManager, formatTaskList, createTaskTools, createTaskCreateTool, createTaskUpdateTool, createTaskGetTool, createTaskListTool, type TaskToolOptions, TodoManager, formatTodoList, createTodoTool, type TodoToolOptions } from './tools/tasks.js';
|
|
20
|
-
export { TraceBuilder, ConsoleTraceProvider, LangfuseTraceProvider, generateTraceId, generateSpanId, calculateCost, DEFAULT_MODEL_PRICING, OPENROUTER_MODEL_PRICING, type TraceProvider, type TraceId, type SpanId, type Trace, type AgentSpan, type TraceEvent, type LLMCallEvent, type ToolCallEvent, type TraceContext, type ModelPricing, type CostUpdate, type ConsoleTraceConfig, type LangfuseTraceConfig } from './trace.js';
|
|
20
|
+
export { TraceBuilder, ConsoleTraceProvider, LangfuseTraceProvider, MultiTraceProvider, generateTraceId, generateSpanId, calculateCost, DEFAULT_MODEL_PRICING, OPENROUTER_MODEL_PRICING, type TraceProvider, type TraceId, type SpanId, type Trace, type AgentSpan, type TraceEvent, type LLMCallEvent, type ToolCallEvent, type TraceContext, type ModelPricing, type CostUpdate, type ConsoleTraceConfig, type LangfuseTraceConfig } from './trace.js';
|
|
21
21
|
export { Workspace, type WorkspaceEntry, type WorkspaceListItem, type WorkspaceConfig, type WorkspaceConfigExt, type PathConfig, type ValidatorFn, type ZodLike, type ValidationError, type WriteResult } from './workspace.js';
|
|
22
22
|
export { type WorkspaceProvider, type WorkspaceChange, type WorkspaceChangeListener, MemoryWorkspaceProvider, FileWorkspaceProvider } from './providers/workspace/index.js';
|
|
23
23
|
export { Shell, type ShellConfig, type ShellResult, type CommandHandler, type CommandHelp, type CommandFlag, type CommandExample } from './shell/index.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -29,7 +29,7 @@ export { TaskManager, formatTaskList, createTaskTools, createTaskCreateTool, cre
|
|
|
29
29
|
// Backward compatibility (deprecated)
|
|
30
30
|
TodoManager, formatTodoList, createTodoTool } from './tools/tasks.js';
|
|
31
31
|
// Tracing
|
|
32
|
-
export { TraceBuilder, ConsoleTraceProvider, LangfuseTraceProvider, generateTraceId, generateSpanId, calculateCost, DEFAULT_MODEL_PRICING, OPENROUTER_MODEL_PRICING } from './trace.js';
|
|
32
|
+
export { TraceBuilder, ConsoleTraceProvider, LangfuseTraceProvider, MultiTraceProvider, generateTraceId, generateSpanId, calculateCost, DEFAULT_MODEL_PRICING, OPENROUTER_MODEL_PRICING } from './trace.js';
|
|
33
33
|
// Workspace
|
|
34
34
|
export { Workspace } from './workspace.js';
|
|
35
35
|
// Workspace Providers
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,mBAAmB;AACnB,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,IAAI,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AA2E9D,8CAA8C;AAC9C,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,uBAAuB,EACvB,YAAY,EACZ,oBAAoB,EAyBrB,MAAM,eAAe,CAAA;AAEtB,YAAY;AACZ,OAAO,EACL,cAAc,EAEf,MAAM,2BAA2B,CAAA;AAElC,OAAO,EACL,cAAc,EAEf,MAAM,2BAA2B,CAAA;AAElC,OAAO,EACL,kBAAkB,EAEnB,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAEjB,MAAM,6BAA6B,CAAA;AAEpC,OAAO,EACL,aAAa,EAGd,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EACL,gBAAgB,EACjB,MAAM,kCAAkC,CAAA;AAEzC,wBAAwB;AACxB,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAA;AAErE,YAAY;AACZ,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EACf,cAAc,EACf,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACb,MAAM,iBAAiB,CAAA;AAExB,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB;AACrB,kBAAkB;AAClB,eAAe;AACf,kDAAkD;AAClD,WAAW,EACX,cAAc,EACd,uBAAuB,EACvB,kBAAkB,EAClB,uBAAuB,EACvB,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EACnB,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,aAAa,EAUd,MAAM,aAAa,CAAA;AAEpB,kDAAkD;AAClD,OAAO,EACL,WAAW,EACX,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB;AAElB,sCAAsC;AACtC,WAAW,EACX,cAAc,EACd,cAAc,EAEf,MAAM,kBAAkB,CAAA;AAEzB,UAAU;AACV,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EACrB,eAAe,EACf,cAAc,EACd,aAAa,EACb,qBAAqB,EACrB,wBAAwB,EAczB,MAAM,YAAY,CAAA;AAEnB,YAAY;AACZ,OAAO,EACL,SAAS,EAUV,MAAM,gBAAgB,CAAA;AAEvB,sBAAsB;AACtB,OAAO,EAIL,uBAAuB,EACvB,qBAAqB,EACtB,MAAM,gCAAgC,CAAA;AAEvC,QAAQ;AACR,OAAO,EACL,KAAK,EAON,MAAM,kBAAkB,CAAA;AAEzB,kBAAkB;AAClB,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAEtF,4CAA4C;AAC5C,OAAO,EACL,WAAW,EACX,WAAW,EACX,SAAS,EAUV,MAAM,8BAA8B,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,mBAAmB;AACnB,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,IAAI,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AA2E9D,8CAA8C;AAC9C,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,uBAAuB,EACvB,YAAY,EACZ,oBAAoB,EAyBrB,MAAM,eAAe,CAAA;AAEtB,YAAY;AACZ,OAAO,EACL,cAAc,EAEf,MAAM,2BAA2B,CAAA;AAElC,OAAO,EACL,cAAc,EAEf,MAAM,2BAA2B,CAAA;AAElC,OAAO,EACL,kBAAkB,EAEnB,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAEjB,MAAM,6BAA6B,CAAA;AAEpC,OAAO,EACL,aAAa,EAGd,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EACL,gBAAgB,EACjB,MAAM,kCAAkC,CAAA;AAEzC,wBAAwB;AACxB,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAA;AAErE,YAAY;AACZ,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EACf,cAAc,EACf,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACb,MAAM,iBAAiB,CAAA;AAExB,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB;AACrB,kBAAkB;AAClB,eAAe;AACf,kDAAkD;AAClD,WAAW,EACX,cAAc,EACd,uBAAuB,EACvB,kBAAkB,EAClB,uBAAuB,EACvB,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EACnB,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,aAAa,EAUd,MAAM,aAAa,CAAA;AAEpB,kDAAkD;AAClD,OAAO,EACL,WAAW,EACX,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB;AAElB,sCAAsC;AACtC,WAAW,EACX,cAAc,EACd,cAAc,EAEf,MAAM,kBAAkB,CAAA;AAEzB,UAAU;AACV,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,aAAa,EACb,qBAAqB,EACrB,wBAAwB,EAczB,MAAM,YAAY,CAAA;AAEnB,YAAY;AACZ,OAAO,EACL,SAAS,EAUV,MAAM,gBAAgB,CAAA;AAEvB,sBAAsB;AACtB,OAAO,EAIL,uBAAuB,EACvB,qBAAqB,EACtB,MAAM,gCAAgC,CAAA;AAEvC,QAAQ;AACR,OAAO,EACL,KAAK,EAON,MAAM,kBAAkB,CAAA;AAEzB,kBAAkB;AAClB,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAEtF,4CAA4C;AAC5C,OAAO,EACL,WAAW,EACX,WAAW,EACX,SAAS,EAUV,MAAM,8BAA8B,CAAA"}
|
package/dist/trace/index.d.ts
CHANGED
|
@@ -10,4 +10,5 @@ export type { ConsoleTraceConfig } from './console.js';
|
|
|
10
10
|
export { ConsoleTraceProvider } from './console.js';
|
|
11
11
|
export type { LangfuseTraceConfig } from './langfuse.js';
|
|
12
12
|
export { LangfuseTraceProvider } from './langfuse.js';
|
|
13
|
+
export { MultiTraceProvider } from './multi.js';
|
|
13
14
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/trace/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,YAAY,EACV,OAAO,EACP,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,UAAU,EACV,SAAS,EACT,KAAK,EACL,YAAY,EACZ,aAAa,EACb,UAAU,EACX,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAG5D,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AACnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAA;AAGlE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAG3C,YAAY,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAGnD,YAAY,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/trace/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,YAAY,EACV,OAAO,EACP,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,UAAU,EACV,SAAS,EACT,KAAK,EACL,YAAY,EACZ,aAAa,EACb,UAAU,EACX,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAG5D,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AACnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAA;AAGlE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAG3C,YAAY,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAGnD,YAAY,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAGrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA"}
|
package/dist/trace/index.js
CHANGED
|
@@ -9,4 +9,6 @@ export { OPENROUTER_MODEL_PRICING } from './openrouter-pricing.js';
|
|
|
9
9
|
export { TraceBuilder } from './builder.js';
|
|
10
10
|
export { ConsoleTraceProvider } from './console.js';
|
|
11
11
|
export { LangfuseTraceProvider } from './langfuse.js';
|
|
12
|
+
// Multi Provider (fan-out to multiple providers)
|
|
13
|
+
export { MultiTraceProvider } from './multi.js';
|
|
12
14
|
//# sourceMappingURL=index.js.map
|
package/dist/trace/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/trace/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAiBH,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAE5D,UAAU;AACV,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AACnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAA;AAElE,UAAU;AACV,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAI3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAInD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/trace/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAiBH,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAE5D,UAAU;AACV,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AACnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAA;AAElE,UAAU;AACV,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAI3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAInD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAErD,iDAAiD;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Multi Trace Provider — fans out trace events to multiple TraceProviders.
|
|
3
|
+
*
|
|
4
|
+
* Useful when you want to record traces in two places at once (e.g. an internal
|
|
5
|
+
* Firestore/Postgres store *and* Langfuse for observability) without having to
|
|
6
|
+
* write a wrapper that forwards every callback by hand.
|
|
7
|
+
*
|
|
8
|
+
* const trace = new MultiTraceProvider([
|
|
9
|
+
* new ConsoleTraceProvider(),
|
|
10
|
+
* new LangfuseTraceProvider()
|
|
11
|
+
* ])
|
|
12
|
+
*
|
|
13
|
+
* new Tuplet({ ..., trace })
|
|
14
|
+
*
|
|
15
|
+
* Behavior:
|
|
16
|
+
* - Every callback fans out to all child providers in parallel via Promise.all.
|
|
17
|
+
* - Errors from any single child are caught and logged so one bad sink can't
|
|
18
|
+
* take down the agent run or block the other providers.
|
|
19
|
+
* - `modelPricing` resolves to the first child that defines one, so cost
|
|
20
|
+
* calculations stay consistent.
|
|
21
|
+
* - `flush()` / `shutdown()` fan out to children that implement them
|
|
22
|
+
* (e.g. LangfuseTraceProvider).
|
|
23
|
+
*/
|
|
24
|
+
import type { Trace, TraceProvider, AgentSpan, LLMCallEvent, ToolCallEvent, ModelPricing, CostUpdate } from './types.js';
|
|
25
|
+
export declare class MultiTraceProvider implements TraceProvider {
|
|
26
|
+
readonly modelPricing?: Record<string, ModelPricing>;
|
|
27
|
+
private readonly providers;
|
|
28
|
+
constructor(providers: TraceProvider[]);
|
|
29
|
+
onTraceStart(trace: Trace): Promise<void>;
|
|
30
|
+
onTraceEnd(trace: Trace): Promise<void>;
|
|
31
|
+
onAgentStart(span: AgentSpan, trace: Trace): Promise<void>;
|
|
32
|
+
onAgentEnd(span: AgentSpan, trace: Trace): Promise<void>;
|
|
33
|
+
onLLMCall(event: LLMCallEvent, span: AgentSpan, trace: Trace): Promise<void>;
|
|
34
|
+
onToolCall(event: ToolCallEvent, span: AgentSpan, trace: Trace): Promise<void>;
|
|
35
|
+
onCostUpdate(update: CostUpdate): Promise<void>;
|
|
36
|
+
/** Fan out flush() to children that implement it. Best-effort. */
|
|
37
|
+
flush(): Promise<void>;
|
|
38
|
+
/** Fan out shutdown() to children that implement it. Best-effort. */
|
|
39
|
+
shutdown(): Promise<void>;
|
|
40
|
+
private fanOut;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=multi.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multi.d.ts","sourceRoot":"","sources":["../../src/trace/multi.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EACV,KAAK,EACL,aAAa,EACb,SAAS,EACT,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,UAAU,EACX,MAAM,YAAY,CAAA;AAOnB,qBAAa,kBAAmB,YAAW,aAAa;IACtD,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IACpD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiB;gBAE/B,SAAS,EAAE,aAAa,EAAE;IAKhC,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzC,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvC,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1D,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxD,SAAS,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5E,UAAU,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9E,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrD,kEAAkE;IAC5D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B,qEAAqE;IAC/D,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;YAIjB,MAAM;CAarB"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Multi Trace Provider — fans out trace events to multiple TraceProviders.
|
|
3
|
+
*
|
|
4
|
+
* Useful when you want to record traces in two places at once (e.g. an internal
|
|
5
|
+
* Firestore/Postgres store *and* Langfuse for observability) without having to
|
|
6
|
+
* write a wrapper that forwards every callback by hand.
|
|
7
|
+
*
|
|
8
|
+
* const trace = new MultiTraceProvider([
|
|
9
|
+
* new ConsoleTraceProvider(),
|
|
10
|
+
* new LangfuseTraceProvider()
|
|
11
|
+
* ])
|
|
12
|
+
*
|
|
13
|
+
* new Tuplet({ ..., trace })
|
|
14
|
+
*
|
|
15
|
+
* Behavior:
|
|
16
|
+
* - Every callback fans out to all child providers in parallel via Promise.all.
|
|
17
|
+
* - Errors from any single child are caught and logged so one bad sink can't
|
|
18
|
+
* take down the agent run or block the other providers.
|
|
19
|
+
* - `modelPricing` resolves to the first child that defines one, so cost
|
|
20
|
+
* calculations stay consistent.
|
|
21
|
+
* - `flush()` / `shutdown()` fan out to children that implement them
|
|
22
|
+
* (e.g. LangfuseTraceProvider).
|
|
23
|
+
*/
|
|
24
|
+
export class MultiTraceProvider {
|
|
25
|
+
modelPricing;
|
|
26
|
+
providers;
|
|
27
|
+
constructor(providers) {
|
|
28
|
+
this.providers = providers;
|
|
29
|
+
this.modelPricing = providers.find((p) => p.modelPricing)?.modelPricing;
|
|
30
|
+
}
|
|
31
|
+
async onTraceStart(trace) {
|
|
32
|
+
await this.fanOut((p) => p.onTraceStart?.(trace));
|
|
33
|
+
}
|
|
34
|
+
async onTraceEnd(trace) {
|
|
35
|
+
await this.fanOut((p) => p.onTraceEnd?.(trace));
|
|
36
|
+
}
|
|
37
|
+
async onAgentStart(span, trace) {
|
|
38
|
+
await this.fanOut((p) => p.onAgentStart?.(span, trace));
|
|
39
|
+
}
|
|
40
|
+
async onAgentEnd(span, trace) {
|
|
41
|
+
await this.fanOut((p) => p.onAgentEnd?.(span, trace));
|
|
42
|
+
}
|
|
43
|
+
async onLLMCall(event, span, trace) {
|
|
44
|
+
await this.fanOut((p) => p.onLLMCall?.(event, span, trace));
|
|
45
|
+
}
|
|
46
|
+
async onToolCall(event, span, trace) {
|
|
47
|
+
await this.fanOut((p) => p.onToolCall?.(event, span, trace));
|
|
48
|
+
}
|
|
49
|
+
async onCostUpdate(update) {
|
|
50
|
+
await this.fanOut((p) => p.onCostUpdate?.(update));
|
|
51
|
+
}
|
|
52
|
+
/** Fan out flush() to children that implement it. Best-effort. */
|
|
53
|
+
async flush() {
|
|
54
|
+
await this.fanOut((p) => p.flush?.());
|
|
55
|
+
}
|
|
56
|
+
/** Fan out shutdown() to children that implement it. Best-effort. */
|
|
57
|
+
async shutdown() {
|
|
58
|
+
await this.fanOut((p) => p.shutdown?.());
|
|
59
|
+
}
|
|
60
|
+
async fanOut(invoke) {
|
|
61
|
+
await Promise.all(this.providers.map(async (p) => {
|
|
62
|
+
try {
|
|
63
|
+
await invoke(p);
|
|
64
|
+
}
|
|
65
|
+
catch (err) {
|
|
66
|
+
console.error('[multi-trace] provider failed:', err);
|
|
67
|
+
}
|
|
68
|
+
}));
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=multi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multi.js","sourceRoot":"","sources":["../../src/trace/multi.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAiBH,MAAM,OAAO,kBAAkB;IACpB,YAAY,CAA+B;IACnC,SAAS,CAAiB;IAE3C,YAAY,SAA0B;QACpC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,YAAY,CAAA;IACzE,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAAY;QAC7B,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IACnD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAY;QAC3B,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IACjD,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAAe,EAAE,KAAY;QAC9C,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;IACzD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAe,EAAE,KAAY;QAC5C,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;IACvD,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAmB,EAAE,IAAe,EAAE,KAAY;QAChE,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;IAC7D,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAoB,EAAE,IAAe,EAAE,KAAY;QAClE,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;IAC9D,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAkB;QACnC,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;IACpD,CAAC;IAED,kEAAkE;IAClE,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,CAAuB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IAC9D,CAAC;IAED,qEAAqE;IACrE,KAAK,CAAC,QAAQ;QACZ,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,CAAuB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;IACjE,CAAC;IAEO,KAAK,CAAC,MAAM,CAClB,MAAkD;QAElD,MAAM,OAAO,CAAC,GAAG,CACf,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YAC7B,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,CAAC,CAAC,CAAA;YACjB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,GAAG,CAAC,CAAA;YACtD,CAAC;QACH,CAAC,CAAC,CACH,CAAA;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multi.test.d.ts","sourceRoot":"","sources":["../../src/trace/multi.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
|
|
2
|
+
import { MultiTraceProvider } from './multi.js';
|
|
3
|
+
function makeSpan(overrides = {}) {
|
|
4
|
+
return {
|
|
5
|
+
type: 'agent',
|
|
6
|
+
spanId: 'span_1',
|
|
7
|
+
agentName: 'root',
|
|
8
|
+
depth: 0,
|
|
9
|
+
startTime: 0,
|
|
10
|
+
events: [],
|
|
11
|
+
children: [],
|
|
12
|
+
totalCost: 0,
|
|
13
|
+
totalInputTokens: 0,
|
|
14
|
+
totalOutputTokens: 0,
|
|
15
|
+
totalCacheCreationTokens: 0,
|
|
16
|
+
totalCacheReadTokens: 0,
|
|
17
|
+
totalLLMCalls: 0,
|
|
18
|
+
totalToolCalls: 0,
|
|
19
|
+
...overrides
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
function makeTrace() {
|
|
23
|
+
return {
|
|
24
|
+
traceId: 'trace_1',
|
|
25
|
+
rootSpan: makeSpan(),
|
|
26
|
+
startTime: 0,
|
|
27
|
+
totalCost: 0,
|
|
28
|
+
totalInputTokens: 0,
|
|
29
|
+
totalOutputTokens: 0,
|
|
30
|
+
totalCacheCreationTokens: 0,
|
|
31
|
+
totalCacheReadTokens: 0,
|
|
32
|
+
totalLLMCalls: 0,
|
|
33
|
+
totalToolCalls: 0,
|
|
34
|
+
costByModel: {}
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
function makeLLMEvent() {
|
|
38
|
+
return {
|
|
39
|
+
type: 'llm_call',
|
|
40
|
+
spanId: 'span_llm',
|
|
41
|
+
modelId: 'm',
|
|
42
|
+
inputTokens: 1,
|
|
43
|
+
outputTokens: 1,
|
|
44
|
+
cost: 0,
|
|
45
|
+
durationMs: 1,
|
|
46
|
+
timestamp: 1
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
function makeToolEvent() {
|
|
50
|
+
return {
|
|
51
|
+
type: 'tool_call',
|
|
52
|
+
spanId: 'span_tool',
|
|
53
|
+
toolName: 't',
|
|
54
|
+
input: {},
|
|
55
|
+
output: { success: true },
|
|
56
|
+
durationMs: 1,
|
|
57
|
+
timestamp: 1
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
function makeProvider() {
|
|
61
|
+
return {
|
|
62
|
+
onTraceStart: vi.fn(),
|
|
63
|
+
onTraceEnd: vi.fn(),
|
|
64
|
+
onAgentStart: vi.fn(),
|
|
65
|
+
onAgentEnd: vi.fn(),
|
|
66
|
+
onLLMCall: vi.fn(),
|
|
67
|
+
onToolCall: vi.fn(),
|
|
68
|
+
onCostUpdate: vi.fn()
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
describe('MultiTraceProvider', () => {
|
|
72
|
+
let errSpy;
|
|
73
|
+
beforeEach(() => {
|
|
74
|
+
errSpy = vi.spyOn(console, 'error').mockImplementation(() => { });
|
|
75
|
+
});
|
|
76
|
+
afterEach(() => {
|
|
77
|
+
errSpy.mockRestore();
|
|
78
|
+
});
|
|
79
|
+
it('fans out every callback to every child provider', async () => {
|
|
80
|
+
const a = makeProvider();
|
|
81
|
+
const b = makeProvider();
|
|
82
|
+
const multi = new MultiTraceProvider([a, b]);
|
|
83
|
+
const trace = makeTrace();
|
|
84
|
+
const span = makeSpan();
|
|
85
|
+
const llm = makeLLMEvent();
|
|
86
|
+
const tool = makeToolEvent();
|
|
87
|
+
const cost = {
|
|
88
|
+
callCost: 1,
|
|
89
|
+
cumulativeCost: 1,
|
|
90
|
+
inputTokens: 1,
|
|
91
|
+
outputTokens: 1,
|
|
92
|
+
modelId: 'm'
|
|
93
|
+
};
|
|
94
|
+
await multi.onTraceStart(trace);
|
|
95
|
+
await multi.onTraceEnd(trace);
|
|
96
|
+
await multi.onAgentStart(span, trace);
|
|
97
|
+
await multi.onAgentEnd(span, trace);
|
|
98
|
+
await multi.onLLMCall(llm, span, trace);
|
|
99
|
+
await multi.onToolCall(tool, span, trace);
|
|
100
|
+
await multi.onCostUpdate(cost);
|
|
101
|
+
for (const p of [a, b]) {
|
|
102
|
+
expect(p.onTraceStart).toHaveBeenCalledWith(trace);
|
|
103
|
+
expect(p.onTraceEnd).toHaveBeenCalledWith(trace);
|
|
104
|
+
expect(p.onAgentStart).toHaveBeenCalledWith(span, trace);
|
|
105
|
+
expect(p.onAgentEnd).toHaveBeenCalledWith(span, trace);
|
|
106
|
+
expect(p.onLLMCall).toHaveBeenCalledWith(llm, span, trace);
|
|
107
|
+
expect(p.onToolCall).toHaveBeenCalledWith(tool, span, trace);
|
|
108
|
+
expect(p.onCostUpdate).toHaveBeenCalledWith(cost);
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
it('isolates errors so one bad provider does not block the others', async () => {
|
|
112
|
+
const bad = {
|
|
113
|
+
...makeProvider(),
|
|
114
|
+
onLLMCall: vi.fn(() => {
|
|
115
|
+
throw new Error('boom');
|
|
116
|
+
})
|
|
117
|
+
};
|
|
118
|
+
const badAsync = {
|
|
119
|
+
...makeProvider(),
|
|
120
|
+
onLLMCall: vi.fn(async () => {
|
|
121
|
+
throw new Error('boom-async');
|
|
122
|
+
})
|
|
123
|
+
};
|
|
124
|
+
const good = makeProvider();
|
|
125
|
+
const multi = new MultiTraceProvider([bad, badAsync, good]);
|
|
126
|
+
const span = makeSpan();
|
|
127
|
+
const trace = makeTrace();
|
|
128
|
+
await expect(multi.onLLMCall(makeLLMEvent(), span, trace)).resolves.toBeUndefined();
|
|
129
|
+
expect(good.onLLMCall).toHaveBeenCalledTimes(1);
|
|
130
|
+
expect(errSpy).toHaveBeenCalledTimes(2);
|
|
131
|
+
});
|
|
132
|
+
it('resolves modelPricing to the first child that defines one', () => {
|
|
133
|
+
const pricing = {
|
|
134
|
+
foo: { inputPer1M: 1, outputPer1M: 2 }
|
|
135
|
+
};
|
|
136
|
+
const a = makeProvider();
|
|
137
|
+
const b = { ...makeProvider(), modelPricing: pricing };
|
|
138
|
+
const c = {
|
|
139
|
+
...makeProvider(),
|
|
140
|
+
modelPricing: { bar: { inputPer1M: 9, outputPer1M: 9 } }
|
|
141
|
+
};
|
|
142
|
+
const multi = new MultiTraceProvider([a, b, c]);
|
|
143
|
+
expect(multi.modelPricing).toBe(pricing);
|
|
144
|
+
});
|
|
145
|
+
it('flush() and shutdown() fan out to children that implement them', async () => {
|
|
146
|
+
const flush = vi.fn(async () => { });
|
|
147
|
+
const shutdown = vi.fn(async () => { });
|
|
148
|
+
const flushable = Object.assign(makeProvider(), { flush, shutdown });
|
|
149
|
+
const plain = makeProvider();
|
|
150
|
+
const multi = new MultiTraceProvider([flushable, plain]);
|
|
151
|
+
await multi.flush();
|
|
152
|
+
await multi.shutdown();
|
|
153
|
+
expect(flush).toHaveBeenCalledTimes(1);
|
|
154
|
+
expect(shutdown).toHaveBeenCalledTimes(1);
|
|
155
|
+
});
|
|
156
|
+
it('flush() swallows errors from children', async () => {
|
|
157
|
+
const flushable = Object.assign(makeProvider(), {
|
|
158
|
+
flush: vi.fn(async () => {
|
|
159
|
+
throw new Error('flush-fail');
|
|
160
|
+
})
|
|
161
|
+
});
|
|
162
|
+
const multi = new MultiTraceProvider([flushable]);
|
|
163
|
+
await expect(multi.flush()).resolves.toBeUndefined();
|
|
164
|
+
expect(errSpy).toHaveBeenCalledTimes(1);
|
|
165
|
+
});
|
|
166
|
+
});
|
|
167
|
+
//# sourceMappingURL=multi.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multi.test.js","sourceRoot":"","sources":["../../src/trace/multi.test.ts"],"names":[],"mappings":"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"}
|