@xrkseek/harness 0.3.3 → 0.3.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 (322) hide show
  1. package/node_modules/@xrkseek/attachment/dist/error.d.ts +1 -1
  2. package/node_modules/@xrkseek/attachment/dist/error.d.ts.map +1 -1
  3. package/node_modules/@xrkseek/attachment/dist/error.js.map +1 -1
  4. package/node_modules/@xrkseek/attachment/dist/index.d.ts +4 -4
  5. package/node_modules/@xrkseek/attachment/dist/index.d.ts.map +1 -1
  6. package/node_modules/@xrkseek/attachment/dist/index.js +3 -3
  7. package/node_modules/@xrkseek/attachment/dist/index.js.map +1 -1
  8. package/node_modules/@xrkseek/attachment/dist/memory.d.ts +3 -1
  9. package/node_modules/@xrkseek/attachment/dist/memory.d.ts.map +1 -1
  10. package/node_modules/@xrkseek/attachment/dist/memory.js +71 -7
  11. package/node_modules/@xrkseek/attachment/dist/memory.js.map +1 -1
  12. package/node_modules/@xrkseek/attachment/dist/store.d.ts +14 -3
  13. package/node_modules/@xrkseek/attachment/dist/store.d.ts.map +1 -1
  14. package/node_modules/@xrkseek/attachment/dist/types.d.ts +21 -2
  15. package/node_modules/@xrkseek/attachment/dist/types.d.ts.map +1 -1
  16. package/node_modules/@xrkseek/attachment/dist/types.js +13 -0
  17. package/node_modules/@xrkseek/attachment/dist/types.js.map +1 -1
  18. package/node_modules/@xrkseek/attachment-local/dist/index.d.ts +6 -1
  19. package/node_modules/@xrkseek/attachment-local/dist/index.d.ts.map +1 -1
  20. package/node_modules/@xrkseek/attachment-local/dist/index.js +74 -3
  21. package/node_modules/@xrkseek/attachment-local/dist/index.js.map +1 -1
  22. package/node_modules/@xrkseek/attachment-local/dist/store.d.ts +9 -1
  23. package/node_modules/@xrkseek/attachment-local/dist/store.d.ts.map +1 -1
  24. package/node_modules/@xrkseek/attachment-local/dist/store.js +98 -1
  25. package/node_modules/@xrkseek/attachment-local/dist/store.js.map +1 -1
  26. package/node_modules/@xrkseek/core-agent/dist/index.d.ts +4 -2
  27. package/node_modules/@xrkseek/core-agent/dist/index.d.ts.map +1 -1
  28. package/node_modules/@xrkseek/core-agent/dist/index.js +3 -0
  29. package/node_modules/@xrkseek/core-agent/dist/index.js.map +1 -1
  30. package/node_modules/@xrkseek/core-agent-loop/dist/index.d.ts +18 -2
  31. package/node_modules/@xrkseek/core-agent-loop/dist/index.d.ts.map +1 -1
  32. package/node_modules/@xrkseek/core-agent-loop/dist/index.js +122 -39
  33. package/node_modules/@xrkseek/core-agent-loop/dist/index.js.map +1 -1
  34. package/node_modules/@xrkseek/core-session/dist/compaction.d.ts.map +1 -1
  35. package/node_modules/@xrkseek/core-session/dist/compaction.js +24 -24
  36. package/node_modules/@xrkseek/core-session/dist/compaction.js.map +1 -1
  37. package/node_modules/@xrkseek/core-session/dist/search-text.js +1 -1
  38. package/node_modules/@xrkseek/core-session/dist/search-text.js.map +1 -1
  39. package/node_modules/@xrkseek/core-system-prompt/README.md +13 -11
  40. package/node_modules/@xrkseek/core-tools/dist/guards.d.ts +7 -1
  41. package/node_modules/@xrkseek/core-tools/dist/guards.d.ts.map +1 -1
  42. package/node_modules/@xrkseek/core-tools/dist/guards.js +12 -2
  43. package/node_modules/@xrkseek/core-tools/dist/guards.js.map +1 -1
  44. package/node_modules/@xrkseek/core-tools/dist/index.d.ts +1 -1
  45. package/node_modules/@xrkseek/core-tools/dist/index.d.ts.map +1 -1
  46. package/node_modules/@xrkseek/core-tools/dist/index.js +1 -1
  47. package/node_modules/@xrkseek/core-tools/dist/index.js.map +1 -1
  48. package/node_modules/@xrkseek/core-tools/dist/pipeline.d.ts.map +1 -1
  49. package/node_modules/@xrkseek/core-tools/dist/pipeline.js +2 -0
  50. package/node_modules/@xrkseek/core-tools/dist/pipeline.js.map +1 -1
  51. package/node_modules/@xrkseek/core-tools/dist/types.d.ts +8 -0
  52. package/node_modules/@xrkseek/core-tools/dist/types.d.ts.map +1 -1
  53. package/node_modules/@xrkseek/core-tools/dist/types.js.map +1 -1
  54. package/node_modules/@xrkseek/exec-fs/dist/index.d.ts +6 -1
  55. package/node_modules/@xrkseek/exec-fs/dist/index.d.ts.map +1 -1
  56. package/node_modules/@xrkseek/exec-fs/dist/index.js +37 -15
  57. package/node_modules/@xrkseek/exec-fs/dist/index.js.map +1 -1
  58. package/node_modules/@xrkseek/exec-fs/dist/routing-prompt.d.ts +10 -0
  59. package/node_modules/@xrkseek/exec-fs/dist/routing-prompt.d.ts.map +1 -1
  60. package/node_modules/@xrkseek/exec-fs/dist/routing-prompt.js +82 -15
  61. package/node_modules/@xrkseek/exec-fs/dist/routing-prompt.js.map +1 -1
  62. package/node_modules/@xrkseek/exec-shell/dist/index.d.ts +2 -0
  63. package/node_modules/@xrkseek/exec-shell/dist/index.d.ts.map +1 -1
  64. package/node_modules/@xrkseek/exec-shell/dist/index.js +1 -5
  65. package/node_modules/@xrkseek/exec-shell/dist/index.js.map +1 -1
  66. package/node_modules/@xrkseek/exec-subprocess/README.md +10 -8
  67. package/node_modules/@xrkseek/exec-subprocess/dist/index.d.ts +15 -2
  68. package/node_modules/@xrkseek/exec-subprocess/dist/index.d.ts.map +1 -1
  69. package/node_modules/@xrkseek/exec-subprocess/dist/index.js +23 -11
  70. package/node_modules/@xrkseek/exec-subprocess/dist/index.js.map +1 -1
  71. package/node_modules/@xrkseek/exec-web/dist/format.d.ts +15 -2
  72. package/node_modules/@xrkseek/exec-web/dist/format.d.ts.map +1 -1
  73. package/node_modules/@xrkseek/exec-web/dist/format.js +39 -2
  74. package/node_modules/@xrkseek/exec-web/dist/format.js.map +1 -1
  75. package/node_modules/@xrkseek/exec-web/dist/index.d.ts +1 -1
  76. package/node_modules/@xrkseek/exec-web/dist/index.d.ts.map +1 -1
  77. package/node_modules/@xrkseek/exec-web/dist/index.js +1 -1
  78. package/node_modules/@xrkseek/exec-web/dist/index.js.map +1 -1
  79. package/node_modules/@xrkseek/llm/dist/index.d.ts +12 -0
  80. package/node_modules/@xrkseek/llm/dist/index.d.ts.map +1 -1
  81. package/node_modules/@xrkseek/llm/dist/index.js.map +1 -1
  82. package/node_modules/@xrkseek/llm-deepseek/README.md +21 -20
  83. package/node_modules/@xrkseek/llm-deepseek/dist/index.d.ts +21 -8
  84. package/node_modules/@xrkseek/llm-deepseek/dist/index.d.ts.map +1 -1
  85. package/node_modules/@xrkseek/llm-deepseek/dist/index.js +34 -10
  86. package/node_modules/@xrkseek/llm-deepseek/dist/index.js.map +1 -1
  87. package/node_modules/@xrkseek/llm-openai-compatible/dist/index.d.ts +6 -1
  88. package/node_modules/@xrkseek/llm-openai-compatible/dist/index.d.ts.map +1 -1
  89. package/node_modules/@xrkseek/llm-openai-compatible/dist/index.js +15 -7
  90. package/node_modules/@xrkseek/llm-openai-compatible/dist/index.js.map +1 -1
  91. package/node_modules/@xrkseek/llm-registry/dist/brands-openai-chat.js +1 -1
  92. package/node_modules/@xrkseek/llm-registry/dist/brands-openai-chat.js.map +1 -1
  93. package/node_modules/@xrkseek/llm-registry/dist/discover.d.ts +8 -2
  94. package/node_modules/@xrkseek/llm-registry/dist/discover.d.ts.map +1 -1
  95. package/node_modules/@xrkseek/llm-registry/dist/discover.js +61 -16
  96. package/node_modules/@xrkseek/llm-registry/dist/discover.js.map +1 -1
  97. package/node_modules/@xrkseek/llm-registry/dist/routing-adapter.d.ts.map +1 -1
  98. package/node_modules/@xrkseek/llm-registry/dist/routing-adapter.js +12 -0
  99. package/node_modules/@xrkseek/llm-registry/dist/routing-adapter.js.map +1 -1
  100. package/node_modules/@xrkseek/mcp/README.md +44 -44
  101. package/node_modules/@xrkseek/mcp/dist/client.d.ts.map +1 -1
  102. package/node_modules/@xrkseek/mcp/dist/client.js +21 -9
  103. package/node_modules/@xrkseek/mcp/dist/client.js.map +1 -1
  104. package/node_modules/@xrkseek/mcp/dist/index.d.ts +1 -0
  105. package/node_modules/@xrkseek/mcp/dist/index.d.ts.map +1 -1
  106. package/node_modules/@xrkseek/mcp/dist/index.js +1 -0
  107. package/node_modules/@xrkseek/mcp/dist/index.js.map +1 -1
  108. package/node_modules/@xrkseek/mcp/dist/list-tools.d.ts +14 -0
  109. package/node_modules/@xrkseek/mcp/dist/list-tools.d.ts.map +1 -0
  110. package/node_modules/@xrkseek/mcp/dist/list-tools.js +31 -0
  111. package/node_modules/@xrkseek/mcp/dist/list-tools.js.map +1 -0
  112. package/node_modules/@xrkseek/preset-harness/dist/preset.d.ts +7 -0
  113. package/node_modules/@xrkseek/preset-harness/dist/preset.d.ts.map +1 -1
  114. package/node_modules/@xrkseek/preset-harness/dist/preset.js +55 -14
  115. package/node_modules/@xrkseek/preset-harness/dist/preset.js.map +1 -1
  116. package/node_modules/@xrkseek/preset-harness/dist/tsconfig.tsbuildinfo +1 -1
  117. package/node_modules/@xrkseek/preset-minimal/README.md +7 -5
  118. package/node_modules/@xrkseek/preset-minimal/dist/tsconfig.tsbuildinfo +1 -1
  119. package/node_modules/@xrkseek/preset-server/dist/tsconfig.tsbuildinfo +1 -1
  120. package/node_modules/@xrkseek/protocol/dist/content.d.ts +44 -3
  121. package/node_modules/@xrkseek/protocol/dist/content.d.ts.map +1 -1
  122. package/node_modules/@xrkseek/protocol/dist/content.js +105 -6
  123. package/node_modules/@xrkseek/protocol/dist/content.js.map +1 -1
  124. package/node_modules/@xrkseek/protocol/dist/index.d.ts +4 -4
  125. package/node_modules/@xrkseek/protocol/dist/index.d.ts.map +1 -1
  126. package/node_modules/@xrkseek/protocol/dist/index.js +2 -2
  127. package/node_modules/@xrkseek/protocol/dist/index.js.map +1 -1
  128. package/node_modules/@xrkseek/protocol/dist/json-schema.d.ts +2 -2
  129. package/node_modules/@xrkseek/protocol/dist/json-schema.d.ts.map +1 -1
  130. package/node_modules/@xrkseek/protocol/dist/json-schema.js +13 -1
  131. package/node_modules/@xrkseek/protocol/dist/json-schema.js.map +1 -1
  132. package/node_modules/@xrkseek/protocol/dist/session-events.d.ts +7 -1
  133. package/node_modules/@xrkseek/protocol/dist/session-events.d.ts.map +1 -1
  134. package/node_modules/@xrkseek/protocol/dist/session-events.js.map +1 -1
  135. package/node_modules/@xrkseek/protocol/dist/tools.d.ts +5 -0
  136. package/node_modules/@xrkseek/protocol/dist/tools.d.ts.map +1 -1
  137. package/node_modules/@xrkseek/protocol/dist/tools.js +5 -0
  138. package/node_modules/@xrkseek/protocol/dist/tools.js.map +1 -1
  139. package/node_modules/@xrkseek/protocol/dist/validate.d.ts.map +1 -1
  140. package/node_modules/@xrkseek/protocol/dist/validate.js +27 -4
  141. package/node_modules/@xrkseek/protocol/dist/validate.js.map +1 -1
  142. package/node_modules/@xrkseek/server-config/dist/index.d.ts +5 -0
  143. package/node_modules/@xrkseek/server-config/dist/index.d.ts.map +1 -1
  144. package/node_modules/@xrkseek/server-config/dist/index.js +7 -0
  145. package/node_modules/@xrkseek/server-config/dist/index.js.map +1 -1
  146. package/node_modules/@xrkseek/server-face/dist/adapt/history-paginate.d.ts +1 -1
  147. package/node_modules/@xrkseek/server-face/dist/adapt/history-paginate.d.ts.map +1 -1
  148. package/node_modules/@xrkseek/server-face/dist/adapt/history-paginate.js +1 -1
  149. package/node_modules/@xrkseek/server-face/dist/adapt/history-paginate.js.map +1 -1
  150. package/node_modules/@xrkseek/server-face/dist/adapt/inbox-wire.d.ts +8 -0
  151. package/node_modules/@xrkseek/server-face/dist/adapt/inbox-wire.d.ts.map +1 -1
  152. package/node_modules/@xrkseek/server-face/dist/adapt/inbox-wire.js +8 -3
  153. package/node_modules/@xrkseek/server-face/dist/adapt/inbox-wire.js.map +1 -1
  154. package/node_modules/@xrkseek/server-face/dist/adapt/wire-event.d.ts.map +1 -1
  155. package/node_modules/@xrkseek/server-face/dist/adapt/wire-event.js +20 -4
  156. package/node_modules/@xrkseek/server-face/dist/adapt/wire-event.js.map +1 -1
  157. package/node_modules/@xrkseek/server-face/dist/context.d.ts +5 -0
  158. package/node_modules/@xrkseek/server-face/dist/context.d.ts.map +1 -1
  159. package/node_modules/@xrkseek/server-face/dist/cost-meter-pricing.d.ts.map +1 -1
  160. package/node_modules/@xrkseek/server-face/dist/cost-meter-pricing.js +1 -0
  161. package/node_modules/@xrkseek/server-face/dist/cost-meter-pricing.js.map +1 -1
  162. package/node_modules/@xrkseek/server-face/dist/dispatch.d.ts.map +1 -1
  163. package/node_modules/@xrkseek/server-face/dist/dispatch.js +5 -2
  164. package/node_modules/@xrkseek/server-face/dist/dispatch.js.map +1 -1
  165. package/node_modules/@xrkseek/server-face/dist/durable-prompt.d.ts +9 -2
  166. package/node_modules/@xrkseek/server-face/dist/durable-prompt.d.ts.map +1 -1
  167. package/node_modules/@xrkseek/server-face/dist/durable-prompt.js +82 -41
  168. package/node_modules/@xrkseek/server-face/dist/durable-prompt.js.map +1 -1
  169. package/node_modules/@xrkseek/server-face/dist/goal-store.d.ts.map +1 -1
  170. package/node_modules/@xrkseek/server-face/dist/goal-store.js +10 -3
  171. package/node_modules/@xrkseek/server-face/dist/goal-store.js.map +1 -1
  172. package/node_modules/@xrkseek/server-face/dist/handlers/catalog.d.ts.map +1 -1
  173. package/node_modules/@xrkseek/server-face/dist/handlers/catalog.js +12 -1
  174. package/node_modules/@xrkseek/server-face/dist/handlers/catalog.js.map +1 -1
  175. package/node_modules/@xrkseek/server-face/dist/handlers/goals.d.ts +5 -0
  176. package/node_modules/@xrkseek/server-face/dist/handlers/goals.d.ts.map +1 -1
  177. package/node_modules/@xrkseek/server-face/dist/handlers/goals.js +27 -1
  178. package/node_modules/@xrkseek/server-face/dist/handlers/goals.js.map +1 -1
  179. package/node_modules/@xrkseek/server-face/dist/handlers/host.d.ts +2 -0
  180. package/node_modules/@xrkseek/server-face/dist/handlers/host.d.ts.map +1 -1
  181. package/node_modules/@xrkseek/server-face/dist/handlers/host.js +3 -0
  182. package/node_modules/@xrkseek/server-face/dist/handlers/host.js.map +1 -1
  183. package/node_modules/@xrkseek/server-face/dist/handlers/remotes.d.ts +2 -0
  184. package/node_modules/@xrkseek/server-face/dist/handlers/remotes.d.ts.map +1 -1
  185. package/node_modules/@xrkseek/server-face/dist/handlers/remotes.js +14 -0
  186. package/node_modules/@xrkseek/server-face/dist/handlers/remotes.js.map +1 -1
  187. package/node_modules/@xrkseek/server-face/dist/handlers/session.d.ts.map +1 -1
  188. package/node_modules/@xrkseek/server-face/dist/handlers/session.js +73 -41
  189. package/node_modules/@xrkseek/server-face/dist/handlers/session.js.map +1 -1
  190. package/node_modules/@xrkseek/server-face/dist/handlers/subagent.d.ts.map +1 -1
  191. package/node_modules/@xrkseek/server-face/dist/handlers/subagent.js +3 -1
  192. package/node_modules/@xrkseek/server-face/dist/handlers/subagent.js.map +1 -1
  193. package/node_modules/@xrkseek/server-face/dist/host-open-in-app.d.ts +39 -0
  194. package/node_modules/@xrkseek/server-face/dist/host-open-in-app.d.ts.map +1 -0
  195. package/node_modules/@xrkseek/server-face/dist/host-open-in-app.js +292 -0
  196. package/node_modules/@xrkseek/server-face/dist/host-open-in-app.js.map +1 -0
  197. package/node_modules/@xrkseek/server-face/dist/host-open-path.d.ts +5 -1
  198. package/node_modules/@xrkseek/server-face/dist/host-open-path.d.ts.map +1 -1
  199. package/node_modules/@xrkseek/server-face/dist/host-open-path.js +8 -1
  200. package/node_modules/@xrkseek/server-face/dist/host-open-path.js.map +1 -1
  201. package/node_modules/@xrkseek/server-face/dist/host-pick-directory.d.ts +5 -1
  202. package/node_modules/@xrkseek/server-face/dist/host-pick-directory.d.ts.map +1 -1
  203. package/node_modules/@xrkseek/server-face/dist/host-pick-directory.js +8 -1
  204. package/node_modules/@xrkseek/server-face/dist/host-pick-directory.js.map +1 -1
  205. package/node_modules/@xrkseek/server-face/dist/index.d.ts +3 -1
  206. package/node_modules/@xrkseek/server-face/dist/index.d.ts.map +1 -1
  207. package/node_modules/@xrkseek/server-face/dist/index.js +3 -1
  208. package/node_modules/@xrkseek/server-face/dist/index.js.map +1 -1
  209. package/node_modules/@xrkseek/server-face/dist/model-catalog.js +1 -1
  210. package/node_modules/@xrkseek/server-face/dist/model-catalog.js.map +1 -1
  211. package/node_modules/@xrkseek/server-face/dist/projections/index.d.ts +1 -0
  212. package/node_modules/@xrkseek/server-face/dist/projections/index.d.ts.map +1 -1
  213. package/node_modules/@xrkseek/server-face/dist/projections/index.js +1 -0
  214. package/node_modules/@xrkseek/server-face/dist/projections/index.js.map +1 -1
  215. package/node_modules/@xrkseek/server-face/dist/projections/install-defaults.d.ts +6 -1
  216. package/node_modules/@xrkseek/server-face/dist/projections/install-defaults.d.ts.map +1 -1
  217. package/node_modules/@xrkseek/server-face/dist/projections/install-defaults.js +7 -2
  218. package/node_modules/@xrkseek/server-face/dist/projections/install-defaults.js.map +1 -1
  219. package/node_modules/@xrkseek/server-face/dist/projections/registry.d.ts +6 -1
  220. package/node_modules/@xrkseek/server-face/dist/projections/registry.d.ts.map +1 -1
  221. package/node_modules/@xrkseek/server-face/dist/projections/registry.js.map +1 -1
  222. package/node_modules/@xrkseek/server-face/dist/projections/snapshot-keys.d.ts +1 -1
  223. package/node_modules/@xrkseek/server-face/dist/projections/snapshot-keys.d.ts.map +1 -1
  224. package/node_modules/@xrkseek/server-face/dist/projections/snapshot-keys.js +1 -0
  225. package/node_modules/@xrkseek/server-face/dist/projections/snapshot-keys.js.map +1 -1
  226. package/node_modules/@xrkseek/server-face/dist/projections/units/file-limits.d.ts +12 -0
  227. package/node_modules/@xrkseek/server-face/dist/projections/units/file-limits.d.ts.map +1 -0
  228. package/node_modules/@xrkseek/server-face/dist/projections/units/file-limits.js +42 -0
  229. package/node_modules/@xrkseek/server-face/dist/projections/units/file-limits.js.map +1 -0
  230. package/node_modules/@xrkseek/server-face/dist/queue.d.ts +8 -0
  231. package/node_modules/@xrkseek/server-face/dist/queue.d.ts.map +1 -1
  232. package/node_modules/@xrkseek/server-face/dist/queue.js +9 -3
  233. package/node_modules/@xrkseek/server-face/dist/queue.js.map +1 -1
  234. package/node_modules/@xrkseek/server-face/dist/runtime.d.ts +5 -0
  235. package/node_modules/@xrkseek/server-face/dist/runtime.d.ts.map +1 -1
  236. package/node_modules/@xrkseek/server-face/dist/runtime.js +7 -1
  237. package/node_modules/@xrkseek/server-face/dist/runtime.js.map +1 -1
  238. package/node_modules/@xrkseek/server-face/dist/session-attachment.d.ts +8 -1
  239. package/node_modules/@xrkseek/server-face/dist/session-attachment.d.ts.map +1 -1
  240. package/node_modules/@xrkseek/server-face/dist/session-attachment.js +22 -4
  241. package/node_modules/@xrkseek/server-face/dist/session-attachment.js.map +1 -1
  242. package/node_modules/@xrkseek/server-face/dist/session-feedback.d.ts +62 -0
  243. package/node_modules/@xrkseek/server-face/dist/session-feedback.d.ts.map +1 -0
  244. package/node_modules/@xrkseek/server-face/dist/session-feedback.js +172 -0
  245. package/node_modules/@xrkseek/server-face/dist/session-feedback.js.map +1 -0
  246. package/node_modules/@xrkseek/server-face/dist/settings-schemas.d.ts.map +1 -1
  247. package/node_modules/@xrkseek/server-face/dist/settings-schemas.js +9 -1
  248. package/node_modules/@xrkseek/server-face/dist/settings-schemas.js.map +1 -1
  249. package/node_modules/@xrkseek/server-face/dist/slash.d.ts.map +1 -1
  250. package/node_modules/@xrkseek/server-face/dist/slash.js +10 -7
  251. package/node_modules/@xrkseek/server-face/dist/slash.js.map +1 -1
  252. package/node_modules/@xrkseek/server-face/dist/update-queue-rewrite.d.ts +16 -0
  253. package/node_modules/@xrkseek/server-face/dist/update-queue-rewrite.d.ts.map +1 -0
  254. package/node_modules/@xrkseek/server-face/dist/update-queue-rewrite.js +44 -0
  255. package/node_modules/@xrkseek/server-face/dist/update-queue-rewrite.js.map +1 -0
  256. package/node_modules/@xrkseek/server-face/dist/workspace-face.d.ts.map +1 -1
  257. package/node_modules/@xrkseek/server-face/dist/workspace-face.js +11 -0
  258. package/node_modules/@xrkseek/server-face/dist/workspace-face.js.map +1 -1
  259. package/node_modules/@xrkseek/server-face/dist/workspace-paths.d.ts +12 -0
  260. package/node_modules/@xrkseek/server-face/dist/workspace-paths.d.ts.map +1 -0
  261. package/node_modules/@xrkseek/server-face/dist/workspace-paths.js +16 -0
  262. package/node_modules/@xrkseek/server-face/dist/workspace-paths.js.map +1 -0
  263. package/node_modules/@xrkseek/server-face/dist/workspace-registry.d.ts.map +1 -1
  264. package/node_modules/@xrkseek/server-face/dist/workspace-registry.js +4 -3
  265. package/node_modules/@xrkseek/server-face/dist/workspace-registry.js.map +1 -1
  266. package/node_modules/@xrkseek/server-host/dist/index.d.ts +9 -0
  267. package/node_modules/@xrkseek/server-host/dist/index.d.ts.map +1 -1
  268. package/node_modules/@xrkseek/server-host/dist/index.js +19 -4
  269. package/node_modules/@xrkseek/server-host/dist/index.js.map +1 -1
  270. package/node_modules/@xrkseek/server-http/dist/dsh-compat/audit-community-client.d.ts +3 -1
  271. package/node_modules/@xrkseek/server-http/dist/dsh-compat/audit-community-client.d.ts.map +1 -1
  272. package/node_modules/@xrkseek/server-http/dist/dsh-compat/audit-community-client.js +13 -0
  273. package/node_modules/@xrkseek/server-http/dist/dsh-compat/audit-community-client.js.map +1 -1
  274. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-compat-matrix.d.ts.map +1 -1
  275. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-compat-matrix.js +7 -1
  276. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-compat-matrix.js.map +1 -1
  277. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-path-capabilities.d.ts.map +1 -1
  278. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-path-capabilities.js +2 -0
  279. package/node_modules/@xrkseek/server-http/dist/dsh-compat/dsh-path-capabilities.js.map +1 -1
  280. package/node_modules/@xrkseek/server-http/dist/dsh-compat/genui.d.ts.map +1 -1
  281. package/node_modules/@xrkseek/server-http/dist/dsh-compat/genui.js +50 -6
  282. package/node_modules/@xrkseek/server-http/dist/dsh-compat/genui.js.map +1 -1
  283. package/node_modules/@xrkseek/server-http/dist/dsh-compat/settings-defaults.d.ts.map +1 -1
  284. package/node_modules/@xrkseek/server-http/dist/dsh-compat/settings-defaults.js +3 -0
  285. package/node_modules/@xrkseek/server-http/dist/dsh-compat/settings-defaults.js.map +1 -1
  286. package/node_modules/@xrkseek/server-http/dist/fetch-dispatch.d.ts +11 -0
  287. package/node_modules/@xrkseek/server-http/dist/fetch-dispatch.d.ts.map +1 -0
  288. package/node_modules/@xrkseek/server-http/dist/fetch-dispatch.js +146 -0
  289. package/node_modules/@xrkseek/server-http/dist/fetch-dispatch.js.map +1 -0
  290. package/node_modules/@xrkseek/server-http/dist/index.d.ts +2 -0
  291. package/node_modules/@xrkseek/server-http/dist/index.d.ts.map +1 -1
  292. package/node_modules/@xrkseek/server-http/dist/index.js +9 -0
  293. package/node_modules/@xrkseek/server-http/dist/index.js.map +1 -1
  294. package/node_modules/@xrkseek/server-http/dist/sidebar/index.d.ts +1 -0
  295. package/node_modules/@xrkseek/server-http/dist/sidebar/index.d.ts.map +1 -1
  296. package/node_modules/@xrkseek/server-http/dist/sidebar/index.js +1 -0
  297. package/node_modules/@xrkseek/server-http/dist/sidebar/index.js.map +1 -1
  298. package/node_modules/@xrkseek/server-http/dist/sidebar/sidebar-adapter.d.ts.map +1 -1
  299. package/node_modules/@xrkseek/server-http/dist/sidebar/sidebar-adapter.js +4 -1
  300. package/node_modules/@xrkseek/server-http/dist/sidebar/sidebar-adapter.js.map +1 -1
  301. package/node_modules/@xrkseek/server-http/dist/sidebar/sidebar-html.d.ts.map +1 -1
  302. package/node_modules/@xrkseek/server-http/dist/sidebar/sidebar-html.js +2 -26
  303. package/node_modules/@xrkseek/server-http/dist/sidebar/sidebar-html.js.map +1 -1
  304. package/node_modules/@xrkseek/server-http/dist/sidebar/sidebar-media-type.d.ts +3 -0
  305. package/node_modules/@xrkseek/server-http/dist/sidebar/sidebar-media-type.d.ts.map +1 -0
  306. package/node_modules/@xrkseek/server-http/dist/sidebar/sidebar-media-type.js +38 -0
  307. package/node_modules/@xrkseek/server-http/dist/sidebar/sidebar-media-type.js.map +1 -0
  308. package/node_modules/@xrkseek/xrk-session-reference/README.md +50 -50
  309. package/node_modules/@xrkseek/xrk-session-reference/README.zh.md +50 -50
  310. package/node_modules/@xrkseek/xrk-session-reference/dist/prepare-face.d.ts +1 -0
  311. package/node_modules/@xrkseek/xrk-session-reference/dist/prepare-face.d.ts.map +1 -1
  312. package/node_modules/@xrkseek/xrk-session-reference/dist/prepare-face.js +23 -9
  313. package/node_modules/@xrkseek/xrk-session-reference/dist/prepare-face.js.map +1 -1
  314. package/node_modules/@xrkseek/xrk-session-reference/dist/retention.d.ts +1 -0
  315. package/node_modules/@xrkseek/xrk-session-reference/dist/retention.d.ts.map +1 -1
  316. package/node_modules/@xrkseek/xrk-session-reference/dist/retention.js +9 -0
  317. package/node_modules/@xrkseek/xrk-session-reference/dist/retention.js.map +1 -1
  318. package/node_modules/@xrkseek/xrk-session-reference/dist/spill.d.ts +39 -0
  319. package/node_modules/@xrkseek/xrk-session-reference/dist/spill.d.ts.map +1 -0
  320. package/node_modules/@xrkseek/xrk-session-reference/dist/spill.js +73 -0
  321. package/node_modules/@xrkseek/xrk-session-reference/dist/spill.js.map +1 -0
  322. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- export type AttachmentErrorCode = "IMAGE_TOO_LARGE" | "IMAGES_TOO_LARGE" | "TOO_MANY_IMAGES" | "UNSUPPORTED_IMAGE_TYPE" | "INVALID_IMAGE" | "IMAGE_TYPE_MISMATCH" | "IMAGE_TOO_MANY_PIXELS" | "IMAGE_DIMENSION_TOO_LARGE" | "NOT_FOUND" | "PIXELS_TOO_LARGE" | "INVALID_ATTACHMENT_REF" | "ATTACHMENT_CORRUPT" | "ATTACHMENT_WRITE_FAILED" | "ATTACHMENT_NOT_FOUND" | "ATTACHMENT_READ_FAILED" | "ATTACHMENT_PROJECTION_UNSUPPORTED";
