citekit 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
package/dist/cli.js ADDED
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env node
2
+ import { Command } from 'commander';
3
+ const program = new Command();
4
+ program
5
+ .name('citekit')
6
+ .description('CiteKit CLI for managing local resources')
7
+ .version('0.1.0');
8
+ program.command('serve')
9
+ .description('Start the MCP server')
10
+ .action(async () => {
11
+ const { runMcpServer } = await import('./mcp-server.js');
12
+ await runMcpServer();
13
+ });
14
+ program.parse(process.argv);
15
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACF,IAAI,CAAC,SAAS,CAAC;KACf,WAAW,CAAC,0CAA0C,CAAC;KACvD,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtB,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;KACnB,WAAW,CAAC,sBAAsB,CAAC;KACnC,MAAM,CAAC,KAAK,IAAI,EAAE;IACf,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;IACzD,MAAM,YAAY,EAAE,CAAC;AACzB,CAAC,CAAC,CAAC;AAEP,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
package/dist/client.d.ts CHANGED
@@ -35,10 +35,20 @@ export declare class CiteKitClient {
35
35
  getStructure(resourceId: string): ResourceMap;
36
36
  /**
37
37
  * Ingest a resource using the configured mapper.
38
+ *
39
+ * Features:
40
+ * - SHA-256 Hashing & Caching
41
+ * - Concurrency Control
38
42
  */
39
43
  ingest(resourcePath: string, resourceType: string, options?: {
40
44
  resourceId?: string;
41
45
  }): Promise<ResourceMap>;
46
+ private calculateFileHash;
47
+ private findMapByHash;
48
+ private activeRequests;
49
+ private maxConcurrency;
50
+ private queue;
51
+ private withConcurrencyLock;
42
52
  /**
43
53
  * Resolve a node to evidence using the appropriate resolver.
44
54
  */
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAQ,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAcvE,MAAM,WAAW,oBAAoB;IACjC,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sEAAsE;IACtE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8DAA8D;IAC9D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,aAAa;IACtB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,SAAS,CAA2B;gBAEhC,OAAO,GAAE,oBAAyB;IA4C9C;;OAEG;IACH,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW;IAUvC;;OAEG;IACH,QAAQ,IAAI,MAAM,EAAE;IAOpB;;OAEG;IACH,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW;IAM7C;;OAEG;IACG,MAAM,CACR,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAClC,OAAO,CAAC,WAAW,CAAC;IAgBvB;;OAEG;IACG,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;CA6B/E"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAQ,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAcvE,MAAM,WAAW,oBAAoB;IACjC,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sEAAsE;IACtE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8DAA8D;IAC9D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,aAAa;IACtB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,SAAS,CAA2B;gBAEhC,OAAO,GAAE,oBAAyB;IA4C9C;;OAEG;IACH,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW;IAUvC;;OAEG;IACH,QAAQ,IAAI,MAAM,EAAE;IAOpB;;OAEG;IACH,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW;IAM7C;;;;;;OAMG;IACG,MAAM,CACR,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAClC,OAAO,CAAC,WAAW,CAAC;IA8CvB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,aAAa;IAgBrB,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,KAAK,CAAyB;YAExB,mBAAmB;IAmBjC;;OAEG;IACG,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;CA6B/E"}
package/dist/client.js CHANGED
@@ -5,7 +5,8 @@
5
5
  * resolver backend for resolution (since resolvers are Python-based).
6
6
  */
7
7
  import { readFileSync, writeFileSync, readdirSync, existsSync, mkdirSync } from "node:fs";
8
- import { join } from "node:path";
8
+ import { join, basename, extname } from "node:path";
9
+ import { createHash } from "node:crypto";
9
10
  // ── Imported Mappers & Resolvers ────────────────────────────────────────
10
11
  import { GeminiMapper } from "./mapper/gemini.js";
11
12
  import { DocumentResolver } from "./resolvers/document.js";
