@tyvm/knowhow 0.0.29 → 0.0.30

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tyvm/knowhow",
3
- "version": "0.0.29",
3
+ "version": "0.0.30",
4
4
  "description": "ai cli with plugins and agents",
5
5
  "main": "ts_build/src/index.js",
6
6
  "bin": {
@@ -7,7 +7,9 @@ export const executeScriptDefinition: Tool = {
7
7
  type: "function",
8
8
  function: {
9
9
  name: "executeScript",
10
- description: `Execute TypeScript code in a secure sandbox environment with access to tools and AI models.
10
+ description: `Used to contruct a script that calls tools and analyzes data, not for general purpose scripting.
11
+
12
+ This is most useful for complex workflows of tool calls that need conditional logic based off tool responses.
11
13
 
12
14
  The script has access to:
13
15
  - callTool(toolName, parameters): Call any available tool
@@ -17,6 +19,10 @@ export const executeScriptDefinition: Tool = {
17
19
  - getQuotaUsage(): Check resource usage
18
20
  - sleep(ms): Pause execution for a specified time, max 2000ms
19
21
 
22
+ The script cannot:
23
+ - import or require
24
+ - make external network requests, outside of callTool and llm
25
+
20
26
  Example:
21
27
  \`\`\`typescript
22
28
  // Call a tool
@@ -1,5 +1,6 @@
1
1
  import { askGptVision } from "../../ai";
2
2
 
3
3
  export async function visionTool(imageUrl: string, question: string) {
4
- return askGptVision(imageUrl, question);
4
+ const response = await askGptVision(imageUrl, question);
5
+ return response.choices[0].message.content;
5
6
  }
package/src/ai.ts CHANGED
@@ -164,5 +164,5 @@ export async function askGptVision(
164
164
  ],
165
165
  });
166
166
 
167
- return response.choices[0].message.content;
167
+ return response;
168
168
  }
package/src/chat.ts CHANGED
@@ -359,12 +359,16 @@ export async function startAgent(
359
359
  ),
360
360
  ]);
361
361
 
362
- activeAgent.agentEvents.on(
363
- activeAgent.eventTypes.toolUsed,
364
- (responseMsg) => {
365
- console.log(` 🔨 Tool used: ${JSON.stringify(responseMsg, null, 2)}`);
366
- }
367
- );
362
+ if (
363
+ !activeAgent.agentEvents.listenerCount(activeAgent.eventTypes.toolUsed)
364
+ ) {
365
+ activeAgent.agentEvents.on(
366
+ activeAgent.eventTypes.toolUsed,
367
+ (responseMsg) => {
368
+ console.log(` 🔨 Tool used: ${JSON.stringify(responseMsg, null, 2)}`);
369
+ }
370
+ );
371
+ }
368
372
 
369
373
  activeAgent.agentEvents.once(activeAgent.eventTypes.done, (doneMsg) => {
370
374
  console.log("Agent has finished.");
@@ -2,14 +2,46 @@ import * as fs from "fs";
2
2
  import * as path from "path";
3
3
  import ytdl from "youtube-dl-exec";
4
4
  import Logger from "progress-estimator";
5
- import { DownloadInfo, KeyframeInfo } from "./types";
5
+ import { DownloadInfo, KeyframeInfo, TranscriptChunk } from "./types";
6
6
  import { visionTool } from "../../agents/tools/visionTool";
7
7
  import { execAsync, fileExists, readFile, mkdir } from "../../utils";
8
8
  import { openai } from "../../ai";
9
+ import { Clients } from "../../clients";
10
+ import { Models } from "../../types";
9
11
 
10
12
  const logger = Logger();
11
13
 
12
- class DownloaderService {
14
+ export class DownloaderService {
15
+ constructor(private openAi: typeof openai, private clients: typeof Clients) {}
16
+
17
+ async askGptVision(
18
+ imageUrl: string,
19
+ question: string,
20
+ provider = "openai",
21
+ model = Models.openai.GPT_4o
22
+ ) {
23
+ const response = await this.clients.createCompletion(provider, {
24
+ model,
25
+ max_tokens: 2500,
26
+ messages: [
27
+ {
28
+ role: "user",
29
+ content: [
30
+ { type: "text", text: question },
31
+ {
32
+ type: "image_url",
33
+ image_url: {
34
+ url: imageUrl,
35
+ },
36
+ },
37
+ ],
38
+ },
39
+ ],
40
+ });
41
+
42
+ return response;
43
+ }
44
+
13
45
  async download(url: string, outputDir: string) {
14
46
  const info = await this.info(url);
15
47
  const exists = await fileExists(`${outputDir}/${info.id}.${info.ext}`);
@@ -77,19 +109,11 @@ class DownloaderService {
77
109
  return chunkNames.map((chunkName) => path.join(outputDirPath, chunkName));
78
110
  }
79
111
 
80
- public async transcribeChunks(
112
+ public async *streamTranscription(
81
113
  files: string[],
82
114
  outputPath: string,
83
115
  reusePreviousTranscript = true
84
- ) {
85
- const exists = await fileExists(outputPath);
86
- if (exists && reusePreviousTranscript) {
87
- console.log("Transcription already exists, skipping");
88
- const contents = await readFile(outputPath);
89
- return JSON.parse(contents.toString()) as string[];
90
- }
91
-
92
- const fullText = [];
116
+ ): AsyncGenerator<TranscriptChunk> {
93
117
  for (const file of files) {
94
118
  const chunkName = path.parse(file).name;
95
119
  const chunkTranscriptPath = path.join(
@@ -101,12 +125,16 @@ class DownloaderService {
101
125
  if (chunkExists && reusePreviousTranscript) {
102
126
  console.log("Chunk transcription already exists, skipping");
103
127
  const contents = await readFile(chunkTranscriptPath);
104
- fullText.push(contents.toString());
128
+ yield {
129
+ chunkPath: chunkTranscriptPath,
130
+ text: contents.toString(),
131
+ usd_cost: 0,
132
+ };
105
133
  continue;
106
134
  }
107
135
 
108
136
  console.log("Transcribing", file);
109
- const transcript = await openai.audio.transcriptions
137
+ const transcript = await this.openAi.audio.transcriptions
110
138
  .create({
111
139
  file: fs.createReadStream(file),
112
140
  model: "whisper-1",
@@ -120,22 +148,53 @@ class DownloaderService {
120
148
  await fs.promises.writeFile(chunkTranscriptPath, transcript.text);
121
149
 
122
150
  // save chunk transcript to file
123
- fullText.push(transcript.text);
151
+ yield {
152
+ chunkPath: chunkTranscriptPath,
153
+ text: transcript.text,
154
+ usd_cost: 30 * 0.0001 // assume 30 seconds,
155
+ };
156
+ }
157
+ }
158
+
159
+ public async transcribeChunks(
160
+ files: string[],
161
+ outputPath: string,
162
+ reusePreviousTranscript = true
163
+ ): Promise<string[]> {
164
+ const exists = await fileExists(outputPath);
165
+ if (exists && reusePreviousTranscript) {
166
+ console.log("Transcription already exists, skipping");
167
+ const contents = await readFile(outputPath);
168
+ return JSON.parse(contents.toString()) as string[];
169
+ }
170
+
171
+ const fullText = [];
172
+ for await (const { chunkPath, text } of this.streamTranscription(
173
+ files,
174
+ outputPath,
175
+ reusePreviousTranscript
176
+ )) {
177
+ console.log("Chunk transcribed:", chunkPath);
178
+ fullText.push(text);
124
179
  }
125
180
 
126
181
  await fs.promises.writeFile(outputPath, JSON.stringify(fullText));
127
182
  return fullText;
128
183
  }
129
184
 
130
- public async extractKeyframes(
185
+ public async *streamKeyFrameExtraction(
131
186
  filePath: string,
132
187
  outputPath: string,
133
188
  interval: number = 10
134
- ): Promise<KeyframeInfo[]> {
189
+ ): AsyncGenerator<KeyframeInfo> {
135
190
  if (fs.existsSync(outputPath)) {
136
191
  console.log("Keyframes already exist, skipping");
137
192
  const contents = await readFile(outputPath);
138
- return JSON.parse(contents.toString()) as KeyframeInfo[];
193
+ const data = JSON.parse(contents.toString()) as KeyframeInfo[];
194
+ for (const keyframe of data) {
195
+ yield { ...keyframe, usd_cost: 0 };
196
+ }
197
+ return;
139
198
  }
140
199
 
141
200
  const parsed = path.parse(filePath);
@@ -148,7 +207,6 @@ class DownloaderService {
148
207
  await execAsync(command);
149
208
 
150
209
  const keyframes = await fs.promises.readdir(keyframesDir);
151
- const keyframeInfos: KeyframeInfo[] = [];
152
210
 
153
211
  for (const keyframe of keyframes) {
154
212
  const keyframePath = path.join(keyframesDir, keyframe);
@@ -162,43 +220,191 @@ class DownloaderService {
162
220
  if (descriptionExists) {
163
221
  const cached = await readFile(keyframeDescriptionPath);
164
222
  const cachedJson = JSON.parse(cached.toString()) as KeyframeInfo;
165
- keyframeInfos.push(cachedJson);
223
+ yield { ...cachedJson, usd_cost: 0 };
166
224
  continue;
167
225
  }
168
226
 
169
227
  const description = await this.describeKeyframe(keyframePath);
170
228
  const keyframeJson = {
171
229
  path: keyframePath,
172
- description,
230
+ description: description.choices[0].message.content,
173
231
  timestamp: this.extractTimestamp(keyframe, interval),
232
+ usd_cost: description.usd_cost,
174
233
  };
175
234
  await fs.promises.writeFile(
176
235
  keyframeDescriptionPath,
177
236
  JSON.stringify(keyframeJson, null, 2)
178
237
  );
179
- keyframeInfos.push(keyframeJson);
238
+ yield keyframeJson;
180
239
  }
240
+ }
181
241
 
182
- await fs.promises.writeFile(outputPath, JSON.stringify(keyframeInfos));
242
+ public async extractKeyframes(
243
+ filePath: string,
244
+ outputPath: string,
245
+ interval: number = 10
246
+ ): Promise<KeyframeInfo[]> {
247
+ const keyframes: KeyframeInfo[] = [];
248
+ for await (const keyframe of this.streamKeyFrameExtraction(
249
+ filePath,
250
+ outputPath,
251
+ interval
252
+ )) {
253
+ keyframes.push(keyframe);
254
+ }
183
255
 
184
- return keyframeInfos;
256
+ await fs.promises.writeFile(outputPath, JSON.stringify(keyframes, null, 2));
257
+ return keyframes;
185
258
  }
186
259
 
187
- private async describeKeyframe(keyframePath: string): Promise<string> {
260
+ private async describeKeyframe(keyframePath: string) {
188
261
  const question =
189
262
  "Describe this image in detail, focusing on the main elements and actions visible.";
190
263
  const base64 = await fs.promises.readFile(keyframePath, {
191
264
  encoding: "base64",
192
265
  });
193
266
  const image = `data:image/jpeg;base64,${base64}`;
194
- const description = await visionTool(image, question);
195
- return description;
267
+ const response = await this.askGptVision(image, question);
268
+ return response;
196
269
  }
197
270
 
198
271
  private extractTimestamp(keyframeName: string, interval: number): number {
199
272
  const frameNumber = parseInt(keyframeName.match(/\d+/)[0], 10);
200
273
  return frameNumber * interval;
201
274
  }
275
+
276
+ async processAudio(
277
+ filePath: string,
278
+ reusePreviousTranscript = true,
279
+ chunkTime = 30
280
+ ): Promise<string[]> {
281
+ const parsed = path.parse(filePath);
282
+ const outputPath = `${parsed.dir}/${parsed.name}/transcript.json`;
283
+
284
+ // Skip chunking if the full output exists
285
+ const exists = await fileExists(outputPath);
286
+ if (exists && reusePreviousTranscript) {
287
+ console.log(`Transcription ${outputPath} already exists, skipping`);
288
+ const fileContent = await readFile(outputPath, "utf8");
289
+ return outputPath.endsWith("txt")
290
+ ? fileContent.split("\n")
291
+ : JSON.parse(fileContent);
292
+ }
293
+
294
+ const chunks = await this.chunk(
295
+ filePath,
296
+ parsed.dir,
297
+ chunkTime,
298
+ reusePreviousTranscript
299
+ );
300
+ const transcription = await this.transcribeChunks(
301
+ chunks,
302
+ outputPath,
303
+ reusePreviousTranscript
304
+ );
305
+
306
+ return transcription;
307
+ }
308
+
309
+ async *streamProcessAudio(
310
+ filePath: string,
311
+ reusePreviousTranscript = true,
312
+ chunkTime = 30
313
+ ): AsyncGenerator<TranscriptChunk> {
314
+ const parsed = path.parse(filePath);
315
+ const outputPath = `${parsed.dir}/${parsed.name}/transcript.json`;
316
+
317
+ // Skip chunking if the full output exists
318
+ const exists = await fileExists(outputPath);
319
+ if (exists && reusePreviousTranscript) {
320
+ console.log(`Transcription ${outputPath} already exists, skipping`);
321
+ const fileContent = await readFile(outputPath, "utf8");
322
+ const lines = outputPath.endsWith("txt")
323
+ ? fileContent.split("\n")
324
+ : JSON.parse(fileContent);
325
+
326
+ for (const line of lines)
327
+ yield { chunkPath: "", text: line, usd_cost: 0 };
328
+ return;
329
+ }
330
+
331
+ const chunks = await this.chunk(
332
+ filePath,
333
+ parsed.dir,
334
+ chunkTime,
335
+ reusePreviousTranscript
336
+ );
337
+
338
+ for await (const chunk of this.streamTranscription(
339
+ chunks,
340
+ outputPath,
341
+ reusePreviousTranscript
342
+ )) {
343
+ yield chunk;
344
+ }
345
+ }
346
+
347
+ async processVideo(
348
+ filePath: string,
349
+ reusePreviousTranscript = true,
350
+ chunkTime = 30
351
+ ) {
352
+ const parsed = path.parse(filePath);
353
+ const outputPath = `${parsed.dir}/${parsed.name}/video.json`;
354
+
355
+ console.log("Processing audio...");
356
+ const transcriptions = await this.processAudio(
357
+ filePath,
358
+ reusePreviousTranscript,
359
+ chunkTime
360
+ );
361
+
362
+ console.log("Extracting keyframes...");
363
+ const videoAnalysis = await this.extractKeyframes(
364
+ filePath,
365
+ outputPath,
366
+ chunkTime
367
+ );
368
+
369
+ return videoAnalysis.map((frame, index) => {
370
+ return {
371
+ frame,
372
+ transcription: transcriptions[index],
373
+ };
374
+ });
375
+ }
376
+
377
+ async *streamProcessVideo(
378
+ filePath: string,
379
+ reusePreviousTranscript = true,
380
+ chunkTime = 30
381
+ ) {
382
+ const parsed = path.parse(filePath);
383
+ const outputPath = `${parsed.dir}/${parsed.name}/video.json`;
384
+
385
+ console.log("Processing audio...");
386
+ const transcriptions = await this.streamProcessAudio(
387
+ filePath,
388
+ reusePreviousTranscript,
389
+ chunkTime
390
+ );
391
+
392
+ console.log("Extracting keyframes...");
393
+ const videoAnalysis = await this.streamKeyFrameExtraction(
394
+ filePath,
395
+ outputPath,
396
+ chunkTime
397
+ );
398
+
399
+ for await (const frame of videoAnalysis) {
400
+ const transcription = (await transcriptions.next())
401
+ ?.value as TranscriptChunk;
402
+ yield {
403
+ frame,
404
+ transcription,
405
+ };
406
+ }
407
+ }
202
408
  }
203
409
 
204
- export const Downloader = new DownloaderService();
410
+ export const Downloader = new DownloaderService(openai, Clients);
@@ -19,6 +19,13 @@ export interface KeyframeInfo {
19
19
  path: string;
20
20
  description: string;
21
21
  timestamp: number;
22
+ usd_cost: number | null;
23
+ }
24
+
25
+ export interface TranscriptChunk {
26
+ chunkPath: string;
27
+ text: string;
28
+ usd_cost: number | null;
22
29
  }
23
30
 
24
31
  export class RequestedDownload {
@@ -135,13 +135,18 @@ export class FigmaPlugin extends PluginBase implements Plugin {
135
135
  const responses = [];
136
136
  for (const data of figmaDataFiltered) {
137
137
  for (const nodeId in data.images) {
138
+ if (!data.images.hasOwnProperty(nodeId)) continue;
139
+
138
140
  const imageUrl = data.images[nodeId];
139
141
  const imageDescription = await askGptVision(
140
142
  imageUrl,
141
143
  `Describe the image with relavant information for this user question: ${userPrompt}`
142
144
  );
143
145
 
144
- console.log("FIGMA PLUGIN: Image description", imageDescription);
146
+ console.log(
147
+ "FIGMA PLUGIN: Image description",
148
+ imageDescription.choices[0].message.content
149
+ );
145
150
  responses.push({ nodeId, imageDescription });
146
151
  }
147
152
  }
@@ -5,7 +5,9 @@ exports.executeScriptDefinition = {
5
5
  type: "function",
6
6
  function: {
7
7
  name: "executeScript",
8
- description: `Execute TypeScript code in a secure sandbox environment with access to tools and AI models.
8
+ description: `Used to contruct a script that calls tools and analyzes data, not for general purpose scripting.
9
+
10
+ This is most useful for complex workflows of tool calls that need conditional logic based off tool responses.
9
11
 
10
12
  The script has access to:
11
13
  - callTool(toolName, parameters): Call any available tool
@@ -15,6 +17,10 @@ exports.executeScriptDefinition = {
15
17
  - getQuotaUsage(): Check resource usage
16
18
  - sleep(ms): Pause execution for a specified time, max 2000ms
17
19
 
20
+ The script cannot:
21
+ - import or require
22
+ - make external network requests, outside of callTool and llm
23
+
18
24
  Example:
19
25
  \`\`\`typescript
20
26
  // Call a tool
@@ -1 +1 @@
1
- {"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../../src/agents/tools/executeScript/definition.ts"],"names":[],"mappings":";;;AAKa,QAAA,uBAAuB,GAAS;IAC3C,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wFAiCuE;QAEpF,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,gCAAgC;iBAC9C;gBACD,YAAY,EAAE;oBACZ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,oDAAoD;iBAClE;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,+CAA+C;iBAC7D;gBACD,kBAAkB,EAAE;oBAClB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,yDAAyD;iBAC5D;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,oCAAoC;iBAClD;aACF;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;KACF;CACF,CAAC"}
1
+ {"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../../src/agents/tools/executeScript/definition.ts"],"names":[],"mappings":";;;AAKa,QAAA,uBAAuB,GAAS;IAC3C,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wFAuCuE;QAEpF,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,gCAAgC;iBAC9C;gBACD,YAAY,EAAE;oBACZ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,oDAAoD;iBAClE;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,+CAA+C;iBAC7D;gBACD,kBAAkB,EAAE;oBAClB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,yDAAyD;iBAC5D;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,oCAAoC;iBAClD;aACF;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;KACF;CACF,CAAC"}
@@ -3,7 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.visionTool = void 0;
4
4
  const ai_1 = require("../../ai");
5
5
  async function visionTool(imageUrl, question) {
6
- return (0, ai_1.askGptVision)(imageUrl, question);
6
+ const response = await (0, ai_1.askGptVision)(imageUrl, question);
7
+ return response.choices[0].message.content;
7
8
  }
8
9
  exports.visionTool = visionTool;
9
10
  //# sourceMappingURL=visionTool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"visionTool.js","sourceRoot":"","sources":["../../../../src/agents/tools/visionTool.ts"],"names":[],"mappings":";;;AAAA,iCAAwC;AAEjC,KAAK,UAAU,UAAU,CAAC,QAAgB,EAAE,QAAgB;IACjE,OAAO,IAAA,iBAAY,EAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC1C,CAAC;AAFD,gCAEC"}
1
+ {"version":3,"file":"visionTool.js","sourceRoot":"","sources":["../../../../src/agents/tools/visionTool.ts"],"names":[],"mappings":";;;AAAA,iCAAwC;AAEjC,KAAK,UAAU,UAAU,CAAC,QAAgB,EAAE,QAAgB;IACjE,MAAM,QAAQ,GAAG,MAAM,IAAA,iBAAY,EAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACxD,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;AAC7C,CAAC;AAHD,gCAGC"}
@@ -7,4 +7,4 @@ export declare function summarizeTexts(texts: string[], template: string, model?
7
7
  export declare function chunkText(text: string, chunkSize?: number): Promise<any[]>;
8
8
  export declare function summarizeFiles(files: string[], template: string, model?: string, agent?: string): Promise<any>;
9
9
  export declare function summarizeFile(file: string, template: string, model?: string, agent?: string): Promise<any>;
10
- export declare function askGptVision(imageUrl: string, question: string, provider?: string, model?: string): Promise<string>;
10
+ export declare function askGptVision(imageUrl: string, question: string, provider?: string, model?: string): Promise<import("./clients").CompletionResponse>;
@@ -97,7 +97,7 @@ async function askGptVision(imageUrl, question, provider = "openai", model = typ
97
97
  },
98
98
  ],
99
99
  });
100
- return response.choices[0].message.content;
100
+ return response;
101
101
  }
102
102
  exports.askGptVision = askGptVision;
103
103
  //# sourceMappingURL=ai.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ai.js","sourceRoot":"","sources":["../../src/ai.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ai.js","sourceRoot":"","sources":["../../src/ai.ts"],"names":[],"mappings":"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"}
@@ -274,9 +274,11 @@ async function startAgent(activeAgent, newTask, attach = false) {
274
274
  new ToolResponseCache_1.ToolResponseCache(activeAgent.tools).createProcessor(),
275
275
  new TokenCompressor_1.TokenCompressor(activeAgent.tools).createProcessor((msg) => Boolean(msg.role === "tool" && msg.tool_call_id)),
276
276
  ]);
277
- activeAgent.agentEvents.on(activeAgent.eventTypes.toolUsed, (responseMsg) => {
278
- console.log(` 🔨 Tool used: ${JSON.stringify(responseMsg, null, 2)}`);
279
- });
277
+ if (!activeAgent.agentEvents.listenerCount(activeAgent.eventTypes.toolUsed)) {
278
+ activeAgent.agentEvents.on(activeAgent.eventTypes.toolUsed, (responseMsg) => {
279
+ console.log(` 🔨 Tool used: ${JSON.stringify(responseMsg, null, 2)}`);
280
+ });
281
+ }
280
282
  activeAgent.agentEvents.once(activeAgent.eventTypes.done, (doneMsg) => {
281
283
  console.log("Agent has finished.");
282
284
  done = true;
@@ -1 +1 @@
1
- {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/chat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/chat.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,29 @@
1
- import { KeyframeInfo } from "./types";
2
- declare class DownloaderService {
1
+ import { KeyframeInfo, TranscriptChunk } from "./types";
2
+ import { openai } from "../../ai";
3
+ import { Clients } from "../../clients";
4
+ export declare class DownloaderService {
5
+ private openAi;
6
+ private clients;
7
+ constructor(openAi: typeof openai, clients: typeof Clients);
8
+ askGptVision(imageUrl: string, question: string, provider?: string, model?: string): Promise<import("../../clients").CompletionResponse>;
3
9
  download(url: string, outputDir: string): Promise<import("youtube-dl-exec").Payload>;
4
10
  info(url: string): Promise<import("youtube-dl-exec").Payload>;
5
11
  chunk(filePath: string, outputDir: string, CHUNK_LENGTH_SECONDS?: number, reuseExistingChunks?: boolean): Promise<string[]>;
6
- transcribeChunks(files: string[], outputPath: string, reusePreviousTranscript?: boolean): Promise<any[]>;
12
+ streamTranscription(files: string[], outputPath: string, reusePreviousTranscript?: boolean): AsyncGenerator<TranscriptChunk>;
13
+ transcribeChunks(files: string[], outputPath: string, reusePreviousTranscript?: boolean): Promise<string[]>;
14
+ streamKeyFrameExtraction(filePath: string, outputPath: string, interval?: number): AsyncGenerator<KeyframeInfo>;
7
15
  extractKeyframes(filePath: string, outputPath: string, interval?: number): Promise<KeyframeInfo[]>;
8
16
  private describeKeyframe;
9
17
  private extractTimestamp;
18
+ processAudio(filePath: string, reusePreviousTranscript?: boolean, chunkTime?: number): Promise<string[]>;
19
+ streamProcessAudio(filePath: string, reusePreviousTranscript?: boolean, chunkTime?: number): AsyncGenerator<TranscriptChunk>;
20
+ processVideo(filePath: string, reusePreviousTranscript?: boolean, chunkTime?: number): Promise<{
21
+ frame: KeyframeInfo;
22
+ transcription: string;
23
+ }[]>;
24
+ streamProcessVideo(filePath: string, reusePreviousTranscript?: boolean, chunkTime?: number): AsyncGenerator<{
25
+ frame: KeyframeInfo;
26
+ transcription: TranscriptChunk;
27
+ }, void, unknown>;
10
28
  }
11
29
  export declare const Downloader: DownloaderService;
12
- export {};
@@ -26,16 +26,44 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.Downloader = void 0;
29
+ exports.Downloader = exports.DownloaderService = void 0;
30
30
  const fs = __importStar(require("fs"));
31
31
  const path = __importStar(require("path"));
32
32
  const youtube_dl_exec_1 = __importDefault(require("youtube-dl-exec"));
33
33
  const progress_estimator_1 = __importDefault(require("progress-estimator"));
34
- const visionTool_1 = require("../../agents/tools/visionTool");
35
34
  const utils_1 = require("../../utils");
36
35
  const ai_1 = require("../../ai");
36
+ const clients_1 = require("../../clients");
37
+ const types_1 = require("../../types");
37
38
  const logger = (0, progress_estimator_1.default)();
38
39
  class DownloaderService {
40
+ openAi;
41
+ clients;
42
+ constructor(openAi, clients) {
43
+ this.openAi = openAi;
44
+ this.clients = clients;
45
+ }
46
+ async askGptVision(imageUrl, question, provider = "openai", model = types_1.Models.openai.GPT_4o) {
47
+ const response = await this.clients.createCompletion(provider, {
48
+ model,
49
+ max_tokens: 2500,
50
+ messages: [
51
+ {
52
+ role: "user",
53
+ content: [
54
+ { type: "text", text: question },
55
+ {
56
+ type: "image_url",
57
+ image_url: {
58
+ url: imageUrl,
59
+ },
60
+ },
61
+ ],
62
+ },
63
+ ],
64
+ });
65
+ return response;
66
+ }
39
67
  async download(url, outputDir) {
40
68
  const info = await this.info(url);
41
69
  const exists = await (0, utils_1.fileExists)(`${outputDir}/${info.id}.${info.ext}`);
@@ -83,14 +111,7 @@ class DownloaderService {
83
111
  console.log("Chunked into", chunkNames.length, "chunks");
84
112
  return chunkNames.map((chunkName) => path.join(outputDirPath, chunkName));
85
113
  }
86
- async transcribeChunks(files, outputPath, reusePreviousTranscript = true) {
87
- const exists = await (0, utils_1.fileExists)(outputPath);
88
- if (exists && reusePreviousTranscript) {
89
- console.log("Transcription already exists, skipping");
90
- const contents = await (0, utils_1.readFile)(outputPath);
91
- return JSON.parse(contents.toString());
92
- }
93
- const fullText = [];
114
+ async *streamTranscription(files, outputPath, reusePreviousTranscript = true) {
94
115
  for (const file of files) {
95
116
  const chunkName = path.parse(file).name;
96
117
  const chunkTranscriptPath = path.join(path.dirname(outputPath), `/chunks/${chunkName}.txt`);
@@ -98,11 +119,15 @@ class DownloaderService {
98
119
  if (chunkExists && reusePreviousTranscript) {
99
120
  console.log("Chunk transcription already exists, skipping");
100
121
  const contents = await (0, utils_1.readFile)(chunkTranscriptPath);
101
- fullText.push(contents.toString());
122
+ yield {
123
+ chunkPath: chunkTranscriptPath,
124
+ text: contents.toString(),
125
+ usd_cost: 0,
126
+ };
102
127
  continue;
103
128
  }
104
129
  console.log("Transcribing", file);
105
- const transcript = await ai_1.openai.audio.transcriptions
130
+ const transcript = await this.openAi.audio.transcriptions
106
131
  .create({
107
132
  file: fs.createReadStream(file),
108
133
  model: "whisper-1",
@@ -113,16 +138,37 @@ class DownloaderService {
113
138
  });
114
139
  await (0, utils_1.mkdir)(path.dirname(chunkTranscriptPath), { recursive: true });
115
140
  await fs.promises.writeFile(chunkTranscriptPath, transcript.text);
116
- fullText.push(transcript.text);
141
+ yield {
142
+ chunkPath: chunkTranscriptPath,
143
+ text: transcript.text,
144
+ usd_cost: 30 * 0.0001
145
+ };
146
+ }
147
+ }
148
+ async transcribeChunks(files, outputPath, reusePreviousTranscript = true) {
149
+ const exists = await (0, utils_1.fileExists)(outputPath);
150
+ if (exists && reusePreviousTranscript) {
151
+ console.log("Transcription already exists, skipping");
152
+ const contents = await (0, utils_1.readFile)(outputPath);
153
+ return JSON.parse(contents.toString());
154
+ }
155
+ const fullText = [];
156
+ for await (const { chunkPath, text } of this.streamTranscription(files, outputPath, reusePreviousTranscript)) {
157
+ console.log("Chunk transcribed:", chunkPath);
158
+ fullText.push(text);
117
159
  }
118
160
  await fs.promises.writeFile(outputPath, JSON.stringify(fullText));
119
161
  return fullText;
120
162
  }
121
- async extractKeyframes(filePath, outputPath, interval = 10) {
163
+ async *streamKeyFrameExtraction(filePath, outputPath, interval = 10) {
122
164
  if (fs.existsSync(outputPath)) {
123
165
  console.log("Keyframes already exist, skipping");
124
166
  const contents = await (0, utils_1.readFile)(outputPath);
125
- return JSON.parse(contents.toString());
167
+ const data = JSON.parse(contents.toString());
168
+ for (const keyframe of data) {
169
+ yield { ...keyframe, usd_cost: 0 };
170
+ }
171
+ return;
126
172
  }
127
173
  const parsed = path.parse(filePath);
128
174
  const outputDir = path.dirname(outputPath);
@@ -132,7 +178,6 @@ class DownloaderService {
132
178
  const command = `ffmpeg -i "${filePath}" -vf "fps=1/${interval},scale=640:-1" "${keyframesDir}/frame%04d.jpg"`;
133
179
  await (0, utils_1.execAsync)(command);
134
180
  const keyframes = await fs.promises.readdir(keyframesDir);
135
- const keyframeInfos = [];
136
181
  for (const keyframe of keyframes) {
137
182
  const keyframePath = path.join(keyframesDir, keyframe);
138
183
  const keyframeName = path.parse(keyframe).name;
@@ -141,20 +186,27 @@ class DownloaderService {
141
186
  if (descriptionExists) {
142
187
  const cached = await (0, utils_1.readFile)(keyframeDescriptionPath);
143
188
  const cachedJson = JSON.parse(cached.toString());
144
- keyframeInfos.push(cachedJson);
189
+ yield { ...cachedJson, usd_cost: 0 };
145
190
  continue;
146
191
  }
147
192
  const description = await this.describeKeyframe(keyframePath);
148
193
  const keyframeJson = {
149
194
  path: keyframePath,
150
- description,
195
+ description: description.choices[0].message.content,
151
196
  timestamp: this.extractTimestamp(keyframe, interval),
197
+ usd_cost: description.usd_cost,
152
198
  };
153
199
  await fs.promises.writeFile(keyframeDescriptionPath, JSON.stringify(keyframeJson, null, 2));
154
- keyframeInfos.push(keyframeJson);
200
+ yield keyframeJson;
201
+ }
202
+ }
203
+ async extractKeyframes(filePath, outputPath, interval = 10) {
204
+ const keyframes = [];
205
+ for await (const keyframe of this.streamKeyFrameExtraction(filePath, outputPath, interval)) {
206
+ keyframes.push(keyframe);
155
207
  }
156
- await fs.promises.writeFile(outputPath, JSON.stringify(keyframeInfos));
157
- return keyframeInfos;
208
+ await fs.promises.writeFile(outputPath, JSON.stringify(keyframes, null, 2));
209
+ return keyframes;
158
210
  }
159
211
  async describeKeyframe(keyframePath) {
160
212
  const question = "Describe this image in detail, focusing on the main elements and actions visible.";
@@ -162,13 +214,78 @@ class DownloaderService {
162
214
  encoding: "base64",
163
215
  });
164
216
  const image = `data:image/jpeg;base64,${base64}`;
165
- const description = await (0, visionTool_1.visionTool)(image, question);
166
- return description;
217
+ const response = await this.askGptVision(image, question);
218
+ return response;
167
219
  }
168
220
  extractTimestamp(keyframeName, interval) {
169
221
  const frameNumber = parseInt(keyframeName.match(/\d+/)[0], 10);
170
222
  return frameNumber * interval;
171
223
  }
224
+ async processAudio(filePath, reusePreviousTranscript = true, chunkTime = 30) {
225
+ const parsed = path.parse(filePath);
226
+ const outputPath = `${parsed.dir}/${parsed.name}/transcript.json`;
227
+ const exists = await (0, utils_1.fileExists)(outputPath);
228
+ if (exists && reusePreviousTranscript) {
229
+ console.log(`Transcription ${outputPath} already exists, skipping`);
230
+ const fileContent = await (0, utils_1.readFile)(outputPath, "utf8");
231
+ return outputPath.endsWith("txt")
232
+ ? fileContent.split("\n")
233
+ : JSON.parse(fileContent);
234
+ }
235
+ const chunks = await this.chunk(filePath, parsed.dir, chunkTime, reusePreviousTranscript);
236
+ const transcription = await this.transcribeChunks(chunks, outputPath, reusePreviousTranscript);
237
+ return transcription;
238
+ }
239
+ async *streamProcessAudio(filePath, reusePreviousTranscript = true, chunkTime = 30) {
240
+ const parsed = path.parse(filePath);
241
+ const outputPath = `${parsed.dir}/${parsed.name}/transcript.json`;
242
+ const exists = await (0, utils_1.fileExists)(outputPath);
243
+ if (exists && reusePreviousTranscript) {
244
+ console.log(`Transcription ${outputPath} already exists, skipping`);
245
+ const fileContent = await (0, utils_1.readFile)(outputPath, "utf8");
246
+ const lines = outputPath.endsWith("txt")
247
+ ? fileContent.split("\n")
248
+ : JSON.parse(fileContent);
249
+ for (const line of lines)
250
+ yield { chunkPath: "", text: line, usd_cost: 0 };
251
+ return;
252
+ }
253
+ const chunks = await this.chunk(filePath, parsed.dir, chunkTime, reusePreviousTranscript);
254
+ for await (const chunk of this.streamTranscription(chunks, outputPath, reusePreviousTranscript)) {
255
+ yield chunk;
256
+ }
257
+ }
258
+ async processVideo(filePath, reusePreviousTranscript = true, chunkTime = 30) {
259
+ const parsed = path.parse(filePath);
260
+ const outputPath = `${parsed.dir}/${parsed.name}/video.json`;
261
+ console.log("Processing audio...");
262
+ const transcriptions = await this.processAudio(filePath, reusePreviousTranscript, chunkTime);
263
+ console.log("Extracting keyframes...");
264
+ const videoAnalysis = await this.extractKeyframes(filePath, outputPath, chunkTime);
265
+ return videoAnalysis.map((frame, index) => {
266
+ return {
267
+ frame,
268
+ transcription: transcriptions[index],
269
+ };
270
+ });
271
+ }
272
+ async *streamProcessVideo(filePath, reusePreviousTranscript = true, chunkTime = 30) {
273
+ const parsed = path.parse(filePath);
274
+ const outputPath = `${parsed.dir}/${parsed.name}/video.json`;
275
+ console.log("Processing audio...");
276
+ const transcriptions = await this.streamProcessAudio(filePath, reusePreviousTranscript, chunkTime);
277
+ console.log("Extracting keyframes...");
278
+ const videoAnalysis = await this.streamKeyFrameExtraction(filePath, outputPath, chunkTime);
279
+ for await (const frame of videoAnalysis) {
280
+ const transcription = (await transcriptions.next())
281
+ ?.value;
282
+ yield {
283
+ frame,
284
+ transcription,
285
+ };
286
+ }
287
+ }
172
288
  }
173
- exports.Downloader = new DownloaderService();
289
+ exports.DownloaderService = DownloaderService;
290
+ exports.Downloader = new DownloaderService(ai_1.openai, clients_1.Clients);
174
291
  //# sourceMappingURL=downloader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"downloader.js","sourceRoot":"","sources":["../../../../src/plugins/downloader/downloader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"downloader.js","sourceRoot":"","sources":["../../../../src/plugins/downloader/downloader.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,12 @@ export interface KeyframeInfo {
18
18
  path: string;
19
19
  description: string;
20
20
  timestamp: number;
21
+ usd_cost: number | null;
22
+ }
23
+ export interface TranscriptChunk {
24
+ chunkPath: string;
25
+ text: string;
26
+ usd_cost: number | null;
21
27
  }
22
28
  export declare class RequestedDownload {
23
29
  ext: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/plugins/downloader/types.ts"],"names":[],"mappings":";;;AAAA,MAAa,WAAW;IACtB,GAAG,CAAS;IACZ,KAAK,CAAgB;IACrB,MAAM,CAAgB;IACtB,GAAG,CAAgB;IACnB,SAAS,CAAS;IAClB,GAAG,CAAS;IACZ,MAAM,CAAS;IACf,YAAY,CAAyB;IACrC,QAAQ,CAAS;IACjB,UAAU,CAAS;IACnB,YAAY,CAAgB;IAC5B,SAAS,CAAS;IAClB,SAAS,CAAS;IAClB,MAAM,CAAS;CAChB;AAfD,kCAeC;AAQD,MAAa,iBAAiB;IAC5B,GAAG,CAAS;IACZ,SAAS,CAAS;IAClB,GAAG,CAAS;IACZ,MAAM,CAAS;IACf,YAAY,CAAyB;IACrC,QAAQ,CAAS;IACjB,UAAU,CAAS;IACnB,SAAS,CAAS;IAClB,SAAS,CAAS;IAClB,MAAM,CAAS;IACf,KAAK,CAAS;IACd,SAAS,CAAS;IAClB,wBAAwB,CAAU;CACnC;AAdD,8CAcC;AAED,MAAa,YAAY;IACvB,EAAE,CAAS;IACX,KAAK,CAAS;IACd,SAAS,CAAc;IACvB,WAAW,CAAgB;IAC3B,SAAS,CAAgB;IACzB,SAAS,CAAS;IAClB,OAAO,CAAgB;IACvB,SAAS,CAAyB;IAClC,gBAAgB,CAAW;IAC3B,SAAS,CAAS;IAClB,aAAa,CAAS;IACtB,WAAW,CAAS;IACpB,YAAY,CAAS;IACrB,oBAAoB,CAAS;IAC7B,kBAAkB,CAAS;IAC3B,QAAQ,CAAgB;IACxB,cAAc,CAAgB;IAC9B,UAAU,CAAS;IACnB,SAAS,CAAS;IAClB,mBAAmB,CAAgC;IACnD,QAAQ,CAAiB;IACzB,mBAAmB,CAAsB;IACzC,GAAG,CAAS;IACZ,KAAK,CAAgB;IACrB,MAAM,CAAgB;IACtB,GAAG,CAAgB;IACnB,SAAS,CAAS;IAClB,GAAG,CAAS;IACZ,MAAM,CAAS;IACf,YAAY,CAAyB;IACrC,QAAQ,CAAS;IACjB,UAAU,CAAS;IACnB,YAAY,CAAgB;IAC5B,SAAS,CAAS;IAClB,SAAS,CAAS;IAClB,MAAM,CAAS;IACf,KAAK,CAAS;IACd,KAAK,CAAS;IACd,QAAQ,CAKN;CACH;AA7CD,oCA6CC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/plugins/downloader/types.ts"],"names":[],"mappings":";;;AAAA,MAAa,WAAW;IACtB,GAAG,CAAS;IACZ,KAAK,CAAgB;IACrB,MAAM,CAAgB;IACtB,GAAG,CAAgB;IACnB,SAAS,CAAS;IAClB,GAAG,CAAS;IACZ,MAAM,CAAS;IACf,YAAY,CAAyB;IACrC,QAAQ,CAAS;IACjB,UAAU,CAAS;IACnB,YAAY,CAAgB;IAC5B,SAAS,CAAS;IAClB,SAAS,CAAS;IAClB,MAAM,CAAS;CAChB;AAfD,kCAeC;AAeD,MAAa,iBAAiB;IAC5B,GAAG,CAAS;IACZ,SAAS,CAAS;IAClB,GAAG,CAAS;IACZ,MAAM,CAAS;IACf,YAAY,CAAyB;IACrC,QAAQ,CAAS;IACjB,UAAU,CAAS;IACnB,SAAS,CAAS;IAClB,SAAS,CAAS;IAClB,MAAM,CAAS;IACf,KAAK,CAAS;IACd,SAAS,CAAS;IAClB,wBAAwB,CAAU;CACnC;AAdD,8CAcC;AAED,MAAa,YAAY;IACvB,EAAE,CAAS;IACX,KAAK,CAAS;IACd,SAAS,CAAc;IACvB,WAAW,CAAgB;IAC3B,SAAS,CAAgB;IACzB,SAAS,CAAS;IAClB,OAAO,CAAgB;IACvB,SAAS,CAAyB;IAClC,gBAAgB,CAAW;IAC3B,SAAS,CAAS;IAClB,aAAa,CAAS;IACtB,WAAW,CAAS;IACpB,YAAY,CAAS;IACrB,oBAAoB,CAAS;IAC7B,kBAAkB,CAAS;IAC3B,QAAQ,CAAgB;IACxB,cAAc,CAAgB;IAC9B,UAAU,CAAS;IACnB,SAAS,CAAS;IAClB,mBAAmB,CAAgC;IACnD,QAAQ,CAAiB;IACzB,mBAAmB,CAAsB;IACzC,GAAG,CAAS;IACZ,KAAK,CAAgB;IACrB,MAAM,CAAgB;IACtB,GAAG,CAAgB;IACnB,SAAS,CAAS;IAClB,GAAG,CAAS;IACZ,MAAM,CAAS;IACf,YAAY,CAAyB;IACrC,QAAQ,CAAS;IACjB,UAAU,CAAS;IACnB,YAAY,CAAgB;IAC5B,SAAS,CAAS;IAClB,SAAS,CAAS;IAClB,MAAM,CAAS;IACf,KAAK,CAAS;IACd,KAAK,CAAS;IACd,QAAQ,CAKN;CACH;AA7CD,oCA6CC"}
@@ -95,9 +95,11 @@ class FigmaPlugin extends PluginBase_1.PluginBase {
95
95
  const responses = [];
96
96
  for (const data of figmaDataFiltered) {
97
97
  for (const nodeId in data.images) {
98
+ if (!data.images.hasOwnProperty(nodeId))
99
+ continue;
98
100
  const imageUrl = data.images[nodeId];
99
101
  const imageDescription = await (0, ai_1.askGptVision)(imageUrl, `Describe the image with relavant information for this user question: ${userPrompt}`);
100
- console.log("FIGMA PLUGIN: Image description", imageDescription);
102
+ console.log("FIGMA PLUGIN: Image description", imageDescription.choices[0].message.content);
101
103
  responses.push({ nodeId, imageDescription });
102
104
  }
103
105
  }
@@ -1 +1 @@
1
- {"version":3,"file":"figma.js","sourceRoot":"","sources":["../../../src/plugins/figma.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"figma.js","sourceRoot":"","sources":["../../../src/plugins/figma.ts"],"names":[],"mappings":"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"}