1
+ export type AttachmentErrorCode = "IMAGE_TOO_LARGE" | "IMAGES_TOO_LARGE" | "TOO_MANY_IMAGES" | "UNSUPPORTED_IMAGE_TYPE" | "INVALID_IMAGE" | "IMAGE_TYPE_MISMATCH" | "IMAGE_TOO_MANY_PIXELS" | "IMAGE_DIMENSION_TOO_LARGE" | "FILE_TOO_LARGE" | "FILES_TOO_LARGE" | "TOO_MANY_FILES" | "NOT_FOUND" | "PIXELS_TOO_LARGE" | "INVALID_ATTACHMENT_REF" | "ATTACHMENT_CORRUPT" | "ATTACHMENT_WRITE_FAILED" | "ATTACHMENT_NOT_FOUND" | "ATTACHMENT_READ_FAILED" | "ATTACHMENT_PROJECTION_UNSUPPORTED";
2
2
  export declare class AttachmentError extends Error {
3
3
  readonly code: AttachmentErrorCode;
4
4
  constructor(message: string, code: AttachmentErrorCode, options?: ErrorOptions);
@@ -1 +1 @@
1
- {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,mBAAmB,GAC3B,iBAAiB,GACjB,kBAAkB,GAClB,iBAAiB,GACjB,wBAAwB,GACxB,eAAe,GACf,qBAAqB,GACrB,uBAAuB,GACvB,2BAA2B,GAC3B,WAAW,GACX,kBAAkB,GAClB,wBAAwB,GACxB,oBAAoB,GACpB,yBAAyB,GACzB,sBAAsB,GACtB,wBAAwB,GACxB,mCAAmC,CAAC;AAcxC,qBAAa,eAAgB,SAAQ,KAAK;IACxC,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;gBAEjC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,mBAAmB,EACzB,OAAO,CAAC,EAAE,YAAY;CAMzB;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,eAAe,CAEtE;AAED,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,OAAO,GACX,GAAG,IAAI,eAAe,CAKxB"}
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,mBAAmB,GAC3B,iBAAiB,GACjB,kBAAkB,GAClB,iBAAiB,GACjB,wBAAwB,GACxB,eAAe,GACf,qBAAqB,GACrB,uBAAuB,GACvB,2BAA2B,GAC3B,gBAAgB,GAChB,iBAAiB,GACjB,gBAAgB,GAChB,WAAW,GACX,kBAAkB,GAClB,wBAAwB,GACxB,oBAAoB,GACpB,yBAAyB,GACzB,sBAAsB,GACtB,wBAAwB,GACxB,mCAAmC,CAAC;AAcxC,qBAAa,eAAgB,SAAQ,KAAK;IACxC,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;gBAEjC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,mBAAmB,EACzB,OAAO,CAAC,EAAE,YAAY;CAMzB;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,eAAe,CAEtE;AAED,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,OAAO,GACX,GAAG,IAAI,eAAe,CAKxB"}
@@ -1 +1 @@
1
- {"version":3,"file":"error.js","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"AAkBA,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAS;IAC5C,iBAAiB;IACjB,kBAAkB;IAClB,wBAAwB;IACxB,eAAe;IACf,qBAAqB;IACrB,iBAAiB;IACjB,uBAAuB;IACvB,2BAA2B;IAC3B,kBAAkB;CACnB,CAAC,CAAC;AAEH,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAC/B,IAAI,CAAsB;IACnC,YACE,OAAe,EACf,IAAyB,EACzB,OAAsB;QAEtB,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED,MAAM,UAAU,iBAAiB,CAAC,GAAY;IAC5C,OAAO,GAAG,YAAY,eAAe,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,GAAY;IAEZ,OAAO,CACL,GAAG,YAAY,eAAe;QAC9B,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CACpC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"AAqBA,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAS;IAC5C,iBAAiB;IACjB,kBAAkB;IAClB,wBAAwB;IACxB,eAAe;IACf,qBAAqB;IACrB,iBAAiB;IACjB,uBAAuB;IACvB,2BAA2B;IAC3B,kBAAkB;CACnB,CAAC,CAAC;AAEH,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAC/B,IAAI,CAAsB;IACnC,YACE,OAAe,EACf,IAAyB,EACzB,OAAsB;QAEtB,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED,MAAM,UAAU,iBAAiB,CAAC,GAAY;IAC5C,OAAO,GAAG,YAAY,eAAe,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,GAAY;IAEZ,OAAO,CACL,GAAG,YAAY,eAAe;QAC9B,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CACpC,CAAC;AACJ,CAAC"}
@@ -1,9 +1,9 @@
1
1
  /**
2
- * @xrkseek/attachment — durable image blob store (DSH-aligned).
3
- * Session events hold ImageAttachmentRef only; bytes live here.
2
+ * @xrkseek/attachment — durable image + generic-file blob store (DSH-aligned).
3
+ * Session events hold ImageAttachmentRef / FileAttachmentRef only; bytes live here.
4
4
  */
5
- export type { ImageAttachmentLimits, ImageAttachmentRef, ImageMediaType, ImageRequestPolicy, RequestImageAttachment, SaveImageAttachment, StoredImageAttachment, } from "./types.js";
6
- export { DEFAULT_IMAGE_LIMITS, IMAGE_MEDIA_TYPES, } from "./types.js";
5
+ export type { FileAttachmentLimits, FileAttachmentRef, ImageAttachmentLimits, ImageAttachmentRef, ImageMediaType, ImageRequestPolicy, RequestImageAttachment, SaveFileAttachment, SaveImageAttachment, StoredFileAttachment, StoredImageAttachment, } from "./types.js";
6
+ export { DEFAULT_FILE_LIMITS, DEFAULT_IMAGE_LIMITS, IMAGE_MEDIA_TYPES, sanitizeAttachmentFileName, } from "./types.js";
7
7
  export { AttachmentError, isAttachmentError, isImageAdmissionError, type AttachmentErrorCode, } from "./error.js";
8
8
  export type { AttachmentStore } from "./store.js";
9
9
  export { createMemoryAttachmentStore, type CreateMemoryAttachmentStoreOptions, } from "./memory.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EACV,qBAAqB,EACrB,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,KAAK,mBAAmB,GACzB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EACL,2BAA2B,EAC3B,KAAK,kCAAkC,GACxC,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EACL,+BAA+B,EAC/B,iCAAiC,EACjC,oBAAoB,GACrB,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EACV,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,sBAAsB,EACtB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,KAAK,mBAAmB,GACzB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EACL,2BAA2B,EAC3B,KAAK,kCAAkC,GACxC,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EACL,+BAA+B,EAC/B,iCAAiC,EACjC,oBAAoB,GACrB,MAAM,0BAA0B,CAAC"}
@@ -1,8 +1,8 @@
1
1
  /**
2
- * @xrkseek/attachment — durable image blob store (DSH-aligned).
3
- * Session events hold ImageAttachmentRef only; bytes live here.
2
+ * @xrkseek/attachment — durable image + generic-file blob store (DSH-aligned).
3
+ * Session events hold ImageAttachmentRef / FileAttachmentRef only; bytes live here.
4
4
  */
5
- export { DEFAULT_IMAGE_LIMITS, IMAGE_MEDIA_TYPES, } from "./types.js";
5
+ export { DEFAULT_FILE_LIMITS, DEFAULT_IMAGE_LIMITS, IMAGE_MEDIA_TYPES, sanitizeAttachmentFileName, } from "./types.js";
6
6
  export { AttachmentError, isAttachmentError, isImageAdmissionError, } from "./error.js";
7
7
  export { createMemoryAttachmentStore, } from "./memory.js";
8
8
  export { sniffImageMediaType, readImageSize } from "./image-meta.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,OAAO,EACL,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,qBAAqB,GAEtB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,2BAA2B,GAE5B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EACL,+BAA+B,EAC/B,iCAAiC,EACjC,oBAAoB,GACrB,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAeH,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,qBAAqB,GAEtB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,2BAA2B,GAE5B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EACL,+BAA+B,EAC/B,iCAAiC,EACjC,oBAAoB,GACrB,MAAM,0BAA0B,CAAC"}
