@bendyline/docblocks 1.1.2 → 2.0.0

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 (270) hide show
  1. package/README.md +76 -11
  2. package/dist/chunk-2D7Y4IR3.js +1293 -0
  3. package/dist/chunk-2D7Y4IR3.js.map +1 -0
  4. package/dist/chunk-5MYAICRE.js +957 -0
  5. package/dist/chunk-5MYAICRE.js.map +1 -0
  6. package/dist/chunk-75UUF6C4.js +802 -0
  7. package/dist/chunk-75UUF6C4.js.map +1 -0
  8. package/dist/chunk-AEHCVWU5.js +25 -0
  9. package/dist/chunk-AEHCVWU5.js.map +1 -0
  10. package/dist/chunk-AYZ4HN5M.js +20 -0
  11. package/dist/chunk-AYZ4HN5M.js.map +1 -0
  12. package/dist/chunk-EGNDADXB.js +111 -0
  13. package/dist/chunk-EGNDADXB.js.map +1 -0
  14. package/dist/chunk-EZKJZUNJ.js +13 -0
  15. package/dist/chunk-EZKJZUNJ.js.map +1 -0
  16. package/dist/chunk-FNW556FN.js +75 -0
  17. package/dist/chunk-FNW556FN.js.map +1 -0
  18. package/dist/chunk-GCPBEMMH.js +563 -0
  19. package/dist/chunk-GCPBEMMH.js.map +1 -0
  20. package/dist/chunk-J32GU3F3.js +1664 -0
  21. package/dist/chunk-J32GU3F3.js.map +1 -0
  22. package/dist/chunk-PGR7LK6D.js +1062 -0
  23. package/dist/chunk-PGR7LK6D.js.map +1 -0
  24. package/dist/chunk-RQJRQF46.js +787 -0
  25. package/dist/chunk-RQJRQF46.js.map +1 -0
  26. package/dist/{chunk-ME76RUMR.js → chunk-RVQHY3XU.js} +15 -1
  27. package/dist/chunk-RVQHY3XU.js.map +1 -0
  28. package/dist/chunk-SI2LU2RP.js +224 -0
  29. package/dist/chunk-SI2LU2RP.js.map +1 -0
  30. package/dist/chunk-W5UUUII5.js +142 -0
  31. package/dist/chunk-W5UUUII5.js.map +1 -0
  32. package/dist/document/document-session.d.ts +127 -0
  33. package/dist/document/document-session.d.ts.map +1 -0
  34. package/dist/document/document-session.js +749 -0
  35. package/dist/document/document-session.js.map +1 -0
  36. package/dist/document/filesystem-target.d.ts +17 -0
  37. package/dist/document/filesystem-target.d.ts.map +1 -0
  38. package/dist/document/filesystem-target.js +70 -0
  39. package/dist/document/filesystem-target.js.map +1 -0
  40. package/dist/document/index.d.ts +6 -0
  41. package/dist/document/index.d.ts.map +1 -0
  42. package/dist/document/index.js +4 -0
  43. package/dist/document/index.js.map +1 -0
  44. package/dist/document/recovery-journal.d.ts +125 -0
  45. package/dist/document/recovery-journal.d.ts.map +1 -0
  46. package/dist/document/recovery-journal.js +385 -0
  47. package/dist/document/recovery-journal.js.map +1 -0
  48. package/dist/document/types.d.ts +89 -0
  49. package/dist/document/types.d.ts.map +1 -0
  50. package/dist/document/types.js +9 -0
  51. package/dist/document/types.js.map +1 -0
  52. package/dist/filesystem/commit-lock.d.ts +3 -0
  53. package/dist/filesystem/commit-lock.d.ts.map +1 -0
  54. package/dist/filesystem/commit-lock.js +20 -0
  55. package/dist/filesystem/commit-lock.js.map +1 -0
  56. package/dist/filesystem/dbk-workspace.d.ts +34 -0
  57. package/dist/filesystem/dbk-workspace.d.ts.map +1 -0
  58. package/dist/filesystem/dbk-workspace.js +85 -0
  59. package/dist/filesystem/dbk-workspace.js.map +1 -0
  60. package/dist/filesystem/electron-provider-v2.d.ts +36 -0
  61. package/dist/filesystem/electron-provider-v2.d.ts.map +1 -0
  62. package/dist/filesystem/electron-provider-v2.js +503 -0
  63. package/dist/filesystem/electron-provider-v2.js.map +1 -0
  64. package/dist/filesystem/electron-provider.d.ts +6 -3
  65. package/dist/filesystem/electron-provider.d.ts.map +1 -1
  66. package/dist/filesystem/electron-provider.js +18 -13
  67. package/dist/filesystem/electron-provider.js.map +1 -1
  68. package/dist/filesystem/electron.d.ts +4 -0
  69. package/dist/filesystem/electron.d.ts.map +1 -0
  70. package/dist/filesystem/electron.js +4 -0
  71. package/dist/filesystem/electron.js.map +1 -0
  72. package/dist/filesystem/filesystem-content-container.d.ts +1 -1
  73. package/dist/filesystem/filesystem-content-container.d.ts.map +1 -1
  74. package/dist/filesystem/filesystem-content-container.js +50 -13
  75. package/dist/filesystem/filesystem-content-container.js.map +1 -1
  76. package/dist/filesystem/fs-error.d.ts +46 -0
  77. package/dist/filesystem/fs-error.d.ts.map +1 -0
  78. package/dist/filesystem/fs-error.js +170 -0
  79. package/dist/filesystem/fs-error.js.map +1 -0
  80. package/dist/filesystem/index.d.ts +15 -1
  81. package/dist/filesystem/index.d.ts.map +1 -1
  82. package/dist/filesystem/index.js +13 -0
  83. package/dist/filesystem/index.js.map +1 -1
  84. package/dist/filesystem/indexeddb-content-container.d.ts +3 -1
  85. package/dist/filesystem/indexeddb-content-container.d.ts.map +1 -1
  86. package/dist/filesystem/indexeddb-content-container.js +18 -11
  87. package/dist/filesystem/indexeddb-content-container.js.map +1 -1
  88. package/dist/filesystem/indexeddb-provider-v2.d.ts +96 -0
  89. package/dist/filesystem/indexeddb-provider-v2.d.ts.map +1 -0
  90. package/dist/filesystem/indexeddb-provider-v2.js +1241 -0
  91. package/dist/filesystem/indexeddb-provider-v2.js.map +1 -0
  92. package/dist/filesystem/indexeddb-provider.d.ts +21 -14
  93. package/dist/filesystem/indexeddb-provider.d.ts.map +1 -1
  94. package/dist/filesystem/indexeddb-provider.js +111 -261
  95. package/dist/filesystem/indexeddb-provider.js.map +1 -1
  96. package/dist/filesystem/indexeddb-store.d.ts +34 -0
  97. package/dist/filesystem/indexeddb-store.d.ts.map +1 -0
  98. package/dist/filesystem/indexeddb-store.js +165 -0
  99. package/dist/filesystem/indexeddb-store.js.map +1 -0
  100. package/dist/filesystem/indexeddb.d.ts +5 -0
  101. package/dist/filesystem/indexeddb.d.ts.map +1 -0
  102. package/dist/filesystem/indexeddb.js +5 -0
  103. package/dist/filesystem/indexeddb.js.map +1 -0
  104. package/dist/filesystem/legacy-v2-adapter.d.ts +62 -0
  105. package/dist/filesystem/legacy-v2-adapter.d.ts.map +1 -0
  106. package/dist/filesystem/legacy-v2-adapter.js +499 -0
  107. package/dist/filesystem/legacy-v2-adapter.js.map +1 -0
  108. package/dist/filesystem/memory-provider-v2.d.ts +92 -0
  109. package/dist/filesystem/memory-provider-v2.d.ts.map +1 -0
  110. package/dist/filesystem/memory-provider-v2.js +615 -0
  111. package/dist/filesystem/memory-provider-v2.js.map +1 -0
  112. package/dist/filesystem/memory-provider.d.ts +54 -0
  113. package/dist/filesystem/memory-provider.d.ts.map +1 -0
  114. package/dist/filesystem/memory-provider.js +132 -0
  115. package/dist/filesystem/memory-provider.js.map +1 -0
  116. package/dist/filesystem/memory.d.ts +4 -0
  117. package/dist/filesystem/memory.d.ts.map +1 -0
  118. package/dist/filesystem/memory.js +4 -0
  119. package/dist/filesystem/memory.js.map +1 -0
  120. package/dist/filesystem/move-entry.d.ts +9 -0
  121. package/dist/filesystem/move-entry.d.ts.map +1 -0
  122. package/dist/filesystem/move-entry.js +103 -0
  123. package/dist/filesystem/move-entry.js.map +1 -0
  124. package/dist/filesystem/move-error.d.ts +53 -0
  125. package/dist/filesystem/move-error.d.ts.map +1 -0
  126. package/dist/filesystem/move-error.js +99 -0
  127. package/dist/filesystem/move-error.js.map +1 -0
  128. package/dist/filesystem/native-provider-v2.d.ts +75 -0
  129. package/dist/filesystem/native-provider-v2.d.ts.map +1 -0
  130. package/dist/filesystem/native-provider-v2.js +849 -0
  131. package/dist/filesystem/native-provider-v2.js.map +1 -0
  132. package/dist/filesystem/native-provider.d.ts +9 -1
  133. package/dist/filesystem/native-provider.d.ts.map +1 -1
  134. package/dist/filesystem/native-provider.js +172 -37
  135. package/dist/filesystem/native-provider.js.map +1 -1
  136. package/dist/filesystem/native.d.ts +4 -0
  137. package/dist/filesystem/native.d.ts.map +1 -0
  138. package/dist/filesystem/native.js +4 -0
  139. package/dist/filesystem/native.js.map +1 -0
  140. package/dist/filesystem/types.d.ts +37 -4
  141. package/dist/filesystem/types.d.ts.map +1 -1
  142. package/dist/filesystem/types.js +11 -3
  143. package/dist/filesystem/types.js.map +1 -1
  144. package/dist/filesystem/v2.d.ts +172 -0
  145. package/dist/filesystem/v2.d.ts.map +1 -0
  146. package/dist/filesystem/v2.js +16 -0
  147. package/dist/filesystem/v2.js.map +1 -0
  148. package/dist/filesystem/workspace-path.d.ts +21 -0
  149. package/dist/filesystem/workspace-path.d.ts.map +1 -0
  150. package/dist/filesystem/workspace-path.js +80 -0
  151. package/dist/filesystem/workspace-path.js.map +1 -0
  152. package/dist/host/filesystem-v2.d.ts +45 -0
  153. package/dist/host/filesystem-v2.d.ts.map +1 -0
  154. package/dist/host/filesystem-v2.js +13 -0
  155. package/dist/host/filesystem-v2.js.map +1 -0
  156. package/dist/host/git.d.ts +200 -0
  157. package/dist/host/git.d.ts.map +1 -0
  158. package/dist/host/git.js +15 -0
  159. package/dist/host/git.js.map +1 -0
  160. package/dist/host/index.d.ts +4 -1
  161. package/dist/host/index.d.ts.map +1 -1
  162. package/dist/host/index.js +2 -0
  163. package/dist/host/index.js.map +1 -1
  164. package/dist/host/types.d.ts +114 -31
  165. package/dist/host/types.d.ts.map +1 -1
  166. package/dist/host/wire-policy.d.ts +22 -0
  167. package/dist/host/wire-policy.d.ts.map +1 -0
  168. package/dist/host/wire-policy.js +92 -0
  169. package/dist/host/wire-policy.js.map +1 -0
  170. package/dist/index.d.ts +2 -1
  171. package/dist/index.d.ts.map +1 -1
  172. package/dist/index.js +2 -1
  173. package/dist/index.js.map +1 -1
  174. package/dist/mcp/index.d.ts +4 -0
  175. package/dist/mcp/index.d.ts.map +1 -0
  176. package/dist/mcp/index.js +4 -0
  177. package/dist/mcp/index.js.map +1 -0
  178. package/dist/mcp/types.d.ts +466 -0
  179. package/dist/mcp/types.d.ts.map +1 -0
  180. package/dist/mcp/types.js +25 -0
  181. package/dist/mcp/types.js.map +1 -0
  182. package/dist/mcp/wire.d.ts +29 -0
  183. package/dist/mcp/wire.d.ts.map +1 -0
  184. package/dist/mcp/wire.js +1046 -0
  185. package/dist/mcp/wire.js.map +1 -0
  186. package/dist/mcp/zod.d.ts +5763 -0
  187. package/dist/mcp/zod.d.ts.map +1 -0
  188. package/dist/mcp/zod.js +908 -0
  189. package/dist/mcp/zod.js.map +1 -0
  190. package/dist/types-CX893hgH.d.ts +468 -0
  191. package/dist/types-CsX6EN2t.d.ts +301 -0
  192. package/dist/types-eOlt9J7n.d.ts +478 -0
  193. package/dist/vscode/index.d.ts +3 -0
  194. package/dist/vscode/index.d.ts.map +1 -0
  195. package/dist/vscode/index.js +3 -0
  196. package/dist/vscode/index.js.map +1 -0
  197. package/dist/vscode/messages.d.ts +204 -0
  198. package/dist/vscode/messages.d.ts.map +1 -0
  199. package/dist/vscode/messages.js +494 -0
  200. package/dist/vscode/messages.js.map +1 -0
  201. package/dist/workspace/index.d.ts +3 -2
  202. package/dist/workspace/index.d.ts.map +1 -1
  203. package/dist/workspace/index.js +2 -1
  204. package/dist/workspace/index.js.map +1 -1
  205. package/dist/workspace/reconcile-electron.d.ts +19 -0
  206. package/dist/workspace/reconcile-electron.d.ts.map +1 -0
  207. package/dist/workspace/reconcile-electron.js +42 -0
  208. package/dist/workspace/reconcile-electron.js.map +1 -0
  209. package/dist/workspace/types.d.ts +41 -1
  210. package/dist/workspace/types.d.ts.map +1 -1
  211. package/dist/workspace/types.js +0 -4
  212. package/dist/workspace/types.js.map +1 -1
  213. package/dist/workspace/workspace-manager.d.ts +17 -5
  214. package/dist/workspace/workspace-manager.d.ts.map +1 -1
  215. package/dist/workspace/workspace-manager.js +55 -11
  216. package/dist/workspace/workspace-manager.js.map +1 -1
  217. package/dist/workspace-path-CWVrcuPL.d.ts +21 -0
  218. package/package.json +43 -2
  219. package/src/document/document-session.ts +834 -0
  220. package/src/document/filesystem-target.ts +109 -0
  221. package/src/document/index.ts +41 -0
  222. package/src/document/recovery-journal.ts +536 -0
  223. package/src/document/types.ts +116 -0
  224. package/src/filesystem/commit-lock.ts +29 -0
  225. package/src/filesystem/dbk-workspace.ts +135 -0
  226. package/src/filesystem/electron-provider-v2.ts +630 -0
  227. package/src/filesystem/electron-provider.ts +25 -14
  228. package/src/filesystem/electron.ts +3 -0
  229. package/src/filesystem/filesystem-content-container.ts +53 -15
  230. package/src/filesystem/fs-error.ts +234 -0
  231. package/src/filesystem/index.ts +119 -0
  232. package/src/filesystem/indexeddb-content-container.ts +20 -12
  233. package/src/filesystem/indexeddb-provider-v2.ts +1740 -0
  234. package/src/filesystem/indexeddb-provider.ts +126 -300
  235. package/src/filesystem/indexeddb-store.ts +207 -0
  236. package/src/filesystem/indexeddb.ts +12 -0
  237. package/src/filesystem/legacy-v2-adapter.ts +779 -0
  238. package/src/filesystem/memory-provider-v2.ts +896 -0
  239. package/src/filesystem/memory-provider.ts +180 -0
  240. package/src/filesystem/memory.ts +15 -0
  241. package/src/filesystem/move-entry.ts +142 -0
  242. package/src/filesystem/move-error.ts +159 -0
  243. package/src/filesystem/native-provider-v2.ts +1165 -0
  244. package/src/filesystem/native-provider.ts +194 -41
  245. package/src/filesystem/native.ts +16 -0
  246. package/src/filesystem/types.ts +49 -4
  247. package/src/filesystem/v2.ts +231 -0
  248. package/src/filesystem/workspace-path.ts +92 -0
  249. package/src/host/filesystem-v2.ts +104 -0
  250. package/src/host/git.ts +246 -0
  251. package/src/host/index.ts +46 -0
  252. package/src/host/types.ts +155 -34
  253. package/src/host/wire-policy.ts +103 -0
  254. package/src/index.ts +2 -1
  255. package/src/mcp/index.ts +3 -0
  256. package/src/mcp/types.ts +594 -0
  257. package/src/mcp/wire.ts +1280 -0
  258. package/src/mcp/zod.ts +1000 -0
  259. package/src/vscode/index.ts +2 -0
  260. package/src/vscode/messages.ts +704 -0
  261. package/src/workspace/index.ts +8 -1
  262. package/src/workspace/reconcile-electron.ts +65 -0
  263. package/src/workspace/types.ts +39 -1
  264. package/src/workspace/workspace-manager.ts +71 -10
  265. package/dist/chunk-GUNM43XZ.js +0 -63
  266. package/dist/chunk-GUNM43XZ.js.map +0 -1
  267. package/dist/chunk-IM7LCQJ6.js +0 -850
  268. package/dist/chunk-IM7LCQJ6.js.map +0 -1
  269. package/dist/chunk-ME76RUMR.js.map +0 -1
  270. package/dist/index-pgBHBQ9G.d.ts +0 -213
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/host/git.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG"}
@@ -3,7 +3,10 @@
3
3
  * host. The renderer calls `getDocBlocksHost()` to reach the preload
