@execlave/sdk 1.0.2 → 1.1.2

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 (47) hide show
  1. package/README.md +65 -48
  2. package/dist/client.d.ts.map +1 -1
  3. package/dist/client.js +5 -1
  4. package/dist/client.js.map +1 -1
  5. package/dist/errors.d.ts +17 -0
  6. package/dist/errors.d.ts.map +1 -1
  7. package/dist/errors.js +24 -1
  8. package/dist/errors.js.map +1 -1
  9. package/dist/index.d.ts +1 -1
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +2 -1
  12. package/dist/index.js.map +1 -1
  13. package/dist/instrumentation/events.d.ts +35 -0
  14. package/dist/instrumentation/events.d.ts.map +1 -0
  15. package/dist/instrumentation/events.js +137 -0
  16. package/dist/instrumentation/events.js.map +1 -0
  17. package/dist/instrumentation/index.d.ts +11 -0
  18. package/dist/instrumentation/index.d.ts.map +1 -0
  19. package/dist/instrumentation/index.js +28 -0
  20. package/dist/instrumentation/index.js.map +1 -0
  21. package/dist/instrumentation/spans.d.ts +72 -0
  22. package/dist/instrumentation/spans.d.ts.map +1 -0
  23. package/dist/instrumentation/spans.js +136 -0
  24. package/dist/instrumentation/spans.js.map +1 -0
  25. package/dist/integrations/crewai.d.ts +44 -0
  26. package/dist/integrations/crewai.d.ts.map +1 -0
  27. package/dist/integrations/crewai.js +224 -0
  28. package/dist/integrations/crewai.js.map +1 -0
  29. package/dist/integrations/index.d.ts +16 -0
  30. package/dist/integrations/index.d.ts.map +1 -0
  31. package/dist/integrations/index.js +19 -0
  32. package/dist/integrations/index.js.map +1 -0
  33. package/dist/integrations/langchain.d.ts +90 -0
  34. package/dist/integrations/langchain.d.ts.map +1 -0
  35. package/dist/integrations/langchain.js +240 -0
  36. package/dist/integrations/langchain.js.map +1 -0
  37. package/dist/integrations/openai-agents.d.ts +60 -0
  38. package/dist/integrations/openai-agents.d.ts.map +1 -0
  39. package/dist/integrations/openai-agents.js +247 -0
  40. package/dist/integrations/openai-agents.js.map +1 -0
  41. package/dist/trace.d.ts +21 -2
  42. package/dist/trace.d.ts.map +1 -1
  43. package/dist/trace.js +34 -4
  44. package/dist/trace.js.map +1 -1
  45. package/dist/types.d.ts +10 -0
  46. package/dist/types.d.ts.map +1 -1
  47. package/package.json +38 -5