@@ -1,10 +1,12 @@
1
1
  import type { AttachmentStore } from "./store.js";
2
- import { type ImageAttachmentLimits } from "./types.js";
2
+ import { type FileAttachmentLimits, type ImageAttachmentLimits } from "./types.js";
3
3
  export interface CreateMemoryAttachmentStoreOptions {
4
4
  readonly imageLimits?: Partial<ImageAttachmentLimits>;
5
+ readonly fileLimits?: Partial<FileAttachmentLimits>;
5
6
  }
6
7
  /**
7
8
  * In-memory content-addressed attachment store (tests + Host default).
9
+ * Images and generic files share digest space but keep typed refs.
8
10
  */
9
11
  export declare function createMemoryAttachmentStore(options?: CreateMemoryAttachmentStoreOptions): AttachmentStore;
10
12
  //# sourceMappingURL=memory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAEL,KAAK,qBAAqB,EAM3B,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;CACvD;AAYD;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,CAAC,EAAE,kCAAkC,GAC3C,eAAe,CAqHjB"}
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAIL,KAAK,oBAAoB,EAEzB,KAAK,qBAAqB,EAQ3B,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACtD,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;CACrD;AAqBD;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,CAAC,EAAE,kCAAkC,GAC3C,eAAe,CAmMjB"}
@@ -1,20 +1,29 @@
1
1
  import { attachmentIdForBytes } from "./digest.js";