4
4
  * contextBridge; `isElectronHost()` gates desktop-only UI branches.
5
5
  */
6
- export type { DocBlocksHostAPI, DocBlocksHostFsAPI, DocBlocksHostWorkspacesAPI, DocBlocksHostShellAPI, DocBlocksHostFfmpegAPI, DocBlocksHostUpdaterAPI, ElectronWorkspaceInfo, HostEnvironment, MenuCommand, OpenRequest, UpdaterStatus, } from './types.js';
6
+ export type { DocBlocksHostAPI, DocBlocksHostFsAPI, DocBlocksHostExternalAPI, DocBlocksHostWorkspacesAPI, DocBlocksHostShellAPI, DocBlocksHostExportAPI, DocBlocksHostFfmpegAPI, DocBlocksHostUpdaterAPI, DocBlocksHostLifecycleAPI, ElectronWorkspaceInfo, ExternalBinaryCommitResult, HostCloseReason, HostEnvironment, HostExportTargetGrant, HostPrepareCloseRequest, HostPrepareCloseResult, MenuCommand, OpenRequest, UpdateInstallResult, UpdaterStatus, } from './types.js';
7
+ export type { DocBlocksHostGitAPI, GitBranchInfo, GitCapabilities, GitCloneHandle, GitCloneProgress, GitError, GitErrorCode, GitFileAtRevision, GitFileChange, GitFileStatusCode, GitLogEntry, GitLogOptions, GitRemoteInfo, GitRepoDetection, GitResult, GitRevision, GitStatus, } from './git.js';
8
+ export { ELECTRON_FILE_SYSTEM_V2_CAPABILITIES, type DocBlocksHostFsV2API, type HostFileSystemV2OpenRequest, type HostFileSystemV2Result, type HostFileSystemV2WatchMessage, } from './filesystem-v2.js';
9
+ export { HOST_WIRE_LIMITS, isBoundedBytePayload, isBoundedString, isTrustedRendererUrl, parseExternalHttpUrl, parseOpenRequest, } from './wire-policy.js';
7
10
  import type { DocBlocksHostAPI } from './types.js';
