attention-manifest-protocol 0.4.2 → 0.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (827) hide show
  1. package/CHANGELOG.md +341 -293
  2. package/CHANGELOG.zh-CN.md +41 -8
  3. package/README.md +250 -171
  4. package/README.zh-CN.md +251 -171
  5. package/lib/assignment/assign.d.ts +102 -0
  6. package/lib/assignment/assign.js +556 -0
  7. package/lib/assignment/binding.d.ts +103 -0
  8. package/lib/assignment/binding.js +575 -0
  9. package/lib/assignment/errors.d.ts +14 -0
  10. package/lib/assignment/errors.js +16 -0
  11. package/lib/assignment/guards.d.ts +18 -0
  12. package/lib/assignment/guards.js +28 -0
  13. package/lib/assignment/index.d.ts +10 -0
  14. package/lib/assignment/index.js +10 -0
  15. package/lib/assignment/types.d.ts +169 -0
  16. package/lib/assignment/types.js +1 -0
  17. package/lib/attention/budget.d.ts +1 -1
  18. package/lib/attention/budget.js +31 -9
  19. package/lib/bayes/engine.js +2 -1
  20. package/lib/bayes/reliability.js +25 -10
  21. package/lib/boundary/frame.d.ts +10 -4
  22. package/lib/boundary/frame.js +346 -109
  23. package/lib/boundary/kinds.d.ts +11 -0
  24. package/lib/boundary/kinds.js +33 -0
  25. package/lib/boundary/refTable.d.ts +19 -9
  26. package/lib/boundary/refTable.js +128 -30
  27. package/lib/boundary/toolCall.d.ts +22 -10
  28. package/lib/boundary/toolCall.js +798 -97
  29. package/lib/concept/conceptBudget.js +10 -1
  30. package/lib/concurrency/idempotency.d.ts +4 -3
  31. package/lib/concurrency/idempotency.js +57 -13
  32. package/lib/concurrency/retry.js +18 -3
  33. package/lib/context/agentContext.d.ts +13 -0
  34. package/lib/context/agentContext.js +14 -1
  35. package/lib/context/ast.d.ts +4 -1
  36. package/lib/context/ast.js +13 -3
  37. package/lib/context/contentStore.js +22 -9
  38. package/lib/context/contextBuilder.d.ts +457 -0
  39. package/lib/context/contextBuilder.js +1395 -0
  40. package/lib/context/contextPackage.d.ts +214 -0
  41. package/lib/context/contextPackage.js +191 -0
  42. package/lib/context/index.d.ts +14 -3
  43. package/lib/context/index.js +9 -1
  44. package/lib/context/relevance.d.ts +171 -0
  45. package/lib/context/relevance.js +250 -0
  46. package/lib/context/workspaceDiff.d.ts +105 -0
  47. package/lib/context/workspaceDiff.js +238 -0
  48. package/lib/context/workspaceService.d.ts +236 -1
  49. package/lib/context/workspaceService.js +1501 -73
  50. package/lib/cooperation/collaboration.d.ts +9 -0
  51. package/lib/cooperation/session.d.ts +4 -4
  52. package/lib/cooperation/session.js +3 -3
  53. package/lib/database/adapter/filesystemStore.d.ts +145 -0
  54. package/lib/database/adapter/filesystemStore.js +321 -0
  55. package/lib/database/adapter/index.d.ts +2 -0
  56. package/lib/database/adapter/index.js +2 -0
  57. package/lib/database/adapter/workspaceSessionStore.d.ts +118 -0
  58. package/lib/database/adapter/workspaceSessionStore.js +120 -0
  59. package/lib/database/entity/fileGraph.d.ts +53 -0
  60. package/lib/database/entity/fileGraph.js +15 -0
  61. package/lib/database/entity/fileTree.d.ts +76 -0
  62. package/lib/database/entity/fileTree.js +39 -0
  63. package/lib/database/entity/hook.d.ts +29 -0
  64. package/lib/database/entity/hook.js +18 -0
  65. package/lib/database/entity/index.d.ts +4 -0
  66. package/lib/database/entity/index.js +4 -0
  67. package/lib/database/entity/workspaceSession.d.ts +53 -0
  68. package/lib/database/entity/workspaceSession.js +28 -0
  69. package/lib/database/repository/fileAnnotationRepository.d.ts +75 -0
  70. package/lib/database/repository/fileAnnotationRepository.js +109 -0
  71. package/lib/database/repository/fileGraphRepository.d.ts +188 -0
  72. package/lib/database/repository/fileGraphRepository.js +648 -0
  73. package/lib/database/repository/fileNodeRepository.d.ts +116 -0
  74. package/lib/database/repository/fileNodeRepository.js +263 -0
  75. package/lib/database/repository/fileOutlineRepository.d.ts +40 -0
  76. package/lib/database/repository/fileOutlineRepository.js +104 -0
  77. package/lib/database/repository/fileWriteRepository.d.ts +41 -0
  78. package/lib/database/repository/fileWriteRepository.js +93 -0
  79. package/lib/database/repository/hookRepository.d.ts +67 -0
  80. package/lib/database/repository/hookRepository.js +150 -0
  81. package/lib/database/repository/index.d.ts +7 -0
  82. package/lib/database/repository/index.js +7 -0
  83. package/lib/database/repository/workspaceSessionRepository.d.ts +134 -0
  84. package/lib/database/repository/workspaceSessionRepository.js +327 -0
  85. package/lib/database/service/database.d.ts +14 -0
  86. package/lib/database/service/database.js +21 -0
  87. package/lib/database/sql/schema.js +187 -0
  88. package/lib/database/store/database.js +6 -1
  89. package/lib/delegate/team.d.ts +5 -0
  90. package/lib/delegate/team.js +83 -20
  91. package/lib/discover/classify.d.ts +20 -0
  92. package/lib/discover/classify.js +85 -0
  93. package/lib/discover/host.d.ts +20 -0
  94. package/lib/discover/host.js +89 -0
  95. package/lib/discover/index.d.ts +11 -0
  96. package/lib/discover/index.js +11 -0
  97. package/lib/discover/kinds.d.ts +14 -0
  98. package/lib/discover/kinds.js +23 -0
  99. package/lib/discover/tree.d.ts +7 -0
  100. package/lib/discover/tree.js +432 -0
  101. package/lib/discover/types.d.ts +115 -0
  102. package/lib/discover/types.js +1 -0
  103. package/lib/error/boundaryRejection.d.ts +1 -1
  104. package/lib/evaluation/agreement.js +2 -2
  105. package/lib/execution/handles.js +6 -0
  106. package/lib/execution/pin.js +2 -2
  107. package/lib/file/cfb.d.ts +56 -0
  108. package/lib/file/cfb.js +396 -0
  109. package/lib/file/dependency.d.ts +151 -0
  110. package/lib/file/dependency.js +568 -0
  111. package/lib/file/directory.d.ts +34 -0
  112. package/lib/file/directory.js +141 -0
  113. package/lib/file/errors.d.ts +20 -0
  114. package/lib/file/errors.js +18 -0
  115. package/lib/file/exportGraph.d.ts +31 -0
  116. package/lib/file/exportGraph.js +554 -0
  117. package/lib/file/file.d.ts +40 -0
  118. package/lib/file/file.js +339 -0
  119. package/lib/file/importGraph.d.ts +121 -0
  120. package/lib/file/importGraph.js +1022 -0
  121. package/lib/file/index.d.ts +45 -0
  122. package/lib/file/index.js +30 -0
  123. package/lib/file/metadata.d.ts +66 -0
  124. package/lib/file/metadata.js +470 -0
  125. package/lib/file/path.d.ts +60 -0
  126. package/lib/file/path.js +259 -0
  127. package/lib/file/read.d.ts +168 -0
  128. package/lib/file/read.js +541 -0
  129. package/lib/file/runtime.d.ts +95 -0
  130. package/lib/file/runtime.js +150 -0
  131. package/lib/file/service.d.ts +227 -0
  132. package/lib/file/service.js +663 -0
  133. package/lib/file/syntaxTree.d.ts +7 -0
  134. package/lib/file/syntaxTree.js +38 -0
  135. package/lib/file/time.d.ts +38 -0
  136. package/lib/file/time.js +44 -0
  137. package/lib/file/tree.d.ts +53 -0
  138. package/lib/file/tree.js +417 -0
  139. package/lib/file/types.d.ts +371 -0
  140. package/lib/file/types.js +1 -0
  141. package/lib/file/write.d.ts +159 -0
  142. package/lib/file/write.js +1028 -0
  143. package/lib/file/zip.d.ts +35 -0
  144. package/lib/file/zip.js +349 -0
  145. package/lib/fingerprint/algorithm.d.ts +97 -0
  146. package/lib/fingerprint/algorithm.js +271 -0
  147. package/lib/fingerprint/bytes.d.ts +18 -0
  148. package/lib/fingerprint/bytes.js +31 -0
  149. package/lib/fingerprint/error.d.ts +73 -0
  150. package/lib/fingerprint/error.js +86 -0
  151. package/lib/fingerprint/file.d.ts +71 -0
  152. package/lib/fingerprint/file.js +254 -0
  153. package/lib/fingerprint/index.d.ts +37 -0
  154. package/lib/fingerprint/index.js +12 -0
  155. package/lib/fingerprint/json.d.ts +41 -0
  156. package/lib/fingerprint/json.js +94 -0
  157. package/lib/fingerprint/number.d.ts +32 -0
  158. package/lib/fingerprint/number.js +95 -0
  159. package/lib/fingerprint/policy.d.ts +54 -0
  160. package/lib/fingerprint/policy.js +50 -0
  161. package/lib/fingerprint/preimage.d.ts +84 -0
  162. package/lib/fingerprint/preimage.js +133 -0
  163. package/lib/fingerprint/raw.d.ts +26 -0
  164. package/lib/fingerprint/raw.js +45 -0
  165. package/lib/fingerprint/ref.d.ts +39 -0
  166. package/lib/fingerprint/ref.js +178 -0
  167. package/lib/fingerprint/text.d.ts +42 -0
  168. package/lib/fingerprint/text.js +155 -0
  169. package/lib/fingerprint/tree.d.ts +56 -0
  170. package/lib/fingerprint/tree.js +288 -0
  171. package/lib/fingerprint/verify.d.ts +20 -0
  172. package/lib/fingerprint/verify.js +99 -0
  173. package/lib/global/filesystem.d.ts +43 -0
  174. package/lib/global/filesystem.js +75 -0
  175. package/lib/global/index.d.ts +8 -0
  176. package/lib/global/index.js +8 -0
  177. package/lib/global/service.d.ts +51 -0
  178. package/lib/global/service.js +98 -0
  179. package/lib/governance/transport.js +18 -6
  180. package/lib/hook/ast.d.ts +29 -0
  181. package/lib/hook/ast.js +22 -0
  182. package/lib/hook/code.d.ts +55 -0
  183. package/lib/hook/code.js +47 -0
  184. package/lib/hook/dependency.d.ts +45 -0
  185. package/lib/hook/dependency.js +28 -0
  186. package/lib/hook/diff.d.ts +114 -0
  187. package/lib/hook/diff.js +327 -0
  188. package/lib/hook/exportation.d.ts +31 -0
  189. package/lib/hook/exportation.js +24 -0
  190. package/lib/hook/file.d.ts +44 -0
  191. package/lib/hook/file.js +154 -0
  192. package/lib/hook/importation.d.ts +33 -0
  193. package/lib/hook/importation.js +22 -0
  194. package/lib/hook/index.d.ts +30 -0
  195. package/lib/hook/index.js +23 -0
  196. package/lib/hook/outline.d.ts +35 -0
  197. package/lib/hook/outline.js +27 -0
  198. package/lib/hook/project.d.ts +65 -0
  199. package/lib/hook/project.js +217 -0
  200. package/lib/hook/types.d.ts +114 -0
  201. package/lib/hook/types.js +407 -0
  202. package/lib/index.d.ts +9 -0
  203. package/lib/index.js +9 -0
  204. package/lib/lock/lease.js +28 -3
  205. package/lib/manifest/cardSign.d.ts +1 -1
  206. package/lib/manifest/cardSign.js +37 -7
  207. package/lib/manifest/federation.js +13 -6
  208. package/lib/manifest/trust.d.ts +2 -0
  209. package/lib/manifest/trust.js +27 -6
  210. package/lib/module/index.d.ts +4 -0
  211. package/lib/module/index.js +4 -0
  212. package/lib/module/mcp/client.js +21 -2
  213. package/lib/module/mcp/filesystemServer.d.ts +24 -0
  214. package/lib/module/mcp/filesystemServer.js +102 -0
  215. package/lib/module/mcp/http.js +32 -19
  216. package/lib/module/mcp/workspaceServer.js +20 -3
  217. package/lib/module/tool/filesystemExecutor.d.ts +18 -0
  218. package/lib/module/tool/filesystemExecutor.js +49 -0
  219. package/lib/module/tool/globalExecutor.d.ts +17 -0
  220. package/lib/module/tool/globalExecutor.js +39 -0
  221. package/lib/module/tool/globalFilesystemExecutor.d.ts +18 -0
  222. package/lib/module/tool/globalFilesystemExecutor.js +49 -0
  223. package/lib/module/tool/workspaceExecutor.d.ts +9 -0
  224. package/lib/module/tool/workspaceExecutor.js +16 -3
  225. package/lib/naming/aliases.d.ts +48 -0
  226. package/lib/naming/aliases.js +79 -0
  227. package/lib/naming/catalog.d.ts +117 -0
  228. package/lib/naming/catalog.js +108 -0
  229. package/lib/naming/grammar.d.ts +67 -0
  230. package/lib/naming/grammar.js +212 -0
  231. package/lib/naming/ids.d.ts +157 -0
  232. package/lib/naming/ids.js +119 -0
  233. package/lib/naming/index.d.ts +13 -0
  234. package/lib/naming/index.js +13 -0
  235. package/lib/outline/index.d.ts +9 -0
  236. package/lib/outline/index.js +8 -0
  237. package/lib/outline/office.d.ts +160 -0
  238. package/lib/outline/office.js +2375 -0
  239. package/lib/outline/officeBridge.d.ts +32 -0
  240. package/lib/outline/officeBridge.js +27 -0
  241. package/lib/outline/outline.d.ts +159 -0
  242. package/lib/outline/outline.js +837 -0
  243. package/lib/outline/outlineIndex.d.ts +97 -0
  244. package/lib/outline/outlineIndex.js +325 -0
  245. package/lib/outline/outlineKeywords.d.ts +59 -0
  246. package/lib/outline/outlineKeywords.js +143 -0
  247. package/lib/outline/outlineStrategies.d.ts +414 -0
  248. package/lib/outline/outlineStrategies.js +8324 -0
  249. package/lib/outline/reactOutline.d.ts +37 -0
  250. package/lib/outline/reactOutline.js +1070 -0
  251. package/lib/outline/shellOutline.d.ts +65 -0
  252. package/lib/outline/shellOutline.js +873 -0
  253. package/lib/outline/sqlOutline.d.ts +170 -0
  254. package/lib/outline/sqlOutline.js +1536 -0
  255. package/lib/outline/strategy.d.ts +46 -0
  256. package/lib/outline/strategy.js +1 -0
  257. package/lib/outline/types.d.ts +95 -0
  258. package/lib/outline/types.js +1 -0
  259. package/lib/outline/visualBasicOutline.d.ts +27 -0
  260. package/lib/outline/visualBasicOutline.js +750 -0
  261. package/lib/protocol/filesystem.d.ts +55 -0
  262. package/lib/protocol/filesystem.js +105 -0
  263. package/lib/protocol/global.d.ts +42 -0
  264. package/lib/protocol/global.js +63 -0
  265. package/lib/protocol/globalFilesystem.d.ts +40 -0
  266. package/lib/protocol/globalFilesystem.js +59 -0
  267. package/lib/protocol/index.d.ts +4 -0
  268. package/lib/protocol/index.js +4 -0
  269. package/lib/protocol/protocol.d.ts +4 -0
  270. package/lib/protocol/wire.js +5 -2
  271. package/lib/protocol/workspace.d.ts +305 -0
  272. package/lib/protocol/workspace.js +258 -0
  273. package/lib/receipt/receipt.d.ts +8 -0
  274. package/lib/registry/content.js +9 -3
  275. package/lib/runtime/kernelRuntime.js +9 -1
  276. package/lib/scenario/scenario.js +5 -4
  277. package/lib/semantic/canonical.d.ts +61 -0
  278. package/lib/semantic/canonical.js +135 -8
  279. package/lib/semantic/jsonValue.d.ts +31 -0
  280. package/lib/semantic/jsonValue.js +122 -0
  281. package/lib/semantic/sha256.js +3 -0
  282. package/lib/semantic/time.d.ts +14 -0
  283. package/lib/semantic/time.js +56 -0
  284. package/lib/session/context.d.ts +76 -0
  285. package/lib/session/context.js +419 -0
  286. package/lib/session/errors.d.ts +24 -0
  287. package/lib/session/errors.js +22 -0
  288. package/lib/session/identity.d.ts +24 -0
  289. package/lib/session/identity.js +56 -0
  290. package/lib/session/index.d.ts +14 -0
  291. package/lib/session/index.js +12 -0
  292. package/lib/session/registry.d.ts +130 -0
  293. package/lib/session/registry.js +908 -0
  294. package/lib/session/types.d.ts +227 -0
  295. package/lib/session/types.js +14 -0
  296. package/lib/structure/index.d.ts +1 -0
  297. package/lib/structure/index.js +1 -0
  298. package/lib/structure/trie.d.ts +88 -0
  299. package/lib/structure/trie.js +183 -0
  300. package/lib/syntax/byteIndex.d.ts +44 -0
  301. package/lib/syntax/byteIndex.js +148 -0
  302. package/lib/syntax/charset.d.ts +88 -0
  303. package/lib/syntax/charset.js +276 -0
  304. package/lib/syntax/index.d.ts +6 -0
  305. package/lib/syntax/index.js +5 -0
  306. package/lib/syntax/syntaxRegistry.d.ts +150 -0
  307. package/lib/syntax/syntaxRegistry.js +314 -0
  308. package/lib/syntax/syntaxTree.d.ts +106 -0
  309. package/lib/syntax/syntaxTree.js +668 -0
  310. package/lib/syntax/types.d.ts +15 -0
  311. package/lib/syntax/types.js +1 -0
  312. package/lib/types/common.d.ts +1 -1
  313. package/package.json +72 -193
  314. package/.editorconfig +0 -12
  315. package/.prettierignore +0 -17
  316. package/MCP-Token/347/250/216/344/270/216/344/270/213/344/270/200/344/273/243/345/267/245/345/205/267/345/215/217/350/256/256.html +0 -1763
  317. package/docs/annotation-campaign-A.csv +0 -54
  318. package/docs/annotation-campaign-B.csv +0 -54
  319. package/docs/annotation-campaign.csv +0 -54
  320. package/docs/eval/annotations-A.jsonl +0 -16
  321. package/docs/eval/annotations.json +0 -122
  322. package/docs/eval/recorded-labels.json +0 -12
  323. package/docs/eval/replay-cases.json +0 -14
  324. package/docs/eval/replay-labels-b.json +0 -14
  325. package/docs/examples/attention-request.json +0 -16
  326. package/docs/examples/checkpoint.json +0 -15
  327. package/docs/examples/claim.json +0 -66
  328. package/docs/examples/collaboration.json +0 -66
  329. package/docs/examples/concept-checkpoint.json +0 -15
  330. package/docs/examples/concept-prune-plan.json +0 -45
  331. package/docs/examples/federation.json +0 -126
  332. package/docs/examples/frame-chain.json +0 -77
  333. package/docs/examples/ledger-snapshot.json +0 -108
  334. package/docs/examples/manifest.json +0 -77
  335. package/docs/examples/message.json +0 -19
  336. package/docs/examples/other-model.json +0 -45
  337. package/docs/examples/plan.json +0 -50
  338. package/docs/examples/prune-plan.json +0 -48
  339. package/docs/examples/receipt.json +0 -22
  340. package/docs/examples/runtime-run.json +0 -573
  341. package/docs/examples/team.json +0 -66
  342. package/docs/examples/verb-note.json +0 -11
  343. package/docs/probes/bayes-scores.json +0 -1452
  344. package/docs/probes/calibration-imported.json +0 -141
  345. package/docs/probes/context-ast-deepseek.json +0 -1577
  346. package/docs/probes/deepseek-probe.json +0 -917
  347. package/docs/probes/eval-recorded-replay.json +0 -597
  348. package/docs/probes/eval-replay.json +0 -124
  349. package/docs/probes/eval-summary.json +0 -42
  350. package/docs/probes/runtime-eval.json +0 -4230
  351. package/docs/schemas/collaboration.schema.json +0 -73
  352. package/docs/schemas/common.schema.json +0 -125
  353. package/docs/schemas/compaction.schema.json +0 -121
  354. package/docs/schemas/concept-compaction.schema.json +0 -73
  355. package/docs/schemas/concept.schema.json +0 -97
  356. package/docs/schemas/epistemic.schema.json +0 -178
  357. package/docs/schemas/federation.schema.json +0 -66
  358. package/docs/schemas/frame.schema.json +0 -86
  359. package/docs/schemas/ledger-snapshot.schema.json +0 -30
  360. package/docs/schemas/manifest.schema.json +0 -169
  361. package/docs/schemas/message.schema.json +0 -41
  362. package/docs/schemas/plan.schema.json +0 -189
  363. package/docs/schemas/receipt.schema.json +0 -45
  364. package/docs/schemas/social.schema.json +0 -153
  365. package/docs/schemas/team.schema.json +0 -56
  366. package/docs/schemas/verb.schema.json +0 -120
  367. package/eslint.config.mts +0 -96
  368. package/index.html +0 -13
  369. package/lib/context/workspaceProtocol.d.ts +0 -30
  370. package/lib/context/workspaceProtocol.js +0 -49
  371. package/prettier.config.mts +0 -37
  372. package/public/favicon.svg +0 -1
  373. package/public/icons.svg +0 -24
  374. package/src/attention/attention.ts +0 -347
  375. package/src/attention/budget.ts +0 -72
  376. package/src/attention/cognition.ts +0 -519
  377. package/src/attention/index.ts +0 -8
  378. package/src/attention/interrupts.ts +0 -228
  379. package/src/attention/resource.ts +0 -316
  380. package/src/attention/social.ts +0 -217
  381. package/src/attention/socialTypes.ts +0 -115
  382. package/src/authz/authz.ts +0 -305
  383. package/src/authz/index.ts +0 -1
  384. package/src/bayes/calibration.ts +0 -204
  385. package/src/bayes/calibrationRegistry.ts +0 -111
  386. package/src/bayes/calibrationSelection.ts +0 -154
  387. package/src/bayes/engine.ts +0 -532
  388. package/src/bayes/index.ts +0 -6
  389. package/src/bayes/reliability.ts +0 -62
  390. package/src/bayes/scopedPriors.ts +0 -88
  391. package/src/boundary/frame.ts +0 -322
  392. package/src/boundary/ids.ts +0 -14
  393. package/src/boundary/index.ts +0 -12
  394. package/src/boundary/refTable.ts +0 -125
  395. package/src/boundary/toolCall.ts +0 -212
  396. package/src/concept/concept.ts +0 -75
  397. package/src/concept/conceptBudget.ts +0 -346
  398. package/src/concept/conceptBudgetTypes.ts +0 -79
  399. package/src/concept/index.ts +0 -3
  400. package/src/concurrency/idempotency.ts +0 -41
  401. package/src/concurrency/index.ts +0 -5
  402. package/src/concurrency/mutex.ts +0 -26
  403. package/src/concurrency/namedLocks.ts +0 -35
  404. package/src/concurrency/retry.ts +0 -50
  405. package/src/concurrency/worker.ts +0 -128
  406. package/src/context/agentContext.ts +0 -308
  407. package/src/context/ast.ts +0 -499
  408. package/src/context/contentStore.ts +0 -75
  409. package/src/context/context.ts +0 -65
  410. package/src/context/contextIndex.ts +0 -85
  411. package/src/context/document.ts +0 -137
  412. package/src/context/fileStorePath.ts +0 -14
  413. package/src/context/index.ts +0 -43
  414. package/src/context/lifecycle.ts +0 -221
  415. package/src/context/projections.ts +0 -151
  416. package/src/context/workspace.ts +0 -422
  417. package/src/context/workspaceProtocol.ts +0 -112
  418. package/src/context/workspaceService.ts +0 -423
  419. package/src/cooperation/board.ts +0 -104
  420. package/src/cooperation/collaboration.ts +0 -60
  421. package/src/cooperation/index.ts +0 -6
  422. package/src/cooperation/merge.ts +0 -190
  423. package/src/cooperation/metrics.ts +0 -57
  424. package/src/cooperation/session.ts +0 -131
  425. package/src/cooperation/unified.ts +0 -56
  426. package/src/counter.ts +0 -9
  427. package/src/database/adapter/adapters.ts +0 -35
  428. package/src/database/adapter/index.ts +0 -4
  429. package/src/database/adapter/runtimeSink.ts +0 -74
  430. package/src/database/adapter/sessionStore.ts +0 -32
  431. package/src/database/adapter/turnStore.ts +0 -23
  432. package/src/database/entity/agent.ts +0 -199
  433. package/src/database/entity/entity.ts +0 -1046
  434. package/src/database/entity/handle.ts +0 -79
  435. package/src/database/entity/index.ts +0 -32
  436. package/src/database/entity/message.ts +0 -74
  437. package/src/database/entity/meta.ts +0 -11
  438. package/src/database/entity/object.ts +0 -42
  439. package/src/database/entity/outbox.ts +0 -15
  440. package/src/database/entity/process.ts +0 -65
  441. package/src/database/entity/registry.ts +0 -155
  442. package/src/database/entity/runtimeApproval.ts +0 -30
  443. package/src/database/entity/runtimeSession.ts +0 -13
  444. package/src/database/entity/runtimeTurn.ts +0 -15
  445. package/src/database/entity/thread.ts +0 -85
  446. package/src/database/entity/window.ts +0 -85
  447. package/src/database/entity/worker.ts +0 -90
  448. package/src/database/index.ts +0 -6
  449. package/src/database/repository/addressSpaceRepository.ts +0 -72
  450. package/src/database/repository/agentRepository.ts +0 -460
  451. package/src/database/repository/base.ts +0 -41
  452. package/src/database/repository/executionRepository.ts +0 -477
  453. package/src/database/repository/handleRepository.ts +0 -64
  454. package/src/database/repository/index.ts +0 -20
  455. package/src/database/repository/messageRepository.ts +0 -52
  456. package/src/database/repository/objectRepository.ts +0 -69
  457. package/src/database/repository/outboxRepository.ts +0 -63
  458. package/src/database/repository/processRepository.ts +0 -58
  459. package/src/database/repository/registryRepository.ts +0 -119
  460. package/src/database/repository/repository.ts +0 -491
  461. package/src/database/repository/runtimeApprovalRepository.ts +0 -44
  462. package/src/database/repository/runtimeSessionRepository.ts +0 -27
  463. package/src/database/repository/runtimeTurnRepository.ts +0 -39
  464. package/src/database/repository/socialRepository.ts +0 -185
  465. package/src/database/repository/threadRepository.ts +0 -57
  466. package/src/database/repository/windowRepository.ts +0 -88
  467. package/src/database/repository/workerRepository.ts +0 -69
  468. package/src/database/service/database.ts +0 -90
  469. package/src/database/service/handleService.ts +0 -48
  470. package/src/database/service/index.ts +0 -16
  471. package/src/database/service/messageService.ts +0 -61
  472. package/src/database/service/objectService.ts +0 -59
  473. package/src/database/service/processService.ts +0 -61
  474. package/src/database/service/registryServices.ts +0 -88
  475. package/src/database/service/service.ts +0 -183
  476. package/src/database/service/stepService.ts +0 -53
  477. package/src/database/service/threadService.ts +0 -65
  478. package/src/database/service/windowService.ts +0 -30
  479. package/src/database/service/workerService.ts +0 -57
  480. package/src/database/sql/index.ts +0 -3
  481. package/src/database/sql/schema.ts +0 -418
  482. package/src/database/sql/sql.ts +0 -543
  483. package/src/database/store/database.ts +0 -210
  484. package/src/database/store/index.ts +0 -3
  485. package/src/database/store/store.ts +0 -266
  486. package/src/delegate/index.ts +0 -2
  487. package/src/delegate/team.ts +0 -268
  488. package/src/delegate/teamTypes.ts +0 -47
  489. package/src/diagnosis/checklist.ts +0 -74
  490. package/src/diagnosis/context.ts +0 -93
  491. package/src/diagnosis/frame.ts +0 -256
  492. package/src/diagnosis/index.ts +0 -5
  493. package/src/diagnosis/router.ts +0 -72
  494. package/src/diagnosis/types.ts +0 -89
  495. package/src/error/agentError.ts +0 -16
  496. package/src/error/ampError.ts +0 -20
  497. package/src/error/authzError.ts +0 -14
  498. package/src/error/boundaryRejection.ts +0 -20
  499. package/src/error/index.ts +0 -7
  500. package/src/error/kernelError.ts +0 -27
  501. package/src/error/mailboxError.ts +0 -9
  502. package/src/error/windowError.ts +0 -12
  503. package/src/evaluation/agreement.ts +0 -96
  504. package/src/evaluation/index.ts +0 -2
  505. package/src/evaluation/labels.ts +0 -241
  506. package/src/evidence/evidenceGraph.ts +0 -205
  507. package/src/evidence/index.ts +0 -4
  508. package/src/evidence/revalidation.ts +0 -191
  509. package/src/execution/exec.ts +0 -408
  510. package/src/execution/handles.ts +0 -65
  511. package/src/execution/index.ts +0 -3
  512. package/src/execution/pin.ts +0 -154
  513. package/src/frame/frame.ts +0 -70
  514. package/src/frame/index.ts +0 -1
  515. package/src/goal/goal.ts +0 -43
  516. package/src/goal/index.ts +0 -2
  517. package/src/goal/plan.ts +0 -196
  518. package/src/governance/attentionManifest.ts +0 -802
  519. package/src/governance/audit.ts +0 -362
  520. package/src/governance/budget.ts +0 -628
  521. package/src/governance/context.ts +0 -356
  522. package/src/governance/control.ts +0 -159
  523. package/src/governance/cooperation.ts +0 -479
  524. package/src/governance/credential.ts +0 -359
  525. package/src/governance/httpServer.ts +0 -99
  526. package/src/governance/index.ts +0 -32
  527. package/src/governance/legal.ts +0 -574
  528. package/src/governance/matrix.ts +0 -460
  529. package/src/governance/perspectives.ts +0 -406
  530. package/src/governance/signing.ts +0 -407
  531. package/src/governance/store.ts +0 -125
  532. package/src/governance/switching.ts +0 -459
  533. package/src/governance/toolPolicy.ts +0 -80
  534. package/src/governance/transport.ts +0 -204
  535. package/src/governance/types.ts +0 -380
  536. package/src/governance/workflow.ts +0 -743
  537. package/src/index.ts +0 -11
  538. package/src/interaction/index.ts +0 -1
  539. package/src/interaction/interaction.ts +0 -391
  540. package/src/ipc/index.ts +0 -4
  541. package/src/ipc/mailbox.ts +0 -132
  542. package/src/ipc/memorySocialStore.ts +0 -93
  543. package/src/ipc/social.ts +0 -93
  544. package/src/kernel/index.ts +0 -14
  545. package/src/kernel/scheduler.ts +0 -498
  546. package/src/ledger/checkpoint.ts +0 -304
  547. package/src/ledger/index.ts +0 -4
  548. package/src/ledger/ledger.ts +0 -31
  549. package/src/ledger/persistence.ts +0 -159
  550. package/src/ledger/share.ts +0 -80
  551. package/src/lock/index.ts +0 -2
  552. package/src/lock/lease.ts +0 -74
  553. package/src/main.ts +0 -199
  554. package/src/manifest/agentCard.ts +0 -72
  555. package/src/manifest/cardSign.ts +0 -87
  556. package/src/manifest/federation.ts +0 -237
  557. package/src/manifest/federationTypes.ts +0 -55
  558. package/src/manifest/index.ts +0 -8
  559. package/src/manifest/keys.ts +0 -643
  560. package/src/manifest/manifest.ts +0 -114
  561. package/src/manifest/sign.ts +0 -134
  562. package/src/manifest/trust.ts +0 -146
  563. package/src/mission/index.ts +0 -2
  564. package/src/mission/missionQueue.ts +0 -75
  565. package/src/module/index.ts +0 -9
  566. package/src/module/llm/deepseek.ts +0 -214
  567. package/src/module/llm/llm.ts +0 -84
  568. package/src/module/mcp/client.ts +0 -110
  569. package/src/module/mcp/http.ts +0 -102
  570. package/src/module/mcp/protocol.ts +0 -77
  571. package/src/module/mcp/server.ts +0 -148
  572. package/src/module/mcp/transport.ts +0 -30
  573. package/src/module/mcp/workspaceServer.ts +0 -111
  574. package/src/module/sandbox/sandbox.ts +0 -29
  575. package/src/module/tool/mcpExecutor.ts +0 -54
  576. package/src/module/tool/policy.ts +0 -52
  577. package/src/module/tool/redact.ts +0 -29
  578. package/src/module/tool/tool.ts +0 -53
  579. package/src/module/tool/workspaceExecutor.ts +0 -35
  580. package/src/policy/guard.ts +0 -240
  581. package/src/policy/index.ts +0 -2
  582. package/src/policy/policy.ts +0 -561
  583. package/src/process/agent.ts +0 -341
  584. package/src/process/agentService.ts +0 -236
  585. package/src/process/agentStore.ts +0 -378
  586. package/src/process/executionStore.ts +0 -151
  587. package/src/process/index.ts +0 -5
  588. package/src/process/process.ts +0 -240
  589. package/src/process/transitions.ts +0 -19
  590. package/src/progress/index.ts +0 -2
  591. package/src/progress/progress.ts +0 -85
  592. package/src/protocol/a2a.ts +0 -120
  593. package/src/protocol/channel.ts +0 -44
  594. package/src/protocol/envelope.ts +0 -655
  595. package/src/protocol/httpChannel.ts +0 -87
  596. package/src/protocol/index.ts +0 -6
  597. package/src/protocol/protocol.ts +0 -138
  598. package/src/protocol/wire.ts +0 -60
  599. package/src/receipt/index.ts +0 -1
  600. package/src/receipt/receipt.ts +0 -47
  601. package/src/registry/content.ts +0 -69
  602. package/src/registry/index.ts +0 -23
  603. package/src/registry/registry.ts +0 -599
  604. package/src/runtime/action.ts +0 -87
  605. package/src/runtime/behavior.ts +0 -330
  606. package/src/runtime/behaviorTuning.ts +0 -163
  607. package/src/runtime/cognitiveRuntime.ts +0 -703
  608. package/src/runtime/escalation.ts +0 -35
  609. package/src/runtime/governedTask.ts +0 -233
  610. package/src/runtime/index.ts +0 -15
  611. package/src/runtime/kernelRuntime.ts +0 -144
  612. package/src/runtime/operation.ts +0 -35
  613. package/src/runtime/replay.ts +0 -71
  614. package/src/runtime/routing.ts +0 -58
  615. package/src/runtime/safety.ts +0 -48
  616. package/src/runtime/session.ts +0 -341
  617. package/src/runtime/sessionStore.ts +0 -43
  618. package/src/runtime/telemetry.ts +0 -55
  619. package/src/runtime/turnStore.ts +0 -30
  620. package/src/scenario/index.ts +0 -1
  621. package/src/scenario/scenario.ts +0 -299
  622. package/src/semantic/canonical.ts +0 -24
  623. package/src/semantic/index.ts +0 -2
  624. package/src/semantic/sha256.ts +0 -82
  625. package/src/storage/appendLog.ts +0 -372
  626. package/src/storage/fileAppendSink.ts +0 -40
  627. package/src/storage/index.ts +0 -2
  628. package/src/store/bindCache.ts +0 -22
  629. package/src/store/cache.ts +0 -191
  630. package/src/store/context.ts +0 -31
  631. package/src/store/handleStore.ts +0 -31
  632. package/src/store/index.ts +0 -9
  633. package/src/store/messageStore.ts +0 -31
  634. package/src/store/objectStore.ts +0 -31
  635. package/src/store/processStore.ts +0 -31
  636. package/src/store/threadStore.ts +0 -31
  637. package/src/store/windowStore.ts +0 -31
  638. package/src/structure/abstractSyntaxTree.ts +0 -493
  639. package/src/structure/avlTree.ts +0 -408
  640. package/src/structure/binarySearchTree.ts +0 -352
  641. package/src/structure/binaryTree.ts +0 -525
  642. package/src/structure/bloomFilter.ts +0 -231
  643. package/src/structure/compare.ts +0 -110
  644. package/src/structure/cuckooFilter.ts +0 -337
  645. package/src/structure/deque.ts +0 -223
  646. package/src/structure/filterKey.ts +0 -36
  647. package/src/structure/hash.ts +0 -279
  648. package/src/structure/heap.ts +0 -268
  649. package/src/structure/index.ts +0 -20
  650. package/src/structure/iterator.ts +0 -22
  651. package/src/structure/lru.ts +0 -619
  652. package/src/structure/ordered.ts +0 -399
  653. package/src/structure/priority.ts +0 -915
  654. package/src/structure/queue.ts +0 -168
  655. package/src/structure/redBlackTree.ts +0 -680
  656. package/src/structure/segmentTree.ts +0 -248
  657. package/src/structure/stack.ts +0 -118
  658. package/src/structure/unordered.ts +0 -407
  659. package/src/style.css +0 -278
  660. package/src/thread/index.ts +0 -2
  661. package/src/thread/thread.ts +0 -176
  662. package/src/thread/transitions.ts +0 -17
  663. package/src/types/common.ts +0 -119
  664. package/src/types/index.ts +0 -23
  665. package/src/warrant/epistemic.ts +0 -154
  666. package/src/warrant/index.ts +0 -3
  667. package/src/warrant/inquiry.ts +0 -166
  668. package/src/warrant/warrant.ts +0 -179
  669. package/src/window/compaction.ts +0 -403
  670. package/src/window/compactionTypes.ts +0 -119
  671. package/src/window/index.ts +0 -7
  672. package/src/window/page.ts +0 -18
  673. package/src/window/window.ts +0 -244
  674. package/tools/_helpers.ts +0 -34
  675. package/tools/a2a-check.ts +0 -110
  676. package/tools/a2a-flow-check.ts +0 -78
  677. package/tools/agent-card-check.ts +0 -76
  678. package/tools/agent-check.ts +0 -236
  679. package/tools/agent-store-check.ts +0 -153
  680. package/tools/agreement-check.ts +0 -27
  681. package/tools/annotation-server-check.ts +0 -48
  682. package/tools/annotation-server.ts +0 -230
  683. package/tools/annotation-status.ts +0 -65
  684. package/tools/approval-access-check.ts +0 -66
  685. package/tools/arch-check.ts +0 -72
  686. package/tools/attention-core-check.ts +0 -48
  687. package/tools/attention-resource-check.ts +0 -169
  688. package/tools/audit-check.ts +0 -207
  689. package/tools/authority-check.ts +0 -124
  690. package/tools/authz-check.ts +0 -138
  691. package/tools/bayes-check.ts +0 -162
  692. package/tools/bayes-probe.ts +0 -154
  693. package/tools/behavior-tuning-check.ts +0 -53
  694. package/tools/board-check.ts +0 -87
  695. package/tools/boundary-check.ts +0 -199
  696. package/tools/bundle-trust-check.ts +0 -96
  697. package/tools/calibrate-imported.ts +0 -108
  698. package/tools/calibration-check.ts +0 -44
  699. package/tools/calibration-registry-check.ts +0 -40
  700. package/tools/calibration-sim.ts +0 -40
  701. package/tools/card-sign-check.ts +0 -71
  702. package/tools/card-trust-check.ts +0 -78
  703. package/tools/channel-check.ts +0 -86
  704. package/tools/checkpoint-check.ts +0 -620
  705. package/tools/cleanup-style-configs.ts +0 -29
  706. package/tools/cognition-check.ts +0 -648
  707. package/tools/cognitive-runtime-check.ts +0 -609
  708. package/tools/collaboration-demo.ts +0 -78
  709. package/tools/compaction-check.ts +0 -266
  710. package/tools/concept-check.ts +0 -260
  711. package/tools/concurrency-check.ts +0 -242
  712. package/tools/conformance-runtime.ts +0 -389
  713. package/tools/conformance.ts +0 -651
  714. package/tools/context-ast-check.ts +0 -90
  715. package/tools/context-ast-deepseek.ts +0 -242
  716. package/tools/context-graph-bench.ts +0 -50
  717. package/tools/context-graph-check.ts +0 -229
  718. package/tools/context-index-check.ts +0 -48
  719. package/tools/context-lifecycle-check.ts +0 -69
  720. package/tools/context-projection-check.ts +0 -73
  721. package/tools/context-scope-check.ts +0 -134
  722. package/tools/context-storage-check.ts +0 -113
  723. package/tools/cooperation-check.ts +0 -517
  724. package/tools/cooperation-http-check.ts +0 -125
  725. package/tools/deepseek-llm-check.ts +0 -147
  726. package/tools/deepseek-probe.ts +0 -494
  727. package/tools/diagnosis-check.ts +0 -109
  728. package/tools/diagnosis-router-check.ts +0 -50
  729. package/tools/document-context-check.ts +0 -237
  730. package/tools/envelope-check.ts +0 -659
  731. package/tools/eslint-rules/index.ts +0 -26
  732. package/tools/eslint-rules/rules/jsdoc-comment-format.ts +0 -105
  733. package/tools/eslint-rules/rules/no-function-keyword.ts +0 -60
  734. package/tools/eslint-rules/rules/no-multiline-parameters.ts +0 -71
  735. package/tools/eslint-rules/rules/no-multiline-type-parameters.ts +0 -57
  736. package/tools/eslint-rules/rules/no-undefined-comparison.ts +0 -115
  737. package/tools/eslint-rules/rules/prefer-template-for-string-conversion.ts +0 -97
  738. package/tools/eslint-rules/rules/require-typeof-parentheses.ts +0 -49
  739. package/tools/eslint-rules/rules/require-variable-type.ts +0 -36
  740. package/tools/eslint-rules/rules/variable-naming.ts +0 -175
  741. package/tools/eval-recorded-replay.ts +0 -215
  742. package/tools/eval-replay.ts +0 -139
  743. package/tools/eval-summary.ts +0 -136
  744. package/tools/evidence-revalidation-check.ts +0 -235
  745. package/tools/exec-check.ts +0 -217
  746. package/tools/federation-check.ts +0 -166
  747. package/tools/federation-demo.ts +0 -45
  748. package/tools/filter-check.ts +0 -243
  749. package/tools/governance-check.ts +0 -680
  750. package/tools/governance-store-check.ts +0 -131
  751. package/tools/governed-task-check.ts +0 -227
  752. package/tools/guard-check.ts +0 -122
  753. package/tools/http-channel-check.ts +0 -125
  754. package/tools/import-campaign.ts +0 -28
  755. package/tools/inquiry-check.ts +0 -126
  756. package/tools/interaction-check.ts +0 -171
  757. package/tools/interrupts-check.ts +0 -173
  758. package/tools/ipc-check.ts +0 -170
  759. package/tools/kernel-async-check.ts +0 -136
  760. package/tools/kernel-check.ts +0 -369
  761. package/tools/kernel-runtime-check.ts +0 -276
  762. package/tools/keys-check.ts +0 -559
  763. package/tools/label-audit.ts +0 -70
  764. package/tools/labels-workflow-check.ts +0 -49
  765. package/tools/linear-structure-check.ts +0 -524
  766. package/tools/live-exec.ts +0 -62
  767. package/tools/live-governance-eval.ts +0 -813
  768. package/tools/live-legacy.ts +0 -50
  769. package/tools/lru-check.ts +0 -182
  770. package/tools/make-annotation-campaign.ts +0 -57
  771. package/tools/mcp-executor-check.ts +0 -33
  772. package/tools/merge-annotations.ts +0 -32
  773. package/tools/merge-check.ts +0 -98
  774. package/tools/metrics-check.ts +0 -84
  775. package/tools/net-probe.ts +0 -107
  776. package/tools/oauth-probe.ts +0 -117
  777. package/tools/outbox-check.ts +0 -50
  778. package/tools/persistence-check.ts +0 -144
  779. package/tools/pin-check.ts +0 -116
  780. package/tools/platform-check.ts +0 -281
  781. package/tools/policy-check.ts +0 -514
  782. package/tools/prettier-plugin/index.mts +0 -84
  783. package/tools/priority-check.ts +0 -627
  784. package/tools/probe-context7.ts +0 -63
  785. package/tools/registry-check.ts +0 -252
  786. package/tools/reliability-check.ts +0 -25
  787. package/tools/retry-check.ts +0 -85
  788. package/tools/rewrite-declaration-extensions.ts +0 -98
  789. package/tools/runtime-check.ts +0 -165
  790. package/tools/runtime-deepseek-check.ts +0 -85
  791. package/tools/runtime-eval.ts +0 -358
  792. package/tools/scenario-check.ts +0 -161
  793. package/tools/scenario-incident.ts +0 -162
  794. package/tools/scoped-priors-check.ts +0 -35
  795. package/tools/scoped-priors-pooling.ts +0 -34
  796. package/tools/segment-ast-check.ts +0 -649
  797. package/tools/session-check.ts +0 -196
  798. package/tools/session-store-check.ts +0 -73
  799. package/tools/share-check.ts +0 -88
  800. package/tools/sign-check.ts +0 -95
  801. package/tools/signing-check.ts +0 -275
  802. package/tools/snapshot-demo.ts +0 -65
  803. package/tools/social-check.ts +0 -146
  804. package/tools/structure-compare-check.ts +0 -95
  805. package/tools/support/documentScanner.ts +0 -577
  806. package/tools/support/texScanner.ts +0 -631
  807. package/tools/support/workspaceScanner.ts +0 -476
  808. package/tools/team-check.ts +0 -163
  809. package/tools/team-demo.ts +0 -36
  810. package/tools/telemetry-check.ts +0 -44
  811. package/tools/tex-context-check.ts +0 -263
  812. package/tools/tool-gate-check.ts +0 -98
  813. package/tools/tree-structure-check.ts +0 -786
  814. package/tools/trust-flow-check.ts +0 -158
  815. package/tools/turn-store-check.ts +0 -57
  816. package/tools/unified-check.ts +0 -83
  817. package/tools/validate.ts +0 -309
  818. package/tools/wire-check.ts +0 -96
  819. package/tools/workspace-agent-check.ts +0 -486
  820. package/tools/workspace-agent-demo.ts +0 -62
  821. package/tools/workspace-agent-server.ts +0 -101
  822. package/tools/workspace-context-check.ts +0 -331
  823. package/tools/workspace-context.ts +0 -131
  824. package/tsconfig.build.json +0 -14
  825. package/tsconfig.json +0 -24
  826. package/tsconfig.tools.json +0 -31
  827. package/viz/context-ast.json +0 -1577
