@tyvm/knowhow 0.0.29 → 0.0.31

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.31",
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}`);
@@ -56,9 +88,10 @@ class DownloaderService {
56
88
  if (existingChunkNames.length > 0) {
57
89
  if (reuseExistingChunks) {
58
90
  console.log("Chunks already exist, skipping");
59
- return existingFolderFiles.map((chunkName) =>
91
+ const names = existingChunkNames.map((chunkName) =>
60
92
  path.join(outputDirPath, chunkName)
61
93
  );
94
+ return names;
62
95
  } else {
63
96
  for (const file of existingFolderFiles) {
64
97
  fs.rmSync(path.join(outputDirPath, file), { recursive: true });
@@ -77,19 +110,11 @@ class DownloaderService {
77
110
  return chunkNames.map((chunkName) => path.join(outputDirPath, chunkName));
78
111
  }
79
112
 
80
- public async transcribeChunks(
113
+ public async *streamTranscription(
81
114
  files: string[],
82
115
  outputPath: string,
83
116
  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 = [];
117
+ ): AsyncGenerator<TranscriptChunk> {
93
118
  for (const file of files) {
94
119
  const chunkName = path.parse(file).name;
95
120
  const chunkTranscriptPath = path.join(
@@ -99,14 +124,18 @@ class DownloaderService {
99
124
  const chunkExists = await fileExists(chunkTranscriptPath);
100
125
 
101
126
  if (chunkExists && reusePreviousTranscript) {
102
- console.log("Chunk transcription already exists, skipping");
127
+ console.log(chunkTranscriptPath, " transcription already exists, skipping");
103
128
  const contents = await readFile(chunkTranscriptPath);
104
- fullText.push(contents.toString());
129
+ yield {
130
+ chunkPath: chunkTranscriptPath,
131
+ text: contents.toString(),
132
+ usd_cost: 0,
133
+ };
105
134
  continue;
106
135
  }
107
136
 
108
137
  console.log("Transcribing", file);
109
- const transcript = await openai.audio.transcriptions
138
+ const transcript = await this.openAi.audio.transcriptions
110
139
  .create({
111
140
  file: fs.createReadStream(file),
112
141
  model: "whisper-1",
@@ -120,22 +149,53 @@ class DownloaderService {
120
149
  await fs.promises.writeFile(chunkTranscriptPath, transcript.text);
121
150
 
122
151
  // save chunk transcript to file
123
- fullText.push(transcript.text);
152
+ yield {
153
+ chunkPath: chunkTranscriptPath,
154
+ text: transcript.text,
155
+ usd_cost: 30 * 0.0001, // assume 30 seconds,
156
+ };
157
+ }
158
+ }
159
+
160
+ public async transcribeChunks(
161
+ files: string[],
162
+ outputPath: string,
163
+ reusePreviousTranscript = true
164
+ ): Promise<string[]> {
165
+ const exists = await fileExists(outputPath);
166
+ if (exists && reusePreviousTranscript) {
167
+ console.log("Transcription already exists, skipping");
168
+ const contents = await readFile(outputPath);
169
+ return JSON.parse(contents.toString()) as string[];
170
+ }
171
+
172
+ const fullText = [];
173
+ for await (const { chunkPath, text } of this.streamTranscription(
174
+ files,
175
+ outputPath,
176
+ reusePreviousTranscript
177
+ )) {
178
+ console.log("Chunk transcribed:", chunkPath);
179
+ fullText.push(text);
124
180
  }
125
181
 
126
182
  await fs.promises.writeFile(outputPath, JSON.stringify(fullText));
127
183
  return fullText;
128
184
  }
129
185
 
130
- public async extractKeyframes(
186
+ public async *streamKeyFrameExtraction(
131
187
  filePath: string,
132
188
  outputPath: string,
133
189
  interval: number = 10
134
- ): Promise<KeyframeInfo[]> {
190
+ ): AsyncGenerator<KeyframeInfo> {
135
191
  if (fs.existsSync(outputPath)) {
136
192
  console.log("Keyframes already exist, skipping");
137
193
  const contents = await readFile(outputPath);
138
- return JSON.parse(contents.toString()) as KeyframeInfo[];
194
+ const data = JSON.parse(contents.toString()) as KeyframeInfo[];
195
+ for (const keyframe of data) {
196
+ yield { ...keyframe, usd_cost: 0 };
197
+ }
198
+ return;
139
199
  }
140
200
 
141
201
  const parsed = path.parse(filePath);
@@ -148,7 +208,6 @@ class DownloaderService {
148
208
  await execAsync(command);
149
209
 
150
210
  const keyframes = await fs.promises.readdir(keyframesDir);
151
- const keyframeInfos: KeyframeInfo[] = [];
152
211
 
153
212
  for (const keyframe of keyframes) {
154
213
  const keyframePath = path.join(keyframesDir, keyframe);
@@ -162,43 +221,191 @@ class DownloaderService {
162
221
  if (descriptionExists) {
163
222
  const cached = await readFile(keyframeDescriptionPath);
164
223
  const cachedJson = JSON.parse(cached.toString()) as KeyframeInfo;
165
- keyframeInfos.push(cachedJson);
224
+ yield { ...cachedJson, usd_cost: 0 };
166
225
  continue;
167
226
  }
168
227
 
169
228
  const description = await this.describeKeyframe(keyframePath);
170
229
  const keyframeJson = {
171
230
  path: keyframePath,
172
- description,
231
+ description: description.choices[0].message.content,
173
232
  timestamp: this.extractTimestamp(keyframe, interval),
233
+ usd_cost: description.usd_cost,
174
234
  };
175
235
  await fs.promises.writeFile(
176
236
  keyframeDescriptionPath,
177
237
  JSON.stringify(keyframeJson, null, 2)
178
238
  );
179
- keyframeInfos.push(keyframeJson);
239
+ yield keyframeJson;
180
240
  }
241
+ }
181
242
 
182
- await fs.promises.writeFile(outputPath, JSON.stringify(keyframeInfos));
243
+ public async extractKeyframes(
244
+ filePath: string,
245
+ outputPath: string,
246
+ interval: number = 10
247
+ ): Promise<KeyframeInfo[]> {
248
+ const keyframes: KeyframeInfo[] = [];
249
+ for await (const keyframe of this.streamKeyFrameExtraction(
250
+ filePath,
251
+ outputPath,
252
+ interval
253
+ )) {
254
+ keyframes.push(keyframe);
255
+ }
183
256
 
184
- return keyframeInfos;
257
+ await fs.promises.writeFile(outputPath, JSON.stringify(keyframes, null, 2));
258
+ return keyframes;
185
259
  }
186
260
 
187
- private async describeKeyframe(keyframePath: string): Promise<string> {
261
+ private async describeKeyframe(keyframePath: string) {
188
262
  const question =
189
263
  "Describe this image in detail, focusing on the main elements and actions visible.";
190
264
  const base64 = await fs.promises.readFile(keyframePath, {
191
265
  encoding: "base64",
192
266
  });
193
267
  const image = `data:image/jpeg;base64,${base64}`;
194
- const description = await visionTool(image, question);
195
- return description;
268
+ const response = await this.askGptVision(image, question);
269
+ return response;
196
270
  }
197
271
 
198
272
  private extractTimestamp(keyframeName: string, interval: number): number {
199
273
  const frameNumber = parseInt(keyframeName.match(/\d+/)[0], 10);
200
274
  return frameNumber * interval;
201
275
  }
276
+
277
+ async processAudio(
278
+ filePath: string,
279
+ reusePreviousTranscript = true,
280
+ chunkTime = 30
281
+ ): Promise<string[]> {
282
+ const parsed = path.parse(filePath);
283
+ const outputPath = `${parsed.dir}/${parsed.name}/transcript.json`;
284
+
285
+ // Skip chunking if the full output exists
286
+ const exists = await fileExists(outputPath);
287
+ if (exists && reusePreviousTranscript) {
288
+ console.log(`Transcription ${outputPath} already exists, skipping`);
289
+ const fileContent = await readFile(outputPath, "utf8");
290
+ return outputPath.endsWith("txt")
291
+ ? fileContent.split("\n")
292
+ : JSON.parse(fileContent);
293
+ }
294
+
295
+ const chunks = await this.chunk(
296
+ filePath,
297
+ parsed.dir,
298
+ chunkTime,
299
+ reusePreviousTranscript
300
+ );
301
+ const transcription = await this.transcribeChunks(
302
+ chunks,
303
+ outputPath,
304
+ reusePreviousTranscript
305
+ );
306
+
307
+ return transcription;
308
+ }
309
+
310
+ async *streamProcessAudio(
311
+ filePath: string,
312
+ reusePreviousTranscript = true,
313
+ chunkTime = 30
314
+ ): AsyncGenerator<TranscriptChunk> {
315
+ const parsed = path.parse(filePath);
316
+ const outputPath = `${parsed.dir}/${parsed.name}/transcript.json`;
317
+
318
+ // Skip chunking if the full output exists
319
+ const exists = await fileExists(outputPath);
320
+ if (exists && reusePreviousTranscript) {
321
+ console.log(`Transcription ${outputPath} already exists, skipping`);
322
+ const fileContent = await readFile(outputPath, "utf8");
323
+ const lines = outputPath.endsWith("txt")
324
+ ? fileContent.split("\n")
325
+ : JSON.parse(fileContent);
326
+
327
+ for (const line of lines)
328
+ yield { chunkPath: "", text: line, usd_cost: 0 };
329
+ return;
330
+ }
331
+
332
+ const chunks = await this.chunk(
333
+ filePath,
334
+ parsed.dir,
335
+ chunkTime,
336
+ reusePreviousTranscript
337
+ );
338
+
339
+ for await (const chunk of this.streamTranscription(
340
+ chunks,
341
+ outputPath,
342
+ reusePreviousTranscript
343
+ )) {
344
+ yield chunk;
345
+ }
346
+ }
347
+
348
+ async processVideo(
349
+ filePath: string,
350
+ reusePreviousTranscript = true,
351
+ chunkTime = 30
352
+ ) {
353
+ const parsed = path.parse(filePath);
354
+ const outputPath = `${parsed.dir}/${parsed.name}/video.json`;
355
+
356
+ console.log("Processing audio...");
357
+ const transcriptions = await this.processAudio(
358
+ filePath,
359
+ reusePreviousTranscript,
360
+ chunkTime
361
+ );
362
+
363
+ console.log("Extracting keyframes...");
364
+ const videoAnalysis = await this.extractKeyframes(
365
+ filePath,
366
+ outputPath,
367
+ chunkTime
368
+ );
369
+
370
+ return videoAnalysis.map((frame, index) => {
371
+ return {
372
+ frame,
373
+ transcription: transcriptions[index],
374
+ };
375
+ });
376
+ }
377
+
378
+ async *streamProcessVideo(
379
+ filePath: string,
380
+ reusePreviousTranscript = true,
381
+ chunkTime = 30
382
+ ) {
383
+ const parsed = path.parse(filePath);
384
+ const outputPath = `${parsed.dir}/${parsed.name}/video.json`;
385
+
386
+ console.log("Processing audio...");
387
+ const transcriptions = await this.streamProcessAudio(
388
+ filePath,
389
+ reusePreviousTranscript,
390
+ chunkTime
391
+ );
392
+
393
+ console.log("Extracting keyframes...");
394
+ const videoAnalysis = await this.streamKeyFrameExtraction(
395
+ filePath,
396
+ outputPath,
397
+ chunkTime
398
+ );
399
+
400
+ for await (const frame of videoAnalysis) {
401
+ const transcription = (await transcriptions.next())
402
+ ?.value as TranscriptChunk;
403
+ yield {
404
+ frame,
405
+ transcription,
406
+ };
407
+ }
408
+ }
202
409
  }
203
410
 
204
- export const Downloader = new DownloaderService();
411
+ 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}`);
@@ -68,7 +96,8 @@ class DownloaderService {
68
96
  if (existingChunkNames.length > 0) {
69
97
  if (reuseExistingChunks) {
70
98
  console.log("Chunks already exist, skipping");
71
- return existingFolderFiles.map((chunkName) => path.join(outputDirPath, chunkName));
99
+ const names = existingChunkNames.map((chunkName) => path.join(outputDirPath, chunkName));
100
+ return names;
72
101
  }
73
102
  else {
74
103
  for (const file of existingFolderFiles) {
@@ -83,26 +112,23 @@ class DownloaderService {
83
112
  console.log("Chunked into", chunkNames.length, "chunks");
84
113
  return chunkNames.map((chunkName) => path.join(outputDirPath, chunkName));
85
114
  }
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 = [];
115
+ async *streamTranscription(files, outputPath, reusePreviousTranscript = true) {
94
116
  for (const file of files) {
95
117
  const chunkName = path.parse(file).name;
96
118
  const chunkTranscriptPath = path.join(path.dirname(outputPath), `/chunks/${chunkName}.txt`);
97
119
  const chunkExists = await (0, utils_1.fileExists)(chunkTranscriptPath);
98
120
  if (chunkExists && reusePreviousTranscript) {
99
- console.log("Chunk transcription already exists, skipping");
121
+ console.log(chunkTranscriptPath, " transcription already exists, skipping");
100
122
  const contents = await (0, utils_1.readFile)(chunkTranscriptPath);
101
- fullText.push(contents.toString());
123
+ yield {
124
+ chunkPath: chunkTranscriptPath,
125
+ text: contents.toString(),
126
+ usd_cost: 0,
127
+ };
102
128
  continue;
103
129
  }
104
130
  console.log("Transcribing", file);
105
- const transcript = await ai_1.openai.audio.transcriptions
131
+ const transcript = await this.openAi.audio.transcriptions
106
132
  .create({
107
133
  file: fs.createReadStream(file),
108
134
  model: "whisper-1",
@@ -113,16 +139,37 @@ class DownloaderService {
113
139
  });
114
140
  await (0, utils_1.mkdir)(path.dirname(chunkTranscriptPath), { recursive: true });
115
141
  await fs.promises.writeFile(chunkTranscriptPath, transcript.text);
116
- fullText.push(transcript.text);
142
+ yield {
143
+ chunkPath: chunkTranscriptPath,
144
+ text: transcript.text,
145
+ usd_cost: 30 * 0.0001,
146
+ };
147
+ }
148
+ }
149
+ async transcribeChunks(files, outputPath, reusePreviousTranscript = true) {
150
+ const exists = await (0, utils_1.fileExists)(outputPath);
151
+ if (exists && reusePreviousTranscript) {
152
+ console.log("Transcription already exists, skipping");
153
+ const contents = await (0, utils_1.readFile)(outputPath);
154
+ return JSON.parse(contents.toString());
155
+ }
156
+ const fullText = [];
157
+ for await (const { chunkPath, text } of this.streamTranscription(files, outputPath, reusePreviousTranscript)) {
158
+ console.log("Chunk transcribed:", chunkPath);
159
+ fullText.push(text);
117
160
  }
118
161
  await fs.promises.writeFile(outputPath, JSON.stringify(fullText));
119
162
  return fullText;
120
163
  }
121
- async extractKeyframes(filePath, outputPath, interval = 10) {
164
+ async *streamKeyFrameExtraction(filePath, outputPath, interval = 10) {
122
165
  if (fs.existsSync(outputPath)) {
123
166
  console.log("Keyframes already exist, skipping");
124
167
  const contents = await (0, utils_1.readFile)(outputPath);
125
- return JSON.parse(contents.toString());
168
+ const data = JSON.parse(contents.toString());
169
+ for (const keyframe of data) {
170
+ yield { ...keyframe, usd_cost: 0 };
171
+ }
172
+ return;
126
173
  }
127
174
  const parsed = path.parse(filePath);
128
175
  const outputDir = path.dirname(outputPath);
@@ -132,7 +179,6 @@ class DownloaderService {
132
179
  const command = `ffmpeg -i "${filePath}" -vf "fps=1/${interval},scale=640:-1" "${keyframesDir}/frame%04d.jpg"`;
133
180
  await (0, utils_1.execAsync)(command);
134
181
  const keyframes = await fs.promises.readdir(keyframesDir);
135
- const keyframeInfos = [];
136
182
  for (const keyframe of keyframes) {
137
183
  const keyframePath = path.join(keyframesDir, keyframe);
138
184
  const keyframeName = path.parse(keyframe).name;
@@ -141,20 +187,27 @@ class DownloaderService {
141
187
  if (descriptionExists) {
142
188
  const cached = await (0, utils_1.readFile)(keyframeDescriptionPath);
143
189
  const cachedJson = JSON.parse(cached.toString());
144
- keyframeInfos.push(cachedJson);
190
+ yield { ...cachedJson, usd_cost: 0 };
145
191
  continue;
146
192
  }
147
193
  const description = await this.describeKeyframe(keyframePath);
148
194
  const keyframeJson = {
149
195
  path: keyframePath,
150
- description,
196
+ description: description.choices[0].message.content,
151
197
  timestamp: this.extractTimestamp(keyframe, interval),
198
+ usd_cost: description.usd_cost,
152
199
  };
153
200
  await fs.promises.writeFile(keyframeDescriptionPath, JSON.stringify(keyframeJson, null, 2));
154
- keyframeInfos.push(keyframeJson);
201
+ yield keyframeJson;
202
+ }
203
+ }
204
+ async extractKeyframes(filePath, outputPath, interval = 10) {
205
+ const keyframes = [];
206
+ for await (const keyframe of this.streamKeyFrameExtraction(filePath, outputPath, interval)) {
207
+ keyframes.push(keyframe);
155
208
  }
156
- await fs.promises.writeFile(outputPath, JSON.stringify(keyframeInfos));
157
- return keyframeInfos;
209
+ await fs.promises.writeFile(outputPath, JSON.stringify(keyframes, null, 2));
210
+ return keyframes;
158
211
  }
159
212
  async describeKeyframe(keyframePath) {
160
213
  const question = "Describe this image in detail, focusing on the main elements and actions visible.";
@@ -162,13 +215,78 @@ class DownloaderService {
162
215
  encoding: "base64",
163
216
  });
164
217
  const image = `data:image/jpeg;base64,${base64}`;
165
- const description = await (0, visionTool_1.visionTool)(image, question);
166
- return description;
218
+ const response = await this.askGptVision(image, question);
219
+ return response;
167
220
  }
168
221
  extractTimestamp(keyframeName, interval) {
169
222
  const frameNumber = parseInt(keyframeName.match(/\d+/)[0], 10);
170
223
  return frameNumber * interval;
171
224
  }
225
+ async processAudio(filePath, reusePreviousTranscript = true, chunkTime = 30) {
226
+ const parsed = path.parse(filePath);
227
+ const outputPath = `${parsed.dir}/${parsed.name}/transcript.json`;
228
+ const exists = await (0, utils_1.fileExists)(outputPath);
229
+ if (exists && reusePreviousTranscript) {
230
+ console.log(`Transcription ${outputPath} already exists, skipping`);
231
+ const fileContent = await (0, utils_1.readFile)(outputPath, "utf8");
232
+ return outputPath.endsWith("txt")
233
+ ? fileContent.split("\n")
234
+ : JSON.parse(fileContent);
235
+ }
236
+ const chunks = await this.chunk(filePath, parsed.dir, chunkTime, reusePreviousTranscript);
237
+ const transcription = await this.transcribeChunks(chunks, outputPath, reusePreviousTranscript);
238
+ return transcription;
239
+ }
240
+ async *streamProcessAudio(filePath, reusePreviousTranscript = true, chunkTime = 30) {
241
+ const parsed = path.parse(filePath);
242
+ const outputPath = `${parsed.dir}/${parsed.name}/transcript.json`;
243
+ const exists = await (0, utils_1.fileExists)(outputPath);
244
+ if (exists && reusePreviousTranscript) {
245
+ console.log(`Transcription ${outputPath} already exists, skipping`);
246
+ const fileContent = await (0, utils_1.readFile)(outputPath, "utf8");
247
+ const lines = outputPath.endsWith("txt")
248
+ ? fileContent.split("\n")
249
+ : JSON.parse(fileContent);
250
+ for (const line of lines)
251
+ yield { chunkPath: "", text: line, usd_cost: 0 };
252
+ return;
253
+ }
254
+ const chunks = await this.chunk(filePath, parsed.dir, chunkTime, reusePreviousTranscript);
255
+ for await (const chunk of this.streamTranscription(chunks, outputPath, reusePreviousTranscript)) {
256
+ yield chunk;
257
+ }
258
+ }
259
+ async processVideo(filePath, reusePreviousTranscript = true, chunkTime = 30) {
260
+ const parsed = path.parse(filePath);
261
+ const outputPath = `${parsed.dir}/${parsed.name}/video.json`;
262
+ console.log("Processing audio...");
263
+ const transcriptions = await this.processAudio(filePath, reusePreviousTranscript, chunkTime);
264
+ console.log("Extracting keyframes...");
265
+ const videoAnalysis = await this.extractKeyframes(filePath, outputPath, chunkTime);
266
+ return videoAnalysis.map((frame, index) => {
267
+ return {
268
+ frame,
269
+ transcription: transcriptions[index],
270
+ };
271
+ });
272
+ }
273
+ async *streamProcessVideo(filePath, reusePreviousTranscript = true, chunkTime = 30) {
274
+ const parsed = path.parse(filePath);
275
+ const outputPath = `${parsed.dir}/${parsed.name}/video.json`;
276
+ console.log("Processing audio...");
277
+ const transcriptions = await this.streamProcessAudio(filePath, reusePreviousTranscript, chunkTime);
278
+ console.log("Extracting keyframes...");
279
+ const videoAnalysis = await this.streamKeyFrameExtraction(filePath, outputPath, chunkTime);
280
+ for await (const frame of videoAnalysis) {
281
+ const transcription = (await transcriptions.next())
282
+ ?.value;
283
+ yield {
284
+ frame,
285
+ transcription,
286
+ };
287
+ }
288
+ }
172
289
  }
173
- exports.Downloader = new DownloaderService();
290
+ exports.DownloaderService = DownloaderService;
291
+ exports.Downloader = new DownloaderService(ai_1.openai, clients_1.Clients);
174
292
  //# 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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"}