8
11
  /** True when running inside the Electron desktop shell. */
9
12
  export declare function isElectronHost(): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/host/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EACV,gBAAgB,EAChB,kBAAkB,EAClB,0BAA0B,EAC1B,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EACvB,qBAAqB,EACrB,eAAe,EACf,WAAW,EACX,WAAW,EACX,aAAa,GACd,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,2DAA2D;AAC3D,wBAAgB,cAAc,IAAI,OAAO,CASxC;AAED,mEAAmE;AACnE,wBAAgB,gBAAgB,IAAI,gBAAgB,CAMnD;AAED,kEAAkE;AAClE,wBAAgB,qBAAqB,IAAI,gBAAgB,GAAG,IAAI,CAE/D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/host/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EACV,gBAAgB,EAChB,kBAAkB,EAClB,wBAAwB,EACxB,0BAA0B,EAC1B,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,EACvB,yBAAyB,EACzB,qBAAqB,EACrB,0BAA0B,EAC1B,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,EACtB,WAAW,EACX,WAAW,EACX,mBAAmB,EACnB,aAAa,GACd,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,mBAAmB,EACnB,aAAa,EACb,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,SAAS,EACT,WAAW,EACX,SAAS,GACV,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,oCAAoC,EACpC,KAAK,oBAAoB,EACzB,KAAK,2BAA2B,EAChC,KAAK,sBAAsB,EAC3B,KAAK,4BAA4B,GAClC,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,2DAA2D;AAC3D,wBAAgB,cAAc,IAAI,OAAO,CASxC;AAED,mEAAmE;AACnE,wBAAgB,gBAAgB,IAAI,gBAAgB,CAMnD;AAED,kEAAkE;AAClE,wBAAgB,qBAAqB,IAAI,gBAAgB,GAAG,IAAI,CAE/D"}
