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,45 @@
1
+ import { ProcessRepository } from "../repository/processRepository.js";
2
+ import { createProcess, getProcess, listProcesses, terminateProcess, transitionProcess } from "../../process/process.js";
3
+ import { Service } from "./service.js";
4
+ /**
5
+ * One service per entity: `processes`.
6
+ */
7
+ export class ProcessService extends Service {
8
+ db;
9
+ constructor(db, processes) {
10
+ super(processes, "Process");
11
+ this.db = db;
12
+ }
13
+ byId(pid) {
14
+ return this.findById(pid);
15
+ }
16
+ byPublicId(id) {
17
+ return this.repository.byPublicId(id);
18
+ }
19
+ byState(state, limit = 100) {
20
+ return this.repository.byState(state, limit);
21
+ }
22
+ runnable(limit = 100) {
23
+ return this.repository.runnable(limit);
24
+ }
25
+ create(spec, at) {
26
+ const record = createProcess(this.db, spec, at);
27
+ const row = this.byId(record.pid);
28
+ if (row === (void 0)) {
29
+ throw new Error(`process ${record.pid} was not stored`);
30
+ }
31
+ return row;
32
+ }
33
+ record(pid) {
34
+ return getProcess(this.db, pid);
35
+ }
36
+ list(state) {
37
+ return listProcesses(this.db, state);
38
+ }
39
+ transition(pid, from, to, patch = {}) {
40
+ return transitionProcess(this.db, pid, from, to, patch);
41
+ }
42
+ terminate(pid, note, at, code = "TERMINATED") {
43
+ return terminateProcess(this.db, pid, note, at, code);
44
+ }
45
+ }
@@ -0,0 +1,43 @@
1
+ import type { DatabaseSync } from "node:sqlite";
2
+ import type { PrimaryKey } from "../entity/entity.js";
3
+ import type { AttestationEntity, ConceptEntity, ModuleEntity } from "../entity/registry.js";
4
+ import { AttestationRepository, ConceptRepository, ModuleRepository } from "../repository/registryRepository.js";
5
+ import { Service } from "./service.js";
6
+ /**
7
+ * Concept link returned with a module.
8
+ */
9
+ export interface ModuleConceptLink {
10
+ cid: number;
11
+ id: string;
12
+ role: string;
13
+ }
14
+ /**
15
+ * One service per entity: `concepts` in the registry.
16
+ */
17
+ export declare class ConceptService extends Service<ConceptEntity, PrimaryKey, ConceptRepository> {
18
+ private readonly db;
19
+ constructor(db: DatabaseSync, concepts: ConceptRepository);
20
+ byId(cid: number): ConceptEntity | undefined;
21
+ byPublicId(id: string): ConceptEntity | undefined;
22
+ list(status?: string): ConceptEntity[];
23
+ get connection(): DatabaseSync;
24
+ }
25
+ /**
26
+ * One service per entity: `modules` in the registry.
27
+ */
28
+ export declare class ModuleService extends Service<ModuleEntity, PrimaryKey, ModuleRepository> {
29
+ private readonly db;
30
+ constructor(db: DatabaseSync, modules: ModuleRepository);
31
+ byId(mid: number): ModuleEntity | undefined;
32
+ byPublicId(id: string): ModuleEntity | undefined;
33
+ list(kind?: string): ModuleEntity[];
34
+ concepts(mid: number): ModuleConceptLink[];
35
+ get connection(): DatabaseSync;
36
+ }
37
+ /**
38
+ * One service per entity: `attestations` (evidence links for registry rows).
39
+ */
40
+ export declare class AttestationService extends Service<AttestationEntity, PrimaryKey, AttestationRepository> {
41
+ constructor(attestations: AttestationRepository);
42
+ forSubject(subjectKind: string, subjectId: string): AttestationEntity[];
43
+ }
@@ -0,0 +1,60 @@
1
+ import { AttestationRepository, ConceptRepository, ModuleRepository } from "../repository/registryRepository.js";
2
+ import { Service } from "./service.js";
3
+ /**
4
+ * One service per entity: `concepts` in the registry.
5
+ */
6
+ export class ConceptService extends Service {
7
+ db;
8
+ constructor(db, concepts) {
9
+ super(concepts, "Concept");
10
+ this.db = db;
11
+ }
12
+ byId(cid) {
13
+ return this.findById(cid);
14
+ }
15
+ byPublicId(id) {
16
+ return this.repository.byPublicId(id);
17
+ }
18
+ list(status) {
19
+ return status === (void 0) ? this.repository.all() : this.repository.byStatus(status);
20
+ }
21
+ get connection() {
22
+ return this.db;
23
+ }
24
+ }
25
+ /**
26
+ * One service per entity: `modules` in the registry.
27
+ */
28
+ export class ModuleService extends Service {
29
+ db;
30
+ constructor(db, modules) {
31
+ super(modules, "Module");
32
+ this.db = db;
33
+ }
34
+ byId(mid) {
35
+ return this.findById(mid);
36
+ }
37
+ byPublicId(id) {
38
+ return this.repository.byPublicId(id);
39
+ }
40
+ list(kind) {
41
+ return kind === (void 0) ? this.repository.all() : this.repository.byKind(kind);
42
+ }
43
+ concepts(mid) {
44
+ return this.repository.concepts(mid);
45
+ }
46
+ get connection() {
47
+ return this.db;
48
+ }
49
+ }
50
+ /**
51
+ * One service per entity: `attestations` (evidence links for registry rows).
52
+ */
53
+ export class AttestationService extends Service {
54
+ constructor(attestations) {
55
+ super(attestations, "Attestation");
56
+ }
57
+ forSubject(subjectKind, subjectId) {
58
+ return this.repository.forSubject(subjectKind, subjectId);
59
+ }
60
+ }
@@ -0,0 +1,131 @@
1
+ /**
2
+ * Service abstraction over one repository.
3
+ *
4
+ * Services own use-case policy: they translate application input into
5
+ * repository operations, return domain-shaped rows, and turn a missing row
6
+ * into a stable error. They never import `node:sqlite` or construct SQL.
7
+ *
8
+ * @typeParam TEntity - Row shape returned by the service.
9
+ * @typeParam TKey - Primary-key type.
10
+ * @typeParam TRepository - Concrete repository used by the service.
11
+ */
12
+ import type { PrimaryKey } from "../entity/entity.js";
13
+ import type { Page, Query, Repository } from "../repository/repository.js";
14
+ import type { MutationResult, SqlParameter } from "../sql/sql.js";
15
+ /**
16
+ * Error raised when a service requires a row that does not exist.
17
+ */
18
+ export declare class EntityNotFoundError extends Error {
19
+ /**
20
+ * Entity label used in the message.
21
+ */
22
+ readonly entityName: string;
23
+ /**
24
+ * Missing primary-key value.
25
+ */
26
+ readonly id: PrimaryKey;
27
+ constructor(entityName: string, id: PrimaryKey);
28
+ }
29
+ export declare abstract class Service<TEntity extends object, TKey extends PrimaryKey = PrimaryKey, TRepository extends Repository<TEntity, TKey> = Repository<TEntity, TKey>> {
30
+ protected readonly repository: TRepository;
31
+ protected readonly entityName: string;
32
+ /**
33
+ * Create a service.
34
+ *
35
+ * @param repository - Repository used for all persistence.
36
+ * @param entityName - Label used in missing-row errors.
37
+ */
38
+ protected constructor(repository: TRepository, entityName?: string);
39
+ /**
40
+ * Find one row by primary key.
41
+ *
42
+ * @param id - Primary-key value.
43
+ * @returns The row, or `undefined`.
44
+ */
45
+ findById(id: TKey): TEntity | undefined;
46
+ /**
47
+ * Find one row or throw.
48
+ *
49
+ * @param id - Primary-key value.
50
+ * @param entityName - Optional label override.
51
+ * @returns The row.
52
+ * @throws EntityNotFoundError when the row is absent.
53
+ */
54
+ requireById(id: TKey, entityName?: string): TEntity;
55
+ /**
56
+ * Read rows in unspecified order.
57
+ *
58
+ * @param limit - Maximum row count.
59
+ * @returns Matching rows.
60
+ */
61
+ all(limit?: number): TEntity[];
62
+ /**
63
+ * Read rows with a typed query descriptor.
64
+ *
65
+ * @param query - Filter, ordering and pagination options.
66
+ * @returns Matching rows.
67
+ */
68
+ findAll(query: Query<TEntity>): TEntity[];
69
+ /**
70
+ * Read one page of rows.
71
+ *
72
+ * @param query - Filter and ordering options.
73
+ * @param pageNumber - Zero-based page index.
74
+ * @param pageSize - Requested page size.
75
+ * @returns A page descriptor.
76
+ */
77
+ page(query: Query<TEntity>, pageNumber?: number, pageSize?: number): Page<TEntity>;
78
+ /**
79
+ * Read rows with a trusted WHERE fragment.
80
+ *
81
+ * @param clause - SQL after `WHERE`.
82
+ * @param params - Bound values.
83
+ * @returns Matching rows.
84
+ */
85
+ where(clause: string, ...params: SqlParameter[]): TEntity[];
86
+ /**
87
+ * Count rows.
88
+ *
89
+ * @param clause - Optional SQL after `WHERE`.
90
+ * @param params - Bound values.
91
+ * @returns Number of rows.
92
+ */
93
+ count(clause?: string, ...params: SqlParameter[]): number;
94
+ /**
95
+ * Test whether a row exists.
96
+ *
97
+ * @param id - Primary-key value.
98
+ * @returns `true` when present.
99
+ */
100
+ exists(id: TKey): boolean;
101
+ /**
102
+ * Insert one row.
103
+ *
104
+ * @param values - Column values.
105
+ * @returns Mutation metadata.
106
+ */
107
+ insert(values: Readonly<Record<string, unknown>>): MutationResult;
108
+ /**
109
+ * Update one row by primary key.
110
+ *
111
+ * @param id - Primary-key value.
112
+ * @param values - Column values.
113
+ * @returns Number of changed rows.
114
+ */
115
+ update(id: TKey, values: Readonly<Record<string, unknown>>): number;
116
+ /**
117
+ * Delete one row by primary key.
118
+ *
119
+ * @param id - Primary-key value.
120
+ * @returns Number of deleted rows.
121
+ */
122
+ delete(id: TKey): number;
123
+ /**
124
+ * Insert or update according to unique columns.
125
+ *
126
+ * @param values - Column values.
127
+ * @param conflictColumns - Unique columns; defaults to the primary key.
128
+ * @returns Mutation metadata.
129
+ */
130
+ upsert(values: Readonly<Record<string, unknown>>, conflictColumns?: readonly string[]): MutationResult;
131
+ }
@@ -0,0 +1,153 @@
1
+ /**
2
+ * Error raised when a service requires a row that does not exist.
3
+ */
4
+ export class EntityNotFoundError extends Error {
5
+ /**
6
+ * Entity label used in the message.
7
+ */
8
+ entityName;
9
+ /**
10
+ * Missing primary-key value.
11
+ */
12
+ id;
13
+ constructor(entityName, id) {
14
+ super(`${entityName} not found: ${id}`);
15
+ this.name = "EntityNotFoundError";
16
+ this.entityName = entityName;
17
+ this.id = id;
18
+ }
19
+ }
20
+ export class Service {
21
+ repository;
22
+ entityName;
23
+ /**
24
+ * Create a service.
25
+ *
26
+ * @param repository - Repository used for all persistence.
27
+ * @param entityName - Label used in missing-row errors.
28
+ */
29
+ constructor(repository, entityName = "entity") {
30
+ this.repository = repository;
31
+ this.entityName = entityName;
32
+ }
33
+ /**
34
+ * Find one row by primary key.
35
+ *
36
+ * @param id - Primary-key value.
37
+ * @returns The row, or `undefined`.
38
+ */
39
+ findById(id) {
40
+ return this.repository.findById(id);
41
+ }
42
+ /**
43
+ * Find one row or throw.
44
+ *
45
+ * @param id - Primary-key value.
46
+ * @param entityName - Optional label override.
47
+ * @returns The row.
48
+ * @throws EntityNotFoundError when the row is absent.
49
+ */
50
+ requireById(id, entityName = this.entityName) {
51
+ const row = this.repository.findById(id);
52
+ if (row === (void 0)) {
53
+ throw new EntityNotFoundError(entityName, id);
54
+ }
55
+ return row;
56
+ }
57
+ /**
58
+ * Read rows in unspecified order.
59
+ *
60
+ * @param limit - Maximum row count.
61
+ * @returns Matching rows.
62
+ */
63
+ all(limit = 1000) {
64
+ return this.repository.all(limit);
65
+ }
66
+ /**
67
+ * Read rows with a typed query descriptor.
68
+ *
69
+ * @param query - Filter, ordering and pagination options.
70
+ * @returns Matching rows.
71
+ */
72
+ findAll(query) {
73
+ return this.repository.findAll(query);
74
+ }
75
+ /**
76
+ * Read one page of rows.
77
+ *
78
+ * @param query - Filter and ordering options.
79
+ * @param pageNumber - Zero-based page index.
80
+ * @param pageSize - Requested page size.
81
+ * @returns A page descriptor.
82
+ */
83
+ page(query, pageNumber = 0, pageSize = 20) {
84
+ return this.repository.page(query, pageNumber, pageSize);
85
+ }
86
+ /**
87
+ * Read rows with a trusted WHERE fragment.
88
+ *
89
+ * @param clause - SQL after `WHERE`.
90
+ * @param params - Bound values.
91
+ * @returns Matching rows.
92
+ */
93
+ where(clause, ...params) {
94
+ return this.repository.where(clause, ...params);
95
+ }
96
+ /**
97
+ * Count rows.
98
+ *
99
+ * @param clause - Optional SQL after `WHERE`.
100
+ * @param params - Bound values.
101
+ * @returns Number of rows.
102
+ */
103
+ count(clause, ...params) {
104
+ return this.repository.count(clause, ...params);
105
+ }
106
+ /**
107
+ * Test whether a row exists.
108
+ *
109
+ * @param id - Primary-key value.
110
+ * @returns `true` when present.
111
+ */
112
+ exists(id) {
113
+ return this.repository.exists(id);
114
+ }
115
+ /**
116
+ * Insert one row.
117
+ *
118
+ * @param values - Column values.
119
+ * @returns Mutation metadata.
120
+ */
121
+ insert(values) {
122
+ return this.repository.insert(values);
123
+ }
124
+ /**
125
+ * Update one row by primary key.
126
+ *
127
+ * @param id - Primary-key value.
128
+ * @param values - Column values.
129
+ * @returns Number of changed rows.
130
+ */
131
+ update(id, values) {
132
+ return this.repository.update(id, values);
133
+ }
134
+ /**
135
+ * Delete one row by primary key.
136
+ *
137
+ * @param id - Primary-key value.
138
+ * @returns Number of deleted rows.
139
+ */
140
+ delete(id) {
141
+ return this.repository.delete(id);
142
+ }
143
+ /**
144
+ * Insert or update according to unique columns.
145
+ *
146
+ * @param values - Column values.
147
+ * @param conflictColumns - Unique columns; defaults to the primary key.
148
+ * @returns Mutation metadata.
149
+ */
150
+ upsert(values, conflictColumns) {
151
+ return this.repository.upsert(values, conflictColumns);
152
+ }
153
+ }
@@ -0,0 +1,23 @@
1
+ import type { PrimaryKey } from "../entity/entity.js";
2
+ import type { StepEntity } from "../entity/worker.js";
3
+ import { StepRepository } from "../repository/workerRepository.js";
4
+ import { Service } from "./service.js";
5
+ export interface RecordStepInput {
6
+ pid: number;
7
+ tid: number;
8
+ at: string;
9
+ outcome: string;
10
+ usage: string;
11
+ note?: string;
12
+ receiptId?: string;
13
+ }
14
+ /**
15
+ * One service per entity: `steps`.
16
+ */
17
+ export declare class StepService extends Service<StepEntity, PrimaryKey, StepRepository> {
18
+ constructor(steps: StepRepository);
19
+ byId(stepId: number): StepEntity | undefined;
20
+ byProcess(pid: number, limit?: number): StepEntity[];
21
+ byThread(tid: number, limit?: number): StepEntity[];
22
+ record(input: RecordStepInput): StepEntity;
23
+ }
@@ -0,0 +1,35 @@
1
+ import { StepRepository } from "../repository/workerRepository.js";
2
+ import { Service } from "./service.js";
3
+ /**
4
+ * One service per entity: `steps`.
5
+ */
6
+ export class StepService extends Service {
7
+ constructor(steps) {
8
+ super(steps, "Step");
9
+ }
10
+ byId(stepId) {
11
+ return this.findById(stepId);
12
+ }
13
+ byProcess(pid, limit = 200) {
14
+ return this.repository.byProcess(pid, limit);
15
+ }
16
+ byThread(tid, limit = 200) {
17
+ return this.repository.byThread(tid, limit);
18
+ }
19
+ record(input) {
20
+ const result = this.repository.insert({
21
+ pid: input.pid,
22
+ tid: input.tid,
23
+ at: input.at,
24
+ outcome: input.outcome,
25
+ usage: input.usage,
26
+ note: input.note ?? null,
27
+ receipt_id: input.receiptId ?? null,
28
+ });
29
+ const row = this.byId(Number(result.lastInsertRowid));
30
+ if (row === (void 0)) {
31
+ throw new Error("step was not stored");
32
+ }
33
+ return row;
34
+ }
35
+ }
@@ -0,0 +1,23 @@
1
+ import type { DatabaseSync } from "node:sqlite";
2
+ import type { PrimaryKey } from "../entity/entity.js";
3
+ import type { ThreadEntity } from "../entity/thread.js";
4
+ import { ThreadRepository } from "../repository/threadRepository.js";
5
+ import type { ThreadClaim, ThreadPatch, ThreadRecord, ThreadSpec, ThreadState } from "../../thread/thread.js";
6
+ import { Service } from "./service.js";
7
+ /**
8
+ * One service per entity: `threads`.
9
+ */
10
+ export declare class ThreadService extends Service<ThreadEntity, PrimaryKey, ThreadRepository> {
11
+ private readonly db;
12
+ constructor(db: DatabaseSync, threads: ThreadRepository);
13
+ byId(tid: number): ThreadEntity | undefined;
14
+ byProcess(pid: number): ThreadEntity[];
15
+ byGoal(goal: string): ThreadEntity[];
16
+ nextReady(): ThreadEntity | undefined;
17
+ spawn(spec: ThreadSpec, at: string): ThreadEntity;
18
+ record(tid: number): ThreadRecord;
19
+ list(pid?: number): ThreadRecord[];
20
+ claim(tid: number, workerId: string): ThreadClaim;
21
+ transition(tid: number, from: ThreadState | ThreadState[], to: ThreadState, patch?: ThreadPatch, lease?: number): ThreadRecord;
22
+ ready(): ThreadRecord | undefined;
23
+ }
@@ -0,0 +1,48 @@
1
+ import { ThreadRepository } from "../repository/threadRepository.js";
2
+ import { claimThread, getThread, listThreads, nextReadyThread, spawnThread, transitionThread } from "../../thread/thread.js";
3
+ import { Service } from "./service.js";
4
+ /**
5
+ * One service per entity: `threads`.
6
+ */
7
+ export class ThreadService extends Service {
8
+ db;
9
+ constructor(db, threads) {
10
+ super(threads, "Thread");
11
+ this.db = db;
12
+ }
13
+ byId(tid) {
14
+ return this.findById(tid);
15
+ }
16
+ byProcess(pid) {
17
+ return this.repository.byProcess(pid);
18
+ }
19
+ byGoal(goal) {
20
+ return this.repository.byGoal(goal);
21
+ }
22
+ nextReady() {
23
+ return this.repository.nextReady();
24
+ }
25
+ spawn(spec, at) {
26
+ const record = spawnThread(this.db, spec, at);
27
+ const row = this.byId(record.tid);
28
+ if (row === (void 0)) {
29
+ throw new Error(`thread ${record.tid} was not stored`);
30
+ }
31
+ return row;
32
+ }
33
+ record(tid) {
34
+ return getThread(this.db, tid);
35
+ }
36
+ list(pid) {
37
+ return listThreads(this.db, pid);
38
+ }
39
+ claim(tid, workerId) {
40
+ return claimThread(this.db, tid, workerId);
41
+ }
42
+ transition(tid, from, to, patch = {}, lease) {
43
+ return transitionThread(this.db, tid, from, to, patch, lease);
44
+ }
45
+ ready() {
46
+ return nextReadyThread(this.db);
47
+ }
48
+ }
@@ -0,0 +1,15 @@
1
+ import type { PrimaryKey } from "../entity/entity.js";
2
+ import type { WindowEntity, WindowPageEntity } from "../entity/window.js";
3
+ import { WindowRepository } from "../repository/windowRepository.js";
4
+ import type { WindowPageInput } from "../repository/windowRepository.js";
5
+ import { Service } from "./service.js";
6
+ /**
7
+ * One service per entity: `windows` (plus its `window_pages` children).
8
+ */
9
+ export declare class WindowService extends Service<WindowEntity, PrimaryKey, WindowRepository> {
10
+ constructor(windows: WindowRepository);
11
+ get(tid: number): WindowEntity | undefined;
12
+ pages(tid: number): WindowPageEntity[];
13
+ save(tid: number, capacityTokens: number, usedTokens: number, at: string): void;
14
+ replacePages(tid: number, pages: readonly WindowPageInput[], at: string, capacityTokens: number): void;
15
+ }
@@ -0,0 +1,22 @@
1
+ import { WindowRepository } from "../repository/windowRepository.js";
2
+ import { Service } from "./service.js";
3
+ /**
4
+ * One service per entity: `windows` (plus its `window_pages` children).
5
+ */
6
+ export class WindowService extends Service {
7
+ constructor(windows) {
8
+ super(windows, "Window");
9
+ }
10
+ get(tid) {
11
+ return this.findById(tid);
12
+ }
13
+ pages(tid) {
14
+ return this.repository.pages(tid);
15
+ }
16
+ save(tid, capacityTokens, usedTokens, at) {
17
+ this.repository.save(tid, capacityTokens, usedTokens, at);
18
+ }
19
+ replacePages(tid, pages, at, capacityTokens) {
20
+ this.repository.replacePages(tid, pages, at, capacityTokens);
21
+ }
22
+ }
@@ -0,0 +1,28 @@
1
+ import type { DatabaseSync } from "node:sqlite";
2
+ import type { PrimaryKey } from "../entity/entity.js";
3
+ import type { WorkerEntity } from "../entity/worker.js";
4
+ import { WorkerRepository } from "../repository/workerRepository.js";
5
+ import type { WorkerInput, WorkerRecord } from "../../concurrency/worker.js";
6
+ import { Service } from "./service.js";
7
+ /**
8
+ * Counts returned after recovering expired workers.
9
+ */
10
+ export interface WorkerRecovery {
11
+ workers: string[];
12
+ threads: number;
13
+ processes: number;
14
+ }
15
+ /**
16
+ * One service per entity: `workers`.
17
+ */
18
+ export declare class WorkerService extends Service<WorkerEntity, PrimaryKey, WorkerRepository> {
19
+ private readonly db;
20
+ constructor(db: DatabaseSync, workers: WorkerRepository);
21
+ byId(workerId: string): WorkerEntity | undefined;
22
+ list(): WorkerRecord[];
23
+ expired(at: string): WorkerEntity[];
24
+ register(input: WorkerInput, at: string): WorkerRecord;
25
+ heartbeat(workerId: string, at: string, leaseMs?: number): boolean;
26
+ unregister(workerId: string): void;
27
+ recover(at: string): WorkerRecovery;
28
+ }
@@ -0,0 +1,34 @@
1
+ import { WorkerRepository } from "../repository/workerRepository.js";
2
+ import { heartbeatWorker, listWorkers, recoverExpiredWorkers, registerWorker, unregisterWorker } from "../../concurrency/worker.js";
3
+ import { Service } from "./service.js";
4
+ /**
5
+ * One service per entity: `workers`.
6
+ */
7
+ export class WorkerService extends Service {
8
+ db;
9
+ constructor(db, workers) {
10
+ super(workers, "Worker");
11
+ this.db = db;
12
+ }
13
+ byId(workerId) {
14
+ return this.findById(workerId);
15
+ }
16
+ list() {
17
+ return listWorkers(this.db);
18
+ }
19
+ expired(at) {
20
+ return this.repository.expired(at);
21
+ }
22
+ register(input, at) {
23
+ return registerWorker(this.db, input, at);
24
+ }
25
+ heartbeat(workerId, at, leaseMs) {
26
+ return heartbeatWorker(this.db, workerId, at, leaseMs);
27
+ }
28
+ unregister(workerId) {
29
+ unregisterWorker(this.db, workerId);
30
+ }
31
+ recover(at) {
32
+ return recoverExpiredWorkers(this.db, at);
33
+ }
34
+ }
@@ -0,0 +1,3 @@
1
+ export { MetaSchema, Schema } from "./schema.js";
2
+ export { assertSqlIdentifier, Sql, TableSql, toSqlParameter } from "./sql.js";
3
+ export type { MutationResult, SelectOptions, SqlParameter } from "./sql.js";
@@ -0,0 +1,2 @@
1
+ export { MetaSchema, Schema } from "./schema.js";
2
+ export { assertSqlIdentifier, Sql, TableSql, toSqlParameter } from "./sql.js";
@@ -0,0 +1,5 @@
1
+ /**
2
+ * DDL for the SQLite store. Migrations live in the store, not here.
3
+ */
4
+ export declare const MetaSchema: string;
5
+ export declare const Schema: string;