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,327 @@
1
+ /**
2
+ * Line diff for the workspace hook layer.
3
+ *
4
+ * The implementation is a linear-space LCS (Hirschberg) rather than a full
5
+ * dynamic-programming matrix: two 5000-line inputs would otherwise allocate a
6
+ * 25M-cell table and a diff of two generated files could exhaust the worker.
7
+ * Hirschberg keeps only two `Int32Array` rows at a time and still reconstructs
8
+ * the actual match list, so hunks stay stable and ordered rather than merely
9
+ * reporting counts.
10
+ *
11
+ * The result is bounded by {@link DiffMaxLines}. A larger input is diffed on
12
+ * its first 5000 lines and reports `truncated: true`; the fingerprints always
13
+ * cover the whole input, so a truncated display is never mistaken for an
14
+ * unchanged file.
15
+ *
16
+ * Every hunk line carries both coordinates. `beforeLine` and `afterLine` are
17
+ * 1-based; on an added line `beforeLine` is the insertion point in the original
18
+ * file, and on a removed line `afterLine` is the insertion point in the new
19
+ * file. That makes it possible to render either side without re-counting.
20
+ */
21
+ import { rawTextDigest } from "../fingerprint/raw.js";
22
+ /**
23
+ * Maximum number of lines diffed per side. Beyond this the computation is
24
+ * bounded and the result says `truncated`.
25
+ */
26
+ export const DiffMaxLines = 5000;
27
+ /**
28
+ * Default number of unchanged lines kept on each side of a change.
29
+ */
30
+ export const DiffDefaultContext = 3;
31
+ /**
32
+ * Hard ceiling for a caller-supplied context size.
33
+ */
34
+ export const DiffMaxContext = 20;
35
+ /**
36
+ * Split text into logical lines. A trailing newline terminates the last line
37
+ * rather than creating an empty one; `\r` is stripped so CRLF files diff
38
+ * cleanly against LF content.
39
+ *
40
+ * @param text - Text to split.
41
+ * @returns Lines without terminators.
42
+ */
43
+ export const splitDiffLines = (text) => {
44
+ if (text.length === 0) {
45
+ return [];
46
+ }
47
+ const lines = text.split("\n");
48
+ if (lines[lines.length - 1] === "") {
49
+ lines.pop();
50
+ }
51
+ return lines.map((line) => (line.endsWith("\r") ? line.slice(0, -1) : line));
52
+ };
53
+ /**
54
+ * Build a diff source from caller-supplied text. The fingerprint covers the
55
+ * exact input, including its trailing newline.
56
+ *
57
+ * @param text - Whole text.
58
+ * @returns Source lines, fingerprint and truncation flag.
59
+ */
60
+ export const textDiffSource = (text) => ({
61
+ lines: splitDiffLines(text),
62
+ fingerprint: rawTextDigest(text),
63
+ truncated: false,
64
+ });
65
+ /**
66
+ * Forward LCS row for `a[aStart..aEnd)` against `b[bStart..bEnd)`.
67
+ *
68
+ * @returns Row where index `k` is the LCS length for the first `k` items of b.
69
+ */
70
+ const lcsForward = (sides, aStart, aEnd, bStart, bEnd) => {
71
+ const a = sides.a;
72
+ const b = sides.b;
73
+ const width = bEnd - bStart;
74
+ let previous = new Int32Array(width + 1);
75
+ let current = new Int32Array(width + 1);
76
+ for (let index = aStart; index < aEnd; index += 1) {
77
+ current[0] = 0;
78
+ const left = a[index];
79
+ for (let column = 1; column <= width; column += 1) {
80
+ if (left === b[bStart + column - 1]) {
81
+ current[column] = previous[column - 1] + 1;
82
+ }
83
+ else {
84
+ current[column] = Math.max(previous[column], current[column - 1]);
85
+ }
86
+ }
87
+ const swap = previous;
88
+ previous = current;
89
+ current = swap;
90
+ }
91
+ return previous;
92
+ };
93
+ /**
94
+ * Backward LCS row. Index `k` is the LCS length of the suffix paired with the
95
+ * last `k` items of b, which is what makes a Hirschberg split possible.
96
+ */
97
+ const lcsBackward = (sides, aStart, aEnd, bStart, bEnd) => {
98
+ const a = sides.a;
99
+ const b = sides.b;
100
+ const width = bEnd - bStart;
101
+ let previous = new Int32Array(width + 1);
102
+ let current = new Int32Array(width + 1);
103
+ for (let index = aEnd - 1; index >= aStart; index -= 1) {
104
+ current[0] = 0;
105
+ const left = a[index];
106
+ for (let column = 1; column <= width; column += 1) {
107
+ if (left === b[bEnd - column]) {
108
+ current[column] = previous[column - 1] + 1;
109
+ }
110
+ else {
111
+ current[column] = Math.max(previous[column], current[column - 1]);
112
+ }
113
+ }
114
+ const swap = previous;
115
+ previous = current;
116
+ current = swap;
117
+ }
118
+ return previous;
119
+ };
120
+ /**
121
+ * Collect the matched index pairs of one LCS in order.
122
+ *
123
+ * The recursion splits `a` in half, picks the `b` split that maximises the sum
124
+ * of the forward and backward LCS lengths, and recurses on both halves. Memory
125
+ * stays O(|b|) and the result is the same match list a full LCS table would
126
+ * produce.
127
+ *
128
+ * @param sides - Both line arrays.
129
+ * @param aStart - Inclusive start in `a`.
130
+ * @param aEnd - Exclusive end in `a`.
131
+ * @param bStart - Inclusive start in `b`.
132
+ * @param bEnd - Exclusive end in `b`.
133
+ * @param matchA - Output indices in `a`.
134
+ * @param matchB - Output indices in `b`.
135
+ */
136
+ const collectMatches = (sides, aStart, aEnd, bStart, bEnd, matchA, matchB) => {
137
+ if (aStart >= aEnd || bStart >= bEnd) {
138
+ return;
139
+ }
140
+ const a = sides.a;
141
+ const b = sides.b;
142
+ if (aEnd - aStart === 1) {
143
+ for (let index = bStart; index < bEnd; index += 1) {
144
+ if (a[aStart] === b[index]) {
145
+ matchA.push(aStart);
146
+ matchB.push(index);
147
+ return;
148
+ }
149
+ }
150
+ return;
151
+ }
152
+ const middle = Math.floor((aStart + aEnd) / 2);
153
+ const forward = lcsForward(sides, aStart, middle, bStart, bEnd);
154
+ const backward = lcsBackward(sides, middle, aEnd, bStart, bEnd);
155
+ const width = bEnd - bStart;
156
+ let split = 0;
157
+ let best = -1;
158
+ for (let column = 0; column <= width; column += 1) {
159
+ const score = forward[column] + backward[width - column];
160
+ if (score > best) {
161
+ best = score;
162
+ split = column;
163
+ }
164
+ }
165
+ collectMatches(sides, aStart, middle, bStart, bStart + split, matchA, matchB);
166
+ collectMatches(sides, middle, aEnd, bStart + split, bEnd, matchA, matchB);
167
+ };
168
+ /**
169
+ * Turn two line arrays into an ordered operation list with 1-based counters.
170
+ *
171
+ * @param before - Original lines.
172
+ * @param after - New lines.
173
+ * @returns Diff lines in document order.
174
+ */
175
+ const diffSequences = (before, after) => {
176
+ const matchA = [];
177
+ const matchB = [];
178
+ collectMatches({ a: before, b: after }, 0, before.length, 0, after.length, matchA, matchB);
179
+ const lines = [];
180
+ let beforeIndex = 0;
181
+ let afterIndex = 0;
182
+ let beforeLine = 1;
183
+ let afterLine = 1;
184
+ for (let index = 0; index < matchA.length; index += 1) {
185
+ const targetA = matchA[index];
186
+ const targetB = matchB[index];
187
+ while (beforeIndex < targetA) {
188
+ lines.push({ type: "remove", text: before[beforeIndex], beforeLine, afterLine });
189
+ beforeIndex += 1;
190
+ beforeLine += 1;
191
+ }
192
+ while (afterIndex < targetB) {
193
+ lines.push({ type: "add", text: after[afterIndex], beforeLine, afterLine });
194
+ afterIndex += 1;
195
+ afterLine += 1;
196
+ }
197
+ lines.push({ type: "context", text: before[beforeIndex], beforeLine, afterLine });
198
+ beforeIndex += 1;
199
+ afterIndex += 1;
200
+ beforeLine += 1;
201
+ afterLine += 1;
202
+ }
203
+ while (beforeIndex < before.length) {
204
+ lines.push({ type: "remove", text: before[beforeIndex], beforeLine, afterLine });
205
+ beforeIndex += 1;
206
+ beforeLine += 1;
207
+ }
208
+ while (afterIndex < after.length) {
209
+ lines.push({ type: "add", text: after[afterIndex], beforeLine, afterLine });
210
+ afterIndex += 1;
211
+ afterLine += 1;
212
+ }
213
+ return lines;
214
+ };
215
+ /**
216
+ * Group a flat operation list into hunks with at most `context` unchanged
217
+ * lines on either side. Two changes separated by at most `2 * context`
218
+ * unchanged lines share one hunk.
219
+ *
220
+ * @param lines - Flat diff lines.
221
+ * @param context - Unchanged lines retained on each side.
222
+ * @returns Hunks in document order.
223
+ */
224
+ const buildHunks = (lines, context) => {
225
+ const changes = [];
226
+ for (let index = 0; index < lines.length; index += 1) {
227
+ if (lines[index].type !== "context") {
228
+ changes.push(index);
229
+ }
230
+ }
231
+ const hunks = [];
232
+ let index = 0;
233
+ while (index < changes.length) {
234
+ const start = Math.max(0, changes[index] - context);
235
+ let last = changes[index];
236
+ let next = index + 1;
237
+ while (next < changes.length && changes[next] - last <= context * 2 + 1) {
238
+ last = changes[next];
239
+ next += 1;
240
+ }
241
+ const end = Math.min(lines.length, last + context + 1);
242
+ const slice = lines.slice(start, end);
243
+ let beforeCount = 0;
244
+ let afterCount = 0;
245
+ for (let cursor = 0; cursor < slice.length; cursor += 1) {
246
+ if (slice[cursor].type !== "add") {
247
+ beforeCount += 1;
248
+ }
249
+ if (slice[cursor].type !== "remove") {
250
+ afterCount += 1;
251
+ }
252
+ }
253
+ hunks.push({
254
+ beforeStart: slice[0].beforeLine,
255
+ beforeLines: beforeCount,
256
+ afterStart: slice[0].afterLine,
257
+ afterLines: afterCount,
258
+ lines: slice,
259
+ });
260
+ index = next;
261
+ }
262
+ return hunks;
263
+ };
264
+ /**
265
+ * Clamp a context request into `[0, DiffMaxContext]`.
266
+ *
267
+ * @param value - Caller context, or `undefined` for the default.
268
+ * @returns Effective context size.
269
+ */
270
+ const contextOf = (value) => {
271
+ if (value === (void 0) || !Number.isSafeInteger(value)) {
272
+ return DiffDefaultContext;
273
+ }
274
+ return Math.min(DiffMaxContext, Math.max(0, value));
275
+ };
276
+ /**
277
+ * Diff two prepared sources. The fingerprints on the result always cover the
278
+ * whole input, even when the diff was truncated to `DiffMaxLines`.
279
+ *
280
+ * @param path - Root-relative path the result describes.
281
+ * @param before - Original side.
282
+ * @param after - New side.
283
+ * @param context - Unchanged lines retained on each side.
284
+ * @returns Diff result with counts and hunks.
285
+ */
286
+ export const diffSources = (path, before, after, context = DiffDefaultContext) => {
287
+ const boundedContext = contextOf(context);
288
+ const beforeTruncated = before.lines.length > DiffMaxLines;
289
+ const afterTruncated = after.lines.length > DiffMaxLines;
290
+ const beforeLines = beforeTruncated ? before.lines.slice(0, DiffMaxLines) : before.lines;
291
+ const afterLines = afterTruncated ? after.lines.slice(0, DiffMaxLines) : after.lines;
292
+ const lines = diffSequences(beforeLines, afterLines);
293
+ let added = 0;
294
+ let removed = 0;
295
+ let unchanged = 0;
296
+ for (let index = 0; index < lines.length; index += 1) {
297
+ if (lines[index].type === "add") {
298
+ added += 1;
299
+ }
300
+ else if (lines[index].type === "remove") {
301
+ removed += 1;
302
+ }
303
+ else {
304
+ unchanged += 1;
305
+ }
306
+ }
307
+ return {
308
+ path,
309
+ beforeFingerprint: before.fingerprint,
310
+ afterFingerprint: after.fingerprint,
311
+ added,
312
+ removed,
313
+ unchanged,
314
+ hunks: buildHunks(lines, boundedContext),
315
+ truncated: before.truncated || after.truncated || beforeTruncated || afterTruncated,
316
+ };
317
+ };
318
+ /**
319
+ * Diff two texts directly.
320
+ *
321
+ * @param path - Root-relative path the result describes.
322
+ * @param before - Original text.
323
+ * @param after - New text.
324
+ * @param options - Context size.
325
+ * @returns Diff result.
326
+ */
327
+ export const diffText = (path, before, after, options = {}) => diffSources(path, textDiffSource(before), textDiffSource(after), options.context);
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Export hooks.
3
+ *
4
+ * `useParse` is the cheap read helper; `useExportation` is the observable hook.
5
+ * Both call `FilesystemSession.exports`, so re-export edges, signatures and the
6
+ * fingerprint come from the one extractor the service already uses.
7
+ */
8
+ import type { ExportRequest } from "../file/service.js";
9
+ import type { ExportReport } from "../file/types.js";
10
+ import type { Hook, HookOptions, HookSession } from "./types.js";
11
+ /**
12
+ * Parse helper shape: one path in, one export report out.
13
+ */
14
+ export type ExportationParse = (path: string) => ExportReport;
15
+ /**
16
+ * Read the export report for one path. Re-exports are included because a
17
+ * module's public surface is incomplete without them.
18
+ *
19
+ * @param session - Bound filesystem session.
20
+ * @returns Parse helper.
21
+ */
22
+ export declare const useParse: (session: HookSession) => ExportationParse;
23
+ /**
24
+ * Exportation hook. `includeReexports` is forwarded unchanged, so a caller can
25
+ * ask for the narrow symbol list or the complete surface.
26
+ *
27
+ * @param session - Bound filesystem session.
28
+ * @param options - Recorder and cache options.
29
+ * @returns Hook producing one export report.
30
+ */
31
+ export declare const useExportation: (session: HookSession, options?: HookOptions) => Hook<ExportRequest, ExportReport>;
@@ -0,0 +1,24 @@
1
+ import { createHook } from "./types.js";
2
+ /**
3
+ * Read the export report for one path. Re-exports are included because a
4
+ * module's public surface is incomplete without them.
5
+ *
6
+ * @param session - Bound filesystem session.
7
+ * @returns Parse helper.
8
+ */
9
+ export const useParse = (session) => (path) => session.exports({ path, includeReexports: true });
10
+ /**
11
+ * Exportation hook. `includeReexports` is forwarded unchanged, so a caller can
12
+ * ask for the narrow symbol list or the complete surface.
13
+ *
14
+ * @param session - Bound filesystem session.
15
+ * @param options - Recorder and cache options.
16
+ * @returns Hook producing one export report.
17
+ */
18
+ export const useExportation = (session, options = {}) => createHook({
19
+ name: "exportation",
20
+ session,
21
+ execute: (request) => session.exports(request),
22
+ pathOf: (request) => request.path,
23
+ options,
24
+ });
@@ -0,0 +1,44 @@
1
+ import type { ReadPage, ReadRequest, WriteRequest, WriteResult } from "../file/types.js";
2
+ import type { DiffRequest, DiffResult } from "./diff.js";
3
+ import type { Hook, HookOptions, HookSession } from "./types.js";
4
+ /**
5
+ * Read hook. Delegates one `ReadRequest` to the session and keeps `bigint`
6
+ * totals (`totalLines`/`totalBytes`) intact; the hook layer never projects a
7
+ * domain value onto JSON.
8
+ *
9
+ * Caching is opt-in through `options.cache`. The cache key covers the request
10
+ * only, so a host that enables it after a write should reset the hook or create
11
+ * a new one; the default is uncached because a stale read is worse than a
12
+ * repeated one.
13
+ *
14
+ * @param session - Bound filesystem session.
15
+ * @param options - Recorder and cache options.
16
+ * @returns Hook producing one bounded read page.
17
+ */
18
+ export declare const useRead: (session: HookSession, options?: HookOptions) => Hook<ReadRequest, ReadPage>;
19
+ /**
20
+ * Write hook. This is the only mutable operation in the hook layer.
21
+ *
22
+ * The success revision is `WriteResult.revision`, the revision the write
23
+ * actually produced, rather than a later session read that could include an
24
+ * unrelated change. The cache is always disabled.
25
+ *
26
+ * @param session - Bound filesystem session.
27
+ * @param options - Recorder options; `cache` is ignored.
28
+ * @returns Hook producing one write result.
29
+ */
30
+ export declare const useWrite: (session: HookSession, options?: HookOptions) => Hook<WriteRequest, WriteResult>;
31
+ /**
32
+ * Diff hook.
33
+ *
34
+ * `request.before` overrides the old side and `request.content` overrides the
35
+ * new side; an omitted side is read from the session. With both omitted the
36
+ * file is read once and compared with itself, which reports no hunks. The
37
+ * request cache is disabled because the result depends on the file on disk,
38
+ * not only on the request.
39
+ *
40
+ * @param session - Bound filesystem session.
41
+ * @param options - Recorder options; `cache` is ignored.
42
+ * @returns Hook producing one bounded diff.
43
+ */
44
+ export declare const useDiff: (session: HookSession, options?: HookOptions) => Hook<DiffRequest, DiffResult>;
@@ -0,0 +1,154 @@
1
+ /**
2
+ * File hooks: read, write and diff.
3
+ *
4
+ * `useWrite` is the only mutating hook in the whole layer. It forwards one
5
+ * `WriteRequest` to the bound `FilesystemSession.write` and reports the
6
+ * post-write revision from the result; it never enables the request cache,
7
+ * because replaying a write from cache would silently skip the second write
8
+ * and turn a "create" into a success that never touched the disk.
9
+ *
10
+ * `useRead` and `useDiff` are read-only. `useDiff` reconstructs the current file
11
+ * page by page (the read contract caps one page at 2000 lines and 256 KiB) and
12
+ * treats a missing file as the empty string, so "new file" and "deleted file"
13
+ * are both expressible without a special request shape.
14
+ */
15
+ import { isFilesystemError } from "../file/errors.js";
16
+ import { rawTextDigest } from "../fingerprint/raw.js";
17
+ import { DiffMaxLines, diffSources, textDiffSource } from "./diff.js";
18
+ import { createHook } from "./types.js";
19
+ /**
20
+ * Largest page the read contract returns, in lines.
21
+ */
22
+ const ReadPageLines = 2000;
23
+ /**
24
+ * Largest page the read contract returns, in UTF-8 bytes.
25
+ */
26
+ const ReadPageBytes = 256 * 1024;
27
+ /**
28
+ * Read a whole file as diff lines. A missing file is the empty side; every
29
+ * other classified failure propagates. The fingerprint comes from the first
30
+ * page, which already covers the entire file bytes.
31
+ *
32
+ * Page text is returned without a trailing newline, so a page that ends on a
33
+ * blank line would lose that line if it were split naively. The page's
34
+ * inclusive `startLine`/`endLine` range is authoritative; missing trailing
35
+ * blanks are restored so a multi-page diff keeps every line.
36
+ */
37
+ const readDiffSource = (session, path) => {
38
+ const lines = [];
39
+ let startLine = 1;
40
+ let fingerprint = rawTextDigest("");
41
+ let truncated = false;
42
+ let first = true;
43
+ while (lines.length <= DiffMaxLines) {
44
+ let page;
45
+ try {
46
+ page = session.read({
47
+ path,
48
+ startLine,
49
+ maxLines: Math.min(ReadPageLines, DiffMaxLines + 1 - lines.length),
50
+ maxBytes: ReadPageBytes,
51
+ });
52
+ }
53
+ catch (error) {
54
+ if (isFilesystemError(error) && error.code === "not_found") {
55
+ return { lines: [], fingerprint: rawTextDigest(""), truncated: false };
56
+ }
57
+ throw error;
58
+ }
59
+ if (first) {
60
+ fingerprint = page.fingerprint;
61
+ first = false;
62
+ }
63
+ const expected = page.endLine - page.startLine + 1;
64
+ if (expected > 0) {
65
+ const pageLines = page.text.length === 0 ? [] : page.text.split("\n").map((line) => (line.endsWith("\r") ? line.slice(0, -1) : line));
66
+ for (let index = 0; index < pageLines.length; index += 1) {
67
+ lines.push(pageLines[index]);
68
+ }
69
+ while (pageLines.length < expected) {
70
+ lines.push("");
71
+ pageLines.push("");
72
+ }
73
+ }
74
+ if (page.nextStartLine === null) {
75
+ break;
76
+ }
77
+ if (page.nextStartLine <= startLine) {
78
+ truncated = true;
79
+ break;
80
+ }
81
+ startLine = page.nextStartLine;
82
+ }
83
+ if (lines.length > DiffMaxLines) {
84
+ lines.length = DiffMaxLines;
85
+ truncated = true;
86
+ }
87
+ return { lines, fingerprint, truncated };
88
+ };
89
+ /**
90
+ * Read hook. Delegates one `ReadRequest` to the session and keeps `bigint`
91
+ * totals (`totalLines`/`totalBytes`) intact; the hook layer never projects a
92
+ * domain value onto JSON.
93
+ *
94
+ * Caching is opt-in through `options.cache`. The cache key covers the request
95
+ * only, so a host that enables it after a write should reset the hook or create
96
+ * a new one; the default is uncached because a stale read is worse than a
97
+ * repeated one.
98
+ *
99
+ * @param session - Bound filesystem session.
100
+ * @param options - Recorder and cache options.
101
+ * @returns Hook producing one bounded read page.
102
+ */
103
+ export const useRead = (session, options = {}) => createHook({
104
+ name: "read",
105
+ session,
106
+ execute: (request) => session.read(request),
107
+ pathOf: (request) => request.path,
108
+ options,
109
+ });
110
+ /**
111
+ * Write hook. This is the only mutable operation in the hook layer.
112
+ *
113
+ * The success revision is `WriteResult.revision`, the revision the write
114
+ * actually produced, rather than a later session read that could include an
115
+ * unrelated change. The cache is always disabled.
116
+ *
117
+ * @param session - Bound filesystem session.
118
+ * @param options - Recorder options; `cache` is ignored.
119
+ * @returns Hook producing one write result.
120
+ */
121
+ export const useWrite = (session, options = {}) => createHook({
122
+ name: "write",
123
+ session,
124
+ execute: (request) => session.write(request),
125
+ pathOf: (request) => request.path,
126
+ revisionOf: (result) => result.revision,
127
+ options: { ...options, cache: false },
128
+ });
129
+ /**
130
+ * Diff hook.
131
+ *
132
+ * `request.before` overrides the old side and `request.content` overrides the
133
+ * new side; an omitted side is read from the session. With both omitted the
134
+ * file is read once and compared with itself, which reports no hunks. The
135
+ * request cache is disabled because the result depends on the file on disk,
136
+ * not only on the request.
137
+ *
138
+ * @param session - Bound filesystem session.
139
+ * @param options - Recorder options; `cache` is ignored.
140
+ * @returns Hook producing one bounded diff.
141
+ */
142
+ export const useDiff = (session, options = {}) => createHook({
143
+ name: "diff",
144
+ session,
145
+ execute: (request) => {
146
+ const beforeText = request.before;
147
+ const afterText = request.content;
148
+ const before = beforeText === (void 0) ? readDiffSource(session, request.path) : textDiffSource(beforeText);
149
+ const after = afterText === (void 0) ? (beforeText === (void 0) ? before : readDiffSource(session, request.path)) : textDiffSource(afterText);
150
+ return diffSources(request.path, before, after, request.context);
151
+ },
152
+ pathOf: (request) => request.path,
153
+ options: { ...options, cache: false },
154
+ });
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Import hooks.
3
+ *
4
+ * `useParse` reports the outgoing imports of one file; `useImportation` wraps
5
+ * the same session call as an observable hook and forwards `direction`,
6
+ * `depth`, `includeExternal` and `limit` unchanged.
7
+ *
8
+ * Incoming edges are expensive because they require the root graph. The parse
9
+ * helper therefore keeps the service default (`outgoing`); a caller that wants
10
+ * `importedBy` asks for `direction: "incoming"` or `"both"` explicitly.
11
+ */
12
+ import type { ImportRequest } from "../file/service.js";
13
+ import type { ImportReport } from "../file/types.js";
14
+ import type { Hook, HookOptions, HookSession } from "./types.js";
15
+ /**
16
+ * Parse helper shape: one path in, one import report out.
17
+ */
18
+ export type ImportationParse = (path: string) => ImportReport;
19
+ /**
20
+ * Read the outgoing import report for one path.
21
+ *
22
+ * @param session - Bound filesystem session.
23
+ * @returns Parse helper.
24
+ */
25
+ export declare const useParse: (session: HookSession) => ImportationParse;
26
+ /**
27
+ * Importation hook.
28
+ *
29
+ * @param session - Bound filesystem session.
30
+ * @param options - Recorder and cache options.
31
+ * @returns Hook producing one import report.
32
+ */
33
+ export declare const useImportation: (session: HookSession, options?: HookOptions) => Hook<ImportRequest, ImportReport>;
@@ -0,0 +1,22 @@
1
+ import { createHook } from "./types.js";
2
+ /**
3
+ * Read the outgoing import report for one path.
4
+ *
5
+ * @param session - Bound filesystem session.
6
+ * @returns Parse helper.
7
+ */
8
+ export const useParse = (session) => (path) => session.imports({ path });
9
+ /**
10
+ * Importation hook.
11
+ *
12
+ * @param session - Bound filesystem session.
13
+ * @param options - Recorder and cache options.
14
+ * @returns Hook producing one import report.
15
+ */
16
+ export const useImportation = (session, options = {}) => createHook({
17
+ name: "importation",
18
+ session,
19
+ execute: (request) => session.imports(request),
20
+ pathOf: (request) => request.path,
21
+ options,
22
+ });
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Public surface of the hook layer.
3
+ *
4
+ * The concrete `use*` hooks and their shared types are exported here. Each
5
+ * module has its own `useParse` read helper, so those collide by design; they
6
+ * are re-exported under module-qualified names (`useCodeParse`,
7
+ * `useProjectParse`, ...) and the original name remains available from the
8
+ * module itself.
9
+ *
10
+ * `createHook` is re-exported explicitly because it is the extension point a
11
+ * host uses to add a hook without changing this package.
12
+ */
13
+ export * from "./types.js";
14
+ export * from "./diff.js";
15
+ export * from "./file.js";
16
+ export { createHook } from "./types.js";
17
+ export type { DependencyFacts, DependencyParse } from "./dependency.js";
18
+ export { useDependency, useParse as useDependencyParse } from "./dependency.js";
19
+ export type { ExportationParse } from "./exportation.js";
20
+ export { useExportation, useParse as useExportationParse } from "./exportation.js";
21
+ export type { ImportationParse } from "./importation.js";
22
+ export { useImportation, useParse as useImportationParse } from "./importation.js";
23
+ export type { OutlineParse } from "./outline.js";
24
+ export { useOutline, useParse as useOutlineParse } from "./outline.js";
25
+ export type { AstParse } from "./ast.js";
26
+ export { useAst, useParse as useAstParse } from "./ast.js";
27
+ export type { CodeModel, CodeParse, CodeRequest } from "./code.js";
28
+ export { useCode, useParse as useCodeParse } from "./code.js";
29
+ export type { ProjectKind, ProjectModel, ProjectParse, ProjectRequest } from "./project.js";
30
+ export { projectKindOf, useProject, useParse as useProjectParse } from "./project.js";