attention-manifest-protocol 0.4.2 → 0.4.4

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 (809) 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/eslint.config.mts +0 -96
  352. package/index.html +0 -13
  353. package/prettier.config.mts +0 -37
  354. package/public/favicon.svg +0 -1
  355. package/public/icons.svg +0 -24
  356. package/src/attention/attention.ts +0 -347
  357. package/src/attention/budget.ts +0 -72
  358. package/src/attention/cognition.ts +0 -519
  359. package/src/attention/index.ts +0 -8
  360. package/src/attention/interrupts.ts +0 -228
  361. package/src/attention/resource.ts +0 -316
  362. package/src/attention/social.ts +0 -217
  363. package/src/attention/socialTypes.ts +0 -115
  364. package/src/authz/authz.ts +0 -305
  365. package/src/authz/index.ts +0 -1
  366. package/src/bayes/calibration.ts +0 -204
  367. package/src/bayes/calibrationRegistry.ts +0 -111
  368. package/src/bayes/calibrationSelection.ts +0 -154
  369. package/src/bayes/engine.ts +0 -532
  370. package/src/bayes/index.ts +0 -6
  371. package/src/bayes/reliability.ts +0 -62
  372. package/src/bayes/scopedPriors.ts +0 -88
  373. package/src/boundary/frame.ts +0 -322
  374. package/src/boundary/ids.ts +0 -14
  375. package/src/boundary/index.ts +0 -12
  376. package/src/boundary/refTable.ts +0 -125
  377. package/src/boundary/toolCall.ts +0 -212
  378. package/src/concept/concept.ts +0 -75
  379. package/src/concept/conceptBudget.ts +0 -346
  380. package/src/concept/conceptBudgetTypes.ts +0 -79
  381. package/src/concept/index.ts +0 -3
  382. package/src/concurrency/idempotency.ts +0 -41
  383. package/src/concurrency/index.ts +0 -5
  384. package/src/concurrency/mutex.ts +0 -26
  385. package/src/concurrency/namedLocks.ts +0 -35
  386. package/src/concurrency/retry.ts +0 -50
  387. package/src/concurrency/worker.ts +0 -128
  388. package/src/context/agentContext.ts +0 -308
  389. package/src/context/ast.ts +0 -499
  390. package/src/context/contentStore.ts +0 -75
  391. package/src/context/context.ts +0 -65
  392. package/src/context/contextIndex.ts +0 -85
  393. package/src/context/document.ts +0 -137
  394. package/src/context/fileStorePath.ts +0 -14
  395. package/src/context/index.ts +0 -43
  396. package/src/context/lifecycle.ts +0 -221
  397. package/src/context/projections.ts +0 -151
  398. package/src/context/workspace.ts +0 -422
  399. package/src/context/workspaceProtocol.ts +0 -112
  400. package/src/context/workspaceService.ts +0 -423
  401. package/src/cooperation/board.ts +0 -104
  402. package/src/cooperation/collaboration.ts +0 -60
  403. package/src/cooperation/index.ts +0 -6
  404. package/src/cooperation/merge.ts +0 -190
  405. package/src/cooperation/metrics.ts +0 -57
  406. package/src/cooperation/session.ts +0 -131
  407. package/src/cooperation/unified.ts +0 -56
  408. package/src/counter.ts +0 -9
  409. package/src/database/adapter/adapters.ts +0 -35
  410. package/src/database/adapter/index.ts +0 -4
  411. package/src/database/adapter/runtimeSink.ts +0 -74
  412. package/src/database/adapter/sessionStore.ts +0 -32
  413. package/src/database/adapter/turnStore.ts +0 -23
  414. package/src/database/entity/agent.ts +0 -199
  415. package/src/database/entity/entity.ts +0 -1046
  416. package/src/database/entity/handle.ts +0 -79
  417. package/src/database/entity/index.ts +0 -32
  418. package/src/database/entity/message.ts +0 -74
  419. package/src/database/entity/meta.ts +0 -11
  420. package/src/database/entity/object.ts +0 -42
  421. package/src/database/entity/outbox.ts +0 -15
  422. package/src/database/entity/process.ts +0 -65
  423. package/src/database/entity/registry.ts +0 -155
  424. package/src/database/entity/runtimeApproval.ts +0 -30
  425. package/src/database/entity/runtimeSession.ts +0 -13
  426. package/src/database/entity/runtimeTurn.ts +0 -15
  427. package/src/database/entity/thread.ts +0 -85
  428. package/src/database/entity/window.ts +0 -85
  429. package/src/database/entity/worker.ts +0 -90
  430. package/src/database/index.ts +0 -6
  431. package/src/database/repository/addressSpaceRepository.ts +0 -72
  432. package/src/database/repository/agentRepository.ts +0 -460
  433. package/src/database/repository/base.ts +0 -41
  434. package/src/database/repository/executionRepository.ts +0 -477
  435. package/src/database/repository/handleRepository.ts +0 -64
  436. package/src/database/repository/index.ts +0 -20
  437. package/src/database/repository/messageRepository.ts +0 -52
  438. package/src/database/repository/objectRepository.ts +0 -69
  439. package/src/database/repository/outboxRepository.ts +0 -63
  440. package/src/database/repository/processRepository.ts +0 -58
  441. package/src/database/repository/registryRepository.ts +0 -119
  442. package/src/database/repository/repository.ts +0 -491
  443. package/src/database/repository/runtimeApprovalRepository.ts +0 -44
  444. package/src/database/repository/runtimeSessionRepository.ts +0 -27
  445. package/src/database/repository/runtimeTurnRepository.ts +0 -39
  446. package/src/database/repository/socialRepository.ts +0 -185
  447. package/src/database/repository/threadRepository.ts +0 -57
  448. package/src/database/repository/windowRepository.ts +0 -88
  449. package/src/database/repository/workerRepository.ts +0 -69
  450. package/src/database/service/database.ts +0 -90
  451. package/src/database/service/handleService.ts +0 -48
  452. package/src/database/service/index.ts +0 -16
  453. package/src/database/service/messageService.ts +0 -61
  454. package/src/database/service/objectService.ts +0 -59
  455. package/src/database/service/processService.ts +0 -61
  456. package/src/database/service/registryServices.ts +0 -88
  457. package/src/database/service/service.ts +0 -183
  458. package/src/database/service/stepService.ts +0 -53
  459. package/src/database/service/threadService.ts +0 -65
  460. package/src/database/service/windowService.ts +0 -30
  461. package/src/database/service/workerService.ts +0 -57
  462. package/src/database/sql/index.ts +0 -3
  463. package/src/database/sql/schema.ts +0 -418
  464. package/src/database/sql/sql.ts +0 -543
  465. package/src/database/store/database.ts +0 -210
  466. package/src/database/store/index.ts +0 -3
  467. package/src/database/store/store.ts +0 -266
  468. package/src/delegate/index.ts +0 -2
  469. package/src/delegate/team.ts +0 -268
  470. package/src/delegate/teamTypes.ts +0 -47
  471. package/src/diagnosis/checklist.ts +0 -74
  472. package/src/diagnosis/context.ts +0 -93
  473. package/src/diagnosis/frame.ts +0 -256
  474. package/src/diagnosis/index.ts +0 -5
  475. package/src/diagnosis/router.ts +0 -72
  476. package/src/diagnosis/types.ts +0 -89
  477. package/src/error/agentError.ts +0 -16
  478. package/src/error/ampError.ts +0 -20
  479. package/src/error/authzError.ts +0 -14
  480. package/src/error/boundaryRejection.ts +0 -20
  481. package/src/error/index.ts +0 -7
  482. package/src/error/kernelError.ts +0 -27
  483. package/src/error/mailboxError.ts +0 -9
  484. package/src/error/windowError.ts +0 -12
  485. package/src/evaluation/agreement.ts +0 -96
  486. package/src/evaluation/index.ts +0 -2
  487. package/src/evaluation/labels.ts +0 -241
  488. package/src/evidence/evidenceGraph.ts +0 -205
  489. package/src/evidence/index.ts +0 -4
  490. package/src/evidence/revalidation.ts +0 -191
  491. package/src/execution/exec.ts +0 -408
  492. package/src/execution/handles.ts +0 -65
  493. package/src/execution/index.ts +0 -3
  494. package/src/execution/pin.ts +0 -154
  495. package/src/frame/frame.ts +0 -70
  496. package/src/frame/index.ts +0 -1
  497. package/src/goal/goal.ts +0 -43
  498. package/src/goal/index.ts +0 -2
  499. package/src/goal/plan.ts +0 -196
  500. package/src/governance/attentionManifest.ts +0 -802
  501. package/src/governance/audit.ts +0 -362
  502. package/src/governance/budget.ts +0 -628
  503. package/src/governance/context.ts +0 -356
  504. package/src/governance/control.ts +0 -159
  505. package/src/governance/cooperation.ts +0 -479
  506. package/src/governance/credential.ts +0 -359
  507. package/src/governance/httpServer.ts +0 -99
  508. package/src/governance/index.ts +0 -32
  509. package/src/governance/legal.ts +0 -574
  510. package/src/governance/matrix.ts +0 -460
  511. package/src/governance/perspectives.ts +0 -406
  512. package/src/governance/signing.ts +0 -407
  513. package/src/governance/store.ts +0 -125
  514. package/src/governance/switching.ts +0 -459
  515. package/src/governance/toolPolicy.ts +0 -80
  516. package/src/governance/transport.ts +0 -204
  517. package/src/governance/types.ts +0 -380
  518. package/src/governance/workflow.ts +0 -743
  519. package/src/index.ts +0 -11
  520. package/src/interaction/index.ts +0 -1
  521. package/src/interaction/interaction.ts +0 -391
  522. package/src/ipc/index.ts +0 -4
  523. package/src/ipc/mailbox.ts +0 -132
  524. package/src/ipc/memorySocialStore.ts +0 -93
  525. package/src/ipc/social.ts +0 -93
  526. package/src/kernel/index.ts +0 -14
  527. package/src/kernel/scheduler.ts +0 -498
  528. package/src/ledger/checkpoint.ts +0 -304
  529. package/src/ledger/index.ts +0 -4
  530. package/src/ledger/ledger.ts +0 -31
  531. package/src/ledger/persistence.ts +0 -159
  532. package/src/ledger/share.ts +0 -80
  533. package/src/lock/index.ts +0 -2
  534. package/src/lock/lease.ts +0 -74
  535. package/src/main.ts +0 -199
  536. package/src/manifest/agentCard.ts +0 -72
  537. package/src/manifest/cardSign.ts +0 -87
  538. package/src/manifest/federation.ts +0 -237
  539. package/src/manifest/federationTypes.ts +0 -55
  540. package/src/manifest/index.ts +0 -8
  541. package/src/manifest/keys.ts +0 -643
  542. package/src/manifest/manifest.ts +0 -114
  543. package/src/manifest/sign.ts +0 -134
  544. package/src/manifest/trust.ts +0 -146
  545. package/src/mission/index.ts +0 -2
  546. package/src/mission/missionQueue.ts +0 -75
  547. package/src/module/index.ts +0 -9
  548. package/src/module/llm/deepseek.ts +0 -214
  549. package/src/module/llm/llm.ts +0 -84
  550. package/src/module/mcp/client.ts +0 -110
  551. package/src/module/mcp/http.ts +0 -102
  552. package/src/module/mcp/protocol.ts +0 -77
  553. package/src/module/mcp/server.ts +0 -148
  554. package/src/module/mcp/transport.ts +0 -30
  555. package/src/module/mcp/workspaceServer.ts +0 -111
  556. package/src/module/sandbox/sandbox.ts +0 -29
  557. package/src/module/tool/mcpExecutor.ts +0 -54
  558. package/src/module/tool/policy.ts +0 -52
  559. package/src/module/tool/redact.ts +0 -29
  560. package/src/module/tool/tool.ts +0 -53
  561. package/src/module/tool/workspaceExecutor.ts +0 -35
  562. package/src/policy/guard.ts +0 -240
  563. package/src/policy/index.ts +0 -2
  564. package/src/policy/policy.ts +0 -561
  565. package/src/process/agent.ts +0 -341
  566. package/src/process/agentService.ts +0 -236
  567. package/src/process/agentStore.ts +0 -378
  568. package/src/process/executionStore.ts +0 -151
  569. package/src/process/index.ts +0 -5
  570. package/src/process/process.ts +0 -240
  571. package/src/process/transitions.ts +0 -19
  572. package/src/progress/index.ts +0 -2
  573. package/src/progress/progress.ts +0 -85
  574. package/src/protocol/a2a.ts +0 -120
  575. package/src/protocol/channel.ts +0 -44
  576. package/src/protocol/envelope.ts +0 -655
  577. package/src/protocol/httpChannel.ts +0 -87
  578. package/src/protocol/index.ts +0 -6
  579. package/src/protocol/protocol.ts +0 -138
  580. package/src/protocol/wire.ts +0 -60
  581. package/src/receipt/index.ts +0 -1
  582. package/src/receipt/receipt.ts +0 -47
  583. package/src/registry/content.ts +0 -69
  584. package/src/registry/index.ts +0 -23
  585. package/src/registry/registry.ts +0 -599
  586. package/src/runtime/action.ts +0 -87
  587. package/src/runtime/behavior.ts +0 -330
  588. package/src/runtime/behaviorTuning.ts +0 -163
  589. package/src/runtime/cognitiveRuntime.ts +0 -703
  590. package/src/runtime/escalation.ts +0 -35
  591. package/src/runtime/governedTask.ts +0 -233
  592. package/src/runtime/index.ts +0 -15
  593. package/src/runtime/kernelRuntime.ts +0 -144
  594. package/src/runtime/operation.ts +0 -35
  595. package/src/runtime/replay.ts +0 -71
  596. package/src/runtime/routing.ts +0 -58
  597. package/src/runtime/safety.ts +0 -48
  598. package/src/runtime/session.ts +0 -341
  599. package/src/runtime/sessionStore.ts +0 -43
  600. package/src/runtime/telemetry.ts +0 -55
  601. package/src/runtime/turnStore.ts +0 -30
  602. package/src/scenario/index.ts +0 -1
  603. package/src/scenario/scenario.ts +0 -299
  604. package/src/semantic/canonical.ts +0 -24
  605. package/src/semantic/index.ts +0 -2
  606. package/src/semantic/sha256.ts +0 -82
  607. package/src/storage/appendLog.ts +0 -372
  608. package/src/storage/fileAppendSink.ts +0 -40
  609. package/src/storage/index.ts +0 -2
  610. package/src/store/bindCache.ts +0 -22
  611. package/src/store/cache.ts +0 -191
  612. package/src/store/context.ts +0 -31
  613. package/src/store/handleStore.ts +0 -31
  614. package/src/store/index.ts +0 -9
  615. package/src/store/messageStore.ts +0 -31
  616. package/src/store/objectStore.ts +0 -31
  617. package/src/store/processStore.ts +0 -31
  618. package/src/store/threadStore.ts +0 -31
  619. package/src/store/windowStore.ts +0 -31
  620. package/src/structure/abstractSyntaxTree.ts +0 -493
  621. package/src/structure/avlTree.ts +0 -408
  622. package/src/structure/binarySearchTree.ts +0 -352
  623. package/src/structure/binaryTree.ts +0 -525
  624. package/src/structure/bloomFilter.ts +0 -231
  625. package/src/structure/compare.ts +0 -110
  626. package/src/structure/cuckooFilter.ts +0 -337
  627. package/src/structure/deque.ts +0 -223
  628. package/src/structure/filterKey.ts +0 -36
  629. package/src/structure/hash.ts +0 -279
  630. package/src/structure/heap.ts +0 -268
  631. package/src/structure/index.ts +0 -20
  632. package/src/structure/iterator.ts +0 -22
  633. package/src/structure/lru.ts +0 -619
  634. package/src/structure/ordered.ts +0 -399
  635. package/src/structure/priority.ts +0 -915
  636. package/src/structure/queue.ts +0 -168
  637. package/src/structure/redBlackTree.ts +0 -680
  638. package/src/structure/segmentTree.ts +0 -248
  639. package/src/structure/stack.ts +0 -118
  640. package/src/structure/unordered.ts +0 -407
  641. package/src/style.css +0 -278
  642. package/src/thread/index.ts +0 -2
  643. package/src/thread/thread.ts +0 -176
  644. package/src/thread/transitions.ts +0 -17
  645. package/src/types/common.ts +0 -119
  646. package/src/types/index.ts +0 -23
  647. package/src/warrant/epistemic.ts +0 -154
  648. package/src/warrant/index.ts +0 -3
  649. package/src/warrant/inquiry.ts +0 -166
  650. package/src/warrant/warrant.ts +0 -179
  651. package/src/window/compaction.ts +0 -403
  652. package/src/window/compactionTypes.ts +0 -119
  653. package/src/window/index.ts +0 -7
  654. package/src/window/page.ts +0 -18
  655. package/src/window/window.ts +0 -244
  656. package/tools/_helpers.ts +0 -34
  657. package/tools/a2a-check.ts +0 -110
  658. package/tools/a2a-flow-check.ts +0 -78
  659. package/tools/agent-card-check.ts +0 -76
  660. package/tools/agent-check.ts +0 -236
  661. package/tools/agent-store-check.ts +0 -153
  662. package/tools/agreement-check.ts +0 -27
  663. package/tools/annotation-server-check.ts +0 -48
  664. package/tools/annotation-server.ts +0 -230
  665. package/tools/annotation-status.ts +0 -65
  666. package/tools/approval-access-check.ts +0 -66
  667. package/tools/arch-check.ts +0 -72
  668. package/tools/attention-core-check.ts +0 -48
  669. package/tools/attention-resource-check.ts +0 -169
  670. package/tools/audit-check.ts +0 -207
  671. package/tools/authority-check.ts +0 -124
  672. package/tools/authz-check.ts +0 -138
  673. package/tools/bayes-check.ts +0 -162
  674. package/tools/bayes-probe.ts +0 -154
  675. package/tools/behavior-tuning-check.ts +0 -53
  676. package/tools/board-check.ts +0 -87
  677. package/tools/boundary-check.ts +0 -199
  678. package/tools/bundle-trust-check.ts +0 -96
  679. package/tools/calibrate-imported.ts +0 -108
  680. package/tools/calibration-check.ts +0 -44
  681. package/tools/calibration-registry-check.ts +0 -40
  682. package/tools/calibration-sim.ts +0 -40
  683. package/tools/card-sign-check.ts +0 -71
  684. package/tools/card-trust-check.ts +0 -78
  685. package/tools/channel-check.ts +0 -86
  686. package/tools/checkpoint-check.ts +0 -620
  687. package/tools/cleanup-style-configs.ts +0 -29
  688. package/tools/cognition-check.ts +0 -648
  689. package/tools/cognitive-runtime-check.ts +0 -609
  690. package/tools/collaboration-demo.ts +0 -78
  691. package/tools/compaction-check.ts +0 -266
  692. package/tools/concept-check.ts +0 -260
  693. package/tools/concurrency-check.ts +0 -242
  694. package/tools/conformance-runtime.ts +0 -389
  695. package/tools/conformance.ts +0 -651
  696. package/tools/context-ast-check.ts +0 -90
  697. package/tools/context-ast-deepseek.ts +0 -242
  698. package/tools/context-graph-bench.ts +0 -50
  699. package/tools/context-graph-check.ts +0 -229
  700. package/tools/context-index-check.ts +0 -48
  701. package/tools/context-lifecycle-check.ts +0 -69
  702. package/tools/context-projection-check.ts +0 -73
  703. package/tools/context-scope-check.ts +0 -134
  704. package/tools/context-storage-check.ts +0 -113
  705. package/tools/cooperation-check.ts +0 -517
  706. package/tools/cooperation-http-check.ts +0 -125
  707. package/tools/deepseek-llm-check.ts +0 -147
  708. package/tools/deepseek-probe.ts +0 -494
  709. package/tools/diagnosis-check.ts +0 -109
  710. package/tools/diagnosis-router-check.ts +0 -50
  711. package/tools/document-context-check.ts +0 -237
  712. package/tools/envelope-check.ts +0 -659
  713. package/tools/eslint-rules/index.ts +0 -26
  714. package/tools/eslint-rules/rules/jsdoc-comment-format.ts +0 -105
  715. package/tools/eslint-rules/rules/no-function-keyword.ts +0 -60
  716. package/tools/eslint-rules/rules/no-multiline-parameters.ts +0 -71
  717. package/tools/eslint-rules/rules/no-multiline-type-parameters.ts +0 -57
  718. package/tools/eslint-rules/rules/no-undefined-comparison.ts +0 -115
  719. package/tools/eslint-rules/rules/prefer-template-for-string-conversion.ts +0 -97
  720. package/tools/eslint-rules/rules/require-typeof-parentheses.ts +0 -49
  721. package/tools/eslint-rules/rules/require-variable-type.ts +0 -36
  722. package/tools/eslint-rules/rules/variable-naming.ts +0 -175
  723. package/tools/eval-recorded-replay.ts +0 -215
  724. package/tools/eval-replay.ts +0 -139
  725. package/tools/eval-summary.ts +0 -136
  726. package/tools/evidence-revalidation-check.ts +0 -235
  727. package/tools/exec-check.ts +0 -217
  728. package/tools/federation-check.ts +0 -166
  729. package/tools/federation-demo.ts +0 -45
  730. package/tools/filter-check.ts +0 -243
  731. package/tools/governance-check.ts +0 -680
  732. package/tools/governance-store-check.ts +0 -131
  733. package/tools/governed-task-check.ts +0 -227
  734. package/tools/guard-check.ts +0 -122
  735. package/tools/http-channel-check.ts +0 -125
  736. package/tools/import-campaign.ts +0 -28
  737. package/tools/inquiry-check.ts +0 -126
  738. package/tools/interaction-check.ts +0 -171
  739. package/tools/interrupts-check.ts +0 -173
  740. package/tools/ipc-check.ts +0 -170
  741. package/tools/kernel-async-check.ts +0 -136
  742. package/tools/kernel-check.ts +0 -369
  743. package/tools/kernel-runtime-check.ts +0 -276
  744. package/tools/keys-check.ts +0 -559
  745. package/tools/label-audit.ts +0 -70
  746. package/tools/labels-workflow-check.ts +0 -49
  747. package/tools/linear-structure-check.ts +0 -524
  748. package/tools/live-exec.ts +0 -62
  749. package/tools/live-governance-eval.ts +0 -813
  750. package/tools/live-legacy.ts +0 -50
  751. package/tools/lru-check.ts +0 -182
  752. package/tools/make-annotation-campaign.ts +0 -57
  753. package/tools/mcp-executor-check.ts +0 -33
  754. package/tools/merge-annotations.ts +0 -32
  755. package/tools/merge-check.ts +0 -98
  756. package/tools/metrics-check.ts +0 -84
  757. package/tools/net-probe.ts +0 -107
  758. package/tools/oauth-probe.ts +0 -117
  759. package/tools/outbox-check.ts +0 -50
  760. package/tools/persistence-check.ts +0 -144
  761. package/tools/pin-check.ts +0 -116
  762. package/tools/platform-check.ts +0 -281
  763. package/tools/policy-check.ts +0 -514
  764. package/tools/prettier-plugin/index.mts +0 -84
  765. package/tools/priority-check.ts +0 -627
  766. package/tools/probe-context7.ts +0 -63
  767. package/tools/registry-check.ts +0 -252
  768. package/tools/reliability-check.ts +0 -25
  769. package/tools/retry-check.ts +0 -85
  770. package/tools/rewrite-declaration-extensions.ts +0 -98
  771. package/tools/runtime-check.ts +0 -165
  772. package/tools/runtime-deepseek-check.ts +0 -85
  773. package/tools/runtime-eval.ts +0 -358
  774. package/tools/scenario-check.ts +0 -161
  775. package/tools/scenario-incident.ts +0 -162
  776. package/tools/scoped-priors-check.ts +0 -35
  777. package/tools/scoped-priors-pooling.ts +0 -34
  778. package/tools/segment-ast-check.ts +0 -649
  779. package/tools/session-check.ts +0 -196
  780. package/tools/session-store-check.ts +0 -73
  781. package/tools/share-check.ts +0 -88
  782. package/tools/sign-check.ts +0 -95
  783. package/tools/signing-check.ts +0 -275
  784. package/tools/snapshot-demo.ts +0 -65
  785. package/tools/social-check.ts +0 -146
  786. package/tools/structure-compare-check.ts +0 -95
  787. package/tools/support/documentScanner.ts +0 -577
  788. package/tools/support/texScanner.ts +0 -631
  789. package/tools/support/workspaceScanner.ts +0 -476
  790. package/tools/team-check.ts +0 -163
  791. package/tools/team-demo.ts +0 -36
  792. package/tools/telemetry-check.ts +0 -44
  793. package/tools/tex-context-check.ts +0 -263
  794. package/tools/tool-gate-check.ts +0 -98
  795. package/tools/tree-structure-check.ts +0 -786
  796. package/tools/trust-flow-check.ts +0 -158
  797. package/tools/turn-store-check.ts +0 -57
  798. package/tools/unified-check.ts +0 -83
  799. package/tools/validate.ts +0 -309
  800. package/tools/wire-check.ts +0 -96
  801. package/tools/workspace-agent-check.ts +0 -486
  802. package/tools/workspace-agent-demo.ts +0 -62
  803. package/tools/workspace-agent-server.ts +0 -101
  804. package/tools/workspace-context-check.ts +0 -331
  805. package/tools/workspace-context.ts +0 -131
  806. package/tsconfig.build.json +0 -14
  807. package/tsconfig.json +0 -24
  808. package/tsconfig.tools.json +0 -31
  809. package/viz/context-ast.json +0 -1577
