@tenphi/akno-core 0.3.0 → 0.4.0

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.
@@ -0,0 +1,344 @@
1
+ import { execFile } from 'node:child_process';
2
+ import fs from 'node:fs';
3
+ import fsp from 'node:fs/promises';
4
+ import os from 'node:os';
5
+ import path from 'node:path';
6
+ import { pathToFileURL } from 'node:url';
7
+ import { promisify } from 'node:util';
8
+ const IMAGE_EXTENSIONS = new Set(['.png', '.jpg', '.jpeg', '.webp', '.tiff', '.tif', '.gif', '.bmp']);
9
+ const OFFICE_EXTENSIONS = new Set(['.doc', '.docx', '.odt', '.rtf']);
10
+ const MIN_USABLE_PDF_PAGE_CHARACTERS = 40;
11
+ const runFile = promisify(execFile);
12
+ const executeFile = async (command, args, options) => {
13
+ const result = await runFile(command, args, options);
14
+ return { stdout: String(result.stdout), stderr: String(result.stderr) };
15
+ };
16
+ export function createNodeLinuxCommandRunner(execute = executeFile) {
17
+ return {
18
+ available: commandAvailable,
19
+ makeTempDir: async () => fsp.mkdtemp(path.join(os.tmpdir(), 'akno-extract-')),
20
+ readText: async (file) => fsp.readFile(file, 'utf8'),
21
+ removeTempDir: async (directory) => fsp.rm(directory, { force: true, recursive: true }),
22
+ run: async (command, args) => {
23
+ const { stdout } = await execute(command, args, {
24
+ maxBuffer: 10 * 1_048_576,
25
+ timeout: 300_000,
26
+ killSignal: 'SIGKILL',
27
+ });
28
+ return { stdout };
29
+ },
30
+ };
31
+ }
32
+ async function commandAvailable(command) {
33
+ if (path.isAbsolute(command))
34
+ return executable(command);
35
+ const directories = (process.env.PATH ?? '').split(path.delimiter).filter(Boolean);
36
+ const matches = await Promise.all(directories.map((directory) => executable(path.join(directory, command))));
37
+ return matches.some(Boolean);
38
+ }
39
+ async function executable(candidate) {
40
+ return fsp
41
+ .access(candidate, fs.constants.X_OK)
42
+ .then(() => true)
43
+ .catch(() => false);
44
+ }
45
+ export async function linuxExtractionCapabilities(commands) {
46
+ const names = ['libreoffice', 'pdfinfo', 'pdftotext', 'pdftoppm', 'tesseract'];
47
+ const available = await Promise.all(names.map((name) => commands.available(name)));
48
+ const tools = Object.fromEntries(names.map((name, index) => [name, available[index]]));
49
+ const popplerNames = ['pdfinfo', 'pdftotext', 'pdftoppm'];
50
+ const missingPoppler = popplerNames.filter((name) => !tools[name]);
51
+ let note = null;
52
+ if (missingPoppler.length > 0) {
53
+ note = `PDF extraction is unavailable: install Poppler (${missingPoppler.join(', ')} missing).`;
54
+ }
55
+ else if (!tools.tesseract) {
56
+ note = 'OCR is unavailable: install tesseract. PDF text-layer extraction remains available.';
57
+ }
58
+ return { backend: 'linux-native', ...tools, note };
59
+ }
60
+ export function createLinuxDocumentExtractor(commands) {
61
+ return {
62
+ name: 'linux-native',
63
+ extract: async (request) => {
64
+ const extension = path.extname(request.absPath).toLowerCase();
65
+ if (extension === '.pdf')
66
+ return extractPdf(request.absPath, request.maxOcrPages, commands);
67
+ if (IMAGE_EXTENSIONS.has(extension))
68
+ return ocrImage(request.absPath, commands);
69
+ if (OFFICE_EXTENSIONS.has(extension))
70
+ return extractOffice(request.absPath, commands);
71
+ return failed(`no Linux extractor for ${extension || 'a file with no extension'}`, {
72
+ backend: 'linux-native',
73
+ tool: null,
74
+ });
75
+ },
76
+ };
77
+ }
78
+ async function extractOffice(absPath, commands) {
79
+ const missing = await missingCommands(['libreoffice'], commands);
80
+ if (missing.length > 0)
81
+ return missingDependency('Office extraction requires libreoffice', missing);
82
+ const directory = await commands.makeTempDir();
83
+ try {
84
+ await commands.run('libreoffice', [
85
+ `-env:UserInstallation=${pathToFileURL(path.join(directory, 'profile')).href}`,
86
+ '--headless',
87
+ '--convert-to',
88
+ 'txt:Text',
89
+ '--outdir',
90
+ directory,
91
+ absPath,
92
+ ]);
93
+ const output = path.join(directory, `${path.parse(absPath).name}.txt`);
94
+ const text = (await commands.readText(output)).trim();
95
+ return text
96
+ ? {
97
+ text,
98
+ pages: null,
99
+ ocr: false,
100
+ confidence: null,
101
+ provenance: { backend: 'linux-native', tool: 'libreoffice' },
102
+ text_from: 'libreoffice',
103
+ degradation: null,
104
+ }
105
+ : failed('libreoffice found no text', { backend: 'linux-native', tool: 'libreoffice' });
106
+ }
107
+ catch (error) {
108
+ return failed(`libreoffice could not read the file: ${errorMessage(error)}`, {
109
+ backend: 'linux-native',
110
+ tool: 'libreoffice',
111
+ });
112
+ }
113
+ finally {
114
+ await commands.removeTempDir(directory);
115
+ }
116
+ }
117
+ async function extractPdf(absPath, maxOcrPages, commands) {
118
+ const missing = await missingCommands(['pdfinfo', 'pdftotext'], commands);
119
+ if (missing.length > 0)
120
+ return missingDependency('PDF extraction requires Poppler tools', missing);
121
+ let info;
122
+ try {
123
+ ({ stdout: info } = await commands.run('pdfinfo', [absPath]));
124
+ }
125
+ catch (error) {
126
+ return failed(`pdfinfo could not inspect the PDF: ${errorMessage(error)}`, {
127
+ backend: 'linux-native',
128
+ tool: 'pdfinfo',
129
+ });
130
+ }
131
+ const count = Number(/^Pages:\s+(\d+)\s*$/m.exec(info)?.[1] ?? 0);
132
+ if (count < 1) {
133
+ return failed('pdfinfo did not report a positive page count', {
134
+ backend: 'linux-native',
135
+ tool: 'pdfinfo',
136
+ });
137
+ }
138
+ let stdout;
139
+ try {
140
+ ({ stdout } = await commands.run('pdftotext', ['-layout', absPath, '-']));
141
+ }
142
+ catch (error) {
143
+ return failed(`pdftotext could not read the PDF: ${errorMessage(error)}`, {
144
+ backend: 'linux-native',
145
+ tool: 'pdftotext',
146
+ });
147
+ }
148
+ const pageText = stdout.split('\f');
149
+ // Match the macOS extractor's 40-character scan guard per page. A page number or
150
+ // typed cover sheet must not hide scanned pages elsewhere in the same document.
151
+ const allSections = Array.from({ length: count }, (_, index) => ({
152
+ page: index + 1,
153
+ text: (pageText[index] ?? '').trim(),
154
+ }));
155
+ const sections = allSections.filter((section) => section.text.length >= MIN_USABLE_PDF_PAGE_CHARACTERS);
156
+ const pagesNeedingOcr = allSections
157
+ .filter((section) => section.text.length < MIN_USABLE_PDF_PAGE_CHARACTERS)
158
+ .map((section) => section.page);
159
+ if (pagesNeedingOcr.length > 0) {
160
+ return ocrPdf(absPath, count, pagesNeedingOcr, sections, maxOcrPages, commands);
161
+ }
162
+ const text = sections.map((section) => section.text).join('\n\n');
163
+ return {
164
+ text,
165
+ pages: { count, sections },
166
+ ocr: false,
167
+ confidence: null,
168
+ provenance: { backend: 'linux-native', tool: 'pdftotext' },
169
+ text_from: 'text-layer',
170
+ degradation: null,
171
+ };
172
+ }
173
+ async function ocrImage(absPath, commands) {
174
+ const missing = await missingCommands(['tesseract'], commands);
175
+ if (missing.length > 0)
176
+ return missingDependency('Image OCR requires tesseract', missing);
177
+ try {
178
+ const { stdout } = await commands.run('tesseract', [absPath, 'stdout', 'tsv']);
179
+ const recognized = parseTesseractTsv(stdout);
180
+ return {
181
+ text: recognized.text,
182
+ pages: {
183
+ count: 1,
184
+ sections: recognized.text ? [{ page: 1, text: recognized.text }] : [],
185
+ },
186
+ ocr: true,
187
+ confidence: meanConfidence(recognized.confidences),
188
+ provenance: { backend: 'linux-native', tool: 'tesseract' },
189
+ text_from: 'ocr',
190
+ degradation: null,
191
+ };
192
+ }
193
+ catch (error) {
194
+ return failed(`tesseract could not OCR the image: ${errorMessage(error)}`, {
195
+ backend: 'linux-native',
196
+ tool: 'tesseract',
197
+ });
198
+ }
199
+ }
200
+ async function ocrPdf(absPath, pageCount, pagesNeedingOcr, textLayerSections, maxOcrPages, commands) {
201
+ const missing = await missingCommands(['pdftoppm', 'tesseract'], commands);
202
+ if (missing.length > 0) {
203
+ const result = missingDependency('Scanned PDF OCR requires pdftoppm and tesseract', missing);
204
+ if (textLayerSections.length === 0)
205
+ return result;
206
+ return {
207
+ ...result,
208
+ text: textLayerSections.map((section) => section.text).join('\n\n'),
209
+ pages: { count: pageCount, sections: textLayerSections },
210
+ provenance: { backend: 'linux-native', tool: 'pdftotext' },
211
+ text_from: 'text-layer',
212
+ };
213
+ }
214
+ const directory = await commands.makeTempDir();
215
+ const pagesToRead = pagesNeedingOcr.slice(0, Math.max(0, maxOcrPages));
216
+ const sections = [...textLayerSections];
217
+ const confidences = [];
218
+ let ocrPagesRead = 0;
219
+ let tool = 'pdftoppm';
220
+ try {
221
+ for (const page of pagesToRead) {
222
+ const prefix = path.join(directory, `page-${page}`);
223
+ tool = 'pdftoppm';
224
+ await commands.run('pdftoppm', [
225
+ '-f',
226
+ String(page),
227
+ '-l',
228
+ String(page),
229
+ '-singlefile',
230
+ '-png',
231
+ '-r',
232
+ '300',
233
+ absPath,
234
+ prefix,
235
+ ]);
236
+ tool = 'tesseract';
237
+ const { stdout } = await commands.run('tesseract', [`${prefix}.png`, 'stdout', 'tsv']);
238
+ const recognized = parseTesseractTsv(stdout);
239
+ if (recognized.text)
240
+ sections.push({ page, text: recognized.text });
241
+ confidences.push(...recognized.confidences);
242
+ ocrPagesRead += 1;
243
+ }
244
+ }
245
+ catch (error) {
246
+ if (sections.length > 0) {
247
+ const ordered = sections.sort((left, right) => left.page - right.page);
248
+ return {
249
+ text: ordered.map((section) => section.text).join('\n\n'),
250
+ pages: { count: pageCount, sections: ordered },
251
+ ocr: ocrPagesRead > 0,
252
+ confidence: meanConfidence(confidences),
253
+ provenance: { backend: 'linux-native', tool },
254
+ text_from: ocrPagesRead > 0 ? 'ocr' : 'text-layer',
255
+ degradation: {
256
+ kind: 'partial-extraction',
257
+ message: `scanned: OCR failed on page ${pagesToRead[ocrPagesRead]} after reading ${sections.length} of ${pageCount} pages: ${errorMessage(error)}`,
258
+ pages_read: sections.length,
259
+ pages_total: pageCount,
260
+ },
261
+ };
262
+ }
263
+ return failed(`scanned PDF OCR failed: ${errorMessage(error)}`, {
264
+ backend: 'linux-native',
265
+ tool,
266
+ });
267
+ }
268
+ finally {
269
+ await commands.removeTempDir(directory);
270
+ }
271
+ const ordered = sections.sort((left, right) => left.page - right.page);
272
+ const text = ordered.map((section) => section.text).join('\n\n');
273
+ return {
274
+ text,
275
+ pages: { count: pageCount, sections: ordered },
276
+ ocr: true,
277
+ confidence: meanConfidence(confidences),
278
+ provenance: { backend: 'linux-native', tool: 'tesseract' },
279
+ text_from: 'ocr',
280
+ degradation: pagesToRead.length < pagesNeedingOcr.length
281
+ ? {
282
+ kind: 'partial-extraction',
283
+ message: `scanned: OCR read the first ${sections.length} of ${pageCount} pages`,
284
+ pages_read: sections.length,
285
+ pages_total: pageCount,
286
+ }
287
+ : null,
288
+ };
289
+ }
290
+ function parseTesseractTsv(tsv) {
291
+ const lines = new Map();
292
+ const confidences = [];
293
+ for (const row of tsv.split(/\r?\n/).slice(1)) {
294
+ const fields = row.split('\t');
295
+ if (fields[0] !== '5')
296
+ continue;
297
+ const text = fields.slice(11).join('\t').trim();
298
+ if (!text)
299
+ continue;
300
+ const line = fields.slice(1, 5).join(':');
301
+ const words = lines.get(line) ?? [];
302
+ words.push(text);
303
+ lines.set(line, words);
304
+ const confidence = Number(fields[10]);
305
+ if (Number.isFinite(confidence) && confidence >= 0)
306
+ confidences.push(confidence);
307
+ }
308
+ return { text: [...lines.values()].map((words) => words.join(' ')).join('\n'), confidences };
309
+ }
310
+ function meanConfidence(confidences) {
311
+ return confidences.length > 0
312
+ ? confidences.reduce((total, confidence) => total + confidence, 0) / confidences.length / 100
313
+ : null;
314
+ }
315
+ async function missingCommands(commandsToCheck, commands) {
316
+ const available = await Promise.all(commandsToCheck.map((command) => commands.available(command)));
317
+ return commandsToCheck.filter((_, index) => !available[index]);
318
+ }
319
+ function missingDependency(message, tools) {
320
+ return {
321
+ text: '',
322
+ pages: null,
323
+ ocr: false,
324
+ confidence: null,
325
+ provenance: { backend: 'linux-native', tool: null },
326
+ text_from: 'none',
327
+ degradation: { kind: 'missing-dependency', message: `${message}: ${tools.join(', ')}`, tools },
328
+ };
329
+ }
330
+ function errorMessage(error) {
331
+ return error instanceof Error ? error.message : String(error);
332
+ }
333
+ function failed(message, provenance) {
334
+ return {
335
+ text: '',
336
+ pages: null,
337
+ ocr: false,
338
+ confidence: null,
339
+ provenance,
340
+ text_from: 'none',
341
+ degradation: { kind: 'extraction-failed', message },
342
+ };
343
+ }
344
+ //# sourceMappingURL=linux-extractor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"linux-extractor.js","sourceRoot":"","sources":["../../src/ingest/linux-extractor.ts"],"names":[],"mappings":"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"}
package/dist/open.d.ts CHANGED
@@ -34,7 +34,7 @@ export interface OpenOptions extends LoadOptions {
34
34
  * it at zero — they should say so immediately rather than hang.
35
35
  */
36
36
  writeLockWaitMs?: number;
37
- /** Start the FSEvents watcher and the periodic sweep. Off for one-shot commands. */
37
+ /** Start the native filesystem watcher and periodic sweep. Off for one-shot commands. */
38
38
  watch?: boolean;
39
39
  watchEvents?: AknoWatchEvents;
40
40
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"open.d.ts","sourceRoot":"","sources":["../src/open.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"open.d.ts","sourceRoot":"","sources":["../src/open.ts"],"names":[],"mappings":"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"}
@@ -9,10 +9,10 @@ export interface WatcherEvents {
9
9
  onError?: (error: Error) => void;
10
10
  }
11
11
  /**
12
- * **FSEvents, not polling.** Node's recursive `fs.watch` uses FSEvents on
13
- * macOS: native, cheap, and it reports renames as renames.
12
+ * **Native events, not polling.** Node's recursive `fs.watch` uses the host
13
+ * watcher: native, cheap, and able to report renames.
14
14
  *
15
- * But FSEvents coalesces under load and can drop events after a sleep/wake or a
15
+ * But filesystem events coalesce under load and can drop events after a sleep/wake or a
16
16
  * large sync, so a **periodic hash sweep is the backstop.** Watching alone is not
17
17
  * a correctness guarantee; hashing is. At ~10ms for a typical knowledge base the
18
18
  * sweep can run every few minutes and cost nothing.
@@ -1,10 +1,10 @@
1
1
  import fs from 'node:fs';
2
2
  import path from 'node:path';
3
3
  /**
4
- * **FSEvents, not polling.** Node's recursive `fs.watch` uses FSEvents on
5
- * macOS: native, cheap, and it reports renames as renames.
4
+ * **Native events, not polling.** Node's recursive `fs.watch` uses the host
5
+ * watcher: native, cheap, and able to report renames.
6
6
  *
7
- * But FSEvents coalesces under load and can drop events after a sleep/wake or a
7
+ * But filesystem events coalesce under load and can drop events after a sleep/wake or a
8
8
  * large sync, so a **periodic hash sweep is the backstop.** Watching alone is not
9
9
  * a correctness guarantee; hashing is. At ~10ms for a typical knowledge base the
10
10
  * sweep can run every few minutes and cost nothing.
@@ -32,7 +32,7 @@ export class Watcher {
32
32
  try {
33
33
  this.watcher = fs.watch(this.#config.aknoPath, { recursive: true, persistent: true }, (_type, filename) => {
34
34
  if (!filename) {
35
- // A null filename means FSEvents coalesced and cannot say what moved.
35
+ // A null filename means the watcher coalesced and cannot say what moved.
36
36
  // The only correct response is to treat the whole tree as suspect.
37
37
  this.dirty = true;
38
38
  this.schedule();
@@ -101,7 +101,7 @@ export class Watcher {
101
101
  schedule() {
102
102
  if (this.debounceTimer)
103
103
  clearTimeout(this.debounceTimer);
104
- // FSEvents coalesces, but an editor still produces a write storm on save.
104
+ // Native watchers coalesce, but an editor still produces a write storm on save.
105
105
  this.debounceTimer = setTimeout(() => void this.flush(), this.#config.watch.debounceMs);
106
106
  }
107
107
  async flush(options = {}) {
@@ -1 +1 @@
1
- {"version":3,"file":"watcher.js","sourceRoot":"","sources":["../../src/watch/watcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"watcher.js","sourceRoot":"","sources":["../../src/watch/watcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAa7B;;;;;;;;GAQG;AACH,MAAM,OAAO,OAAO;IACV,OAAO,GAAwB,IAAI,CAAC;IACpC,UAAU,GAA0B,IAAI,CAAC;IACzC,WAAW,GAA0B,IAAI,CAAC;IAC1C,aAAa,GAA0B,IAAI,CAAC;IAC5C,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAC5B,OAAO,GAAG,KAAK,CAAC;IACxB,8EAA8E;IACtE,KAAK,GAAG,KAAK,CAAC;IAEb,OAAO,CAAa;IACpB,QAAQ,CAAU;IAClB,OAAO,CAAgB;IAEhC,YAAY,MAAkB,EAAE,OAAgB,EAAE,SAAwB,EAAE;QAC1E,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QAEzB,IAAI,CAAC;YACH,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,KAAK,CACrB,IAAI,CAAC,OAAO,CAAC,QAAQ,EACrB,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EACrC,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;gBAClB,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,yEAAyE;oBACzE,mEAAmE;oBACnE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;oBAClB,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAChB,OAAO;gBACT,CAAC;gBACD,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACnD,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;oBAAE,OAAO;gBACvC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC1B,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,CAAC,CACF,CAAC;YACF,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,KAAc,CAAC,CAAC,CAAC;QAC9E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,yEAAyE;YACzE,sCAAsC;YACtC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,KAAc,CAAC,CAAC;QACzC,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,GAAG,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;gBACjC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;gBAClB,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;YACpB,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YACvC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QAC1B,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,GAAG,CAAC,EAAE,CAAC;YAC5C,0EAA0E;YAC1E,sEAAsE;YACtE,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE;gBAClC,KAAK,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YACpC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;YACxC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,YAAY;QACV,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,IAAI,CAAC,UAAU;YAAE,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,IAAI,CAAC,WAAW;YAAE,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACtD,IAAI,IAAI,CAAC,aAAa;YAAE,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACzD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IACjE,CAAC;IAEO,YAAY,CAAC,OAAe;QAClC,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QACrE,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QACnF,0EAA0E;QAC1E,8DAA8D;QAC9D,MAAM,IAAI,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACnC,OAAO,kDAAkD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvE,CAAC;IAEO,QAAQ;QACd,IAAI,IAAI,CAAC,aAAa;YAAE,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACzD,gFAAgF;QAChF,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC1F,CAAC;IAEO,KAAK,CAAC,KAAK,CAAC,UAAgC,EAAE;QACpD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,sEAAsE;YACtE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,OAAO;QACT,CAAC;QACD,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;QAClC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;QAC/C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO;QAE/C,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAEpB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;gBACrC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3C,iEAAiE;gBACjE,4DAA4D;gBAC5D,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;aACxC,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC1C,+EAA+E;YAC/E,sCAAsC;YACtC,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS;gBAAE,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACpE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,KAAc,CAAC,CAAC;QACzC,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC;gBAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC3D,CAAC;IACH,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tenphi/akno-core",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "description": "Akno — the memory layer itself: index, ops, watcher, models",
5
5
  "license": "PolyForm-Noncommercial-1.0.0",
6
6
  "type": "module",
@@ -22,13 +22,14 @@
22
22
  "sqlite-vec": "^0.1.9",
23
23
  "yaml": "^2.9.0",
24
24
  "zod": "^4.4.3",
25
- "@tenphi/akno-protocol": "0.3.0"
25
+ "@tenphi/akno-protocol": "0.4.0"
26
26
  },
27
27
  "devDependencies": {
28
28
  "@types/better-sqlite3": "^7.6.12"
29
29
  },
30
30
  "os": [
31
- "darwin"
31
+ "darwin",
32
+ "linux"
32
33
  ],
33
34
  "engines": {
34
35
  "node": ">=22.18"