attention-manifest-protocol 0.4.0 → 0.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (627) hide show
  1. package/CHANGELOG.md +250 -226
  2. package/CHANGELOG.zh-CN.md +63 -39
  3. package/README.md +22 -1
  4. package/README.zh-CN.md +22 -1
  5. package/docs/probes/calibration-imported.json +141 -141
  6. package/docs/probes/eval-recorded-replay.json +597 -597
  7. package/docs/probes/eval-replay.json +124 -124
  8. package/docs/probes/eval-summary.json +42 -42
  9. package/docs/probes/runtime-eval.json +4230 -4230
  10. package/lib/attention/attention.d.ts +153 -0
  11. package/lib/attention/attention.js +209 -0
  12. package/lib/attention/budget.d.ts +31 -0
  13. package/lib/attention/budget.js +55 -0
  14. package/lib/attention/cognition.d.ts +230 -0
  15. package/lib/attention/cognition.js +245 -0
  16. package/lib/attention/index.d.ts +8 -0
  17. package/lib/attention/index.js +7 -0
  18. package/lib/attention/interrupts.d.ts +97 -0
  19. package/lib/attention/interrupts.js +151 -0
  20. package/lib/attention/resource.d.ts +167 -0
  21. package/lib/attention/resource.js +148 -0
  22. package/lib/attention/social.d.ts +74 -0
  23. package/lib/attention/social.js +153 -0
  24. package/lib/attention/socialTypes.d.ts +102 -0
  25. package/lib/attention/socialTypes.js +1 -0
  26. package/lib/authz/authz.d.ts +75 -0
  27. package/lib/authz/authz.js +176 -0
  28. package/lib/authz/index.d.ts +1 -0
  29. package/lib/authz/index.js +1 -0
  30. package/lib/bayes/calibration.d.ts +67 -0
  31. package/lib/bayes/calibration.js +114 -0
  32. package/lib/bayes/calibrationRegistry.d.ts +39 -0
  33. package/lib/bayes/calibrationRegistry.js +61 -0
  34. package/lib/bayes/calibrationSelection.d.ts +40 -0
  35. package/lib/bayes/calibrationSelection.js +89 -0
  36. package/lib/bayes/engine.d.ts +163 -0
  37. package/lib/bayes/engine.js +354 -0
  38. package/lib/bayes/index.d.ts +6 -0
  39. package/lib/bayes/index.js +6 -0
  40. package/lib/bayes/reliability.d.ts +27 -0
  41. package/lib/bayes/reliability.js +38 -0
  42. package/lib/bayes/scopedPriors.d.ts +34 -0
  43. package/lib/bayes/scopedPriors.js +70 -0
  44. package/lib/boundary/frame.d.ts +63 -0
  45. package/lib/boundary/frame.js +239 -0
  46. package/lib/boundary/ids.d.ts +8 -0
  47. package/lib/boundary/ids.js +12 -0
  48. package/lib/boundary/index.d.ts +12 -0
  49. package/lib/boundary/index.js +8 -0
  50. package/lib/boundary/refTable.d.ts +49 -0
  51. package/lib/boundary/refTable.js +92 -0
  52. package/lib/boundary/toolCall.d.ts +33 -0
  53. package/lib/boundary/toolCall.js +173 -0
  54. package/lib/concept/concept.d.ts +67 -0
  55. package/lib/concept/concept.js +1 -0
  56. package/lib/concept/conceptBudget.d.ts +56 -0
  57. package/lib/concept/conceptBudget.js +281 -0
  58. package/lib/concept/conceptBudgetTypes.d.ts +74 -0
  59. package/lib/concept/conceptBudgetTypes.js +1 -0
  60. package/lib/concept/index.d.ts +3 -0
  61. package/lib/concept/index.js +3 -0
  62. package/lib/concurrency/idempotency.d.ts +16 -0
  63. package/lib/concurrency/idempotency.js +21 -0
  64. package/lib/concurrency/index.d.ts +5 -0
  65. package/lib/concurrency/index.js +5 -0
  66. package/lib/concurrency/mutex.d.ts +13 -0
  67. package/lib/concurrency/mutex.js +26 -0
  68. package/lib/concurrency/namedLocks.d.ts +7 -0
  69. package/lib/concurrency/namedLocks.js +31 -0
  70. package/lib/concurrency/retry.d.ts +23 -0
  71. package/lib/concurrency/retry.js +38 -0
  72. package/lib/concurrency/worker.d.ts +42 -0
  73. package/lib/concurrency/worker.js +67 -0
  74. package/lib/context/agentContext.d.ts +58 -0
  75. package/lib/context/agentContext.js +197 -0
  76. package/lib/context/ast.d.ts +98 -0
  77. package/lib/context/ast.js +414 -0
  78. package/lib/context/contentStore.d.ts +16 -0
  79. package/lib/context/contentStore.js +61 -0
  80. package/lib/context/context.d.ts +15 -0
  81. package/lib/context/context.js +39 -0
  82. package/lib/context/contextIndex.d.ts +40 -0
  83. package/lib/context/contextIndex.js +64 -0
  84. package/lib/context/document.d.ts +102 -0
  85. package/lib/context/document.js +22 -0
  86. package/lib/context/fileStorePath.d.ts +1 -0
  87. package/lib/context/fileStorePath.js +13 -0
  88. package/lib/context/index.d.ts +22 -0
  89. package/lib/context/index.js +11 -0
  90. package/lib/context/lifecycle.d.ts +91 -0
  91. package/lib/context/lifecycle.js +163 -0
  92. package/lib/context/projections.d.ts +20 -0
  93. package/lib/context/projections.js +127 -0
  94. package/lib/context/workspace.d.ts +111 -0
  95. package/lib/context/workspace.js +318 -0
  96. package/lib/context/workspaceProtocol.d.ts +30 -0
  97. package/lib/context/workspaceProtocol.js +49 -0
  98. package/lib/context/workspaceService.d.ts +63 -0
  99. package/lib/context/workspaceService.js +352 -0
  100. package/lib/cooperation/board.d.ts +47 -0
  101. package/lib/cooperation/board.js +66 -0
  102. package/lib/cooperation/collaboration.d.ts +55 -0
  103. package/lib/cooperation/collaboration.js +1 -0
  104. package/lib/cooperation/index.d.ts +6 -0
  105. package/lib/cooperation/index.js +6 -0
  106. package/lib/cooperation/merge.d.ts +69 -0
  107. package/lib/cooperation/merge.js +109 -0
  108. package/lib/cooperation/metrics.d.ts +39 -0
  109. package/lib/cooperation/metrics.js +17 -0
  110. package/lib/cooperation/session.d.ts +75 -0
  111. package/lib/cooperation/session.js +74 -0
  112. package/lib/cooperation/unified.d.ts +38 -0
  113. package/lib/cooperation/unified.js +40 -0
  114. package/lib/database/adapter/adapters.d.ts +24 -0
  115. package/lib/database/adapter/adapters.js +31 -0
  116. package/lib/database/adapter/index.d.ts +4 -0
  117. package/lib/database/adapter/index.js +4 -0
  118. package/lib/database/adapter/runtimeSink.d.ts +20 -0
  119. package/lib/database/adapter/runtimeSink.js +50 -0
  120. package/lib/database/adapter/sessionStore.d.ts +11 -0
  121. package/lib/database/adapter/sessionStore.js +23 -0
  122. package/lib/database/adapter/turnStore.d.ts +10 -0
  123. package/lib/database/adapter/turnStore.js +15 -0
  124. package/lib/database/entity/agent.d.ts +133 -0
  125. package/lib/database/entity/agent.js +61 -0
  126. package/lib/database/entity/entity.d.ts +715 -0
  127. package/lib/database/entity/entity.js +372 -0
  128. package/lib/database/entity/handle.d.ts +31 -0
  129. package/lib/database/entity/handle.js +53 -0
  130. package/lib/database/entity/index.d.ts +32 -0
  131. package/lib/database/entity/index.js +22 -0
  132. package/lib/database/entity/message.d.ts +27 -0
  133. package/lib/database/entity/message.js +52 -0
  134. package/lib/database/entity/meta.d.ts +11 -0
  135. package/lib/database/entity/meta.js +1 -0
  136. package/lib/database/entity/object.d.ts +23 -0
  137. package/lib/database/entity/object.js +24 -0
  138. package/lib/database/entity/outbox.d.ts +9 -0
  139. package/lib/database/entity/outbox.js +5 -0
  140. package/lib/database/entity/process.d.ts +30 -0
  141. package/lib/database/entity/process.js +40 -0
  142. package/lib/database/entity/registry.d.ts +81 -0
  143. package/lib/database/entity/registry.js +91 -0
  144. package/lib/database/entity/runtimeApproval.d.ts +23 -0
  145. package/lib/database/entity/runtimeApproval.js +5 -0
  146. package/lib/database/entity/runtimeSession.d.ts +7 -0
  147. package/lib/database/entity/runtimeSession.js +5 -0
  148. package/lib/database/entity/runtimeTurn.d.ts +9 -0
  149. package/lib/database/entity/runtimeTurn.js +5 -0
  150. package/lib/database/entity/thread.d.ts +35 -0
  151. package/lib/database/entity/thread.js +55 -0
  152. package/lib/database/entity/window.d.ts +39 -0
  153. package/lib/database/entity/window.js +56 -0
  154. package/lib/database/entity/worker.d.ts +42 -0
  155. package/lib/database/entity/worker.js +58 -0
  156. package/lib/database/index.d.ts +6 -0
  157. package/lib/database/index.js +6 -0
  158. package/lib/database/repository/addressSpaceRepository.d.ts +18 -0
  159. package/lib/database/repository/addressSpaceRepository.js +40 -0
  160. package/lib/database/repository/agentRepository.d.ts +41 -0
  161. package/lib/database/repository/agentRepository.js +398 -0
  162. package/lib/database/repository/base.d.ts +31 -0
  163. package/lib/database/repository/base.js +23 -0
  164. package/lib/database/repository/executionRepository.d.ts +64 -0
  165. package/lib/database/repository/executionRepository.js +379 -0
  166. package/lib/database/repository/handleRepository.d.ts +35 -0
  167. package/lib/database/repository/handleRepository.js +57 -0
  168. package/lib/database/repository/index.d.ts +20 -0
  169. package/lib/database/repository/index.js +17 -0
  170. package/lib/database/repository/messageRepository.d.ts +33 -0
  171. package/lib/database/repository/messageRepository.js +45 -0
  172. package/lib/database/repository/objectRepository.d.ts +43 -0
  173. package/lib/database/repository/objectRepository.js +60 -0
  174. package/lib/database/repository/outboxRepository.d.ts +15 -0
  175. package/lib/database/repository/outboxRepository.js +51 -0
  176. package/lib/database/repository/processRepository.d.ts +31 -0
  177. package/lib/database/repository/processRepository.js +48 -0
  178. package/lib/database/repository/registryRepository.d.ts +72 -0
  179. package/lib/database/repository/registryRepository.js +95 -0
  180. package/lib/database/repository/repository.d.ts +322 -0
  181. package/lib/database/repository/repository.js +332 -0
  182. package/lib/database/repository/runtimeApprovalRepository.d.ts +14 -0
  183. package/lib/database/repository/runtimeApprovalRepository.js +35 -0
  184. package/lib/database/repository/runtimeSessionRepository.d.ts +9 -0
  185. package/lib/database/repository/runtimeSessionRepository.js +21 -0
  186. package/lib/database/repository/runtimeTurnRepository.d.ts +10 -0
  187. package/lib/database/repository/runtimeTurnRepository.js +32 -0
  188. package/lib/database/repository/socialRepository.d.ts +22 -0
  189. package/lib/database/repository/socialRepository.js +155 -0
  190. package/lib/database/repository/threadRepository.d.ts +29 -0
  191. package/lib/database/repository/threadRepository.js +48 -0
  192. package/lib/database/repository/windowRepository.d.ts +46 -0
  193. package/lib/database/repository/windowRepository.js +68 -0
  194. package/lib/database/repository/workerRepository.d.ts +38 -0
  195. package/lib/database/repository/workerRepository.js +61 -0
  196. package/lib/database/service/database.d.ts +55 -0
  197. package/lib/database/service/database.js +77 -0
  198. package/lib/database/service/handleService.d.ts +20 -0
  199. package/lib/database/service/handleService.js +34 -0
  200. package/lib/database/service/index.d.ts +16 -0
  201. package/lib/database/service/index.js +11 -0
  202. package/lib/database/service/messageService.d.ts +26 -0
  203. package/lib/database/service/messageService.js +40 -0
  204. package/lib/database/service/objectService.d.ts +32 -0
  205. package/lib/database/service/objectService.js +31 -0
  206. package/lib/database/service/processService.d.ts +22 -0
  207. package/lib/database/service/processService.js +45 -0
  208. package/lib/database/service/registryServices.d.ts +43 -0
  209. package/lib/database/service/registryServices.js +60 -0
  210. package/lib/database/service/service.d.ts +131 -0
  211. package/lib/database/service/service.js +153 -0
  212. package/lib/database/service/stepService.d.ts +23 -0
  213. package/lib/database/service/stepService.js +35 -0
  214. package/lib/database/service/threadService.d.ts +23 -0
  215. package/lib/database/service/threadService.js +48 -0
  216. package/lib/database/service/windowService.d.ts +15 -0
  217. package/lib/database/service/windowService.js +22 -0
  218. package/lib/database/service/workerService.d.ts +28 -0
  219. package/lib/database/service/workerService.js +34 -0
  220. package/lib/database/sql/index.d.ts +3 -0
  221. package/lib/database/sql/index.js +2 -0
  222. package/lib/database/sql/schema.d.ts +5 -0
  223. package/lib/database/sql/schema.js +416 -0
  224. package/lib/database/sql/sql.d.ts +290 -0
  225. package/lib/database/sql/sql.js +430 -0
  226. package/lib/database/store/database.d.ts +75 -0
  227. package/lib/database/store/database.js +143 -0
  228. package/lib/database/store/index.d.ts +3 -0
  229. package/lib/database/store/index.js +2 -0
  230. package/lib/database/store/store.d.ts +145 -0
  231. package/lib/database/store/store.js +192 -0
  232. package/lib/delegate/index.d.ts +2 -0
  233. package/lib/delegate/index.js +2 -0
  234. package/lib/delegate/team.d.ts +92 -0
  235. package/lib/delegate/team.js +200 -0
  236. package/lib/delegate/teamTypes.d.ts +43 -0
  237. package/lib/delegate/teamTypes.js +1 -0
  238. package/lib/diagnosis/checklist.d.ts +16 -0
  239. package/lib/diagnosis/checklist.js +61 -0
  240. package/lib/diagnosis/context.d.ts +19 -0
  241. package/lib/diagnosis/context.js +79 -0
  242. package/lib/diagnosis/frame.d.ts +34 -0
  243. package/lib/diagnosis/frame.js +230 -0
  244. package/lib/diagnosis/index.d.ts +5 -0
  245. package/lib/diagnosis/index.js +5 -0
  246. package/lib/diagnosis/router.d.ts +22 -0
  247. package/lib/diagnosis/router.js +47 -0
  248. package/lib/diagnosis/types.d.ts +78 -0
  249. package/lib/diagnosis/types.js +2 -0
  250. package/lib/error/agentError.d.ts +9 -0
  251. package/lib/error/agentError.js +13 -0
  252. package/lib/error/ampError.d.ts +14 -0
  253. package/lib/error/ampError.js +19 -0
  254. package/lib/error/authzError.d.ts +10 -0
  255. package/lib/error/authzError.js +11 -0
  256. package/lib/error/boundaryRejection.d.ts +16 -0
  257. package/lib/error/boundaryRejection.js +14 -0
  258. package/lib/error/index.d.ts +7 -0
  259. package/lib/error/index.js +7 -0
  260. package/lib/error/kernelError.d.ts +11 -0
  261. package/lib/error/kernelError.js +12 -0
  262. package/lib/error/mailboxError.d.ts +5 -0
  263. package/lib/error/mailboxError.js +6 -0
  264. package/lib/error/windowError.d.ts +8 -0
  265. package/lib/error/windowError.js +9 -0
  266. package/lib/evaluation/agreement.d.ts +22 -0
  267. package/lib/evaluation/agreement.js +82 -0
  268. package/lib/evaluation/index.d.ts +2 -0
  269. package/lib/evaluation/index.js +2 -0
  270. package/lib/evaluation/labels.d.ts +56 -0
  271. package/lib/evaluation/labels.js +206 -0
  272. package/lib/evidence/evidenceGraph.d.ts +37 -0
  273. package/lib/evidence/evidenceGraph.js +165 -0
  274. package/lib/evidence/index.d.ts +4 -0
  275. package/lib/evidence/index.js +2 -0
  276. package/lib/evidence/revalidation.d.ts +70 -0
  277. package/lib/evidence/revalidation.js +146 -0
  278. package/lib/execution/exec.d.ts +151 -0
  279. package/lib/execution/exec.js +282 -0
  280. package/lib/execution/handles.d.ts +25 -0
  281. package/lib/execution/handles.js +45 -0
  282. package/lib/execution/index.d.ts +3 -0
  283. package/lib/execution/index.js +3 -0
  284. package/lib/execution/pin.d.ts +60 -0
  285. package/lib/execution/pin.js +103 -0
  286. package/lib/frame/frame.d.ts +61 -0
  287. package/lib/frame/frame.js +1 -0
  288. package/lib/frame/index.d.ts +1 -0
  289. package/lib/frame/index.js +1 -0
  290. package/lib/goal/goal.d.ts +19 -0
  291. package/lib/goal/goal.js +21 -0
  292. package/lib/goal/index.d.ts +2 -0
  293. package/lib/goal/index.js +1 -0
  294. package/lib/goal/plan.d.ts +125 -0
  295. package/lib/goal/plan.js +60 -0
  296. package/lib/governance/attentionManifest.d.ts +279 -0
  297. package/lib/governance/attentionManifest.js +467 -0
  298. package/lib/governance/audit.d.ts +123 -0
  299. package/lib/governance/audit.js +263 -0
  300. package/lib/governance/budget.d.ts +219 -0
  301. package/lib/governance/budget.js +424 -0
  302. package/lib/governance/context.d.ts +159 -0
  303. package/lib/governance/context.js +229 -0
  304. package/lib/governance/control.d.ts +65 -0
  305. package/lib/governance/control.js +89 -0
  306. package/lib/governance/cooperation.d.ts +163 -0
  307. package/lib/governance/cooperation.js +350 -0
  308. package/lib/governance/credential.d.ts +117 -0
  309. package/lib/governance/credential.js +229 -0
  310. package/lib/governance/httpServer.d.ts +18 -0
  311. package/lib/governance/httpServer.js +74 -0
  312. package/lib/governance/index.d.ts +32 -0
  313. package/lib/governance/index.js +32 -0
  314. package/lib/governance/legal.d.ts +222 -0
  315. package/lib/governance/legal.js +371 -0
  316. package/lib/governance/matrix.d.ts +170 -0
  317. package/lib/governance/matrix.js +365 -0
  318. package/lib/governance/perspectives.d.ts +98 -0
  319. package/lib/governance/perspectives.js +340 -0
  320. package/lib/governance/signing.d.ts +131 -0
  321. package/lib/governance/signing.js +241 -0
  322. package/lib/governance/store.d.ts +33 -0
  323. package/lib/governance/store.js +89 -0
  324. package/lib/governance/switching.d.ts +183 -0
  325. package/lib/governance/switching.js +257 -0
  326. package/lib/governance/toolPolicy.d.ts +37 -0
  327. package/lib/governance/toolPolicy.js +42 -0
  328. package/lib/governance/transport.d.ts +76 -0
  329. package/lib/governance/transport.js +124 -0
  330. package/lib/governance/types.d.ts +218 -0
  331. package/lib/governance/types.js +72 -0
  332. package/lib/governance/workflow.d.ts +174 -0
  333. package/lib/governance/workflow.js +612 -0
  334. package/lib/index.d.ts +11 -0
  335. package/lib/index.js +11 -0
  336. package/lib/interaction/index.d.ts +1 -0
  337. package/lib/interaction/index.js +1 -0
  338. package/lib/interaction/interaction.d.ts +83 -0
  339. package/lib/interaction/interaction.js +256 -0
  340. package/lib/ipc/index.d.ts +4 -0
  341. package/lib/ipc/index.js +3 -0
  342. package/lib/ipc/mailbox.d.ts +37 -0
  343. package/lib/ipc/mailbox.js +77 -0
  344. package/lib/ipc/memorySocialStore.d.ts +14 -0
  345. package/lib/ipc/memorySocialStore.js +83 -0
  346. package/lib/ipc/social.d.ts +80 -0
  347. package/lib/ipc/social.js +1 -0
  348. package/lib/kernel/index.d.ts +2 -0
  349. package/lib/kernel/index.js +1 -0
  350. package/lib/kernel/scheduler.d.ts +195 -0
  351. package/lib/kernel/scheduler.js +334 -0
  352. package/lib/ledger/checkpoint.d.ts +116 -0
  353. package/lib/ledger/checkpoint.js +223 -0
  354. package/lib/ledger/index.d.ts +4 -0
  355. package/lib/ledger/index.js +4 -0
  356. package/lib/ledger/ledger.d.ts +21 -0
  357. package/lib/ledger/ledger.js +23 -0
  358. package/lib/ledger/persistence.d.ts +46 -0
  359. package/lib/ledger/persistence.js +106 -0
  360. package/lib/ledger/share.d.ts +29 -0
  361. package/lib/ledger/share.js +39 -0
  362. package/lib/lock/index.d.ts +2 -0
  363. package/lib/lock/index.js +1 -0
  364. package/lib/lock/lease.d.ts +23 -0
  365. package/lib/lock/lease.js +42 -0
  366. package/lib/manifest/agentCard.d.ts +35 -0
  367. package/lib/manifest/agentCard.js +38 -0
  368. package/lib/manifest/cardSign.d.ts +25 -0
  369. package/lib/manifest/cardSign.js +70 -0
  370. package/lib/manifest/federation.d.ts +64 -0
  371. package/lib/manifest/federation.js +187 -0
  372. package/lib/manifest/federationTypes.d.ts +51 -0
  373. package/lib/manifest/federationTypes.js +1 -0
  374. package/lib/manifest/index.d.ts +8 -0
  375. package/lib/manifest/index.js +8 -0
  376. package/lib/manifest/keys.d.ts +221 -0
  377. package/lib/manifest/keys.js +484 -0
  378. package/lib/manifest/manifest.d.ts +102 -0
  379. package/lib/manifest/manifest.js +1 -0
  380. package/lib/manifest/sign.d.ts +38 -0
  381. package/lib/manifest/sign.js +90 -0
  382. package/lib/manifest/trust.d.ts +54 -0
  383. package/lib/manifest/trust.js +87 -0
  384. package/lib/mission/index.d.ts +2 -0
  385. package/lib/mission/index.js +1 -0
  386. package/lib/mission/missionQueue.d.ts +19 -0
  387. package/lib/mission/missionQueue.js +62 -0
  388. package/lib/module/index.d.ts +9 -0
  389. package/lib/module/index.js +9 -0
  390. package/lib/module/llm/deepseek.d.ts +43 -0
  391. package/lib/module/llm/deepseek.js +162 -0
  392. package/lib/module/llm/llm.d.ts +64 -0
  393. package/lib/module/llm/llm.js +16 -0
  394. package/lib/module/mcp/client.d.ts +32 -0
  395. package/lib/module/mcp/client.js +84 -0
  396. package/lib/module/mcp/http.d.ts +32 -0
  397. package/lib/module/mcp/http.js +83 -0
  398. package/lib/module/mcp/protocol.d.ts +62 -0
  399. package/lib/module/mcp/protocol.js +20 -0
  400. package/lib/module/mcp/server.d.ts +22 -0
  401. package/lib/module/mcp/server.js +138 -0
  402. package/lib/module/mcp/transport.d.ts +19 -0
  403. package/lib/module/mcp/transport.js +16 -0
  404. package/lib/module/mcp/workspaceServer.d.ts +20 -0
  405. package/lib/module/mcp/workspaceServer.js +90 -0
  406. package/lib/module/sandbox/sandbox.d.ts +24 -0
  407. package/lib/module/sandbox/sandbox.js +5 -0
  408. package/lib/module/tool/mcpExecutor.d.ts +18 -0
  409. package/lib/module/tool/mcpExecutor.js +41 -0
  410. package/lib/module/tool/policy.d.ts +30 -0
  411. package/lib/module/tool/policy.js +23 -0
  412. package/lib/module/tool/redact.d.ts +9 -0
  413. package/lib/module/tool/redact.js +19 -0
  414. package/lib/module/tool/tool.d.ts +26 -0
  415. package/lib/module/tool/tool.js +24 -0
  416. package/lib/module/tool/workspaceExecutor.d.ts +12 -0
  417. package/lib/module/tool/workspaceExecutor.js +25 -0
  418. package/lib/policy/guard.d.ts +115 -0
  419. package/lib/policy/guard.js +154 -0
  420. package/lib/policy/index.d.ts +2 -0
  421. package/lib/policy/index.js +2 -0
  422. package/lib/policy/policy.d.ts +249 -0
  423. package/lib/policy/policy.js +364 -0
  424. package/lib/process/agent.d.ts +295 -0
  425. package/lib/process/agent.js +1 -0
  426. package/lib/process/agentService.d.ts +87 -0
  427. package/lib/process/agentService.js +128 -0
  428. package/lib/process/agentStore.d.ts +35 -0
  429. package/lib/process/agentStore.js +328 -0
  430. package/lib/process/executionStore.d.ts +79 -0
  431. package/lib/process/executionStore.js +71 -0
  432. package/lib/process/index.d.ts +5 -0
  433. package/lib/process/index.js +5 -0
  434. package/lib/process/process.d.ts +120 -0
  435. package/lib/process/process.js +111 -0
  436. package/lib/process/transitions.d.ts +11 -0
  437. package/lib/process/transitions.js +8 -0
  438. package/lib/progress/index.d.ts +2 -0
  439. package/lib/progress/index.js +1 -0
  440. package/lib/progress/progress.d.ts +26 -0
  441. package/lib/progress/progress.js +42 -0
  442. package/lib/protocol/a2a.d.ts +51 -0
  443. package/lib/protocol/a2a.js +79 -0
  444. package/lib/protocol/channel.d.ts +25 -0
  445. package/lib/protocol/channel.js +27 -0
  446. package/lib/protocol/envelope.d.ts +180 -0
  447. package/lib/protocol/envelope.js +495 -0
  448. package/lib/protocol/httpChannel.d.ts +33 -0
  449. package/lib/protocol/httpChannel.js +59 -0
  450. package/lib/protocol/index.d.ts +6 -0
  451. package/lib/protocol/index.js +6 -0
  452. package/lib/protocol/protocol.d.ts +120 -0
  453. package/lib/protocol/protocol.js +1 -0
  454. package/lib/protocol/wire.d.ts +12 -0
  455. package/lib/protocol/wire.js +55 -0
  456. package/lib/receipt/index.d.ts +1 -0
  457. package/lib/receipt/index.js +1 -0
  458. package/lib/receipt/receipt.d.ts +43 -0
  459. package/lib/receipt/receipt.js +1 -0
  460. package/lib/registry/content.d.ts +10 -0
  461. package/lib/registry/content.js +58 -0
  462. package/lib/registry/index.d.ts +4 -0
  463. package/lib/registry/index.js +2 -0
  464. package/lib/registry/registry.d.ts +109 -0
  465. package/lib/registry/registry.js +299 -0
  466. package/lib/runtime/action.d.ts +46 -0
  467. package/lib/runtime/action.js +39 -0
  468. package/lib/runtime/behavior.d.ts +110 -0
  469. package/lib/runtime/behavior.js +179 -0
  470. package/lib/runtime/behaviorTuning.d.ts +59 -0
  471. package/lib/runtime/behaviorTuning.js +95 -0
  472. package/lib/runtime/cognitiveRuntime.d.ts +189 -0
  473. package/lib/runtime/cognitiveRuntime.js +490 -0
  474. package/lib/runtime/escalation.d.ts +22 -0
  475. package/lib/runtime/escalation.js +15 -0
  476. package/lib/runtime/governedTask.d.ts +57 -0
  477. package/lib/runtime/governedTask.js +150 -0
  478. package/lib/runtime/index.d.ts +15 -0
  479. package/lib/runtime/index.js +15 -0
  480. package/lib/runtime/kernelRuntime.d.ts +33 -0
  481. package/lib/runtime/kernelRuntime.js +105 -0
  482. package/lib/runtime/operation.d.ts +30 -0
  483. package/lib/runtime/operation.js +1 -0
  484. package/lib/runtime/replay.d.ts +24 -0
  485. package/lib/runtime/replay.js +38 -0
  486. package/lib/runtime/routing.d.ts +12 -0
  487. package/lib/runtime/routing.js +44 -0
  488. package/lib/runtime/safety.d.ts +15 -0
  489. package/lib/runtime/safety.js +28 -0
  490. package/lib/runtime/session.d.ts +147 -0
  491. package/lib/runtime/session.js +214 -0
  492. package/lib/runtime/sessionStore.d.ts +24 -0
  493. package/lib/runtime/sessionStore.js +20 -0
  494. package/lib/runtime/telemetry.d.ts +24 -0
  495. package/lib/runtime/telemetry.js +33 -0
  496. package/lib/runtime/turnStore.d.ts +16 -0
  497. package/lib/runtime/turnStore.js +15 -0
  498. package/lib/scenario/index.d.ts +1 -0
  499. package/lib/scenario/index.js +1 -0
  500. package/lib/scenario/scenario.d.ts +52 -0
  501. package/lib/scenario/scenario.js +210 -0
  502. package/lib/semantic/canonical.d.ts +6 -0
  503. package/lib/semantic/canonical.js +22 -0
  504. package/lib/semantic/index.d.ts +2 -0
  505. package/lib/semantic/index.js +2 -0
  506. package/lib/semantic/sha256.d.ts +1 -0
  507. package/lib/semantic/sha256.js +66 -0
  508. package/lib/storage/appendLog.d.ts +145 -0
  509. package/lib/storage/appendLog.js +299 -0
  510. package/lib/storage/fileAppendSink.d.ts +7 -0
  511. package/lib/storage/fileAppendSink.js +34 -0
  512. package/lib/storage/index.d.ts +2 -0
  513. package/lib/storage/index.js +2 -0
  514. package/lib/store/bindCache.d.ts +9 -0
  515. package/lib/store/bindCache.js +18 -0
  516. package/lib/store/cache.d.ts +48 -0
  517. package/lib/store/cache.js +162 -0
  518. package/lib/store/context.d.ts +10 -0
  519. package/lib/store/context.js +27 -0
  520. package/lib/store/handleStore.d.ts +9 -0
  521. package/lib/store/handleStore.js +25 -0
  522. package/lib/store/index.d.ts +9 -0
  523. package/lib/store/index.js +8 -0
  524. package/lib/store/messageStore.d.ts +9 -0
  525. package/lib/store/messageStore.js +25 -0
  526. package/lib/store/objectStore.d.ts +9 -0
  527. package/lib/store/objectStore.js +25 -0
  528. package/lib/store/processStore.d.ts +9 -0
  529. package/lib/store/processStore.js +25 -0
  530. package/lib/store/threadStore.d.ts +9 -0
  531. package/lib/store/threadStore.js +25 -0
  532. package/lib/store/windowStore.d.ts +9 -0
  533. package/lib/store/windowStore.js +25 -0
  534. package/lib/structure/abstractSyntaxTree.d.ts +181 -0
  535. package/lib/structure/abstractSyntaxTree.js +400 -0
  536. package/lib/structure/avlTree.d.ts +125 -0
  537. package/lib/structure/avlTree.js +369 -0
  538. package/lib/structure/binarySearchTree.d.ts +125 -0
  539. package/lib/structure/binarySearchTree.js +306 -0
  540. package/lib/structure/binaryTree.d.ts +174 -0
  541. package/lib/structure/binaryTree.js +495 -0
  542. package/lib/structure/bloomFilter.d.ts +126 -0
  543. package/lib/structure/bloomFilter.js +177 -0
  544. package/lib/structure/compare.d.ts +55 -0
  545. package/lib/structure/compare.js +96 -0
  546. package/lib/structure/cuckooFilter.d.ts +149 -0
  547. package/lib/structure/cuckooFilter.js +267 -0
  548. package/lib/structure/deque.d.ts +117 -0
  549. package/lib/structure/deque.js +205 -0
  550. package/lib/structure/filterKey.d.ts +19 -0
  551. package/lib/structure/filterKey.js +28 -0
  552. package/lib/structure/hash.d.ts +129 -0
  553. package/lib/structure/hash.js +241 -0
  554. package/lib/structure/heap.d.ts +152 -0
  555. package/lib/structure/heap.js +227 -0
  556. package/lib/structure/index.d.ts +20 -0
  557. package/lib/structure/index.js +20 -0
  558. package/lib/structure/iterator.d.ts +6 -0
  559. package/lib/structure/iterator.js +16 -0
  560. package/lib/structure/lru.d.ts +235 -0
  561. package/lib/structure/lru.js +524 -0
  562. package/lib/structure/ordered.d.ts +89 -0
  563. package/lib/structure/ordered.js +336 -0
  564. package/lib/structure/priority.d.ts +499 -0
  565. package/lib/structure/priority.js +756 -0
  566. package/lib/structure/queue.d.ts +90 -0
  567. package/lib/structure/queue.js +154 -0
  568. package/lib/structure/redBlackTree.d.ts +142 -0
  569. package/lib/structure/redBlackTree.js +644 -0
  570. package/lib/structure/segmentTree.d.ts +129 -0
  571. package/lib/structure/segmentTree.js +205 -0
  572. package/lib/structure/stack.d.ts +77 -0
  573. package/lib/structure/stack.js +107 -0
  574. package/lib/structure/unordered.d.ts +99 -0
  575. package/lib/structure/unordered.js +341 -0
  576. package/lib/thread/index.d.ts +2 -0
  577. package/lib/thread/index.js +2 -0
  578. package/lib/thread/thread.d.ts +107 -0
  579. package/lib/thread/thread.js +81 -0
  580. package/lib/thread/transitions.d.ts +8 -0
  581. package/lib/thread/transitions.js +9 -0
  582. package/lib/types/common.d.ts +80 -0
  583. package/lib/types/common.js +5 -0
  584. package/lib/types/index.d.ts +23 -0
  585. package/lib/types/index.js +1 -0
  586. package/lib/warrant/epistemic.d.ts +141 -0
  587. package/lib/warrant/epistemic.js +1 -0
  588. package/lib/warrant/index.d.ts +3 -0
  589. package/lib/warrant/index.js +3 -0
  590. package/lib/warrant/inquiry.d.ts +69 -0
  591. package/lib/warrant/inquiry.js +119 -0
  592. package/lib/warrant/warrant.d.ts +46 -0
  593. package/lib/warrant/warrant.js +153 -0
  594. package/lib/window/compaction.d.ts +57 -0
  595. package/lib/window/compaction.js +334 -0
  596. package/lib/window/compactionTypes.d.ts +113 -0
  597. package/lib/window/compactionTypes.js +1 -0
  598. package/lib/window/index.d.ts +7 -0
  599. package/lib/window/index.js +3 -0
  600. package/lib/window/page.d.ts +16 -0
  601. package/lib/window/page.js +2 -0
  602. package/lib/window/window.d.ts +68 -0
  603. package/lib/window/window.js +194 -0
  604. package/package.json +22 -1
  605. package/src/authz/index.ts +1 -0
  606. package/src/concept/index.ts +3 -0
  607. package/src/concurrency/index.ts +5 -0
  608. package/src/cooperation/index.ts +6 -0
  609. package/src/delegate/index.ts +2 -0
  610. package/src/error/index.ts +7 -0
  611. package/src/evaluation/index.ts +2 -0
  612. package/src/execution/index.ts +3 -0
  613. package/src/frame/index.ts +1 -0
  614. package/src/index.ts +11 -0
  615. package/src/ledger/index.ts +4 -0
  616. package/src/manifest/index.ts +8 -0
  617. package/src/policy/index.ts +2 -0
  618. package/src/protocol/index.ts +6 -0
  619. package/src/receipt/index.ts +1 -0
  620. package/src/semantic/index.ts +2 -0
  621. package/src/storage/index.ts +2 -0
  622. package/src/structure/index.ts +20 -0
  623. package/src/thread/index.ts +2 -0
  624. package/src/warrant/index.ts +3 -0
  625. package/src/window/index.ts +7 -4
  626. package/tools/rewrite-declaration-extensions.ts +98 -0
  627. package/tsconfig.build.json +14 -0
