@tyvm/knowhow 0.0.103 → 0.0.104

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.103",
3
+ "version": "0.0.104",
4
4
  "description": "ai cli with plugins and agents",
5
5
  "main": "ts_build/src/index.js",
6
6
  "bin": {
@@ -0,0 +1,287 @@
1
+ /**
2
+ * Model catalog: a single source of truth for all supported AI models,
3
+ * their providers, types, display names, and pricing.
4
+ *
5
+ * Pricing is in USD per 1M tokens (or per-image / per-second for media models).
6
+ * This is exported so the Knowhow backend (and other consumers) can import
7
+ * model/pricing data without duplicating it.
8
+ */
9
+
10
+ import { Models, EmbeddingModels } from "../../types";
11
+ import { OpenAiTextPricing } from "./openai";
12
+ import { AnthropicTextPricing } from "./anthropic";
13
+ import { GeminiPricing } from "./google";
14
+ import { XaiTextPricing, XaiImagePricing, XaiVideoPricing } from "./xai";
15
+
16
+ export type ModelType =
17
+ | "completion"
18
+ | "embedding"
19
+ | "image"
20
+ | "audio"
21
+ | "video"
22
+ | "transaction";
23
+
24
+ export interface ModelPricing {
25
+ input: number;
26
+ output: number;
27
+ cached_input?: number;
28
+ cache_write?: number;
29
+ cache_hit?: number;
30
+ input_audio?: number;
31
+ output_audio?: number;
32
+ input_gt_200k?: number;
33
+ output_gt_200k?: number;
34
+ image_generation?: number;
35
+ video_generation?: number;
36
+ }
37
+
38
+ export interface ModelCatalogEntry {
39
+ id: string;
40
+ provider: string;
41
+ type: ModelType;
42
+ displayName: string;
43
+ pricing: ModelPricing;
44
+ /** Markup applied on top of base pricing (as a fraction, e.g. 0.025 = 2.5%) */
45
+ markupPercent: number;
46
+ }
47
+
48
+ // ─── Platform markup ──────────────────────────────────────────────────────────
49
+
50
+ /** 2.5% platform markup applied on top of all provider base rates */
51
+ export const USAGE_MARKUP_PERCENT = 2.5 / 100;
52
+
53
+ // ─── Helpers ──────────────────────────────────────────────────────────────────
54
+
55
+ function completion(
56
+ id: string,
57
+ provider: string,
58
+ displayName: string,
59
+ pricingOverride?: Partial<ModelPricing>
60
+ ): ModelCatalogEntry {
61
+ const base =
62
+ (OpenAiTextPricing as Record<string, Partial<ModelPricing>>)[id] ||
63
+ (AnthropicTextPricing as Record<string, Partial<ModelPricing>>)[id] ||
64
+ (GeminiPricing as Record<string, Partial<ModelPricing>>)[id] ||
65
+ (XaiTextPricing as Record<string, Partial<ModelPricing>>)[id] ||
66
+ {};
67
+ return {
68
+ id,
69
+ provider,
70
+ type: "completion",
71
+ displayName,
72
+ markupPercent: USAGE_MARKUP_PERCENT,
73
+ pricing: {
74
+ input: 0,
75
+ output: 0,
76
+ ...base,
77
+ ...pricingOverride,
78
+ },
79
+ };
80
+ }
81
+
82
+ function embedding(
83
+ id: string,
84
+ provider: string,
85
+ displayName: string,
86
+ input: number
87
+ ): ModelCatalogEntry {
88
+ return {
89
+ id,
90
+ provider,
91
+ type: "embedding",
92
+ displayName,
93
+ markupPercent: USAGE_MARKUP_PERCENT,
94
+ pricing: { input, output: 0 },
95
+ };
96
+ }
97
+
98
+ function image(
99
+ id: string,
100
+ provider: string,
101
+ displayName: string,
102
+ pricing: Partial<ModelPricing>
103
+ ): ModelCatalogEntry {
104
+ return {
105
+ id,
106
+ provider,
107
+ type: "image",
108
+ displayName,
109
+ markupPercent: USAGE_MARKUP_PERCENT,
110
+ pricing: { input: 0, output: 0, ...pricing },
111
+ };
112
+ }
113
+
114
+ function video(
115
+ id: string,
116
+ provider: string,
117
+ displayName: string,
118
+ video_generation: number
119
+ ): ModelCatalogEntry {
120
+ return {
121
+ id,
122
+ provider,
123
+ type: "video",
124
+ displayName,
125
+ markupPercent: USAGE_MARKUP_PERCENT,
126
+ pricing: { input: 0, output: 0, video_generation },
127
+ };
128
+ }
129
+
130
+ function audio(
131
+ id: string,
132
+ provider: string,
133
+ displayName: string,
134
+ pricing: Partial<ModelPricing>
135
+ ): ModelCatalogEntry {
136
+ return {
137
+ id,
138
+ provider,
139
+ type: "audio",
140
+ displayName,
141
+ markupPercent: USAGE_MARKUP_PERCENT,
142
+ pricing: { input: 0, output: 0, ...pricing },
143
+ };
144
+ }
145
+
146
+ function transaction(
147
+ id: string,
148
+ provider: string,
149
+ displayName: string,
150
+ pricing: Partial<ModelPricing>
151
+ ): ModelCatalogEntry {
152
+ return {
153
+ id,
154
+ provider,
155
+ type: "transaction",
156
+ displayName,
157
+ markupPercent: USAGE_MARKUP_PERCENT,
158
+ pricing: { input: 0, output: 0, ...pricing },
159
+ };
160
+ }
161
+
162
+ // ─── OpenAI ───────────────────────────────────────────────────────────────────
163
+
164
+ export const OPENAI_MODEL_CATALOG: ModelCatalogEntry[] = [
165
+ // Completion
166
+ completion(Models.openai.GPT_4o, "openai", "GPT-4o"),
167
+ completion(Models.openai.GPT_4o_Mini, "openai", "GPT-4o Mini"),
168
+ completion(Models.openai.GPT_41, "openai", "GPT-4.1"),
169
+ completion(Models.openai.GPT_41_Mini, "openai", "GPT-4.1 Mini"),
170
+ completion(Models.openai.GPT_41_Nano, "openai", "GPT-4.1 Nano"),
171
+ completion(Models.openai.GPT_45, "openai", "GPT-4.5 Preview"),
172
+ completion(Models.openai.o1, "openai", "o1"),
173
+ completion(Models.openai.o1_Mini, "openai", "o1 Mini"),
174
+ completion(Models.openai.o3, "openai", "o3"),
175
+ completion(Models.openai.o3_Mini, "openai", "o3 Mini"),
176
+ completion(Models.openai.o4_Mini, "openai", "o4 Mini"),
177
+ // Embedding
178
+ embedding(EmbeddingModels.openai.EmbeddingAda2, "openai", "Embedding Ada 002", OpenAiTextPricing[EmbeddingModels.openai.EmbeddingAda2]?.input ?? 0.1),
179
+ embedding(EmbeddingModels.openai.EmbeddingLarge3, "openai", "Embedding 3 Large", OpenAiTextPricing[EmbeddingModels.openai.EmbeddingLarge3]?.input ?? 0.13),
180
+ embedding(EmbeddingModels.openai.EmbeddingSmall3, "openai", "Embedding 3 Small", OpenAiTextPricing[EmbeddingModels.openai.EmbeddingSmall3]?.input ?? 0.02),
181
+ // Image generation
182
+ image(Models.openai.DALL_E_3, "openai", "DALL-E 3", { image_generation: 0.04 }),
183
+ image(Models.openai.DALL_E_2, "openai", "DALL-E 2", { image_generation: 0.02 }),
184
+ image(Models.openai.GPT_Image_15, "openai", "GPT Image 1.5", { input: OpenAiTextPricing[Models.openai.GPT_Image_15]?.input ?? 5.0, output: OpenAiTextPricing[Models.openai.GPT_Image_15]?.output ?? 10.0 }),
185
+ image(Models.openai.GPT_Image_1_Mini, "openai", "GPT Image 1 Mini", { input: OpenAiTextPricing[Models.openai.GPT_Image_1_Mini]?.input ?? 2.0 }),
186
+ // Video generation
187
+ video(Models.openai.Sora, "openai", "Sora", 0.012),
188
+ video(Models.openai.Sora_2, "openai", "Sora 2", 0.015),
189
+ // Audio
190
+ audio(Models.openai.TTS_1, "openai", "TTS-1", { input: 15.0 }),
191
+ audio(Models.openai.Whisper_1, "openai", "Whisper 1", { input: 0.006 }),
192
+ // Transaction / Search
193
+ transaction(Models.openai.GPT_4o_Mini_Search, "openai", "GPT-4o Mini Search", { input: OpenAiTextPricing[Models.openai.GPT_4o_Mini_Search]?.input ?? 0.15, output: OpenAiTextPricing[Models.openai.GPT_4o_Mini_Search]?.output ?? 0.6 }),
194
+ transaction(Models.openai.GPT_4o_Search, "openai", "GPT-4o Search", { input: OpenAiTextPricing[Models.openai.GPT_4o_Search]?.input ?? 2.5, output: OpenAiTextPricing[Models.openai.GPT_4o_Search]?.output ?? 10.0 }),
195
+ ];
196
+
197
+ // ─── Anthropic ────────────────────────────────────────────────────────────────
198
+
199
+ export const ANTHROPIC_MODEL_CATALOG: ModelCatalogEntry[] = [
200
+ completion(Models.anthropic.Opus4_5, "anthropic", "Claude Opus 4.5"),
201
+ completion(Models.anthropic.Sonnet4_5, "anthropic", "Claude Sonnet 4.5"),
202
+ completion(Models.anthropic.Opus4, "anthropic", "Claude Opus 4"),
203
+ completion(Models.anthropic.Sonnet4, "anthropic", "Claude Sonnet 4"),
204
+ completion(Models.anthropic.Haiku4_5, "anthropic", "Claude Haiku 4.5"),
205
+ completion(Models.anthropic.Sonnet3_7, "anthropic", "Claude Sonnet 3.7"),
206
+ completion(Models.anthropic.Sonnet3_5, "anthropic", "Claude Sonnet 3.5"),
207
+ completion(Models.anthropic.Haiku3, "anthropic", "Claude Haiku 3"),
208
+ completion(Models.anthropic.Opus3, "anthropic", "Claude Opus 3"),
209
+ ];
210
+
211
+ // ─── Google ───────────────────────────────────────────────────────────────────
212
+
213
+ export const GOOGLE_MODEL_CATALOG: ModelCatalogEntry[] = [
214
+ // Completion
215
+ completion(Models.google.Gemini_25_Pro, "google", "Gemini 2.5 Pro"),
216
+ completion(Models.google.Gemini_25_Flash, "google", "Gemini 2.5 Flash"),
217
+ completion(Models.google.Gemini_25_Flash_Lite, "google", "Gemini 2.5 Flash Lite"),
218
+ completion(Models.google.Gemini_20_Flash, "google", "Gemini 2.0 Flash"),
219
+ completion(Models.google.Gemini_15_Pro, "google", "Gemini 1.5 Pro"),
220
+ completion(Models.google.Gemini_15_Flash, "google", "Gemini 1.5 Flash"),
221
+ completion(Models.google.Gemini_15_Flash_8B, "google", "Gemini 1.5 Flash 8B"),
222
+ // Embedding
223
+ embedding(EmbeddingModels.google.Gemini_Embedding, "google", "Gemini Embedding", GeminiPricing[EmbeddingModels.google.Gemini_Embedding]?.input ?? 0),
224
+ // Image generation
225
+ image(Models.google.Gemini_20_Flash_Preview_Image_Generation, "google", "Gemini 2.0 Flash Image", {
226
+ input: GeminiPricing[Models.google.Gemini_20_Flash_Preview_Image_Generation]?.input ?? 0.1,
227
+ output: GeminiPricing[Models.google.Gemini_20_Flash_Preview_Image_Generation]?.output ?? 0.4,
228
+ image_generation: GeminiPricing[Models.google.Gemini_20_Flash_Preview_Image_Generation]?.image_generation ?? 0.039,
229
+ }),
230
+ image(Models.google.Gemini_25_Flash_Image, "google", "Gemini 2.5 Flash Image", {
231
+ input: GeminiPricing[Models.google.Gemini_25_Flash_Image]?.input ?? 0.3,
232
+ output: GeminiPricing[Models.google.Gemini_25_Flash_Image]?.output ?? 0.039,
233
+ image_generation: GeminiPricing[Models.google.Gemini_25_Flash_Image]?.image_generation ?? 0.039,
234
+ }),
235
+ image(Models.google.Gemini_31_Flash_Image_Preview, "google", "Gemini 3.1 Flash Image", {
236
+ input: GeminiPricing[Models.google.Gemini_31_Flash_Image_Preview]?.input ?? 0.5,
237
+ output: GeminiPricing[Models.google.Gemini_31_Flash_Image_Preview]?.output ?? 3.0,
238
+ image_generation: GeminiPricing[Models.google.Gemini_31_Flash_Image_Preview]?.image_generation ?? 0.045,
239
+ }),
240
+ image(Models.google.Gemini_3_Pro_Image_Preview, "google", "Gemini 3 Pro Image", {
241
+ input: GeminiPricing[Models.google.Gemini_3_Pro_Image_Preview]?.input ?? 2.0,
242
+ output: GeminiPricing[Models.google.Gemini_3_Pro_Image_Preview]?.output ?? 12.0,
243
+ image_generation: GeminiPricing[Models.google.Gemini_3_Pro_Image_Preview]?.image_generation ?? 0.134,
244
+ }),
245
+ image(Models.google.Imagen_3, "google", "Imagen 4", { image_generation: GeminiPricing[Models.google.Imagen_3]?.image_generation ?? 0.04 }),
246
+ image(Models.google.Imagen_4_Fast, "google", "Imagen 4 Fast", { image_generation: GeminiPricing[Models.google.Imagen_4_Fast]?.image_generation ?? 0.02 }),
247
+ image(Models.google.Imagen_4_Ultra, "google", "Imagen 4 Ultra", { image_generation: GeminiPricing[Models.google.Imagen_4_Ultra]?.image_generation ?? 0.06 }),
248
+ // Video generation
249
+ video(Models.google.Veo_2, "google", "Veo 2", GeminiPricing[Models.google.Veo_2]?.video_generation ?? 0.35),
250
+ video(Models.google.Veo_3, "google", "Veo 3", GeminiPricing[Models.google.Veo_3]?.video_generation ?? 0.4),
251
+ video(Models.google.Veo_3_Fast, "google", "Veo 3 Fast", GeminiPricing[Models.google.Veo_3_Fast]?.video_generation ?? 0.1),
252
+ // Audio (TTS)
253
+ audio(Models.google.Gemini_25_Flash_TTS, "google", "Gemini 2.5 Flash TTS", {
254
+ input: GeminiPricing[Models.google.Gemini_25_Flash_TTS]?.input ?? 0.5,
255
+ output_audio: GeminiPricing[Models.google.Gemini_25_Flash_TTS]?.output_audio ?? 10.0,
256
+ output: GeminiPricing[Models.google.Gemini_25_Flash_TTS]?.output_audio ?? 10.0,
257
+ }),
258
+ audio(Models.google.Gemini_25_Pro_TTS, "google", "Gemini 2.5 Pro TTS", {
259
+ input: GeminiPricing[Models.google.Gemini_25_Pro_TTS]?.input ?? 1.0,
260
+ output_audio: GeminiPricing[Models.google.Gemini_25_Pro_TTS]?.output_audio ?? 20.0,
261
+ output: GeminiPricing[Models.google.Gemini_25_Pro_TTS]?.output_audio ?? 20.0,
262
+ }),
263
+ ];
264
+
265
+ // ─── xAI ──────────────────────────────────────────────────────────────────────
266
+
267
+ export const XAI_MODEL_CATALOG: ModelCatalogEntry[] = [
268
+ completion(Models.xai.Grok4, "xai", "Grok 4"),
269
+ completion(Models.xai.Grok3Beta, "xai", "Grok 3 Beta"),
270
+ completion(Models.xai.Grok3MiniBeta, "xai", "Grok 3 Mini Beta"),
271
+ completion(Models.xai.Grok3FastBeta, "xai", "Grok 3 Fast Beta"),
272
+ completion(Models.xai.Grok21212, "xai", "Grok 2"),
273
+ // Image generation
274
+ image(Models.xai.GrokImagineImage, "xai", "Grok Imagine Image", { image_generation: XaiImagePricing["grok-imagine-image"] ?? 0.02 }),
275
+ image("grok-2-image-1212", "xai", "Grok 2 Image", { image_generation: XaiImagePricing["grok-2-image-1212"] ?? 0.07 }),
276
+ // Video generation
277
+ video(Models.xai.GrokImagineVideo, "xai", "Grok Imagine Video", XaiVideoPricing["grok-imagine-video"] ?? 0.05),
278
+ ];
279
+
280
+ // ─── Combined catalog ─────────────────────────────────────────────────────────
281
+
282
+ export const ALL_MODEL_CATALOG: ModelCatalogEntry[] = [
283
+ ...OPENAI_MODEL_CATALOG,
284
+ ...ANTHROPIC_MODEL_CATALOG,
285
+ ...GOOGLE_MODEL_CATALOG,
286
+ ...XAI_MODEL_CATALOG,
287
+ ];
@@ -2,3 +2,5 @@ export { OpenAiTextPricing } from "./openai";
2
2
  export { GeminiTextPricing } from "./google";
3
3
  export { AnthropicTextPricing } from "./anthropic";
4
4
  export { XaiTextPricing, XaiImagePricing, XaiVideoPricing } from "./xai";
5
+ export { ALL_MODEL_CATALOG, OPENAI_MODEL_CATALOG, ANTHROPIC_MODEL_CATALOG, GOOGLE_MODEL_CATALOG, XAI_MODEL_CATALOG, USAGE_MARKUP_PERCENT } from "./catalog";
6
+ export type { ModelCatalogEntry, ModelType, ModelPricing as CatalogModelPricing } from "./catalog";
package/src/fileSync.ts CHANGED
@@ -5,7 +5,7 @@ import { loadJwt } from "./login";
5
5
  import { getConfig } from "./config";
6
6
  import { services } from "./services";
7
7
  import { S3Service } from "./services/S3";
8
- import { getHashes, hasFileChangedSinceUpload, saveUploadHash, isLocalFileMatchingRemote } from "./hashes";
8
+ import { getHashes, hasFileChangedSinceUpload, saveUploadHash, isLocalFileMatchingRemote, isLocalFileMatchingDownloadHash, saveDownloadHash } from "./hashes";
9
9
 
10
10
  export interface FileSyncOptions {
11
11
  upload?: boolean;
@@ -145,12 +145,21 @@ async function downloadFile(
145
145
  }
146
146
 
147
147
  try {
148
+ // Fast-path: check stored download hash before hitting the API
149
+ const hashes = await getHashes();
150
+ if (await isLocalFileMatchingDownloadHash(localPath, hashes)) {
151
+ console.log(` ✓ Skipping ${localPath} (matches stored download hash)`);
152
+ return;
153
+ }
154
+
148
155
  // Get presigned download URL + remote checksum
149
156
  const { downloadUrl, checksumSHA256 } = await client.getOrgFilePresignedDownloadUrl(remotePath);
150
157
 
151
158
  // Skip if local file matches remote checksum
152
159
  if (isLocalFileMatchingRemote(localPath, checksumSHA256)) {
153
160
  console.log(` ✓ Skipping ${localPath} (matches remote checksum)`);
161
+ // Store the hash so future syncs can skip without hitting the API
162
+ await saveDownloadHash(localPath);
154
163
  return;
155
164
  }
156
165
 
@@ -163,6 +172,9 @@ async function downloadFile(
163
172
  // Download file using presigned URL
164
173
  await s3Service.downloadFromPresignedUrl(downloadUrl, localPath);
165
174
 
175
+ // Save download hash so we can skip unchanged files next time
176
+ await saveDownloadHash(localPath);
177
+
166
178
  // Get file size for logging
167
179
  const stats = fs.statSync(localPath);
168
180
  console.log(` ✓ Downloaded ${stats.size} bytes`);
@@ -284,7 +296,8 @@ async function downloadDirectory(
284
296
  const fullPath = f.folderPath.endsWith("/")
285
297
  ? f.folderPath + f.fileName
286
298
  : f.folderPath + "/" + f.fileName;
287
- return fullPath.startsWith(remoteDir);
299
+ // Exclude directory placeholder entries (empty fileName) and only include real files
300
+ return f.fileName !== "" && fullPath.startsWith(remoteDir);
288
301
  });
289
302
 
290
303
  if (matchingFiles.length === 0) {
package/src/hashes.ts CHANGED
@@ -73,6 +73,8 @@ export async function saveAllFileHashes(files: string[], promptHash: string) {
73
73
 
74
74
  const UPLOAD_KEY = "upload";
75
75
 
76
+ const DOWNLOAD_KEY = "download";
77
+
76
78
  /**
77
79
  * Returns true if the file has changed since the last successful upload
78
80
  * (or if it has never been uploaded before)
@@ -101,6 +103,37 @@ export async function saveUploadHash(localPath: string) {
101
103
  await saveHashes(hashes);
102
104
  }
103
105
 
106
+ /**
107
+ * Returns true if the local file already matches the hash stored from
108
+ * the last successful download, meaning we can skip the download.
109
+ */
110
+ export async function isLocalFileMatchingDownloadHash(
111
+ localPath: string,
112
+ hashes: any
113
+ ): Promise<boolean> {
114
+ if (!fs.existsSync(localPath)) return false;
115
+ const storedHash = hashes[localPath]?.[DOWNLOAD_KEY];
116
+ if (!storedHash) return false;
117
+ const content = fs.readFileSync(localPath);
118
+ const currentHash = crypto.createHash("sha256").update(content).digest("base64");
119
+ return storedHash === currentHash;
120
+ }
121
+
122
+ /**
123
+ * Saves the SHA-256 hash of the file after a successful download so we can
124
+ * skip unchanged files on the next sync.
125
+ */
126
+ export async function saveDownloadHash(localPath: string) {
127
+ const hashes = await getHashes();
128
+ const content = fs.readFileSync(localPath);
129
+ const currentHash = crypto.createHash("sha256").update(content).digest("base64");
130
+ if (!hashes[localPath]) {
131
+ hashes[localPath] = { fileHash: currentHash, promptHash: "" };
132
+ }
133
+ hashes[localPath][DOWNLOAD_KEY] = currentHash;
134
+ await saveHashes(hashes);
135
+ }
136
+
104
137
  /**
105
138
  * Compute SHA-256 of a local file, returned as base64 (matches S3 encoding)
106
139
  */
@@ -18,13 +18,17 @@ export interface FsSyncOptions {
18
18
  * Creates files in .knowhow/processes/agents/{taskId}/ for status and input
19
19
  */
20
20
  export class AgentSyncFs {
21
+ /** Shared cleanup interval across all instances to avoid duplicate cleanup runs */
22
+ private static sharedCleanupInterval: NodeJS.Timeout | null = null;
23
+ private static sharedBasePath: string = ".knowhow/processes/agents";
24
+ private static cleanupStarted: boolean = false;
25
+
21
26
  private taskId: string | undefined;
22
27
  private basePath: string = ".knowhow/processes/agents";
23
28
  private taskPath: string | undefined;
24
29
  private eventHandlersSetup: boolean = false;
25
30
  private watcher: ReturnType<typeof watch> | null = null;
26
31
  private lastInputContent: string = "";
27
- private cleanupInterval: NodeJS.Timeout | null = null;
28
32
  private finalizationPromise: Promise<void> | null = null;
29
33
  private agent: BaseAgent | undefined;
30
34
  private threadUpdateHandler: ((...args: any[]) => void) | undefined;
@@ -38,7 +42,7 @@ export class AgentSyncFs {
38
42
 
39
43
  constructor() {
40
44
  // Start cleanup process when created
41
- this.startCleanupProcess();
45
+ AgentSyncFs.startSharedCleanupProcess();
42
46
  }
43
47
 
44
48
  /**
@@ -372,9 +376,9 @@ export class AgentSyncFs {
372
376
  /**
373
377
  * Clean up old task directories (older than 3 days)
374
378
  */
375
- private async cleanupOldTasks(): Promise<void> {
379
+ private static async cleanupOldTasks(): Promise<void> {
376
380
  try {
377
- const agentsPath = this.basePath;
381
+ const agentsPath = AgentSyncFs.sharedBasePath;
378
382
 
379
383
  // Check if directory exists
380
384
  try {
@@ -414,23 +418,27 @@ export class AgentSyncFs {
414
418
  /**
415
419
  * Start periodic cleanup process
416
420
  */
417
- private startCleanupProcess(): void {
418
- // Run cleanup every hour
419
- this.cleanupInterval = setInterval(() => {
420
- this.cleanupOldTasks();
421
+ private static startSharedCleanupProcess(): void {
422
+ if (AgentSyncFs.cleanupStarted) return;
423
+ AgentSyncFs.cleanupStarted = true;
424
+
425
+ // Run cleanup every hour (shared across all instances)
426
+ AgentSyncFs.sharedCleanupInterval = setInterval(() => {
427
+ AgentSyncFs.cleanupOldTasks();
421
428
  }, 60 * 60 * 1000);
422
429
 
423
430
  // Also run once on startup
424
- this.cleanupOldTasks();
431
+ AgentSyncFs.cleanupOldTasks();
425
432
  }
426
433
 
427
434
  /**
428
435
  * Stop cleanup process
429
436
  */
430
437
  stopCleanup(): void {
431
- if (this.cleanupInterval) {
432
- clearInterval(this.cleanupInterval);
433
- this.cleanupInterval = null;
438
+ if (AgentSyncFs.sharedCleanupInterval) {
439
+ clearInterval(AgentSyncFs.sharedCleanupInterval);
440
+ AgentSyncFs.sharedCleanupInterval = null;
441
+ AgentSyncFs.cleanupStarted = false;
434
442
  }
435
443
  }
436
444
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tyvm/knowhow",
3
- "version": "0.0.103",
3
+ "version": "0.0.104",
4
4
  "description": "ai cli with plugins and agents",
5
5
  "main": "ts_build/src/index.js",
6
6
  "bin": {
@@ -0,0 +1,28 @@
1
+ export type ModelType = "completion" | "embedding" | "image" | "audio" | "video" | "transaction";
2
+ export interface ModelPricing {
3
+ input: number;
4
+ output: number;
5
+ cached_input?: number;
6
+ cache_write?: number;
7
+ cache_hit?: number;
8
+ input_audio?: number;
9
+ output_audio?: number;
10
+ input_gt_200k?: number;
11
+ output_gt_200k?: number;
12
+ image_generation?: number;
13
+ video_generation?: number;
14
+ }
15
+ export interface ModelCatalogEntry {
16
+ id: string;
17
+ provider: string;
18
+ type: ModelType;
19
+ displayName: string;
20
+ pricing: ModelPricing;
21
+ markupPercent: number;
22
+ }
23
+ export declare const USAGE_MARKUP_PERCENT: number;
24
+ export declare const OPENAI_MODEL_CATALOG: ModelCatalogEntry[];
25
+ export declare const ANTHROPIC_MODEL_CATALOG: ModelCatalogEntry[];
26
+ export declare const GOOGLE_MODEL_CATALOG: ModelCatalogEntry[];
27
+ export declare const XAI_MODEL_CATALOG: ModelCatalogEntry[];
28
+ export declare const ALL_MODEL_CATALOG: ModelCatalogEntry[];
@@ -0,0 +1,179 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ALL_MODEL_CATALOG = exports.XAI_MODEL_CATALOG = exports.GOOGLE_MODEL_CATALOG = exports.ANTHROPIC_MODEL_CATALOG = exports.OPENAI_MODEL_CATALOG = exports.USAGE_MARKUP_PERCENT = void 0;
4
+ const types_1 = require("../../types");
5
+ const openai_1 = require("./openai");
6
+ const anthropic_1 = require("./anthropic");
7
+ const google_1 = require("./google");
8
+ const xai_1 = require("./xai");
9
+ exports.USAGE_MARKUP_PERCENT = 2.5 / 100;
10
+ function completion(id, provider, displayName, pricingOverride) {
11
+ const base = openai_1.OpenAiTextPricing[id] ||
12
+ anthropic_1.AnthropicTextPricing[id] ||
13
+ google_1.GeminiPricing[id] ||
14
+ xai_1.XaiTextPricing[id] ||
15
+ {};
16
+ return {
17
+ id,
18
+ provider,
19
+ type: "completion",
20
+ displayName,
21
+ markupPercent: exports.USAGE_MARKUP_PERCENT,
22
+ pricing: {
23
+ input: 0,
24
+ output: 0,
25
+ ...base,
26
+ ...pricingOverride,
27
+ },
28
+ };
29
+ }
30
+ function embedding(id, provider, displayName, input) {
31
+ return {
32
+ id,
33
+ provider,
34
+ type: "embedding",
35
+ displayName,
36
+ markupPercent: exports.USAGE_MARKUP_PERCENT,
37
+ pricing: { input, output: 0 },
38
+ };
39
+ }
40
+ function image(id, provider, displayName, pricing) {
41
+ return {
42
+ id,
43
+ provider,
44
+ type: "image",
45
+ displayName,
46
+ markupPercent: exports.USAGE_MARKUP_PERCENT,
47
+ pricing: { input: 0, output: 0, ...pricing },
48
+ };
49
+ }
50
+ function video(id, provider, displayName, video_generation) {
51
+ return {
52
+ id,
53
+ provider,
54
+ type: "video",
55
+ displayName,
56
+ markupPercent: exports.USAGE_MARKUP_PERCENT,
57
+ pricing: { input: 0, output: 0, video_generation },
58
+ };
59
+ }
60
+ function audio(id, provider, displayName, pricing) {
61
+ return {
62
+ id,
63
+ provider,
64
+ type: "audio",
65
+ displayName,
66
+ markupPercent: exports.USAGE_MARKUP_PERCENT,
67
+ pricing: { input: 0, output: 0, ...pricing },
68
+ };
69
+ }
70
+ function transaction(id, provider, displayName, pricing) {
71
+ return {
72
+ id,
73
+ provider,
74
+ type: "transaction",
75
+ displayName,
76
+ markupPercent: exports.USAGE_MARKUP_PERCENT,
77
+ pricing: { input: 0, output: 0, ...pricing },
78
+ };
79
+ }
80
+ exports.OPENAI_MODEL_CATALOG = [
81
+ completion(types_1.Models.openai.GPT_4o, "openai", "GPT-4o"),
82
+ completion(types_1.Models.openai.GPT_4o_Mini, "openai", "GPT-4o Mini"),
83
+ completion(types_1.Models.openai.GPT_41, "openai", "GPT-4.1"),
84
+ completion(types_1.Models.openai.GPT_41_Mini, "openai", "GPT-4.1 Mini"),
85
+ completion(types_1.Models.openai.GPT_41_Nano, "openai", "GPT-4.1 Nano"),
86
+ completion(types_1.Models.openai.GPT_45, "openai", "GPT-4.5 Preview"),
87
+ completion(types_1.Models.openai.o1, "openai", "o1"),
88
+ completion(types_1.Models.openai.o1_Mini, "openai", "o1 Mini"),
89
+ completion(types_1.Models.openai.o3, "openai", "o3"),
90
+ completion(types_1.Models.openai.o3_Mini, "openai", "o3 Mini"),
91
+ completion(types_1.Models.openai.o4_Mini, "openai", "o4 Mini"),
92
+ embedding(types_1.EmbeddingModels.openai.EmbeddingAda2, "openai", "Embedding Ada 002", openai_1.OpenAiTextPricing[types_1.EmbeddingModels.openai.EmbeddingAda2]?.input ?? 0.1),
93
+ embedding(types_1.EmbeddingModels.openai.EmbeddingLarge3, "openai", "Embedding 3 Large", openai_1.OpenAiTextPricing[types_1.EmbeddingModels.openai.EmbeddingLarge3]?.input ?? 0.13),
94
+ embedding(types_1.EmbeddingModels.openai.EmbeddingSmall3, "openai", "Embedding 3 Small", openai_1.OpenAiTextPricing[types_1.EmbeddingModels.openai.EmbeddingSmall3]?.input ?? 0.02),
95
+ image(types_1.Models.openai.DALL_E_3, "openai", "DALL-E 3", { image_generation: 0.04 }),
96
+ image(types_1.Models.openai.DALL_E_2, "openai", "DALL-E 2", { image_generation: 0.02 }),
97
+ image(types_1.Models.openai.GPT_Image_15, "openai", "GPT Image 1.5", { input: openai_1.OpenAiTextPricing[types_1.Models.openai.GPT_Image_15]?.input ?? 5.0, output: openai_1.OpenAiTextPricing[types_1.Models.openai.GPT_Image_15]?.output ?? 10.0 }),
98
+ image(types_1.Models.openai.GPT_Image_1_Mini, "openai", "GPT Image 1 Mini", { input: openai_1.OpenAiTextPricing[types_1.Models.openai.GPT_Image_1_Mini]?.input ?? 2.0 }),
99
+ video(types_1.Models.openai.Sora, "openai", "Sora", 0.012),
100
+ video(types_1.Models.openai.Sora_2, "openai", "Sora 2", 0.015),
101
+ audio(types_1.Models.openai.TTS_1, "openai", "TTS-1", { input: 15.0 }),
102
+ audio(types_1.Models.openai.Whisper_1, "openai", "Whisper 1", { input: 0.006 }),
103
+ transaction(types_1.Models.openai.GPT_4o_Mini_Search, "openai", "GPT-4o Mini Search", { input: openai_1.OpenAiTextPricing[types_1.Models.openai.GPT_4o_Mini_Search]?.input ?? 0.15, output: openai_1.OpenAiTextPricing[types_1.Models.openai.GPT_4o_Mini_Search]?.output ?? 0.6 }),
104
+ transaction(types_1.Models.openai.GPT_4o_Search, "openai", "GPT-4o Search", { input: openai_1.OpenAiTextPricing[types_1.Models.openai.GPT_4o_Search]?.input ?? 2.5, output: openai_1.OpenAiTextPricing[types_1.Models.openai.GPT_4o_Search]?.output ?? 10.0 }),
105
+ ];
106
+ exports.ANTHROPIC_MODEL_CATALOG = [
107
+ completion(types_1.Models.anthropic.Opus4_5, "anthropic", "Claude Opus 4.5"),
108
+ completion(types_1.Models.anthropic.Sonnet4_5, "anthropic", "Claude Sonnet 4.5"),
109
+ completion(types_1.Models.anthropic.Opus4, "anthropic", "Claude Opus 4"),
110
+ completion(types_1.Models.anthropic.Sonnet4, "anthropic", "Claude Sonnet 4"),
111
+ completion(types_1.Models.anthropic.Haiku4_5, "anthropic", "Claude Haiku 4.5"),
112
+ completion(types_1.Models.anthropic.Sonnet3_7, "anthropic", "Claude Sonnet 3.7"),
113
+ completion(types_1.Models.anthropic.Sonnet3_5, "anthropic", "Claude Sonnet 3.5"),
114
+ completion(types_1.Models.anthropic.Haiku3, "anthropic", "Claude Haiku 3"),
115
+ completion(types_1.Models.anthropic.Opus3, "anthropic", "Claude Opus 3"),
116
+ ];
117
+ exports.GOOGLE_MODEL_CATALOG = [
118
+ completion(types_1.Models.google.Gemini_25_Pro, "google", "Gemini 2.5 Pro"),
119
+ completion(types_1.Models.google.Gemini_25_Flash, "google", "Gemini 2.5 Flash"),
120
+ completion(types_1.Models.google.Gemini_25_Flash_Lite, "google", "Gemini 2.5 Flash Lite"),
121
+ completion(types_1.Models.google.Gemini_20_Flash, "google", "Gemini 2.0 Flash"),
122
+ completion(types_1.Models.google.Gemini_15_Pro, "google", "Gemini 1.5 Pro"),
123
+ completion(types_1.Models.google.Gemini_15_Flash, "google", "Gemini 1.5 Flash"),
124
+ completion(types_1.Models.google.Gemini_15_Flash_8B, "google", "Gemini 1.5 Flash 8B"),
125
+ embedding(types_1.EmbeddingModels.google.Gemini_Embedding, "google", "Gemini Embedding", google_1.GeminiPricing[types_1.EmbeddingModels.google.Gemini_Embedding]?.input ?? 0),
126
+ image(types_1.Models.google.Gemini_20_Flash_Preview_Image_Generation, "google", "Gemini 2.0 Flash Image", {
127
+ input: google_1.GeminiPricing[types_1.Models.google.Gemini_20_Flash_Preview_Image_Generation]?.input ?? 0.1,
128
+ output: google_1.GeminiPricing[types_1.Models.google.Gemini_20_Flash_Preview_Image_Generation]?.output ?? 0.4,
129
+ image_generation: google_1.GeminiPricing[types_1.Models.google.Gemini_20_Flash_Preview_Image_Generation]?.image_generation ?? 0.039,
130
+ }),
131
+ image(types_1.Models.google.Gemini_25_Flash_Image, "google", "Gemini 2.5 Flash Image", {
132
+ input: google_1.GeminiPricing[types_1.Models.google.Gemini_25_Flash_Image]?.input ?? 0.3,
133
+ output: google_1.GeminiPricing[types_1.Models.google.Gemini_25_Flash_Image]?.output ?? 0.039,
134
+ image_generation: google_1.GeminiPricing[types_1.Models.google.Gemini_25_Flash_Image]?.image_generation ?? 0.039,
135
+ }),
136
+ image(types_1.Models.google.Gemini_31_Flash_Image_Preview, "google", "Gemini 3.1 Flash Image", {
137
+ input: google_1.GeminiPricing[types_1.Models.google.Gemini_31_Flash_Image_Preview]?.input ?? 0.5,
138
+ output: google_1.GeminiPricing[types_1.Models.google.Gemini_31_Flash_Image_Preview]?.output ?? 3.0,
139
+ image_generation: google_1.GeminiPricing[types_1.Models.google.Gemini_31_Flash_Image_Preview]?.image_generation ?? 0.045,
140
+ }),
141
+ image(types_1.Models.google.Gemini_3_Pro_Image_Preview, "google", "Gemini 3 Pro Image", {
142
+ input: google_1.GeminiPricing[types_1.Models.google.Gemini_3_Pro_Image_Preview]?.input ?? 2.0,
143
+ output: google_1.GeminiPricing[types_1.Models.google.Gemini_3_Pro_Image_Preview]?.output ?? 12.0,
144
+ image_generation: google_1.GeminiPricing[types_1.Models.google.Gemini_3_Pro_Image_Preview]?.image_generation ?? 0.134,
145
+ }),
146
+ image(types_1.Models.google.Imagen_3, "google", "Imagen 4", { image_generation: google_1.GeminiPricing[types_1.Models.google.Imagen_3]?.image_generation ?? 0.04 }),
147
+ image(types_1.Models.google.Imagen_4_Fast, "google", "Imagen 4 Fast", { image_generation: google_1.GeminiPricing[types_1.Models.google.Imagen_4_Fast]?.image_generation ?? 0.02 }),
148
+ image(types_1.Models.google.Imagen_4_Ultra, "google", "Imagen 4 Ultra", { image_generation: google_1.GeminiPricing[types_1.Models.google.Imagen_4_Ultra]?.image_generation ?? 0.06 }),
149
+ video(types_1.Models.google.Veo_2, "google", "Veo 2", google_1.GeminiPricing[types_1.Models.google.Veo_2]?.video_generation ?? 0.35),
150
+ video(types_1.Models.google.Veo_3, "google", "Veo 3", google_1.GeminiPricing[types_1.Models.google.Veo_3]?.video_generation ?? 0.4),
151
+ video(types_1.Models.google.Veo_3_Fast, "google", "Veo 3 Fast", google_1.GeminiPricing[types_1.Models.google.Veo_3_Fast]?.video_generation ?? 0.1),
152
+ audio(types_1.Models.google.Gemini_25_Flash_TTS, "google", "Gemini 2.5 Flash TTS", {
153
+ input: google_1.GeminiPricing[types_1.Models.google.Gemini_25_Flash_TTS]?.input ?? 0.5,
154
+ output_audio: google_1.GeminiPricing[types_1.Models.google.Gemini_25_Flash_TTS]?.output_audio ?? 10.0,
155
+ output: google_1.GeminiPricing[types_1.Models.google.Gemini_25_Flash_TTS]?.output_audio ?? 10.0,
156
+ }),
157
+ audio(types_1.Models.google.Gemini_25_Pro_TTS, "google", "Gemini 2.5 Pro TTS", {
158
+ input: google_1.GeminiPricing[types_1.Models.google.Gemini_25_Pro_TTS]?.input ?? 1.0,
159
+ output_audio: google_1.GeminiPricing[types_1.Models.google.Gemini_25_Pro_TTS]?.output_audio ?? 20.0,
160
+ output: google_1.GeminiPricing[types_1.Models.google.Gemini_25_Pro_TTS]?.output_audio ?? 20.0,
161
+ }),
162
+ ];
163
+ exports.XAI_MODEL_CATALOG = [
164
+ completion(types_1.Models.xai.Grok4, "xai", "Grok 4"),
165
+ completion(types_1.Models.xai.Grok3Beta, "xai", "Grok 3 Beta"),
166
+ completion(types_1.Models.xai.Grok3MiniBeta, "xai", "Grok 3 Mini Beta"),
167
+ completion(types_1.Models.xai.Grok3FastBeta, "xai", "Grok 3 Fast Beta"),
168
+ completion(types_1.Models.xai.Grok21212, "xai", "Grok 2"),
169
+ image(types_1.Models.xai.GrokImagineImage, "xai", "Grok Imagine Image", { image_generation: xai_1.XaiImagePricing["grok-imagine-image"] ?? 0.02 }),
170
+ image("grok-2-image-1212", "xai", "Grok 2 Image", { image_generation: xai_1.XaiImagePricing["grok-2-image-1212"] ?? 0.07 }),
171
+ video(types_1.Models.xai.GrokImagineVideo, "xai", "Grok Imagine Video", xai_1.XaiVideoPricing["grok-imagine-video"] ?? 0.05),
172
+ ];
173
+ exports.ALL_MODEL_CATALOG = [
174
+ ...exports.OPENAI_MODEL_CATALOG,
175
+ ...exports.ANTHROPIC_MODEL_CATALOG,
176
+ ...exports.GOOGLE_MODEL_CATALOG,
177
+ ...exports.XAI_MODEL_CATALOG,
178
+ ];
179
+ //# sourceMappingURL=catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../../../src/clients/pricing/catalog.ts"],"names":[],"mappings":";;;AASA,uCAAsD;AACtD,qCAA6C;AAC7C,2CAAmD;AACnD,qCAAyC;AACzC,+BAAyE;AAqC5D,QAAA,oBAAoB,GAAG,GAAG,GAAG,GAAG,CAAC;AAI9C,SAAS,UAAU,CACjB,EAAU,EACV,QAAgB,EAChB,WAAmB,EACnB,eAAuC;IAEvC,MAAM,IAAI,GACP,0BAA2D,CAAC,EAAE,CAAC;QAC/D,gCAA8D,CAAC,EAAE,CAAC;QAClE,sBAAuD,CAAC,EAAE,CAAC;QAC3D,oBAAwD,CAAC,EAAE,CAAC;QAC7D,EAAE,CAAC;IACL,OAAO;QACL,EAAE;QACF,QAAQ;QACR,IAAI,EAAE,YAAY;QAClB,WAAW;QACX,aAAa,EAAE,4BAAoB;QACnC,OAAO,EAAE;YACP,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;YACT,GAAG,IAAI;YACP,GAAG,eAAe;SACnB;KACF,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAChB,EAAU,EACV,QAAgB,EAChB,WAAmB,EACnB,KAAa;IAEb,OAAO;QACL,EAAE;QACF,QAAQ;QACR,IAAI,EAAE,WAAW;QACjB,WAAW;QACX,aAAa,EAAE,4BAAoB;QACnC,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE;KAC9B,CAAC;AACJ,CAAC;AAED,SAAS,KAAK,CACZ,EAAU,EACV,QAAgB,EAChB,WAAmB,EACnB,OAA8B;IAE9B,OAAO;QACL,EAAE;QACF,QAAQ;QACR,IAAI,EAAE,OAAO;QACb,WAAW;QACX,aAAa,EAAE,4BAAoB;QACnC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE;KAC7C,CAAC;AACJ,CAAC;AAED,SAAS,KAAK,CACZ,EAAU,EACV,QAAgB,EAChB,WAAmB,EACnB,gBAAwB;IAExB,OAAO;QACL,EAAE;QACF,QAAQ;QACR,IAAI,EAAE,OAAO;QACb,WAAW;QACX,aAAa,EAAE,4BAAoB;QACnC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,gBAAgB,EAAE;KACnD,CAAC;AACJ,CAAC;AAED,SAAS,KAAK,CACZ,EAAU,EACV,QAAgB,EAChB,WAAmB,EACnB,OAA8B;IAE9B,OAAO;QACL,EAAE;QACF,QAAQ;QACR,IAAI,EAAE,OAAO;QACb,WAAW;QACX,aAAa,EAAE,4BAAoB;QACnC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE;KAC7C,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAClB,EAAU,EACV,QAAgB,EAChB,WAAmB,EACnB,OAA8B;IAE9B,OAAO;QACL,EAAE;QACF,QAAQ;QACR,IAAI,EAAE,aAAa;QACnB,WAAW;QACX,aAAa,EAAE,4BAAoB;QACnC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE;KAC7C,CAAC;AACJ,CAAC;AAIY,QAAA,oBAAoB,GAAwB;IAEvD,UAAU,CAAC,cAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC;IACpD,UAAU,CAAC,cAAM,CAAC,MAAM,CAAC,WAAW,EAAE,QAAQ,EAAE,aAAa,CAAC;IAC9D,UAAU,CAAC,cAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC;IACrD,UAAU,CAAC,cAAM,CAAC,MAAM,CAAC,WAAW,EAAE,QAAQ,EAAE,cAAc,CAAC;IAC/D,UAAU,CAAC,cAAM,CAAC,MAAM,CAAC,WAAW,EAAE,QAAQ,EAAE,cAAc,CAAC;IAC/D,UAAU,CAAC,cAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,iBAAiB,CAAC;IAC7D,UAAU,CAAC,cAAM,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC;IAC5C,UAAU,CAAC,cAAM,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC;IACtD,UAAU,CAAC,cAAM,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC;IAC5C,UAAU,CAAC,cAAM,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC;IACtD,UAAU,CAAC,cAAM,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC;IAEtD,SAAS,CAAC,uBAAe,CAAC,MAAM,CAAC,aAAa,EAAE,QAAQ,EAAE,mBAAmB,EAAE,0BAAiB,CAAC,uBAAe,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,KAAK,IAAI,GAAG,CAAC;IACrJ,SAAS,CAAC,uBAAe,CAAC,MAAM,CAAC,eAAe,EAAE,QAAQ,EAAE,mBAAmB,EAAE,0BAAiB,CAAC,uBAAe,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC;IAC1J,SAAS,CAAC,uBAAe,CAAC,MAAM,CAAC,eAAe,EAAE,QAAQ,EAAE,mBAAmB,EAAE,0BAAiB,CAAC,uBAAe,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC;IAE1J,KAAK,CAAC,cAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;IAC/E,KAAK,CAAC,cAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;IAC/E,KAAK,CAAC,cAAM,CAAC,MAAM,CAAC,YAAY,EAAE,QAAQ,EAAE,eAAe,EAAE,EAAE,KAAK,EAAE,0BAAiB,CAAC,cAAM,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,EAAE,0BAAiB,CAAC,cAAM,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,CAAC;IAC3M,KAAK,CAAC,cAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,EAAE,KAAK,EAAE,0BAAiB,CAAC,cAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,KAAK,IAAI,GAAG,EAAE,CAAC;IAE/I,KAAK,CAAC,cAAM,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC;IAClD,KAAK,CAAC,cAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC;IAEtD,KAAK,CAAC,cAAM,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAC9D,KAAK,CAAC,cAAM,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAEvE,WAAW,CAAC,cAAM,CAAC,MAAM,CAAC,kBAAkB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,KAAK,EAAE,0BAAiB,CAAC,cAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,KAAK,IAAI,IAAI,EAAE,MAAM,EAAE,0BAAiB,CAAC,cAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,MAAM,IAAI,GAAG,EAAE,CAAC;IACxO,WAAW,CAAC,cAAM,CAAC,MAAM,CAAC,aAAa,EAAE,QAAQ,EAAE,eAAe,EAAE,EAAE,KAAK,EAAE,0BAAiB,CAAC,cAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,KAAK,IAAI,GAAG,EAAE,MAAM,EAAE,0BAAiB,CAAC,cAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,MAAM,IAAI,IAAI,EAAE,CAAC;CACrN,CAAC;AAIW,QAAA,uBAAuB,GAAwB;IAC1D,UAAU,CAAC,cAAM,CAAC,SAAS,CAAC,OAAO,EAAE,WAAW,EAAE,iBAAiB,CAAC;IACpE,UAAU,CAAC,cAAM,CAAC,SAAS,CAAC,SAAS,EAAE,WAAW,EAAE,mBAAmB,CAAC;IACxE,UAAU,CAAC,cAAM,CAAC,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,eAAe,CAAC;IAChE,UAAU,CAAC,cAAM,CAAC,SAAS,CAAC,OAAO,EAAE,WAAW,EAAE,iBAAiB,CAAC;IACpE,UAAU,CAAC,cAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,WAAW,EAAE,kBAAkB,CAAC;IACtE,UAAU,CAAC,cAAM,CAAC,SAAS,CAAC,SAAS,EAAE,WAAW,EAAE,mBAAmB,CAAC;IACxE,UAAU,CAAC,cAAM,CAAC,SAAS,CAAC,SAAS,EAAE,WAAW,EAAE,mBAAmB,CAAC;IACxE,UAAU,CAAC,cAAM,CAAC,SAAS,CAAC,MAAM,EAAE,WAAW,EAAE,gBAAgB,CAAC;IAClE,UAAU,CAAC,cAAM,CAAC,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,eAAe,CAAC;CACjE,CAAC;AAIW,QAAA,oBAAoB,GAAwB;IAEvD,UAAU,CAAC,cAAM,CAAC,MAAM,CAAC,aAAa,EAAE,QAAQ,EAAE,gBAAgB,CAAC;IACnE,UAAU,CAAC,cAAM,CAAC,MAAM,CAAC,eAAe,EAAE,QAAQ,EAAE,kBAAkB,CAAC;IACvE,UAAU,CAAC,cAAM,CAAC,MAAM,CAAC,oBAAoB,EAAE,QAAQ,EAAE,uBAAuB,CAAC;IACjF,UAAU,CAAC,cAAM,CAAC,MAAM,CAAC,eAAe,EAAE,QAAQ,EAAE,kBAAkB,CAAC;IACvE,UAAU,CAAC,cAAM,CAAC,MAAM,CAAC,aAAa,EAAE,QAAQ,EAAE,gBAAgB,CAAC;IACnE,UAAU,CAAC,cAAM,CAAC,MAAM,CAAC,eAAe,EAAE,QAAQ,EAAE,kBAAkB,CAAC;IACvE,UAAU,CAAC,cAAM,CAAC,MAAM,CAAC,kBAAkB,EAAE,QAAQ,EAAE,qBAAqB,CAAC;IAE7E,SAAS,CAAC,uBAAe,CAAC,MAAM,CAAC,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,sBAAa,CAAC,uBAAe,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;IAEpJ,KAAK,CAAC,cAAM,CAAC,MAAM,CAAC,wCAAwC,EAAE,QAAQ,EAAE,wBAAwB,EAAE;QAChG,KAAK,EAAE,sBAAa,CAAC,cAAM,CAAC,MAAM,CAAC,wCAAwC,CAAC,EAAE,KAAK,IAAI,GAAG;QAC1F,MAAM,EAAE,sBAAa,CAAC,cAAM,CAAC,MAAM,CAAC,wCAAwC,CAAC,EAAE,MAAM,IAAI,GAAG;QAC5F,gBAAgB,EAAE,sBAAa,CAAC,cAAM,CAAC,MAAM,CAAC,wCAAwC,CAAC,EAAE,gBAAgB,IAAI,KAAK;KACnH,CAAC;IACF,KAAK,CAAC,cAAM,CAAC,MAAM,CAAC,qBAAqB,EAAE,QAAQ,EAAE,wBAAwB,EAAE;QAC7E,KAAK,EAAE,sBAAa,CAAC,cAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,EAAE,KAAK,IAAI,GAAG;QACvE,MAAM,EAAE,sBAAa,CAAC,cAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,EAAE,MAAM,IAAI,KAAK;QAC3E,gBAAgB,EAAE,sBAAa,CAAC,cAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,EAAE,gBAAgB,IAAI,KAAK;KAChG,CAAC;IACF,KAAK,CAAC,cAAM,CAAC,MAAM,CAAC,6BAA6B,EAAE,QAAQ,EAAE,wBAAwB,EAAE;QACrF,KAAK,EAAE,sBAAa,CAAC,cAAM,CAAC,MAAM,CAAC,6BAA6B,CAAC,EAAE,KAAK,IAAI,GAAG;QAC/E,MAAM,EAAE,sBAAa,CAAC,cAAM,CAAC,MAAM,CAAC,6BAA6B,CAAC,EAAE,MAAM,IAAI,GAAG;QACjF,gBAAgB,EAAE,sBAAa,CAAC,cAAM,CAAC,MAAM,CAAC,6BAA6B,CAAC,EAAE,gBAAgB,IAAI,KAAK;KACxG,CAAC;IACF,KAAK,CAAC,cAAM,CAAC,MAAM,CAAC,0BAA0B,EAAE,QAAQ,EAAE,oBAAoB,EAAE;QAC9E,KAAK,EAAE,sBAAa,CAAC,cAAM,CAAC,MAAM,CAAC,0BAA0B,CAAC,EAAE,KAAK,IAAI,GAAG;QAC5E,MAAM,EAAE,sBAAa,CAAC,cAAM,CAAC,MAAM,CAAC,0BAA0B,CAAC,EAAE,MAAM,IAAI,IAAI;QAC/E,gBAAgB,EAAE,sBAAa,CAAC,cAAM,CAAC,MAAM,CAAC,0BAA0B,CAAC,EAAE,gBAAgB,IAAI,KAAK;KACrG,CAAC;IACF,KAAK,CAAC,cAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,gBAAgB,EAAE,sBAAa,CAAC,cAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,gBAAgB,IAAI,IAAI,EAAE,CAAC;IAC1I,KAAK,CAAC,cAAM,CAAC,MAAM,CAAC,aAAa,EAAE,QAAQ,EAAE,eAAe,EAAE,EAAE,gBAAgB,EAAE,sBAAa,CAAC,cAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,gBAAgB,IAAI,IAAI,EAAE,CAAC;IACzJ,KAAK,CAAC,cAAM,CAAC,MAAM,CAAC,cAAc,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,gBAAgB,EAAE,sBAAa,CAAC,cAAM,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,gBAAgB,IAAI,IAAI,EAAE,CAAC;IAE5J,KAAK,CAAC,cAAM,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,sBAAa,CAAC,cAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,gBAAgB,IAAI,IAAI,CAAC;IAC3G,KAAK,CAAC,cAAM,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,sBAAa,CAAC,cAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,gBAAgB,IAAI,GAAG,CAAC;IAC1G,KAAK,CAAC,cAAM,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,sBAAa,CAAC,cAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,gBAAgB,IAAI,GAAG,CAAC;IAEzH,KAAK,CAAC,cAAM,CAAC,MAAM,CAAC,mBAAmB,EAAE,QAAQ,EAAE,sBAAsB,EAAE;QACzE,KAAK,EAAE,sBAAa,CAAC,cAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,KAAK,IAAI,GAAG;QACrE,YAAY,EAAE,sBAAa,CAAC,cAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,YAAY,IAAI,IAAI;QACpF,MAAM,EAAE,sBAAa,CAAC,cAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,YAAY,IAAI,IAAI;KAC/E,CAAC;IACF,KAAK,CAAC,cAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,QAAQ,EAAE,oBAAoB,EAAE;QACrE,KAAK,EAAE,sBAAa,CAAC,cAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,KAAK,IAAI,GAAG;QACnE,YAAY,EAAE,sBAAa,CAAC,cAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,YAAY,IAAI,IAAI;QAClF,MAAM,EAAE,sBAAa,CAAC,cAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE,YAAY,IAAI,IAAI;KAC7E,CAAC;CACH,CAAC;AAIW,QAAA,iBAAiB,GAAwB;IACpD,UAAU,CAAC,cAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC;IAC7C,UAAU,CAAC,cAAM,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,aAAa,CAAC;IACtD,UAAU,CAAC,cAAM,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,EAAE,kBAAkB,CAAC;IAC/D,UAAU,CAAC,cAAM,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,EAAE,kBAAkB,CAAC;IAC/D,UAAU,CAAC,cAAM,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC;IAEjD,KAAK,CAAC,cAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAAE,gBAAgB,EAAE,qBAAe,CAAC,oBAAoB,CAAC,IAAI,IAAI,EAAE,CAAC;IACpI,KAAK,CAAC,mBAAmB,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,gBAAgB,EAAE,qBAAe,CAAC,mBAAmB,CAAC,IAAI,IAAI,EAAE,CAAC;IAErH,KAAK,CAAC,cAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,EAAE,oBAAoB,EAAE,qBAAe,CAAC,oBAAoB,CAAC,IAAI,IAAI,CAAC;CAC/G,CAAC;AAIW,QAAA,iBAAiB,GAAwB;IACpD,GAAG,4BAAoB;IACvB,GAAG,+BAAuB;IAC1B,GAAG,4BAAoB;IACvB,GAAG,yBAAiB;CACrB,CAAC"}
@@ -2,3 +2,5 @@ export { OpenAiTextPricing } from "./openai";
2
2
  export { GeminiTextPricing } from "./google";
3
3
  export { AnthropicTextPricing } from "./anthropic";
4
4
  export { XaiTextPricing, XaiImagePricing, XaiVideoPricing } from "./xai";
5
+ export { ALL_MODEL_CATALOG, OPENAI_MODEL_CATALOG, ANTHROPIC_MODEL_CATALOG, GOOGLE_MODEL_CATALOG, XAI_MODEL_CATALOG, USAGE_MARKUP_PERCENT } from "./catalog";
6
+ export type { ModelCatalogEntry, ModelType, ModelPricing as CatalogModelPricing } from "./catalog";
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.XaiVideoPricing = exports.XaiImagePricing = exports.XaiTextPricing = exports.AnthropicTextPricing = exports.GeminiTextPricing = exports.OpenAiTextPricing = void 0;
3
+ exports.USAGE_MARKUP_PERCENT = exports.XAI_MODEL_CATALOG = exports.GOOGLE_MODEL_CATALOG = exports.ANTHROPIC_MODEL_CATALOG = exports.OPENAI_MODEL_CATALOG = exports.ALL_MODEL_CATALOG = exports.XaiVideoPricing = exports.XaiImagePricing = exports.XaiTextPricing = exports.AnthropicTextPricing = exports.GeminiTextPricing = exports.OpenAiTextPricing = void 0;
4
4
  var openai_1 = require("./openai");
5
5
  Object.defineProperty(exports, "OpenAiTextPricing", { enumerable: true, get: function () { return openai_1.OpenAiTextPricing; } });
6
6
  var google_1 = require("./google");
@@ -11,4 +11,11 @@ var xai_1 = require("./xai");
11
11
  Object.defineProperty(exports, "XaiTextPricing", { enumerable: true, get: function () { return xai_1.XaiTextPricing; } });
12
12
  Object.defineProperty(exports, "XaiImagePricing", { enumerable: true, get: function () { return xai_1.XaiImagePricing; } });
13
13
  Object.defineProperty(exports, "XaiVideoPricing", { enumerable: true, get: function () { return xai_1.XaiVideoPricing; } });
14
+ var catalog_1 = require("./catalog");
15
+ Object.defineProperty(exports, "ALL_MODEL_CATALOG", { enumerable: true, get: function () { return catalog_1.ALL_MODEL_CATALOG; } });
16
+ Object.defineProperty(exports, "OPENAI_MODEL_CATALOG", { enumerable: true, get: function () { return catalog_1.OPENAI_MODEL_CATALOG; } });
17
+ Object.defineProperty(exports, "ANTHROPIC_MODEL_CATALOG", { enumerable: true, get: function () { return catalog_1.ANTHROPIC_MODEL_CATALOG; } });
18
+ Object.defineProperty(exports, "GOOGLE_MODEL_CATALOG", { enumerable: true, get: function () { return catalog_1.GOOGLE_MODEL_CATALOG; } });
19
+ Object.defineProperty(exports, "XAI_MODEL_CATALOG", { enumerable: true, get: function () { return catalog_1.XAI_MODEL_CATALOG; } });
20
+ Object.defineProperty(exports, "USAGE_MARKUP_PERCENT", { enumerable: true, get: function () { return catalog_1.USAGE_MARKUP_PERCENT; } });
14
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/clients/pricing/index.ts"],"names":[],"mappings":";;;AAAA,mCAA6C;AAApC,2GAAA,iBAAiB,OAAA;AAC1B,mCAA6C;AAApC,2GAAA,iBAAiB,OAAA;AAC1B,yCAAmD;AAA1C,iHAAA,oBAAoB,OAAA;AAC7B,6BAAyE;AAAhE,qGAAA,cAAc,OAAA;AAAE,sGAAA,eAAe,OAAA;AAAE,sGAAA,eAAe,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/clients/pricing/index.ts"],"names":[],"mappings":";;;AAAA,mCAA6C;AAApC,2GAAA,iBAAiB,OAAA;AAC1B,mCAA6C;AAApC,2GAAA,iBAAiB,OAAA;AAC1B,yCAAmD;AAA1C,iHAAA,oBAAoB,OAAA;AAC7B,6BAAyE;AAAhE,qGAAA,cAAc,OAAA;AAAE,sGAAA,eAAe,OAAA;AAAE,sGAAA,eAAe,OAAA;AACzD,qCAA4J;AAAnJ,4GAAA,iBAAiB,OAAA;AAAE,+GAAA,oBAAoB,OAAA;AAAE,kHAAA,uBAAuB,OAAA;AAAE,+GAAA,oBAAoB,OAAA;AAAE,4GAAA,iBAAiB,OAAA;AAAE,+GAAA,oBAAoB,OAAA"}
@@ -128,9 +128,15 @@ async function downloadFile(client, s3Service, remotePath, localPath, dryRun) {
128
128
  return;
129
129
  }
130
130
  try {
131
+ const hashes = await (0, hashes_1.getHashes)();
132
+ if (await (0, hashes_1.isLocalFileMatchingDownloadHash)(localPath, hashes)) {
133
+ console.log(` ✓ Skipping ${localPath} (matches stored download hash)`);
134
+ return;
135
+ }
131
136
  const { downloadUrl, checksumSHA256 } = await client.getOrgFilePresignedDownloadUrl(remotePath);
132
137
  if ((0, hashes_1.isLocalFileMatchingRemote)(localPath, checksumSHA256)) {
133
138
  console.log(` ✓ Skipping ${localPath} (matches remote checksum)`);
139
+ await (0, hashes_1.saveDownloadHash)(localPath);
134
140
  return;
135
141
  }
136
142
  const dir = path.dirname(localPath);
@@ -138,6 +144,7 @@ async function downloadFile(client, s3Service, remotePath, localPath, dryRun) {
138
144
  fs.mkdirSync(dir, { recursive: true });
139
145
  }
140
146
  await s3Service.downloadFromPresignedUrl(downloadUrl, localPath);
147
+ await (0, hashes_1.saveDownloadHash)(localPath);
141
148
  const stats = fs.statSync(localPath);
142
149
  console.log(` ✓ Downloaded ${stats.size} bytes`);
143
150
  }
@@ -201,7 +208,7 @@ async function downloadDirectory(client, s3Service, remotePath, localPath, dryRu
201
208
  const fullPath = f.folderPath.endsWith("/")
202
209
  ? f.folderPath + f.fileName
203
210
  : f.folderPath + "/" + f.fileName;
204
- return fullPath.startsWith(remoteDir);
211
+ return f.fileName !== "" && fullPath.startsWith(remoteDir);
205
212
  });
206
213
  if (matchingFiles.length === 0) {
207
214
  console.log(` ⚠️ No remote files found under ${remoteDir}`);
@@ -1 +1 @@
1
- {"version":3,"file":"fileSync.js","sourceRoot":"","sources":["../../src/fileSync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fileSync.js","sourceRoot":"","sources":["../../src/fileSync.ts"],"names":[],"mappings":"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"}
@@ -6,5 +6,7 @@ export declare function checkNoFilesChanged(files: string[], promptHash: string,
6
6
  export declare function saveAllFileHashes(files: string[], promptHash: string): Promise<void>;
7
7
  export declare function hasFileChangedSinceUpload(localPath: string, hashes: any): Promise<boolean>;
8
8
  export declare function saveUploadHash(localPath: string): Promise<void>;
9
+ export declare function isLocalFileMatchingDownloadHash(localPath: string, hashes: any): Promise<boolean>;
10
+ export declare function saveDownloadHash(localPath: string): Promise<void>;
9
11
  export declare function computeSHA256Base64(filePath: string): string;
10
12
  export declare function isLocalFileMatchingRemote(localPath: string, remoteChecksumSHA256: string | null): boolean;
@@ -43,6 +43,8 @@ exports.checkNoFilesChanged = checkNoFilesChanged;
43
43
  exports.saveAllFileHashes = saveAllFileHashes;
44
44
  exports.hasFileChangedSinceUpload = hasFileChangedSinceUpload;
45
45
  exports.saveUploadHash = saveUploadHash;
46
+ exports.isLocalFileMatchingDownloadHash = isLocalFileMatchingDownloadHash;
47
+ exports.saveDownloadHash = saveDownloadHash;
46
48
  exports.computeSHA256Base64 = computeSHA256Base64;
47
49
  exports.isLocalFileMatchingRemote = isLocalFileMatchingRemote;
48
50
  const fs_1 = __importDefault(require("fs"));
@@ -96,6 +98,7 @@ async function saveAllFileHashes(files, promptHash) {
96
98
  await saveHashes(hashes);
97
99
  }
98
100
  const UPLOAD_KEY = "upload";
101
+ const DOWNLOAD_KEY = "download";
99
102
  async function hasFileChangedSinceUpload(localPath, hashes) {
100
103
  if (!fs_1.default.existsSync(localPath))
101
104
  return true;
@@ -113,6 +116,26 @@ async function saveUploadHash(localPath) {
113
116
  hashes[localPath][UPLOAD_KEY] = currentHash;
114
117
  await saveHashes(hashes);
115
118
  }
119
+ async function isLocalFileMatchingDownloadHash(localPath, hashes) {
120
+ if (!fs_1.default.existsSync(localPath))
121
+ return false;
122
+ const storedHash = hashes[localPath]?.[DOWNLOAD_KEY];
123
+ if (!storedHash)
124
+ return false;
125
+ const content = fs_1.default.readFileSync(localPath);
126
+ const currentHash = crypto.createHash("sha256").update(content).digest("base64");
127
+ return storedHash === currentHash;
128
+ }
129
+ async function saveDownloadHash(localPath) {
130
+ const hashes = await getHashes();
131
+ const content = fs_1.default.readFileSync(localPath);
132
+ const currentHash = crypto.createHash("sha256").update(content).digest("base64");
133
+ if (!hashes[localPath]) {
134
+ hashes[localPath] = { fileHash: currentHash, promptHash: "" };
135
+ }
136
+ hashes[localPath][DOWNLOAD_KEY] = currentHash;
137
+ await saveHashes(hashes);
138
+ }
116
139
  function computeSHA256Base64(filePath) {
117
140
  const content = fs_1.default.readFileSync(filePath);
118
141
  return crypto.createHash("sha256").update(content).digest("base64");
@@ -1 +1 @@
1
- {"version":3,"file":"hashes.js","sourceRoot":"","sources":["../../src/hashes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hashes.js","sourceRoot":"","sources":["../../src/hashes.ts"],"names":[],"mappings":"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"}
@@ -5,13 +5,15 @@ export interface FsSyncOptions {
5
5
  agentName?: string;
6
6
  }
7
7
  export declare class AgentSyncFs {
8
+ private static sharedCleanupInterval;
9
+ private static sharedBasePath;
10
+ private static cleanupStarted;
8
11
  private taskId;
9
12
  private basePath;
10
13
  private taskPath;
11
14
  private eventHandlersSetup;
12
15
  private watcher;
13
16
  private lastInputContent;
14
- private cleanupInterval;
15
17
  private finalizationPromise;
16
18
  private agent;
17
19
  private threadUpdateHandler;
@@ -32,8 +34,8 @@ export declare class AgentSyncFs {
32
34
  private setupEventHandlers;
33
35
  waitForFinalization(): Promise<void>;
34
36
  cleanup(): Promise<void>;
35
- private cleanupOldTasks;
36
- private startCleanupProcess;
37
+ private static cleanupOldTasks;
38
+ private static startSharedCleanupProcess;
37
39
  stopCleanup(): void;
38
40
  reset(): void;
39
41
  }
@@ -38,20 +38,22 @@ const fs_1 = require("fs");
38
38
  const path = __importStar(require("path"));
39
39
  const fs_2 = require("fs");
40
40
  class AgentSyncFs {
41
+ static sharedCleanupInterval = null;
42
+ static sharedBasePath = ".knowhow/processes/agents";
43
+ static cleanupStarted = false;
41
44
  taskId;
42
45
  basePath = ".knowhow/processes/agents";
43
46
  taskPath;
44
47
  eventHandlersSetup = false;
45
48
  watcher = null;
46
49
  lastInputContent = "";
47
- cleanupInterval = null;
48
50
  finalizationPromise = null;
49
51
  agent;
50
52
  threadUpdateHandler;
51
53
  doneHandler;
52
54
  pendingThreadUpdatePromise = null;
53
55
  constructor() {
54
- this.startCleanupProcess();
56
+ AgentSyncFs.startSharedCleanupProcess();
55
57
  }
56
58
  async createTask(options) {
57
59
  this.taskId = options.taskId;
@@ -295,9 +297,9 @@ class AgentSyncFs {
295
297
  this.watcher = null;
296
298
  }
297
299
  }
298
- async cleanupOldTasks() {
300
+ static async cleanupOldTasks() {
299
301
  try {
300
- const agentsPath = this.basePath;
302
+ const agentsPath = AgentSyncFs.sharedBasePath;
301
303
  try {
302
304
  await fs_1.promises.access(agentsPath);
303
305
  }
@@ -328,16 +330,20 @@ class AgentSyncFs {
328
330
  console.error(`❌ Error during cleanup:`, error);
329
331
  }
330
332
  }
331
- startCleanupProcess() {
332
- this.cleanupInterval = setInterval(() => {
333
- this.cleanupOldTasks();
333
+ static startSharedCleanupProcess() {
334
+ if (AgentSyncFs.cleanupStarted)
335
+ return;
336
+ AgentSyncFs.cleanupStarted = true;
337
+ AgentSyncFs.sharedCleanupInterval = setInterval(() => {
338
+ AgentSyncFs.cleanupOldTasks();
334
339
  }, 60 * 60 * 1000);
335
- this.cleanupOldTasks();
340
+ AgentSyncFs.cleanupOldTasks();
336
341
  }
337
342
  stopCleanup() {
338
- if (this.cleanupInterval) {
339
- clearInterval(this.cleanupInterval);
340
- this.cleanupInterval = null;
343
+ if (AgentSyncFs.sharedCleanupInterval) {
344
+ clearInterval(AgentSyncFs.sharedCleanupInterval);
345
+ AgentSyncFs.sharedCleanupInterval = null;
346
+ AgentSyncFs.cleanupStarted = false;
341
347
  }
342
348
  }
343
349
  reset() {
@@ -1 +1 @@
1
- {"version":3,"file":"AgentSyncFs.js","sourceRoot":"","sources":["../../../src/services/AgentSyncFs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AgentSyncFs.js","sourceRoot":"","sources":["../../../src/services/AgentSyncFs.ts"],"names":[],"mappings":"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"}