@execlave/sdk 1.0.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.
- package/README.md +131 -0
- package/dist/agent.d.ts +65 -0
- package/dist/agent.d.ts.map +1 -0
- package/dist/agent.js +108 -0
- package/dist/agent.js.map +1 -0
- package/dist/client.d.ts +201 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +985 -0
- package/dist/client.js.map +1 -0
- package/dist/connectors.d.ts +39 -0
- package/dist/connectors.d.ts.map +1 -0
- package/dist/connectors.js +67 -0
- package/dist/connectors.js.map +1 -0
- package/dist/errors.d.ts +81 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +125 -0
- package/dist/errors.js.map +1 -0
- package/dist/http.d.ts +20 -0
- package/dist/http.d.ts.map +1 -0
- package/dist/http.js +79 -0
- package/dist/http.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +31 -0
- package/dist/index.js.map +1 -0
- package/dist/otel.d.ts +18 -0
- package/dist/otel.d.ts.map +1 -0
- package/dist/otel.js +147 -0
- package/dist/otel.js.map +1 -0
- package/dist/trace.d.ts +62 -0
- package/dist/trace.d.ts.map +1 -0
- package/dist/trace.js +104 -0
- package/dist/trace.js.map +1 -0
- package/dist/types.d.ts +203 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/package.json +88 -0
package/dist/otel.js
ADDED
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* OpenTelemetry adapter for Execlave SDK.
|
|
4
|
+
*
|
|
5
|
+
* Converts Execlave trace payloads to OTel spans and exports
|
|
6
|
+
* them using OTLP/HTTP. Requires optional peer dependencies:
|
|
7
|
+
* npm install @opentelemetry/sdk-trace-base @opentelemetry/exporter-trace-otlp-http @opentelemetry/resources @opentelemetry/api
|
|
8
|
+
*/
|
|
9
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
12
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
13
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
14
|
+
}
|
|
15
|
+
Object.defineProperty(o, k2, desc);
|
|
16
|
+
}) : (function(o, m, k, k2) {
|
|
17
|
+
if (k2 === undefined) k2 = k;
|
|
18
|
+
o[k2] = m[k];
|
|
19
|
+
}));
|
|
20
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
21
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
22
|
+
}) : function(o, v) {
|
|
23
|
+
o["default"] = v;
|
|
24
|
+
});
|
|
25
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
26
|
+
var ownKeys = function(o) {
|
|
27
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
28
|
+
var ar = [];
|
|
29
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
30
|
+
return ar;
|
|
31
|
+
};
|
|
32
|
+
return ownKeys(o);
|
|
33
|
+
};
|
|
34
|
+
return function (mod) {
|
|
35
|
+
if (mod && mod.__esModule) return mod;
|
|
36
|
+
var result = {};
|
|
37
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
38
|
+
__setModuleDefault(result, mod);
|
|
39
|
+
return result;
|
|
40
|
+
};
|
|
41
|
+
})();
|
|
42
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
43
|
+
exports.OTelExporter = void 0;
|
|
44
|
+
// Types only — actual modules loaded dynamically
|
|
45
|
+
let otelApi;
|
|
46
|
+
let otelSdk;
|
|
47
|
+
let otelExporter;
|
|
48
|
+
let otelResources;
|
|
49
|
+
async function ensureImports() {
|
|
50
|
+
if (otelApi)
|
|
51
|
+
return;
|
|
52
|
+
try {
|
|
53
|
+
otelApi = await Promise.resolve().then(() => __importStar(require('@opentelemetry/api')));
|
|
54
|
+
otelSdk = await Promise.resolve().then(() => __importStar(require('@opentelemetry/sdk-trace-base')));
|
|
55
|
+
otelExporter = await Promise.resolve().then(() => __importStar(require('@opentelemetry/exporter-trace-otlp-http')));
|
|
56
|
+
otelResources = await Promise.resolve().then(() => __importStar(require('@opentelemetry/resources')));
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
throw new Error('OpenTelemetry packages required for OTLP mode. Install with: ' +
|
|
60
|
+
'npm install @opentelemetry/sdk-trace-base @opentelemetry/exporter-trace-otlp-http @opentelemetry/resources @opentelemetry/api');
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
class OTelExporter {
|
|
64
|
+
constructor() { }
|
|
65
|
+
static async create(endpoint, apiKey, serviceName) {
|
|
66
|
+
await ensureImports();
|
|
67
|
+
const instance = new OTelExporter();
|
|
68
|
+
const resource = new otelResources.Resource({
|
|
69
|
+
'service.name': serviceName,
|
|
70
|
+
'execlave.api_key_prefix': apiKey ? apiKey.substring(0, 10) + '...' : 'unknown',
|
|
71
|
+
});
|
|
72
|
+
const exporter = new otelExporter.OTLPTraceExporter({
|
|
73
|
+
url: endpoint.replace(/\/$/, '') + '/v1/traces',
|
|
74
|
+
headers: { Authorization: `Bearer ${apiKey}` },
|
|
75
|
+
});
|
|
76
|
+
instance.provider = new otelSdk.BasicTracerProvider({ resource });
|
|
77
|
+
instance.provider.addSpanProcessor(new otelSdk.BatchSpanProcessor(exporter));
|
|
78
|
+
instance.provider.register();
|
|
79
|
+
instance.tracer = otelApi.trace.getTracer('Execlave', '1.0.0');
|
|
80
|
+
return instance;
|
|
81
|
+
}
|
|
82
|
+
exportTraces(traces) {
|
|
83
|
+
for (const payload of traces) {
|
|
84
|
+
const span = this.tracer.startSpan(payload.agentId || 'unknown', {
|
|
85
|
+
kind: otelApi.SpanKind.INTERNAL,
|
|
86
|
+
attributes: this.payloadToAttributes(payload),
|
|
87
|
+
});
|
|
88
|
+
const status = payload.status || 'success';
|
|
89
|
+
if (status === 'error') {
|
|
90
|
+
span.setStatus({ code: otelApi.SpanStatusCode.ERROR, message: payload.errorMessage || '' });
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
span.setStatus({ code: otelApi.SpanStatusCode.OK });
|
|
94
|
+
}
|
|
95
|
+
span.end();
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
payloadToAttributes(payload) {
|
|
99
|
+
const attrs = {};
|
|
100
|
+
const mapping = {
|
|
101
|
+
traceId: 'execlave.trace_id',
|
|
102
|
+
agentId: 'execlave.agent_id',
|
|
103
|
+
sessionId: 'execlave.session_id',
|
|
104
|
+
environment: 'deployment.environment',
|
|
105
|
+
modelName: 'gen_ai.request.model',
|
|
106
|
+
status: 'execlave.status',
|
|
107
|
+
durationMs: 'execlave.duration_ms',
|
|
108
|
+
errorMessage: 'error.message',
|
|
109
|
+
errorType: 'error.type',
|
|
110
|
+
userId: 'enduser.id',
|
|
111
|
+
};
|
|
112
|
+
for (const [key, attrName] of Object.entries(mapping)) {
|
|
113
|
+
const val = payload[key];
|
|
114
|
+
if (val != null) {
|
|
115
|
+
attrs[attrName] = typeof val === 'object' ? JSON.stringify(val) : val;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
if (payload.promptTokens)
|
|
119
|
+
attrs['gen_ai.usage.prompt_tokens'] = payload.promptTokens;
|
|
120
|
+
if (payload.completionTokens)
|
|
121
|
+
attrs['gen_ai.usage.completion_tokens'] = payload.completionTokens;
|
|
122
|
+
if (payload.totalTokens)
|
|
123
|
+
attrs['gen_ai.usage.total_tokens'] = payload.totalTokens;
|
|
124
|
+
if (payload.costUsd)
|
|
125
|
+
attrs['execlave.cost_usd'] = payload.costUsd;
|
|
126
|
+
if (payload.input) {
|
|
127
|
+
const inp = typeof payload.input === 'string' ? payload.input : JSON.stringify(payload.input);
|
|
128
|
+
attrs['gen_ai.prompt'] = inp.length > 4096 ? inp.substring(0, 4096) : inp;
|
|
129
|
+
}
|
|
130
|
+
if (payload.output) {
|
|
131
|
+
const out = typeof payload.output === 'string' ? payload.output : JSON.stringify(payload.output);
|
|
132
|
+
attrs['gen_ai.completion'] = out.length > 4096 ? out.substring(0, 4096) : out;
|
|
133
|
+
}
|
|
134
|
+
return attrs;
|
|
135
|
+
}
|
|
136
|
+
async shutdown() {
|
|
137
|
+
try {
|
|
138
|
+
await this.provider?.forceFlush();
|
|
139
|
+
await this.provider?.shutdown();
|
|
140
|
+
}
|
|
141
|
+
catch {
|
|
142
|
+
// Best-effort shutdown
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
exports.OTelExporter = OTelExporter;
|
|
147
|
+
//# sourceMappingURL=otel.js.map
|
package/dist/otel.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"otel.js","sourceRoot":"","sources":["../src/otel.ts"],"names":[],"mappings":"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"}
|
package/dist/trace.d.ts
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Trace object for recording execution details.
|
|
3
|
+
*
|
|
4
|
+
* Used as a handle returned by `ag.startTrace()`. Collects input, output,
|
|
5
|
+
* model info, tokens, cost, and metadata. Call `.finish()` to submit.
|
|
6
|
+
*/
|
|
7
|
+
import type { TracePayload, TraceStatus } from './types';
|
|
8
|
+
interface BufferOwner {
|
|
9
|
+
_bufferTrace(payload: TracePayload): void;
|
|
10
|
+
}
|
|
11
|
+
export declare class Trace {
|
|
12
|
+
readonly traceId: string;
|
|
13
|
+
readonly agentId: string | undefined;
|
|
14
|
+
readonly sessionId: string | undefined;
|
|
15
|
+
readonly userId: string | undefined;
|
|
16
|
+
private _owner;
|
|
17
|
+
private _metadata;
|
|
18
|
+
private _input;
|
|
19
|
+
private _output;
|
|
20
|
+
private _modelName;
|
|
21
|
+
private _promptTokens;
|
|
22
|
+
private _completionTokens;
|
|
23
|
+
private _cost;
|
|
24
|
+
private _status;
|
|
25
|
+
private _errorMessage;
|
|
26
|
+
private _errorType;
|
|
27
|
+
private _startMs;
|
|
28
|
+
private _durationOverride;
|
|
29
|
+
private _finished;
|
|
30
|
+
constructor(owner: BufferOwner, opts?: {
|
|
31
|
+
agentId?: string;
|
|
32
|
+
traceId?: string;
|
|
33
|
+
sessionId?: string;
|
|
34
|
+
userId?: string;
|
|
35
|
+
metadata?: Record<string, unknown>;
|
|
36
|
+
});
|
|
37
|
+
/** Set the input data for this trace. Chainable. */
|
|
38
|
+
setInput(data: unknown): this;
|
|
39
|
+
/** Set the output data for this trace. Chainable. */
|
|
40
|
+
setOutput(data: unknown): this;
|
|
41
|
+
/** Set the model name used. Chainable. */
|
|
42
|
+
setModel(modelName: string): this;
|
|
43
|
+
/** Set token counts. Chainable. */
|
|
44
|
+
setTokens(prompt: number, completion: number): this;
|
|
45
|
+
/** Set estimated cost in USD. Chainable. */
|
|
46
|
+
setCost(costUsd: number): this;
|
|
47
|
+
/** Merge additional metadata. Chainable. */
|
|
48
|
+
addMetadata(meta: Record<string, unknown>): this;
|
|
49
|
+
/** Override the auto-calculated duration (ms). Chainable. */
|
|
50
|
+
setDuration(ms: number): this;
|
|
51
|
+
/**
|
|
52
|
+
* Finish the trace and submit it to the buffer.
|
|
53
|
+
*
|
|
54
|
+
* @param status - 'success' | 'error' | 'timeout' | 'blocked'
|
|
55
|
+
* @param errorMessage - Error message if status is 'error'
|
|
56
|
+
* @param errorType - Error class/type name
|
|
57
|
+
*/
|
|
58
|
+
finish(status?: TraceStatus, errorMessage?: string, errorType?: string): void;
|
|
59
|
+
private _toPayload;
|
|
60
|
+
}
|
|
61
|
+
export {};
|
|
62
|
+
//# sourceMappingURL=trace.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace.d.ts","sourceRoot":"","sources":["../src/trace.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAIzD,UAAU,WAAW;IACnB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;CAC3C;AAED,qBAAa,KAAK;IAChB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAEpC,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,iBAAiB,CAAqB;IAC9C,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,iBAAiB,CAAqB;IAC9C,OAAO,CAAC,SAAS,CAAS;gBAGxB,KAAK,EAAE,WAAW,EAClB,IAAI,GAAE;QACJ,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC/B;IAWR,oDAAoD;IACpD,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAK7B,qDAAqD;IACrD,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAK9B,0CAA0C;IAC1C,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAKjC,mCAAmC;IACnC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAMnD,4CAA4C;IAC5C,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAK9B,4CAA4C;IAC5C,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAKhD,6DAA6D;IAC7D,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAK7B;;;;;;OAMG;IACH,MAAM,CACJ,MAAM,GAAE,WAAuB,EAC/B,YAAY,CAAC,EAAE,MAAM,EACrB,SAAS,CAAC,EAAE,MAAM,GACjB,IAAI;IAWP,OAAO,CAAC,UAAU;CA2BnB"}
|
package/dist/trace.js
ADDED
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Trace object for recording execution details.
|
|
4
|
+
*
|
|
5
|
+
* Used as a handle returned by `ag.startTrace()`. Collects input, output,
|
|
6
|
+
* model info, tokens, cost, and metadata. Call `.finish()` to submit.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.Trace = void 0;
|
|
10
|
+
const crypto_1 = require("crypto");
|
|
11
|
+
class Trace {
|
|
12
|
+
constructor(owner, opts = {}) {
|
|
13
|
+
this._input = undefined;
|
|
14
|
+
this._output = undefined;
|
|
15
|
+
this._status = 'success';
|
|
16
|
+
this._finished = false;
|
|
17
|
+
this._owner = owner;
|
|
18
|
+
this.traceId = opts.traceId ?? `tr_${(0, crypto_1.randomBytes)(8).toString('hex')}`;
|
|
19
|
+
this.agentId = opts.agentId;
|
|
20
|
+
this.sessionId = opts.sessionId;
|
|
21
|
+
this.userId = opts.userId;
|
|
22
|
+
this._metadata = opts.metadata ?? {};
|
|
23
|
+
this._startMs = Date.now();
|
|
24
|
+
}
|
|
25
|
+
/** Set the input data for this trace. Chainable. */
|
|
26
|
+
setInput(data) {
|
|
27
|
+
this._input = data;
|
|
28
|
+
return this;
|
|
29
|
+
}
|
|
30
|
+
/** Set the output data for this trace. Chainable. */
|
|
31
|
+
setOutput(data) {
|
|
32
|
+
this._output = data;
|
|
33
|
+
return this;
|
|
34
|
+
}
|
|
35
|
+
/** Set the model name used. Chainable. */
|
|
36
|
+
setModel(modelName) {
|
|
37
|
+
this._modelName = modelName;
|
|
38
|
+
return this;
|
|
39
|
+
}
|
|
40
|
+
/** Set token counts. Chainable. */
|
|
41
|
+
setTokens(prompt, completion) {
|
|
42
|
+
this._promptTokens = prompt;
|
|
43
|
+
this._completionTokens = completion;
|
|
44
|
+
return this;
|
|
45
|
+
}
|
|
46
|
+
/** Set estimated cost in USD. Chainable. */
|
|
47
|
+
setCost(costUsd) {
|
|
48
|
+
this._cost = costUsd;
|
|
49
|
+
return this;
|
|
50
|
+
}
|
|
51
|
+
/** Merge additional metadata. Chainable. */
|
|
52
|
+
addMetadata(meta) {
|
|
53
|
+
Object.assign(this._metadata, meta);
|
|
54
|
+
return this;
|
|
55
|
+
}
|
|
56
|
+
/** Override the auto-calculated duration (ms). Chainable. */
|
|
57
|
+
setDuration(ms) {
|
|
58
|
+
this._durationOverride = ms;
|
|
59
|
+
return this;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Finish the trace and submit it to the buffer.
|
|
63
|
+
*
|
|
64
|
+
* @param status - 'success' | 'error' | 'timeout' | 'blocked'
|
|
65
|
+
* @param errorMessage - Error message if status is 'error'
|
|
66
|
+
* @param errorType - Error class/type name
|
|
67
|
+
*/
|
|
68
|
+
finish(status = 'success', errorMessage, errorType) {
|
|
69
|
+
if (this._finished)
|
|
70
|
+
return;
|
|
71
|
+
this._finished = true;
|
|
72
|
+
this._status = status;
|
|
73
|
+
this._errorMessage = errorMessage;
|
|
74
|
+
this._errorType = errorType;
|
|
75
|
+
this._owner._bufferTrace(this._toPayload());
|
|
76
|
+
}
|
|
77
|
+
_toPayload() {
|
|
78
|
+
const durationMs = this._durationOverride ?? (Date.now() - this._startMs);
|
|
79
|
+
const totalTokens = this._promptTokens !== undefined && this._completionTokens !== undefined
|
|
80
|
+
? this._promptTokens + this._completionTokens
|
|
81
|
+
: undefined;
|
|
82
|
+
return {
|
|
83
|
+
traceId: this.traceId,
|
|
84
|
+
agentId: this.agentId,
|
|
85
|
+
sessionId: this.sessionId,
|
|
86
|
+
userId: this.userId,
|
|
87
|
+
timestamp: new Date(this._startMs).toISOString(),
|
|
88
|
+
durationMs,
|
|
89
|
+
status: this._status,
|
|
90
|
+
input: this._input,
|
|
91
|
+
output: this._output,
|
|
92
|
+
errorMessage: this._errorMessage,
|
|
93
|
+
errorType: this._errorType,
|
|
94
|
+
modelName: this._modelName,
|
|
95
|
+
promptTokens: this._promptTokens,
|
|
96
|
+
completionTokens: this._completionTokens,
|
|
97
|
+
totalTokens,
|
|
98
|
+
costUsd: this._cost,
|
|
99
|
+
metadata: Object.keys(this._metadata).length > 0 ? this._metadata : undefined,
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
exports.Trace = Trace;
|
|
104
|
+
//# sourceMappingURL=trace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace.js","sourceRoot":"","sources":["../src/trace.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type definitions for the Execlave SDK.
|
|
3
|
+
*/
|
|
4
|
+
export type Environment = 'development' | 'staging' | 'production';
|
|
5
|
+
export type AgentStatus = 'active' | 'paused' | 'archived' | 'error';
|
|
6
|
+
export type TraceStatus = 'success' | 'error' | 'timeout' | 'policy_blocked' | 'limit_exceeded';
|
|
7
|
+
export interface ExeclaveConfig {
|
|
8
|
+
/** API key (exe_xxx). Falls back to EXECLAVE_API_KEY env var. */
|
|
9
|
+
apiKey?: string;
|
|
10
|
+
/** Base URL of the Execlave API. Defaults to http://localhost:4000 */
|
|
11
|
+
baseUrl?: string;
|
|
12
|
+
/** API version prefix (e.g. 'v1'). Defaults to 'v1'. Set to empty string or undefined for legacy /api paths. */
|
|
13
|
+
apiVersion?: string;
|
|
14
|
+
/** Deployment environment. Defaults to 'production'. */
|
|
15
|
+
environment?: Environment;
|
|
16
|
+
/** Buffer traces and flush in background. Defaults to true. */
|
|
17
|
+
asyncMode?: boolean;
|
|
18
|
+
/** Max traces in a single flush batch. Defaults to 100. */
|
|
19
|
+
batchSize?: number;
|
|
20
|
+
/** Background flush interval in ms. Defaults to 10000. */
|
|
21
|
+
flushIntervalMs?: number;
|
|
22
|
+
/** Enable debug logging. Defaults to false. */
|
|
23
|
+
debug?: boolean;
|
|
24
|
+
/** Enable background agent status polling. Defaults to true. */
|
|
25
|
+
enableControlChannel?: boolean;
|
|
26
|
+
/** Status poll interval in ms. Defaults to 15000. */
|
|
27
|
+
pollIntervalMs?: number;
|
|
28
|
+
/** Client-side PII scrubbing configuration. */
|
|
29
|
+
privacy?: PrivacyConfig;
|
|
30
|
+
/** Enable client-side prompt injection scanning. Defaults to true. */
|
|
31
|
+
enableInjectionScan?: boolean;
|
|
32
|
+
/** Transport mode: 'native' (REST API) or 'otlp' (OpenTelemetry). Default: 'native' */
|
|
33
|
+
mode?: 'native' | 'otlp';
|
|
34
|
+
/** OTLP exporter endpoint (required when mode is 'otlp'). Example: 'http://localhost:4317' */
|
|
35
|
+
otlpEndpoint?: string;
|
|
36
|
+
/** Behaviour when enforcement endpoint is unreachable. Default: 'fail_open'. */
|
|
37
|
+
enforcementOnOutage?: 'fail_open' | 'fail_closed';
|
|
38
|
+
/** Behaviour when a plan limit (402) is hit. Default: 'fail_open'.
|
|
39
|
+
* fail_open: log warning and allow execution to continue unmonitored.
|
|
40
|
+
* fail_closed: throw PlanLimitExceededError and block execution. */
|
|
41
|
+
planLimitBehavior?: 'fail_open' | 'fail_closed';
|
|
42
|
+
/** Heartbeat ping interval in ms. Default: 600_000 (10 min). */
|
|
43
|
+
heartbeatIntervalMs?: number;
|
|
44
|
+
/** TTL for cached policy decisions in ms. Default: 60_000 (60s). */
|
|
45
|
+
policyCacheTtlMs?: number;
|
|
46
|
+
}
|
|
47
|
+
export interface PrivacyConfig {
|
|
48
|
+
/** Enable PII detection and scrubbing. Defaults to false. */
|
|
49
|
+
enabled: boolean;
|
|
50
|
+
/** Fields to scrub. Defaults to ['input', 'output']. */
|
|
51
|
+
scrubFields?: string[];
|
|
52
|
+
/** Include SHA-256 hashes of PII in metadata. Defaults to true. */
|
|
53
|
+
hashPii?: boolean;
|
|
54
|
+
}
|
|
55
|
+
export interface RegisterAgentOptions {
|
|
56
|
+
agentId: string;
|
|
57
|
+
name: string;
|
|
58
|
+
type?: string;
|
|
59
|
+
platform?: string;
|
|
60
|
+
environment?: Environment;
|
|
61
|
+
description?: string;
|
|
62
|
+
ownerEmail?: string;
|
|
63
|
+
allowedDataSources?: string[];
|
|
64
|
+
allowedActions?: string[];
|
|
65
|
+
requiresHumanApprovalFor?: string[];
|
|
66
|
+
tags?: string[];
|
|
67
|
+
metadata?: Record<string, unknown>;
|
|
68
|
+
}
|
|
69
|
+
export interface TraceOptions {
|
|
70
|
+
/** An explicit trace ID. Auto-generated if omitted. */
|
|
71
|
+
traceId?: string;
|
|
72
|
+
/** Session grouping ID. */
|
|
73
|
+
sessionId?: string;
|
|
74
|
+
/** End-user identifier. */
|
|
75
|
+
userId?: string;
|
|
76
|
+
/** Override agent to attribute this trace to. */
|
|
77
|
+
agentId?: string;
|
|
78
|
+
/** Additional metadata. */
|
|
79
|
+
metadata?: Record<string, unknown>;
|
|
80
|
+
}
|
|
81
|
+
export interface DeployPromptOptions {
|
|
82
|
+
promptTemplate: string;
|
|
83
|
+
systemMessage?: string;
|
|
84
|
+
modelName?: string;
|
|
85
|
+
modelParameters?: Record<string, unknown>;
|
|
86
|
+
changeType?: 'major' | 'minor' | 'patch';
|
|
87
|
+
changeDescription?: string;
|
|
88
|
+
versionTag?: string;
|
|
89
|
+
environment?: Environment;
|
|
90
|
+
requireApproval?: boolean;
|
|
91
|
+
}
|
|
92
|
+
export interface PromptVersionData {
|
|
93
|
+
id: string;
|
|
94
|
+
agentId: string;
|
|
95
|
+
versionNumber: number;
|
|
96
|
+
versionTag?: string;
|
|
97
|
+
promptContent: string;
|
|
98
|
+
systemPrompt?: string;
|
|
99
|
+
modelName?: string;
|
|
100
|
+
modelParameters?: Record<string, unknown>;
|
|
101
|
+
approvalStatus: 'pending' | 'approved' | 'rejected';
|
|
102
|
+
isDeployed: boolean;
|
|
103
|
+
deployedAt?: string;
|
|
104
|
+
createdAt: string;
|
|
105
|
+
}
|
|
106
|
+
export interface AgentData {
|
|
107
|
+
id: string;
|
|
108
|
+
agentId: string;
|
|
109
|
+
name: string;
|
|
110
|
+
environment: string;
|
|
111
|
+
status: AgentStatus;
|
|
112
|
+
[key: string]: unknown;
|
|
113
|
+
}
|
|
114
|
+
export interface TracePayload {
|
|
115
|
+
traceId: string;
|
|
116
|
+
agentId?: string;
|
|
117
|
+
sessionId?: string;
|
|
118
|
+
userId?: string;
|
|
119
|
+
timestamp: string;
|
|
120
|
+
durationMs: number;
|
|
121
|
+
status: TraceStatus;
|
|
122
|
+
input?: unknown;
|
|
123
|
+
output?: unknown;
|
|
124
|
+
errorMessage?: string;
|
|
125
|
+
errorType?: string;
|
|
126
|
+
modelName?: string;
|
|
127
|
+
promptTokens?: number;
|
|
128
|
+
completionTokens?: number;
|
|
129
|
+
totalTokens?: number;
|
|
130
|
+
costUsd?: number;
|
|
131
|
+
environment?: string;
|
|
132
|
+
tags?: string[];
|
|
133
|
+
metadata?: Record<string, unknown>;
|
|
134
|
+
}
|
|
135
|
+
export interface EnforcePolicyOptions {
|
|
136
|
+
/** Internal UUID of the agent. */
|
|
137
|
+
agentId: string;
|
|
138
|
+
/** The user/system input to evaluate. */
|
|
139
|
+
input: string;
|
|
140
|
+
/** Environment context. */
|
|
141
|
+
environment?: Environment;
|
|
142
|
+
/** Optional metadata for richer policy evaluation. */
|
|
143
|
+
metadata?: Record<string, unknown>;
|
|
144
|
+
/** Estimated cost of the execution (for budget policies). */
|
|
145
|
+
estimatedCost?: number;
|
|
146
|
+
/** List of tool names the agent intends to use (for action_approval policies). */
|
|
147
|
+
tools?: string[];
|
|
148
|
+
}
|
|
149
|
+
export interface EnforceViolation {
|
|
150
|
+
policyId: string;
|
|
151
|
+
policyName: string;
|
|
152
|
+
policyType: string;
|
|
153
|
+
message: string;
|
|
154
|
+
enforcementMode: string;
|
|
155
|
+
}
|
|
156
|
+
export interface EnforceResult {
|
|
157
|
+
allowed: boolean;
|
|
158
|
+
violations?: EnforceViolation[];
|
|
159
|
+
warnings?: EnforceViolation[];
|
|
160
|
+
requiresApproval?: boolean;
|
|
161
|
+
approvalRequestId?: string;
|
|
162
|
+
semanticCheck?: {
|
|
163
|
+
intent_safe: boolean;
|
|
164
|
+
confidence: number;
|
|
165
|
+
reasoning: string;
|
|
166
|
+
injection_signals: string[];
|
|
167
|
+
data_scope_anomaly: boolean;
|
|
168
|
+
goal_alignment_score: number;
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
export interface AuthorizeCallOptions {
|
|
172
|
+
callerAgentId: string;
|
|
173
|
+
calleeAgentId: string;
|
|
174
|
+
action: string;
|
|
175
|
+
}
|
|
176
|
+
export interface AuthorizeResult {
|
|
177
|
+
authorized: boolean;
|
|
178
|
+
grant?: {
|
|
179
|
+
id: string;
|
|
180
|
+
callerAgentId: string;
|
|
181
|
+
calleeAgentId: string;
|
|
182
|
+
allowedActions: string[];
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
export interface DiscoveredAgent {
|
|
186
|
+
id: string;
|
|
187
|
+
agentId: string;
|
|
188
|
+
name: string;
|
|
189
|
+
capabilities: string[];
|
|
190
|
+
}
|
|
191
|
+
export interface UsageBucket {
|
|
192
|
+
current: number;
|
|
193
|
+
max: number;
|
|
194
|
+
}
|
|
195
|
+
export interface UsageStatus {
|
|
196
|
+
plan: string;
|
|
197
|
+
agents: UsageBucket;
|
|
198
|
+
traces: UsageBucket;
|
|
199
|
+
users: UsageBucket;
|
|
200
|
+
policies: UsageBucket;
|
|
201
|
+
upgradeUrl: string;
|
|
202
|
+
}
|
|
203
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA;;GAEG"}
|
package/package.json
ADDED
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@execlave/sdk",
|
|
3
|
+
"version": "1.0.2",
|
|
4
|
+
"description": "Official JavaScript/TypeScript SDK for the Execlave AI agent governance platform",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"files": [
|
|
8
|
+
"dist"
|
|
9
|
+
],
|
|
10
|
+
"scripts": {
|
|
11
|
+
"build": "tsc",
|
|
12
|
+
"clean": "rimraf dist",
|
|
13
|
+
"type-check": "tsc --noEmit",
|
|
14
|
+
"test": "jest",
|
|
15
|
+
"test:coverage": "jest --coverage",
|
|
16
|
+
"prepublishOnly": "npm run build"
|
|
17
|
+
},
|
|
18
|
+
"keywords": [
|
|
19
|
+
"execlave",
|
|
20
|
+
"ai",
|
|
21
|
+
"agent",
|
|
22
|
+
"governance",
|
|
23
|
+
"compliance",
|
|
24
|
+
"policy",
|
|
25
|
+
"security",
|
|
26
|
+
"monitoring",
|
|
27
|
+
"anomaly-detection",
|
|
28
|
+
"real-time",
|
|
29
|
+
"self-hosted",
|
|
30
|
+
"open-source",
|
|
31
|
+
"privacy",
|
|
32
|
+
"data-protection",
|
|
33
|
+
"AI-ops",
|
|
34
|
+
"AI-guardrails",
|
|
35
|
+
"observability",
|
|
36
|
+
"tracing",
|
|
37
|
+
"llm"
|
|
38
|
+
],
|
|
39
|
+
"license": "MIT",
|
|
40
|
+
"author": "Execlave <support@execlave.com>",
|
|
41
|
+
"repository": {
|
|
42
|
+
"type": "git",
|
|
43
|
+
"url": "git+https://github.com/rishitmavani/execlave.git",
|
|
44
|
+
"directory": "sdk-js"
|
|
45
|
+
},
|
|
46
|
+
"homepage": "https://www.execlave.com/docs/sdk-reference",
|
|
47
|
+
"publishConfig": {
|
|
48
|
+
"access": "public"
|
|
49
|
+
},
|
|
50
|
+
"peerDependencies": {
|
|
51
|
+
"@opentelemetry/api": ">=1.4.0",
|
|
52
|
+
"@opentelemetry/exporter-trace-otlp-http": ">=0.41.0",
|
|
53
|
+
"@opentelemetry/resources": ">=1.15.0",
|
|
54
|
+
"@opentelemetry/sdk-trace-base": ">=1.15.0",
|
|
55
|
+
"socket.io-client": "^4.0.0"
|
|
56
|
+
},
|
|
57
|
+
"peerDependenciesMeta": {
|
|
58
|
+
"@opentelemetry/api": {
|
|
59
|
+
"optional": true
|
|
60
|
+
},
|
|
61
|
+
"@opentelemetry/sdk-trace-base": {
|
|
62
|
+
"optional": true
|
|
63
|
+
},
|
|
64
|
+
"@opentelemetry/exporter-trace-otlp-http": {
|
|
65
|
+
"optional": true
|
|
66
|
+
},
|
|
67
|
+
"@opentelemetry/resources": {
|
|
68
|
+
"optional": true
|
|
69
|
+
},
|
|
70
|
+
"socket.io-client": {
|
|
71
|
+
"optional": true
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
"devDependencies": {
|
|
75
|
+
"@opentelemetry/api": "^1.9.0",
|
|
76
|
+
"@opentelemetry/exporter-trace-otlp-http": "^0.213.0",
|
|
77
|
+
"@opentelemetry/resources": "^2.6.0",
|
|
78
|
+
"@opentelemetry/sdk-trace-base": "^2.6.0",
|
|
79
|
+
"@types/jest": "^29.5.0",
|
|
80
|
+
"jest": "^29.7.0",
|
|
81
|
+
"rimraf": "^5.0.0",
|
|
82
|
+
"ts-jest": "^29.1.0",
|
|
83
|
+
"typescript": "^5.3.0"
|
|
84
|
+
},
|
|
85
|
+
"engines": {
|
|
86
|
+
"node": ">=18.0.0"
|
|
87
|
+
}
|
|
88
|
+
}
|