attention-manifest-protocol 0.4.1 → 0.4.3

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 (829) hide show
  1. package/CHANGELOG.md +341 -283
  2. package/CHANGELOG.zh-CN.md +51 -8
  3. package/README.md +250 -169
  4. package/README.zh-CN.md +251 -169
  5. package/lib/assignment/assign.d.ts +102 -0
  6. package/lib/assignment/assign.js +556 -0
  7. package/lib/assignment/binding.d.ts +103 -0
  8. package/lib/assignment/binding.js +575 -0
  9. package/lib/assignment/errors.d.ts +14 -0
  10. package/lib/assignment/errors.js +16 -0
  11. package/lib/assignment/guards.d.ts +18 -0
  12. package/lib/assignment/guards.js +28 -0
  13. package/lib/assignment/index.d.ts +10 -0
  14. package/lib/assignment/index.js +10 -0
  15. package/lib/assignment/types.d.ts +169 -0
  16. package/lib/assignment/types.js +1 -0
  17. package/lib/attention/budget.d.ts +1 -1
  18. package/lib/attention/budget.js +31 -9
  19. package/lib/bayes/engine.js +2 -1
  20. package/lib/bayes/reliability.js +25 -10
  21. package/lib/boundary/frame.d.ts +10 -4
  22. package/lib/boundary/frame.js +346 -109
  23. package/lib/boundary/kinds.d.ts +11 -0
  24. package/lib/boundary/kinds.js +33 -0
  25. package/lib/boundary/refTable.d.ts +19 -9
  26. package/lib/boundary/refTable.js +128 -30
  27. package/lib/boundary/toolCall.d.ts +22 -10
  28. package/lib/boundary/toolCall.js +798 -97
  29. package/lib/concept/conceptBudget.js +10 -1
  30. package/lib/concurrency/idempotency.d.ts +4 -3
  31. package/lib/concurrency/idempotency.js +57 -13
  32. package/lib/concurrency/retry.js +18 -3
  33. package/lib/context/agentContext.d.ts +13 -0
  34. package/lib/context/agentContext.js +14 -1
  35. package/lib/context/ast.d.ts +4 -1
  36. package/lib/context/ast.js +13 -3
  37. package/lib/context/contentStore.js +22 -9
  38. package/lib/context/contextBuilder.d.ts +457 -0
  39. package/lib/context/contextBuilder.js +1395 -0
  40. package/lib/context/contextPackage.d.ts +214 -0
  41. package/lib/context/contextPackage.js +191 -0
  42. package/lib/context/index.d.ts +14 -3
  43. package/lib/context/index.js +9 -1
  44. package/lib/context/relevance.d.ts +171 -0
  45. package/lib/context/relevance.js +250 -0
  46. package/lib/context/workspaceDiff.d.ts +105 -0
  47. package/lib/context/workspaceDiff.js +238 -0
  48. package/lib/context/workspaceService.d.ts +236 -1
  49. package/lib/context/workspaceService.js +1501 -73
  50. package/lib/cooperation/collaboration.d.ts +9 -0
  51. package/lib/cooperation/session.d.ts +4 -4
  52. package/lib/cooperation/session.js +3 -3
  53. package/lib/database/adapter/filesystemStore.d.ts +145 -0
  54. package/lib/database/adapter/filesystemStore.js +321 -0
  55. package/lib/database/adapter/index.d.ts +2 -0
  56. package/lib/database/adapter/index.js +2 -0
  57. package/lib/database/adapter/workspaceSessionStore.d.ts +118 -0
  58. package/lib/database/adapter/workspaceSessionStore.js +120 -0
  59. package/lib/database/entity/fileGraph.d.ts +53 -0
  60. package/lib/database/entity/fileGraph.js +15 -0
  61. package/lib/database/entity/fileTree.d.ts +76 -0
  62. package/lib/database/entity/fileTree.js +39 -0
  63. package/lib/database/entity/hook.d.ts +29 -0
  64. package/lib/database/entity/hook.js +18 -0
  65. package/lib/database/entity/index.d.ts +4 -0
  66. package/lib/database/entity/index.js +4 -0
  67. package/lib/database/entity/workspaceSession.d.ts +53 -0
  68. package/lib/database/entity/workspaceSession.js +28 -0
  69. package/lib/database/repository/fileAnnotationRepository.d.ts +75 -0
  70. package/lib/database/repository/fileAnnotationRepository.js +109 -0
  71. package/lib/database/repository/fileGraphRepository.d.ts +188 -0
  72. package/lib/database/repository/fileGraphRepository.js +648 -0
  73. package/lib/database/repository/fileNodeRepository.d.ts +116 -0
  74. package/lib/database/repository/fileNodeRepository.js +263 -0
  75. package/lib/database/repository/fileOutlineRepository.d.ts +40 -0
  76. package/lib/database/repository/fileOutlineRepository.js +104 -0
  77. package/lib/database/repository/fileWriteRepository.d.ts +41 -0
  78. package/lib/database/repository/fileWriteRepository.js +93 -0
  79. package/lib/database/repository/hookRepository.d.ts +67 -0
  80. package/lib/database/repository/hookRepository.js +150 -0
  81. package/lib/database/repository/index.d.ts +7 -0
  82. package/lib/database/repository/index.js +7 -0
  83. package/lib/database/repository/workspaceSessionRepository.d.ts +134 -0
  84. package/lib/database/repository/workspaceSessionRepository.js +327 -0
  85. package/lib/database/service/database.d.ts +14 -0
  86. package/lib/database/service/database.js +21 -0
  87. package/lib/database/sql/schema.js +187 -0
  88. package/lib/database/store/database.js +6 -1
  89. package/lib/delegate/team.d.ts +5 -0
  90. package/lib/delegate/team.js +83 -20
  91. package/lib/discover/classify.d.ts +20 -0
  92. package/lib/discover/classify.js +85 -0
  93. package/lib/discover/host.d.ts +20 -0
  94. package/lib/discover/host.js +89 -0
  95. package/lib/discover/index.d.ts +11 -0
  96. package/lib/discover/index.js +11 -0
  97. package/lib/discover/kinds.d.ts +14 -0
  98. package/lib/discover/kinds.js +23 -0
  99. package/lib/discover/tree.d.ts +7 -0
  100. package/lib/discover/tree.js +432 -0
  101. package/lib/discover/types.d.ts +115 -0
  102. package/lib/discover/types.js +1 -0
  103. package/lib/error/boundaryRejection.d.ts +1 -1
  104. package/lib/evaluation/agreement.js +2 -2
  105. package/lib/execution/handles.js +6 -0
  106. package/lib/execution/pin.js +2 -2
  107. package/lib/file/cfb.d.ts +56 -0
  108. package/lib/file/cfb.js +396 -0
  109. package/lib/file/dependency.d.ts +151 -0
  110. package/lib/file/dependency.js +568 -0
  111. package/lib/file/directory.d.ts +34 -0
  112. package/lib/file/directory.js +141 -0
  113. package/lib/file/errors.d.ts +20 -0
  114. package/lib/file/errors.js +18 -0
  115. package/lib/file/exportGraph.d.ts +31 -0
  116. package/lib/file/exportGraph.js +554 -0
  117. package/lib/file/file.d.ts +40 -0
  118. package/lib/file/file.js +339 -0
  119. package/lib/file/importGraph.d.ts +121 -0
  120. package/lib/file/importGraph.js +1022 -0
  121. package/lib/file/index.d.ts +45 -0
  122. package/lib/file/index.js +30 -0
  123. package/lib/file/metadata.d.ts +66 -0
  124. package/lib/file/metadata.js +470 -0
  125. package/lib/file/path.d.ts +60 -0
  126. package/lib/file/path.js +259 -0
  127. package/lib/file/read.d.ts +168 -0
  128. package/lib/file/read.js +541 -0
  129. package/lib/file/runtime.d.ts +95 -0
  130. package/lib/file/runtime.js +150 -0
  131. package/lib/file/service.d.ts +227 -0
  132. package/lib/file/service.js +663 -0
  133. package/lib/file/syntaxTree.d.ts +7 -0
  134. package/lib/file/syntaxTree.js +38 -0
  135. package/lib/file/time.d.ts +38 -0
  136. package/lib/file/time.js +44 -0
  137. package/lib/file/tree.d.ts +53 -0
  138. package/lib/file/tree.js +417 -0
  139. package/lib/file/types.d.ts +371 -0
  140. package/lib/file/types.js +1 -0
  141. package/lib/file/write.d.ts +159 -0
  142. package/lib/file/write.js +1028 -0
  143. package/lib/file/zip.d.ts +35 -0
  144. package/lib/file/zip.js +349 -0
  145. package/lib/fingerprint/algorithm.d.ts +97 -0
  146. package/lib/fingerprint/algorithm.js +271 -0
  147. package/lib/fingerprint/bytes.d.ts +18 -0
  148. package/lib/fingerprint/bytes.js +31 -0
  149. package/lib/fingerprint/error.d.ts +73 -0
  150. package/lib/fingerprint/error.js +86 -0
  151. package/lib/fingerprint/file.d.ts +71 -0
  152. package/lib/fingerprint/file.js +254 -0
  153. package/lib/fingerprint/index.d.ts +37 -0
  154. package/lib/fingerprint/index.js +12 -0
  155. package/lib/fingerprint/json.d.ts +41 -0
  156. package/lib/fingerprint/json.js +94 -0
  157. package/lib/fingerprint/number.d.ts +32 -0
  158. package/lib/fingerprint/number.js +95 -0
  159. package/lib/fingerprint/policy.d.ts +54 -0
  160. package/lib/fingerprint/policy.js +50 -0
  161. package/lib/fingerprint/preimage.d.ts +84 -0
  162. package/lib/fingerprint/preimage.js +133 -0
  163. package/lib/fingerprint/raw.d.ts +26 -0
  164. package/lib/fingerprint/raw.js +45 -0
  165. package/lib/fingerprint/ref.d.ts +39 -0
  166. package/lib/fingerprint/ref.js +178 -0
  167. package/lib/fingerprint/text.d.ts +42 -0
  168. package/lib/fingerprint/text.js +155 -0
  169. package/lib/fingerprint/tree.d.ts +56 -0
  170. package/lib/fingerprint/tree.js +288 -0
  171. package/lib/fingerprint/verify.d.ts +20 -0
  172. package/lib/fingerprint/verify.js +99 -0
  173. package/lib/global/filesystem.d.ts +43 -0
  174. package/lib/global/filesystem.js +75 -0
  175. package/lib/global/index.d.ts +8 -0
  176. package/lib/global/index.js +8 -0
  177. package/lib/global/service.d.ts +51 -0
  178. package/lib/global/service.js +98 -0
  179. package/lib/governance/transport.js +18 -6
  180. package/lib/hook/ast.d.ts +29 -0
  181. package/lib/hook/ast.js +22 -0
  182. package/lib/hook/code.d.ts +55 -0
  183. package/lib/hook/code.js +47 -0
  184. package/lib/hook/dependency.d.ts +45 -0
  185. package/lib/hook/dependency.js +28 -0
  186. package/lib/hook/diff.d.ts +114 -0
  187. package/lib/hook/diff.js +327 -0
  188. package/lib/hook/exportation.d.ts +31 -0
  189. package/lib/hook/exportation.js +24 -0
  190. package/lib/hook/file.d.ts +44 -0
  191. package/lib/hook/file.js +154 -0
  192. package/lib/hook/importation.d.ts +33 -0
  193. package/lib/hook/importation.js +22 -0
  194. package/lib/hook/index.d.ts +30 -0
  195. package/lib/hook/index.js +23 -0
  196. package/lib/hook/outline.d.ts +35 -0
  197. package/lib/hook/outline.js +27 -0
  198. package/lib/hook/project.d.ts +65 -0
  199. package/lib/hook/project.js +217 -0
  200. package/lib/hook/types.d.ts +114 -0
  201. package/lib/hook/types.js +407 -0
  202. package/lib/index.d.ts +9 -0
  203. package/lib/index.js +9 -0
  204. package/lib/lock/lease.js +28 -3
  205. package/lib/manifest/cardSign.d.ts +1 -1
  206. package/lib/manifest/cardSign.js +37 -7
  207. package/lib/manifest/federation.js +13 -6
  208. package/lib/manifest/trust.d.ts +2 -0
  209. package/lib/manifest/trust.js +27 -6
  210. package/lib/module/index.d.ts +4 -0
  211. package/lib/module/index.js +4 -0
  212. package/lib/module/mcp/client.js +21 -2
  213. package/lib/module/mcp/filesystemServer.d.ts +24 -0
  214. package/lib/module/mcp/filesystemServer.js +102 -0
  215. package/lib/module/mcp/http.js +32 -19
  216. package/lib/module/mcp/workspaceServer.js +20 -3
  217. package/lib/module/tool/filesystemExecutor.d.ts +18 -0
  218. package/lib/module/tool/filesystemExecutor.js +49 -0
  219. package/lib/module/tool/globalExecutor.d.ts +17 -0
  220. package/lib/module/tool/globalExecutor.js +39 -0
  221. package/lib/module/tool/globalFilesystemExecutor.d.ts +18 -0
  222. package/lib/module/tool/globalFilesystemExecutor.js +49 -0
  223. package/lib/module/tool/workspaceExecutor.d.ts +9 -0
  224. package/lib/module/tool/workspaceExecutor.js +16 -3
  225. package/lib/naming/aliases.d.ts +48 -0
  226. package/lib/naming/aliases.js +79 -0
  227. package/lib/naming/catalog.d.ts +117 -0
  228. package/lib/naming/catalog.js +108 -0
  229. package/lib/naming/grammar.d.ts +67 -0
  230. package/lib/naming/grammar.js +212 -0
  231. package/lib/naming/ids.d.ts +157 -0
  232. package/lib/naming/ids.js +119 -0
  233. package/lib/naming/index.d.ts +13 -0
  234. package/lib/naming/index.js +13 -0
  235. package/lib/outline/index.d.ts +9 -0
  236. package/lib/outline/index.js +8 -0
  237. package/lib/outline/office.d.ts +160 -0
  238. package/lib/outline/office.js +2375 -0
  239. package/lib/outline/officeBridge.d.ts +32 -0
  240. package/lib/outline/officeBridge.js +27 -0
  241. package/lib/outline/outline.d.ts +159 -0
  242. package/lib/outline/outline.js +837 -0
  243. package/lib/outline/outlineIndex.d.ts +97 -0
  244. package/lib/outline/outlineIndex.js +325 -0
  245. package/lib/outline/outlineKeywords.d.ts +59 -0
  246. package/lib/outline/outlineKeywords.js +143 -0
  247. package/lib/outline/outlineStrategies.d.ts +414 -0
  248. package/lib/outline/outlineStrategies.js +8324 -0
  249. package/lib/outline/reactOutline.d.ts +37 -0
  250. package/lib/outline/reactOutline.js +1070 -0
  251. package/lib/outline/shellOutline.d.ts +65 -0
  252. package/lib/outline/shellOutline.js +873 -0
  253. package/lib/outline/sqlOutline.d.ts +170 -0
  254. package/lib/outline/sqlOutline.js +1536 -0
  255. package/lib/outline/strategy.d.ts +46 -0
  256. package/lib/outline/strategy.js +1 -0
  257. package/lib/outline/types.d.ts +95 -0
  258. package/lib/outline/types.js +1 -0
  259. package/lib/outline/visualBasicOutline.d.ts +27 -0
  260. package/lib/outline/visualBasicOutline.js +750 -0
  261. package/lib/protocol/filesystem.d.ts +55 -0
  262. package/lib/protocol/filesystem.js +105 -0
  263. package/lib/protocol/global.d.ts +42 -0
  264. package/lib/protocol/global.js +63 -0
  265. package/lib/protocol/globalFilesystem.d.ts +40 -0
  266. package/lib/protocol/globalFilesystem.js +59 -0
  267. package/lib/protocol/index.d.ts +4 -0
  268. package/lib/protocol/index.js +4 -0
  269. package/lib/protocol/protocol.d.ts +4 -0
  270. package/lib/protocol/wire.js +5 -2
  271. package/lib/protocol/workspace.d.ts +305 -0
  272. package/lib/protocol/workspace.js +258 -0
  273. package/lib/receipt/receipt.d.ts +8 -0
  274. package/lib/registry/content.js +9 -3
  275. package/lib/runtime/kernelRuntime.js +9 -1
  276. package/lib/scenario/scenario.js +5 -4
  277. package/lib/semantic/canonical.d.ts +61 -0
  278. package/lib/semantic/canonical.js +135 -8
  279. package/lib/semantic/jsonValue.d.ts +31 -0
  280. package/lib/semantic/jsonValue.js +122 -0
  281. package/lib/semantic/sha256.js +3 -0
  282. package/lib/semantic/time.d.ts +14 -0
  283. package/lib/semantic/time.js +56 -0
  284. package/lib/session/context.d.ts +76 -0
  285. package/lib/session/context.js +419 -0
  286. package/lib/session/errors.d.ts +24 -0
  287. package/lib/session/errors.js +22 -0
  288. package/lib/session/identity.d.ts +24 -0
  289. package/lib/session/identity.js +56 -0
  290. package/lib/session/index.d.ts +14 -0
  291. package/lib/session/index.js +12 -0
  292. package/lib/session/registry.d.ts +130 -0
  293. package/lib/session/registry.js +908 -0
  294. package/lib/session/types.d.ts +227 -0
  295. package/lib/session/types.js +14 -0
  296. package/lib/structure/index.d.ts +1 -0
  297. package/lib/structure/index.js +1 -0
  298. package/lib/structure/trie.d.ts +88 -0
  299. package/lib/structure/trie.js +183 -0
  300. package/lib/syntax/byteIndex.d.ts +44 -0
  301. package/lib/syntax/byteIndex.js +148 -0
  302. package/lib/syntax/charset.d.ts +88 -0
  303. package/lib/syntax/charset.js +276 -0
  304. package/lib/syntax/index.d.ts +6 -0
  305. package/lib/syntax/index.js +5 -0
  306. package/lib/syntax/syntaxRegistry.d.ts +150 -0
  307. package/lib/syntax/syntaxRegistry.js +314 -0
  308. package/lib/syntax/syntaxTree.d.ts +106 -0
  309. package/lib/syntax/syntaxTree.js +668 -0
  310. package/lib/syntax/types.d.ts +15 -0
  311. package/lib/syntax/types.js +1 -0
  312. package/lib/types/common.d.ts +1 -1
  313. package/lib/window/index.d.ts +3 -0
  314. package/lib/window/index.js +1 -0
  315. package/package.json +72 -193
  316. package/.editorconfig +0 -12
  317. package/.prettierignore +0 -17
  318. package/MCP-Token/347/250/216/344/270/216/344/270/213/344/270/200/344/273/243/345/267/245/345/205/267/345/215/217/350/256/256.html +0 -1763
  319. package/docs/annotation-campaign-A.csv +0 -54
  320. package/docs/annotation-campaign-B.csv +0 -54
  321. package/docs/annotation-campaign.csv +0 -54
  322. package/docs/eval/annotations-A.jsonl +0 -16
  323. package/docs/eval/annotations.json +0 -122
  324. package/docs/eval/recorded-labels.json +0 -12
  325. package/docs/eval/replay-cases.json +0 -14
  326. package/docs/eval/replay-labels-b.json +0 -14
  327. package/docs/examples/attention-request.json +0 -16
  328. package/docs/examples/checkpoint.json +0 -15
  329. package/docs/examples/claim.json +0 -66
  330. package/docs/examples/collaboration.json +0 -66
  331. package/docs/examples/concept-checkpoint.json +0 -15
  332. package/docs/examples/concept-prune-plan.json +0 -45
  333. package/docs/examples/federation.json +0 -126
  334. package/docs/examples/frame-chain.json +0 -77
  335. package/docs/examples/ledger-snapshot.json +0 -108
  336. package/docs/examples/manifest.json +0 -77
  337. package/docs/examples/message.json +0 -19
  338. package/docs/examples/other-model.json +0 -45
  339. package/docs/examples/plan.json +0 -50
  340. package/docs/examples/prune-plan.json +0 -48
  341. package/docs/examples/receipt.json +0 -22
  342. package/docs/examples/runtime-run.json +0 -573
  343. package/docs/examples/team.json +0 -66
  344. package/docs/examples/verb-note.json +0 -11
  345. package/docs/probes/bayes-scores.json +0 -1452
  346. package/docs/probes/calibration-imported.json +0 -141
  347. package/docs/probes/context-ast-deepseek.json +0 -1577
  348. package/docs/probes/deepseek-probe.json +0 -917
  349. package/docs/probes/eval-recorded-replay.json +0 -597
  350. package/docs/probes/eval-replay.json +0 -124
  351. package/docs/probes/eval-summary.json +0 -42
  352. package/docs/probes/runtime-eval.json +0 -4230
  353. package/docs/schemas/collaboration.schema.json +0 -73
  354. package/docs/schemas/common.schema.json +0 -125
  355. package/docs/schemas/compaction.schema.json +0 -121
  356. package/docs/schemas/concept-compaction.schema.json +0 -73
  357. package/docs/schemas/concept.schema.json +0 -97
  358. package/docs/schemas/epistemic.schema.json +0 -178
  359. package/docs/schemas/federation.schema.json +0 -66
  360. package/docs/schemas/frame.schema.json +0 -86
  361. package/docs/schemas/ledger-snapshot.schema.json +0 -30
  362. package/docs/schemas/manifest.schema.json +0 -169
  363. package/docs/schemas/message.schema.json +0 -41
  364. package/docs/schemas/plan.schema.json +0 -189
  365. package/docs/schemas/receipt.schema.json +0 -45
  366. package/docs/schemas/social.schema.json +0 -153
  367. package/docs/schemas/team.schema.json +0 -56
  368. package/docs/schemas/verb.schema.json +0 -120
  369. package/eslint.config.mts +0 -96
  370. package/index.html +0 -13
  371. package/lib/context/workspaceProtocol.d.ts +0 -30
  372. package/lib/context/workspaceProtocol.js +0 -49
  373. package/prettier.config.mts +0 -37
  374. package/public/favicon.svg +0 -1
  375. package/public/icons.svg +0 -24
  376. package/src/attention/attention.ts +0 -347
  377. package/src/attention/budget.ts +0 -72
  378. package/src/attention/cognition.ts +0 -519
  379. package/src/attention/index.ts +0 -8
  380. package/src/attention/interrupts.ts +0 -228
  381. package/src/attention/resource.ts +0 -316
  382. package/src/attention/social.ts +0 -217
  383. package/src/attention/socialTypes.ts +0 -115
  384. package/src/authz/authz.ts +0 -305
  385. package/src/authz/index.ts +0 -1
  386. package/src/bayes/calibration.ts +0 -204
  387. package/src/bayes/calibrationRegistry.ts +0 -111
  388. package/src/bayes/calibrationSelection.ts +0 -154
  389. package/src/bayes/engine.ts +0 -532
  390. package/src/bayes/index.ts +0 -6
  391. package/src/bayes/reliability.ts +0 -62
  392. package/src/bayes/scopedPriors.ts +0 -88
  393. package/src/boundary/frame.ts +0 -322
  394. package/src/boundary/ids.ts +0 -14
  395. package/src/boundary/index.ts +0 -12
  396. package/src/boundary/refTable.ts +0 -125
  397. package/src/boundary/toolCall.ts +0 -212
  398. package/src/concept/concept.ts +0 -75
  399. package/src/concept/conceptBudget.ts +0 -346
  400. package/src/concept/conceptBudgetTypes.ts +0 -79
  401. package/src/concept/index.ts +0 -3
  402. package/src/concurrency/idempotency.ts +0 -41
  403. package/src/concurrency/index.ts +0 -5
  404. package/src/concurrency/mutex.ts +0 -26
  405. package/src/concurrency/namedLocks.ts +0 -35
  406. package/src/concurrency/retry.ts +0 -50
  407. package/src/concurrency/worker.ts +0 -128
  408. package/src/context/agentContext.ts +0 -308
  409. package/src/context/ast.ts +0 -499
  410. package/src/context/contentStore.ts +0 -75
  411. package/src/context/context.ts +0 -65
  412. package/src/context/contextIndex.ts +0 -85
  413. package/src/context/document.ts +0 -137
  414. package/src/context/fileStorePath.ts +0 -14
  415. package/src/context/index.ts +0 -43
  416. package/src/context/lifecycle.ts +0 -221
  417. package/src/context/projections.ts +0 -151
  418. package/src/context/workspace.ts +0 -422
  419. package/src/context/workspaceProtocol.ts +0 -112
  420. package/src/context/workspaceService.ts +0 -423
  421. package/src/cooperation/board.ts +0 -104
  422. package/src/cooperation/collaboration.ts +0 -60
  423. package/src/cooperation/index.ts +0 -6
  424. package/src/cooperation/merge.ts +0 -190
  425. package/src/cooperation/metrics.ts +0 -57
  426. package/src/cooperation/session.ts +0 -131
  427. package/src/cooperation/unified.ts +0 -56
  428. package/src/counter.ts +0 -9
  429. package/src/database/adapter/adapters.ts +0 -35
  430. package/src/database/adapter/index.ts +0 -4
  431. package/src/database/adapter/runtimeSink.ts +0 -74
  432. package/src/database/adapter/sessionStore.ts +0 -32
  433. package/src/database/adapter/turnStore.ts +0 -23
  434. package/src/database/entity/agent.ts +0 -199
  435. package/src/database/entity/entity.ts +0 -1046
  436. package/src/database/entity/handle.ts +0 -79
  437. package/src/database/entity/index.ts +0 -32
  438. package/src/database/entity/message.ts +0 -74
  439. package/src/database/entity/meta.ts +0 -11
  440. package/src/database/entity/object.ts +0 -42
  441. package/src/database/entity/outbox.ts +0 -15
  442. package/src/database/entity/process.ts +0 -65
  443. package/src/database/entity/registry.ts +0 -155
  444. package/src/database/entity/runtimeApproval.ts +0 -30
  445. package/src/database/entity/runtimeSession.ts +0 -13
  446. package/src/database/entity/runtimeTurn.ts +0 -15
  447. package/src/database/entity/thread.ts +0 -85
  448. package/src/database/entity/window.ts +0 -85
  449. package/src/database/entity/worker.ts +0 -90
  450. package/src/database/index.ts +0 -6
  451. package/src/database/repository/addressSpaceRepository.ts +0 -72
  452. package/src/database/repository/agentRepository.ts +0 -460
  453. package/src/database/repository/base.ts +0 -41
  454. package/src/database/repository/executionRepository.ts +0 -477
  455. package/src/database/repository/handleRepository.ts +0 -64
  456. package/src/database/repository/index.ts +0 -20
  457. package/src/database/repository/messageRepository.ts +0 -52
  458. package/src/database/repository/objectRepository.ts +0 -69
  459. package/src/database/repository/outboxRepository.ts +0 -63
  460. package/src/database/repository/processRepository.ts +0 -58
  461. package/src/database/repository/registryRepository.ts +0 -119
  462. package/src/database/repository/repository.ts +0 -491
  463. package/src/database/repository/runtimeApprovalRepository.ts +0 -44
  464. package/src/database/repository/runtimeSessionRepository.ts +0 -27
  465. package/src/database/repository/runtimeTurnRepository.ts +0 -39
  466. package/src/database/repository/socialRepository.ts +0 -185
  467. package/src/database/repository/threadRepository.ts +0 -57
  468. package/src/database/repository/windowRepository.ts +0 -88
  469. package/src/database/repository/workerRepository.ts +0 -69
  470. package/src/database/service/database.ts +0 -90
  471. package/src/database/service/handleService.ts +0 -48
  472. package/src/database/service/index.ts +0 -16
  473. package/src/database/service/messageService.ts +0 -61
  474. package/src/database/service/objectService.ts +0 -59
  475. package/src/database/service/processService.ts +0 -61
  476. package/src/database/service/registryServices.ts +0 -88
  477. package/src/database/service/service.ts +0 -183
  478. package/src/database/service/stepService.ts +0 -53
  479. package/src/database/service/threadService.ts +0 -65
  480. package/src/database/service/windowService.ts +0 -30
  481. package/src/database/service/workerService.ts +0 -57
  482. package/src/database/sql/index.ts +0 -3
  483. package/src/database/sql/schema.ts +0 -418
  484. package/src/database/sql/sql.ts +0 -543
  485. package/src/database/store/database.ts +0 -210
  486. package/src/database/store/index.ts +0 -3
  487. package/src/database/store/store.ts +0 -266
  488. package/src/delegate/index.ts +0 -2
  489. package/src/delegate/team.ts +0 -268
  490. package/src/delegate/teamTypes.ts +0 -47
  491. package/src/diagnosis/checklist.ts +0 -74
  492. package/src/diagnosis/context.ts +0 -93
  493. package/src/diagnosis/frame.ts +0 -256
  494. package/src/diagnosis/index.ts +0 -5
  495. package/src/diagnosis/router.ts +0 -72
  496. package/src/diagnosis/types.ts +0 -89
  497. package/src/error/agentError.ts +0 -16
  498. package/src/error/ampError.ts +0 -20
  499. package/src/error/authzError.ts +0 -14
  500. package/src/error/boundaryRejection.ts +0 -20
  501. package/src/error/index.ts +0 -7
  502. package/src/error/kernelError.ts +0 -27
  503. package/src/error/mailboxError.ts +0 -9
  504. package/src/error/windowError.ts +0 -12
  505. package/src/evaluation/agreement.ts +0 -96
  506. package/src/evaluation/index.ts +0 -2
  507. package/src/evaluation/labels.ts +0 -241
  508. package/src/evidence/evidenceGraph.ts +0 -205
  509. package/src/evidence/index.ts +0 -4
  510. package/src/evidence/revalidation.ts +0 -191
  511. package/src/execution/exec.ts +0 -408
  512. package/src/execution/handles.ts +0 -65
  513. package/src/execution/index.ts +0 -3
  514. package/src/execution/pin.ts +0 -154
  515. package/src/frame/frame.ts +0 -70
  516. package/src/frame/index.ts +0 -1
  517. package/src/goal/goal.ts +0 -43
  518. package/src/goal/index.ts +0 -2
  519. package/src/goal/plan.ts +0 -196
  520. package/src/governance/attentionManifest.ts +0 -802
  521. package/src/governance/audit.ts +0 -362
  522. package/src/governance/budget.ts +0 -628
  523. package/src/governance/context.ts +0 -356
  524. package/src/governance/control.ts +0 -159
  525. package/src/governance/cooperation.ts +0 -479
  526. package/src/governance/credential.ts +0 -359
  527. package/src/governance/httpServer.ts +0 -99
  528. package/src/governance/index.ts +0 -32
  529. package/src/governance/legal.ts +0 -574
  530. package/src/governance/matrix.ts +0 -460
  531. package/src/governance/perspectives.ts +0 -406
  532. package/src/governance/signing.ts +0 -407
  533. package/src/governance/store.ts +0 -125
  534. package/src/governance/switching.ts +0 -459
  535. package/src/governance/toolPolicy.ts +0 -80
  536. package/src/governance/transport.ts +0 -204
  537. package/src/governance/types.ts +0 -380
  538. package/src/governance/workflow.ts +0 -743
  539. package/src/index.ts +0 -11
  540. package/src/interaction/index.ts +0 -1
  541. package/src/interaction/interaction.ts +0 -391
  542. package/src/ipc/index.ts +0 -4
  543. package/src/ipc/mailbox.ts +0 -132
  544. package/src/ipc/memorySocialStore.ts +0 -93
  545. package/src/ipc/social.ts +0 -93
  546. package/src/kernel/index.ts +0 -14
  547. package/src/kernel/scheduler.ts +0 -498
  548. package/src/ledger/checkpoint.ts +0 -304
  549. package/src/ledger/index.ts +0 -4
  550. package/src/ledger/ledger.ts +0 -31
  551. package/src/ledger/persistence.ts +0 -159
  552. package/src/ledger/share.ts +0 -80
  553. package/src/lock/index.ts +0 -2
  554. package/src/lock/lease.ts +0 -74
  555. package/src/main.ts +0 -199
  556. package/src/manifest/agentCard.ts +0 -72
  557. package/src/manifest/cardSign.ts +0 -87
  558. package/src/manifest/federation.ts +0 -237
  559. package/src/manifest/federationTypes.ts +0 -55
  560. package/src/manifest/index.ts +0 -8
  561. package/src/manifest/keys.ts +0 -643
  562. package/src/manifest/manifest.ts +0 -114
  563. package/src/manifest/sign.ts +0 -134
  564. package/src/manifest/trust.ts +0 -146
  565. package/src/mission/index.ts +0 -2
  566. package/src/mission/missionQueue.ts +0 -75
  567. package/src/module/index.ts +0 -9
  568. package/src/module/llm/deepseek.ts +0 -214
  569. package/src/module/llm/llm.ts +0 -84
  570. package/src/module/mcp/client.ts +0 -110
  571. package/src/module/mcp/http.ts +0 -102
  572. package/src/module/mcp/protocol.ts +0 -77
  573. package/src/module/mcp/server.ts +0 -148
  574. package/src/module/mcp/transport.ts +0 -30
  575. package/src/module/mcp/workspaceServer.ts +0 -111
  576. package/src/module/sandbox/sandbox.ts +0 -29
  577. package/src/module/tool/mcpExecutor.ts +0 -54
  578. package/src/module/tool/policy.ts +0 -52
  579. package/src/module/tool/redact.ts +0 -29
  580. package/src/module/tool/tool.ts +0 -53
  581. package/src/module/tool/workspaceExecutor.ts +0 -35
  582. package/src/policy/guard.ts +0 -240
  583. package/src/policy/index.ts +0 -2
  584. package/src/policy/policy.ts +0 -561
  585. package/src/process/agent.ts +0 -341
  586. package/src/process/agentService.ts +0 -236
  587. package/src/process/agentStore.ts +0 -378
  588. package/src/process/executionStore.ts +0 -151
  589. package/src/process/index.ts +0 -5
  590. package/src/process/process.ts +0 -240
  591. package/src/process/transitions.ts +0 -19
  592. package/src/progress/index.ts +0 -2
  593. package/src/progress/progress.ts +0 -85
  594. package/src/protocol/a2a.ts +0 -120
  595. package/src/protocol/channel.ts +0 -44
  596. package/src/protocol/envelope.ts +0 -655
  597. package/src/protocol/httpChannel.ts +0 -87
  598. package/src/protocol/index.ts +0 -6
  599. package/src/protocol/protocol.ts +0 -138
  600. package/src/protocol/wire.ts +0 -60
  601. package/src/receipt/index.ts +0 -1
  602. package/src/receipt/receipt.ts +0 -47
  603. package/src/registry/content.ts +0 -69
  604. package/src/registry/index.ts +0 -23
  605. package/src/registry/registry.ts +0 -599
  606. package/src/runtime/action.ts +0 -87
  607. package/src/runtime/behavior.ts +0 -330
  608. package/src/runtime/behaviorTuning.ts +0 -163
  609. package/src/runtime/cognitiveRuntime.ts +0 -703
  610. package/src/runtime/escalation.ts +0 -35
  611. package/src/runtime/governedTask.ts +0 -233
  612. package/src/runtime/index.ts +0 -15
  613. package/src/runtime/kernelRuntime.ts +0 -144
  614. package/src/runtime/operation.ts +0 -35
  615. package/src/runtime/replay.ts +0 -71
  616. package/src/runtime/routing.ts +0 -58
  617. package/src/runtime/safety.ts +0 -48
  618. package/src/runtime/session.ts +0 -341
  619. package/src/runtime/sessionStore.ts +0 -43
  620. package/src/runtime/telemetry.ts +0 -55
  621. package/src/runtime/turnStore.ts +0 -30
  622. package/src/scenario/index.ts +0 -1
  623. package/src/scenario/scenario.ts +0 -299
  624. package/src/semantic/canonical.ts +0 -24
  625. package/src/semantic/index.ts +0 -2
  626. package/src/semantic/sha256.ts +0 -82
  627. package/src/storage/appendLog.ts +0 -372
  628. package/src/storage/fileAppendSink.ts +0 -40
  629. package/src/storage/index.ts +0 -2
  630. package/src/store/bindCache.ts +0 -22
  631. package/src/store/cache.ts +0 -191
  632. package/src/store/context.ts +0 -31
  633. package/src/store/handleStore.ts +0 -31
  634. package/src/store/index.ts +0 -9
  635. package/src/store/messageStore.ts +0 -31
  636. package/src/store/objectStore.ts +0 -31
  637. package/src/store/processStore.ts +0 -31
  638. package/src/store/threadStore.ts +0 -31
  639. package/src/store/windowStore.ts +0 -31
  640. package/src/structure/abstractSyntaxTree.ts +0 -493
  641. package/src/structure/avlTree.ts +0 -408
  642. package/src/structure/binarySearchTree.ts +0 -352
  643. package/src/structure/binaryTree.ts +0 -525
  644. package/src/structure/bloomFilter.ts +0 -231
  645. package/src/structure/compare.ts +0 -110
  646. package/src/structure/cuckooFilter.ts +0 -337
  647. package/src/structure/deque.ts +0 -223
  648. package/src/structure/filterKey.ts +0 -36
  649. package/src/structure/hash.ts +0 -279
  650. package/src/structure/heap.ts +0 -268
  651. package/src/structure/index.ts +0 -20
  652. package/src/structure/iterator.ts +0 -22
  653. package/src/structure/lru.ts +0 -619
  654. package/src/structure/ordered.ts +0 -399
  655. package/src/structure/priority.ts +0 -915
  656. package/src/structure/queue.ts +0 -168
  657. package/src/structure/redBlackTree.ts +0 -680
  658. package/src/structure/segmentTree.ts +0 -248
  659. package/src/structure/stack.ts +0 -118
  660. package/src/structure/unordered.ts +0 -407
  661. package/src/style.css +0 -278
  662. package/src/thread/index.ts +0 -2
  663. package/src/thread/thread.ts +0 -176
  664. package/src/thread/transitions.ts +0 -17
  665. package/src/types/common.ts +0 -119
  666. package/src/types/index.ts +0 -23
  667. package/src/warrant/epistemic.ts +0 -154
  668. package/src/warrant/index.ts +0 -3
  669. package/src/warrant/inquiry.ts +0 -166
  670. package/src/warrant/warrant.ts +0 -179
  671. package/src/window/compaction.ts +0 -403
  672. package/src/window/compactionTypes.ts +0 -119
  673. package/src/window/index.ts +0 -4
  674. package/src/window/page.ts +0 -18
  675. package/src/window/window.ts +0 -244
  676. package/tools/_helpers.ts +0 -34
  677. package/tools/a2a-check.ts +0 -110
  678. package/tools/a2a-flow-check.ts +0 -78
  679. package/tools/agent-card-check.ts +0 -76
  680. package/tools/agent-check.ts +0 -236
  681. package/tools/agent-store-check.ts +0 -153
  682. package/tools/agreement-check.ts +0 -27
  683. package/tools/annotation-server-check.ts +0 -48
  684. package/tools/annotation-server.ts +0 -230
  685. package/tools/annotation-status.ts +0 -65
  686. package/tools/approval-access-check.ts +0 -66
  687. package/tools/arch-check.ts +0 -72
  688. package/tools/attention-core-check.ts +0 -48
  689. package/tools/attention-resource-check.ts +0 -169
  690. package/tools/audit-check.ts +0 -207
  691. package/tools/authority-check.ts +0 -124
  692. package/tools/authz-check.ts +0 -138
  693. package/tools/bayes-check.ts +0 -162
  694. package/tools/bayes-probe.ts +0 -154
  695. package/tools/behavior-tuning-check.ts +0 -53
  696. package/tools/board-check.ts +0 -87
  697. package/tools/boundary-check.ts +0 -199
  698. package/tools/bundle-trust-check.ts +0 -96
  699. package/tools/calibrate-imported.ts +0 -108
  700. package/tools/calibration-check.ts +0 -44
  701. package/tools/calibration-registry-check.ts +0 -40
  702. package/tools/calibration-sim.ts +0 -40
  703. package/tools/card-sign-check.ts +0 -71
  704. package/tools/card-trust-check.ts +0 -78
  705. package/tools/channel-check.ts +0 -86
  706. package/tools/checkpoint-check.ts +0 -620
  707. package/tools/cleanup-style-configs.ts +0 -29
  708. package/tools/cognition-check.ts +0 -648
  709. package/tools/cognitive-runtime-check.ts +0 -609
  710. package/tools/collaboration-demo.ts +0 -78
  711. package/tools/compaction-check.ts +0 -266
  712. package/tools/concept-check.ts +0 -260
  713. package/tools/concurrency-check.ts +0 -242
  714. package/tools/conformance-runtime.ts +0 -389
  715. package/tools/conformance.ts +0 -651
  716. package/tools/context-ast-check.ts +0 -90
  717. package/tools/context-ast-deepseek.ts +0 -242
  718. package/tools/context-graph-bench.ts +0 -50
  719. package/tools/context-graph-check.ts +0 -229
  720. package/tools/context-index-check.ts +0 -48
  721. package/tools/context-lifecycle-check.ts +0 -69
  722. package/tools/context-projection-check.ts +0 -73
  723. package/tools/context-scope-check.ts +0 -134
  724. package/tools/context-storage-check.ts +0 -113
  725. package/tools/cooperation-check.ts +0 -517
  726. package/tools/cooperation-http-check.ts +0 -125
  727. package/tools/deepseek-llm-check.ts +0 -147
  728. package/tools/deepseek-probe.ts +0 -494
  729. package/tools/diagnosis-check.ts +0 -109
  730. package/tools/diagnosis-router-check.ts +0 -50
  731. package/tools/document-context-check.ts +0 -237
  732. package/tools/envelope-check.ts +0 -659
  733. package/tools/eslint-rules/index.ts +0 -26
  734. package/tools/eslint-rules/rules/jsdoc-comment-format.ts +0 -105
  735. package/tools/eslint-rules/rules/no-function-keyword.ts +0 -60
  736. package/tools/eslint-rules/rules/no-multiline-parameters.ts +0 -71
  737. package/tools/eslint-rules/rules/no-multiline-type-parameters.ts +0 -57
  738. package/tools/eslint-rules/rules/no-undefined-comparison.ts +0 -115
  739. package/tools/eslint-rules/rules/prefer-template-for-string-conversion.ts +0 -97
  740. package/tools/eslint-rules/rules/require-typeof-parentheses.ts +0 -49
  741. package/tools/eslint-rules/rules/require-variable-type.ts +0 -36
  742. package/tools/eslint-rules/rules/variable-naming.ts +0 -175
  743. package/tools/eval-recorded-replay.ts +0 -215
  744. package/tools/eval-replay.ts +0 -139
  745. package/tools/eval-summary.ts +0 -136
  746. package/tools/evidence-revalidation-check.ts +0 -235
  747. package/tools/exec-check.ts +0 -217
  748. package/tools/federation-check.ts +0 -166
  749. package/tools/federation-demo.ts +0 -45
  750. package/tools/filter-check.ts +0 -243
  751. package/tools/governance-check.ts +0 -680
  752. package/tools/governance-store-check.ts +0 -131
  753. package/tools/governed-task-check.ts +0 -227
  754. package/tools/guard-check.ts +0 -122
  755. package/tools/http-channel-check.ts +0 -125
  756. package/tools/import-campaign.ts +0 -28
  757. package/tools/inquiry-check.ts +0 -126
  758. package/tools/interaction-check.ts +0 -171
  759. package/tools/interrupts-check.ts +0 -173
  760. package/tools/ipc-check.ts +0 -170
  761. package/tools/kernel-async-check.ts +0 -136
  762. package/tools/kernel-check.ts +0 -369
  763. package/tools/kernel-runtime-check.ts +0 -276
  764. package/tools/keys-check.ts +0 -559
  765. package/tools/label-audit.ts +0 -70
  766. package/tools/labels-workflow-check.ts +0 -49
  767. package/tools/linear-structure-check.ts +0 -524
  768. package/tools/live-exec.ts +0 -62
  769. package/tools/live-governance-eval.ts +0 -813
  770. package/tools/live-legacy.ts +0 -50
  771. package/tools/lru-check.ts +0 -182
  772. package/tools/make-annotation-campaign.ts +0 -57
  773. package/tools/mcp-executor-check.ts +0 -33
  774. package/tools/merge-annotations.ts +0 -32
  775. package/tools/merge-check.ts +0 -98
  776. package/tools/metrics-check.ts +0 -84
  777. package/tools/net-probe.ts +0 -107
  778. package/tools/oauth-probe.ts +0 -117
  779. package/tools/outbox-check.ts +0 -50
  780. package/tools/persistence-check.ts +0 -144
  781. package/tools/pin-check.ts +0 -116
  782. package/tools/platform-check.ts +0 -281
  783. package/tools/policy-check.ts +0 -514
  784. package/tools/prettier-plugin/index.mts +0 -84
  785. package/tools/priority-check.ts +0 -627
  786. package/tools/probe-context7.ts +0 -63
  787. package/tools/registry-check.ts +0 -252
  788. package/tools/reliability-check.ts +0 -25
  789. package/tools/retry-check.ts +0 -85
  790. package/tools/rewrite-declaration-extensions.ts +0 -98
  791. package/tools/runtime-check.ts +0 -165
  792. package/tools/runtime-deepseek-check.ts +0 -85
  793. package/tools/runtime-eval.ts +0 -358
  794. package/tools/scenario-check.ts +0 -161
  795. package/tools/scenario-incident.ts +0 -162
  796. package/tools/scoped-priors-check.ts +0 -35
  797. package/tools/scoped-priors-pooling.ts +0 -34
  798. package/tools/segment-ast-check.ts +0 -649
  799. package/tools/session-check.ts +0 -196
  800. package/tools/session-store-check.ts +0 -73
  801. package/tools/share-check.ts +0 -88
  802. package/tools/sign-check.ts +0 -95
  803. package/tools/signing-check.ts +0 -275
  804. package/tools/snapshot-demo.ts +0 -65
  805. package/tools/social-check.ts +0 -146
  806. package/tools/structure-compare-check.ts +0 -95
  807. package/tools/support/documentScanner.ts +0 -577
  808. package/tools/support/texScanner.ts +0 -631
  809. package/tools/support/workspaceScanner.ts +0 -476
  810. package/tools/team-check.ts +0 -163
  811. package/tools/team-demo.ts +0 -36
  812. package/tools/telemetry-check.ts +0 -44
  813. package/tools/tex-context-check.ts +0 -263
  814. package/tools/tool-gate-check.ts +0 -98
  815. package/tools/tree-structure-check.ts +0 -786
  816. package/tools/trust-flow-check.ts +0 -158
  817. package/tools/turn-store-check.ts +0 -57
  818. package/tools/unified-check.ts +0 -83
  819. package/tools/validate.ts +0 -309
  820. package/tools/wire-check.ts +0 -96
  821. package/tools/workspace-agent-check.ts +0 -486
  822. package/tools/workspace-agent-demo.ts +0 -62
  823. package/tools/workspace-agent-server.ts +0 -101
  824. package/tools/workspace-context-check.ts +0 -331
  825. package/tools/workspace-context.ts +0 -131
  826. package/tsconfig.build.json +0 -14
  827. package/tsconfig.json +0 -24
  828. package/tsconfig.tools.json +0 -31
  829. package/viz/context-ast.json +0 -1577