@@ -0,0 +1,35 @@
1
+ /**
2
+ * One central-directory entry.
3
+ *
4
+ * `offset` is the local file header offset in the archive, not the payload
5
+ * offset; `compressedSize` and `uncompressedSize` are the central-directory
6
+ * values, which are authoritative even when a data descriptor follows the
7
+ * payload.
8
+ */
9
+ export interface ZipEntry {
10
+ readonly name: string;
11
+ readonly compressedSize: number;
12
+ readonly uncompressedSize: number;
13
+ readonly method: number;
14
+ readonly offset: number;
15
+ }
16
+ /**
17
+ * Read every ZIP entry into an in-memory map.
18
+ *
19
+ * The archive is never extracted to disk. Names are validated before the map is
20
+ * built, so a caller cannot receive a key that would be unsafe to join against
21
+ * a path. Duplicate names are rejected because the map would otherwise silently
22
+ * let the last entry win, which is a classic archive-confusion bug.
23
+ *
24
+ * @param bytes - Archive bytes.
25
+ * @returns Entry name to expanded bytes.
26
+ */
27
+ export declare const readZipEntries: (bytes: Uint8Array) => Map<string, Uint8Array>;
28
+ /**
29
+ * Decode a UTF-8 text part and remove a leading byte-order mark.
30
+ *
31
+ * @param entries - Entry map from `readZipEntries`.
32
+ * @param name - Part name, for example `word/document.xml`.
33
+ * @returns Decoded text, or `undefined` when the part is absent.
34
+ */
35
+ export declare const zipText: (entries: ReadonlyMap<string, Uint8Array>, name: string) => string | undefined;
@@ -0,0 +1,349 @@
1
+ /**
2
+ * Bounded, read-only ZIP container reader.
3
+ *
4
+ * Office Open XML documents are ZIP archives. Parsing them does not require a
5
+ * general-purpose unzip implementation, but it does require the same resource
6
+ * discipline as the rest of the filesystem domain: every offset is checked
7
+ * against the buffer, every chain is bounded, unsupported features are rejected
8
+ * instead of guessed, and expansion is capped per entry and in aggregate.
9
+ *
10
+ * The reader deliberately implements only what OOXML packages use:
11
+ *
12
+ * - the end-of-central-directory record (EOCD), including the archive comment;
13
+ * - the central directory and its local file headers;
14
+ * - method `0` (stored) and method `8` (deflate, through `node:zlib`);
15
+ * - entry names as UTF-8 (or Latin-1 when the UTF-8 flag is absent).
16
+ *
17
+ * Encrypted entries, ZIP64 archives, multi-disk archives and out-of-bounds
18
+ * offsets are rejected with the closed `parse_failed` / `quota_exceeded` error
19
+ * codes. Central-directory CRCs are not verified because Office readers rely on
20
+ * the XML parser and the per-entry size checks instead; a caller that needs CRC
21
+ * verification should do it on the extracted bytes.
22
+ *
23
+ * Expansion limits are 64 MiB for one entry and 256 MiB in total. Both are
24
+ * enforced against the declared size *and* the actual inflate output so a lying
25
+ * header cannot exhaust memory.
26
+ */
27
+ import { inflateRawSync } from "node:zlib";
28
+ import { fail } from "./errors.js";
29
+ const EocdSignature = 0x06054b50;
30
+ const CentralSignature = 0x02014b50;
31
+ const LocalSignature = 0x04034b50;
32
+ const EocdLength = 22;
33
+ const CentralLength = 46;
34
+ const LocalLength = 30;
35
+ const MaxCommentLength = 0xffff;
36
+ const MaxEntries = 16384;
37
+ const MaxCentralBytes = 64 * 1024 * 1024;
38
+ const MaxEntryBytes = 64 * 1024 * 1024;
39
+ const MaxTotalBytes = 256 * 1024 * 1024;
40
+ const Zip64ExtraId = 0x0001;
41
+ const Utf8Flag = 0x0800;
42
+ const EncryptedFlag = 0x0001;
43
+ const StrongEncryptionFlag = 0x0040;
44
+ const MaskedHeaderFlag = 0x2000;
45
+ const Zip64Sentinel16 = 0xffff;
46
+ const Zip64Sentinel32 = 0xffffffff;
47
+ /**
48
+ * Create a little-endian view over the exact bytes the caller supplied.
49
+ * A Node `Buffer` is a `Uint8Array` with its own `byteOffset`, so the view must
50
+ * not assume that the backing array starts at zero.
51
+ *
52
+ * @param bytes - Archive bytes.
53
+ * @returns A view sharing the caller's memory.
54
+ */
55
+ const viewOf = (bytes) => new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
56
+ const uint16 = (view, offset) => view.getUint16(offset, true);
57
+ const uint32 = (view, offset) => view.getUint32(offset, true);
58
+ /**
59
+ * Decode an entry name. The UTF-8 flag is optional for ASCII-only archives,
60
+ * where Latin-1 and UTF-8 agree; a genuinely non-ASCII name without the flag is
61
+ * decoded as Latin-1 rather than rejected, matching common ZIP writers.
62
+ *
63
+ * @param bytes - Archive bytes.
64
+ * @param offset - Name start.
65
+ * @param length - Name byte length.
66
+ * @param utf8 - Whether the UTF-8 name flag was set.
67
+ * @returns Decoded name.
68
+ */
69
+ const decodeName = (bytes, offset, length, utf8) => {
70
+ const slice = bytes.subarray(offset, offset + length);
71
+ if (utf8) {
72
+ try {
73
+ return new TextDecoder("utf-8", { fatal: true }).decode(slice);
74
+ }
75
+ catch {
76
+ return fail("parse_failed");
77
+ }
78
+ }
79
+ let name = "";
80
+ for (let index = 0; index < slice.length; index += 1) {
81
+ name += String.fromCharCode(slice[index]);
82
+ }
83
+ return name;
84
+ };
85
+ /**
86
+ * Reject an entry name that could escape the conceptual archive root.
87
+ *
88
+ * The returned map is keyed by the entry name, not extracted to disk, so this
89
+ * is defence in depth rather than the only barrier: an OOXML parser that joins
90
+ * a relationship target with a part name must never see `..` in a part name.
91
+ * Absolute names, backslashes, drive letters and NUL/control characters are
92
+ * rejected for the same reason.
93
+ *
94
+ * @param name - Decoded entry name.
95
+ * @returns The same name when safe.
96
+ */
97
+ const assertSafeName = (name) => {
98
+ if (name.length === 0 || name.length > 4096) {
99
+ return fail("parse_failed");
100
+ }
101
+ if (name.startsWith("/") || name.startsWith("\\") || name.startsWith("//") || /^[A-Za-z]:/.test(name)) {
102
+ return fail("parse_failed");
103
+ }
104
+ if (name.includes("\\")) {
105
+ return fail("parse_failed");
106
+ }
107
+ for (let index = 0; index < name.length; index += 1) {
108
+ const code = name.charCodeAt(index);
109
+ if (code < 0x20 || code === 0x7f) {
110
+ return fail("parse_failed");
111
+ }
112
+ }
113
+ const segments = name.split("/");
114
+ for (let index = 0; index < segments.length; index += 1) {
115
+ if (segments[index] === "..") {
116
+ return fail("parse_failed");
117
+ }
118
+ }
119
+ return name;
120
+ };
121
+ /**
122
+ * Scan a ZIP extra field for the ZIP64 marker. The sizes in the central
123
+ * directory are then usually `0xffffffff`, but the extra field alone is enough
124
+ * to reject the archive: silently reading a ZIP64 entry as 4 GiB is worse than
125
+ * a clear failure.
126
+ *
127
+ * @param bytes - Archive bytes.
128
+ * @param offset - Extra field start.
129
+ * @param length - Extra field byte length.
130
+ * @returns Nothing; throws when a ZIP64 field is present.
131
+ */
132
+ const rejectZip64Extra = (bytes, offset, length) => {
133
+ const end = offset + length;
134
+ let cursor = offset;
135
+ while (cursor + 4 <= end) {
136
+ const id = bytes[cursor] | (bytes[cursor + 1] << 8);
137
+ const size = bytes[cursor + 2] | (bytes[cursor + 3] << 8);
138
+ if (id === Zip64ExtraId) {
139
+ return fail("parse_failed");
140
+ }
141
+ cursor += 4 + size;
142
+ }
143
+ };
144
+ /**
145
+ * Parse the EOCD and return its byte offset. The comment length is validated so
146
+ * a `PK\x05\x06` byte sequence inside a comment is not mistaken for the record.
147
+ *
148
+ * @param view - Archive view.
149
+ * @param length - Archive byte length.
150
+ * @returns EOCD offset.
151
+ */
152
+ const findEocd = (view, length) => {
153
+ if (length < EocdLength) {
154
+ return fail("parse_failed");
155
+ }
156
+ const first = Math.max(0, length - EocdLength - MaxCommentLength);
157
+ for (let offset = length - EocdLength; offset >= first; offset -= 1) {
158
+ if (uint32(view, offset) !== EocdSignature) {
159
+ continue;
160
+ }
161
+ const commentLength = uint16(view, offset + 20);
162
+ if (offset + EocdLength + commentLength === length) {
163
+ return offset;
164
+ }
165
+ }
166
+ return fail("parse_failed");
167
+ };
168
+ /**
169
+ * Read and expand one entry from its local file header.
170
+ *
171
+ * The local header is re-read rather than trusted from the central directory so
172
+ * a payload offset is always derived from bytes this reader has validated. The
173
+ * local name must match the central name; a mismatch means the archive is
174
+ * malformed or deliberately ambiguous.
175
+ *
176
+ * @param view - Archive view.
177
+ * @param bytes - Archive bytes.
178
+ * @param entry - Parsed central-directory entry.
179
+ * @param offset - Local header offset.
180
+ * @param utf8 - Whether the central name used UTF-8.
181
+ * @param remaining - Bytes still allowed by the aggregate expansion limit.
182
+ * @returns Expanded entry bytes.
183
+ */
184
+ const readPayload = (view, bytes, entry, offset, utf8, remaining) => {
185
+ if (offset < 0 || offset + LocalLength > bytes.byteLength) {
186
+ return fail("parse_failed");
187
+ }
188
+ if (uint32(view, offset) !== LocalSignature) {
189
+ return fail("parse_failed");
190
+ }
191
+ const localFlags = uint16(view, offset + 6);
192
+ if ((localFlags & EncryptedFlag) !== 0 || (localFlags & StrongEncryptionFlag) !== 0 || (localFlags & MaskedHeaderFlag) !== 0) {
193
+ return fail("parse_failed");
194
+ }
195
+ const localMethod = uint16(view, offset + 8);
196
+ if (localMethod !== entry.method) {
197
+ return fail("parse_failed");
198
+ }
199
+ const localNameLength = uint16(view, offset + 26);
200
+ const localExtraLength = uint16(view, offset + 28);
201
+ const nameStart = offset + LocalLength;
202
+ const nameEnd = nameStart + localNameLength;
203
+ if (nameEnd > bytes.byteLength) {
204
+ return fail("parse_failed");
205
+ }
206
+ const localName = decodeName(bytes, nameStart, localNameLength, utf8);
207
+ if (localName !== entry.name) {
208
+ return fail("parse_failed");
209
+ }
210
+ rejectZip64Extra(bytes, nameEnd, localExtraLength);
211
+ const payloadStart = nameEnd + localExtraLength;
212
+ const payloadEnd = payloadStart + entry.compressedSize;
213
+ if (payloadStart < 0 || payloadEnd > bytes.byteLength) {
214
+ return fail("parse_failed");
215
+ }
216
+ if (entry.method === 0) {
217
+ if (entry.compressedSize !== entry.uncompressedSize) {
218
+ return fail("parse_failed");
219
+ }
220
+ return bytes.slice(payloadStart, payloadEnd);
221
+ }
222
+ const allowance = Math.min(MaxEntryBytes, remaining);
223
+ if (allowance <= 0 || entry.uncompressedSize > allowance) {
224
+ return fail("quota_exceeded");
225
+ }
226
+ let output;
227
+ try {
228
+ output = inflateRawSync(bytes.subarray(payloadStart, payloadEnd), { maxOutputLength: allowance });
229
+ }
230
+ catch {
231
+ return fail("parse_failed");
232
+ }
233
+ if (output.byteLength !== entry.uncompressedSize) {
234
+ return fail("parse_failed");
235
+ }
236
+ return output;
237
+ };
238
+ /**
239
+ * Read every ZIP entry into an in-memory map.
240
+ *
241
+ * The archive is never extracted to disk. Names are validated before the map is
242
+ * built, so a caller cannot receive a key that would be unsafe to join against
243
+ * a path. Duplicate names are rejected because the map would otherwise silently
244
+ * let the last entry win, which is a classic archive-confusion bug.
245
+ *
246
+ * @param bytes - Archive bytes.
247
+ * @returns Entry name to expanded bytes.
248
+ */
249
+ export const readZipEntries = (bytes) => {
250
+ const view = viewOf(bytes);
251
+ const eocd = findEocd(view, bytes.byteLength);
252
+ const diskNumber = uint16(view, eocd + 4);
253
+ const centralDisk = uint16(view, eocd + 6);
254
+ const entriesOnDisk = uint16(view, eocd + 8);
255
+ const entryCount = uint16(view, eocd + 10);
256
+ const centralSize = uint32(view, eocd + 12);
257
+ const centralOffset = uint32(view, eocd + 16);
258
+ if (diskNumber !== 0 || centralDisk !== 0 || entriesOnDisk !== entryCount) {
259
+ return fail("parse_failed");
260
+ }
261
+ if (entryCount === Zip64Sentinel16 || centralSize === Zip64Sentinel32 || centralOffset === Zip64Sentinel32) {
262
+ return fail("parse_failed");
263
+ }
264
+ if (entryCount > MaxEntries) {
265
+ return fail("quota_exceeded");
266
+ }
267
+ if (centralSize > MaxCentralBytes) {
268
+ return fail("quota_exceeded");
269
+ }
270
+ if (centralOffset < 0 || centralOffset + centralSize > eocd) {
271
+ return fail("parse_failed");
272
+ }
273
+ const centralEnd = centralOffset + centralSize;
274
+ const entries = new Map();
275
+ let cursor = centralOffset;
276
+ let expanded = 0;
277
+ for (let index = 0; index < entryCount; index += 1) {
278
+ if (cursor < 0 || cursor + CentralLength > centralEnd) {
279
+ return fail("parse_failed");
280
+ }
281
+ if (uint32(view, cursor) !== CentralSignature) {
282
+ return fail("parse_failed");
283
+ }
284
+ const flags = uint16(view, cursor + 8);
285
+ const method = uint16(view, cursor + 10);
286
+ const compressedSize = uint32(view, cursor + 20);
287
+ const uncompressedSize = uint32(view, cursor + 24);
288
+ const nameLength = uint16(view, cursor + 28);
289
+ const extraLength = uint16(view, cursor + 30);
290
+ const commentLength = uint16(view, cursor + 32);
291
+ const diskStart = uint16(view, cursor + 34);
292
+ const localOffset = uint32(view, cursor + 42);
293
+ if ((flags & EncryptedFlag) !== 0 || (flags & StrongEncryptionFlag) !== 0 || (flags & MaskedHeaderFlag) !== 0) {
294
+ return fail("parse_failed");
295
+ }
296
+ if (method !== 0 && method !== 8) {
297
+ return fail("parse_failed");
298
+ }
299
+ if (compressedSize === Zip64Sentinel32 || uncompressedSize === Zip64Sentinel32 || localOffset === Zip64Sentinel32 || diskStart === Zip64Sentinel16) {
300
+ return fail("parse_failed");
301
+ }
302
+ if (diskStart !== 0) {
303
+ return fail("parse_failed");
304
+ }
305
+ if (uncompressedSize > MaxEntryBytes || expanded + uncompressedSize > MaxTotalBytes) {
306
+ return fail("quota_exceeded");
307
+ }
308
+ const nameStart = cursor + CentralLength;
309
+ const nameEnd = nameStart + nameLength;
310
+ const extraStart = nameEnd;
311
+ const extraEnd = extraStart + extraLength;
312
+ const next = extraEnd + commentLength;
313
+ if (nameLength === 0 || nameEnd > centralEnd || extraEnd > centralEnd || next > centralEnd) {
314
+ return fail("parse_failed");
315
+ }
316
+ rejectZip64Extra(bytes, extraStart, extraLength);
317
+ const name = assertSafeName(decodeName(bytes, nameStart, nameLength, (flags & Utf8Flag) !== 0));
318
+ if (entries.has(name)) {
319
+ return fail("parse_failed");
320
+ }
321
+ const entry = { name, compressedSize, uncompressedSize, method, offset: localOffset };
322
+ const payload = readPayload(view, bytes, entry, localOffset, (flags & Utf8Flag) !== 0, MaxTotalBytes - expanded);
323
+ expanded += payload.byteLength;
324
+ if (expanded > MaxTotalBytes || payload.byteLength !== uncompressedSize) {
325
+ return fail("quota_exceeded");
326
+ }
327
+ entries.set(name, payload);
328
+ cursor = next;
329
+ }
330
+ return entries;
331
+ };
332
+ /**
333
+ * Decode a UTF-8 text part and remove a leading byte-order mark.
334
+ *
335
+ * @param entries - Entry map from `readZipEntries`.
336
+ * @param name - Part name, for example `word/document.xml`.
337
+ * @returns Decoded text, or `undefined` when the part is absent.
338
+ */
339
+ export const zipText = (entries, name) => {
340
+ const bytes = entries.get(name);
341
+ if (bytes === (void 0)) {
342
+ return undefined;
343
+ }
344
+ let start = 0;
345
+ if (bytes.length >= 3 && bytes[0] === 0xef && bytes[1] === 0xbb && bytes[2] === 0xbf) {
346
+ start = 3;
347
+ }
348
+ return new TextDecoder("utf-8").decode(bytes.subarray(start));
349
+ };
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Frozen algorithm identifiers. Adding one is a wire-format change: it must ship
3
+ * with known-answer vectors and a cross-check against `node:crypto`.
4
+ */
5
+ export type AlgorithmId = "sha256" | "sha512" | "sha3-256" | "blake2b-512";
6
+ /**
7
+ * Registry row. `digestBytes` is needed even for algorithms without a backend
8
+ * because `parseShort`/`parseRef` must reject a hex string of the wrong length
9
+ * for the algorithm it claims to be.
10
+ */
11
+ export interface AlgorithmSpec {
12
+ readonly id: AlgorithmId;
13
+ readonly digestBytes: number;
14
+ readonly backend: "portable" | "unavailable";
15
+ }
16
+ /**
17
+ * Declaration order is the canonical listing order; nothing in the module
18
+ * depends on iteration order, but diagnostics and future catalogues do.
19
+ */
20
+ export declare const AlgorithmIds: readonly AlgorithmId[];
21
+ /**
22
+ * True for a value that is one of the four registered identifiers. Used by the
23
+ * parsers, which must reject an unknown algorithm instead of guessing.
24
+ */
25
+ export declare const isAlgorithmId: (value: string) => value is AlgorithmId;
26
+ /**
27
+ * Look up a registered algorithm. A value that is syntactically fine but not
28
+ * registered is an `UnsupportedAlgorithm`, because at this point a hasher is
29
+ * required and there is nothing safe to substitute.
30
+ */
31
+ export declare const algorithmSpec: (algorithm: AlgorithmId) => AlgorithmSpec;
32
+ /**
33
+ * Expected lowercase-hex length of a digest for this algorithm. Both parsers
34
+ * use it so "wrong length" and "wrong algorithm" cannot be confused.
35
+ */
36
+ export declare const digestHexLength: (algorithm: AlgorithmId) => number;
37
+ /**
38
+ * Lowercase hex encoding. Lowercase is required by the OCI digest grammar and
39
+ * by every existing `sha256:` reference in this repository; emitting uppercase
40
+ * would create a second spelling of the same digest.
41
+ */
42
+ export declare const bytesToHex: (bytes: Uint8Array) => string;
43
+ /**
44
+ * Decode a hex digest back to bytes. Used by the tree leaf serialisation, which
45
+ * has to embed a child digest as 32 raw bytes.
46
+ */
47
+ export declare const hexToBytes: (hex: string) => Uint8Array;
48
+ /**
49
+ * Strict lowercase-hex check. Uppercase is rejected rather than folded, because
50
+ * `sha256:AB...` and `sha256:ab...` are different strings and a parser that
51
+ * accepts both silently creates two names for one digest.
52
+ */
53
+ export declare const isLowerHex: (text: string, length: number) => boolean;
54
+ /**
55
+ * A streaming digest sink.
56
+ *
57
+ * `update` accepts arbitrary chunk boundaries and buffers a partial block
58
+ * internally, so a file can be read in 1 MiB slices without the caller tracking
59
+ * alignment. `digest` finalises the hash and is single-shot: a second call would
60
+ * need a second padding pass over state that is already mutated, so it throws
61
+ * instead of returning a silently wrong value.
62
+ */
63
+ export interface ByteHasher {
64
+ update(bytes: Uint8Array): ByteHasher;
65
+ digest(): Uint8Array;
66
+ }
67
+ /**
68
+ * Portable incremental SHA-256 over raw bytes.
69
+ *
70
+ * The implementation tracks the total byte count separately from the buffered
71
+ * block because the FIPS padding needs the input length in bits; computing the
72
+ * final eight bytes from `totalBytes` (high = bits >> 32, low = low 32 bits)
73
+ * avoids the overflow a 32-bit byte counter would hit at 512 MiB.
74
+ */
75
+ export declare const createSha256: () => ByteHasher;
76
+ /**
77
+ * One-shot SHA-256 over raw bytes. Thin wrapper so call sites do not repeat the
78
+ * create/update/digest sequence and cannot forget the update.
79
+ */
80
+ export declare const sha256Bytes: (bytes: Uint8Array) => Uint8Array;
81
+ /**
82
+ * Fail closed unless this build can actually compute the named algorithm.
83
+ *
84
+ * The registry must answer before any payload is touched: a caller that gets a
85
+ * hasher is entitled to assume the algorithm in the reference is the algorithm
86
+ * that ran. The same guard is called by the file layer before it opens a file,
87
+ * so an unsupported algorithm fails without a pointless read instead of after
88
+ * the work has already been done.
89
+ */
90
+ export declare const assertBackend: (algorithm: AlgorithmId) => AlgorithmSpec;
91
+ /**
92
+ * Construct a hasher for any registered algorithm, or fail closed.
93
+ *
94
+ * Kept as a thin wrapper over `assertBackend` so the availability rule lives in
95
+ * exactly one place.
96
+ */
97
+ export declare const createHasher: (algorithm: AlgorithmId) => ByteHasher;