@@ -3,6 +3,8 @@
3
3
  * host. The renderer calls `getDocBlocksHost()` to reach the preload
4
4
  * contextBridge; `isElectronHost()` gates desktop-only UI branches.
5
5
  */
6
+ export { ELECTRON_FILE_SYSTEM_V2_CAPABILITIES, } from './filesystem-v2.js';
7
+ export { HOST_WIRE_LIMITS, isBoundedBytePayload, isBoundedString, isTrustedRendererUrl, parseExternalHttpUrl, parseOpenRequest, } from './wire-policy.js';
6
8
  /** True when running inside the Electron desktop shell. */
7
9
  export function isElectronHost() {
8
10
  if (typeof globalThis === 'undefined')
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/host/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAkBH,2DAA2D;AAC3D,MAAM,UAAU,cAAc;IAC5B,IAAI,OAAO,UAAU,KAAK,WAAW;QAAE,OAAO,KAAK,CAAC;IACpD,MAAM,IAAI,GAAI,UAA0C,CAAC,aAAa,CAAC;IACvE,OAAO,CACL,OAAO,IAAI,KAAK,QAAQ;QACxB,IAAI,KAAK,IAAI;QACb,OAAQ,IAAyB,CAAC,EAAE,KAAK,QAAQ;QAChD,IAAyB,CAAC,EAAE,KAAK,IAAI,CACvC,CAAC;AACJ,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,gBAAgB;IAC9B,MAAM,IAAI,GAAI,UAAmD,CAAC,aAAa,CAAC;IAChF,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;IAClF,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,qBAAqB;IACnC,OAAQ,UAAmD,CAAC,aAAa,IAAI,IAAI,CAAC;AACpF,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/host/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA6CH,OAAO,EACL,oCAAoC,GAKrC,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAI1B,2DAA2D;AAC3D,MAAM,UAAU,cAAc;IAC5B,IAAI,OAAO,UAAU,KAAK,WAAW;QAAE,OAAO,KAAK,CAAC;IACpD,MAAM,IAAI,GAAI,UAA0C,CAAC,aAAa,CAAC;IACvE,OAAO,CACL,OAAO,IAAI,KAAK,QAAQ;QACxB,IAAI,KAAK,IAAI;QACb,OAAQ,IAAyB,CAAC,EAAE,KAAK,QAAQ;QAChD,IAAyB,CAAC,EAAE,KAAK,IAAI,CACvC,CAAC;AACJ,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,gBAAgB;IAC9B,MAAM,IAAI,GAAI,UAAmD,CAAC,aAAa,CAAC;IAChF,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;IAClF,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,qBAAqB;IACnC,OAAQ,UAAmD,CAAC,aAAa,IAAI,IAAI,CAAC;AACpF,CAAC"}
@@ -6,36 +6,42 @@
6
6
  * bridge. The Electron preload script exposes an implementation matching
7
7
  * this shape; the React renderer calls it through `window.docBlocksHost`.
8
8
  */
9
- import type { FileSystemEntry, FileMeta } from '../filesystem/types.js';
10
- /** Filesystem operations scoped to a registered absolute root path. */
9
+ import type { FileCommitResult, FileSystemEntry, FileMeta } from '../filesystem/types.js';
10
+ import type { DocBlocksHostFsV2API } from './filesystem-v2.js';
11
+ import type { DocBlocksHostGitAPI } from './git.js';
12
+ /** Filesystem operations scoped to a main-owned registered workspace id. */
11
13
  export interface DocBlocksHostFsAPI {
12
- readFile(rootPath: string, path: string): Promise<string | null>;
13
- writeFile(rootPath: string, path: string, content: string): Promise<void>;
14
- delete(rootPath: string, path: string): Promise<void>;
15
- rename(rootPath: string, oldPath: string, newPath: string): Promise<void>;
16
- readDirectory(rootPath: string, path: string): Promise<FileSystemEntry[]>;
17
- exists(rootPath: string, path: string): Promise<boolean>;
18
- createDirectory(rootPath: string, path: string): Promise<void>;
19
- stat(rootPath: string, path: string): Promise<FileMeta | null>;
20
- readBinary(rootPath: string, path: string): Promise<ArrayBuffer | null>;
21
- writeBinary(rootPath: string, path: string, data: ArrayBuffer | Uint8Array): Promise<void>;
14
+ readFile(workspaceId: string, path: string): Promise<string | null>;
15
+ writeFile(workspaceId: string, path: string, content: string): Promise<void>;
16
+ commitFile(workspaceId: string, path: string, content: string, expectedContent: string | null): Promise<FileCommitResult>;
17
+ delete(workspaceId: string, path: string): Promise<void>;
18
+ rename(workspaceId: string, oldPath: string, newPath: string): Promise<void>;
19
+ readDirectory(workspaceId: string, path: string): Promise<FileSystemEntry[]>;
20
+ exists(workspaceId: string, path: string): Promise<boolean>;
21
+ createDirectory(workspaceId: string, path: string): Promise<void>;
22
+ stat(workspaceId: string, path: string): Promise<FileMeta | null>;
23
+ readBinary(workspaceId: string, path: string): Promise<ArrayBuffer | null>;
24
+ writeBinary(workspaceId: string, path: string, data: ArrayBuffer | Uint8Array): Promise<void>;
22
25
  /**
23
26
  * Subscribe to change notifications for a watched root. Returns an
24
27
  * unsubscribe function. The main process uses chokidar under the hood.
25
28
  */
26
- watch(rootPath: string, onChange: (path: string) => void): () => void;
29
+ watch(workspaceId: string, onChange: (path: string) => void): () => void;
27
30
  }
28
31
  /** Descriptor returned for an Electron-managed workspace (backed by a folder). */
29
32
  export interface ElectronWorkspaceInfo {
30
33
  id: string;
31
34
  name: string;
35
+ /** Display/persistence metadata only. Privileged host calls accept `id`, never this path. */
32
36
  rootPath: string;
33
37
  }
34
38
  /** Workspace-management operations exposed to the renderer. */
35
39
  export interface DocBlocksHostWorkspacesAPI {
40
+ /** List only folders already persisted as trusted main-process roots. */
41
+ list(): Promise<ElectronWorkspaceInfo[]>;
36
42
  /**
37
- * Return the default workspace (creating ~/Documents/DocBlocks on first
38
- * call, or the user's configured default).
43
+ * Return the default workspace (creating DocBlocks inside the operating
44
+ * system's Documents folder on first call, or the user's configured default).
39
45
  */
40
46
  getDefault(): Promise<ElectronWorkspaceInfo>;
41
47
  /**
@@ -44,33 +50,43 @@ export interface DocBlocksHostWorkspacesAPI {
44
50
  */
45
51
  pickFolder(): Promise<ElectronWorkspaceInfo | null>;
46
52
  /**
47
- * Re-register a previously known workspace so its rootPath is trusted
48
- * for subsequent fs calls. Called on app startup for persisted
49
- * electron-native workspaces before any fs operation.
53
+ * Re-register a previously picker-approved workspace by main-owned id.
54
+ * Called on app startup before any filesystem operation.
50
55
  */
51
- register(info: ElectronWorkspaceInfo): Promise<void>;
56
+ register(workspaceId: string): Promise<void>;
52
57
  /** Remove a workspace from the trusted whitelist. */
53
58
  unregister(id: string): Promise<void>;
54
59
  }
55
60
  /** Shell operations — reveal in Finder/Explorer, open external URLs. */
56
61
  export interface DocBlocksHostShellAPI {
57
- /** Reveal a file (by absolute path) in the OS file manager. */
58
- revealInFolder(absolutePath: string): Promise<void>;
62
+ /** Reveal a registered workspace root or one root-relative entry. */
63
+ revealInFolder(workspaceId: string, workspacePath?: string): Promise<void>;
59
64
  /** Open a URL in the default browser. */
60
65
  openExternal(url: string): Promise<void>;
61
66
  }
67
+ /** Exact, main-owned export authority. The display path is never authority. */
68
+ export interface HostExportTargetGrant {
69
+ /** Null means this is a display-only suggestion and save must show a picker. */
70
+ grantId: string | null;
71
+ displayPath: string;
72
+ }
73
+ /** Native export target selection and binary file writing. */
74
+ export interface DocBlocksHostExportAPI {
75
+ /** Resolve an exact remembered grant or a display-only host suggestion. */
76
+ resolveTarget(documentId: string, filename: string): Promise<HostExportTargetGrant>;
77
+ /** Open the native Save dialog and remember the selected target. */
78
+ pickTarget(documentId: string, filename: string, currentGrantId?: string | null): Promise<HostExportTargetGrant | null>;
79
+ /** Write only to an exact target granted by the main process. */
80
+ save(documentId: string, filename: string, grantId: string | null, data: ArrayBuffer | Uint8Array): Promise<HostExportTargetGrant | null>;
81
+ }
62
82
  /** System ffmpeg detection and invocation. */
63
83
  export interface DocBlocksHostFfmpegAPI {
64
84
  /** True if `ffmpeg` is available on PATH (or bundled). */
65
85
  available(): Promise<boolean>;
66
86
  /** Version string from `ffmpeg -version`, or null if unavailable. */
67
87
  version(): Promise<string | null>;
68
- /**
69
- * Render a markdown file at the given absolute path to MP4 using the
70
- * existing squisq-video CLI pipeline. Returns the absolute path to the
71
- * produced MP4 file, or throws on failure.
72
- */
73
- renderVideo(markdownAbsolutePath: string, options: {
88
+ /** Render a physically contained workspace-relative Markdown file to MP4. */
89
+ renderVideo(workspaceId: string, markdownPath: string, options: {
74
90
  fps?: number;
75
91
  quality?: 'draft' | 'normal' | 'high';
76
92
  }): Promise<string>;
@@ -85,12 +101,13 @@ export interface DocBlocksHostUpdaterAPI {
85
101
  * Quit the app and apply a downloaded update. Should only be called
86
102
  * after an `UpdaterStatus` of kind `'downloaded'` has been observed.
87
103
  */
88
- quitAndInstall(): Promise<void>;
104
+ quitAndInstall(): Promise<UpdateInstallResult>;
89
105
  /**
90
106
  * Subscribe to updater status events. Returns an unsubscribe function.
91
107
  */
92
108
  onStatus(listener: (status: UpdaterStatus) => void): () => void;
93
109
  }
110
+ export type UpdateInstallResult = 'installing' | 'cancelled' | 'not-ready';
94
111
  export type UpdaterStatus = {
95
112
  kind: 'checking';
96
113
  } | {
@@ -113,28 +130,94 @@ export type UpdaterStatus = {
113
130
  message: string;
114
131
  };
115
132
  /** Menu-command events pushed from the main process to the renderer. */
116
- export type MenuCommand = 'file:new' | 'file:openFolder' | 'file:revealWorkspace' | 'file:settings' | 'help:about' | 'help:checkForUpdates' | 'help:viewOnGitHub';
117
- /** Deep-link event resolved by the host into a trusted workspace file. */
118
- export interface OpenRequest {
133
+ export type MenuCommand = 'file:new' | 'file:openFolder' | 'file:revealWorkspace' | 'file:settings' | 'git:commit' | 'git:push' | 'git:pull' | 'git:fetch' | 'git:newBranch' | 'git:switchBranch' | 'git:history' | 'git:clone' | 'git:openOnRemote' | 'git:createPullRequest' | 'help:about' | 'help:checkForUpdates' | 'help:viewOnGitHub';
134
+ /**
135
+ * OS open-file / deep-link event resolved by the host.
136
+ * - 'workspace-file': a file inside an already-registered workspace.
137
+ * - 'external-file': a loose markdown file outside any workspace — opened in a
138
+ * transient workspace and saved through an opaque resource grant.
139
+ * - 'external-bundle': a `.dbk`/zip bundle — unpacked into a transient
140
+ * workspace and re-zipped through an opaque resource grant on save.
141
+ */
142
+ export type OpenRequest = {
119
143
  kind: 'workspace-file';
120
144
  workspaceId: string;
121
145
  /** Slash-prefixed path relative to the workspace root. */
122
146
  path: string;
147
+ } | {
148
+ kind: 'external-file';
149
+ resourceId: string;
150
+ name: string;
151
+ } | {
152
+ kind: 'external-bundle';
153
+ resourceId: string;
154
+ name: string;
155
+ };
156
+ /**
157
+ * Read/write access to individual OS files the user has explicitly opened
158
+ * (via "Open With" / deep link), outside the workspace-root whitelist. The
159
+ * main process gates these with owner-scoped, exact-file capabilities.
160
+ */
161
+ export interface DocBlocksHostExternalAPI {
162
+ readText(resourceId: string): Promise<string | null>;
163
+ readBinary(resourceId: string): Promise<ArrayBuffer | null>;
164
+ writeText(resourceId: string, content: string): Promise<void>;
165
+ writeBinary(resourceId: string, data: ArrayBuffer | Uint8Array): Promise<void>;
166
+ commitText(resourceId: string, content: string, expectedContent: string | null): Promise<FileCommitResult>;
167
+ commitBinary(resourceId: string, data: ArrayBuffer | Uint8Array, expectedVersion: string | null): Promise<ExternalBinaryCommitResult>;
168
+ /** Revoke one external resource when its transient document is closed. */
169
+ revoke(resourceId: string): Promise<void>;
123
170
  }
171
+ export type ExternalBinaryCommitResult = {
172
+ status: 'committed';
173
+ version: string;
174
+ } | {
175
+ status: 'conflict';
176
+ version: string | null;
177
+ data: ArrayBuffer | null;
178
+ };
124
179
  /** Environment metadata provided by the host. */
125
180
  export interface HostEnvironment {
126
181
  platform: 'darwin' | 'win32' | 'linux';
127
182
  appVersion: string;
128
183
  isDev: boolean;
129
184
  }
185
+ export type HostCloseReason = 'window-close' | 'app-quit' | 'update-install' | 'reload' | 'force-reload';
186
+ export interface HostPrepareCloseRequest {
187
+ requestId: string;
188
+ reason: HostCloseReason;
189
+ /** Absolute epoch-millisecond deadline chosen by the main process. */
190
+ deadline: number;
191
+ }
192
+ export type HostPrepareCloseResult = {
193
+ status: 'ready';
194
+ persistedRevision: number;
195
+ } | {
196
+ status: 'blocked';
197
+ code: 'save-failed' | 'external-conflict' | 'not-ready';
198
+ message: string;
199
+ };
200
+ /**
201
+ * Main-owned close handshake. Preload privately correlates replies; the
202
+ * renderer never chooses request or window identifiers.
203
+ */
204
+ export interface DocBlocksHostLifecycleAPI {
205
+ onPrepareClose(listener: (request: HostPrepareCloseRequest) => Promise<HostPrepareCloseResult>): () => void;
206
+ onCancelClose(listener: (requestId: string) => void): () => void;
207
+ }
130
208
  /** The full DocBlocks desktop host API. */
131
209
  export interface DocBlocksHostAPI {
132
210
  env: HostEnvironment;
133
211
  fs: DocBlocksHostFsAPI;
212
+ fsV2: DocBlocksHostFsV2API;
213
+ external: DocBlocksHostExternalAPI;
134
214
  workspaces: DocBlocksHostWorkspacesAPI;
135
215
  shell: DocBlocksHostShellAPI;
216
+ exports: DocBlocksHostExportAPI;
136
217
  ffmpeg: DocBlocksHostFfmpegAPI;
218
+ git: DocBlocksHostGitAPI;
137
219
  updater: DocBlocksHostUpdaterAPI;
220
+ lifecycle: DocBlocksHostLifecycleAPI;
138
221
  /**
139
222
  * Subscribe to menu commands dispatched by the native menu.
140
223
  * Returns an unsubscribe function.
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/host/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/host/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { OpenRequest } from './types.js';
2
+ /** Quantitative limits shared by privileged host boundaries. */
3
+ export declare const HOST_WIRE_LIMITS: Readonly<{
4
+ identifierCharacters: 256;
5
+ labelCharacters: 1024;
6
+ pathCharacters: 4096;
7
+ urlCharacters: 8192;
8
+ messageCharacters: 2000;
9
+ documentCharacters: number;
10
+ binaryBytes: number;
11
+ base64Characters: number;
12
+ arrayEntries: 10000;
13
+ }>;
14
+ export declare function isBoundedString(value: unknown, maximumCharacters: number, minimumCharacters?: number): value is string;
15
+ export declare function isBoundedBytePayload(value: unknown, maximumBytes?: number): value is ArrayBuffer | Uint8Array;
16
+ /** Parse one exact, bounded main-to-renderer open request. */
17
+ export declare function parseOpenRequest(value: unknown): OpenRequest | null;
18
+ /** Return one canonical HTTP(S) URL, or null when external navigation is unsafe. */
19
+ export declare function parseExternalHttpUrl(value: unknown): string | null;
20
+ /** True only for the packaged renderer origin or the exact configured dev origin. */
21
+ export declare function isTrustedRendererUrl(value: unknown, developmentOrigin?: string): boolean;
22
+ //# sourceMappingURL=wire-policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wire-policy.d.ts","sourceRoot":"","sources":["../../src/host/wire-policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,gEAAgE;AAChE,eAAO,MAAM,gBAAgB;;;;;;;;;;EAU3B,CAAC;AAUH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,OAAO,EACd,iBAAiB,EAAE,MAAM,EACzB,iBAAiB,SAAI,GACpB,KAAK,IAAI,MAAM,CAOjB;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,OAAO,EACd,YAAY,SAA+B,GAC1C,KAAK,IAAI,WAAW,GAAG,UAAU,CAKnC;AAED,8DAA8D;AAC9D,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,GAAG,IAAI,CAmBnE;AAED,oFAAoF;AACpF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAWlE;AAED,qFAAqF;AACrF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,CAmBxF"}
@@ -0,0 +1,92 @@
1
+ /** Quantitative limits shared by privileged host boundaries. */
2
+ export const HOST_WIRE_LIMITS = Object.freeze({
3
+ identifierCharacters: 256,
4
+ labelCharacters: 1024,
5
+ pathCharacters: 4096,
6
+ urlCharacters: 8192,
7
+ messageCharacters: 2000,
8
+ documentCharacters: 20 * 1024 * 1024,
9
+ binaryBytes: 100 * 1024 * 1024,
10
+ base64Characters: 140 * 1024 * 1024,
11
+ arrayEntries: 10000,
12
+ });
13
+ function hasExactKeys(value, keys) {
14
+ const actual = Object.keys(value);
15
+ return (actual.length === keys.length &&
16
+ keys.every((key) => Object.prototype.hasOwnProperty.call(value, key)));
17
+ }
18
+ export function isBoundedString(value, maximumCharacters, minimumCharacters = 0) {
19
+ return (typeof value === 'string' &&
20
+ value.length >= minimumCharacters &&
21
+ value.length <= maximumCharacters &&
22
+ !value.includes('\0'));
23
+ }
24
+ export function isBoundedBytePayload(value, maximumBytes = HOST_WIRE_LIMITS.binaryBytes) {
25
+ return ((value instanceof ArrayBuffer || value instanceof Uint8Array) &&
26
+ value.byteLength <= maximumBytes);
27
+ }
28
+ /** Parse one exact, bounded main-to-renderer open request. */
29
+ export function parseOpenRequest(value) {
30
+ if (typeof value !== 'object' || value === null || Array.isArray(value))
31
+ return null;
32
+ const record = value;
33
+ if (record.kind === 'workspace-file') {
34
+ if (!hasExactKeys(record, ['kind', 'workspaceId', 'path']))
35
+ return null;
36
+ if (!isBoundedString(record.workspaceId, HOST_WIRE_LIMITS.identifierCharacters, 1))
37
+ return null;
38
+ if (!isBoundedString(record.path, HOST_WIRE_LIMITS.pathCharacters, 1))
39
+ return null;
40
+ return { kind: 'workspace-file', workspaceId: record.workspaceId, path: record.path };
41
+ }
42
+ if (record.kind === 'external-file' || record.kind === 'external-bundle') {
43
+ if (!hasExactKeys(record, ['kind', 'resourceId', 'name']))
44
+ return null;
45
+ if (!isBoundedString(record.resourceId, HOST_WIRE_LIMITS.identifierCharacters, 1))
46
+ return null;
47
+ if (!isBoundedString(record.name, HOST_WIRE_LIMITS.labelCharacters, 1))
48
+ return null;
49
+ return { kind: record.kind, resourceId: record.resourceId, name: record.name };
50
+ }
51
+ return null;
52
+ }
53
+ /** Return one canonical HTTP(S) URL, or null when external navigation is unsafe. */
54
+ export function parseExternalHttpUrl(value) {
55
+ if (!isBoundedString(value, HOST_WIRE_LIMITS.urlCharacters, 1))
56
+ return null;
57
+ try {
58
+ const url = new URL(value);
59
+ if (url.protocol !== 'http:' && url.protocol !== 'https:')
60
+ return null;
61
+ if (url.username || url.password)
62
+ return null;
63
+ const canonical = url.href;
64
+ return canonical.length <= HOST_WIRE_LIMITS.urlCharacters ? canonical : null;
65
+ }
66
+ catch {
67
+ return null;
68
+ }
69
+ }
70
+ /** True only for the packaged renderer origin or the exact configured dev origin. */
71
+ export function isTrustedRendererUrl(value, developmentOrigin) {
72
+ if (!isBoundedString(value, HOST_WIRE_LIMITS.urlCharacters, 1))
73
+ return false;
74
+ try {
75
+ const url = new URL(value);
76
+ if (url.protocol === 'app:' &&
77
+ url.hostname === 'docblocks' &&
78
+ url.port === '' &&
79
+ url.username === '' &&
80
+ url.password === '') {
81
+ return true;
82
+ }
83
+ if (!developmentOrigin)
84
+ return false;
85
+ const trustedDevelopmentOrigin = new URL(developmentOrigin);
86
+ return url.origin === trustedDevelopmentOrigin.origin;
87
+ }
88
+ catch {
89
+ return false;
90
+ }
91
+ }
92
+ //# sourceMappingURL=wire-policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wire-policy.js","sourceRoot":"","sources":["../../src/host/wire-policy.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,9 +1,10 @@
1
1
  /**
2
2
  * @bendyline/docblocks — Core package
3
3
  *
4
- * Re-exports filesystem, workspace, and host modules for convenience.
4
+ * Re-exports filesystem, document, workspace, and host modules for convenience.
5
5
  */
6
6
  export * from './filesystem/index.js';
7
+ export * from './document/index.js';
7
8
  export * from './workspace/index.js';
8
9
  export * from './host/index.js';
9
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC"}
package/dist/index.js CHANGED
@@ -1,9 +1,10 @@
1
1
  /**
2
2
  * @bendyline/docblocks — Core package
3
3
  *
4
- * Re-exports filesystem, workspace, and host modules for convenience.
4
+ * Re-exports filesystem, document, workspace, and host modules for convenience.
5
5
  */
6
6
  export * from './filesystem/index.js';
7
+ export * from './document/index.js';
7
8
  export * from './workspace/index.js';
8
9
  export * from './host/index.js';
9
10
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,4 @@
1
+ /** Exact, bounded wire contracts shared by DocBlocks MCP implementations. */
2
+ export * from './types.js';
3
+ export * from './wire.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC"}
@@ -0,0 +1,4 @@
1
+ /** Exact, bounded wire contracts shared by DocBlocks MCP implementations. */
2
+ export * from './types.js';
3
+ export * from './wire.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC"}