@wenathlan/saddle 2.0.6 → 2.0.151

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.
Files changed (284) hide show
  1. package/Dockerfile +70 -24
  2. package/LICENSE +0 -0
  3. package/README.md +19 -3
  4. package/alternatives.ts +0 -0
  5. package/biome.jsonc +127 -0
  6. package/boards.json +2 -2
  7. package/compute.ts +4 -4
  8. package/cores.json +2 -2
  9. package/docker.config +16 -9
  10. package/docs/.gitkeep +0 -0
  11. package/docs/CONVERSA.txt +0 -0
  12. package/docs/actionrecorder.md +0 -0
  13. package/docs/actionsincident.md +0 -0
  14. package/docs/alternatives.md +0 -0
  15. package/docs/architecture-1.8.19.md +0 -0
  16. package/docs/architecture-1.8.19.mmd +0 -0
  17. package/docs/architecture-1.8.19.png +0 -0
  18. package/docs/architecture.md +3 -3
  19. package/docs/artifactavailability.md +0 -0
  20. package/docs/artifactresearch-1.8.9.md +0 -0
  21. package/docs/assets/architecture.svg +0 -0
  22. package/docs/assets/saddle-browser-trace.webp +0 -0
  23. package/docs/assets/saddle-hero-bridge.webp +0 -0
  24. package/docs/assets/saddle-mark.webp +0 -0
  25. package/docs/assets/saddle-runtime-map.webp +0 -0
  26. package/docs/assets/saddlemark.svg +0 -0
  27. package/docs/batches-1816-1820.md +0 -0
  28. package/docs/brancharchive-2026-08-18.md +0 -0
  29. package/docs/branchaudit.md +0 -0
  30. package/docs/browser.md +0 -0
  31. package/docs/capabilityreport.md +0 -0
  32. package/docs/comparativeaudit.md +0 -0
  33. package/docs/consolidation.md +0 -0
  34. package/docs/containerplatforms-1.8.17.md +0 -0
  35. package/docs/containerplatforms-2.1.0.md +73 -0
  36. package/docs/documentmap-1.8.12.md +0 -0
  37. package/docs/e2ugh-engine.md +0 -0
  38. package/docs/ecosystemplan.md +0 -0
  39. package/docs/enginearchitecture.md +0 -0
  40. package/docs/example-localjob.ts +0 -0
  41. package/docs/extension.md +0 -0
  42. package/docs/featureaudit.md +0 -0
  43. package/docs/flatbuildresearch-1.8.11.md +0 -0
  44. package/docs/gapmatrix.md +0 -0
  45. package/docs/hardware.md +0 -0
  46. package/docs/libraryapi.md +0 -0
  47. package/docs/licenseaudit-1.8.12.md +0 -0
  48. package/docs/logs/examplesession.json +54 -0
  49. package/docs/memoryengine.md +0 -0
  50. package/docs/mobileconversionresearch-1.8.10.md +0 -0
  51. package/docs/modes.md +0 -0
  52. package/docs/native-wrappers.md +38 -0
  53. package/docs/nativeidentityresearch-1.8.11.md +0 -0
  54. package/docs/optimization.md +0 -0
  55. package/docs/packageaudit185.md +0 -0
  56. package/docs/performance.md +0 -0
  57. package/docs/planning.1.8.18.md +0 -0
  58. package/docs/planning.1.8.19.md +0 -0
  59. package/docs/planning.engine.md +186 -0
  60. package/docs/platformpipelineaudit.md +0 -0
  61. package/docs/platformpipelines.md +0 -0
  62. package/docs/productindex.md +0 -0
  63. package/docs/registryresearch.md +0 -0
  64. package/docs/release.md +0 -0
  65. package/docs/release17notes.md +0 -0
  66. package/docs/release181notes.md +0 -0
  67. package/docs/release182notes.md +0 -0
  68. package/docs/release184notes.md +0 -0
  69. package/docs/release185notes.md +0 -0
  70. package/docs/release18notes.md +0 -0
  71. package/docs/releaseassets.md +0 -0
  72. package/docs/releasenotes-1.8.12.md +0 -0
  73. package/docs/releasenotes-1.8.13.md +0 -0
  74. package/docs/releasenotes-1.8.14.md +0 -0
  75. package/docs/releasenotes-1.8.15.md +0 -0
  76. package/docs/releasenotes-1.8.16.md +0 -0
  77. package/docs/releasenotes-1.8.17.md +0 -0
  78. package/docs/releasenotes-1.8.18.md +0 -0
  79. package/docs/releasenotes-1.8.19.md +0 -0
  80. package/docs/reorganization-1.8.8.md +0 -0
  81. package/docs/reorganization-1.8.9.md +0 -0
  82. package/docs/repo-analysis-1.8.21.json +0 -0
  83. package/docs/repo-candidates-1.8.21.jsonl +0 -0
  84. package/docs/repo-research-1.8.16.md +0 -0
  85. package/docs/repo-research-1.8.21.md +0 -0
  86. package/docs/repo-selected-1.8.21.json +0 -0
  87. package/docs/repo-synthesis-1.8.16.md +0 -0
  88. package/docs/repo-synthesis-1.8.21.md +0 -0
  89. package/docs/research-1.8.18-isolation.md +0 -0
  90. package/docs/research-1.8.19-virtual-browser.md +0 -0
  91. package/docs/roadmapp2p3.md +0 -0
  92. package/docs/s3compatible.md +0 -0
  93. package/docs/saddle.archive.1.8.17.tar.gz.gpg +0 -0
  94. package/docs/scanningresearch-1.8.11.md +0 -0
  95. package/docs/security.md +0 -0
  96. package/docs/securityaudit-1.8.7.md +0 -0
  97. package/docs/securityreferences-1.8.11.md +0 -0
  98. package/docs/securityresearch-1.8.11.md +0 -0
  99. package/docs/signingresearch-1.8.12.md +0 -0
  100. package/docs/signingwithoutcertificates.md +0 -0
  101. package/docs/signpathapplication.md +0 -0
  102. package/docs/sitemap.md +0 -0
  103. package/docs/tauri-glib-risk-1.8.11.md +0 -0
  104. package/docs/todo-1.8.15.md +0 -0
  105. package/docs/todo-1.8.16.md +0 -0
  106. package/docs/todo-1.8.18.md +0 -0
  107. package/docs/todo-1.8.19.md +0 -0
  108. package/docs/todo.md +0 -0
  109. package/docs/toolchainresearch-1.8.9.md +0 -0
  110. package/docs/toolchains.md +0 -0
  111. package/docs/usage.md +0 -0
  112. package/docs/viability.md +0 -0
  113. package/docs/virtualization.md +0 -0
  114. package/docs/web-duplicatecleanup.md +0 -0
  115. package/docs/web-ideas.md +0 -0
  116. package/docs/workflowimprovements-2026-08-19.md +0 -0
  117. package/docs/workflowinputs.md +0 -0
  118. package/docs/workflowoperations.md +0 -0
  119. package/gpumonitor.cpp +0 -0
  120. package/gpus.json +1 -1
  121. package/index.ts +15 -15
  122. package/manifest.json +20 -0
  123. package/media.ts +0 -0
  124. package/modalityregistry.ts +156 -0
  125. package/mttg.config +1 -1
  126. package/orchestrator.ts +5 -2
  127. package/package.json +147 -97
  128. package/passage.config +2 -2
  129. package/performance.ts +0 -0
  130. package/processors.json +1 -1
  131. package/qemu.config +2 -2
  132. package/qemubridge.py +0 -0
  133. package/quantum.ts +0 -0
  134. package/render.ts +0 -0
  135. package/scheduler.ts +0 -0
  136. package/security.ts +0 -0
  137. package/tiers.ts +9 -3
  138. package/tsconfig.json +22 -17
  139. package/virtualcpu.ts +1 -0
  140. package/virtualgpu.ts +1 -0
  141. package/virtualhardware.c +0 -0
  142. package/virtualhardware.json +2 -2
  143. package/virtualization.ts +0 -0
  144. package/virtualizationcore.cpp +0 -0
  145. package/virtualmemory.ts +0 -0
  146. package/vm.config.json +3 -3
  147. package/biome.json +0 -153
  148. package/dist/acquisition.d.ts +0 -359
  149. package/dist/acquisition.d.ts.map +0 -1
  150. package/dist/acquisition.js +0 -629
  151. package/dist/acquisition.js.map +0 -1
  152. package/dist/alternatives.d.ts +0 -509
  153. package/dist/alternatives.d.ts.map +0 -1
  154. package/dist/alternatives.js +0 -951
  155. package/dist/alternatives.js.map +0 -1
  156. package/dist/automation.d.ts +0 -426
  157. package/dist/automation.d.ts.map +0 -1
  158. package/dist/automation.js +0 -561
  159. package/dist/automation.js.map +0 -1
  160. package/dist/browser.d.ts +0 -562
  161. package/dist/browser.d.ts.map +0 -1
  162. package/dist/browser.js +0 -1057
  163. package/dist/browser.js.map +0 -1
  164. package/dist/capacitor.config.d.ts +0 -13
  165. package/dist/capacitor.config.d.ts.map +0 -1
  166. package/dist/capacitor.config.js +0 -26
  167. package/dist/capacitor.config.js.map +0 -1
  168. package/dist/cli.d.ts +0 -17
  169. package/dist/cli.d.ts.map +0 -1
  170. package/dist/cli.js +0 -111
  171. package/dist/cli.js.map +0 -1
  172. package/dist/communication.d.ts +0 -192
  173. package/dist/communication.d.ts.map +0 -1
  174. package/dist/communication.js +0 -418
  175. package/dist/communication.js.map +0 -1
  176. package/dist/compute.d.ts +0 -1161
  177. package/dist/compute.d.ts.map +0 -1
  178. package/dist/compute.js +0 -2273
  179. package/dist/compute.js.map +0 -1
  180. package/dist/distribution.d.ts +0 -529
  181. package/dist/distribution.d.ts.map +0 -1
  182. package/dist/distribution.js +0 -811
  183. package/dist/distribution.js.map +0 -1
  184. package/dist/execution.d.ts +0 -530
  185. package/dist/execution.d.ts.map +0 -1
  186. package/dist/execution.js +0 -761
  187. package/dist/execution.js.map +0 -1
  188. package/dist/format.d.ts +0 -19
  189. package/dist/format.d.ts.map +0 -1
  190. package/dist/format.js +0 -60
  191. package/dist/format.js.map +0 -1
  192. package/dist/foundation.d.ts +0 -176
  193. package/dist/foundation.d.ts.map +0 -1
  194. package/dist/foundation.js +0 -309
  195. package/dist/foundation.js.map +0 -1
  196. package/dist/index.d.ts +0 -735
  197. package/dist/index.d.ts.map +0 -1
  198. package/dist/index.js +0 -1020
  199. package/dist/index.js.map +0 -1
  200. package/dist/integration.d.ts +0 -236
  201. package/dist/integration.d.ts.map +0 -1
  202. package/dist/integration.js +0 -236
  203. package/dist/integration.js.map +0 -1
  204. package/dist/intelligence.d.ts +0 -94
  205. package/dist/intelligence.d.ts.map +0 -1
  206. package/dist/intelligence.js +0 -145
  207. package/dist/intelligence.js.map +0 -1
  208. package/dist/isolation.d.ts +0 -129
  209. package/dist/isolation.d.ts.map +0 -1
  210. package/dist/isolation.js +0 -96
  211. package/dist/isolation.js.map +0 -1
  212. package/dist/media.d.ts +0 -344
  213. package/dist/media.d.ts.map +0 -1
  214. package/dist/media.js +0 -986
  215. package/dist/media.js.map +0 -1
  216. package/dist/modes.d.ts +0 -359
  217. package/dist/modes.d.ts.map +0 -1
  218. package/dist/modes.js +0 -134
  219. package/dist/modes.js.map +0 -1
  220. package/dist/operations.d.ts +0 -67
  221. package/dist/operations.d.ts.map +0 -1
  222. package/dist/operations.js +0 -94
  223. package/dist/operations.js.map +0 -1
  224. package/dist/orchestrator.d.ts +0 -1339
  225. package/dist/orchestrator.d.ts.map +0 -1
  226. package/dist/orchestrator.js +0 -4308
  227. package/dist/orchestrator.js.map +0 -1
  228. package/dist/packager/targetcli.js +0 -4
  229. package/dist/performance.d.ts +0 -416
  230. package/dist/performance.d.ts.map +0 -1
  231. package/dist/performance.js +0 -827
  232. package/dist/performance.js.map +0 -1
  233. package/dist/quantum.d.ts +0 -810
  234. package/dist/quantum.d.ts.map +0 -1
  235. package/dist/quantum.js +0 -2073
  236. package/dist/quantum.js.map +0 -1
  237. package/dist/render.d.ts +0 -381
  238. package/dist/render.d.ts.map +0 -1
  239. package/dist/render.js +0 -1073
  240. package/dist/render.js.map +0 -1
  241. package/dist/scheduler.d.ts +0 -596
  242. package/dist/scheduler.d.ts.map +0 -1
  243. package/dist/scheduler.js +0 -1259
  244. package/dist/scheduler.js.map +0 -1
  245. package/dist/security.d.ts +0 -501
  246. package/dist/security.d.ts.map +0 -1
  247. package/dist/security.js +0 -1170
  248. package/dist/security.js.map +0 -1
  249. package/dist/server.d.ts +0 -21
  250. package/dist/server.d.ts.map +0 -1
  251. package/dist/server.js +0 -52
  252. package/dist/server.js.map +0 -1
  253. package/dist/tiers.d.ts +0 -1002
  254. package/dist/tiers.d.ts.map +0 -1
  255. package/dist/tiers.js +0 -2165
  256. package/dist/tiers.js.map +0 -1
  257. package/dist/virtual.d.ts +0 -641
  258. package/dist/virtual.d.ts.map +0 -1
  259. package/dist/virtual.js +0 -1285
  260. package/dist/virtual.js.map +0 -1
  261. package/dist/virtualcpu.d.ts +0 -316
  262. package/dist/virtualcpu.d.ts.map +0 -1
  263. package/dist/virtualcpu.js +0 -1180
  264. package/dist/virtualcpu.js.map +0 -1
  265. package/dist/virtualgpu.d.ts +0 -345
  266. package/dist/virtualgpu.d.ts.map +0 -1
  267. package/dist/virtualgpu.js +0 -1000
  268. package/dist/virtualgpu.js.map +0 -1
  269. package/dist/virtualization.d.ts +0 -607
  270. package/dist/virtualization.d.ts.map +0 -1
  271. package/dist/virtualization.js +0 -1187
  272. package/dist/virtualization.js.map +0 -1
  273. package/dist/virtualmemory.d.ts +0 -818
  274. package/dist/virtualmemory.d.ts.map +0 -1
  275. package/dist/virtualmemory.js +0 -1796
  276. package/dist/virtualmemory.js.map +0 -1
  277. package/dist/webscrape.d.ts +0 -720
  278. package/dist/webscrape.d.ts.map +0 -1
  279. package/dist/webscrape.js +0 -2697
  280. package/dist/webscrape.js.map +0 -1
  281. package/docs/example-publicapi.ts +0 -7
  282. package/web/extension/manifest.json +0 -23
  283. package/web/readme.md +0 -382
  284. package/web/tsconfig.json +0 -25