@@ -1,6 +1,67 @@
1
1
  /**
2
2
  * Canonical JSON (RFC 8785 spirit: sorted keys, no whitespace).
3
3
  * Everything that gets signed or digested must go through this first.
4
+ *
5
+ * Only strict I-JSON values are accepted. `undefined`, non-finite numbers,
6
+ * functions, `Date`/`Map`/`Set`, sparse arrays, cycles and accessors are
7
+ * rejected with a `TypeError` naming the offending path, because
8
+ * `JSON.stringify` would otherwise silently rewrite them and a digest would no
9
+ * longer bind the value the caller passed.
10
+ *
11
+ * Two further cases are rejected because RFC 8785 rejects them, even though
12
+ * `JSON.stringify` happily rewrites both:
13
+ *
14
+ * - an unpaired surrogate (§3.2.2.2). `JSON.stringify` escapes it and
15
+ * `TextEncoder` replaces it with U+FFFD, so two different strings can hash to
16
+ * the same digest while a compliant verifier re-derives a different byte
17
+ * string. A signature over such a value cannot be re-checked.
18
+ * - `-0` (appendix B). JCS serialises `-0` as `0`, so `-0` and `0` are one
19
+ * digest. That is legal JCS but it is a silent rewrite of the caller's value,
20
+ * which is exactly what this module refuses elsewhere. Callers that really
21
+ * mean "treat -0 as 0" must say so with `negativeZero: "as-zero"`, which turns
22
+ * an accidental collision into a declared policy.
23
+ *
24
+ * Unicode normalization is deliberately **not** applied: RFC 8785 §3.1 requires
25
+ * string data to be preserved as-is, and a digest that normalises would no
26
+ * longer be a digest of the bytes the caller supplied. Text-level normalisation
27
+ * belongs to a caller that records the policy, which is what `src/fingerprint`
28
+ * does for its `text` kind.
29
+ */
30
+ /**
31
+ * How `-0` is treated when canonicalising.
32
+ *
33
+ * `"reject"` is the default and matches this module's contract that a digest
34
+ * must never cover a value `JSON.stringify` silently rewrote. `"as-zero"` is
35
+ * the explicit opt-in for a caller that has to interoperate with a plain JCS
36
+ * implementation, which maps `-0` to `0`.
37
+ */
38
+ export type NegativeZeroPolicy = "reject" | "as-zero";
39
+ /**
40
+ * Options for {@link canonicalJson} and {@link canonical} may only affect the
41
+ * documented policy, never the shape of the output.
42
+ */
43
+ export interface CanonicalOptions {
44
+ negativeZero?: NegativeZeroPolicy;
45
+ }
46
+ /**
47
+ * Report the first value the strict policy cannot bind, or `undefined`.
48
+ *
49
+ * Structural problems are already covered by `jsonValueProblem`; this pass adds
50
+ * the two policy rules that depend on the caller's options. Keeping it as a
51
+ * pure function instead of a thrower lets `src/fingerprint` translate the same
52
+ * decision into its own error type rather than re-implementing RFC 8785.
53
+ */
54
+ export declare const canonicalProblem: (value: unknown, options?: CanonicalOptions) => string | undefined;
55
+ /**
56
+ * Canonical JSON with the documented policy options.
57
+ *
58
+ * One definition of "the bytes a digest covers" is the whole point: signing,
59
+ * pinning, ledger chaining and fingerprints all call this instead of each
60
+ * re-deriving the rules.
61
+ */
62
+ export declare const canonicalJson: (value: unknown, options?: CanonicalOptions) => string;
63
+ /**
64
+ * Canonical JSON with the default policy (`-0` rejected).
4
65
  */
