@just-every/ensemble 0.2.186 → 0.2.188
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/cjs/core/ensemble_embed.cjs +94 -40
- package/dist/cjs/core/ensemble_embed.d.ts.map +1 -1
- package/dist/cjs/core/ensemble_embed.js.map +1 -1
- package/dist/cjs/core/ensemble_image.cjs +47 -8
- package/dist/cjs/core/ensemble_image.d.ts.map +1 -1
- package/dist/cjs/core/ensemble_image.js.map +1 -1
- package/dist/cjs/core/ensemble_listen.cjs +151 -74
- package/dist/cjs/core/ensemble_listen.d.ts.map +1 -1
- package/dist/cjs/core/ensemble_listen.js.map +1 -1
- package/dist/cjs/core/ensemble_live.cjs +193 -40
- package/dist/cjs/core/ensemble_live.d.ts.map +1 -1
- package/dist/cjs/core/ensemble_live.js.map +1 -1
- package/dist/cjs/core/ensemble_request.cjs +107 -11
- package/dist/cjs/core/ensemble_request.d.ts.map +1 -1
- package/dist/cjs/core/ensemble_request.js.map +1 -1
- package/dist/cjs/core/ensemble_voice.cjs +190 -146
- package/dist/cjs/core/ensemble_voice.d.ts.map +1 -1
- package/dist/cjs/core/ensemble_voice.js.map +1 -1
- package/dist/cjs/index.cjs +1 -0
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/model_providers/gemini.cjs +91 -10
- package/dist/cjs/model_providers/gemini.d.ts.map +1 -1
- package/dist/cjs/model_providers/gemini.js.map +1 -1
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/cjs/types/types.d.ts +15 -0
- package/dist/cjs/types/types.d.ts.map +1 -1
- package/dist/cjs/utils/message_converter.cjs +1 -0
- package/dist/cjs/utils/message_converter.d.ts.map +1 -1
- package/dist/cjs/utils/message_converter.js.map +1 -1
- package/dist/cjs/utils/trace_context.cjs +96 -0
- package/dist/cjs/utils/trace_context.d.ts +20 -0
- package/dist/cjs/utils/trace_context.d.ts.map +1 -0
- package/dist/cjs/utils/trace_context.js.map +1 -0
- package/dist/cjs/utils/trace_logger.cjs +66 -0
- package/dist/cjs/utils/trace_logger.d.ts +12 -0
- package/dist/cjs/utils/trace_logger.d.ts.map +1 -0
- package/dist/cjs/utils/trace_logger.js.map +1 -0
- package/dist/core/ensemble_embed.d.ts.map +1 -1
- package/dist/core/ensemble_embed.js +94 -40
- package/dist/core/ensemble_embed.js.map +1 -1
- package/dist/core/ensemble_image.d.ts.map +1 -1
- package/dist/core/ensemble_image.js +47 -8
- package/dist/core/ensemble_image.js.map +1 -1
- package/dist/core/ensemble_listen.d.ts.map +1 -1
- package/dist/core/ensemble_listen.js +151 -74
- package/dist/core/ensemble_listen.js.map +1 -1
- package/dist/core/ensemble_live.d.ts.map +1 -1
- package/dist/core/ensemble_live.js +193 -40
- package/dist/core/ensemble_live.js.map +1 -1
- package/dist/core/ensemble_request.d.ts.map +1 -1
- package/dist/core/ensemble_request.js +107 -11
- package/dist/core/ensemble_request.js.map +1 -1
- package/dist/core/ensemble_voice.d.ts.map +1 -1
- package/dist/core/ensemble_voice.js +190 -146
- package/dist/core/ensemble_voice.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/model_providers/gemini.d.ts.map +1 -1
- package/dist/model_providers/gemini.js +91 -10
- package/dist/model_providers/gemini.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/types.d.ts +15 -0
- package/dist/types/types.d.ts.map +1 -1
- package/dist/utils/message_converter.d.ts.map +1 -1
- package/dist/utils/message_converter.js +1 -0
- package/dist/utils/message_converter.js.map +1 -1
- package/dist/utils/trace_context.d.ts +20 -0
- package/dist/utils/trace_context.d.ts.map +1 -0
- package/dist/utils/trace_context.js +91 -0
- package/dist/utils/trace_context.js.map +1 -0
- package/dist/utils/trace_logger.d.ts +12 -0
- package/dist/utils/trace_logger.d.ts.map +1 -0
- package/dist/utils/trace_logger.js +58 -0
- package/dist/utils/trace_logger.js.map +1 -0
- package/package.json +1 -1
|
@@ -3,56 +3,110 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ensembleEmbed = ensembleEmbed;
|
|
4
4
|
const model_provider_js_1 = require("../model_providers/model_provider.cjs");
|
|
5
5
|
const model_data_js_1 = require("../data/model_data.cjs");
|
|
6
|
+
const trace_context_js_1 = require("../utils/trace_context.cjs");
|
|
7
|
+
const crypto_1 = require("crypto");
|
|
6
8
|
const EMBEDDING_TTL_MS = 1000 * 60 * 60;
|
|
7
9
|
const EMBEDDING_CACHE_MAX = 1000;
|
|
8
10
|
const embeddingCache = new Map();
|
|
9
11
|
async function ensembleEmbed(text, agent, options) {
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
const trace = (0, trace_context_js_1.createTraceContext)(agent, 'embedding');
|
|
13
|
+
const requestId = (0, crypto_1.randomUUID)();
|
|
14
|
+
let requestStarted = false;
|
|
15
|
+
let turnStatus = 'completed';
|
|
16
|
+
let requestStatus = 'completed';
|
|
17
|
+
let requestError;
|
|
18
|
+
let requestMetadata = {};
|
|
19
|
+
await trace.emitTurnStart({
|
|
20
|
+
input_text: text,
|
|
21
|
+
options,
|
|
22
|
+
});
|
|
23
|
+
await trace.emitRequestStart(requestId, {
|
|
24
|
+
agent_id: agent.agent_id,
|
|
25
|
+
provider: agent.model ? (0, model_data_js_1.findModel)(agent.model)?.provider : undefined,
|
|
26
|
+
model: agent.model || 'text-embedding-3-small',
|
|
27
|
+
payload: {
|
|
28
|
+
text,
|
|
29
|
+
options,
|
|
30
|
+
},
|
|
31
|
+
});
|
|
32
|
+
requestStarted = true;
|
|
33
|
+
try {
|
|
34
|
+
const dimensions = options?.dimensions || 1536;
|
|
35
|
+
const cacheKey = `${agent.model || agent.modelClass}:${text}:${dimensions}`;
|
|
36
|
+
const cached = embeddingCache.get(cacheKey);
|
|
37
|
+
if (cached) {
|
|
38
|
+
if (Date.now() - cached.timestamp.getTime() < EMBEDDING_TTL_MS) {
|
|
39
|
+
requestMetadata = {
|
|
40
|
+
...requestMetadata,
|
|
41
|
+
from_cache: true,
|
|
42
|
+
dimensions: cached.embedding.length,
|
|
43
|
+
};
|
|
44
|
+
return cached.embedding;
|
|
45
|
+
}
|
|
46
|
+
embeddingCache.delete(cacheKey);
|
|
16
47
|
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
if (!provider.createEmbedding) {
|
|
22
|
-
throw new Error(`Provider for model ${model} does not support embeddings`);
|
|
23
|
-
}
|
|
24
|
-
const modelInfo = (0, model_data_js_1.findModel)(model);
|
|
25
|
-
const inputTokenLimit = modelInfo?.features?.input_token_limit;
|
|
26
|
-
const MAX_CHARS_PER_CHUNK = inputTokenLimit ? inputTokenLimit * 4 * 0.9 : Infinity;
|
|
27
|
-
const needsChunking = inputTokenLimit && text.length > MAX_CHARS_PER_CHUNK;
|
|
28
|
-
let embedding;
|
|
29
|
-
if (needsChunking) {
|
|
30
|
-
const chunks = [];
|
|
31
|
-
for (let i = 0; i < text.length; i += MAX_CHARS_PER_CHUNK) {
|
|
32
|
-
chunks.push(text.slice(i, i + MAX_CHARS_PER_CHUNK));
|
|
48
|
+
const model = agent.model || 'text-embedding-3-small';
|
|
49
|
+
const provider = (0, model_provider_js_1.getModelProvider)(model);
|
|
50
|
+
if (!provider.createEmbedding) {
|
|
51
|
+
throw new Error(`Provider for model ${model} does not support embeddings`);
|
|
33
52
|
}
|
|
34
|
-
const
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
53
|
+
const modelInfo = (0, model_data_js_1.findModel)(model);
|
|
54
|
+
const inputTokenLimit = modelInfo?.features?.input_token_limit;
|
|
55
|
+
const MAX_CHARS_PER_CHUNK = inputTokenLimit ? inputTokenLimit * 4 * 0.9 : Infinity;
|
|
56
|
+
const needsChunking = inputTokenLimit && text.length > MAX_CHARS_PER_CHUNK;
|
|
57
|
+
let embedding;
|
|
58
|
+
if (needsChunking) {
|
|
59
|
+
const chunks = [];
|
|
60
|
+
for (let i = 0; i < text.length; i += MAX_CHARS_PER_CHUNK) {
|
|
61
|
+
chunks.push(text.slice(i, i + MAX_CHARS_PER_CHUNK));
|
|
40
62
|
}
|
|
63
|
+
const result = await provider.createEmbedding(chunks, model, agent, { ...options, dimensions });
|
|
64
|
+
const embeddings = result;
|
|
65
|
+
embedding = new Array(dimensions).fill(0);
|
|
66
|
+
for (const vec of embeddings) {
|
|
67
|
+
for (let i = 0; i < dimensions; i++) {
|
|
68
|
+
embedding[i] += vec[i] / embeddings.length;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
const result = await provider.createEmbedding(text, model, agent, { ...options, dimensions });
|
|
74
|
+
embedding = Array.isArray(result[0]) ? result[0] : result;
|
|
75
|
+
}
|
|
76
|
+
if (embeddingCache.size >= EMBEDDING_CACHE_MAX) {
|
|
77
|
+
const oldestKey = embeddingCache.keys().next().value;
|
|
78
|
+
if (oldestKey)
|
|
79
|
+
embeddingCache.delete(oldestKey);
|
|
41
80
|
}
|
|
81
|
+
embeddingCache.set(cacheKey, {
|
|
82
|
+
embedding,
|
|
83
|
+
timestamp: new Date(),
|
|
84
|
+
});
|
|
85
|
+
requestMetadata = {
|
|
86
|
+
...requestMetadata,
|
|
87
|
+
from_cache: false,
|
|
88
|
+
dimensions: embedding.length,
|
|
89
|
+
chunked: !!needsChunking,
|
|
90
|
+
};
|
|
91
|
+
return embedding;
|
|
42
92
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
93
|
+
catch (error) {
|
|
94
|
+
turnStatus = 'error';
|
|
95
|
+
requestStatus = 'error';
|
|
96
|
+
requestError = error instanceof Error ? error.message : String(error);
|
|
97
|
+
throw error;
|
|
46
98
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
99
|
+
finally {
|
|
100
|
+
if (requestStarted) {
|
|
101
|
+
await trace.emitRequestEnd(requestId, {
|
|
102
|
+
status: requestStatus,
|
|
103
|
+
error: requestError,
|
|
104
|
+
...requestMetadata,
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
await trace.emitTurnEnd(turnStatus, turnStatus === 'completed' ? 'completed' : 'exception', {
|
|
108
|
+
error: requestError,
|
|
109
|
+
});
|
|
51
110
|
}
|
|
52
|
-
embeddingCache.set(cacheKey, {
|
|
53
|
-
embedding,
|
|
54
|
-
timestamp: new Date(),
|
|
55
|
-
});
|
|
56
|
-
return embedding;
|
|
57
111
|
}
|
|
58
112
|
//# sourceMappingURL=ensemble_embed.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensemble_embed.d.ts","sourceRoot":"","sources":["../../../core/ensemble_embed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"ensemble_embed.d.ts","sourceRoot":"","sources":["../../../core/ensemble_embed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAiEpE,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAgIhH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensemble_embed.js","sourceRoot":"","sources":["../../../core/ensemble_embed.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"ensemble_embed.js","sourceRoot":"","sources":["../../../core/ensemble_embed.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,20 +36,59 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
36
36
|
exports.ensembleImage = ensembleImage;
|
|
37
37
|
const node_crypto_1 = require("node:crypto");
|
|
38
38
|
const model_provider_js_1 = require("../model_providers/model_provider.cjs");
|
|
39
|
+
const trace_context_js_1 = require("../utils/trace_context.cjs");
|
|
39
40
|
function ensembleImage(prompt, agent, options = {}) {
|
|
40
|
-
const run = async () => {
|
|
41
|
-
const
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
41
|
+
const run = async (requestId) => {
|
|
42
|
+
const trace = (0, trace_context_js_1.createTraceContext)(agent, 'image_generation');
|
|
43
|
+
const tracedRequestId = requestId || options.request_id || (0, node_crypto_1.randomUUID)();
|
|
44
|
+
const requestOptions = { ...options, request_id: tracedRequestId };
|
|
45
|
+
let requestStarted = false;
|
|
46
|
+
await trace.emitTurnStart({
|
|
47
|
+
prompt,
|
|
48
|
+
options: requestOptions,
|
|
49
|
+
});
|
|
50
|
+
try {
|
|
51
|
+
const model = await (0, model_provider_js_1.getModelFromAgent)(agent, 'image_generation');
|
|
52
|
+
const provider = (0, model_provider_js_1.getModelProvider)(model);
|
|
53
|
+
if (!provider.createImage)
|
|
54
|
+
throw new Error(`Provider for model ${model} does not support image generation`);
|
|
55
|
+
await trace.emitRequestStart(tracedRequestId, {
|
|
56
|
+
agent_id: agent.agent_id,
|
|
57
|
+
provider: provider.provider_id,
|
|
58
|
+
model,
|
|
59
|
+
payload: {
|
|
60
|
+
prompt,
|
|
61
|
+
options: requestOptions,
|
|
62
|
+
},
|
|
63
|
+
});
|
|
64
|
+
requestStarted = true;
|
|
65
|
+
const images = await provider.createImage(prompt, model, agent, requestOptions);
|
|
66
|
+
await trace.emitRequestEnd(tracedRequestId, {
|
|
67
|
+
status: 'completed',
|
|
68
|
+
image_count: images.length,
|
|
69
|
+
});
|
|
70
|
+
await trace.emitTurnEnd('completed', 'completed');
|
|
71
|
+
return images;
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
75
|
+
if (requestStarted) {
|
|
76
|
+
await trace.emitRequestEnd(tracedRequestId, {
|
|
77
|
+
status: 'error',
|
|
78
|
+
error: errorMessage,
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
await trace.emitTurnEnd('error', 'exception', {
|
|
82
|
+
error: errorMessage,
|
|
83
|
+
});
|
|
84
|
+
throw error;
|
|
85
|
+
}
|
|
46
86
|
};
|
|
47
87
|
if (!options.stream) {
|
|
48
88
|
return run();
|
|
49
89
|
}
|
|
50
90
|
const self = async function* () {
|
|
51
91
|
const request_id = options.request_id || (0, node_crypto_1.randomUUID)();
|
|
52
|
-
options = { ...options, request_id };
|
|
53
92
|
const { costTracker } = await Promise.resolve().then(() => __importStar(require("../utils/cost_tracker.cjs")));
|
|
54
93
|
yield { type: 'image_start', request_id, timestamp: new Date().toISOString() };
|
|
55
94
|
const handler = (usage) => {
|
|
@@ -64,7 +103,7 @@ function ensembleImage(prompt, agent, options = {}) {
|
|
|
64
103
|
};
|
|
65
104
|
costTracker.onAddUsage(handler);
|
|
66
105
|
try {
|
|
67
|
-
const images = await run();
|
|
106
|
+
const images = await run(request_id);
|
|
68
107
|
while (iterator.queue.length)
|
|
69
108
|
yield iterator.queue.shift();
|
|
70
109
|
let idx = 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensemble_image.d.ts","sourceRoot":"","sources":["../../../core/ensemble_image.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"ensemble_image.d.ts","sourceRoot":"","sources":["../../../core/ensemble_image.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAyBnG,wBAAgB,aAAa,CACzB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,eAAe,EACtB,OAAO,GAAE,mBAAwB,GAClC,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,cAAc,CAAC,mBAAmB,CAAC,CAgHzD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensemble_image.js","sourceRoot":"","sources":["../../../core/ensemble_image.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"ensemble_image.js","sourceRoot":"","sources":["../../../core/ensemble_image.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,sCAoHC;AA9ID,6CAAyC;AAEzC,4EAA2F;AAC3F,gEAA+D;AAuB/D,SAAgB,aAAa,CACzB,MAAc,EACd,KAAsB,EACtB,UAA+B,EAAE;IAEjC,MAAM,GAAG,GAAG,KAAK,EAAE,SAAkB,EAAqB,EAAE;QACxD,MAAM,KAAK,GAAG,IAAA,qCAAkB,EAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;QAC5D,MAAM,eAAe,GAAG,SAAS,IAAI,OAAO,CAAC,UAAU,IAAI,IAAA,wBAAU,GAAE,CAAC;QACxE,MAAM,cAAc,GAAwB,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC;QACxF,IAAI,cAAc,GAAG,KAAK,CAAC;QAE3B,MAAM,KAAK,CAAC,aAAa,CAAC;YACtB,MAAM;YACN,OAAO,EAAE,cAAc;SAC1B,CAAC,CAAC;QAEH,IAAI,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,IAAA,qCAAiB,EAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;YACjE,MAAM,QAAQ,GAAG,IAAA,oCAAgB,EAAC,KAAK,CAAC,CAAC;YACzC,IAAI,CAAC,QAAQ,CAAC,WAAW;gBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,KAAK,oCAAoC,CAAC,CAAC;YAE5G,MAAM,KAAK,CAAC,gBAAgB,CAAC,eAAe,EAAE;gBAC1C,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,QAAQ,EAAE,QAAQ,CAAC,WAAW;gBAC9B,KAAK;gBACL,OAAO,EAAE;oBACL,MAAM;oBACN,OAAO,EAAE,cAAc;iBAC1B;aACJ,CAAC,CAAC;YACH,cAAc,GAAG,IAAI,CAAC;YAEtB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;YAChF,MAAM,KAAK,CAAC,cAAc,CAAC,eAAe,EAAE;gBACxC,MAAM,EAAE,WAAW;gBACnB,WAAW,EAAE,MAAM,CAAC,MAAM;aAC7B,CAAC,CAAC;YACH,MAAM,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;YAClD,OAAO,MAAM,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5E,IAAI,cAAc,EAAE,CAAC;gBACjB,MAAM,KAAK,CAAC,cAAc,CAAC,eAAe,EAAE;oBACxC,MAAM,EAAE,OAAO;oBACf,KAAK,EAAE,YAAY;iBACtB,CAAC,CAAC;YACP,CAAC;YACD,MAAM,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE;gBAC1C,KAAK,EAAE,YAAY;aACtB,CAAC,CAAC;YACH,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC,CAAC;IAEF,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,GAAG,EAAE,CAAC;IACjB,CAAC;IAGD,MAAM,IAAI,GAAG,KAAK,SAAS,CAAC;QACxB,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,IAAA,wBAAU,GAAE,CAAC;QACtD,MAAM,EAAE,WAAW,EAAE,GAAG,wDAAa,0BAA0B,GAAC,CAAC;QAGjE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAyB,CAAC;QAGtG,MAAM,OAAO,GAAG,CAAC,KAAU,EAAE,EAAE;YAC3B,IAAI,KAAK,EAAE,UAAU,KAAK,UAAU,EAAE,CAAC;gBACnC,MAAM,EAAE,GAAwB,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAS,CAAC;gBAEvH,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACtB,CAAC;QACL,CAAC,CAAC;QACF,MAAM,QAAQ,GAA6E;YACvF,KAAK,EAAE,EAAE;YACT,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAClC,CAAC;QACF,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAEhC,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,CAAC;YAErC,OAAO,QAAQ,CAAC,KAAK,CAAC,MAAM;gBAAE,MAAM,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAyB,CAAC;YAElF,IAAI,GAAG,GAAG,CAAC,CAAC;YACZ,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;gBACvB,MAAM,KAAK,GAAG,OAAO,GAAG,KAAK,QAAQ,IAAI,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACnE,MAAM,EAAE,GAAwB;oBAC5B,IAAI,EAAE,eAAe;oBACrB,UAAU;oBACV,UAAU,EAAE,GAAG,UAAU,QAAQ,GAAG,EAAE;oBACtC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ;oBACrC,IAAI,EAAE,GAAG;oBACT,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBAC/B,CAAC;gBACT,MAAM,EAAE,CAAC;gBAET,OAAO,QAAQ,CAAC,KAAK,CAAC,MAAM;oBAAE,MAAM,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAyB,CAAC;gBAClF,GAAG,EAAE,CAAC;YACV,CAAC;YAGD,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAyB,CAAC;YAGzG,OAAO,QAAQ,CAAC,KAAK,CAAC,MAAM;gBAAE,MAAM,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAyB,CAAC;QACtF,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YAClB,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,IAAI,KAAK,CAAC,EAAyB,CAAC;QACvG,CAAC;gBAAS,CAAC;YAEP,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC;IACL,CAAC,CAAC;IAEF,OAAO,IAAI,EAAE,CAAC;AAClB,CAAC"}
|
|
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ensembleListen = ensembleListen;
|
|
4
4
|
exports.createAudioStreamFromMediaStream = createAudioStreamFromMediaStream;
|
|
5
5
|
const model_provider_js_1 = require("../model_providers/model_provider.cjs");
|
|
6
|
+
const trace_context_js_1 = require("../utils/trace_context.cjs");
|
|
7
|
+
const crypto_1 = require("crypto");
|
|
6
8
|
function normalizeAudioSource(source) {
|
|
7
9
|
if (source instanceof ReadableStream) {
|
|
8
10
|
return source;
|
|
@@ -38,101 +40,176 @@ function normalizeAudioSource(source) {
|
|
|
38
40
|
throw new Error(`Unsupported audio source type: ${typeof source}`);
|
|
39
41
|
}
|
|
40
42
|
async function* ensembleListen(audioSource, agent, options = {}) {
|
|
43
|
+
const trace = (0, trace_context_js_1.createTraceContext)(agent, 'transcription');
|
|
44
|
+
const requestId = (0, crypto_1.randomUUID)();
|
|
45
|
+
let requestStarted = false;
|
|
46
|
+
let turnStatus = 'completed';
|
|
47
|
+
let requestStatus = 'completed';
|
|
48
|
+
let requestError;
|
|
49
|
+
let transcriptionDuration;
|
|
50
|
+
let finalTranscript;
|
|
41
51
|
const streamOptions = { ...options, stream: true };
|
|
42
52
|
const audioFormat = options.audioFormat || {
|
|
43
53
|
sampleRate: 16000,
|
|
44
54
|
channels: 1,
|
|
45
55
|
encoding: 'pcm',
|
|
46
56
|
};
|
|
47
|
-
const
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
timestamp: new Date().toISOString(),
|
|
63
|
-
error: `Failed to initialize provider for model ${model}: ${error instanceof Error ? error.message : 'Unknown error'}`,
|
|
64
|
-
};
|
|
65
|
-
yield errorEvent;
|
|
66
|
-
return;
|
|
67
|
-
}
|
|
68
|
-
if (!provider.createTranscription) {
|
|
69
|
-
const errorEvent = {
|
|
70
|
-
type: 'error',
|
|
71
|
-
timestamp: new Date().toISOString(),
|
|
72
|
-
error: `Provider for model ${model} does not support transcription`,
|
|
73
|
-
};
|
|
74
|
-
yield errorEvent;
|
|
75
|
-
return;
|
|
76
|
-
}
|
|
77
|
-
let audioStream;
|
|
57
|
+
const audioSourceType = audioSource instanceof ReadableStream
|
|
58
|
+
? 'readable_stream'
|
|
59
|
+
: audioSource instanceof ArrayBuffer
|
|
60
|
+
? 'array_buffer'
|
|
61
|
+
: audioSource instanceof Uint8Array
|
|
62
|
+
? 'uint8array'
|
|
63
|
+
: typeof audioSource === 'function'
|
|
64
|
+
? 'factory'
|
|
65
|
+
: typeof audioSource === 'object' && audioSource !== null && Symbol.asyncIterator in audioSource
|
|
66
|
+
? 'async_iterable'
|
|
67
|
+
: typeof audioSource;
|
|
68
|
+
await trace.emitTurnStart({
|
|
69
|
+
audio_source_type: audioSourceType,
|
|
70
|
+
options: streamOptions,
|
|
71
|
+
});
|
|
78
72
|
try {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
73
|
+
const model = await (0, model_provider_js_1.getModelFromAgent)(agent, 'transcription');
|
|
74
|
+
await trace.emitRequestStart(requestId, {
|
|
75
|
+
agent_id: agent.agent_id,
|
|
76
|
+
model,
|
|
77
|
+
payload: {
|
|
78
|
+
audio_source_type: audioSourceType,
|
|
79
|
+
options: streamOptions,
|
|
80
|
+
},
|
|
81
|
+
});
|
|
82
|
+
requestStarted = true;
|
|
83
|
+
const startEvent = {
|
|
84
|
+
type: 'transcription_start',
|
|
84
85
|
timestamp: new Date().toISOString(),
|
|
85
|
-
|
|
86
|
+
format: audioFormat.encoding || 'pcm',
|
|
87
|
+
audioFormat: audioFormat,
|
|
86
88
|
};
|
|
87
|
-
yield
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
89
|
+
yield startEvent;
|
|
90
|
+
let provider;
|
|
91
|
+
try {
|
|
92
|
+
provider = (0, model_provider_js_1.getModelProvider)(model);
|
|
93
|
+
}
|
|
94
|
+
catch (error) {
|
|
95
|
+
requestStatus = 'error';
|
|
96
|
+
turnStatus = 'error';
|
|
97
|
+
requestError = `Failed to initialize provider for model ${model}: ${error instanceof Error ? error.message : 'Unknown error'}`;
|
|
98
|
+
const errorEvent = {
|
|
99
|
+
type: 'error',
|
|
100
|
+
timestamp: new Date().toISOString(),
|
|
101
|
+
error: requestError,
|
|
102
|
+
};
|
|
103
|
+
yield errorEvent;
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
if (!provider.createTranscription) {
|
|
107
|
+
requestStatus = 'error';
|
|
108
|
+
turnStatus = 'error';
|
|
109
|
+
requestError = `Provider for model ${model} does not support transcription`;
|
|
110
|
+
const errorEvent = {
|
|
111
|
+
type: 'error',
|
|
112
|
+
timestamp: new Date().toISOString(),
|
|
113
|
+
error: requestError,
|
|
114
|
+
};
|
|
115
|
+
yield errorEvent;
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
let audioStream;
|
|
119
|
+
try {
|
|
120
|
+
audioStream = normalizeAudioSource(audioSource);
|
|
121
|
+
}
|
|
122
|
+
catch (error) {
|
|
123
|
+
requestStatus = 'error';
|
|
124
|
+
turnStatus = 'error';
|
|
125
|
+
requestError = `Failed to normalize audio source: ${error instanceof Error ? error.message : 'Unknown error'}`;
|
|
126
|
+
const errorEvent = {
|
|
127
|
+
type: 'error',
|
|
128
|
+
timestamp: new Date().toISOString(),
|
|
129
|
+
error: requestError,
|
|
130
|
+
};
|
|
131
|
+
yield errorEvent;
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
const startTime = Date.now();
|
|
135
|
+
let fullTranscript = '';
|
|
136
|
+
let currentTurnText = '';
|
|
137
|
+
const allTurns = [];
|
|
138
|
+
try {
|
|
139
|
+
const transcriptionGenerator = provider.createTranscription(audioStream, agent, model, streamOptions);
|
|
140
|
+
for await (const event of transcriptionGenerator) {
|
|
141
|
+
if (event.type === 'transcription_turn_delta' && event.delta) {
|
|
142
|
+
fullTranscript += event.delta;
|
|
143
|
+
currentTurnText += event.delta;
|
|
144
|
+
}
|
|
145
|
+
if (event.type === 'transcription_turn_complete') {
|
|
146
|
+
const turnEvent = {
|
|
147
|
+
...event,
|
|
148
|
+
text: currentTurnText,
|
|
149
|
+
};
|
|
150
|
+
yield turnEvent;
|
|
151
|
+
if (currentTurnText.trim()) {
|
|
152
|
+
allTurns.push(currentTurnText.trim());
|
|
153
|
+
}
|
|
154
|
+
currentTurnText = '';
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
yield event;
|
|
109
158
|
}
|
|
110
|
-
currentTurnText = '';
|
|
111
159
|
}
|
|
112
|
-
|
|
113
|
-
|
|
160
|
+
if (currentTurnText.trim()) {
|
|
161
|
+
allTurns.push(currentTurnText.trim());
|
|
114
162
|
}
|
|
163
|
+
const duration = (Date.now() - startTime) / 1000;
|
|
164
|
+
const transcript = allTurns.length > 0 ? allTurns.join('\n') : fullTranscript;
|
|
165
|
+
transcriptionDuration = duration;
|
|
166
|
+
finalTranscript = transcript;
|
|
167
|
+
const completeEvent = {
|
|
168
|
+
type: 'transcription_complete',
|
|
169
|
+
timestamp: new Date().toISOString(),
|
|
170
|
+
text: transcript,
|
|
171
|
+
duration: duration,
|
|
172
|
+
};
|
|
173
|
+
yield completeEvent;
|
|
115
174
|
}
|
|
116
|
-
|
|
117
|
-
|
|
175
|
+
catch (error) {
|
|
176
|
+
requestStatus = 'error';
|
|
177
|
+
turnStatus = 'error';
|
|
178
|
+
requestError = error instanceof Error ? error.message : 'Transcription failed';
|
|
179
|
+
console.error('[ensembleListen] Error during transcription:', error);
|
|
180
|
+
const errorEvent = {
|
|
181
|
+
type: 'error',
|
|
182
|
+
timestamp: new Date().toISOString(),
|
|
183
|
+
error: requestError,
|
|
184
|
+
};
|
|
185
|
+
yield errorEvent;
|
|
118
186
|
}
|
|
119
|
-
const duration = (Date.now() - startTime) / 1000;
|
|
120
|
-
const completeEvent = {
|
|
121
|
-
type: 'transcription_complete',
|
|
122
|
-
timestamp: new Date().toISOString(),
|
|
123
|
-
text: allTurns.length > 0 ? allTurns.join('\n') : fullTranscript,
|
|
124
|
-
duration: duration,
|
|
125
|
-
};
|
|
126
|
-
yield completeEvent;
|
|
127
187
|
}
|
|
128
188
|
catch (error) {
|
|
129
|
-
|
|
189
|
+
requestStatus = 'error';
|
|
190
|
+
turnStatus = 'error';
|
|
191
|
+
requestError = error instanceof Error ? error.message : String(error);
|
|
130
192
|
const errorEvent = {
|
|
131
193
|
type: 'error',
|
|
132
194
|
timestamp: new Date().toISOString(),
|
|
133
|
-
error:
|
|
195
|
+
error: requestError,
|
|
134
196
|
};
|
|
135
197
|
yield errorEvent;
|
|
198
|
+
throw error;
|
|
199
|
+
}
|
|
200
|
+
finally {
|
|
201
|
+
if (requestStarted) {
|
|
202
|
+
await trace.emitRequestEnd(requestId, {
|
|
203
|
+
status: requestStatus,
|
|
204
|
+
error: requestError,
|
|
205
|
+
duration: transcriptionDuration,
|
|
206
|
+
final_response: finalTranscript,
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
await trace.emitTurnEnd(turnStatus, turnStatus === 'completed' ? 'completed' : 'exception', {
|
|
210
|
+
error: requestError,
|
|
211
|
+
final_response: finalTranscript,
|
|
212
|
+
});
|
|
136
213
|
}
|
|
137
214
|
}
|
|
138
215
|
function createAudioStreamFromMediaStream(mediaStream, audioContext) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensemble_listen.d.ts","sourceRoot":"","sources":["../../../core/ensemble_listen.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,eAAe,EACf,iBAAiB,EACjB,wBAAwB,EACxB,kBAAkB,EACrB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"ensemble_listen.d.ts","sourceRoot":"","sources":["../../../core/ensemble_listen.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,eAAe,EACf,iBAAiB,EACjB,wBAAwB,EACxB,kBAAkB,EACrB,MAAM,mBAAmB,CAAC;AAM3B,YAAY,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,CAAC;AAsEhF,wBAAuB,cAAc,CACjC,WAAW,EAAE,wBAAwB,EACrC,KAAK,EAAE,eAAe,EACtB,OAAO,GAAE,iBAAsB,GAChC,cAAc,CAAC,kBAAkB,CAAC,CAwMpC;AAUD,wBAAgB,gCAAgC,CAC5C,WAAW,EAAE,WAAW,EACxB,YAAY,CAAC,EAAE,YAAY,GAC5B,cAAc,CAAC,UAAU,CAAC,CA4B5B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensemble_listen.js","sourceRoot":"","sources":["../../../core/ensemble_listen.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"ensemble_listen.js","sourceRoot":"","sources":["../../../core/ensemble_listen.ts"],"names":[],"mappings":"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"}
|