package/tiers.ts CHANGED
@@ -337,6 +337,10 @@ export class sqlitekv implements Disposable {
337
337
  /** Absolute path of the database file. */
338
338
  readonly path: string;
339
339
 
340
+ /** the shared sqlite now cast (one literal, every statement reuses it) */
341
+ // biome-ignore lint/security/noSecrets: a sqlite strftime cast literal, not a credential
342
+ #nowsql = "CAST(strftime('%s','now') AS INTEGER)";
343
+
340
344
  #db: DatabaseSync;
341
345
  #closed = false;
342
346
  #getstmt: StatementSync | null = null;
@@ -373,8 +377,7 @@ export class sqlitekv implements Disposable {
373
377
  throw new tierserror(`invalid kvstore key length ${key?.length ?? 0}`);
374
378
  }
375
379
  this.#getstmt ??= this.#db.prepare(
376
- "UPDATE kvstore SET accessedat = CAST(strftime('%s','now') AS INTEGER) " +
377
- 'WHERE key = ? RETURNING value',
380
+ `UPDATE kvstore SET accessedat = ${this.#nowsql} WHERE key = ? RETURNING value`,
378
381
  );
379
382
  const row = this.#getstmt.get(key) as { value: Uint8Array } | undefined;
380
383
  return row === undefined ? null : Buffer.from(row.value);