2
2
  import { AttachmentError } from "./error.js";
3
3
  import { readImageSize, sniffImageMediaType } from "./image-meta.js";
4
- import { DEFAULT_IMAGE_LIMITS, } from "./types.js";
5
- function resolveLimits(partial) {
4
+ import { DEFAULT_FILE_LIMITS, DEFAULT_IMAGE_LIMITS, sanitizeAttachmentFileName, } from "./types.js";
5
+ function resolveImageLimits(partial) {
6
6
  return {
7
7
  ...DEFAULT_IMAGE_LIMITS,
8
8
  ...partial,
9
9
  mediaTypes: partial?.mediaTypes ?? DEFAULT_IMAGE_LIMITS.mediaTypes,
10
10
  };
11
11
  }
12
+ function resolveFileLimits(partial) {
13
+ return {
14
+ ...DEFAULT_FILE_LIMITS,
15
+ ...partial,
16
+ };
17
+ }
12
18
  /**
13
19
  * In-memory content-addressed attachment store (tests + Host default).
20
+ * Images and generic files share digest space but keep typed refs.
14
21
  */
15
22
  export function createMemoryAttachmentStore(options) {
16
- const imageLimits = resolveLimits(options?.imageLimits);
17
- const objects = new Map();
23
+ const imageLimits = resolveImageLimits(options?.imageLimits);
24
+ const fileLimits = resolveFileLimits(options?.fileLimits);
25
+ const images = new Map();
26
+ const files = new Map();
18
27
  async function validateImage(input) {
19
28
  if (!imageLimits.mediaTypes.includes(input.mediaType)) {
20
29
  throw new AttachmentError(`Image type ${input.mediaType} is not accepted.`, "UNSUPPORTED_IMAGE_TYPE");
@@ -38,7 +47,7 @@ export function createMemoryAttachmentStore(options) {
38
47
  await validateImage(input);
39
48
  const size = readImageSize(input.data, input.mediaType);
40
49
  const attachmentId = attachmentIdForBytes(input.data);
41
- const existing = objects.get(attachmentId);
50
+ const existing = images.get(attachmentId);
42
51
  if (existing)
43
52
  return existing.ref;
44
53
  const ref = {
@@ -49,7 +58,7 @@ export function createMemoryAttachmentStore(options) {
49
58
  height: size.height,
50
59
  ...(input.name !== undefined ? { name: input.name } : {}),
51
60
  };
52
- objects.set(attachmentId, {
61
+ images.set(attachmentId, {
53
62
  ref,
54
63
  data: Uint8Array.from(input.data),
55
64
  });
@@ -71,7 +80,7 @@ export function createMemoryAttachmentStore(options) {
71
80
  return refs;
72
81
  }
73
82
  async function readImage(attachmentId) {
74
- const hit = objects.get(attachmentId);
83
+ const hit = images.get(attachmentId);
75
84
  if (!hit) {
76
85
  throw new AttachmentError(`Attachment not found: ${attachmentId}`, "NOT_FOUND");
77
86
  }
@@ -82,13 +91,68 @@ export function createMemoryAttachmentStore(options) {
82
91
  void _policy;
83
92
  throw new AttachmentError("The mounted attachment provider cannot derive model-request images.", "ATTACHMENT_PROJECTION_UNSUPPORTED");
84
93
  }
94
+ async function validateFile(input) {
95
+ if (input.data.byteLength === 0) {
96
+ throw new AttachmentError("File bytes must be non-empty.", "INVALID_ATTACHMENT_REF");
97
+ }
98
+ if (input.data.byteLength > fileLimits.maxFileBytes) {
99
+ throw new AttachmentError("File exceeds the configured byte limit.", "FILE_TOO_LARGE");
100
+ }
101
+ }
102
+ async function saveFile(input) {
103
+ await validateFile(input);
104
+ const attachmentId = attachmentIdForBytes(input.data);
105
+ const existing = files.get(attachmentId);
106
+ if (existing)
107
+ return existing.ref;
108
+ const ref = {
109
+ attachmentId,
110
+ name: sanitizeAttachmentFileName(input.name),
111
+ bytes: input.data.byteLength,
112
+ ...(input.mediaType !== undefined && input.mediaType.length > 0
113
+ ? { mediaType: input.mediaType }
114
+ : {}),
115
+ };
116
+ files.set(attachmentId, {
117
+ ref,
118
+ data: Uint8Array.from(input.data),
119
+ });
120
+ return ref;
121
+ }
122
+ async function saveFiles(inputs) {
123
+ if (inputs.length > fileLimits.maxFilesPerMessage) {
124
+ throw new AttachmentError("File batch exceeds the configured file-count limit.", "TOO_MANY_FILES");
125
+ }
126
+ const totalBytes = inputs.reduce((sum, x) => sum + x.data.byteLength, 0);
127
+ if (totalBytes > fileLimits.maxMessageFileBytes) {
128
+ throw new AttachmentError("File batch exceeds the configured aggregate file-byte limit.", "FILES_TOO_LARGE");
129
+ }
130
+ for (const input of inputs)
131
+ await validateFile(input);
132
+ const refs = [];
133
+ for (const input of inputs)
134
+ refs.push(await saveFile(input));
135
+ return refs;
136
+ }
137
+ async function readFile(attachmentId) {
138
+ const hit = files.get(attachmentId);
139
+ if (!hit) {
140
+ throw new AttachmentError(`Attachment not found: ${attachmentId}`, "NOT_FOUND");
141
+ }
142
+ return hit;
143
+ }
85
144
  return {
86
145
  imageLimits,
146
+ fileLimits,
87
147
  validateImage,
88
148
  saveImages,
89
149
  saveImage,
90
150
  readImage,
91
151
  readImageRequest,
152
+ validateFile,
153
+ saveFiles,
154
+ saveFile,
155
+ readFile,
92
156
  };
93
157
  }
94
158
  //# sourceMappingURL=memory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"memory.js","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAErE,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,0BAA0B,GAW3B,MAAM,YAAY,CAAC;AAOpB,SAAS,kBAAkB,CACzB,OAAwC;IAExC,OAAO;QACL,GAAG,oBAAoB;QACvB,GAAG,OAAO;QACV,UAAU,EAAE,OAAO,EAAE,UAAU,IAAI,oBAAoB,CAAC,UAAU;KACnE,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CACxB,OAAuC;IAEvC,OAAO;QACL,GAAG,mBAAmB;QACtB,GAAG,OAAO;KACX,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,2BAA2B,CACzC,OAA4C;IAE5C,MAAM,WAAW,GAAG,kBAAkB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC7D,MAAM,UAAU,GAAG,iBAAiB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,IAAI,GAAG,EAAiC,CAAC;IACxD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAgC,CAAC;IAEtD,KAAK,UAAU,aAAa,CAAC,KAA0B;QACrD,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;YACtD,MAAM,IAAI,eAAe,CACvB,cAAc,KAAK,CAAC,SAAS,mBAAmB,EAChD,wBAAwB,CACzB,CAAC;QACJ,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,aAAa,EAAE,CAAC;YACtD,MAAM,IAAI,eAAe,CACvB,0CAA0C,EAC1C,iBAAiB,CAClB,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAG,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,KAAK,CAAC,SAAS,EAAE,CAAC;YAC5C,MAAM,IAAI,eAAe,CACvB,2DAA2D,EAC3D,eAAe,CAChB,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/C,MAAM,IAAI,eAAe,CACvB,4CAA4C,EAC5C,eAAe,CAChB,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,cAAc,EAAE,CAAC;YAC1D,MAAM,IAAI,eAAe,CACvB,2CAA2C,EAC3C,kBAAkB,CACnB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,UAAU,SAAS,CACtB,KAA0B;QAE1B,MAAM,aAAa,CAAC,KAAK,CAAC,CAAC;QAC3B,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAE,CAAC;QACzD,MAAM,YAAY,GAAG,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC1C,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC,GAAG,CAAC;QAElC,MAAM,GAAG,GAAuB;YAC9B,YAAY;YACZ,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU;YAC5B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1D,CAAC;QACF,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE;YACvB,GAAG;YACH,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;SAClC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC;IACb,CAAC;IAED,KAAK,UAAU,UAAU,CACvB,MAAsC;QAEtC,IAAI,MAAM,CAAC,MAAM,GAAG,WAAW,CAAC,mBAAmB,EAAE,CAAC;YACpD,MAAM,IAAI,eAAe,CACvB,uDAAuD,EACvD,iBAAiB,CAClB,CAAC;QACJ,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QACzE,IAAI,UAAU,GAAG,WAAW,CAAC,oBAAoB,EAAE,CAAC;YAClD,MAAM,IAAI,eAAe,CACvB,gEAAgE,EAChE,kBAAkB,CACnB,CAAC;QACJ,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,MAAM;YAAE,MAAM,aAAa,CAAC,KAAK,CAAC,CAAC;QACvD,MAAM,IAAI,GAAyB,EAAE,CAAC;QACtC,KAAK,MAAM,KAAK,IAAI,MAAM;YAAE,IAAI,CAAC,IAAI,CAAC,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,UAAU,SAAS,CAAC,YAAoB;QAC3C,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACrC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,eAAe,CACvB,yBAAyB,YAAY,EAAE,EACvC,WAAW,CACZ,CAAC;QACJ,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,KAAK,UAAU,gBAAgB,CAC7B,GAAuB,EACvB,OAA2B,EAC3B,OAAqB;QAErB,KAAK,GAAG,CAAC;QACT,KAAK,OAAO,CAAC;QACb,MAAM,IAAI,eAAe,CACvB,qEAAqE,EACrE,mCAAmC,CACpC,CAAC;IACJ,CAAC;IAED,KAAK,UAAU,YAAY,CAAC,KAAyB;QACnD,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,eAAe,CACvB,+BAA+B,EAC/B,wBAAwB,CACzB,CAAC;QACJ,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,YAAY,EAAE,CAAC;YACpD,MAAM,IAAI,eAAe,CACvB,yCAAyC,EACzC,gBAAgB,CACjB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,UAAU,QAAQ,CACrB,KAAyB;QAEzB,MAAM,YAAY,CAAC,KAAK,CAAC,CAAC;QAC1B,MAAM,YAAY,GAAG,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACzC,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC,GAAG,CAAC;QAElC,MAAM,GAAG,GAAsB;YAC7B,YAAY;YACZ,IAAI,EAAE,0BAA0B,CAAC,KAAK,CAAC,IAAI,CAAC;YAC5C,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU;YAC5B,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;gBAC7D,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE;gBAChC,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;QACF,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE;YACtB,GAAG;YACH,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;SAClC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC;IACb,CAAC;IAED,KAAK,UAAU,SAAS,CACtB,MAAqC;QAErC,IAAI,MAAM,CAAC,MAAM,GAAG,UAAU,CAAC,kBAAkB,EAAE,CAAC;YAClD,MAAM,IAAI,eAAe,CACvB,qDAAqD,EACrD,gBAAgB,CACjB,CAAC;QACJ,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QACzE,IAAI,UAAU,GAAG,UAAU,CAAC,mBAAmB,EAAE,CAAC;YAChD,MAAM,IAAI,eAAe,CACvB,8DAA8D,EAC9D,iBAAiB,CAClB,CAAC;QACJ,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,MAAM;YAAE,MAAM,YAAY,CAAC,KAAK,CAAC,CAAC;QACtD,MAAM,IAAI,GAAwB,EAAE,CAAC;QACrC,KAAK,MAAM,KAAK,IAAI,MAAM;YAAE,IAAI,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,UAAU,QAAQ,CAAC,YAAoB;QAC1C,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACpC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,eAAe,CACvB,yBAAyB,YAAY,EAAE,EACvC,WAAW,CACZ,CAAC;QACJ,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,OAAO;QACL,WAAW;QACX,UAAU;QACV,aAAa;QACb,UAAU;QACV,SAAS;QACT,SAAS;QACT,gBAAgB;QAChB,YAAY;QACZ,SAAS;QACT,QAAQ;QACR,QAAQ;KACT,CAAC;AACJ,CAAC"}
@@ -1,10 +1,11 @@
1
- import type { ImageAttachmentLimits, ImageAttachmentRef, ImageRequestPolicy, RequestImageAttachment, SaveImageAttachment, StoredImageAttachment } from "./types.js";
1
+ import type { FileAttachmentLimits, FileAttachmentRef, ImageAttachmentLimits, ImageAttachmentRef, ImageRequestPolicy, RequestImageAttachment, SaveFileAttachment, SaveImageAttachment, StoredFileAttachment, StoredImageAttachment } from "./types.js";
2
2
  /**
3
- * Durable image blob seam. Implementations validate before publishing a ref.
4
- * Session events must never embed raw bytes — only ImageAttachmentRef.
3
+ * Durable blob seam. Implementations validate before publishing a ref.
4
+ * Session events must never embed raw bytes — only ImageAttachmentRef / FileAttachmentRef.
5
5
  */
6
6
  export interface AttachmentStore {
7
7
  readonly imageLimits: ImageAttachmentLimits;
8
+ readonly fileLimits: FileAttachmentLimits;
8
9
  /** Validate without persisting. */
9
10
  validateImage(input: SaveImageAttachment): Promise<void>;
10
11
  /** Validate all, then commit each; fail before any write on validation error. */
@@ -16,5 +17,15 @@ export interface AttachmentStore {
16
17
  * memory store rejects.
17
18
  */
18
19
  readImageRequest?(ref: ImageAttachmentRef, policy: ImageRequestPolicy, signal?: AbortSignal): Promise<RequestImageAttachment>;
20
+ validateFile(input: SaveFileAttachment): Promise<void>;
21
+ saveFiles(inputs: readonly SaveFileAttachment[]): Promise<readonly FileAttachmentRef[]>;
22
+ saveFile(input: SaveFileAttachment): Promise<FileAttachmentRef>;
23
+ readFile(attachmentId: string): Promise<StoredFileAttachment>;
24
+ /**
25
+ * Absolute host path of the verbatim stored file for tool/LLM read-on-demand.
26
+ * Memory / non-host backends omit or return undefined.
27
+ * @throws AttachmentError when the durable reference is invalid.
28
+ */
29
+ fileHostPath?(ref: FileAttachmentRef): string | undefined;
19
30
  }
20
31
  //# sourceMappingURL=store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAEpB;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,WAAW,EAAE,qBAAqB,CAAC;IAC5C,mCAAmC;IACnC,aAAa,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,iFAAiF;IACjF,UAAU,CACR,MAAM,EAAE,SAAS,mBAAmB,EAAE,GACrC,OAAO,CAAC,SAAS,kBAAkB,EAAE,CAAC,CAAC;IAC1C,SAAS,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACnE,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAChE;;;OAGG;IACH,gBAAgB,CAAC,CACf,GAAG,EAAE,kBAAkB,EACvB,MAAM,EAAE,kBAAkB,EAC1B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,sBAAsB,CAAC,CAAC;CACpC"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAEpB;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,WAAW,EAAE,qBAAqB,CAAC;IAC5C,QAAQ,CAAC,UAAU,EAAE,oBAAoB,CAAC;IAC1C,mCAAmC;IACnC,aAAa,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,iFAAiF;IACjF,UAAU,CACR,MAAM,EAAE,SAAS,mBAAmB,EAAE,GACrC,OAAO,CAAC,SAAS,kBAAkB,EAAE,CAAC,CAAC;IAC1C,SAAS,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACnE,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAChE;;;OAGG;IACH,gBAAgB,CAAC,CACf,GAAG,EAAE,kBAAkB,EACvB,MAAM,EAAE,kBAAkB,EAC1B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAEnC,YAAY,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,SAAS,CACP,MAAM,EAAE,SAAS,kBAAkB,EAAE,GACpC,OAAO,CAAC,SAAS,iBAAiB,EAAE,CAAC,CAAC;IACzC,QAAQ,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAChE,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC9D;;;;OAIG;IACH,YAAY,CAAC,CAAC,GAAG,EAAE,iBAAiB,GAAG,MAAM,GAAG,SAAS,CAAC;CAC3D"}
@@ -1,5 +1,5 @@
1
- import type { ImageAttachmentRef, ImageMediaType } from "@xrkseek/protocol";
2
- export type { ImageAttachmentRef, ImageMediaType };
1
+ import type { FileAttachmentRef, ImageAttachmentRef, ImageMediaType } from "@xrkseek/protocol";
2
+ export type { FileAttachmentRef, ImageAttachmentRef, ImageMediaType };
3
3
  export declare const IMAGE_MEDIA_TYPES: readonly ["image/png", "image/jpeg", "image/webp", "image/gif"];
4
4
  export interface ImageAttachmentLimits {
5
5
  readonly maxImageBytes: number;
@@ -11,15 +11,32 @@ export interface ImageAttachmentLimits {
11
11
  }
12
12
  /** Defaults aligned with common DSH local attachment limits. */
13
13
  export declare const DEFAULT_IMAGE_LIMITS: ImageAttachmentLimits;
14
+ /** Generic-file admission limits (byte-for-byte store; no media sniff). */
15
+ export interface FileAttachmentLimits {
16
+ readonly maxFileBytes: number;
17
+ readonly maxFilesPerMessage: number;
18
+ readonly maxMessageFileBytes: number;
19
+ }
20
+ export declare const DEFAULT_FILE_LIMITS: FileAttachmentLimits;
14
21
  export interface SaveImageAttachment {
15
22
  readonly data: Uint8Array;
16
23
  readonly mediaType: ImageMediaType;
17
24
  readonly name?: string;
18
25
  }
26
+ export interface SaveFileAttachment {
27
+ readonly data: Uint8Array;
28
+ /** Display leaf name; never interpreted as a path. */
29
+ readonly name?: string;
30
+ readonly mediaType?: string;
31
+ }
19
32
  export interface StoredImageAttachment {
20
33
  readonly ref: ImageAttachmentRef;
21
34
  readonly data: Uint8Array;
22
35
  }
36
+ export interface StoredFileAttachment {
37
+ readonly ref: FileAttachmentRef;
38
+ readonly data: Uint8Array;
39
+ }
23
40
  /** Route-owned request-image budget (DSH rc.2). */
24
41
  export interface ImageRequestPolicy {
25
42
  readonly maxPixels: number;
@@ -38,4 +55,6 @@ export interface RequestImageAttachment {
38
55
  readonly space: "srgb";
39
56
  readonly hasAlpha: boolean;
40
57
  }
58
+ /** Sanitize a browser/provider filename to a path-free leaf. */
59
+ export declare function sanitizeAttachmentFileName(name: string | undefined, fallback?: string): string;
41
60
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,cAAc,EACf,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,CAAC;AAEnD,eAAO,MAAM,iBAAiB,iEAKgB,CAAC;AAE/C,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,SAAS,cAAc,EAAE,CAAC;CAChD;AAED,gEAAgE;AAChE,eAAO,MAAM,oBAAoB,EAAE,qBAMlC,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CAC3B;AAED,mDAAmD;AACnD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,wEAAwE;AACxE,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;IACxC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACf,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,cAAc,EAAE,CAAC;AAEtE,eAAO,MAAM,iBAAiB,iEAKgB,CAAC;AAE/C,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,SAAS,cAAc,EAAE,CAAC;CAChD;AAED,gEAAgE;AAChE,eAAO,MAAM,oBAAoB,EAAE,qBAMlC,CAAC;AAEF,2EAA2E;AAC3E,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;CACtC;AAED,eAAO,MAAM,mBAAmB,EAAE,oBAIjC,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,sDAAsD;IACtD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,GAAG,EAAE,kBAAkB,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,GAAG,EAAE,iBAAiB,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CAC3B;AAED,mDAAmD;AACnD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,wEAAwE;AACxE,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAC;IACxC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAED,gEAAgE;AAChE,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,QAAQ,SAAS,GAChB,MAAM,CAMR"}
@@ -12,4 +12,17 @@ export const DEFAULT_IMAGE_LIMITS = {
12
12
  maxImagePixels: 40_000_000,
13
13
  mediaTypes: IMAGE_MEDIA_TYPES,
14
14
  };
15
+ export const DEFAULT_FILE_LIMITS = {
16
+ maxFileBytes: 20 * 1024 * 1024,
17
+ maxFilesPerMessage: 20,
18
+ maxMessageFileBytes: 40 * 1024 * 1024,
19
+ };
20
+ /** Sanitize a browser/provider filename to a path-free leaf. */
21
+ export function sanitizeAttachmentFileName(name, fallback = "file") {
22
+ const raw = (name ?? "").trim() || fallback;
23
+ const leaf = raw.replaceAll("\\", "/").split("/").pop() ?? fallback;
24
+ /* eslint-disable-next-line no-control-regex -- strip C0 controls from filenames */
25
+ const cleaned = leaf.replace(/[\u0000-\u001f<>:"|?*]/g, "_").trim() || fallback;
26
+ return cleaned.slice(0, 255);
27
+ }
15
28
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,WAAW;IACX,YAAY;IACZ,YAAY;IACZ,WAAW;CACiC,CAAC;AAW/C,gEAAgE;AAChE,MAAM,CAAC,MAAM,oBAAoB,GAA0B;IACzD,aAAa,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;IAC9B,mBAAmB,EAAE,EAAE;IACvB,oBAAoB,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;IACtC,cAAc,EAAE,UAAU;IAC1B,UAAU,EAAE,iBAAiB;CAC9B,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,WAAW;IACX,YAAY;IACZ,YAAY;IACZ,WAAW;CACiC,CAAC;AAW/C,gEAAgE;AAChE,MAAM,CAAC,MAAM,oBAAoB,GAA0B;IACzD,aAAa,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;IAC9B,mBAAmB,EAAE,EAAE;IACvB,oBAAoB,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;IACtC,cAAc,EAAE,UAAU;IAC1B,UAAU,EAAE,iBAAiB;CAC9B,CAAC;AASF,MAAM,CAAC,MAAM,mBAAmB,GAAyB;IACvD,YAAY,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;IAC9B,kBAAkB,EAAE,EAAE;IACtB,mBAAmB,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;CACtC,CAAC;AA6CF,gEAAgE;AAChE,MAAM,UAAU,0BAA0B,CACxC,IAAwB,EACxB,QAAQ,GAAG,MAAM;IAEjB,MAAM,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,QAAQ,CAAC;IAC5C,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,QAAQ,CAAC;IACpE,mFAAmF;IACnF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,QAAQ,CAAC;IAChF,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC/B,CAAC"}
@@ -1,9 +1,11 @@
1
1
  import { type AttachmentStore } from "@xrkseek/attachment";
2
2
  export { canPassThroughNormalization, normalizeImage } from "./normalization.js";
3
3
  export type { NormalizedImage, NormalizationPolicy } from "./normalization.js";
4
- export { commitPreparedImageFile, prepareImageFile, readImageFile, validateImageFile, } from "./store.js";
4
+ export { commitPreparedImageFile, prepareImageFile, readImageFile, storedFilePath, validateImageFile, } from "./store.js";
5
5
  export type { PreparedImageFile } from "./store.js";
6
6
  export { readRequestImageFile, requestImageDimensions, requestImageVariantId, REQUEST_IMAGE_TRANSFORM_VERSION, } from "./request-image.js";
7
+ /** Absolute `{XRK_HOME}/attachments/v1` root used by the local store. */
8
+ export declare function resolveLocalAttachmentsRoot(xrkHome?: string): string;
7
9
  export declare const DEFAULT_MAX_IMAGE_BYTES: number;
8
10
  export declare const DEFAULT_MAX_IMAGES_PER_MESSAGE = 20;
9
11
  export declare const DEFAULT_MAX_MESSAGE_IMAGE_BYTES: number;
@@ -24,6 +26,9 @@ export interface CreateLocalAttachmentStoreOptions {
24
26
  readonly normalizedImageMaxDimension?: number;
25
27
  readonly normalizedImageMaxBytes?: number;
26
28
  readonly imageCompressionConcurrency?: number;
29
+ readonly maxFileBytes?: number;
30
+ readonly maxFilesPerMessage?: number;
31
+ readonly maxMessageFileBytes?: number;
27
32
  }
28
33
  /**
29
34
  * Disk-backed attachment store with sharp normalization + request-image cache.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAEL,KAAK,eAAe,EAOrB,MAAM,qBAAqB,CAAC;AAY7B,OAAO,EAAE,2BAA2B,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACjF,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,aAAa,EACb,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,+BAA+B,GAChC,MAAM,oBAAoB,CAAC;AAE5B,eAAO,MAAM,uBAAuB,QAAmB,CAAC;AACxD,eAAO,MAAM,8BAA8B,KAAK,CAAC;AACjD,eAAO,MAAM,+BAA+B,QAAoB,CAAC;AACjE,eAAO,MAAM,wBAAwB,WAAa,CAAC;AACnD,eAAO,MAAM,2BAA2B,OAAO,CAAC;AAChD,eAAO,MAAM,sCAAsC,OAAO,CAAC;AAC3D,eAAO,MAAM,kCAAkC,QAAkB,CAAC;AAClE,eAAO,MAAM,qCAAqC,IAAI,CAAC;AACvD,eAAO,MAAM,iCAAiC,IAAI,CAAC;AAEnD,MAAM,WAAW,iCAAiC;IAChD,yDAAyD;IACzD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,2BAA2B,CAAC,EAAE,MAAM,CAAC;IAC9C,QAAQ,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAC1C,QAAQ,CAAC,2BAA2B,CAAC,EAAE,MAAM,CAAC;CAC/C;AAoFD;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,GAAE,iCAAsC,GAC9C,eAAe,CAqJjB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAGL,KAAK,eAAe,EAWrB,MAAM,qBAAqB,CAAC;AAe7B,OAAO,EAAE,2BAA2B,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACjF,YAAY,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,+BAA+B,GAChC,MAAM,oBAAoB,CAAC;AAE5B,yEAAyE;AACzE,wBAAgB,2BAA2B,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAEpE;AACD,eAAO,MAAM,uBAAuB,QAAmB,CAAC;AACxD,eAAO,MAAM,8BAA8B,KAAK,CAAC;AACjD,eAAO,MAAM,+BAA+B,QAAoB,CAAC;AACjE,eAAO,MAAM,wBAAwB,WAAa,CAAC;AACnD,eAAO,MAAM,2BAA2B,OAAO,CAAC;AAChD,eAAO,MAAM,sCAAsC,OAAO,CAAC;AAC3D,eAAO,MAAM,kCAAkC,QAAkB,CAAC;AAClE,eAAO,MAAM,qCAAqC,IAAI,CAAC;AACvD,eAAO,MAAM,iCAAiC,IAAI,CAAC;AAEnD,MAAM,WAAW,iCAAiC;IAChD,yDAAyD;IACzD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,2BAA2B,CAAC,EAAE,MAAM,CAAC;IAC9C,QAAQ,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAC1C,QAAQ,CAAC,2BAA2B,CAAC,EAAE,MAAM,CAAC;IAC9C,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;CACvC;AAoFD;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,GAAE,iCAAsC,GAC9C,eAAe,CAsPjB"}
@@ -3,13 +3,17 @@
3
3
  */
4
4
  import { join, resolve } from "node:path";
5
5
  import { homedir } from "node:os";
6
- import { AttachmentError, } from "@xrkseek/attachment";
6
+ import { AttachmentError, DEFAULT_FILE_LIMITS, } from "@xrkseek/attachment";
7
7
  import { CompressionLimiter } from "./compression-limiter.js";
8
- import { commitPreparedImageFile, prepareImageFile, readImageByAttachmentId, readImageFile, validateImageFile, } from "./store.js";
8
+ import { commitFileAttachment, commitPreparedImageFile, prepareImageFile, readFileByAttachmentId, readImageByAttachmentId, readImageFile, storedFilePath, validateImageFile, } from "./store.js";
9
9
  import { readRequestImageFile, requestImageVariantId } from "./request-image.js";
10
10
  export { canPassThroughNormalization, normalizeImage } from "./normalization.js";
11
- export { commitPreparedImageFile, prepareImageFile, readImageFile, validateImageFile, } from "./store.js";
11
+ export { commitPreparedImageFile, prepareImageFile, readImageFile, storedFilePath, validateImageFile, } from "./store.js";
12
12
  export { readRequestImageFile, requestImageDimensions, requestImageVariantId, REQUEST_IMAGE_TRANSFORM_VERSION, } from "./request-image.js";
13
+ /** Absolute `{XRK_HOME}/attachments/v1` root used by the local store. */
14
+ export function resolveLocalAttachmentsRoot(xrkHome) {
15
+ return resolveAttachmentsRoot(xrkHome);
16
+ }
13
17
  export const DEFAULT_MAX_IMAGE_BYTES = 20 * 1024 * 1024;
14
18
  export const DEFAULT_MAX_IMAGES_PER_MESSAGE = 20;
15
19
  export const DEFAULT_MAX_MESSAGE_IMAGE_BYTES = 200 * 1024 * 1024;
@@ -103,6 +107,18 @@ export function createLocalAttachmentStore(options = {}) {
103
107
  "image/gif",
104
108
  ],
105
109
  };
110
+ const fileLimits = {
111
+ ...DEFAULT_FILE_LIMITS,
112
+ ...(options.maxFileBytes !== undefined
113
+ ? { maxFileBytes: options.maxFileBytes }
114
+ : {}),
115
+ ...(options.maxFilesPerMessage !== undefined
116
+ ? { maxFilesPerMessage: options.maxFilesPerMessage }
117
+ : {}),
118
+ ...(options.maxMessageFileBytes !== undefined
119
+ ? { maxMessageFileBytes: options.maxMessageFileBytes }
120
+ : {}),
121
+ };
106
122
  const normalizationPolicy = {
107
123
  maxDimension: options.normalizedImageMaxDimension ??
108
124
  DEFAULT_NORMALIZED_IMAGE_MAX_DIMENSION,
@@ -144,6 +160,7 @@ export function createLocalAttachmentStore(options = {}) {
144
160
  }
145
161
  return {
146
162
  imageLimits,
163
+ fileLimits,
147
164
  async validateImage(input) {
148
165
  await compression.run(() => validateImageFile(input, imageLimits, normalizationPolicy));
149
166
  },
@@ -183,6 +200,60 @@ export function createLocalAttachmentStore(options = {}) {
183
200
  }
184
201
  return operation.wait(signal);
185
202
  },
203
+ async validateFile(input) {
204
+ if (input.data.byteLength === 0) {
205
+ throw new AttachmentError("File bytes must be non-empty.", "INVALID_ATTACHMENT_REF");
206
+ }
207
+ if (input.data.byteLength > fileLimits.maxFileBytes) {
208
+ throw new AttachmentError("File exceeds the configured byte limit.", "FILE_TOO_LARGE");
209
+ }
210
+ },
211
+ async saveFiles(inputs) {
212
+ if (inputs.length > fileLimits.maxFilesPerMessage) {
213
+ throw new AttachmentError("File batch exceeds the configured file-count limit.", "TOO_MANY_FILES");
214
+ }
215
+ const totalBytes = inputs.reduce((sum, x) => sum + x.data.byteLength, 0);
216
+ if (totalBytes > fileLimits.maxMessageFileBytes) {
217
+ throw new AttachmentError("File batch exceeds the configured aggregate file-byte limit.", "FILES_TOO_LARGE");
218
+ }
219
+ for (const input of inputs) {
220
+ if (input.data.byteLength === 0) {
221
+ throw new AttachmentError("File bytes must be non-empty.", "INVALID_ATTACHMENT_REF");
222
+ }
223
+ if (input.data.byteLength > fileLimits.maxFileBytes) {
224
+ throw new AttachmentError("File exceeds the configured byte limit.", "FILE_TOO_LARGE");
225
+ }
226
+ }
227
+ const refs = [];
228
+ for (const input of inputs) {
229
+ refs.push(await commitFileAttachment(root, input));
230
+ }
231
+ return refs;
232
+ },
233
+ async saveFile(input) {
234
+ if (input.data.byteLength === 0) {
235
+ throw new AttachmentError("File bytes must be non-empty.", "INVALID_ATTACHMENT_REF");
236
+ }
237
+ if (input.data.byteLength > fileLimits.maxFileBytes) {
238
+ throw new AttachmentError("File exceeds the configured byte limit.", "FILE_TOO_LARGE");
239
+ }
240
+ return commitFileAttachment(root, input);
241
+ },
242
+ async readFile(attachmentId) {
243
+ try {
244
+ return await readFileByAttachmentId(root, attachmentId);
245
+ }
246
+ catch (err) {
247
+ if (err instanceof AttachmentError &&
248
+ err.code === "ATTACHMENT_NOT_FOUND") {
249
+ throw new AttachmentError(`Attachment not found: ${attachmentId}`, "NOT_FOUND");
250
+ }
251
+ throw err;
252
+ }
253
+ },
254
+ fileHostPath(ref) {
255
+ return storedFilePath(root, ref);
256
+ },
186
257
  };
187
258
  }
188
259
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /** Content-addressed, owner-private local attachment storage. */
2
- import type { ImageAttachmentLimits, ImageAttachmentRef, SaveImageAttachment, StoredImageAttachment } from '@xrkseek/attachment';
2
+ import type { FileAttachmentRef, ImageAttachmentLimits, ImageAttachmentRef, SaveFileAttachment, SaveImageAttachment, StoredFileAttachment, StoredImageAttachment } from '@xrkseek/attachment';
3
3
  import type { NormalizationPolicy } from './normalization.js';
4
4
  /**
5
5
  * Run the full admission policy for one image without touching storage,
@@ -55,4 +55,12 @@ export declare function readImageFile(root: string, ref: ImageAttachmentRef, sig
55
55
  * Read by opaque attachment id when session metadata is not available.
56
56
  */
57
57
  export declare function readImageByAttachmentId(root: string, attachmentId: string, signal?: AbortSignal): Promise<StoredImageAttachment>;
58
+ /**
59
+ * Absolute immutable alias path for one stored file. Digest names a directory
60
+ * so the sanitized display name stays the leaf — models see a path ending in
61
+ * the real filename.
62
+ */
63
+ export declare function storedFilePath(root: string, ref: FileAttachmentRef): string;
64
+ export declare function commitFileAttachment(root: string, input: SaveFileAttachment): Promise<FileAttachmentRef>;
65
+ export declare function readFileByAttachmentId(root: string, attachmentId: string, signal?: AbortSignal): Promise<StoredFileAttachment>;
58
66
  //# sourceMappingURL=store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA,iEAAiE;AAOjE,OAAO,KAAK,EACV,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AA+C7D;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,mBAAmB,EAC1B,MAAM,EAAE,qBAAqB,EAC7B,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,uFAAuF;AACvF,MAAM,WAAW,iBAAiB;IAChC,+EAA+E;IAC/E,IAAI,EAAE,UAAU,CAAA;IAChB,iDAAiD;IACjD,GAAG,EAAE,kBAAkB,CAAA;CACxB;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,mBAAmB,EAC1B,MAAM,EAAE,qBAAqB,EAC7B,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,iBAAiB,CAAC,CAqB5B;AA6DD;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,iBAAiB,GAC1B,OAAO,CAAC,kBAAkB,CAAC,CAuD7B;AAED;;;;;;;GAOG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,mBAAmB,EAC1B,MAAM,EAAE,qBAAqB,EAC7B,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,kBAAkB,CAAC,CAE7B;AAED;;;;;;;GAOG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,kBAAkB,EACvB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,qBAAqB,CAAC,CAuBhC;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,qBAAqB,CAAC,CAwChC"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA,iEAAiE;AAOjE,OAAO,KAAK,EACV,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACtB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AA+C7D;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,mBAAmB,EAC1B,MAAM,EAAE,qBAAqB,EAC7B,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,uFAAuF;AACvF,MAAM,WAAW,iBAAiB;IAChC,+EAA+E;IAC/E,IAAI,EAAE,UAAU,CAAA;IAChB,iDAAiD;IACjD,GAAG,EAAE,kBAAkB,CAAA;CACxB;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,mBAAmB,EAC1B,MAAM,EAAE,qBAAqB,EAC7B,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,iBAAiB,CAAC,CAqB5B;AA6DD;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,iBAAiB,GAC1B,OAAO,CAAC,kBAAkB,CAAC,CAuD7B;AAED;;;;;;;GAOG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,mBAAmB,EAC1B,MAAM,EAAE,qBAAqB,EAC7B,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,kBAAkB,CAAC,CAE7B;AAED;;;;;;;GAOG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,kBAAkB,EACvB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,qBAAqB,CAAC,CAuBhC;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,qBAAqB,CAAC,CAwChC;AAGD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,iBAAiB,GAAG,MAAM,CAU3E;AAsBD,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,iBAAiB,CAAC,CA+B5B;AAED,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,oBAAoB,CAAC,CA4B/B"}