@@ -1,543 +0,0 @@
1
- /**
2
- * Generic SQL layer for one table.
3
- *
4
- * Every concrete table adapter extends {@link Sql} and supplies its
5
- * {@link TableMeta}. The base class owns the statement shapes shared by all
6
- * tables: primary-key lookup, list, count, insert, update, delete, upsert and
7
- * existence checks. Table-specific queries belong in a concrete subclass and
8
- * use the protected `query`, `queryOne`, `run` and `quote` helpers.
9
- *
10
- * Parameters are always bound; identifiers come from trusted {@link TableMeta}
11
- * values and are validated before they are interpolated.
12
- */
13
- import type { DatabaseSync } from "node:sqlite";
14
-
15
- import type { PrimaryKey } from "../entity/entity.ts";
16
- import type { TableMeta } from "../entity/meta.ts";
17
-
18
- /**
19
- * Value accepted by a SQLite bound parameter.
20
- */
21
- export type SqlParameter = string | number | bigint | null | Uint8Array;
22
-
23
- /**
24
- * Result of an INSERT, UPDATE or DELETE statement.
25
- */
26
- export interface MutationResult {
27
- /**
28
- * Number of rows changed by the statement.
29
- */
30
- readonly changes: number;
31
- /**
32
- * SQLite rowid generated by an INSERT, or zero when none was generated.
33
- */
34
- readonly lastInsertRowid: number | bigint;
35
- }
36
-
37
- /**
38
- * Raw result returned by `StatementSync.run`.
39
- *
40
- * `changes` may be a bigint on platforms where SQLite reports 64-bit counts;
41
- * public {@link MutationResult} values normalize it to a number.
42
- */
43
- interface RawMutationResult {
44
- changes: number | bigint;
45
- lastInsertRowid: number | bigint;
46
- }
47
-
48
- /**
49
- * Options for a generated SELECT.
50
- */
51
- export interface SelectOptions {
52
- /**
53
- * Optional SQL after WHERE.
54
- */
55
- readonly where?: string;
56
- /**
57
- * Bound values for the WHERE fragment.
58
- */
59
- readonly params?: readonly SqlParameter[];
60
- /**
61
- * Full ORDER BY fragment, for example a value returned by `Sort.toSql()`.
62
- */
63
- readonly orderBy?: string;
64
- /**
65
- * Maximum row count.
66
- */
67
- readonly limit?: number;
68
- /**
69
- * Number of rows to skip.
70
- */
71
- readonly offset?: number;
72
- /**
73
- * Optional column projection.
74
- */
75
- readonly columns?: readonly string[];
76
- }
77
-
78
- /**
79
- * Row shape for COUNT queries.
80
- */
81
- interface CountRow {
82
- n: number;
83
- }
84
-
85
- /**
86
- * Convert a JavaScript value into a value `node:sqlite` can bind.
87
- *
88
- * Booleans become `1`/`0`, `undefined` becomes `NULL`, and unsupported object
89
- * types fail early instead of being stringified silently.
90
- *
91
- * @param value - Value from a repository or service.
92
- * @returns A bindable SQLite parameter.
93
- * @throws TypeError when the value has no SQLite representation.
94
- */
95
- export const toSqlParameter: (value: unknown) => SqlParameter = (value: unknown): SqlParameter => {
96
- if (value === (void 0) || value === null) {
97
- return null;
98
- }
99
- if (typeof(value) === "boolean") {
100
- return value ? 1 : 0;
101
- }
102
- if (typeof(value) === "string" || typeof(value) === "bigint") {
103
- return value;
104
- }
105
- if (typeof(value) === "number") {
106
- if (!Number.isFinite(value)) {
107
- throw new TypeError("SQL parameters cannot be NaN or Infinity");
108
- }
109
- return value;
110
- }
111
- if (value instanceof Uint8Array) {
112
- return value;
113
- }
114
- throw new TypeError(`Unsupported SQL parameter type: ${Object.prototype.toString.call(value)}`);
115
- };
116
-
117
- /**
118
- * Validate a SQL identifier before it is interpolated into a statement.
119
- *
120
- * @param identifier - Table or column name.
121
- * @returns The identifier unchanged.
122
- * @throws Error when the identifier contains anything except letters, digits
123
- * and underscores, or when it starts with a digit.
124
- */
125
- export const assertSqlIdentifier: (identifier: string) => string = (identifier: string): string => {
126
- if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(identifier)) {
127
- throw new Error(`Invalid SQL identifier: ${identifier}`);
128
- }
129
- return identifier;
130
- };
131
-
132
- /**
133
- * Abstract CRUD adapter for a single table.
134
- *
135
- * @typeParam TEntity - Row shape returned by the table.
136
- * @typeParam TKey - Primary-key type.
137
- */
138
- export abstract class Sql<TEntity extends object, TKey extends PrimaryKey = PrimaryKey> {
139
- protected readonly db: DatabaseSync;
140
- readonly meta: TableMeta;
141
- private readonly columnSet: ReadonlySet<string>;
142
-
143
- /**
144
- * Create a table adapter.
145
- *
146
- * @param db - Open SQLite connection.
147
- * @param meta - Table, primary key and column metadata.
148
- */
149
- protected constructor(db: DatabaseSync, meta: TableMeta) {
150
- this.db = db;
151
- this.meta = meta;
152
- this.columnSet = new Set(meta.columns);
153
- this.assertMeta();
154
- }
155
-
156
- /**
157
- * Physical table name.
158
- */
159
- get table(): string {
160
- return this.meta.table;
161
- }
162
-
163
- /**
164
- * Primary-key column name.
165
- */
166
- get primaryKey(): string {
167
- return this.meta.primaryKey;
168
- }
169
-
170
- /**
171
- * Columns allowed in generated statements.
172
- */
173
- get columns(): readonly string[] {
174
- return this.meta.columns;
175
- }
176
-
177
- /**
178
- * Find one row by primary key.
179
- *
180
- * @param id - Primary-key value.
181
- * @returns The row, or `undefined` when absent.
182
- */
183
- findById(id: TKey): TEntity | undefined {
184
- const row: unknown = this.db
185
- .prepare(`SELECT * FROM ${this.quote(this.table)} WHERE ${this.quote(this.primaryKey)} = ? LIMIT 1`)
186
- .get(toSqlParameter(id));
187
- return row as TEntity | undefined;
188
- }
189
-
190
- /**
191
- * Read rows in unspecified order.
192
- *
193
- * @param limit - Maximum row count.
194
- * @returns Matching rows.
195
- */
196
- all(limit: number = 1000): TEntity[] {
197
- const bounded: number = this.normalizeLimit(limit);
198
- return this.db.prepare(`SELECT * FROM ${this.quote(this.table)} LIMIT ?`).all(bounded) as unknown as TEntity[];
199
- }
200
-
201
- /**
202
- * Read rows with a trusted SQL WHERE fragment.
203
- *
204
- * The fragment is not analyzed; callers must pass only literals and
205
- * placeholders, never interpolated user input.
206
- *
207
- * @param clause - SQL after `WHERE`.
208
- * @param params - Bound values for the clause.
209
- * @returns Matching rows.
210
- */
211
- where(clause: string, ...params: SqlParameter[]): TEntity[] {
212
- const where: string = clause.trim();
213
- if (where.length === 0) {
214
- throw new Error("where clause must not be empty");
215
- }
216
- return this.db.prepare(`SELECT * FROM ${this.quote(this.table)} WHERE ${where}`).all(...params) as unknown as TEntity[];
217
- }
218
-
219
- /**
220
- * Read rows with optional filtering, ordering and pagination.
221
- *
222
- * @param options - Select options.
223
- * @returns Matching rows.
224
- */
225
- select(options: SelectOptions = {}): TEntity[] {
226
- const where: string = options.where?.trim() ?? "";
227
- const params: SqlParameter[] = options.params === (void 0) ? [] : [...options.params];
228
- if (where.length === 0 && params.length > 0) {
229
- throw new Error("select parameters require a where clause");
230
- }
231
- let sql: string = `SELECT ${this.selectList(options.columns)} FROM ${this.quote(this.table)}`;
232
- if (where.length > 0) {
233
- sql += ` WHERE ${where}`;
234
- }
235
- const orderBy: string = options.orderBy?.trim() ?? "";
236
- if (orderBy.length > 0) {
237
- sql += ` ${orderBy}`;
238
- }
239
- if (options.limit !== (void 0)) {
240
- const limit: number = this.normalizeLimit(options.limit);
241
- sql += " LIMIT ?";
242
- params.push(limit);
243
- } else if (options.offset !== (void 0) && options.offset > 0) {
244
- this.normalizeLimit(options.offset);
245
- sql += " LIMIT -1";
246
- }
247
- if (options.offset !== (void 0)) {
248
- const offset: number = this.normalizeLimit(options.offset);
249
- sql += " OFFSET ?";
250
- params.push(offset);
251
- }
252
- return this.query<TEntity>(sql, ...params);
253
- }
254
-
255
- /**
256
- * Count rows, optionally restricted by a WHERE fragment.
257
- *
258
- * @param clause - Optional SQL after `WHERE`.
259
- * @param params - Bound values for the clause.
260
- * @returns Number of matching rows.
261
- */
262
- count(clause?: string, ...params: SqlParameter[]): number {
263
- const where: string = clause?.trim() ?? "";
264
- const sql: string =
265
- where.length === 0 ? `SELECT COUNT(*) AS n FROM ${this.quote(this.table)}` : `SELECT COUNT(*) AS n FROM ${this.quote(this.table)} WHERE ${where}`;
266
- const row: CountRow | undefined = this.db.prepare(sql).get(...params) as unknown as CountRow | undefined;
267
- return row?.n ?? 0;
268
- }
269
-
270
- /**
271
- * Test whether a primary key exists.
272
- *
273
- * @param id - Primary-key value.
274
- * @returns `true` when the row exists.
275
- */
276
- exists(id: TKey): boolean {
277
- const row: unknown = this.db
278
- .prepare(`SELECT 1 AS present FROM ${this.quote(this.table)} WHERE ${this.quote(this.primaryKey)} = ? LIMIT 1`)
279
- .get(toSqlParameter(id));
280
- return row !== (void 0);
281
- }
282
-
283
- /**
284
- * Insert one row.
285
- *
286
- * @param values - Column values; unknown keys are rejected.
287
- * @returns Mutation metadata.
288
- */
289
- insert(values: Readonly<Record<string, unknown>>): MutationResult {
290
- const columns: string[] = this.collectColumns(values, true);
291
- const placeholders: string = columns.map(() => "?").join(", ");
292
- const params: SqlParameter[] = this.collectParams(values, columns);
293
- const sql: string = `INSERT INTO ${this.quote(this.table)} (${columns.map((column) => this.quote(column)).join(", ")}) VALUES (${placeholders})`;
294
- return this.run(sql, ...params);
295
- }
296
-
297
- /**
298
- * Update one row by primary key.
299
- *
300
- * @param id - Primary-key value.
301
- * @param values - Column values; the primary key is ignored.
302
- * @returns Number of changed rows.
303
- */
304
- update(id: TKey, values: Readonly<Record<string, unknown>>): number {
305
- const columns: string[] = this.collectColumns(values, false);
306
- const params: SqlParameter[] = this.collectParams(values, columns);
307
- const assignments: string = columns.map((column) => `${this.quote(column)} = ?`).join(", ");
308
- const sql: string = `UPDATE ${this.quote(this.table)} SET ${assignments} WHERE ${this.quote(this.primaryKey)} = ?`;
309
- const result: RawMutationResult = this.db.prepare(sql).run(...params, toSqlParameter(id));
310
- return Number(result.changes);
311
- }
312
-
313
- /**
314
- * Update rows selected by a trusted WHERE fragment.
315
- *
316
- * @param clause - SQL after `WHERE`.
317
- * @param values - Column values; the primary key is ignored.
318
- * @param params - Bound values for the clause.
319
- * @returns Number of changed rows.
320
- */
321
- updateWhere(clause: string, values: Readonly<Record<string, unknown>>, ...params: SqlParameter[]): number {
322
- const where: string = clause.trim();
323
- if (where.length === 0) {
324
- throw new Error("where clause must not be empty");
325
- }
326
- const columns: string[] = this.collectColumns(values, false);
327
- const assignments: string = columns.map((column) => `${this.quote(column)} = ?`).join(", ");
328
- const sql: string = `UPDATE ${this.quote(this.table)} SET ${assignments} WHERE ${where}`;
329
- const result: RawMutationResult = this.db.prepare(sql).run(...this.collectParams(values, columns), ...params);
330
- return Number(result.changes);
331
- }
332
-
333
- /**
334
- * Delete one row by primary key.
335
- *
336
- * @param id - Primary-key value.
337
- * @returns Number of deleted rows.
338
- */
339
- delete(id: TKey): number {
340
- const result: RawMutationResult = this.db
341
- .prepare(`DELETE FROM ${this.quote(this.table)} WHERE ${this.quote(this.primaryKey)} = ?`)
342
- .run(toSqlParameter(id));
343
- return Number(result.changes);
344
- }
345
-
346
- /**
347
- * Delete rows selected by a trusted WHERE fragment.
348
- *
349
- * @param clause - SQL after `WHERE`.
350
- * @param params - Bound values for the clause.
351
- * @returns Number of deleted rows.
352
- */
353
- deleteWhere(clause: string, ...params: SqlParameter[]): number {
354
- const where: string = clause.trim();
355
- if (where.length === 0) {
356
- throw new Error("where clause must not be empty");
357
- }
358
- const result: RawMutationResult = this.db.prepare(`DELETE FROM ${this.quote(this.table)} WHERE ${where}`).run(...params);
359
- return Number(result.changes);
360
- }
361
-
362
- /**
363
- * Insert a row, replacing conflicting columns on a conflict.
364
- *
365
- * @param values - Column values; conflict columns must be present.
366
- * @param conflictColumns - Unique columns; defaults to the primary key.
367
- * @returns Mutation metadata.
368
- */
369
- upsert(values: Readonly<Record<string, unknown>>, conflictColumns?: readonly string[]): MutationResult {
370
- const columns: string[] = this.collectColumns(values, true);
371
- const params: SqlParameter[] = this.collectParams(values, columns);
372
- const conflicts: readonly string[] = conflictColumns ?? [this.primaryKey];
373
- for (let index: number = 0; index < conflicts.length; index += 1) {
374
- const column: string = conflicts[index];
375
- if (!columns.includes(column)) {
376
- throw new Error(`upsert conflict column is not supplied: ${column}`);
377
- }
378
- }
379
- const conflictSql: string = conflicts.map((column) => this.quote(column)).join(", ");
380
- const updates: string[] = columns.filter((column) => !conflicts.includes(column));
381
- const action: string =
382
- updates.length === 0
383
- ? "DO NOTHING"
384
- : `DO UPDATE SET ${updates.map((column) => `${this.quote(column)} = excluded.${this.quote(column)}`).join(", ")}`;
385
- const placeholders: string = columns.map(() => "?").join(", ");
386
- const sql: string = `INSERT INTO ${this.quote(this.table)} (${columns.map((column) => this.quote(column)).join(", ")}) VALUES (${placeholders}) ON CONFLICT(${conflictSql}) ${action}`;
387
- return this.run(sql, ...params);
388
- }
389
-
390
- /**
391
- * Build a SELECT column list.
392
- *
393
- * @param columns - Optional columns; omitted means all columns.
394
- * @returns SQL column list.
395
- */
396
- private selectList(columns?: readonly string[]): string {
397
- if (columns === (void 0) || columns.length === 0) {
398
- return "*";
399
- }
400
- return columns.map((column) => this.quote(column)).join(", ");
401
- }
402
-
403
- /**
404
- * Execute a trusted statement with bound parameters.
405
- *
406
- * @param sql - Complete SQL statement.
407
- * @param params - Bound values.
408
- * @returns Mutation metadata.
409
- */
410
- protected run(sql: string, ...params: SqlParameter[]): MutationResult {
411
- const result: RawMutationResult = this.db.prepare(sql).run(...params);
412
- return {
413
- changes: Number(result.changes),
414
- lastInsertRowid: result.lastInsertRowid,
415
- };
416
- }
417
-
418
- /**
419
- * Read rows from a trusted statement.
420
- *
421
- * @typeParam TRow - Row shape.
422
- * @param sql - Complete SQL statement.
423
- * @param params - Bound values.
424
- * @returns Rows.
425
- */
426
- query<TRow>(sql: string, ...params: SqlParameter[]): TRow[] {
427
- return this.db.prepare(sql).all(...params) as TRow[];
428
- }
429
-
430
- /**
431
- * Read one row from a trusted statement.
432
- *
433
- * @typeParam TRow - Row shape.
434
- * @param sql - Complete SQL statement.
435
- * @param params - Bound values.
436
- * @returns The row, or `undefined`.
437
- */
438
- queryOne<TRow>(sql: string, ...params: SqlParameter[]): TRow | undefined {
439
- return this.db.prepare(sql).get(...params) as TRow | undefined;
440
- }
441
-
442
- /**
443
- * Quote an identifier after validating it.
444
- *
445
- * @param identifier - Table or column name.
446
- * @returns Double-quoted identifier.
447
- */
448
- protected quote(identifier: string): string {
449
- return `"${assertSqlIdentifier(identifier)}"`;
450
- }
451
-
452
- /**
453
- * Check that the table metadata is internally consistent.
454
- */
455
- private assertMeta(): void {
456
- assertSqlIdentifier(this.meta.table);
457
- assertSqlIdentifier(this.meta.primaryKey);
458
- if (this.meta.columns.length === 0) {
459
- throw new Error(`table ${this.meta.table} must declare at least one column`);
460
- }
461
- if (!this.columnSet.has(this.meta.primaryKey)) {
462
- throw new Error(`primary key ${this.meta.primaryKey} is not listed in columns`);
463
- }
464
- for (let index: number = 0; index < this.meta.columns.length; index += 1) {
465
- assertSqlIdentifier(this.meta.columns[index]);
466
- }
467
- }
468
-
469
- /**
470
- * Select writable columns from a value map.
471
- *
472
- * @param values - Caller-supplied values.
473
- * @param includePrimaryKey - Whether the primary key is writable.
474
- * @returns Ordered column names.
475
- */
476
- private collectColumns(values: Readonly<Record<string, unknown>>, includePrimaryKey: boolean): string[] {
477
- const keys: string[] = Object.keys(values);
478
- const columns: string[] = [];
479
- for (let index: number = 0; index < keys.length; index += 1) {
480
- const column: string = keys[index];
481
- if (!this.columnSet.has(column)) {
482
- throw new Error(`unknown column for ${this.table}: ${column}`);
483
- }
484
- if (!includePrimaryKey && column === this.primaryKey) {
485
- continue;
486
- }
487
- columns.push(column);
488
- }
489
- if (columns.length === 0) {
490
- throw new Error(`no writable columns supplied for ${this.table}`);
491
- }
492
- return columns;
493
- }
494
-
495
- /**
496
- * Build bound parameters in column order.
497
- *
498
- * @param values - Caller-supplied values.
499
- * @param columns - Ordered column names.
500
- * @returns Bindable parameters.
501
- */
502
- private collectParams(values: Readonly<Record<string, unknown>>, columns: readonly string[]): SqlParameter[] {
503
- const params: SqlParameter[] = [];
504
- for (let index: number = 0; index < columns.length; index += 1) {
505
- params.push(toSqlParameter(values[columns[index]]));
506
- }
507
- return params;
508
- }
509
-
510
- /**
511
- * Validate and normalize a LIMIT value.
512
- *
513
- * @param limit - Requested row count.
514
- * @returns A non-negative integer.
515
- */
516
- private normalizeLimit(limit: number): number {
517
- if (!Number.isInteger(limit) || limit < 0) {
518
- throw new RangeError("limit must be a non-negative integer");
519
- }
520
- return limit;
521
- }
522
- }
523
-
524
- /**
525
- * Concrete SQL adapter for a table that only needs generated CRUD statements.
526
- *
527
- * Table-specific operations can instead subclass {@link Sql} and use the
528
- * public query helpers.
529
- *
530
- * @typeParam TEntity - Row shape returned by the table.
531
- * @typeParam TKey - Primary-key type.
532
- */
533
- export class TableSql<TEntity extends object, TKey extends PrimaryKey = PrimaryKey> extends Sql<TEntity, TKey> {
534
- /**
535
- * Create a generated table adapter.
536
- *
537
- * @param db - Open SQLite connection.
538
- * @param meta - Table, primary key and column metadata.
539
- */
540
- constructor(db: DatabaseSync, meta: TableMeta) {
541
- super(db, meta);
542
- }
543
- }