@@ -86,14 +87,84 @@ export class CiteKitClient {
86
87
  // ── Ingestion ───────────────────────────────────────────────────────────
87
88
  /**
88
89
  * Ingest a resource using the configured mapper.
90
+ *
91
+ * Features:
92
+ * - SHA-256 Hashing & Caching
93
+ * - Concurrency Control
89
94
  */
90
95
  async ingest(resourcePath, resourceType, options) {
91
- const map = await this.mapper.generateMap(resourcePath, resourceType, options?.resourceId);
96
+ if (!existsSync(resourcePath)) {
97
+ throw new Error(`File not found: ${resourcePath}`);
98
+ }
99
+ // 1. Hashing & Caching
100
+ const fileHash = this.calculateFileHash(resourcePath);
101
+ const cachedMap = this.findMapByHash(fileHash);
102
+ if (cachedMap) {
103
+ // Check if user requested specific ID?
104
+ // For now, return cached.
105
+ return cachedMap;
106
+ }
107
+ const id = options?.resourceId || basename(resourcePath, extname(resourcePath));
108
+ // 2. Queueing
109
+ // Since we don't have p-limit, we use a simple internal semaphore if needed,
110
+ // or just rely on the fact that Node is single-threaded async.
111
+ // But to respect "queue" claim, let's use a basic lock/queue if the user calls ingest in parallel.
112
+ // Actually, for this MVP, true semaphore in a library requires a class property.
113
+ // Let's implement a simple acquire/release wrapper.
114
+ const map = await this.withConcurrencyLock(async () => {
115
+ return await this.mapper.generateMap(resourcePath, resourceType, id);
116
+ });
117
+ // Add metadata
118
+ if (!map.metadata)
119
+ map.metadata = {};
120
+ map.metadata["source_hash"] = fileHash;
92
121
  // Save map
93
122
  const mapPath = join(this.storageDir, `${map.resource_id}.json`);
94
123
  writeFileSync(mapPath, JSON.stringify(map, null, 2));
95
124
  return map;
96
125
  }
126
+ // ── Utilities ───────────────────────────────────────────────────────────
127
+ calculateFileHash(path) {
128
+ const fileBuffer = readFileSync(path);
129
+ const hashSum = createHash("sha256");
130
+ hashSum.update(fileBuffer);
131
+ return hashSum.digest("hex");
132
+ }
133
+ findMapByHash(hash) {
134
+ const maps = this.listMaps();
135
+ for (const id of maps) {
136
+ try {
137
+ const map = this.getMap(id);
138
+ if (map.metadata && map.metadata["source_hash"] === hash) {
139
+ return map;
140
+ }
141
+ }
142
+ catch (e) {
143
+ continue;
144
+ }
145
+ }
146
+ return undefined;
147
+ }
148
+ // Simple semaphore state
149
+ activeRequests = 0;
150
+ maxConcurrency = 5;
151
+ queue = [];
152
+ async withConcurrencyLock(fn) {
153
+ if (this.activeRequests >= this.maxConcurrency) {
154
+ await new Promise(resolve => this.queue.push(resolve));
155
+ }
156
+ this.activeRequests++;
157
+ try {
158
+ return await fn();
159
+ }
160
+ finally {
161
+ this.activeRequests--;
162
+ if (this.queue.length > 0) {
163
+ const next = this.queue.shift();
164
+ next?.();
165
+ }
166
+ }
167
+ }
97
168
  // ── Resolution ──────────────────────────────────────────────────────────
98
169
  /**
99
170
  * Resolve a node to evidence using the appropriate resolver.
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ export declare class GeminiMapper implements MapperProvider {
7
7
  generateMap(resourcePath: string, resourceType: string, resourceId?: string): Promise<ResourceMap>;
8
8
  private mapDocument;
9
9
  private mapVideo;
10
+ private callGeminiWithFile;
10
11
  private callGemini;
11
12
  private parseNodesResponse;
12
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/mapper/gemini.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,cAAc,CAAC;AAkDhE,qBAAa,YAAa,YAAW,cAAc;IAC/C,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,KAAK,CAAM;gBAEP,MAAM,EAAE,MAAM,EAAE,SAAS,GAAE,MAA2B;IAK5D,WAAW,CACb,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,UAAU,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,WAAW,CAAC;YA2BT,WAAW;YA2BX,QAAQ;YAkBR,UAAU;IAOxB,OAAO,CAAC,kBAAkB;CA+C7B"}
1
+ {"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/mapper/gemini.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,cAAc,CAAC;AAkDhE,qBAAa,YAAa,YAAW,cAAc;IAC/C,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,KAAK,CAAM;gBAEP,MAAM,EAAE,MAAM,EAAE,SAAS,GAAE,MAA2B;IAK5D,WAAW,CACb,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,UAAU,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,WAAW,CAAC;YA2BT,WAAW;YA2BX,QAAQ;YAoBR,kBAAkB;YAuDlB,UAAU;IAOxB,OAAO,CAAC,kBAAkB;CA+C7B"}
@@ -1,4 +1,5 @@
1
1
  import { GoogleGenerativeAI } from "@google/generative-ai";
2
+ import { GoogleAIFileManager } from "@google/generative-ai/server";
2
3
  import { readFileSync, existsSync } from "node:fs";
3
4
  import { basename, extname } from "node:path";
4
5
  import { createRequire } from "node:module";
@@ -104,19 +105,71 @@ export class GeminiMapper {
104
105
  return this.callGemini(prompt);
105
106
  }
106
107
  async mapVideo(path) {
107
- // We need duration. We can use fluent-ffmpeg to probe.
108
+ // We need duration for the prompt, though we could also just upload it.
109
+ // Let's get duration to be safe and consistent with prompt structure.
108
110
  const { ffprobe } = await import("fluent-ffmpeg");
109
111
  const duration = await new Promise((resolve, reject) => {
110
112
  ffprobe(path, (err, metadata) => {
113
+ // If ffprobe fails, we might still proceed with upload, but let's try to get it.
111
114
  if (err)
112
- return reject(err);
113
- resolve(metadata.format.duration || 0);
115
+ resolve(0);
116
+ else
117
+ resolve(metadata.format.duration || 0);
114
118
  });
115
119
  });
116
120
  const prompt = VIDEO_PROMPT
117
121
  .replace("{duration}", duration.toString())
118
122
  .replace("{filename}", basename(path));
119
- return this.callGemini(prompt);
123
+ return this.callGeminiWithFile(path, prompt, "video/mp4");
124
+ }
125
+ async callGeminiWithFile(path, prompt, mimeType) {
126
+ const fileManager = new GoogleAIFileManager(this.genAI.apiKey);
127
+ console.log(`DEBUG: Uploading ${basename(path)} to Gemini File API...`);
128
+ let uploadResult;
129
+ try {
130
+ uploadResult = await fileManager.uploadFile(path, {
131
+ mimeType: mimeType,
132
+ displayName: basename(path),
133
+ });
134
+ console.log(`DEBUG: Uploaded as ${uploadResult.file.name}`);
135
+ // Wait for processing if video
136
+ if (mimeType.startsWith("video")) {
137
+ let file = await fileManager.getFile(uploadResult.file.name);
138
+ while (file.state === "PROCESSING") {
139
+ console.log("DEBUG: Waiting for video processing...");
140
+ await new Promise(r => setTimeout(r, 2000));
141
+ file = await fileManager.getFile(uploadResult.file.name);
142
+ }
143
+ if (file.state === "FAILED") {
144
+ throw new Error("Video processing failed.");
145
+ }
146
+ }
147
+ // Generate content
148
+ const result = await this.model.generateContent([
149
+ prompt,
150
+ {
151
+ fileData: {
152
+ fileUri: uploadResult.file.uri,
153
+ mimeType: uploadResult.file.mimeType,
154
+ },
155
+ },
156
+ ]);
157
+ const response = await result.response;
158
+ const text = response.text();
159
+ return this.parseNodesResponse(text);
160
+ }
161
+ finally {
162
+ // Cleanup
163
+ if (uploadResult && uploadResult.file) {
164
+ console.log(`DEBUG: Deleting remote file ${uploadResult.file.name}`);
165
+ try {
166
+ await fileManager.deleteFile(uploadResult.file.name);
167
+ }
168
+ catch (e) {
169
+ console.warn(`WARNING: Failed to delete remote file: ${e}`);
170
+ }
171
+ }
172
+ }
120
173
  }
121
174
  async callGemini(prompt) {
122
175
  const result = await this.model.generateContent(prompt);
@@ -1 +1 @@
1
- {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/mapper/gemini.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/mapper/gemini.ts"],"names":[],"mappings":"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"}
@@ -7,5 +7,5 @@
7
7
  * Run with:
8
8
  * npx tsx src/mcp-server.ts
9
9
  */
10
- export {};
10
+ export declare function runMcpServer(): Promise<void>;
11
11
  //# sourceMappingURL=mcp-server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
1
+ {"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAmIH,wBAAsB,YAAY,kBAIjC"}
@@ -115,10 +115,13 @@ function createServer(storageDir, outputDir) {
115
115
  return server;
116
116
  }
117
117
  // ── Main ────────────────────────────────────────────────────────────────────
118
- async function main() {
118
+ export async function runMcpServer() {
119
119
  const server = createServer();
120
120
  const transport = new StdioServerTransport();
121
121
  await server.connect(transport);
122
122
  }
123
- main().catch(console.error);
123
+ // Only run if called directly
124
+ if (import.meta.url === `file://${process.argv[1]}`) {
125
+ runMcpServer().catch(console.error);
126
+ }
124
127
  //# sourceMappingURL=mcp-server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
package/dist/models.d.ts CHANGED
@@ -28,6 +28,8 @@ export interface Node {
28
28
  location: Location;
29
29
  /** 1-2 sentence summary. */
30
30
  summary?: string;
31
+ /** Nested nodes. */
32
+ children?: Node[];
31
33
  }
32
34
  /** Structured map of a resource — the first output of ingestion. */
33
35
  export interface ResourceMap {
@@ -35,6 +37,7 @@ export interface ResourceMap {
35
37
  type: "document" | "video" | "audio" | "image";
36
38
  title: string;
37
39
  source_path: string;
40
+ metadata?: Record<string, string | number | null>;
38
41
  nodes: Node[];
39
42
  created_at: string;
40
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,2CAA2C;AAC3C,MAAM,WAAW,QAAQ;IACrB,QAAQ,EAAE,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;IAEnD,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAEjB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,wCAAwC;IACxC,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,iEAAiE;IACjE,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3C;AAED,8CAA8C;AAC9C,MAAM,WAAW,IAAI;IACjB,+DAA+D;IAC/D,EAAE,EAAE,MAAM,CAAC;IAEX,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,iEAAiE;IACjE,IAAI,EAAE,MAAM,CAAC;IAEb,6CAA6C;IAC7C,QAAQ,EAAE,QAAQ,CAAC;IAEnB,4BAA4B;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,oEAAoE;AACpE,MAAM,WAAW,WAAW;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,kCAAkC;AAClC,MAAM,WAAW,gBAAgB;IAC7B,8DAA8D;IAC9D,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,IAAI,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;CACvB"}
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,2CAA2C;AAC3C,MAAM,WAAW,QAAQ;IACrB,QAAQ,EAAE,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;IAEnD,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAEjB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,wCAAwC;IACxC,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,iEAAiE;IACjE,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3C;AAED,8CAA8C;AAC9C,MAAM,WAAW,IAAI;IACjB,+DAA+D;IAC/D,EAAE,EAAE,MAAM,CAAC;IAEX,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,iEAAiE;IACjE,IAAI,EAAE,MAAM,CAAC;IAEb,6CAA6C;IAC7C,QAAQ,EAAE,QAAQ,CAAC;IAEnB,4BAA4B;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,oBAAoB;IACpB,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC;CACrB;AAED,oEAAoE;AACpE,MAAM,WAAW,WAAW;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC;IAClD,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,kCAAkC;AAClC,MAAM,WAAW,gBAAgB;IAC7B,8DAA8D;IAC9D,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,IAAI,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;CACvB"}
@@ -1 +1 @@
1
- {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../src/resolvers/document.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,qBAAa,gBAAiB,YAAW,QAAQ;IACvC,OAAO,CACT,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,GAAG,EACb,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC,gBAAgB,CAAC;CAiC/B"}
1
+ {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../src/resolvers/document.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,qBAAa,gBAAiB,YAAW,QAAQ;IACvC,OAAO,CACT,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,GAAG,EACb,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC,gBAAgB,CAAC;CA4C/B"}
@@ -19,6 +19,16 @@ export class DocumentResolver {
19
19
  const pageStr = location.pages.join("_");
20
20
  const filename = `${resourceId}_pages_${pageStr}.pdf`;
21
21
  const outputPath = join(outputDir, filename);
22
+ // Caching
23
+ if (require("node:fs").existsSync(outputPath)) {
24
+ return {
25
+ output_path: outputPath,
26
+ modality: "document",
27
+ address: `doc://${resourceId}#pages=${location.pages[0]}-${location.pages[location.pages.length - 1]}`,
28
+ node: { id: nodeId, location: location },
29
+ resource_id: resourceId
30
+ };
31
+ }
22
32
  writeFileSync(outputPath, outputBytes);
23
33
  return {
24
34
  output_path: outputPath,
@@ -1 +1 @@
1
- {"version":3,"file":"document.js","sourceRoot":"","sources":["../../src/resolvers/document.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC,MAAM,OAAO,gBAAgB;IACzB,KAAK,CAAC,OAAO,CACT,UAAkB,EAClB,MAAc,EACd,UAAkB,EAClB,QAAa,EACb,SAAiB;QAEjB,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,QAAQ,MAAM,0BAA0B,CAAC,CAAC;QAC9D,CAAC;QAED,MAAM,QAAQ,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,CAAC;QAE1C,2DAA2D;QAC3D,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAE7D,aAAa;QACb,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAChE,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAEpD,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QAExC,4EAA4E;QAC5E,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,GAAG,UAAU,UAAU,OAAO,MAAM,CAAC;QACtD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAE7C,aAAa,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAEvC,OAAO;YACH,WAAW,EAAE,UAAU;YACvB,QAAQ,EAAE,UAAU;YACpB,OAAO,EAAE,SAAS,UAAU,UAAU,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;YACtG,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAS,EAAE,2CAA2C;YAC5F,WAAW,EAAE,UAAU;SAC1B,CAAC;IACN,CAAC;CACJ"}
1
+ {"version":3,"file":"document.js","sourceRoot":"","sources":["../../src/resolvers/document.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC,MAAM,OAAO,gBAAgB;IACzB,KAAK,CAAC,OAAO,CACT,UAAkB,EAClB,MAAc,EACd,UAAkB,EAClB,QAAa,EACb,SAAiB;QAEjB,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,QAAQ,MAAM,0BAA0B,CAAC,CAAC;QAC9D,CAAC;QAED,MAAM,QAAQ,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,CAAC;QAE1C,2DAA2D;QAC3D,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAE7D,aAAa;QACb,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAChE,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAEpD,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QAExC,4EAA4E;QAC5E,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,GAAG,UAAU,UAAU,OAAO,MAAM,CAAC;QACtD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAE7C,UAAU;QACV,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5C,OAAO;gBACH,WAAW,EAAE,UAAU;gBACvB,QAAQ,EAAE,UAAU;gBACpB,OAAO,EAAE,SAAS,UAAU,UAAU,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;gBACtG,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAS;gBAC/C,WAAW,EAAE,UAAU;aAC1B,CAAC;QACN,CAAC;QAED,aAAa,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAEvC,OAAO;YACH,WAAW,EAAE,UAAU;YACvB,QAAQ,EAAE,UAAU;YACpB,OAAO,EAAE,SAAS,UAAU,UAAU,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;YACtG,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAS,EAAE,2CAA2C;YAC5F,WAAW,EAAE,UAAU;SAC1B,CAAC;IACN,CAAC;CACJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../../src/resolvers/image.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,qBAAa,aAAc,YAAW,QAAQ;IACpC,OAAO,CACT,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,GAAG,EACb,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC,gBAAgB,CAAC;CAuC/B"}
1
+ {"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../../src/resolvers/image.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,qBAAa,aAAc,YAAW,QAAQ;IACpC,OAAO,CACT,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,GAAG,EACb,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC,gBAAgB,CAAC;CAiD/B"}
@@ -21,6 +21,15 @@ export class ImageResolver {
21
21
  const cropHeight = Math.floor((y2 - y1) * height);
22
22
  const filename = `${resourceId}_crop_${left}_${top}.png`;
23
23
  const outputPath = join(outputDir, filename);
24
+ if (require("node:fs").existsSync(outputPath)) {
25
+ return {
26
+ output_path: outputPath,
27
+ modality: "image",
28
+ address: `image://${resourceId}#rect=${x1},${y1},${x2},${y2}`,
29
+ node: { id: nodeId, location: location },
30
+ resource_id: resourceId
31
+ };
32
+ }
24
33
  await image
25
34
  .extract({ left, top, width: cropWidth, height: cropHeight })
26
35
  .toFile(outputPath);
@@ -1 +1 @@
1
- {"version":3,"file":"image.js","sourceRoot":"","sources":["../../src/resolvers/image.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC,MAAM,OAAO,aAAa;IACtB,KAAK,CAAC,OAAO,CACT,UAAkB,EAClB,MAAc,EACd,UAAkB,EAClB,QAAa,EACb,SAAiB;QAEjB,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CAAC,QAAQ,MAAM,sBAAsB,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC;QAEvC,kCAAkC;QAClC,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;QAChC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC;QAExC,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC7B,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;QAE/B,qDAAqD;QACrD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC;QACpC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC;QAChD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC;QAElD,MAAM,QAAQ,GAAG,GAAG,UAAU,SAAS,IAAI,IAAI,GAAG,MAAM,CAAC;QACzD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAE7C,MAAM,KAAK;aACN,OAAO,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;aAC5D,MAAM,CAAC,UAAU,CAAC,CAAC;QAExB,OAAO;YACH,WAAW,EAAE,UAAU;YACvB,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,WAAW,UAAU,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;YAC7D,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAS;YAC/C,WAAW,EAAE,UAAU;SAC1B,CAAC;IACN,CAAC;CACJ"}
1
+ {"version":3,"file":"image.js","sourceRoot":"","sources":["../../src/resolvers/image.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC,MAAM,OAAO,aAAa;IACtB,KAAK,CAAC,OAAO,CACT,UAAkB,EAClB,MAAc,EACd,UAAkB,EAClB,QAAa,EACb,SAAiB;QAEjB,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CAAC,QAAQ,MAAM,sBAAsB,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC;QAEvC,kCAAkC;QAClC,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;QAChC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC;QAExC,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC7B,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;QAE/B,qDAAqD;QACrD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC;QACpC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC;QACpC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC;QAChD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC;QAElD,MAAM,QAAQ,GAAG,GAAG,UAAU,SAAS,IAAI,IAAI,GAAG,MAAM,CAAC;QACzD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAE7C,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5C,OAAO;gBACH,WAAW,EAAE,UAAU;gBACvB,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,WAAW,UAAU,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;gBAC7D,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAS;gBAC/C,WAAW,EAAE,UAAU;aAC1B,CAAC;QACN,CAAC;QAED,MAAM,KAAK;aACN,OAAO,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;aAC5D,MAAM,CAAC,UAAU,CAAC,CAAC;QAExB,OAAO;YACH,WAAW,EAAE,UAAU;YACvB,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,WAAW,UAAU,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;YAC7D,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAS;YAC/C,WAAW,EAAE,UAAU;SAC1B,CAAC;IACN,CAAC;CACJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"video.d.ts","sourceRoot":"","sources":["../../src/resolvers/video.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,qBAAa,aAAc,YAAW,QAAQ;IACpC,OAAO,CACT,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,GAAG,EACb,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC,gBAAgB,CAAC;CA+B/B"}
1
+ {"version":3,"file":"video.d.ts","sourceRoot":"","sources":["../../src/resolvers/video.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,qBAAa,aAAc,YAAW,QAAQ;IACpC,OAAO,CACT,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,GAAG,EACb,SAAS,EAAE,MAAM,GAClB,OAAO,CAAC,gBAAgB,CAAC;CA0C/B"}
@@ -9,6 +9,16 @@ export class VideoResolver {
9
9
  const duration = location.end - location.start;
10
10
  const filename = `${resourceId}_clip_${start}_${location.end}.mp4`;
11
11
  const outputPath = join(outputDir, filename);
12
+ // Caching
13
+ if (require("node:fs").existsSync(outputPath)) {
14
+ return {
15
+ output_path: outputPath,
16
+ modality: "video",
17
+ address: `video://${resourceId}#t=${start},${location.end}`,
18
+ node: { id: nodeId, location: location },
19
+ resource_id: resourceId
20
+ };
21
+ }
12
22
  return new Promise((resolve, reject) => {
13
23
  ffmpeg(sourcePath)
14
24
  .setStartTime(start)
@@ -1 +1 @@
1
- {"version":3,"file":"video.js","sourceRoot":"","sources":["../../src/resolvers/video.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,eAAe,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC,MAAM,OAAO,aAAa;IACtB,KAAK,CAAC,OAAO,CACT,UAAkB,EAClB,MAAc,EACd,UAAkB,EAClB,QAAa,EACb,SAAiB;QAEjB,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,IAAI,QAAQ,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;YAC7D,MAAM,IAAI,KAAK,CAAC,QAAQ,MAAM,2BAA2B,CAAC,CAAC;QAC/D,CAAC;QAED,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC7B,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC;QAE/C,MAAM,QAAQ,GAAG,GAAG,UAAU,SAAS,KAAK,IAAI,QAAQ,CAAC,GAAG,MAAM,CAAC;QACnE,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAE7C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,MAAM,CAAC,UAAU,CAAC;iBACb,YAAY,CAAC,KAAK,CAAC;iBACnB,WAAW,CAAC,QAAQ,CAAC;iBACrB,MAAM,CAAC,UAAU,CAAC;iBAClB,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;gBACZ,OAAO,CAAC;oBACJ,WAAW,EAAE,UAAU;oBACvB,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,WAAW,UAAU,MAAM,KAAK,IAAI,QAAQ,CAAC,GAAG,EAAE;oBAC3D,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAS;oBAC/C,WAAW,EAAE,UAAU;iBAC1B,CAAC,CAAC;YACP,CAAC,CAAC;iBACD,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACjB,MAAM,CAAC,IAAI,KAAK,CAAC,kBAAkB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACvD,CAAC,CAAC;iBACD,GAAG,EAAE,CAAC;QACf,CAAC,CAAC,CAAC;IACP,CAAC;CACJ"}
1
+ {"version":3,"file":"video.js","sourceRoot":"","sources":["../../src/resolvers/video.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,eAAe,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC,MAAM,OAAO,aAAa;IACtB,KAAK,CAAC,OAAO,CACT,UAAkB,EAClB,MAAc,EACd,UAAkB,EAClB,QAAa,EACb,SAAiB;QAEjB,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,IAAI,QAAQ,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;YAC7D,MAAM,IAAI,KAAK,CAAC,QAAQ,MAAM,2BAA2B,CAAC,CAAC;QAC/D,CAAC;QAED,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC7B,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC;QAE/C,MAAM,QAAQ,GAAG,GAAG,UAAU,SAAS,KAAK,IAAI,QAAQ,CAAC,GAAG,MAAM,CAAC;QACnE,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAE7C,UAAU;QACV,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5C,OAAO;gBACH,WAAW,EAAE,UAAU;gBACvB,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,WAAW,UAAU,MAAM,KAAK,IAAI,QAAQ,CAAC,GAAG,EAAE;gBAC3D,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAS;gBAC/C,WAAW,EAAE,UAAU;aAC1B,CAAC;QACN,CAAC;QAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,MAAM,CAAC,UAAU,CAAC;iBACb,YAAY,CAAC,KAAK,CAAC;iBACnB,WAAW,CAAC,QAAQ,CAAC;iBACrB,MAAM,CAAC,UAAU,CAAC;iBAClB,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;gBACZ,OAAO,CAAC;oBACJ,WAAW,EAAE,UAAU;oBACvB,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,WAAW,UAAU,MAAM,KAAK,IAAI,QAAQ,CAAC,GAAG,EAAE;oBAC3D,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAS;oBAC/C,WAAW,EAAE,UAAU;iBAC1B,CAAC,CAAC;YACP,CAAC,CAAC;iBACD,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACjB,MAAM,CAAC,IAAI,KAAK,CAAC,kBAAkB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACvD,CAAC,CAAC;iBACD,GAAG,EAAE,CAAC;QACf,CAAC,CAAC,CAAC;IACP,CAAC;CACJ"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "citekit",
3
- "version": "0.1.0",
4
- "description": "A local SDK that lets AI agents open specific parts of files instead of sending entire documents.",
3
+ "version": "0.1.2",
4
+ "description": "Local-first AI resource mapping SDK for multimodal agents open specific parts of files instead of sending entire documents.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
@@ -16,18 +16,24 @@
16
16
  "pdf-lib": "^1.17.1",
17
17
  "pdf-parse": "^2.4.5",
18
18
  "sharp": "^0.34.5",
19
- "zod": "^4.3.6"
19
+ "zod": "^4.3.6",
20
+ "commander": "^12.0.0"
21
+ },
22
+ "bin": {
23
+ "citekit": "./dist/cli.js"
20
24
  },
21
25
  "devDependencies": {
22
26
  "@types/fluent-ffmpeg": "^2.1.28",
23
27
  "@types/node": "^20.0.0",
24
28
  "@types/pdf-parse": "^1.1.5",
25
- "typescript": "^5.4.0"
29
+ "typescript": "^5.4.0",
30
+ "vitepress": "^1.6.4",
31
+ "vue": "^3.5.28"
26
32
  },
27
33
  "license": "MIT",
28
34
  "repository": {
29
35
  "type": "git",
30
- "url": "https://github.com/citekit/citekit.git",
36
+ "url": "git+https://github.com/citekit/citekit.git",
31
37
  "directory": "javascript"
32
38
  },
33
39
  "keywords": [
@@ -43,5 +49,12 @@
43
49
  "dist",
44
50
  "README.md",
45
51
  "LICENSE"
46
- ]
52
+ ],
53
+ "directories": {
54
+ "example": "examples"
55
+ },
56
+ "bugs": {
57
+ "url": "https://github.com/citekit/citekit/issues"
58
+ },
59
+ "homepage": "https://github.com/citekit/citekit#readme"
47
60
  }