@@ -0,0 +1,224 @@
1
+ "use strict";
2
+ /**
3
+ * CrewAI auto-instrumentation.
4
+ *
5
+ * Usage:
6
+ *
7
+ * ```ts
8
+ * import { Crew } from 'crewai';
9
+ * import { Execlave } from '@execlave/sdk';
10
+ * import { instrumentCrew } from '@execlave/sdk/integrations/crewai';
11
+ *
12
+ * const exe = new Execlave({ apiKey: '...' });
13
+ * const crew = new Crew({ agents: [...], tasks: [...] });
14
+ * instrumentCrew(crew, exe, { agentId: 'my-crew' });
15
+ * await crew.kickoff();
16
+ * ```
17
+ *
18
+ * Implementation: CrewAI exposes `stepCallback` and `taskCallback` hooks
19
+ * on `Agent` and `Crew` objects. We chain our callbacks in front of any
20
+ * existing user callbacks so attaching the instrumentation never
21
+ * overrides user-supplied hooks.
22
+ *
23
+ * Idempotent — `_execlaveInstrumented` marker prevents double-wrapping.
24
+ *
25
+ * Note: CrewAI's first-class JS implementation is still emerging; this
26
+ * helper duck-types the callback shape so it works with both the
27
+ * official package and community ports. No compile-time dependency.
28
+ */
29
+ Object.defineProperty(exports, "__esModule", { value: true });
30
+ exports.instrumentCrew = instrumentCrew;
31
+ const errors_1 = require("../errors");
32
+ const spans_1 = require("../instrumentation/spans");
33
+ const MARKER = '_execlaveInstrumented';
34
+ function isEnforcementError(err) {
35
+ return (err instanceof errors_1.PolicyBlockedError ||
36
+ err instanceof errors_1.PolicyDeniedError ||
37
+ err instanceof errors_1.ApprovalTimeoutError ||
38
+ err instanceof errors_1.EnforcementUnavailableError ||
39
+ err instanceof errors_1.AgentPausedError);
40
+ }
41
+ /**
42
+ * Attach Execlave instrumentation to a CrewAI `Crew` instance.
43
+ *
44
+ * Idempotent: calling twice on the same crew is a no-op. Returns the
45
+ * same crew for fluent chaining.
46
+ */
47
+ function instrumentCrew(crew, exe, opts) {
48
+ if (crew === null || crew === undefined) {
49
+ throw new Error('instrumentCrew: crew must not be null/undefined');
50
+ }
51
+ if (!exe)
52
+ throw new Error('instrumentCrew: exe must not be null/undefined');
53
+ if (!opts?.agentId)
54
+ throw new Error('instrumentCrew: agentId is required');
55
+ const c = crew;
56
+ if (c[MARKER])
57
+ return crew;
58
+ const tree = (0, spans_1.getSpanTree)(exe);
59
+ const stepCallback = async (step) => {
60
+ try {
61
+ await recordStep(tree, exe, step, opts);
62
+ }
63
+ catch (err) {
64
+ if (isEnforcementError(err))
65
+ throw err;
66
+ // eslint-disable-next-line no-console
67
+ console.warn('[execlave] crewai stepCallback failed:', err);
68
+ }
69
+ };
70
+ const taskCallback = (taskOutput) => {
71
+ try {
72
+ recordTask(tree, taskOutput, opts);
73
+ }
74
+ catch (err) {
75
+ // eslint-disable-next-line no-console
76
+ console.warn('[execlave] crewai taskCallback failed:', err);
77
+ }
78
+ };
79
+ // Chain rather than replace — preserve user-supplied callbacks.
80
+ chainCallback(c, 'stepCallback', stepCallback);
81
+ chainCallback(c, 'step_callback', stepCallback);
82
+ chainCallback(c, 'taskCallback', taskCallback);
83
+ chainCallback(c, 'task_callback', taskCallback);
84
+ // Crew also exposes a list of Agent objects each with their own
85
+ // stepCallback. Instrument them too so tool calls from sub-agents
86
+ // are captured.
87
+ const agents = (c.agents ?? []);
88
+ for (const inner of agents) {
89
+ chainCallback(inner, 'stepCallback', stepCallback);
90
+ chainCallback(inner, 'step_callback', stepCallback);
91
+ }
92
+ try {
93
+ c[MARKER] = true;
94
+ }
95
+ catch {
96
+ /* frozen object — double-wrap guard inactive */
97
+ }
98
+ return crew;
99
+ }
100
+ // ----------------------------------------------------------------------
101
+ // Internal: chaining + recording
102
+ // ----------------------------------------------------------------------
103
+ function chainCallback(obj, attr, newCb) {
104
+ if (!obj || typeof obj !== 'object')
105
+ return;
106
+ const existing = obj[attr];
107
+ if (existing === undefined || existing === null) {
108
+ try {
109
+ obj[attr] = newCb;
110
+ }
111
+ catch {
112
+ /* noop */
113
+ }
114
+ return;
115
+ }
116
+ const chained = async (payload) => {
117
+ try {
118
+ await newCb(payload);
119
+ }
120
+ catch (err) {
121
+ if (isEnforcementError(err))
122
+ throw err;
123
+ // eslint-disable-next-line no-console
124
+ console.warn(`[execlave] ${attr} failed:`, err);
125
+ }
126
+ try {
127
+ await existing(payload);
128
+ }
129
+ catch (err) {
130
+ // eslint-disable-next-line no-console
131
+ console.warn(`[execlave] user-provided ${attr} raised:`, err);
132
+ }
133
+ };
134
+ try {
135
+ obj[attr] = chained;
136
+ }
137
+ catch {
138
+ /* noop */
139
+ }
140
+ }
141
+ async function recordStep(tree, exe, step, opts) {
142
+ // CrewAI step shapes vary across versions; attribute-detect rather than
143
+ // rely on a particular structure.
144
+ const tool = step?.tool ?? step?.toolName ?? null;
145
+ const toolInput = step?.toolInput ?? step?.tool_input ?? step?.input ?? null;
146
+ const isTool = Boolean(tool);
147
+ const kind = isTool ? spans_1.SPAN_KIND_TOOL : spans_1.SPAN_KIND_AGENT;
148
+ const name = isTool ? String(tool) : 'step';
149
+ if (isTool && opts.enforce !== false) {
150
+ try {
151
+ await exe.enforcePolicy({
152
+ agentId: opts.agentId,
153
+ input: toolInput !== null && toolInput !== undefined ? safeStr(toolInput) : `tool:${tool}`,
154
+ tools: [String(tool)],
155
+ });
156
+ }
157
+ catch (err) {
158
+ if (isEnforcementError(err))
159
+ throw err;
160
+ // eslint-disable-next-line no-console
161
+ console.warn('[execlave] enforcePolicy failed (non-fatal):', err);
162
+ }
163
+ }
164
+ const span = tree.start({
165
+ kind,
166
+ name,
167
+ agentId: opts.agentId,
168
+ sessionId: opts.sessionId,
169
+ userId: opts.userId,
170
+ metadata: { crewaiStep: true },
171
+ });
172
+ if (toolInput !== null && toolInput !== undefined) {
173
+ try {
174
+ span.setInput(toolInput);
175
+ }
176
+ catch {
177
+ /* noop */
178
+ }
179
+ }
180
+ const output = step?.output ?? step?.result ?? null;
181
+ if (output !== null && output !== undefined) {
182
+ try {
183
+ span.setOutput(output);
184
+ }
185
+ catch {
186
+ /* noop */
187
+ }
188
+ }
189
+ span.finish('success');
190
+ }
191
+ function recordTask(tree, taskOutput, opts) {
192
+ const description = taskOutput?.description ??
193
+ taskOutput?.task ??
194
+ taskOutput?.name ??
195
+ 'task';
196
+ const span = tree.start({
197
+ kind: spans_1.SPAN_KIND_AGENT,
198
+ name: String(description).slice(0, 80),
199
+ agentId: opts.agentId,
200
+ sessionId: opts.sessionId,
201
+ userId: opts.userId,
202
+ metadata: { crewaiTask: true },
203
+ });
204
+ const raw = taskOutput?.raw ?? taskOutput?.output ?? taskOutput?.result ?? null;
205
+ if (raw !== null && raw !== undefined) {
206
+ try {
207
+ span.setOutput(raw);
208
+ }
209
+ catch {
210
+ /* noop */
211
+ }
212
+ }
213
+ span.finish('success');
214
+ }
215
+ function safeStr(value, limit = 4000) {
216
+ try {
217
+ const s = typeof value === 'string' ? value : JSON.stringify(value);
218
+ return s.slice(0, limit);
219
+ }
220
+ catch {
221
+ return String(value).slice(0, limit);
222
+ }
223
+ }
224
+ //# sourceMappingURL=crewai.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crewai.js","sourceRoot":"","sources":["../../src/integrations/crewai.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Framework adapters for @execlave/sdk.
3
+ *
4
+ * Each integration is intentionally not re-exported from the SDK root
5
+ * so installing `@execlave/sdk` does not pull framework peerDeps.
6
+ * Import directly:
7
+ *
8
+ * import { ExeclaveCallbackHandler } from '@execlave/sdk/integrations/langchain';
9
+ */
10
+ export { ExeclaveCallbackHandler } from './langchain';
11
+ export type { ExeclaveCallbackHandlerOptions } from './langchain';
12
+ export { ExeclaveTracingProcessor } from './openai-agents';
13
+ export type { ExeclaveTracingProcessorOptions } from './openai-agents';
14
+ export { instrumentCrew } from './crewai';
15
+ export type { InstrumentCrewOptions } from './crewai';
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/integrations/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtD,YAAY,EAAE,8BAA8B,EAAE,MAAM,aAAa,CAAC;AAElE,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,YAAY,EAAE,+BAA+B,EAAE,MAAM,iBAAiB,CAAC;AAEvE,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,YAAY,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ /**
3
+ * Framework adapters for @execlave/sdk.
4
+ *
5
+ * Each integration is intentionally not re-exported from the SDK root
6
+ * so installing `@execlave/sdk` does not pull framework peerDeps.
7
+ * Import directly:
8
+ *
9
+ * import { ExeclaveCallbackHandler } from '@execlave/sdk/integrations/langchain';
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.instrumentCrew = exports.ExeclaveTracingProcessor = exports.ExeclaveCallbackHandler = void 0;
13
+ var langchain_1 = require("./langchain");
14
+ Object.defineProperty(exports, "ExeclaveCallbackHandler", { enumerable: true, get: function () { return langchain_1.ExeclaveCallbackHandler; } });
15
+ var openai_agents_1 = require("./openai-agents");
16
+ Object.defineProperty(exports, "ExeclaveTracingProcessor", { enumerable: true, get: function () { return openai_agents_1.ExeclaveTracingProcessor; } });
17
+ var crewai_1 = require("./crewai");
18
+ Object.defineProperty(exports, "instrumentCrew", { enumerable: true, get: function () { return crewai_1.instrumentCrew; } });
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/integrations/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAEH,yCAAsD;AAA7C,oHAAA,uBAAuB,OAAA;AAGhC,iDAA2D;AAAlD,yHAAA,wBAAwB,OAAA;AAGjC,mCAA0C;AAAjC,wGAAA,cAAc,OAAA"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * LangChain JS auto-instrumentation.
3
+ *
4
+ * Usage:
5
+ *
6
+ * ```ts
7
+ * import { Execlave } from '@execlave/sdk';
8
+ * import { ExeclaveCallbackHandler } from '@execlave/sdk/integrations/langchain';
9
+ *
10
+ * const exe = new Execlave({ apiKey: '...' });
11
+ * const handler = new ExeclaveCallbackHandler(exe, { agentId: 'my-bot' });
12
+ * await chain.invoke({ q }, { callbacks: [handler] });
13
+ * ```
14
+ *
15
+ * Uses LangChain's `BaseCallbackHandler` (soft-imported so
16
+ * `@execlave/sdk` has no compile-time dependency on langchain).
17
+ * Consumers must install `@langchain/core` >= 0.3 themselves.
18
+ *
19
+ * Only TypeScript types are duck-typed here; at runtime the handler
20
+ * implements the method names LangChain expects.
21
+ */
22
+ import type { Execlave } from '../client';
23
+ export interface ExeclaveCallbackHandlerOptions {
24
+ /** Agent id registered with Execlave. Required for enforcement. */
25
+ agentId: string;
26
+ /** Run `enforcePolicy` on chain/tool starts. Default true. */
27
+ enforce?: boolean;
28
+ sessionId?: string;
29
+ userId?: string;
30
+ }
31
+ /**
32
+ * LangChain callback handler that streams into Execlave.
33
+ *
34
+ * This class does not `extends BaseCallbackHandler` at compile time —
35
+ * we duck-type the interface so the SDK package does not require
36
+ * `@langchain/core` to be installed. When registered with
37
+ * `config.callbacks`, LangChain invokes matching methods by name.
38
+ */
39
+ export declare class ExeclaveCallbackHandler {
40
+ readonly name = "ExeclaveCallbackHandler";
41
+ readonly raiseError = true;
42
+ readonly awaitHandlers = true;
43
+ private _exe;
44
+ private _agentId;
45
+ private _enforce;
46
+ private _sessionId?;
47
+ private _userId?;
48
+ private _tree;
49
+ private _spans;
50
+ constructor(exe: Execlave, opts: ExeclaveCallbackHandlerOptions);
51
+ private _open;
52
+ private _close;
53
+ private _enforceCall;
54
+ handleChainStart(chain: {
55
+ name?: string;
56
+ id?: string[];
57
+ } | undefined, inputs: Record<string, unknown>, runId: string, parentRunId?: string): Promise<void>;
58
+ handleChainEnd(outputs: unknown, runId: string): Promise<void>;
59
+ handleChainError(error: Error, runId: string): Promise<void>;
60
+ handleLLMStart(llm: {
61
+ name?: string;
62
+ id?: string[];
63
+ } | undefined, prompts: string[], runId: string, parentRunId?: string, extraParams?: Record<string, unknown>): Promise<void>;
64
+ handleChatModelStart(llm: {
65
+ name?: string;
66
+ id?: string[];
67
+ } | undefined, messages: unknown[], runId: string, parentRunId?: string, extraParams?: Record<string, unknown>): Promise<void>;
68
+ handleLLMEnd(output: any, runId: string): Promise<void>;
69
+ handleLLMError(error: Error, runId: string): Promise<void>;
70
+ handleToolStart(tool: {
71
+ name?: string;
72
+ id?: string[];
73
+ } | undefined, input: string, runId: string, parentRunId?: string): Promise<void>;
74
+ handleToolEnd(output: unknown, runId: string): Promise<void>;
75
+ handleToolError(error: Error, runId: string): Promise<void>;
76
+ handleAgentAction(action: {
77
+ tool?: string;
78
+ toolInput?: unknown;
79
+ }, runId: string, parentRunId?: string): Promise<void>;
80
+ handleAgentEnd(action: {
81
+ returnValues?: unknown;
82
+ log?: unknown;
83
+ }, runId: string): Promise<void>;
84
+ handleRetrieverStart(retriever: {
85
+ name?: string;
86
+ } | undefined, query: string, runId: string, parentRunId?: string): Promise<void>;
87
+ handleRetrieverEnd(documents: any[], runId: string): Promise<void>;
88
+ handleRetrieverError(error: Error, runId: string): Promise<void>;
89
+ }
90
+ //# sourceMappingURL=langchain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"langchain.d.ts","sourceRoot":"","sources":["../../src/integrations/langchain.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,240 @@
1
+ "use strict";
2
+ /**
3
+ * LangChain JS auto-instrumentation.
4
+ *
5
+ * Usage:
6
+ *
7
+ * ```ts
8
+ * import { Execlave } from '@execlave/sdk';
9
+ * import { ExeclaveCallbackHandler } from '@execlave/sdk/integrations/langchain';
10
+ *
11
+ * const exe = new Execlave({ apiKey: '...' });
12
+ * const handler = new ExeclaveCallbackHandler(exe, { agentId: 'my-bot' });
13
+ * await chain.invoke({ q }, { callbacks: [handler] });
14
+ * ```
15
+ *
16
+ * Uses LangChain's `BaseCallbackHandler` (soft-imported so
17
+ * `@execlave/sdk` has no compile-time dependency on langchain).
18
+ * Consumers must install `@langchain/core` >= 0.3 themselves.
19
+ *
20
+ * Only TypeScript types are duck-typed here; at runtime the handler
21
+ * implements the method names LangChain expects.
22
+ */
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ exports.ExeclaveCallbackHandler = void 0;
25
+ const errors_1 = require("../errors");
26
+ const spans_1 = require("../instrumentation/spans");
27
+ function isEnforcementError(err) {
28
+ return (err instanceof errors_1.PolicyBlockedError ||
29
+ err instanceof errors_1.PolicyDeniedError ||
30
+ err instanceof errors_1.ApprovalTimeoutError ||
31
+ err instanceof errors_1.EnforcementUnavailableError ||
32
+ err instanceof errors_1.AgentPausedError);
33
+ }
34
+ /**
35
+ * LangChain callback handler that streams into Execlave.
36
+ *
37
+ * This class does not `extends BaseCallbackHandler` at compile time —
38
+ * we duck-type the interface so the SDK package does not require
39
+ * `@langchain/core` to be installed. When registered with
40
+ * `config.callbacks`, LangChain invokes matching methods by name.
41
+ */
42
+ class ExeclaveCallbackHandler {
43
+ constructor(exe, opts) {
44
+ // LangChain inspects these. `name` is used for trace metadata.
45
+ this.name = 'ExeclaveCallbackHandler';
46
+ this.raiseError = true;
47
+ this.awaitHandlers = true;
48
+ this._spans = new Map();
49
+ if (!exe)
50
+ throw new Error('ExeclaveCallbackHandler requires an Execlave client');
51
+ if (!opts?.agentId)
52
+ throw new Error('ExeclaveCallbackHandler requires agentId');
53
+ this._exe = exe;
54
+ this._agentId = opts.agentId;
55
+ this._enforce = opts.enforce !== false;
56
+ this._sessionId = opts.sessionId;
57
+ this._userId = opts.userId;
58
+ this._tree = (0, spans_1.getSpanTree)(exe);
59
+ }
60
+ // --------------------------------------------------------------
61
+ // Helpers
62
+ // --------------------------------------------------------------
63
+ _open(runId, parentRunId, kind, name, input, metadata) {
64
+ const parent = parentRunId ? this._spans.get(parentRunId) : null;
65
+ const span = this._tree.start({
66
+ kind,
67
+ name,
68
+ parent,
69
+ agentId: this._agentId,
70
+ sessionId: this._sessionId,
71
+ userId: this._userId,
72
+ metadata,
73
+ });
74
+ if (input !== undefined)
75
+ span.setInput(input);
76
+ this._spans.set(runId, span);
77
+ return span;
78
+ }
79
+ _close(runId, output, status = 'success', errorMessage, errorType) {
80
+ const span = this._spans.get(runId);
81
+ if (!span)
82
+ return;
83
+ this._spans.delete(runId);
84
+ if (output !== undefined) {
85
+ try {
86
+ span.setOutput(output);
87
+ }
88
+ catch {
89
+ /* noop */
90
+ }
91
+ }
92
+ span.finish(status, errorMessage, errorType);
93
+ }
94
+ async _enforceCall(input, tools) {
95
+ if (!this._enforce)
96
+ return;
97
+ try {
98
+ await this._exe.enforcePolicy({
99
+ agentId: this._agentId,
100
+ input,
101
+ tools,
102
+ });
103
+ }
104
+ catch (err) {
105
+ if (isEnforcementError(err))
106
+ throw err;
107
+ // eslint-disable-next-line no-console
108
+ console.warn('[execlave] enforcePolicy failed (non-fatal):', err);
109
+ }
110
+ }
111
+ // --------------------------------------------------------------
112
+ // Chain callbacks
113
+ // --------------------------------------------------------------
114
+ async handleChainStart(chain, inputs, runId, parentRunId) {
115
+ const name = chain?.name ?? chain?.id?.[chain.id.length - 1] ?? 'chain';
116
+ if (!parentRunId) {
117
+ const inputText = extractInputText(inputs);
118
+ if (inputText)
119
+ await this._enforceCall(inputText);
120
+ }
121
+ this._open(runId, parentRunId, spans_1.SPAN_KIND_CHAIN, name, inputs);
122
+ }
123
+ async handleChainEnd(outputs, runId) {
124
+ this._close(runId, outputs, 'success');
125
+ }
126
+ async handleChainError(error, runId) {
127
+ this._close(runId, undefined, 'error', error?.message, error?.name);
128
+ }
129
+ // --------------------------------------------------------------
130
+ // LLM callbacks
131
+ // --------------------------------------------------------------
132
+ async handleLLMStart(llm, prompts, runId, parentRunId, extraParams) {
133
+ const name = llm?.name ?? llm?.id?.[llm.id.length - 1] ?? 'llm';
134
+ const span = this._open(runId, parentRunId, spans_1.SPAN_KIND_LLM, name, prompts);
135
+ const invocation = (extraParams?.invocation_params ?? {});
136
+ const model = (invocation.model ?? invocation.model_name);
137
+ if (model)
138
+ span.setModel(model);
139
+ }
140
+ async handleChatModelStart(llm, messages, runId, parentRunId, extraParams) {
141
+ const name = llm?.name ?? llm?.id?.[llm.id.length - 1] ?? 'chat_model';
142
+ const span = this._open(runId, parentRunId, spans_1.SPAN_KIND_LLM, name, messages);
143
+ const invocation = (extraParams?.invocation_params ?? {});
144
+ const model = (invocation.model ?? invocation.model_name);
145
+ if (model)
146
+ span.setModel(model);
147
+ }
148
+ async handleLLMEnd(output, runId) {
149
+ const span = this._spans.get(runId);
150
+ if (span) {
151
+ const usage = output?.llmOutput?.tokenUsage ?? output?.llmOutput?.usage;
152
+ if (usage) {
153
+ const p = usage.promptTokens ?? usage.prompt_tokens ?? usage.input_tokens;
154
+ const c = usage.completionTokens ?? usage.completion_tokens ?? usage.output_tokens;
155
+ if (typeof p === 'number' && typeof c === 'number')
156
+ span.setTokens(p, c);
157
+ }
158
+ const texts = [];
159
+ for (const batch of output?.generations ?? []) {
160
+ for (const gen of batch ?? []) {
161
+ if (typeof gen.text === 'string')
162
+ texts.push(gen.text);
163
+ else if (gen.message?.content)
164
+ texts.push(String(gen.message.content));
165
+ }
166
+ }
167
+ if (texts.length)
168
+ span.setOutput(texts.length === 1 ? texts[0] : texts);
169
+ }
170
+ this._close(runId, undefined, 'success');
171
+ }
172
+ async handleLLMError(error, runId) {
173
+ this._close(runId, undefined, 'error', error?.message, error?.name);
174
+ }
175
+ // --------------------------------------------------------------
176
+ // Tool callbacks
177
+ // --------------------------------------------------------------
178
+ async handleToolStart(tool, input, runId, parentRunId) {
179
+ const toolName = tool?.name ?? tool?.id?.[tool.id.length - 1] ?? 'tool';
180
+ await this._enforceCall(input ?? `tool:${toolName}`, [toolName]);
181
+ this._open(runId, parentRunId, spans_1.SPAN_KIND_TOOL, toolName, input, { toolName });
182
+ }
183
+ async handleToolEnd(output, runId) {
184
+ this._close(runId, output, 'success');
185
+ }
186
+ async handleToolError(error, runId) {
187
+ this._close(runId, undefined, 'error', error?.message, error?.name);
188
+ }
189
+ // --------------------------------------------------------------
190
+ // Agent callbacks
191
+ // --------------------------------------------------------------
192
+ async handleAgentAction(action, runId, parentRunId) {
193
+ this._open(runId, parentRunId, spans_1.SPAN_KIND_AGENT, String(action?.tool ?? 'agent_action'), action?.toolInput, { agentAction: String(action?.tool ?? 'agent_action') });
194
+ }
195
+ async handleAgentEnd(action, runId) {
196
+ this._close(runId, action?.returnValues ?? action?.log, 'success');
197
+ }
198
+ // --------------------------------------------------------------
199
+ // Retriever callbacks
200
+ // --------------------------------------------------------------
201
+ async handleRetrieverStart(retriever, query, runId, parentRunId) {
202
+ const name = retriever?.name ?? 'retriever';
203
+ this._open(runId, parentRunId, spans_1.SPAN_KIND_RETRIEVER, name, query);
204
+ }
205
+ async handleRetrieverEnd(documents, runId) {
206
+ const span = this._spans.get(runId);
207
+ if (span && Array.isArray(documents)) {
208
+ span.addMetadata({
209
+ retrievedDocs: documents.map((d) => ({
210
+ id: d?.metadata?.id ?? d?.metadata?.source,
211
+ length: typeof d?.pageContent === 'string' ? d.pageContent.length : 0,
212
+ })),
213
+ });
214
+ }
215
+ this._close(runId, undefined, 'success');
216
+ }
217
+ async handleRetrieverError(error, runId) {
218
+ this._close(runId, undefined, 'error', error?.message, error?.name);
219
+ }
220
+ }
221
+ exports.ExeclaveCallbackHandler = ExeclaveCallbackHandler;
222
+ // ------------------------------------------------------------------
223
+ // Helpers
224
+ // ------------------------------------------------------------------
225
+ function extractInputText(inputs) {
226
+ if (!inputs || typeof inputs !== 'object')
227
+ return null;
228
+ for (const key of ['input', 'question', 'query', 'q', 'prompt', 'text']) {
229
+ const v = inputs[key];
230
+ if (typeof v === 'string' && v)
231
+ return v;
232
+ }
233
+ const parts = [];
234
+ for (const v of Object.values(inputs)) {
235
+ if (typeof v === 'string')
236
+ parts.push(v);
237
+ }
238
+ return parts.length ? parts.join(' ') : null;
239
+ }
240
+ //# sourceMappingURL=langchain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"langchain.js","sourceRoot":"","sources":["../../src/integrations/langchain.ts"],"names":[],"mappings":"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"}