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,45 @@
1
+ /**
2
+ * Public filesystem surface: tree nodes, reads/writes, outlines and module
3
+ * graphs. Every export is read-only except `writeFile`/`ensureDirectory`;
4
+ * mutation authority is granted by a `SessionRoot` and enforced by
5
+ * `PathSandbox`.
6
+ */
7
+ export * from "./types.js";
8
+ export { FilesystemError, fail, isFilesystemError } from "./errors.js";
9
+ export { detectCharset, decodeText, encodeText, countLines, LineIndex } from "../syntax/charset.js";
10
+ export type { DetectedCharset } from "../syntax/charset.js";
11
+ export { ByteLineIndex } from "../syntax/byteIndex.js";
12
+ export { formatNodeTime, formatIsoTime, parseNodeTime, creationTime } from "./time.js";
13
+ export { PathSandbox } from "./path.js";
14
+ export type { PathSandboxOptions } from "./path.js";
15
+ export { buildFileNode, wireNode, wireTree, verifyFingerprint } from "./file.js";
16
+ export { buildDirectoryNode, listDirectory, compareTreeNodes } from "./directory.js";
17
+ export { buildTree, WorkspaceTree } from "./tree.js";
18
+ export { readPage, ReadCache, byteRangeFingerprint, locateLineSpan, useByte as useByteRead, useLine as useLineRead } from "./read.js";
19
+ export type { ReadOptions, ByteUse, ByteUseRequest, LineEnding, LineSpan, LineUse, LineUseRequest } from "./read.js";
20
+ export { writeFile, ensureDirectory, WriteLocks, useByte as useByteWrite, useLine as useLineWrite } from "./write.js";
21
+ export type { BytePatchRequest, LinePatchRequest, PatchJournalEntry, WriteOptions, WritePatchOptions, WritePatchResult, } from "./write.js";
22
+ export { SessionRuntime } from "./runtime.js";
23
+ export type { AnnotationMap, ResolvedNode, SessionRuntimeOptions } from "./runtime.js";
24
+ export { FilesystemService, FilesystemSession, filesystemSessionSummary } from "./service.js";
25
+ export type { AstRequest, DependencyQuery, ExportRequest, FilesystemServiceLimits, FilesystemServiceOptions, ImportRequest, OutlineRequest, } from "./service.js";
26
+ export { buildOutline, OutlineRegistry, DefaultOutlineRegistry, OutlineStrategies, OutlineMaxFileBytes, OutlineMaxScanLines, OutlineDefaultMaxNodes, OutlineHardMaxNodes, OutlineDefaultMaxDepth, OutlineHardMaxDepth, createOutlineRegistry, outlineLanguage, outlineNodeFingerprint, } from "../outline/outline.js";
27
+ export type { FingerprintedOutlineNode, OutlineAnchor, OutlineMatchInput, OutlineOptions, OutlineParseInput, OutlineStrategy } from "../outline/outline.js";
28
+ export { DefaultOutlineKeywords, OutlineKeywordRegistry, createOutlineKeywordRegistry } from "../outline/outlineKeywords.js";
29
+ export type { OutlineKeywordCategory } from "../outline/outlineKeywords.js";
30
+ export { buildSyntaxTree } from "./syntaxTree.js";
31
+ export { DefaultSyntaxRegistry, SyntaxRegistry, buildSyntaxTreeFromText, createSyntaxRegistry, disposeSyntaxNode, syntaxLanguageOf, wireSyntaxTree, } from "../syntax/syntaxTree.js";
32
+ export type { SyntaxLanguage, SyntaxLanguageDefinition, SyntaxNode, SyntaxNodeKind, SyntaxNodeKindDefinition, SyntaxToken, SyntaxTokenKind, SyntaxTokenKindDefinition, SyntaxTree, SyntaxTreeOptions, WireSyntaxNode, WireSyntaxToken, WireSyntaxTree, } from "../syntax/syntaxTree.js";
33
+ export { OutlineIndex, buildOutlineIndex, filterOutline, hasLabelPrefix, wireOutline, wireOutlineNode, wireOutlineRange, outlineFromWire } from "../outline/outlineIndex.js";
34
+ export type { OutlinePayload } from "../outline/outlineIndex.js";
35
+ export { extractImports, importedBy, isParseableSource, readSourceFile, resolveImportSpecifier, tokenizeSource } from "./importGraph.js";
36
+ export type { ResolvedSpecifier, SourceFileSnapshot, SourceToken } from "./importGraph.js";
37
+ export { extractExports } from "./exportGraph.js";
38
+ export { DependencyGraph, buildDependencyReport, graphFromImports } from "./dependency.js";
39
+ export { isOfficeFile, parseOffice, officeImports, officeExports, officeReferences, officeOutlineParser, installOfficeOutlineParser } from "../outline/office.js";
40
+ export type { OfficeDocument, OfficeFormat, OfficeKind, OfficeReference, OfficeSection, OfficeSectionKind } from "../outline/office.js";
41
+ export { readCfb } from "./cfb.js";
42
+ export type { CfbEntry } from "./cfb.js";
43
+ export { readZipEntries, zipText } from "./zip.js";
44
+ export type { ZipEntry } from "./zip.js";
45
+ export type { DependencyClosure, DependencyRequest, DependencySubgraph, TopologicalResult } from "./dependency.js";
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Public filesystem surface: tree nodes, reads/writes, outlines and module
3
+ * graphs. Every export is read-only except `writeFile`/`ensureDirectory`;
4
+ * mutation authority is granted by a `SessionRoot` and enforced by
5
+ * `PathSandbox`.
6
+ */
7
+ export * from "./types.js";
8
+ export { FilesystemError, fail, isFilesystemError } from "./errors.js";
9
+ export { detectCharset, decodeText, encodeText, countLines, LineIndex } from "../syntax/charset.js";
10
+ export { ByteLineIndex } from "../syntax/byteIndex.js";
11
+ export { formatNodeTime, formatIsoTime, parseNodeTime, creationTime } from "./time.js";
12
+ export { PathSandbox } from "./path.js";
13
+ export { buildFileNode, wireNode, wireTree, verifyFingerprint } from "./file.js";
14
+ export { buildDirectoryNode, listDirectory, compareTreeNodes } from "./directory.js";
15
+ export { buildTree, WorkspaceTree } from "./tree.js";
16
+ export { readPage, ReadCache, byteRangeFingerprint, locateLineSpan, useByte as useByteRead, useLine as useLineRead } from "./read.js";
17
+ export { writeFile, ensureDirectory, WriteLocks, useByte as useByteWrite, useLine as useLineWrite } from "./write.js";
18
+ export { SessionRuntime } from "./runtime.js";
19
+ export { FilesystemService, FilesystemSession, filesystemSessionSummary } from "./service.js";
20
+ export { buildOutline, OutlineRegistry, DefaultOutlineRegistry, OutlineStrategies, OutlineMaxFileBytes, OutlineMaxScanLines, OutlineDefaultMaxNodes, OutlineHardMaxNodes, OutlineDefaultMaxDepth, OutlineHardMaxDepth, createOutlineRegistry, outlineLanguage, outlineNodeFingerprint, } from "../outline/outline.js";
21
+ export { DefaultOutlineKeywords, OutlineKeywordRegistry, createOutlineKeywordRegistry } from "../outline/outlineKeywords.js";
22
+ export { buildSyntaxTree } from "./syntaxTree.js";
23
+ export { DefaultSyntaxRegistry, SyntaxRegistry, buildSyntaxTreeFromText, createSyntaxRegistry, disposeSyntaxNode, syntaxLanguageOf, wireSyntaxTree, } from "../syntax/syntaxTree.js";
24
+ export { OutlineIndex, buildOutlineIndex, filterOutline, hasLabelPrefix, wireOutline, wireOutlineNode, wireOutlineRange, outlineFromWire } from "../outline/outlineIndex.js";
25
+ export { extractImports, importedBy, isParseableSource, readSourceFile, resolveImportSpecifier, tokenizeSource } from "./importGraph.js";
26
+ export { extractExports } from "./exportGraph.js";
27
+ export { DependencyGraph, buildDependencyReport, graphFromImports } from "./dependency.js";
28
+ export { isOfficeFile, parseOffice, officeImports, officeExports, officeReferences, officeOutlineParser, installOfficeOutlineParser } from "../outline/office.js";
29
+ export { readCfb } from "./cfb.js";
30
+ export { readZipEntries, zipText } from "./zip.js";
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Deterministic, bounded metadata extraction for tree nodes.
3
+ *
4
+ * Descriptions are derived only from bytes the caller already has: a leading
5
+ * JSDoc or line comment, a Markdown heading and paragraph, front matter, a
6
+ * package manifest or the first paragraph of plain text. Extraction never
7
+ * touches the filesystem, never executes code and never inspects more than the
8
+ * first 64 KiB of a file, so building a tree stays cheap and side-effect free.
9
+ *
10
+ * The three fields have different jobs. `description` is a short identity line,
11
+ * `summary` adds detail for retrieval and `purpose` records what the host or the
12
+ * document explicitly says the node is for. Host annotations override all three,
13
+ * but they are descriptive only: they never change a fingerprint.
14
+ */
15
+ import type { Charset } from "../syntax/types.js";
16
+ import type { NodeAnnotation, TreeNode } from "./types.js";
17
+ /**
18
+ * Descriptive fields derived for one node.
19
+ */
20
+ export interface NodeDescription {
21
+ readonly description: string;
22
+ readonly summary: string;
23
+ readonly purpose: string;
24
+ }
25
+ /**
26
+ * Last path segment, accepting both POSIX and host separators so an absolute
27
+ * path is usable as a name fallback. The root path normalizes to `.`.
28
+ */
29
+ export declare const nameOfPath: (value: string) => string;
30
+ /**
31
+ * Last lowercase extension without the dot; the empty string when the name has
32
+ * no extension. A leading dot is a hidden-file marker, not an extension.
33
+ */
34
+ export declare const extensionOfPath: (value: string) => string;
35
+ /**
36
+ * Derive description/summary/purpose for one file from its detected charset and
37
+ * a bounded head of its bytes.
38
+ *
39
+ * @param absolute - Absolute host path, used only as a name fallback.
40
+ * @param relative - Root-relative POSIX path.
41
+ * @param charset - Detected charset; `binary`/`none` disable text extraction.
42
+ * @param head - First bytes of the file; at most 64 KiB are inspected.
43
+ * @param annotation - Optional host override.
44
+ * @returns The three descriptive fields.
45
+ */
46
+ export declare const describeFile: (absolute: string, relative: string, charset: Charset, head: Uint8Array, annotation?: NodeAnnotation) => NodeDescription;
47
+ /**
48
+ * Derive description/summary/purpose for one directory from its direct
49
+ * children.
50
+ *
51
+ * @param relative - Root-relative POSIX path.
52
+ * @param children - Direct children in tree order.
53
+ * @param annotation - Optional host override.
54
+ * @param readme - Optional README text used for the purpose.
55
+ * @returns The three descriptive fields.
56
+ */
57
+ export declare const describeDirectory: (relative: string, children: readonly TreeNode[], annotation?: NodeAnnotation, readme?: string) => NodeDescription;
58
+ /**
59
+ * Look up an annotation by exact root-relative path. Parent-directory
60
+ * annotations are not inherited: an override names exactly one node.
61
+ *
62
+ * @param annotations - Path-keyed override map.
63
+ * @param relative - Exact root-relative path.
64
+ * @returns The annotation when present.
65
+ */
66
+ export declare const annotationFor: (annotations: Readonly<Record<string, NodeAnnotation>> | undefined, relative: string) => NodeAnnotation | undefined;
@@ -0,0 +1,470 @@
1
+ import { decodeText } from "../syntax/charset.js";
2
+ const MaxHeadBytes = 64 * 1024;
3
+ const MaxDescriptionLength = 160;
4
+ const MaxSummaryLength = 400;
5
+ const MaxPurposeLength = 200;
6
+ const MaxSummaryChildren = 6;
7
+ const ScriptExtensions = new Set([
8
+ "js",
9
+ "jsx",
10
+ "mjs",
11
+ "cjs",
12
+ "ts",
13
+ "tsx",
14
+ "mts",
15
+ "cts",
16
+ "java",
17
+ "kt",
18
+ "kts",
19
+ "c",
20
+ "h",
21
+ "cc",
22
+ "cpp",
23
+ "hpp",
24
+ "cs",
25
+ "go",
26
+ "rs",
27
+ "swift",
28
+ ]);
29
+ const MarkdownExtensions = new Set(["md", "markdown", "mdx"]);
30
+ const collapse = (value) => value.replace(/\s+/gu, " ").trim();
31
+ const safeSliceEnd = (value, end) => {
32
+ let cut = Math.min(end, value.length);
33
+ if (cut > 0 && cut < value.length) {
34
+ const code = value.charCodeAt(cut - 1);
35
+ if (code >= 0xd800 && code <= 0xdbff) {
36
+ cut -= 1;
37
+ }
38
+ }
39
+ return cut;
40
+ };
41
+ const clip = (value, maximum) => {
42
+ if (value.length <= maximum) {
43
+ return value;
44
+ }
45
+ const cut = safeSliceEnd(value, Math.max(0, maximum - 3));
46
+ return `${value.slice(0, cut)}...`;
47
+ };
48
+ const normalizeField = (value, maximum) => clip(collapse(value), maximum);
49
+ /**
50
+ * Last path segment, accepting both POSIX and host separators so an absolute
51
+ * path is usable as a name fallback. The root path normalizes to `.`.
52
+ */
53
+ export const nameOfPath = (value) => {
54
+ const normalized = value.replace(/\\/g, "/").replace(/\/+$/, "");
55
+ if (normalized.length === 0 || normalized === ".") {
56
+ return ".";
57
+ }
58
+ const slash = normalized.lastIndexOf("/");
59
+ return slash === -1 ? normalized : normalized.slice(slash + 1);
60
+ };
61
+ /**
62
+ * Last lowercase extension without the dot; the empty string when the name has
63
+ * no extension. A leading dot is a hidden-file marker, not an extension.
64
+ */
65
+ export const extensionOfPath = (value) => {
66
+ const name = nameOfPath(value);
67
+ const dot = name.lastIndexOf(".");
68
+ if (dot <= 0 || dot === name.length - 1) {
69
+ return "";
70
+ }
71
+ return name.slice(dot + 1).toLowerCase();
72
+ };
73
+ const decodePreview = (head, charset) => {
74
+ if (charset === "binary" || charset === "none") {
75
+ return undefined;
76
+ }
77
+ const bounded = head.length > MaxHeadBytes ? head.subarray(0, MaxHeadBytes) : head;
78
+ const even = charset === "utf-16le" || charset === "utf-16be" ? bounded.subarray(0, bounded.length - (bounded.length % 2)) : bounded;
79
+ for (let trim = 0; trim <= 3; trim += 1) {
80
+ const candidate = trim === 0 ? even : even.subarray(0, Math.max(0, even.length - trim));
81
+ try {
82
+ return decodeText(candidate, charset);
83
+ }
84
+ catch {
85
+ continue;
86
+ }
87
+ }
88
+ return undefined;
89
+ };
90
+ const stripQuotes = (value) => {
91
+ const trimmed = value.trim();
92
+ if (trimmed.length >= 2) {
93
+ const first = trimmed[0];
94
+ const last = trimmed[trimmed.length - 1];
95
+ if ((first === '"' && last === '"') || (first === "'" && last === "'")) {
96
+ return trimmed.slice(1, -1).trim();
97
+ }
98
+ }
99
+ return trimmed;
100
+ };
101
+ const parseFrontMatter = (text) => {
102
+ const normalized = text.replace(/\r\n?/g, "\n").replace(/^\uFEFF/, "");
103
+ const lines = normalized.split("\n");
104
+ if (lines.length === 0 || lines[0].trim() !== "---") {
105
+ return { body: normalized };
106
+ }
107
+ let closing = -1;
108
+ for (let index = 1; index < lines.length; index += 1) {
109
+ const marker = lines[index].trim();
110
+ if (marker === "---" || marker === "...") {
111
+ closing = index;
112
+ break;
113
+ }
114
+ }
115
+ if (closing === -1) {
116
+ return { body: normalized };
117
+ }
118
+ const fields = {};
119
+ for (let index = 1; index < closing; index += 1) {
120
+ const match = /^([A-Za-z][A-Za-z0-9_-]*)\s*:\s*(.*)$/.exec(lines[index]);
121
+ if (match === null) {
122
+ continue;
123
+ }
124
+ const key = match[1].toLowerCase();
125
+ const value = stripQuotes(match[2]);
126
+ if (value.length === 0) {
127
+ continue;
128
+ }
129
+ if (key === "title" && fields.title === (void 0)) {
130
+ fields.title = value;
131
+ }
132
+ else if (key === "description" && fields.description === (void 0)) {
133
+ fields.description = value;
134
+ }
135
+ else if (key === "purpose" && fields.purpose === (void 0)) {
136
+ fields.purpose = value;
137
+ }
138
+ }
139
+ return {
140
+ title: fields.title,
141
+ description: fields.description,
142
+ purpose: fields.purpose,
143
+ body: lines.slice(closing + 1).join("\n"),
144
+ };
145
+ };
146
+ const firstNonEmptyLine = (text) => {
147
+ const lines = text.replace(/\r\n?/g, "\n").split("\n");
148
+ for (let index = 0; index < lines.length; index += 1) {
149
+ const trimmed = lines[index].trim();
150
+ if (trimmed.length > 0) {
151
+ return trimmed;
152
+ }
153
+ }
154
+ return undefined;
155
+ };
156
+ const firstParagraph = (text) => {
157
+ const raw = text.replace(/\r\n?/g, "\n").split("\n");
158
+ const lines = [];
159
+ for (let index = 0; index < raw.length; index += 1) {
160
+ const line = raw[index].trim();
161
+ const next = index + 1 < raw.length ? raw[index + 1].trim() : "";
162
+ if (line.length > 0 && !line.startsWith("#") && /^=+\s*$/.test(next)) {
163
+ lines.push("");
164
+ index += 1;
165
+ continue;
166
+ }
167
+ lines.push(line);
168
+ }
169
+ const collected = [];
170
+ let started = false;
171
+ let fence = false;
172
+ for (let index = 0; index < lines.length; index += 1) {
173
+ const line = lines[index].trim();
174
+ const fenceLine = line.startsWith("```") || line.startsWith("~~~");
175
+ if (fenceLine) {
176
+ if (started) {
177
+ break;
178
+ }
179
+ fence = !fence;
180
+ continue;
181
+ }
182
+ if (fence) {
183
+ continue;
184
+ }
185
+ if (!started) {
186
+ if (line.length === 0 || line.startsWith("#")) {
187
+ continue;
188
+ }
189
+ started = true;
190
+ }
191
+ else if (line.length === 0 || line.startsWith("#")) {
192
+ break;
193
+ }
194
+ collected.push(line);
195
+ }
196
+ return collected.length === 0 ? undefined : collected.join(" ");
197
+ };
198
+ const firstMarkdownHeading = (text) => {
199
+ const lines = text.replace(/\r\n?/g, "\n").split("\n");
200
+ let fence = false;
201
+ for (let index = 0; index < lines.length; index += 1) {
202
+ const line = lines[index].trim();
203
+ if (line.startsWith("```") || line.startsWith("~~~")) {
204
+ fence = !fence;
205
+ continue;
206
+ }
207
+ if (fence) {
208
+ continue;
209
+ }
210
+ const match = /^#\s+(.+?)\s*#*\s*$/.exec(line);
211
+ if (match !== null) {
212
+ return match[1].trim();
213
+ }
214
+ const next = index + 1 < lines.length ? lines[index + 1].trim() : "";
215
+ if (line.length > 0 && !line.startsWith("#") && /^=+\s*$/.test(next)) {
216
+ return line;
217
+ }
218
+ }
219
+ return undefined;
220
+ };
221
+ const cleanComment = (lines) => {
222
+ const cleaned = [];
223
+ let purpose;
224
+ for (let index = 0; index < lines.length; index += 1) {
225
+ let value = lines[index].trim();
226
+ if (value.startsWith("*")) {
227
+ value = value.replace(/^\*+\s?/, "").trim();
228
+ }
229
+ if (value.length === 0) {
230
+ cleaned.push("");
231
+ continue;
232
+ }
233
+ const tag = /^@([A-Za-z][A-Za-z0-9_-]*)\s*(.*)$/.exec(value);
234
+ if (tag !== null) {
235
+ if (tag[1].toLowerCase() === "purpose") {
236
+ purpose = tag[2].trim();
237
+ }
238
+ continue;
239
+ }
240
+ cleaned.push(value);
241
+ }
242
+ return { text: cleaned.join("\n").trim(), purpose };
243
+ };
244
+ const extractLeadingComment = (text) => {
245
+ const lines = text.replace(/\r\n?/g, "\n").split("\n");
246
+ let index = 0;
247
+ while (index < lines.length && lines[index].trim().length === 0) {
248
+ index += 1;
249
+ }
250
+ if (index < lines.length && lines[index].trimStart().startsWith("#!")) {
251
+ index += 1;
252
+ }
253
+ while (index < lines.length && lines[index].trim().length === 0) {
254
+ index += 1;
255
+ }
256
+ if (index >= lines.length) {
257
+ return undefined;
258
+ }
259
+ const first = lines[index].trimStart();
260
+ if (first.startsWith("/*")) {
261
+ const raw = [];
262
+ let closed = false;
263
+ for (; index < lines.length; index += 1) {
264
+ const line = lines[index];
265
+ const open = line.indexOf("/*");
266
+ const content = line.slice(open === -1 ? 0 : open + 2);
267
+ const close = content.indexOf("*/");
268
+ raw.push(close === -1 ? content : content.slice(0, close));
269
+ if (close !== -1) {
270
+ closed = true;
271
+ break;
272
+ }
273
+ }
274
+ return closed ? cleanComment(raw) : undefined;
275
+ }
276
+ if (first.startsWith("//")) {
277
+ const raw = [];
278
+ for (; index < lines.length; index += 1) {
279
+ const trimmed = lines[index].trim();
280
+ if (trimmed.startsWith("//")) {
281
+ raw.push(trimmed.slice(2));
282
+ continue;
283
+ }
284
+ if (trimmed.length === 0) {
285
+ raw.push("");
286
+ continue;
287
+ }
288
+ break;
289
+ }
290
+ return raw.length === 0 ? undefined : cleanComment(raw);
291
+ }
292
+ return undefined;
293
+ };
294
+ const describePackage = (text, relative) => {
295
+ if (nameOfPath(relative).toLowerCase() !== "package.json") {
296
+ return undefined;
297
+ }
298
+ let parsed;
299
+ try {
300
+ parsed = JSON.parse(text);
301
+ }
302
+ catch {
303
+ return undefined;
304
+ }
305
+ if (typeof (parsed) !== "object" || parsed === null) {
306
+ return undefined;
307
+ }
308
+ const record = parsed;
309
+ const packageName = typeof (record.name) === "string" ? collapse(record.name) : "";
310
+ const declared = typeof (record.description) === "string" ? collapse(record.description) : "";
311
+ const description = packageName.length > 0 ? `Package ${packageName}.` : "File package.json.";
312
+ const summary = declared.length > 0 ? declared : description;
313
+ return {
314
+ description: normalizeField(description, MaxDescriptionLength),
315
+ summary: normalizeField(summary, MaxSummaryLength),
316
+ purpose: "not declared",
317
+ };
318
+ };
319
+ const withAnnotation = (base, annotation) => {
320
+ if (annotation === (void 0)) {
321
+ return base;
322
+ }
323
+ const description = annotation.description === (void 0) ? base.description : normalizeField(annotation.description, MaxDescriptionLength);
324
+ const summary = annotation.summary === (void 0) ? base.summary : normalizeField(annotation.summary, MaxSummaryLength);
325
+ const purpose = annotation.purpose === (void 0) ? base.purpose : normalizeField(annotation.purpose, MaxPurposeLength);
326
+ return { description, summary, purpose };
327
+ };
328
+ /**
329
+ * Derive description/summary/purpose for one file from its detected charset and
330
+ * a bounded head of its bytes.
331
+ *
332
+ * @param absolute - Absolute host path, used only as a name fallback.
333
+ * @param relative - Root-relative POSIX path.
334
+ * @param charset - Detected charset; `binary`/`none` disable text extraction.
335
+ * @param head - First bytes of the file; at most 64 KiB are inspected.
336
+ * @param annotation - Optional host override.
337
+ * @returns The three descriptive fields.
338
+ */
339
+ export const describeFile = (absolute, relative, charset, head, annotation) => {
340
+ const nameFromPath = relative === "." || relative.length === 0 ? absolute : relative;
341
+ const name = nameOfPath(nameFromPath);
342
+ const fallback = {
343
+ description: normalizeField(`File ${name}.`, MaxDescriptionLength),
344
+ summary: normalizeField(`File ${name}.`, MaxSummaryLength),
345
+ purpose: "not declared",
346
+ };
347
+ const text = decodePreview(head, charset);
348
+ let description;
349
+ let summary;
350
+ let purpose;
351
+ if (text !== (void 0)) {
352
+ const front = parseFrontMatter(text);
353
+ const body = front.body;
354
+ const extension = extensionOfPath(relative);
355
+ const isPackage = nameOfPath(relative).toLowerCase() === "package.json";
356
+ const packageDescription = describePackage(text, relative);
357
+ if (packageDescription !== (void 0)) {
358
+ description = packageDescription.description;
359
+ summary = packageDescription.summary;
360
+ purpose = packageDescription.purpose;
361
+ }
362
+ else if (isPackage) {
363
+ description = "File package.json.";
364
+ summary = description;
365
+ }
366
+ else if (MarkdownExtensions.has(extension)) {
367
+ description = firstMarkdownHeading(body) ?? firstNonEmptyLine(body);
368
+ summary = firstParagraph(body) ?? description;
369
+ }
370
+ else if (ScriptExtensions.has(extension)) {
371
+ const comment = extractLeadingComment(body);
372
+ if (comment !== (void 0)) {
373
+ purpose = comment.purpose;
374
+ }
375
+ if (comment !== (void 0) && comment.text.length > 0) {
376
+ description = firstNonEmptyLine(comment.text);
377
+ summary = collapse(comment.text);
378
+ }
379
+ else {
380
+ description = firstNonEmptyLine(body);
381
+ summary = firstParagraph(body);
382
+ }
383
+ }
384
+ else {
385
+ description = firstNonEmptyLine(body);
386
+ summary = firstParagraph(body);
387
+ }
388
+ if (front.title !== (void 0)) {
389
+ description = front.title;
390
+ }
391
+ if (front.description !== (void 0)) {
392
+ summary = front.description;
393
+ }
394
+ if (front.purpose !== (void 0)) {
395
+ purpose = front.purpose;
396
+ }
397
+ }
398
+ const resolvedDescription = normalizeField(description ?? "", MaxDescriptionLength);
399
+ const resolvedSummary = normalizeField(summary ?? description ?? "", MaxSummaryLength);
400
+ const resolvedPurpose = normalizeField(purpose ?? "", MaxPurposeLength);
401
+ const base = {
402
+ description: resolvedDescription.length > 0 ? resolvedDescription : fallback.description,
403
+ summary: resolvedSummary.length > 0 ? resolvedSummary : resolvedDescription.length > 0 ? resolvedDescription : fallback.summary,
404
+ purpose: resolvedPurpose.length > 0 ? resolvedPurpose : fallback.purpose,
405
+ };
406
+ return withAnnotation(base, annotation);
407
+ };
408
+ /**
409
+ * Derive description/summary/purpose for one directory from its direct
410
+ * children.
411
+ *
412
+ * @param relative - Root-relative POSIX path.
413
+ * @param children - Direct children in tree order.
414
+ * @param annotation - Optional host override.
415
+ * @param readme - Optional README text used for the purpose.
416
+ * @returns The three descriptive fields.
417
+ */
418
+ export const describeDirectory = (relative, children, annotation, readme) => {
419
+ const name = nameOfPath(relative);
420
+ let files = 0;
421
+ let directories = 0;
422
+ const names = [];
423
+ for (let index = 0; index < children.length; index += 1) {
424
+ const child = children[index];
425
+ if (child.type === "File") {
426
+ files += 1;
427
+ names.push(child.name);
428
+ }
429
+ else {
430
+ directories += 1;
431
+ names.push(`${child.name}/`);
432
+ }
433
+ }
434
+ names.sort((left, right) => (left < right ? -1 : left > right ? 1 : 0));
435
+ const fileWord = files === 1 ? "file" : "files";
436
+ const directoryWord = directories === 1 ? "directory" : "directories";
437
+ const description = `Directory ${name} with ${files} ${fileWord} and ${directories} ${directoryWord}.`;
438
+ const visible = names.slice(0, MaxSummaryChildren);
439
+ const hidden = names.length - visible.length;
440
+ const summary = names.length === 0 ? "Empty directory." : `Children: ${visible.join(", ")}${hidden > 0 ? ` (+${hidden} more)` : ""}.`;
441
+ let purpose = "not declared";
442
+ if (readme !== (void 0)) {
443
+ const bounded = readme.length > MaxHeadBytes ? readme.slice(0, MaxHeadBytes) : readme;
444
+ const front = parseFrontMatter(bounded);
445
+ purpose = front.purpose ?? firstParagraph(front.body) ?? firstMarkdownHeading(front.body) ?? "not declared";
446
+ }
447
+ const base = {
448
+ description: normalizeField(description, MaxDescriptionLength),
449
+ summary: normalizeField(summary, MaxSummaryLength),
450
+ purpose: normalizeField(purpose, MaxPurposeLength),
451
+ };
452
+ return withAnnotation(base, annotation);
453
+ };
454
+ /**
455
+ * Look up an annotation by exact root-relative path. Parent-directory
456
+ * annotations are not inherited: an override names exactly one node.
457
+ *
458
+ * @param annotations - Path-keyed override map.
459
+ * @param relative - Exact root-relative path.
460
+ * @returns The annotation when present.
461
+ */
462
+ export const annotationFor = (annotations, relative) => {
463
+ if (annotations === (void 0) || annotations === null) {
464
+ return undefined;
465
+ }
466
+ if (!Object.prototype.hasOwnProperty.call(annotations, relative)) {
467
+ return undefined;
468
+ }
469
+ return annotations[relative];
470
+ };
@@ -0,0 +1,60 @@
1
+ import type { SessionOperation, SessionRoot } from "../session/types.js";
2
+ import type { RootedPath } from "./types.js";
3
+ /**
4
+ * Sandbox options. Symlink following is off by default because a link is a
5
+ * capability the session was not granted.
6
+ */
7
+ export interface PathSandboxOptions {
8
+ readonly followSymlinks?: boolean;
9
+ }
10
+ export declare class PathSandbox {
11
+ private readonly roots;
12
+ private readonly byId;
13
+ private readonly followSymlinks;
14
+ private readonly defaultRootId;
15
+ constructor(roots: readonly SessionRoot[], options?: PathSandboxOptions);
16
+ /**
17
+ * All roots, in the order the session declared them.
18
+ */
19
+ listRoots(): readonly SessionRoot[];
20
+ /**
21
+ * The root used when a path does not name one explicitly.
22
+ */
23
+ defaultRoot(): SessionRoot;
24
+ /**
25
+ * Look up a root by id.
26
+ */
27
+ root(id: string): SessionRoot;
28
+ /**
29
+ * Resolve a caller path to a root, a normalized relative path and an
30
+ * absolute host path. The method does not require the target to exist; a
31
+ * write may create it. Symlink checks stop at the first missing component.
32
+ *
33
+ * @param input - Root-relative POSIX path, optionally prefixed by `rootId/`.
34
+ * @param operation - Operation used for writability checks.
35
+ * @returns Resolved path.
36
+ */
37
+ resolve(input: unknown, operation: SessionOperation): RootedPath;
38
+ /**
39
+ * Whether an absolute path is inside a root, using the platform's case
40
+ * sensitivity.
41
+ */
42
+ contains(rootPath: string, absolute: string): boolean;
43
+ /**
44
+ * Prefix/name exclusion. A bare name excludes a segment at any depth; a
45
+ * value containing `/` is a root-relative prefix.
46
+ */
47
+ isExcluded(root: SessionRoot, relative: string): boolean;
48
+ /**
49
+ * The root-relative POSIX path for an absolute path already known to be in
50
+ * the root.
51
+ */
52
+ relative(root: SessionRoot, absolute: string): string;
53
+ /**
54
+ * Re-check that a path still resolves inside its root. Used after a write
55
+ * rename and before a read, so a component swapped for a symlink between
56
+ * resolution and I/O is rejected.
57
+ */
58
+ revalidate(rooted: RootedPath): void;
59
+ private assertNoSymlinkEscape;
60
+ }