@@ -393,7 +396,10 @@ export class sqlitekv implements Disposable {
393
396
  }
394
397
  this.#setstmt ??= this.#db.prepare(
395
398
  'INSERT INTO kvstore (key, value, createdat, accessedat) VALUES (?, ?, ' +
396
- "CAST(strftime('%s','now') AS INTEGER), CAST(strftime('%s','now') AS INTEGER)) " +
399
+ this.#nowsql +
400
+ ', ' +
401
+ this.#nowsql +
402
+ ') ' +
397
403
  'ON CONFLICT(key) DO UPDATE SET value = excluded.value, accessedat = excluded.accessedat',
398
404
  );
399
405
  this.#setstmt.run(key, value);
package/tsconfig.json CHANGED
@@ -1,29 +1,34 @@
1
+ // the saddle typescript baseline (the engine emission contract over the
2
+ // app root and the Sol theme: one project covers both).
3
+ // the grand-merge engine sources carry the loose typing baseline the
4
+ // upstream saddle authored them under (strict: false with noCheck: true),
5
+ // and the build engine emits the dist tree through this project — the
6
+ // upstream options answer verbatim (outDir dist, NodeNext, declaration),
7
+ // with the theme options (jsx, the vite client types) riding beside them
8
+ // so the one project keeps covering the Sol surface.
1
9
  {
2
10
  "compilerOptions": {
3
- "target": "ES2024",
4
11
  "module": "NodeNext",
5
12
  "moduleResolution": "NodeNext",
6
- "rootDir": ".",
13
+ "target": "ES2024",
14
+ "lib": ["ES2024", "dom", "dom.iterable"],
15
+ "jsx": "react-jsx",
7
16
  "outDir": "dist",
17
+ "rootDir": ".",
8
18
  "declaration": true,
9
- "declarationMap": true,
10
- "sourceMap": true,
11
19
  "strict": false,
12
20
  "noCheck": true,
13
- "noEmitOnError": true,
21
+ "esModuleInterop": true,
22
+ "skipLibCheck": true,
14
23
  "isolatedModules": true,
15
- "verbatimModuleSyntax": false,
16
24
  "allowSyntheticDefaultImports": true,
17
25
  "forceConsistentCasingInFileNames": true,
18
- "skipLibCheck": true,
19
- "lib": ["ES2024", "DOM", "DOM.Iterable"],
20
- "types": ["node"]
26
+ "types": ["node", "vite/client"],
27
+ "paths": {
28
+ "@/*": ["./Sol/*", "./*"],
29
+ "@saddle/isolation": ["./isolation.ts"]
30
+ }
21
31
  },
22
- "include": [
23
- "index.ts",
24
- "*.ts",
25
- "examples/**/*.ts",
26
- "jsdom.d.ts"
27
- ],
28
- "exclude": ["node_modules", "dist", "coverage", "docs", "web", "tests", "android", "ios", "desktop"]
29
- }
32
+ "include": ["*.ts", "*.tsx", "Sol/**/*.ts", "Sol/**/*.tsx", "docs/example-*.ts", "jsdom.d.ts"],
33
+ "exclude": ["node_modules", "dist", "**/*.test.ts", "coverage", "web", "tests", "build"]
34
+ }
package/virtualcpu.ts CHANGED
@@ -192,6 +192,7 @@ export const ZEN5FLAGS: readonly string[] = [
192
192
  'avx512vbmi',
193
193
  'avx512vbmi2',
194
194
  'avx512ifma',
195
+ // biome-ignore lint/security/noSecrets: a cpu capability flag list, not a credential
195
196
  'avx512vp2intersect',
196
197
  'sha_ni',
197
198
  'gfni',
package/virtualgpu.ts CHANGED
@@ -462,6 +462,7 @@ export function nvidiaVgpuProfiles(): {
462
462
  return { profileSize, fbReservation, fb: profileSize - fbReservation };
463
463
  };
464
464
  return {
465
+ // biome-ignore lint/security/noSecrets: a memory layout formula string, not a credential
465
466
  formula: 'profileSize=X*0x40000000, fbReservation=0x8000000+(profileSize-0x40000000)/0x10',
466
467
  min: '384 MiB',
467
468
  example: calc(2),
package/virtualhardware.c CHANGED
File without changes
@@ -3,7 +3,7 @@
3
3
  "meta": {
4
4
  "name": "e2ugh",
5
5
  "title": "e2ugh v6 - Master Schema, Cross-References and Compatibility Matrix",
6
- "version": "2.0.0",
6
+ "version": "2.0.127",
7
7
  "date": "2026-08-22",
8
8
  "language": "en",
9
9
  "description": "Master schema of the e2ugh v6 virtual hardware engine: binds the 10 specification files (cpu, cores, boards, gpu, vm.config, passage, docker, qemu, mttcg, mesa), defines the modularity ranges (vCPU 1-192, RAM 1-1024 GB, vRAM 8-96 GB via MIG), defaults, validation rules and the pinned 2026-08-22 compatibility matrix.",
@@ -41,7 +41,7 @@
41
41
  "llvm": "19.1.7",
42
42
  "dockerode": "4.0.8",
43
43
  "express": "5.1.0",
44
- "commander": "13.1.0",
44
+ "commander": "15.0.0",
45
45
  "zod": "4.0.5",
46
46
  "ws": "8.18.1"
47
47
  },
package/virtualization.ts CHANGED
File without changes
File without changes
package/virtualmemory.ts CHANGED
File without changes
package/vm.config.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "meta": {
4
4
  "name": "vm.config.json",
5
5
  "title": "e2ugh v6 - VM Profiles and Orchestrator Configuration (canonical schema)",
6
- "version": "2.0.0",
6
+ "version": "2.1.6",
7
7
  "date": "2026-08-22",
8
8
  "language": "en",
9
9
  "description": "22 VM profiles consumed by the VHE orchestrator. Each profile binds a CPU identity (cpu.json), core count (cores.json), board (boards.json), GPU profile (gpu.json) and runtime (qemu.json, docker.json, mesa.json). Accel policy: KVM preferred when /dev/kvm exists, TCG multi-thread fallback on GitHub-hosted runners (see passage.json).",
@@ -1218,7 +1218,7 @@
1218
1218
  "kernelLts": "6.18.45",
1219
1219
  "libvirtVersion": "12.5.0",
1220
1220
  "nodeLts": "24.19.0",
1221
- "nodeCurrent": "26.7.0",
1221
+ "nodeCurrent": "26.12.0",
1222
1222
  "typescript": "7.0.2",
1223
1223
  "runnerVersion": "2.336.0",
1224
1224
  "checkoutAction": "v6",
@@ -1613,7 +1613,7 @@
1613
1613
  },
1614
1614
  "toolchain": {
1615
1615
  "nodeLts": "24.19.0",
1616
- "nodeCurrent": "26.7.0",
1616
+ "nodeCurrent": "26.12.0",
1617
1617
  "typescript": "7.0.2",
1618
1618
  "checkout": "v6",
1619
1619
  "setupNode": "v6",
package/biome.json DELETED
@@ -1,153 +0,0 @@
1
- {
2
- "$schema": "https://biomejs.dev/schemas/2.5.11/schema.json",
3
- "vcs": {
4
- "enabled": false
5
- },
6
- "files": {
7
- "includes": [
8
- "alternatives.ts",
9
- "compute.ts",
10
- "index.ts",
11
- "media.ts",
12
- "orchestrator.ts",
13
- "performance.ts",
14
- "quantum.ts",
15
- "render.ts",
16
- "scheduler.ts",
17
- "security.ts",
18
- "tiers.ts",
19
- "virtualcpu.ts",
20
- "virtualgpu.ts",
21
- "virtualization.ts",
22
- "virtualmemory.ts",
23
- "tests/virtualengine.test.ts",
24
- "tests/features.test.ts",
25
- "tests/media.test.ts",
26
- "tests/render.test.ts",
27
- "tests/simulation.test.ts",
28
- "tests/specs.test.ts",
29
- "tests/virtualcpu.test.ts",
30
- "tests/virtualgpu.test.ts",
31
- "tests/virtualmemory.test.ts",
32
- "tests/web.test.ts",
33
- "tests/workflow.test.ts",
34
- "boards.json",
35
- "cores.json",
36
- "gpus.json",
37
- "processors.json",
38
- "vm.config.json",
39
- "virtualhardware.json",
40
- "*.config",
41
- "tsconfig.json",
42
- "package.json",
43
- "!package-lock.json"
44
- ],
45
- "ignoreUnknown": false
46
- },
47
- "formatter": {
48
- "enabled": true,
49
- "indentStyle": "space",
50
- "indentWidth": 2,
51
- "lineWidth": 100,
52
- "lineEnding": "lf"
53
- },
54
- "assist": {
55
- "actions": {
56
- "source": {
57
- "organizeImports": "on"
58
- }
59
- }
60
- },
61
- "linter": {
62
- "enabled": true,
63
- "rules": {
64
- "preset": "recommended",
65
- "complexity": {
66
- "noStaticOnlyClass": "warn",
67
- "noUselessTypeConstraint": "error"
68
- },
69
- "correctness": {
70
- "noUnusedImports": "error",
71
- "noUnusedVariables": "warn"
72
- },
73
- "suspicious": {
74
- "noAssignInExpressions": "error",
75
- "noConsole": "warn",
76
- "noDoubleEquals": "error",
77
- "noEmptyBlockStatements": "warn",
78
- "noExplicitAny": "error",
79
- "noRedeclare": "error",
80
- "noShadowRestrictedNames": "error"
81
- },
82
- "security": {
83
- "noDangerouslySetInnerHtml": "error",
84
- "noGlobalEval": "error",
85
- "noSecrets": "info"
86
- }
87
- }
88
- },
89
- "javascript": {
90
- "formatter": {
91
- "quoteStyle": "single",
92
- "jsxQuoteStyle": "double",
93
- "semicolons": "always",
94
- "trailingCommas": "all",
95
- "arrowParentheses": "always",
96
- "bracketSameLine": false,
97
- "bracketSpacing": true
98
- }
99
- },
100
- "json": {
101
- "formatter": {
102
- "indentStyle": "space",
103
- "indentWidth": 2,
104
- "lineWidth": 100,
105
- "trailingCommas": "none"
106
- }
107
- },
108
- "root": true,
109
- "overrides": [
110
- {
111
- "includes": [
112
- "web/**"
113
- ],
114
- "linter": {
115
- "rules": {
116
- "recommended": true,
117
- "a11y": {
118
- "noStaticElementInteractions": "off",
119
- "useKeyWithClickEvents": "off",
120
- "useSemanticElements": "off"
121
- },
122
- "correctness": {
123
- "useExhaustiveDependencies": "off"
124
- },
125
- "style": {
126
- "noNonNullAssertion": "off",
127
- "useNodejsImportProtocol": "off",
128
- "useConst": "error"
129
- },
130
- "suspicious": {
131
- "noExplicitAny": "off",
132
- "noEmptyBlock": "warn"
133
- },
134
- "complexity": {
135
- "noUselessFragments": "warn",
136
- "noForEach": "off"
137
- },
138
- "performance": {
139
- "noDelete": "off"
140
- }
141
- }
142
- },
143
- "formatter": {
144
- "enabled": true,
145
- "indentStyle": "tab",
146
- "indentWidth": 2,
147
- "lineWidth": 100,
148
- "lineEnding": "lf",
149
- "formatWithErrors": false
150
- }
151
- }
152
- ]
153
- }
@@ -1,359 +0,0 @@
1
- /**
2
- * captcha contracts separate detection and evidence from any solver provider.
3
- */
4
- export declare const captchatypes: readonly string[];
5
- export declare function captchacontract(options?: {}): {
6
- detect(context: any): Promise<{
7
- kind: any;
8
- detected: boolean;
9
- sitekey: any;
10
- evidenceurl: any;
11
- }>;
12
- request(context: any): Promise<{
13
- status: string;
14
- kind: any;
15
- message: string;
16
- context: any;
17
- }>;
18
- solve(context: any): Promise<{
19
- status: string;
20
- reason: string;
21
- passed?: undefined;
22
- solver?: undefined;
23
- token?: undefined;
24
- evidenceurl?: undefined;
25
- } | {
26
- reason?: undefined;
27
- status: string;
28
- passed: boolean;
29
- solver: any;
30
- token: any;
31
- evidenceurl: any;
32
- }>;
33
- assert(result: any): any;
34
- };
35
- /**
36
- * captcha guard blocks silent automation and records a review event for audit.
37
- */
38
- export declare function captchaguard(options?: {}): {
39
- check(context: any): Promise<{
40
- allowed: boolean;
41
- result: any;
42
- event?: undefined;
43
- action?: undefined;
44
- } | {
45
- allowed: boolean;
46
- result: any;
47
- event: {
48
- type: string;
49
- at: number;
50
- kind: any;
51
- sitekey: any;
52
- };
53
- action: string;
54
- }>;
55
- events(): any[];
56
- };
57
- /**
58
- * captcha evidence stores references and hashes, never raw secrets or tokens by default.
59
- */
60
- export declare function evidence(options?: {}): {
61
- kind: any;
62
- passed: boolean;
63
- solver: any;
64
- evidenceurl: any;
65
- sha256: any;
66
- createdat: any;
67
- metadata: any;
68
- };
69
- /**
70
- * robots context groups local rule parsing, fetch caching and active aliases.
71
- */
72
- export interface RobotsDirective {
73
- userAgent: string;
74
- allow: string[];
75
- disallow: string[];
76
- crawlDelay?: number;
77
- }
78
- export interface RobotsGroup {
79
- agents: string[];
80
- allow: string[];
81
- disallow: string[];
82
- delay?: number;
83
- sitemaps: string[];
84
- }
85
- export interface RobotsTxt {
86
- directives: RobotsDirective[];
87
- groups: RobotsGroup[];
88
- sitemaps: string[];
89
- crawlDelay?: number;
90
- }
91
- /** Parses robots text into both historical directives and active groups. */
92
- export declare function robotsrules(text?: string): RobotsTxt;
93
- /** Fetches and caches a site's robots policy without failing the caller's scrape. */
94
- export declare function fetchRobotsTxt(siteUrl: string, options?: {
95
- timeout?: number;
96
- userAgent?: string;
97
- }): Promise<RobotsTxt>;
98
- /** Checks whether a URL is allowed for a selected agent. */
99
- export declare function isAllowed(url: string, robots: RobotsTxt, userAgent?: string): boolean;
100
- /** Returns the selected agent's crawl delay. */
101
- export declare function getCrawlDelay(robots: RobotsTxt, userAgent?: string): number | undefined;
102
- export declare function getSitemaps(robots: RobotsTxt): string[];
103
- export declare function robotsallowed(rules: RobotsTxt, target: string, agent?: string): boolean;
104
- export declare function robotsdelay(rules: RobotsTxt, agent?: string): number;
105
- /**
106
- * scrape cache context groups the active stale-aware fetch cache and the
107
- * historical typed cache facade without requiring an external LRU package.
108
- */
109
- export interface CacheEntry<T = unknown> {
110
- value: T;
111
- timestamp: number;
112
- expires?: number;
113
- }
114
- export interface CacheConfig {
115
- maxSize?: number;
116
- defaultTtlMs?: number;
117
- checkPeriodMs?: number;
118
- }
119
- /** Provides a bounded typed cache facade for historical scrape callers. */
120
- export declare class WebScrapeCache {
121
- private readonly store;
122
- private readonly config;
123
- constructor(config?: Partial<CacheConfig>);
124
- get<T = unknown>(key: string): T | undefined;
125
- set<T = unknown>(key: string, value: T, ttlMs?: number): void;
126
- has(key: string): boolean;
127
- delete(key: string): boolean;
128
- clear(): void;
129
- getOrSet<T = unknown>(key: string, factory: () => Promise<T>, ttlMs?: number): Promise<T>;
130
- size(): number;
131
- keys(): string[];
132
- }
133
- /** Creates the historical typed cache facade. */
134
- export declare function createCache(config?: Partial<CacheConfig>): WebScrapeCache;
135
- /** Creates the active stale-aware fetch cache contract. */
136
- export declare function ttlcache<T = unknown>(options?: {
137
- ttl?: number;
138
- stale?: boolean;
139
- }): {
140
- get(key: string): T | null;
141
- set(key: string, value: T, valueoptions?: {
142
- ttl?: number;
143
- stale?: number;
144
- }): T;
145
- delete(key: string): void;
146
- clear(): void;
147
- size(): number;
148
- };
149
- /** Detects a normalized media type from a header, URL suffix or caller fallback. */
150
- export declare function detectcontenttype(header: any, url: any, fallback?: string): any;
151
- /** Normalizes bounded input bytes into a serializable text, JSON or binary result. */
152
- export declare function normalizeresult(input: any, options?: {}): {
153
- contenttype: any;
154
- kind: string;
155
- size: number;
156
- bytes: Uint8Array<ArrayBufferLike>;
157
- data?: undefined;
158
- content?: undefined;
159
- } | {
160
- bytes?: undefined;
161
- contenttype: any;
162
- kind: string;
163
- size: number;
164
- content: string;
165
- data: any;
166
- } | {
167
- bytes?: undefined;
168
- data?: undefined;
169
- contenttype: any;
170
- kind: string;
171
- size: number;
172
- content: string;
173
- };
174
- /** Reads a caller-provided response body after checking declared and actual size limits. */
175
- export declare function normalizeresponse(response: any, options?: {}): Promise<{
176
- contenttype: any;
177
- kind: string;
178
- size: number;
179
- bytes: Uint8Array<ArrayBufferLike>;
180
- data?: undefined;
181
- content?: undefined;
182
- } | {
183
- bytes?: undefined;
184
- contenttype: any;
185
- kind: string;
186
- size: number;
187
- content: string;
188
- data: any;
189
- } | {
190
- bytes?: undefined;
191
- data?: undefined;
192
- contenttype: any;
193
- kind: string;
194
- size: number;
195
- content: string;
196
- }>;
197
- /**
198
- * scrape extraction context groups dependency-free HTML extraction and the
199
- * historical structured extraction facade under one TypeScript contract.
200
- */
201
- export interface LinkInfo {
202
- href: string;
203
- text: string;
204
- isInternal: boolean;
205
- isExternal: boolean;
206
- }
207
- export interface ImageInfo {
208
- src: string;
209
- alt: string;
210
- width?: number;
211
- height?: number;
212
- }
213
- export interface TableInfo {
214
- headers: string[];
215
- rows: string[][];
216
- caption?: string;
217
- }
218
- export interface PageMetadata {
219
- title: string;
220
- description?: string;
221
- favicon?: string;
222
- charset?: string;
223
- language?: string;
224
- author?: string;
225
- publishedDate?: string;
226
- ogImage?: string;
227
- ogType?: string;
228
- keywords?: string[];
229
- }
230
- export interface ExtractOptions {
231
- readable?: boolean;
232
- preserveLinks?: boolean;
233
- preserveImages?: boolean;
234
- preserveTables?: boolean;
235
- removeSelectors?: string[];
236
- maxLength?: number;
237
- }
238
- export interface ExtractedContent {
239
- content: string;
240
- text: string;
241
- links: LinkInfo[];
242
- images: ImageInfo[];
243
- tables: TableInfo[];
244
- metadata: PageMetadata;
245
- jsonLd: unknown[];
246
- }
247
- /** Extracts the compact active scrape result without a DOM dependency. */
248
- export declare function extracthtml(html: string, url?: string): {
249
- url: string;
250
- title: string;
251
- description: string;
252
- text: string;
253
- links: string[];
254
- };
255
- /** Extracts structured content for historical TypeScript callers. */
256
- export declare function extractContent(html: string, options?: ExtractOptions): Promise<ExtractedContent>;
257
- /** Extracts readable page text from a document string. */
258
- export declare function extractReadable(html: string): Promise<string>;
259
- /**
260
- * schema extraction accepts safe field descriptors and never evaluates source strings.
261
- */
262
- export declare function extractwithschema(html: any, schema: {}, url: any): {};
263
- /** Extracts schema fields with bounded payload and field-level source provenance. */
264
- export declare function extractstructured(html: any, schema?: {}, options?: {}): {
265
- version: number;
266
- sourceurl: string;
267
- extractedat: string;
268
- values: {};
269
- provenance: {
270
- [k: string]: {
271
- sourceurl: string;
272
- selector: string;
273
- extractedat: string;
274
- truncated: boolean;
275
- };
276
- };
277
- bytes: number;
278
- maxbytes: number;
279
- truncated: any[];
280
- };
281
- /**
282
- * semantic extraction exposes bounded headings, landmarks, controls and links without evaluating page code.
283
- */
284
- /** Extracts semantic page facts from HTML using safe built-in parsing heuristics. */
285
- export declare function extractsemantic(html: any, url: any): {
286
- url: any;
287
- title: string;
288
- headings: {
289
- level: number;
290
- text: string;
291
- }[];
292
- landmarks: {
293
- role: string;
294
- label: any;
295
- }[];
296
- controls: {
297
- ref: string;
298
- role: any;
299
- name: any;
300
- type: any;
301
- }[];
302
- links: any;
303
- semantictext: string;
304
- };
305
- /**
306
- * scrape crawl context owns URL normalization traversal frontier and durable crawl state.
307
- *
308
- * The context keeps single page acquisition injectable while grouping the correlated
309
- * crawl responsibilities that previously lived in four separate top level files.
310
- */
311
- /** Removes fragments and tracking parameters before crawl deduplication. */
312
- export declare function normalizeurl(value: any): string;
313
- /** Compares two crawl targets by origin. */
314
- export declare function sameorigin(left: any, right: any): boolean;
315
- /** Creates a bounded priority frontier for crawler and queue adapters. */
316
- export declare function crawlfrontier(options?: {}): {
317
- add: (input?: {}) => boolean;
318
- next: () => any;
319
- complete: (url: any) => void;
320
- state: () => {
321
- maxpages: number;
322
- maxperdomain: number;
323
- queued: number;
324
- discovered: number;
325
- completed: number;
326
- domains: any;
327
- };
328
- list(): any[];
329
- };
330
- /** Creates a durable crawl queue around a caller-owned store. */
331
- export declare function persistentqueue(options?: {}): {
332
- restore: () => Promise<void>;
333
- add: (item: any) => Promise<boolean>;
334
- next: () => Promise<any>;
335
- complete: (url: any, patch?: {}) => Promise<any>;
336
- list(): any[];
337
- };
338
- /** Runs bounded breadth first traversal through the injected single page scrape contract. */
339
- export declare function crawl(start: any, options?: {}): Promise<{
340
- results: any[];
341
- stats: {
342
- maxperdomain: number;
343
- queued: number;
344
- discovered: number;
345
- domains: any;
346
- completed: number;
347
- maxdepth: any;
348
- maxpages: any;
349
- };
350
- }>;
351
- /**
352
- * scraper composes robots policy cache transport and extraction without browser assumptions.
353
- */
354
- export declare function scraper(options?: {}): {
355
- robots(origin: any): Promise<any>;
356
- scrape(url: any): Promise<any>;
357
- cache: any;
358
- };
359
- //# sourceMappingURL=acquisition.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"acquisition.d.ts","sourceRoot":"","sources":["../acquisition.ts"],"names":[],"mappings":"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"}