@@ -0,0 +1,177 @@
1
+ import { hashBytes } from "./hash.js";
2
+ import { assertFilterKey, filterKeyBytes } from "./filterKey.js";
3
+ const DefaultFalsePositiveRate = 0.01;
4
+ const DefaultMaxBits = 2 ** 31;
5
+ const SecondHashSeed = 0x9e3779b97f4a7c15n;
6
+ const LN2 = Math.LN2;
7
+ /**
8
+ * A Bloom filter over string or `Uint8Array` keys.
9
+ *
10
+ * `size` counts calls to {@link add}, not distinct keys: a Bloom filter cannot
11
+ * know whether a key was already present. `setBits` and `fillRatio` expose the
12
+ * actual bit occupancy, which is the useful signal for saturation.
13
+ */
14
+ export class BloomFilter {
15
+ /**
16
+ * Requested expected key count.
17
+ */
18
+ expectedItems;
19
+ /**
20
+ * Requested target false-positive rate.
21
+ */
22
+ falsePositiveRate;
23
+ /**
24
+ * Number of bits in the filter.
25
+ */
26
+ bitSize;
27
+ /**
28
+ * Number of double-hashed probes per key.
29
+ */
30
+ hashCount;
31
+ /**
32
+ * Number of bytes allocated for the bit array.
33
+ */
34
+ byteSize;
35
+ bits;
36
+ seed;
37
+ insertions = 0;
38
+ bitsSet = 0;
39
+ /**
40
+ * Build a filter sized for `expectedItems` at `falsePositiveRate`.
41
+ *
42
+ * @throws RangeError for non-positive/non-integer item counts, rates outside
43
+ * `(0, 1)`, or a computed bit count above `maxBits`.
44
+ */
45
+ constructor(options) {
46
+ if (options === null || typeof (options) !== "object") {
47
+ throw new TypeError("options must be an object");
48
+ }
49
+ if (!Number.isSafeInteger(options.expectedItems) || options.expectedItems <= 0) {
50
+ throw new RangeError("expectedItems must be a positive safe integer");
51
+ }
52
+ const rate = options.falsePositiveRate ?? DefaultFalsePositiveRate;
53
+ if (!Number.isFinite(rate) || rate <= 0 || rate >= 1) {
54
+ throw new RangeError("falsePositiveRate must be a finite number in (0, 1)");
55
+ }
56
+ const maxBits = options.maxBits ?? DefaultMaxBits;
57
+ if (!Number.isSafeInteger(maxBits) || maxBits <= 0) {
58
+ throw new RangeError("maxBits must be a positive safe integer");
59
+ }
60
+ const idealBits = Math.ceil((-options.expectedItems * Math.log(rate)) / (LN2 * LN2));
61
+ if (!Number.isSafeInteger(idealBits) || idealBits > maxBits) {
62
+ throw new RangeError(`filter would need ${`${idealBits}`} bits, exceeding maxBits ${maxBits}`);
63
+ }
64
+ this.expectedItems = options.expectedItems;
65
+ this.falsePositiveRate = rate;
66
+ this.bitSize = Math.max(1, idealBits);
67
+ this.hashCount = Math.max(1, Math.min(32, Math.round((this.bitSize / options.expectedItems) * LN2)));
68
+ this.byteSize = Math.ceil(this.bitSize / 8);
69
+ this.bits = new Uint8Array(this.byteSize);
70
+ this.seed = options.seed ?? 0n;
71
+ }
72
+ /**
73
+ * Insert a key.
74
+ *
75
+ * Duplicate insertion is harmless and increments {@link size}; the bit
76
+ * occupancy only changes for bits that were previously unset.
77
+ *
78
+ * @param key - String or byte key.
79
+ * @returns This filter, for chaining.
80
+ */
81
+ add(key) {
82
+ assertFilterKey(key);
83
+ const bytes = filterKeyBytes(key);
84
+ const primary = hashBytes(bytes, this.seed) % BigInt(this.bitSize);
85
+ const step = (hashBytes(bytes, this.seed ^ SecondHashSeed) | 1n) % BigInt(this.bitSize);
86
+ let position = primary;
87
+ for (let probe = 0; probe < this.hashCount; probe += 1) {
88
+ this.setBit(Number(position));
89
+ position = (position + step) % BigInt(this.bitSize);
90
+ }
91
+ this.insertions += 1;
92
+ return this;
93
+ }
94
+ /**
95
+ * Test a key.
96
+ *
97
+ * `false` means the key was definitely not inserted (or the filter was
98
+ * cleared). `true` may be a false positive.
99
+ */
100
+ has(key) {
101
+ assertFilterKey(key);
102
+ const bytes = filterKeyBytes(key);
103
+ const primary = hashBytes(bytes, this.seed) % BigInt(this.bitSize);
104
+ const step = (hashBytes(bytes, this.seed ^ SecondHashSeed) | 1n) % BigInt(this.bitSize);
105
+ let position = primary;
106
+ for (let probe = 0; probe < this.hashCount; probe += 1) {
107
+ if (!this.getBit(Number(position))) {
108
+ return false;
109
+ }
110
+ position = (position + step) % BigInt(this.bitSize);
111
+ }
112
+ return true;
113
+ }
114
+ /**
115
+ * Remove every key and reset all counters.
116
+ */
117
+ clear() {
118
+ this.bits.fill(0);
119
+ this.insertions = 0;
120
+ this.bitsSet = 0;
121
+ }
122
+ /**
123
+ * Number of `add` calls, including duplicates.
124
+ */
125
+ get size() {
126
+ return this.insertions;
127
+ }
128
+ /**
129
+ * Number of bits currently set to one.
130
+ */
131
+ get setBits() {
132
+ return this.bitsSet;
133
+ }
134
+ /**
135
+ * Fraction of bits set to one.
136
+ */
137
+ get fillRatio() {
138
+ return this.bitsSet / this.bitSize;
139
+ }
140
+ /**
141
+ * True when every bit is set and the filter is fully saturated.
142
+ */
143
+ get isSaturated() {
144
+ return this.bitsSet === this.bitSize;
145
+ }
146
+ /**
147
+ * Estimated current false-positive probability from the number of inserted
148
+ * keys: `(1 - e^(-k*n/m))^k`.
149
+ */
150
+ get estimatedFalsePositiveRate() {
151
+ if (this.insertions === 0) {
152
+ return 0;
153
+ }
154
+ const exponent = (-this.hashCount * this.insertions) / this.bitSize;
155
+ return (1 - Math.exp(exponent)) ** this.hashCount;
156
+ }
157
+ /**
158
+ * Set one bit, updating the occupancy counter only on a 0 -> 1 change.
159
+ */
160
+ setBit(index) {
161
+ const byteIndex = index >>> 3;
162
+ const mask = 1 << (index & 7);
163
+ const current = this.bits[byteIndex] ?? 0;
164
+ if ((current & mask) === 0) {
165
+ this.bits[byteIndex] = current | mask;
166
+ this.bitsSet += 1;
167
+ }
168
+ }
169
+ /**
170
+ * Read one bit.
171
+ */
172
+ getBit(index) {
173
+ const byteIndex = index >>> 3;
174
+ const mask = 1 << (index & 7);
175
+ return ((this.bits[byteIndex] ?? 0) & mask) !== 0;
176
+ }
177
+ }
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Ordering primitives shared by the ordered structures.
3
+ *
4
+ * A comparator returns a negative number when `a` sorts before `b`, zero when
5
+ * they are equivalent for the structure, and a positive number otherwise.
6
+ * The structures only require a total preorder; duplicate equivalence is
7
+ * resolved by the container (e.g. a search tree keeps one representative).
8
+ */
9
+ /**
10
+ * Three-way comparison used by search trees, heaps and sorted helpers.
11
+ */
12
+ export type Comparator<T> = (a: T, b: T) => number;
13
+ /**
14
+ * Numeric comparison. NaN is rejected rather than silently sorted.
15
+ */
16
+ export declare function compareNumbers(a: number, b: number): number;
17
+ /**
18
+ * Lexicographic UTF-16 comparison, matching JavaScript's `<`.
19
+ */
20
+ export declare function compareStrings(a: string, b: string): number;
21
+ /**
22
+ * BigInt comparison, safe for values outside the number range.
23
+ */
24
+ export declare function compareBigInts(a: bigint, b: bigint): number;
25
+ /**
26
+ * Chronological comparison of two Dates (invalid dates are rejected).
27
+ */
28
+ export declare function compareDates(a: Date, b: Date): number;
29
+ /**
30
+ * Natural ordering for the primitive types this library supports.
31
+ *
32
+ * It deliberately throws for unsupported values instead of coercing them to
33
+ * strings: a search tree built on `"[object Object]"` order is a silent bug.
34
+ * Equal primitive values compare as `0`; `-0` and `0` are equivalent, and
35
+ * `NaN` is rejected.
36
+ */
37
+ export declare function compareNatural<T>(a: T, b: T): number;
38
+ /**
39
+ * Invert a comparator. Useful for max-heaps built on min-heap machinery.
40
+ */
41
+ export declare function reverseComparator<T>(compare: Comparator<T>): Comparator<T>;
42
+ /**
43
+ * Derive a comparator for `T` from a key selector and an optional key
44
+ * comparator. The selector is evaluated once per comparison; callers that need
45
+ * caching should build it outside the hot path.
46
+ */
47
+ export declare function byKey<T, K>(select: (value: T) => K, compare?: Comparator<K>): Comparator<T>;
48
+ /**
49
+ * Clamp a comparator result to the documented -1/0/1 shape.
50
+ */
51
+ export declare function sign(value: number): -1 | 0 | 1;
52
+ /**
53
+ * The default comparator used when a structure's options omit one.
54
+ */
55
+ export declare const defaultCompare: Comparator<unknown>;
@@ -0,0 +1,96 @@
1
+ /**
2
+ * Ordering primitives shared by the ordered structures.
3
+ *
4
+ * A comparator returns a negative number when `a` sorts before `b`, zero when
5
+ * they are equivalent for the structure, and a positive number otherwise.
6
+ * The structures only require a total preorder; duplicate equivalence is
7
+ * resolved by the container (e.g. a search tree keeps one representative).
8
+ */
9
+ /**
10
+ * Numeric comparison. NaN is rejected rather than silently sorted.
11
+ */
12
+ export function compareNumbers(a, b) {
13
+ if (Number.isNaN(a) || Number.isNaN(b)) {
14
+ throw new TypeError("cannot order NaN");
15
+ }
16
+ return a < b ? -1 : a > b ? 1 : 0;
17
+ }
18
+ /**
19
+ * Lexicographic UTF-16 comparison, matching JavaScript's `<`.
20
+ */
21
+ export function compareStrings(a, b) {
22
+ return a < b ? -1 : a > b ? 1 : 0;
23
+ }
24
+ /**
25
+ * BigInt comparison, safe for values outside the number range.
26
+ */
27
+ export function compareBigInts(a, b) {
28
+ return a < b ? -1 : a > b ? 1 : 0;
29
+ }
30
+ /**
31
+ * Chronological comparison of two Dates (invalid dates are rejected).
32
+ */
33
+ export function compareDates(a, b) {
34
+ const left = a.getTime();
35
+ const right = b.getTime();
36
+ if (!Number.isFinite(left) || !Number.isFinite(right)) {
37
+ throw new TypeError("cannot order an invalid Date");
38
+ }
39
+ return left < right ? -1 : left > right ? 1 : 0;
40
+ }
41
+ /**
42
+ * Natural ordering for the primitive types this library supports.
43
+ *
44
+ * It deliberately throws for unsupported values instead of coercing them to
45
+ * strings: a search tree built on `"[object Object]"` order is a silent bug.
46
+ * Equal primitive values compare as `0`; `-0` and `0` are equivalent, and
47
+ * `NaN` is rejected.
48
+ */
49
+ export function compareNatural(a, b) {
50
+ if (typeof (a) === "number" && typeof (b) === "number") {
51
+ return compareNumbers(a, b);
52
+ }
53
+ if (typeof (a) === "bigint" && typeof (b) === "bigint") {
54
+ return compareBigInts(a, b);
55
+ }
56
+ if (typeof (a) === "string" && typeof (b) === "string") {
57
+ return compareStrings(a, b);
58
+ }
59
+ if (typeof (a) === "boolean" && typeof (b) === "boolean") {
60
+ return a === b ? 0 : a ? 1 : -1;
61
+ }
62
+ if (a instanceof Date && b instanceof Date) {
63
+ return compareDates(a, b);
64
+ }
65
+ if (Object.is(a, b)) {
66
+ return 0;
67
+ }
68
+ throw new TypeError(`no natural ordering for ${typeof (a)}; supply a Comparator<T>`);
69
+ }
70
+ /**
71
+ * Invert a comparator. Useful for max-heaps built on min-heap machinery.
72
+ */
73
+ export function reverseComparator(compare) {
74
+ return (a, b) => {
75
+ const result = compare(a, b);
76
+ return result === 0 ? 0 : -result;
77
+ };
78
+ }
79
+ /**
80
+ * Derive a comparator for `T` from a key selector and an optional key
81
+ * comparator. The selector is evaluated once per comparison; callers that need
82
+ * caching should build it outside the hot path.
83
+ */
84
+ export function byKey(select, compare = compareNatural) {
85
+ return (a, b) => compare(select(a), select(b));
86
+ }
87
+ /**
88
+ * Clamp a comparator result to the documented -1/0/1 shape.
89
+ */
90
+ export function sign(value) {
91
+ return value < 0 ? -1 : value > 0 ? 1 : 0;
92
+ }
93
+ /**
94
+ * The default comparator used when a structure's options omit one.
95
+ */
96
+ export const defaultCompare = (a, b) => compareNatural(a, b);
@@ -0,0 +1,149 @@
1
+ import type { FilterKey } from "./filterKey.js";
2
+ /**
3
+ * A cuckoo filter with two candidate buckets and compact fingerprints.
4
+ *
5
+ * Unlike a Bloom filter, a cuckoo filter supports deletion of individual keys.
6
+ * Each key is reduced to a small fingerprint and two bucket indices; insertion
7
+ * places the fingerprint in either bucket, kicking existing fingerprints to
8
+ * their alternate bucket when both are full. A bounded kick chain is fully
9
+ * rolled back if it cannot find a free slot, so a failed `add` never silently
10
+ * loses a previously accepted key.
11
+ *
12
+ * False positives are possible (a different key may share both buckets and the
13
+ * fingerprint); false negatives are not, provided the same key bytes are used
14
+ * for insert, lookup, and delete. Duplicate keys are allowed.
15
+ */
16
+ /**
17
+ * Construction options for {@link CuckooFilter}.
18
+ */
19
+ export interface CuckooFilterOptions {
20
+ /**
21
+ * Requested key capacity; the actual slot count rounds up to a power of two.
22
+ */
23
+ capacity: number;
24
+ /**
25
+ * Fingerprints per bucket. Defaults to `4`.
26
+ */
27
+ bucketSize?: number;
28
+ /**
29
+ * Fingerprint width in bits, 4..30. Defaults to `8`.
30
+ */
31
+ fingerprintBits?: number;
32
+ /**
33
+ * Maximum kick chain before insertion fails and rolls back. Defaults to `500`.
34
+ */
35
+ maxKicks?: number;
36
+ /**
37
+ * Domain seed for key and fingerprint hashing. Defaults to `0n`.
38
+ */
39
+ seed?: bigint;
40
+ }
41
+ /**
42
+ * A cuckoo filter over string or `Uint8Array` keys.
43
+ *
44
+ * `capacity` is the number of fingerprint slots, not the requested value: it is
45
+ * `bucketCount * bucketSize`, rounded up from the constructor's `capacity`.
46
+ * `loadFactor` is the fraction of those slots currently occupied.
47
+ */
48
+ export declare class CuckooFilter {
49
+ /**
50
+ * Requested key capacity before bucket rounding.
51
+ */
52
+ readonly requestedCapacity: number;
53
+ /**
54
+ * Fingerprints per bucket.
55
+ */
56
+ readonly bucketSize: number;
57
+ /**
58
+ * Number of buckets (a power of two).
59
+ */
60
+ readonly bucketCount: number;
61
+ /**
62
+ * Total fingerprint slots: `bucketCount * bucketSize`.
63
+ */
64
+ readonly capacity: number;
65
+ /**
66
+ * Fingerprint width in bits.
67
+ */
68
+ readonly fingerprintBits: number;
69
+ /**
70
+ * Maximum number of displacements per insertion.
71
+ */
72
+ readonly maxKicks: number;
73
+ private readonly buckets;
74
+ private readonly seed;
75
+ private readonly indexMask;
76
+ private readonly fingerprintMask;
77
+ private readonly initialRng;
78
+ private rngState;
79
+ private count;
80
+ /**
81
+ * Create an empty filter.
82
+ *
83
+ * @throws RangeError for non-positive capacity, an invalid bucket/fingerprint
84
+ * size, a negative kick limit, or a bucket array too large to index safely.
85
+ */
86
+ constructor(options: CuckooFilterOptions);
87
+ /**
88
+ * Insert a key.
89
+ *
90
+ * @returns `true` if the fingerprint was stored, `false` if the kick chain
91
+ * was exhausted. A failed insertion is rolled back and leaves the filter
92
+ * unchanged.
93
+ */
94
+ add(key: FilterKey): boolean;
95
+ /**
96
+ * Test whether a key may be present.
97
+ */
98
+ has(key: FilterKey): boolean;
99
+ /**
100
+ * Remove one occurrence of a key.
101
+ *
102
+ * @returns `true` if a matching fingerprint was removed, `false` otherwise.
103
+ * A `false` result is exact only for a key that was never inserted; a
104
+ * different key can share the same fingerprint, so deletion is best-effort
105
+ * with respect to collisions.
106
+ */
107
+ delete(key: FilterKey): boolean;
108
+ /**
109
+ * Remove every key and reset the random kick state.
110
+ */
111
+ clear(): void;
112
+ /**
113
+ * Number of stored fingerprints.
114
+ */
115
+ get size(): number;
116
+ /**
117
+ * Fraction of fingerprint slots occupied.
118
+ */
119
+ get loadFactor(): number;
120
+ /**
121
+ * True when every fingerprint slot is occupied.
122
+ */
123
+ get isFull(): boolean;
124
+ /**
125
+ * Approximate false-positive probability for a non-full filter:
126
+ * `2 * bucketSize / 2^fingerprintBits`.
127
+ */
128
+ get falsePositiveRate(): number;
129
+ /**
130
+ * Hash a key once, yielding its first bucket and compact fingerprint.
131
+ */
132
+ private locate;
133
+ /**
134
+ * The other candidate bucket for a fingerprint in `index`.
135
+ */
136
+ private alternate;
137
+ /**
138
+ * Choose an initial bucket, preferring one with room.
139
+ */
140
+ private pickBucket;
141
+ /**
142
+ * Remove the first matching fingerprint from one bucket.
143
+ */
144
+ private removeFingerprint;
145
+ /**
146
+ * Xorshift32 in [0, bound); deterministic for a given seed and insertion order.
147
+ */
148
+ private randomInt;
149
+ }