5
66
  export declare const canonical: (value: unknown) => string;
6
67
  export declare const digestOf: (value: unknown) => string;
@@ -1,22 +1,149 @@
1
+ import { jsonValueProblem } from "./jsonValue.js";
1
2
  import { sha256Hex } from "./sha256.js";
3
+ const SurrogateHighStart = 0xd800;
4
+ const SurrogateHighEnd = 0xdbff;
5
+ const SurrogateLowStart = 0xdc00;
6
+ const SurrogateLowEnd = 0xdfff;
2
7
  /**
3
- * Canonical JSON (RFC 8785 spirit: sorted keys, no whitespace).
4
- * Everything that gets signed or digested must go through this first.
8
+ * Report the first unpaired surrogate in one string.
9
+ *
10
+ * JS strings are UTF-16 code units, so a string can hold half of a surrogate
11
+ * pair. JSON can represent it with an escape, but UTF-8 cannot encode it, and
12
+ * `TextEncoder` silently substitutes U+FFFD —which is why this is an error
13
+ * rather than a normalisation.
5
14
  */
6
- export const canonical = (value) => {
7
- if (value === (void 0)) {
15
+ const surrogateProblem = (text, at) => {
16
+ for (let index = 0; index < text.length; index += 1) {
17
+ const unit = text.charCodeAt(index);
18
+ if (unit >= SurrogateHighStart && unit <= SurrogateHighEnd) {
19
+ const next = index + 1 < text.length ? text.charCodeAt(index + 1) : 0;
20
+ if (next < SurrogateLowStart || next > SurrogateLowEnd) {
21
+ return `${at} contains an unpaired high surrogate at index ${index}`;
22
+ }
23
+ index += 1;
24
+ continue;
25
+ }
26
+ if (unit >= SurrogateLowStart && unit <= SurrogateLowEnd) {
27
+ return `${at} contains an unpaired low surrogate at index ${index}`;
28
+ }
29
+ }
30
+ return (void 0);
31
+ };
32
+ /**
33
+ * Report the first value the strict policy cannot bind, or `undefined`.
34
+ *
35
+ * Structural problems are already covered by `jsonValueProblem`; this pass adds
36
+ * the two policy rules that depend on the caller's options. Keeping it as a
37
+ * pure function instead of a thrower lets `src/fingerprint` translate the same
38
+ * decision into its own error type rather than re-implementing RFC 8785.
39
+ */
40
+ export const canonicalProblem = (value, options = {}) => {
41
+ const negativeZero = options.negativeZero ?? "reject";
42
+ if (negativeZero !== "reject" && negativeZero !== "as-zero") {
43
+ throw new TypeError(`unknown negativeZero policy "${negativeZero}"; expected "reject" or "as-zero"`);
44
+ }
45
+ const walk = (item, at) => {
46
+ if (item === null) {
47
+ return (void 0);
48
+ }
49
+ const kind = typeof (item);
50
+ if (kind === "string") {
51
+ return surrogateProblem(item, at);
52
+ }
53
+ if (kind === "number") {
54
+ return negativeZero === "reject" && Object.is(item, -0) ? `${at} is -0; pass { negativeZero: "as-zero" } to accept it explicitly` : (void 0);
55
+ }
56
+ if (kind !== "object") {
57
+ return (void 0);
58
+ }
59
+ if (Array.isArray(item)) {
60
+ for (let index = 0; index < item.length; index += 1) {
61
+ const problem = walk(item[index], `${at}[${index}]`);
62
+ if (problem !== (void 0)) {
63
+ return problem;
64
+ }
65
+ }
66
+ return (void 0);
67
+ }
68
+ const record = item;
69
+ const keys = Object.keys(record);
70
+ for (let index = 0; index < keys.length; index += 1) {
71
+ const key = keys[index];
72
+ const keyProblem = surrogateProblem(key, `${at} key`);
73
+ if (keyProblem !== (void 0)) {
74
+ return keyProblem;
75
+ }
76
+ const problem = walk(record[key], `${at}.${key}`);
77
+ if (problem !== (void 0)) {
78
+ return problem;
79
+ }
80
+ }
81
+ return (void 0);
82
+ };
83
+ return walk(value, "$");
84
+ };
85
+ /**
86
+ * Throw a `TypeError` naming the first reason the value cannot be canonicalised.
87
+ *
88
+ * Structural and policy problems share one error type because the caller's only
89
+ * useful response is the same: fix the value. The message names the path.
90
+ */
91
+ const assertStrictCanonical = (value, options) => {
92
+ const structural = jsonValueProblem(value);
93
+ if (structural !== (void 0)) {
94
+ throw new TypeError(structural);
95
+ }
96
+ const policy = canonicalProblem(value, options);
97
+ if (policy !== (void 0)) {
98
+ throw new TypeError(policy);
99
+ }
100
+ };
101
+ /**
102
+ * Encode a value already proven canonicalisable by `assertStrictCanonical`.
103
+ */
104
+ const encodeCanonical = (value) => {
105
+ if (value === null) {
8
106
  return "null";
9
107
  }
10
- if (value === null || typeof (value) !== "object") {
108
+ const kind = typeof (value);
109
+ if (kind === "boolean") {
110
+ return value === true ? "true" : "false";
111
+ }
112
+ if (kind === "string" || kind === "number") {
11
113
  return JSON.stringify(value);
12
114
  }
13
115
  if (Array.isArray(value)) {
14
- return `[${value.map(canonical).join(",")}]`;
116
+ const elements = [];
117
+ for (let index = 0; index < value.length; index += 1) {
118
+ elements.push(encodeCanonical(value[index]));
119
+ }
120
+ return `[${elements.join(",")}]`;
15
121
  }
16
122
  const record = value;
17
123
  const keys = Object.keys(record).sort();
18
- return `{${keys.map((k) => `${JSON.stringify(k)}:${canonical(record[k])}`).join(",")}}`;
124
+ const members = [];
125
+ for (let index = 0; index < keys.length; index += 1) {
126
+ const key = keys[index];
127
+ members.push(`${JSON.stringify(key)}:${encodeCanonical(record[key])}`);
128
+ }
129
+ return `{${members.join(",")}}`;
19
130
  };
131
+ /**
132
+ * Canonical JSON with the documented policy options.
133
+ *
134
+ * One definition of "the bytes a digest covers" is the whole point: signing,
135
+ * pinning, ledger chaining and fingerprints all call this instead of each
136
+ * re-deriving the rules.
137
+ */
138
+ export const canonicalJson = (value, options = {}) => {
139
+ assertStrictCanonical(value, options);
140
+ return encodeCanonical(value);
141
+ };
142
+ /**
143
+ * Canonical JSON with the default policy (`-0` rejected).
144
+ */
145
+ export const canonical = (value) => canonicalJson(value);
20
146
  export const digestOf = (value) => {
21
- return `sha256:${sha256Hex(canonical(value))}`;
147
+ const text = canonicalJson(value);
148
+ return `sha256:${sha256Hex(text)}`;
22
149
  };
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Strict I-JSON value inspection.
3
+ *
4
+ * `canonical()`, the construction boundary and the persistence layers all need
5
+ * one definition of "this value can be represented as JSON". JavaScript values
6
+ * outside that domain (`undefined`, `NaN`, functions, `Date`, sparse arrays,
7
+ * cycles) must be rejected instead of being silently rewritten by
8
+ * `JSON.stringify`, because a digest that covers a rewritten value no longer
9
+ * binds what the caller passed.
10
+ */
11
+ /**
12
+ * Describe why `value` is not I-JSON, or `undefined` when it is.
13
+ */
14
+ export declare const jsonValueProblem: (value: unknown, at?: string) => string | undefined;
15
+ /**
16
+ * True when the value is exactly representable as JSON without rewriting.
17
+ */
18
+ export declare const isJsonValue: (value: unknown) => boolean;
19
+ /**
20
+ * Throw a `TypeError` naming the first non-JSON path.
21
+ */
22
+ export declare const assertJsonValue: (value: unknown, at?: string) => void;
23
+ /**
24
+ * Deep-copy a JSON value. Asserts first, so the result cannot contain values
25
+ * that `JSON.stringify` would drop or rewrite.
26
+ */
27
+ export declare const cloneJson: <T>(value: T) => T;
28
+ /**
29
+ * Recursively freeze a JSON value. Assumes the value is acyclic (assert first).
30
+ */
31
+ export declare const deepFreezeJson: <T>(value: T) => T;
@@ -0,0 +1,122 @@
1
+ /**
2
+ * Strict I-JSON value inspection.
3
+ *
4
+ * `canonical()`, the construction boundary and the persistence layers all need
5
+ * one definition of "this value can be represented as JSON". JavaScript values
6
+ * outside that domain (`undefined`, `NaN`, functions, `Date`, sparse arrays,
7
+ * cycles) must be rejected instead of being silently rewritten by
8
+ * `JSON.stringify`, because a digest that covers a rewritten value no longer
9
+ * binds what the caller passed.
10
+ */
11
+ const constructorName = (value) => {
12
+ const prototype = Object.getPrototypeOf(value);
13
+ if (prototype === null) {
14
+ return "null-prototype object";
15
+ }
16
+ const name = prototype.constructor?.name;
17
+ return typeof (name) === "string" && name.length > 0 ? name : "object";
18
+ };
19
+ const problemAt = (value, at, seen) => {
20
+ if (value === null) {
21
+ return (void 0);
22
+ }
23
+ const kind = typeof (value);
24
+ if (kind === "string" || kind === "boolean") {
25
+ return (void 0);
26
+ }
27
+ if (kind === "number") {
28
+ return Number.isFinite(value) ? (void 0) : `${at} is not a finite number`;
29
+ }
30
+ if (kind === "undefined") {
31
+ return `${at} is undefined`;
32
+ }
33
+ if (kind === "bigint" || kind === "function" || kind === "symbol") {
34
+ return `${at} is a ${kind}`;
35
+ }
36
+ const object = value;
37
+ if (seen.has(object)) {
38
+ return `${at} contains a cycle`;
39
+ }
40
+ seen.add(object);
41
+ try {
42
+ if (Array.isArray(value)) {
43
+ for (let index = 0; index < value.length; index += 1) {
44
+ if (!(index in value)) {
45
+ return `${at}[${index}] is a hole`;
46
+ }
47
+ const problem = problemAt(value[index], `${at}[${index}]`, seen);
48
+ if (problem !== (void 0)) {
49
+ return problem;
50
+ }
51
+ }
52
+ return (void 0);
53
+ }
54
+ const prototype = Object.getPrototypeOf(object);
55
+ if (prototype !== null && prototype !== Object.prototype) {
56
+ return `${at} is a ${constructorName(object)}, not a plain object`;
57
+ }
58
+ if (Object.getOwnPropertySymbols(object).length > 0) {
59
+ return `${at} has symbol keys`;
60
+ }
61
+ const keys = Object.keys(object);
62
+ for (let index = 0; index < keys.length; index += 1) {
63
+ const key = keys[index];
64
+ const descriptor = Object.getOwnPropertyDescriptor(object, key);
65
+ if (descriptor === (void 0) || !("value" in descriptor)) {
66
+ return `${at}.${key} is an accessor`;
67
+ }
68
+ const problem = problemAt(descriptor.value, `${at}.${key}`, seen);
69
+ if (problem !== (void 0)) {
70
+ return problem;
71
+ }
72
+ }
73
+ return (void 0);
74
+ }
75
+ finally {
76
+ seen.delete(object);
77
+ }
78
+ };
79
+ /**
80
+ * Describe why `value` is not I-JSON, or `undefined` when it is.
81
+ */
82
+ export const jsonValueProblem = (value, at = "$") => problemAt(value, at, new Set());
83
+ /**
84
+ * True when the value is exactly representable as JSON without rewriting.
85
+ */
86
+ export const isJsonValue = (value) => jsonValueProblem(value) === (void 0);
87
+ /**
88
+ * Throw a `TypeError` naming the first non-JSON path.
89
+ */
90
+ export const assertJsonValue = (value, at = "$") => {
91
+ const problem = jsonValueProblem(value, at);
92
+ if (problem !== (void 0)) {
93
+ throw new TypeError(problem);
94
+ }
95
+ };
96
+ /**
97
+ * Deep-copy a JSON value. Asserts first, so the result cannot contain values
98
+ * that `JSON.stringify` would drop or rewrite.
99
+ */
100
+ export const cloneJson = (value) => {
101
+ assertJsonValue(value);
102
+ return JSON.parse(JSON.stringify(value));
103
+ };
104
+ /**
105
+ * Recursively freeze a JSON value. Assumes the value is acyclic (assert first).
106
+ */
107
+ export const deepFreezeJson = (value) => {
108
+ const freeze = (item) => {
109
+ if (item === null || typeof (item) !== "object" || Object.isFrozen(item)) {
110
+ return;
111
+ }
112
+ Object.freeze(item);
113
+ if (Array.isArray(item)) {
114
+ item.forEach(freeze);
115
+ }
116
+ else {
117
+ Object.keys(item).forEach((key) => freeze(item[key]));
118
+ }
119
+ };
120
+ freeze(value);
121
+ return value;
122
+ };
@@ -11,6 +11,9 @@ const K = new Uint32Array([
11
11
  ]);
12
12
  const rotr = (x, n) => ((x >>> n) | (x << (32 - n))) >>> 0;
13
13
  export const sha256Hex = (input) => {
14
+ if (typeof (input) !== "string") {
15
+ throw new TypeError(`sha256Hex expects a string, received ${typeof (input)}`);
16
+ }
14
17
  const bytes = new TextEncoder().encode(input);
15
18
  const length = bytes.length;
16
19
  const padded = new Uint8Array(((length + 9 + 63) >> 6) << 6);
@@ -0,0 +1,14 @@
1
+ /**
2
+ * RFC 3339 `date-time` validation with calendar and range checks.
3
+ *
4
+ * `Date.parse()` is deliberately not used: it accepts date-only strings,
5
+ * offset-less local times and legacy numeric strings, and normalizes impossible
6
+ * dates such as `2026-02-30` into March. The construction boundary and the
7
+ * schema validator must agree on exactly one grammar.
8
+ */
9
+ /**
10
+ * True for one RFC 3339 date-time with a mandatory offset.
11
+ *
12
+ * Leap seconds (`:60`) are accepted only at 23:59, as RFC 3339 permits.
13
+ */
14
+ export declare const isDateTime: (value: unknown) => boolean;
@@ -0,0 +1,56 @@
1
+ /**
2
+ * RFC 3339 `date-time` validation with calendar and range checks.
3
+ *
4
+ * `Date.parse()` is deliberately not used: it accepts date-only strings,
5
+ * offset-less local times and legacy numeric strings, and normalizes impossible
6
+ * dates such as `2026-02-30` into March. The construction boundary and the
7
+ * schema validator must agree on exactly one grammar.
8
+ */
9
+ const DateTimePattern = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.(\d+))?(Z|[+-]\d{2}:\d{2})$/;
10
+ const daysInMonth = (year, month) => {
11
+ if (month === 2) {
12
+ const leap = (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
13
+ return leap ? 29 : 28;
14
+ }
15
+ return [4, 6, 9, 11].includes(month) ? 30 : 31;
16
+ };
17
+ /**
18
+ * True for one RFC 3339 date-time with a mandatory offset.
19
+ *
20
+ * Leap seconds (`:60`) are accepted only at 23:59, as RFC 3339 permits.
21
+ */
22
+ export const isDateTime = (value) => {
23
+ if (typeof (value) !== "string") {
24
+ return false;
25
+ }
26
+ const match = DateTimePattern.exec(value);
27
+ if (match === null) {
28
+ return false;
29
+ }
30
+ const year = Number(match[1]);
31
+ const month = Number(match[2]);
32
+ const day = Number(match[3]);
33
+ const hour = Number(match[4]);
34
+ const minute = Number(match[5]);
35
+ const second = Number(match[6]);
36
+ if (month < 1 || month > 12) {
37
+ return false;
38
+ }
39
+ if (day < 1 || day > daysInMonth(year, month)) {
40
+ return false;
41
+ }
42
+ if (hour > 23 || minute > 59 || second > 60) {
43
+ return false;
44
+ }
45
+ if (second === 60 && (hour !== 23 || minute !== 59)) {
46
+ return false;
47
+ }
48
+ if (match[8] !== "Z") {
49
+ const offsetHour = Number(match[8].slice(1, 3));
50
+ const offsetMinute = Number(match[8].slice(4, 6));
51
+ if (offsetHour > 23 || offsetMinute > 59) {
52
+ return false;
53
+ }
54
+ }
55
+ return true;
56
+ };
@@ -0,0 +1,76 @@
1
+ import type { SessionClock, SessionContextEntry, SessionContextSnapshot, SessionContextStore, SessionId, SessionJson, SessionRegistryLimits } from "./types.js";
2
+ /**
3
+ * Construction options for {@link SessionContexts}. Limits are registry-wide so
4
+ * a caller cannot raise a per-session budget after construction.
5
+ */
6
+ export interface SessionContextOptions {
7
+ readonly persistence?: SessionContextStore;
8
+ readonly clock?: SessionClock;
9
+ readonly limits?: Pick<SessionRegistryLimits, "maxContextEntries" | "maxContextBytes">;
10
+ }
11
+ export declare class SessionContexts {
12
+ private readonly persistence?;
13
+ private readonly clock;
14
+ private readonly maxEntries;
15
+ private readonly maxBytes;
16
+ private readonly sessions;
17
+ private readonly sizes;
18
+ private readonly loaded;
19
+ constructor(options?: SessionContextOptions);
20
+ /**
21
+ * Load one session's persisted entries exactly once. An absent store, a
22
+ * store that has no row for the session and an empty result all mean "this
23
+ * session has no entries yet". A persisted partition that exceeds the
24
+ * current limits is rejected with `context_quota` rather than silently
25
+ * bypassing the quota; `clear` and `remove` still work without loading.
26
+ */
27
+ ensure(sessionId: SessionId): void;
28
+ /**
29
+ * Return one entry, or `undefined`. A missing session is an empty context,
30
+ * not an error: the registry owns session existence.
31
+ */
32
+ get(sessionId: SessionId, namespace: string, key: string): SessionContextEntry | undefined;
33
+ /**
34
+ * Canonicalise, quota-check and store one value, returning the stored entry
35
+ * as a detached copy.
36
+ */
37
+ set(sessionId: SessionId, namespace: string, key: string, value: SessionJson, at: string): SessionContextEntry;
38
+ /**
39
+ * Remove one entry. Returns `false` when it never existed.
40
+ */
41
+ delete(sessionId: SessionId, namespace: string, key: string): boolean;
42
+ /**
43
+ * List entries for one session, optionally narrowed to one namespace.
44
+ * Ordering is deterministic (namespace, then key) so snapshots diff cleanly.
45
+ */
46
+ list(sessionId: SessionId, namespace?: string): SessionContextEntry[];
47
+ /**
48
+ * Immutable view of one session's whole context.
49
+ */
50
+ snapshot(sessionId: SessionId): SessionContextSnapshot;
51
+ /**
52
+ * Canonical UTF-8 bytes charged against one session.
53
+ */
54
+ bytes(sessionId: SessionId): number;
55
+ /**
56
+ * Drop every entry for one session. The empty state is persisted as a
57
+ * `replace`, which is atomic for an adapter that honours the port. This is
58
+ * deliberately an overwrite rather than a load-then-clear: a corrupt or
59
+ * over-quota persisted partition must still be removable by its host.
60
+ */
61
+ clear(sessionId: SessionId): void;
62
+ /**
63
+ * Copy the source context into the target session. Values are deep copies,
64
+ * so the two sessions share no mutable object. The target's previous
65
+ * context, if any, is replaced.
66
+ */
67
+ fork(from: SessionId, to: SessionId): void;
68
+ /**
69
+ * Remove every entry for one session and its persisted partition.
70
+ */
71
+ remove(sessionId: SessionId): void;
72
+ private partitionOf;
73
+ private countOf;
74
+ private storedEntryIsValid;
75
+ private persistPut;
76
+ }