@bevel-software/platform-core-backend 0.32.0 → 0.33.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 (958) hide show
  1. package/agent-guide/access-control.md +5 -0
  2. package/agent-guide/html-views.md +46 -10
  3. package/dist/core/create-core-server.d.ts.map +1 -1
  4. package/dist/core/create-core-server.js +29 -4
  5. package/dist/core/create-core-server.js.map +1 -1
  6. package/dist/core/create-core-services.d.ts +7 -2
  7. package/dist/core/create-core-services.d.ts.map +1 -1
  8. package/dist/core/create-core-services.js +22 -6
  9. package/dist/core/create-core-services.js.map +1 -1
  10. package/dist/core/lifecycle.d.ts +8 -0
  11. package/dist/core/lifecycle.d.ts.map +1 -1
  12. package/dist/core/lifecycle.js +4 -0
  13. package/dist/core/lifecycle.js.map +1 -1
  14. package/dist/core/public-config.d.ts +10 -0
  15. package/dist/core/public-config.d.ts.map +1 -1
  16. package/dist/core/public-config.js +10 -0
  17. package/dist/core/public-config.js.map +1 -1
  18. package/dist/modules/access/access-control.service.d.ts +3 -3
  19. package/dist/modules/access/access-control.service.d.ts.map +1 -1
  20. package/dist/modules/access/access-control.service.js +4 -5
  21. package/dist/modules/access/access-control.service.js.map +1 -1
  22. package/dist/modules/access/access-declarations.d.ts +1 -1
  23. package/dist/modules/access/access-declarations.d.ts.map +1 -1
  24. package/dist/modules/access/access-declarations.js +1 -1
  25. package/dist/modules/access/access-declarations.js.map +1 -1
  26. package/dist/modules/access/access-mutation.service.d.ts +8 -3
  27. package/dist/modules/access/access-mutation.service.d.ts.map +1 -1
  28. package/dist/modules/access/access-mutation.service.js +3 -3
  29. package/dist/modules/access/access-mutation.service.js.map +1 -1
  30. package/dist/modules/access/access-requests.contract.d.ts +1 -1
  31. package/dist/modules/access/access-requests.contract.d.ts.map +1 -1
  32. package/dist/modules/access/access-requests.routes.d.ts +3 -3
  33. package/dist/modules/access/access-requests.routes.d.ts.map +1 -1
  34. package/dist/modules/access/access-requests.routes.js +7 -7
  35. package/dist/modules/access/access-requests.routes.js.map +1 -1
  36. package/dist/modules/access/access-requests.service.d.ts +21 -20
  37. package/dist/modules/access/access-requests.service.d.ts.map +1 -1
  38. package/dist/modules/access/access-requests.service.js +22 -68
  39. package/dist/modules/access/access-requests.service.js.map +1 -1
  40. package/dist/modules/access/access-view.d.ts +1 -1
  41. package/dist/modules/access/access-view.d.ts.map +1 -1
  42. package/dist/modules/access/access-view.js +1 -1
  43. package/dist/modules/access/access-view.js.map +1 -1
  44. package/dist/modules/access/access.routes.d.ts +5 -7
  45. package/dist/modules/access/access.routes.d.ts.map +1 -1
  46. package/dist/modules/access/access.routes.js +4 -4
  47. package/dist/modules/access/access.routes.js.map +1 -1
  48. package/dist/modules/access/admin-locked-commit.d.ts +2 -2
  49. package/dist/modules/access/admin-locked-commit.d.ts.map +1 -1
  50. package/dist/modules/access/admin-locked-commit.js +1 -1
  51. package/dist/modules/access/admin-locked-commit.js.map +1 -1
  52. package/dist/modules/access/capability-registry.js +1 -1
  53. package/dist/modules/access/capability-registry.js.map +1 -1
  54. package/dist/modules/access/change-read-gate.d.ts +2 -2
  55. package/dist/modules/access/change-read-gate.d.ts.map +1 -1
  56. package/dist/modules/access/change-read-gate.js +1 -3
  57. package/dist/modules/access/change-read-gate.js.map +1 -1
  58. package/dist/modules/access/creator-access.d.ts +2 -2
  59. package/dist/modules/access/creator-access.d.ts.map +1 -1
  60. package/dist/modules/access/creator-access.js +2 -4
  61. package/dist/modules/access/creator-access.js.map +1 -1
  62. package/dist/modules/access/directory-sync-bot.d.ts +1 -1
  63. package/dist/modules/access/directory-sync-bot.d.ts.map +1 -1
  64. package/dist/modules/access/directory-sync-bot.js +1 -1
  65. package/dist/modules/access/directory-sync-bot.js.map +1 -1
  66. package/dist/modules/access/groups-admin.routes.d.ts +2 -2
  67. package/dist/modules/access/groups-admin.routes.d.ts.map +1 -1
  68. package/dist/modules/access/groups-admin.routes.js +2 -2
  69. package/dist/modules/access/groups-admin.routes.js.map +1 -1
  70. package/dist/modules/access/groups-admin.service.d.ts +1 -1
  71. package/dist/modules/access/groups-admin.service.d.ts.map +1 -1
  72. package/dist/modules/access/groups-admin.service.js +2 -3
  73. package/dist/modules/access/groups-admin.service.js.map +1 -1
  74. package/dist/modules/access/groups-edit.js +2 -2
  75. package/dist/modules/access/groups-edit.js.map +1 -1
  76. package/dist/modules/access/index.d.ts +17 -0
  77. package/dist/modules/access/index.d.ts.map +1 -0
  78. package/dist/modules/access/index.js +6 -0
  79. package/dist/modules/access/index.js.map +1 -0
  80. package/dist/modules/access/reference-scan.js +1 -1
  81. package/dist/modules/access/reference-scan.js.map +1 -1
  82. package/dist/modules/access/roles-admin.service.d.ts +1 -1
  83. package/dist/modules/access/roles-admin.service.d.ts.map +1 -1
  84. package/dist/modules/access/roles-admin.service.js +2 -5
  85. package/dist/modules/access/roles-admin.service.js.map +1 -1
  86. package/dist/modules/access/roles-edit.js +1 -1
  87. package/dist/modules/access/roles-edit.js.map +1 -1
  88. package/dist/modules/access/synced-groups-committer.d.ts +2 -2
  89. package/dist/modules/access/synced-groups-committer.d.ts.map +1 -1
  90. package/dist/modules/access/synced-groups-committer.js +2 -2
  91. package/dist/modules/access/synced-groups-committer.js.map +1 -1
  92. package/dist/modules/access/synced-groups-writer.js +2 -2
  93. package/dist/modules/access/synced-groups-writer.js.map +1 -1
  94. package/dist/modules/access/user-access-removal.service.d.ts +1 -1
  95. package/dist/modules/access/user-access-removal.service.d.ts.map +1 -1
  96. package/dist/modules/access/user-access-removal.service.js +2 -5
  97. package/dist/modules/access/user-access-removal.service.js.map +1 -1
  98. package/dist/modules/access-model/index.d.ts +20 -5
  99. package/dist/modules/access-model/index.d.ts.map +1 -1
  100. package/dist/modules/access-model/index.js +18 -5
  101. package/dist/modules/access-model/index.js.map +1 -1
  102. package/dist/modules/access-model/roles-yaml-guard.d.ts +1 -1
  103. package/dist/modules/access-model/roles-yaml-guard.d.ts.map +1 -1
  104. package/dist/modules/admin/admin-access.routes.d.ts +1 -1
  105. package/dist/modules/admin/admin-access.routes.d.ts.map +1 -1
  106. package/dist/modules/admin/admin-access.routes.js +1 -1
  107. package/dist/modules/admin/admin-access.routes.js.map +1 -1
  108. package/dist/modules/admin/admin-access.service.d.ts +2 -2
  109. package/dist/modules/admin/admin-access.service.d.ts.map +1 -1
  110. package/dist/modules/admin/index.d.ts +8 -0
  111. package/dist/modules/admin/index.d.ts.map +1 -0
  112. package/dist/modules/admin/index.js +2 -0
  113. package/dist/modules/admin/index.js.map +1 -0
  114. package/dist/modules/agent-guide/agent-guide.js +1 -1
  115. package/dist/modules/agent-guide/agent-guide.js.map +1 -1
  116. package/dist/modules/agent-guide/agent-guide.tools.d.ts +3 -3
  117. package/dist/modules/agent-guide/agent-guide.tools.d.ts.map +1 -1
  118. package/dist/modules/agent-guide/agent-guide.tools.js +2 -4
  119. package/dist/modules/agent-guide/agent-guide.tools.js.map +1 -1
  120. package/dist/modules/agent-guide/index.d.ts +1 -1
  121. package/dist/modules/agent-guide/index.d.ts.map +1 -1
  122. package/dist/modules/agent-guide/index.js +1 -1
  123. package/dist/modules/agent-guide/index.js.map +1 -1
  124. package/dist/modules/agent-instructions/read-preamble.d.ts +1 -1
  125. package/dist/modules/agent-instructions/read-preamble.d.ts.map +1 -1
  126. package/dist/modules/audit/agent-audit.service.d.ts +2 -2
  127. package/dist/modules/audit/agent-audit.service.d.ts.map +1 -1
  128. package/dist/modules/audit/agent-audit.service.js +1 -1
  129. package/dist/modules/audit/agent-audit.service.js.map +1 -1
  130. package/dist/modules/audit/agent-connection.routes.d.ts +1 -1
  131. package/dist/modules/audit/agent-connection.routes.d.ts.map +1 -1
  132. package/dist/modules/audit/agent-connection.routes.js +1 -1
  133. package/dist/modules/audit/agent-connection.routes.js.map +1 -1
  134. package/dist/modules/audit/agent-rest-audit.middleware.d.ts +1 -1
  135. package/dist/modules/audit/agent-rest-audit.middleware.d.ts.map +1 -1
  136. package/dist/modules/audit/agent-rest-audit.middleware.js +1 -1
  137. package/dist/modules/audit/agent-rest-audit.middleware.js.map +1 -1
  138. package/dist/modules/audit/audit.routes.d.ts +3 -3
  139. package/dist/modules/audit/audit.routes.d.ts.map +1 -1
  140. package/dist/modules/audit/audit.routes.js +2 -2
  141. package/dist/modules/audit/audit.routes.js.map +1 -1
  142. package/dist/modules/auth/account-erasure.service.d.ts +3 -3
  143. package/dist/modules/auth/account-erasure.service.d.ts.map +1 -1
  144. package/dist/modules/auth/account-erasure.service.js +1 -5
  145. package/dist/modules/auth/account-erasure.service.js.map +1 -1
  146. package/dist/modules/auth/account-switch-lock.d.ts +1 -1
  147. package/dist/modules/auth/account-switch-lock.d.ts.map +1 -1
  148. package/dist/modules/auth/account-switch-lock.js +1 -1
  149. package/dist/modules/auth/account-switch-lock.js.map +1 -1
  150. package/dist/modules/auth/account.routes.d.ts +2 -2
  151. package/dist/modules/auth/account.routes.d.ts.map +1 -1
  152. package/dist/modules/auth/account.routes.js +1 -1
  153. package/dist/modules/auth/account.routes.js.map +1 -1
  154. package/dist/modules/auth/auth.service.d.ts +1 -1
  155. package/dist/modules/auth/auth.service.d.ts.map +1 -1
  156. package/dist/modules/auth/auth.service.js +3 -3
  157. package/dist/modules/auth/auth.service.js.map +1 -1
  158. package/dist/modules/auth/index.d.ts +2 -0
  159. package/dist/modules/auth/index.d.ts.map +1 -1
  160. package/dist/modules/auth/oidc-auth-provider.js +1 -1
  161. package/dist/modules/auth/oidc-auth-provider.js.map +1 -1
  162. package/dist/modules/code-mode/code-mode.tool.d.ts +1 -1
  163. package/dist/modules/code-mode/code-mode.tool.d.ts.map +1 -1
  164. package/dist/modules/connection-probe/connection-probe.service.d.ts +2 -2
  165. package/dist/modules/connection-probe/connection-probe.service.d.ts.map +1 -1
  166. package/dist/modules/connection-probe/connection-probe.service.js +1 -4
  167. package/dist/modules/connection-probe/connection-probe.service.js.map +1 -1
  168. package/dist/modules/database/core-schema.d.ts +107 -234
  169. package/dist/modules/database/core-schema.d.ts.map +1 -1
  170. package/dist/modules/database/core-schema.js +39 -35
  171. package/dist/modules/database/core-schema.js.map +1 -1
  172. package/dist/modules/database/index.d.ts +10 -0
  173. package/dist/modules/database/index.d.ts.map +1 -0
  174. package/dist/modules/database/index.js +4 -0
  175. package/dist/modules/database/index.js.map +1 -0
  176. package/dist/modules/database/migrate.d.ts.map +1 -1
  177. package/dist/modules/database/migrate.js +78 -3
  178. package/dist/modules/database/migrate.js.map +1 -1
  179. package/dist/modules/declared-variables/declared-variables.routes.d.ts +2 -2
  180. package/dist/modules/declared-variables/declared-variables.routes.d.ts.map +1 -1
  181. package/dist/modules/diff/diff.routes.d.ts +3 -3
  182. package/dist/modules/diff/diff.routes.d.ts.map +1 -1
  183. package/dist/modules/diff/diff.routes.js +3 -3
  184. package/dist/modules/diff/diff.routes.js.map +1 -1
  185. package/dist/modules/diff/diff.service.d.ts +2 -2
  186. package/dist/modules/diff/diff.service.d.ts.map +1 -1
  187. package/dist/modules/diff/index.d.ts +7 -0
  188. package/dist/modules/diff/index.d.ts.map +1 -0
  189. package/dist/modules/diff/index.js +2 -0
  190. package/dist/modules/diff/index.js.map +1 -0
  191. package/dist/modules/embed/account-link.service.d.ts +1 -1
  192. package/dist/modules/embed/account-link.service.d.ts.map +1 -1
  193. package/dist/modules/embed/account-link.service.js +1 -1
  194. package/dist/modules/embed/account-link.service.js.map +1 -1
  195. package/dist/modules/embed/embed.routes.d.ts +1 -1
  196. package/dist/modules/embed/embed.routes.d.ts.map +1 -1
  197. package/dist/modules/embed/embed.routes.js +2 -2
  198. package/dist/modules/embed/embed.routes.js.map +1 -1
  199. package/dist/modules/embed/embed.service.d.ts +1 -1
  200. package/dist/modules/embed/embed.service.d.ts.map +1 -1
  201. package/dist/modules/embed/embed.tools.d.ts +4 -4
  202. package/dist/modules/embed/embed.tools.d.ts.map +1 -1
  203. package/dist/modules/embed/embed.tools.js +3 -5
  204. package/dist/modules/embed/embed.tools.js.map +1 -1
  205. package/dist/modules/github-app/github-app.connection.d.ts +1 -1
  206. package/dist/modules/github-app/github-app.connection.d.ts.map +1 -1
  207. package/dist/modules/github-app/github-app.routes.d.ts +3 -3
  208. package/dist/modules/github-app/github-app.routes.d.ts.map +1 -1
  209. package/dist/modules/github-app/github-app.routes.js +1 -1
  210. package/dist/modules/github-app/github-app.routes.js.map +1 -1
  211. package/dist/modules/kb-fs/index.d.ts +10 -0
  212. package/dist/modules/kb-fs/index.d.ts.map +1 -1
  213. package/dist/modules/kb-fs/index.js +10 -0
  214. package/dist/modules/kb-fs/index.js.map +1 -1
  215. package/dist/modules/kb-fs/locking-filesystem.d.ts +1 -1
  216. package/dist/modules/kb-fs/locking-filesystem.d.ts.map +1 -1
  217. package/dist/modules/kb-sync/kb-sync.routes.d.ts +1 -1
  218. package/dist/modules/kb-sync/kb-sync.routes.d.ts.map +1 -1
  219. package/dist/modules/kb-sync/kb-sync.routes.js +2 -2
  220. package/dist/modules/kb-sync/kb-sync.routes.js.map +1 -1
  221. package/dist/modules/kb-sync/kb-sync.service.js +1 -1
  222. package/dist/modules/kb-sync/kb-sync.service.js.map +1 -1
  223. package/dist/modules/kb-sync/sync-auth.js +1 -1
  224. package/dist/modules/kb-sync/sync-auth.js.map +1 -1
  225. package/dist/modules/kb-sync/sync-payload.js +1 -1
  226. package/dist/modules/kb-sync/sync-payload.js.map +1 -1
  227. package/dist/modules/marketplace/git-http.routes.d.ts +1 -1
  228. package/dist/modules/marketplace/git-http.routes.d.ts.map +1 -1
  229. package/dist/modules/marketplace/git-http.routes.js +1 -1
  230. package/dist/modules/marketplace/git-http.routes.js.map +1 -1
  231. package/dist/modules/marketplace/github-facade/github-facade-admin.routes.d.ts +1 -1
  232. package/dist/modules/marketplace/github-facade/github-facade-admin.routes.d.ts.map +1 -1
  233. package/dist/modules/marketplace/github-facade/github-facade-admin.routes.js +1 -1
  234. package/dist/modules/marketplace/github-facade/github-facade-admin.routes.js.map +1 -1
  235. package/dist/modules/marketplace/github-facade/github-facade-codes.store.d.ts +1 -1
  236. package/dist/modules/marketplace/github-facade/github-facade-codes.store.d.ts.map +1 -1
  237. package/dist/modules/marketplace/github-facade/github-facade-codes.store.js +1 -1
  238. package/dist/modules/marketplace/github-facade/github-facade-codes.store.js.map +1 -1
  239. package/dist/modules/marketplace/github-facade/github-facade-credentials.service.d.ts +1 -1
  240. package/dist/modules/marketplace/github-facade/github-facade-credentials.service.d.ts.map +1 -1
  241. package/dist/modules/marketplace/github-facade/github-facade-credentials.service.js +1 -1
  242. package/dist/modules/marketplace/github-facade/github-facade-credentials.service.js.map +1 -1
  243. package/dist/modules/marketplace/github-facade/github-facade.routes.d.ts +2 -2
  244. package/dist/modules/marketplace/github-facade/github-facade.routes.d.ts.map +1 -1
  245. package/dist/modules/marketplace/github-facade/github-facade.routes.js +2 -2
  246. package/dist/modules/marketplace/github-facade/github-facade.routes.js.map +1 -1
  247. package/dist/modules/marketplace/github-facade/github-facade.service.d.ts +2 -2
  248. package/dist/modules/marketplace/github-facade/github-facade.service.d.ts.map +1 -1
  249. package/dist/modules/marketplace/github-facade/github-facade.service.js +1 -1
  250. package/dist/modules/marketplace/github-facade/github-facade.service.js.map +1 -1
  251. package/dist/modules/marketplace/marketplace-repo.service.d.ts +1 -1
  252. package/dist/modules/marketplace/marketplace-repo.service.d.ts.map +1 -1
  253. package/dist/modules/marketplace/marketplace-repo.service.js +1 -1
  254. package/dist/modules/mcp/index.d.ts +8 -0
  255. package/dist/modules/mcp/index.d.ts.map +1 -0
  256. package/dist/modules/mcp/index.js +7 -0
  257. package/dist/modules/mcp/index.js.map +1 -0
  258. package/dist/modules/mcp/mcp-auth.middleware.d.ts +4 -5
  259. package/dist/modules/mcp/mcp-auth.middleware.d.ts.map +1 -1
  260. package/dist/modules/mcp/mcp-auth.middleware.js +4 -4
  261. package/dist/modules/mcp/mcp-auth.middleware.js.map +1 -1
  262. package/dist/modules/mcp/mcp.routes.d.ts +2 -4
  263. package/dist/modules/mcp/mcp.routes.d.ts.map +1 -1
  264. package/dist/modules/mcp/mcp.routes.js +2 -2
  265. package/dist/modules/mcp/mcp.routes.js.map +1 -1
  266. package/dist/modules/mcp/mcp.service.d.ts +14 -4
  267. package/dist/modules/mcp/mcp.service.d.ts.map +1 -1
  268. package/dist/modules/mcp/mcp.service.js +17 -7
  269. package/dist/modules/mcp/mcp.service.js.map +1 -1
  270. package/dist/modules/mcp/oauth/bevel-oauth-provider.d.ts +1 -1
  271. package/dist/modules/mcp/oauth/bevel-oauth-provider.d.ts.map +1 -1
  272. package/dist/modules/mcp/oauth/bevel-oauth-provider.js +1 -1
  273. package/dist/modules/mcp/oauth/bevel-oauth-provider.js.map +1 -1
  274. package/dist/modules/mcp/oauth/oauth-consent.routes.d.ts +1 -1
  275. package/dist/modules/mcp/oauth/oauth-consent.routes.d.ts.map +1 -1
  276. package/dist/modules/mcp/oauth/oauth-consent.routes.js +1 -1
  277. package/dist/modules/mcp/oauth/oauth-consent.routes.js.map +1 -1
  278. package/dist/modules/onboarding/onboarding.routes.d.ts +1 -1
  279. package/dist/modules/onboarding/onboarding.routes.d.ts.map +1 -1
  280. package/dist/modules/onboarding/onboarding.routes.js +1 -1
  281. package/dist/modules/onboarding/onboarding.routes.js.map +1 -1
  282. package/dist/modules/onboarding/starter-pack.service.d.ts +4 -5
  283. package/dist/modules/onboarding/starter-pack.service.d.ts.map +1 -1
  284. package/dist/modules/onboarding/starter-pack.service.js +2 -2
  285. package/dist/modules/onboarding/starter-pack.service.js.map +1 -1
  286. package/dist/modules/plugins/compile/compile-marketplace.d.ts +1 -1
  287. package/dist/modules/plugins/compile/compile-marketplace.d.ts.map +1 -1
  288. package/dist/modules/plugins/compile/compile-marketplace.js +1 -1
  289. package/dist/modules/plugins/compile/compile-marketplace.js.map +1 -1
  290. package/dist/modules/plugins/compile/marketplace-compiler.service.d.ts +3 -3
  291. package/dist/modules/plugins/compile/marketplace-compiler.service.d.ts.map +1 -1
  292. package/dist/modules/plugins/discovery/bundle-dialect/registry.d.ts +1 -1
  293. package/dist/modules/plugins/discovery/bundle-dialect/registry.d.ts.map +1 -1
  294. package/dist/modules/plugins/discovery/bundle-dialect/registry.js +1 -1
  295. package/dist/modules/plugins/discovery/bundle-dialect/registry.js.map +1 -1
  296. package/dist/modules/plugins/index.d.ts +1 -0
  297. package/dist/modules/plugins/index.d.ts.map +1 -1
  298. package/dist/modules/plugins/index.js +2 -0
  299. package/dist/modules/plugins/index.js.map +1 -1
  300. package/dist/modules/plugins/join-proposals.d.ts +2 -2
  301. package/dist/modules/plugins/join-proposals.d.ts.map +1 -1
  302. package/dist/modules/plugins/join-proposals.js +1 -1
  303. package/dist/modules/plugins/join-proposals.js.map +1 -1
  304. package/dist/modules/plugins/join-request-jobs.service.d.ts +1 -1
  305. package/dist/modules/plugins/join-request-jobs.service.d.ts.map +1 -1
  306. package/dist/modules/plugins/join-request-jobs.service.js +2 -2
  307. package/dist/modules/plugins/join-request-jobs.service.js.map +1 -1
  308. package/dist/modules/plugins/join-request-records.store.d.ts +1 -1
  309. package/dist/modules/plugins/join-request-records.store.d.ts.map +1 -1
  310. package/dist/modules/plugins/join-request-records.store.js +1 -1
  311. package/dist/modules/plugins/join-request-records.store.js.map +1 -1
  312. package/dist/modules/plugins/join-requests.service.d.ts +3 -3
  313. package/dist/modules/plugins/join-requests.service.d.ts.map +1 -1
  314. package/dist/modules/plugins/join-requests.service.js +1 -1
  315. package/dist/modules/plugins/join-requests.service.js.map +1 -1
  316. package/dist/modules/plugins/plugin-links.d.ts +3 -3
  317. package/dist/modules/plugins/plugin-links.d.ts.map +1 -1
  318. package/dist/modules/plugins/plugin-links.js +1 -1
  319. package/dist/modules/plugins/plugin-links.js.map +1 -1
  320. package/dist/modules/plugins/plugin-links.service.d.ts +8 -5
  321. package/dist/modules/plugins/plugin-links.service.d.ts.map +1 -1
  322. package/dist/modules/plugins/plugin-links.service.js +8 -6
  323. package/dist/modules/plugins/plugin-links.service.js.map +1 -1
  324. package/dist/modules/plugins/plugin-provision.service.d.ts +2 -2
  325. package/dist/modules/plugins/plugin-provision.service.d.ts.map +1 -1
  326. package/dist/modules/plugins/plugin-provision.service.js +2 -3
  327. package/dist/modules/plugins/plugin-provision.service.js.map +1 -1
  328. package/dist/modules/plugins/plugin-rename.service.d.ts +2 -2
  329. package/dist/modules/plugins/plugin-rename.service.d.ts.map +1 -1
  330. package/dist/modules/plugins/plugin-rename.service.js +1 -1
  331. package/dist/modules/plugins/plugin-rename.service.js.map +1 -1
  332. package/dist/modules/plugins/plugins.contract.d.ts +1 -1
  333. package/dist/modules/plugins/plugins.contract.d.ts.map +1 -1
  334. package/dist/modules/plugins/plugins.routes.d.ts +2 -2
  335. package/dist/modules/plugins/plugins.routes.d.ts.map +1 -1
  336. package/dist/modules/plugins/plugins.routes.js +3 -3
  337. package/dist/modules/plugins/plugins.routes.js.map +1 -1
  338. package/dist/modules/plugins/plugins.service.d.ts +4 -4
  339. package/dist/modules/plugins/plugins.service.d.ts.map +1 -1
  340. package/dist/modules/plugins/plugins.service.js +1 -1
  341. package/dist/modules/plugins/plugins.service.js.map +1 -1
  342. package/dist/modules/plugins/plugins.tools.d.ts +1 -1
  343. package/dist/modules/plugins/plugins.tools.d.ts.map +1 -1
  344. package/dist/modules/plugins/plugins.tools.js +3 -3
  345. package/dist/modules/plugins/plugins.tools.js.map +1 -1
  346. package/dist/modules/plugins/teams.routes.d.ts +3 -3
  347. package/dist/modules/plugins/teams.routes.d.ts.map +1 -1
  348. package/dist/modules/secrets-vault/db-secrets-vault.service.d.ts +1 -1
  349. package/dist/modules/secrets-vault/db-secrets-vault.service.d.ts.map +1 -1
  350. package/dist/modules/secrets-vault/db-secrets-vault.service.js +1 -1
  351. package/dist/modules/secrets-vault/db-secrets-vault.service.js.map +1 -1
  352. package/dist/modules/secrets-vault/index.d.ts +1 -0
  353. package/dist/modules/secrets-vault/index.d.ts.map +1 -1
  354. package/dist/modules/secrets-vault/index.js +2 -0
  355. package/dist/modules/secrets-vault/index.js.map +1 -1
  356. package/dist/modules/secrets-vault/secrets-vault.routes.d.ts +4 -4
  357. package/dist/modules/secrets-vault/secrets-vault.routes.d.ts.map +1 -1
  358. package/dist/modules/secrets-vault/secrets-vault.routes.js +1 -1
  359. package/dist/modules/secrets-vault/secrets-vault.routes.js.map +1 -1
  360. package/dist/modules/settings/connection-check.js +1 -1
  361. package/dist/modules/settings/connection-check.js.map +1 -1
  362. package/dist/modules/settings/deployment-settings.service.d.ts +7 -1
  363. package/dist/modules/settings/deployment-settings.service.d.ts.map +1 -1
  364. package/dist/modules/settings/deployment-settings.service.js +45 -3
  365. package/dist/modules/settings/deployment-settings.service.js.map +1 -1
  366. package/dist/modules/settings/git-root-folders.js +1 -1
  367. package/dist/modules/settings/git-root-folders.js.map +1 -1
  368. package/dist/modules/settings/index.d.ts +13 -0
  369. package/dist/modules/settings/index.d.ts.map +1 -0
  370. package/dist/modules/settings/index.js +3 -0
  371. package/dist/modules/settings/index.js.map +1 -0
  372. package/dist/modules/settings/setup.routes.d.ts +3 -3
  373. package/dist/modules/settings/setup.routes.d.ts.map +1 -1
  374. package/dist/modules/settings/setup.routes.js +2 -2
  375. package/dist/modules/settings/setup.routes.js.map +1 -1
  376. package/dist/modules/skills/allowed-tools-check.d.ts +2 -2
  377. package/dist/modules/skills/allowed-tools-check.d.ts.map +1 -1
  378. package/dist/modules/skills/allowed-tools-check.js +1 -1
  379. package/dist/modules/skills/allowed-tools-check.js.map +1 -1
  380. package/dist/modules/skills/index.d.ts +1 -0
  381. package/dist/modules/skills/index.d.ts.map +1 -1
  382. package/dist/modules/skills/pending-skills.service.d.ts +3 -3
  383. package/dist/modules/skills/pending-skills.service.d.ts.map +1 -1
  384. package/dist/modules/skills/pending-skills.service.js.map +1 -1
  385. package/dist/modules/skills/skill-access-requests.routes.d.ts +5 -5
  386. package/dist/modules/skills/skill-access-requests.routes.d.ts.map +1 -1
  387. package/dist/modules/skills/skill-access-requests.routes.js +6 -13
  388. package/dist/modules/skills/skill-access-requests.routes.js.map +1 -1
  389. package/dist/modules/skills/skills.routes.d.ts +1 -1
  390. package/dist/modules/skills/skills.routes.d.ts.map +1 -1
  391. package/dist/modules/skills/skills.routes.js +1 -1
  392. package/dist/modules/skills/skills.routes.js.map +1 -1
  393. package/dist/modules/skills/skills.service.d.ts +2 -2
  394. package/dist/modules/skills/skills.service.d.ts.map +1 -1
  395. package/dist/modules/skills/skills.tools.d.ts +3 -3
  396. package/dist/modules/skills/skills.tools.d.ts.map +1 -1
  397. package/dist/modules/skills/skills.tools.js +3 -7
  398. package/dist/modules/skills/skills.tools.js.map +1 -1
  399. package/dist/modules/tool-auth/connection-key-rejection.js +1 -1
  400. package/dist/modules/tool-auth/connection-key-rejection.js.map +1 -1
  401. package/dist/modules/tool-auth/connection-keys-admin.routes.d.ts +2 -2
  402. package/dist/modules/tool-auth/connection-keys-admin.routes.d.ts.map +1 -1
  403. package/dist/modules/tool-auth/connection-keys-admin.routes.js +1 -1
  404. package/dist/modules/tool-auth/connection-keys-admin.routes.js.map +1 -1
  405. package/dist/modules/tool-auth/external-api-key.service.d.ts +1 -1
  406. package/dist/modules/tool-auth/external-api-key.service.d.ts.map +1 -1
  407. package/dist/modules/tool-auth/external-api-key.service.js +1 -1
  408. package/dist/modules/tool-auth/external-api-key.service.js.map +1 -1
  409. package/dist/modules/tool-auth/index.d.ts +15 -0
  410. package/dist/modules/tool-auth/index.d.ts.map +1 -0
  411. package/dist/modules/tool-auth/index.js +11 -0
  412. package/dist/modules/tool-auth/index.js.map +1 -0
  413. package/dist/modules/tool-auth/tool-auth.middleware.d.ts +2 -2
  414. package/dist/modules/tool-auth/tool-auth.middleware.d.ts.map +1 -1
  415. package/dist/modules/tool-auth/tool-auth.middleware.js +1 -1
  416. package/dist/modules/tool-auth/tool-auth.middleware.js.map +1 -1
  417. package/dist/modules/tool-helpers/default-branch-write.d.ts +1 -1
  418. package/dist/modules/tool-helpers/default-branch-write.d.ts.map +1 -1
  419. package/dist/modules/tool-helpers/index.d.ts +4 -1
  420. package/dist/modules/tool-helpers/index.d.ts.map +1 -1
  421. package/dist/modules/tool-helpers/index.js +3 -0
  422. package/dist/modules/tool-helpers/index.js.map +1 -1
  423. package/dist/modules/tool-helpers/route-argument-check.js +1 -1
  424. package/dist/modules/tool-helpers/route-argument-check.js.map +1 -1
  425. package/dist/modules/tool-helpers/route-tool-schemas.d.ts +1 -1
  426. package/dist/modules/tool-helpers/route-tool-schemas.d.ts.map +1 -1
  427. package/dist/modules/tool-helpers/tool-context.d.ts +5 -6
  428. package/dist/modules/tool-helpers/tool-context.d.ts.map +1 -1
  429. package/dist/modules/tool-helpers/tool-context.js +2 -3
  430. package/dist/modules/tool-helpers/tool-context.js.map +1 -1
  431. package/dist/modules/tool-helpers/tool-def.d.ts +4 -2
  432. package/dist/modules/tool-helpers/tool-def.d.ts.map +1 -1
  433. package/dist/modules/tool-helpers/tool-def.js +3 -1
  434. package/dist/modules/tool-helpers/tool-def.js.map +1 -1
  435. package/dist/modules/tool-helpers/tool-handler.d.ts +2 -2
  436. package/dist/modules/tool-helpers/tool-handler.d.ts.map +1 -1
  437. package/dist/modules/tool-helpers/tool-handler.js +2 -2
  438. package/dist/modules/tool-helpers/tool-handler.js.map +1 -1
  439. package/dist/modules/tool-helpers/tool.contract.d.ts +2 -2
  440. package/dist/modules/tool-helpers/tool.contract.d.ts.map +1 -1
  441. package/dist/modules/tool-helpers/validate-token.d.ts +1 -2
  442. package/dist/modules/tool-helpers/validate-token.d.ts.map +1 -1
  443. package/dist/modules/tool-helpers/validate-token.js +1 -1
  444. package/dist/modules/tool-helpers/validate-token.js.map +1 -1
  445. package/dist/modules/tool-manuals/index.d.ts +5 -0
  446. package/dist/modules/tool-manuals/index.d.ts.map +1 -1
  447. package/dist/modules/tool-manuals/index.js +4 -0
  448. package/dist/modules/tool-manuals/index.js.map +1 -1
  449. package/dist/modules/tool-manuals/mcp-server-edit.service.d.ts +2 -2
  450. package/dist/modules/tool-manuals/mcp-server-edit.service.d.ts.map +1 -1
  451. package/dist/modules/tool-manuals/pending-tools.service.d.ts +2 -2
  452. package/dist/modules/tool-manuals/pending-tools.service.d.ts.map +1 -1
  453. package/dist/modules/tool-manuals/tool-delete.service.d.ts +5 -6
  454. package/dist/modules/tool-manuals/tool-delete.service.d.ts.map +1 -1
  455. package/dist/modules/tool-manuals/tool-delete.service.js.map +1 -1
  456. package/dist/modules/tool-manuals/tool-manuals.routes.d.ts +5 -5
  457. package/dist/modules/tool-manuals/tool-manuals.routes.d.ts.map +1 -1
  458. package/dist/modules/tool-manuals/tool-manuals.routes.js +2 -2
  459. package/dist/modules/tool-manuals/tool-manuals.routes.js.map +1 -1
  460. package/dist/modules/tool-manuals/tool-manuals.service.d.ts +3 -3
  461. package/dist/modules/tool-manuals/tool-manuals.service.d.ts.map +1 -1
  462. package/dist/modules/tool-manuals/tool-manuals.tools.d.ts +3 -3
  463. package/dist/modules/tool-manuals/tool-manuals.tools.d.ts.map +1 -1
  464. package/dist/modules/tool-manuals/tool-manuals.tools.js +1 -2
  465. package/dist/modules/tool-manuals/tool-manuals.tools.js.map +1 -1
  466. package/dist/modules/tool-registry/description-length.js +2 -2
  467. package/dist/modules/tool-registry/description-length.js.map +1 -1
  468. package/dist/modules/tool-registry/index.d.ts +8 -0
  469. package/dist/modules/tool-registry/index.d.ts.map +1 -0
  470. package/dist/modules/tool-registry/index.js +8 -0
  471. package/dist/modules/tool-registry/index.js.map +1 -0
  472. package/dist/modules/tool-registry/manual.routes.d.ts +37 -2
  473. package/dist/modules/tool-registry/manual.routes.d.ts.map +1 -1
  474. package/dist/modules/tool-registry/manual.routes.js +14 -7
  475. package/dist/modules/tool-registry/manual.routes.js.map +1 -1
  476. package/dist/modules/tool-registry/read-only-hints.contract.d.ts +52 -0
  477. package/dist/modules/tool-registry/read-only-hints.contract.d.ts.map +1 -0
  478. package/dist/modules/tool-registry/read-only-hints.contract.js +2 -0
  479. package/dist/modules/tool-registry/read-only-hints.contract.js.map +1 -0
  480. package/dist/modules/tool-registry/read-only-hints.d.ts +89 -0
  481. package/dist/modules/tool-registry/read-only-hints.d.ts.map +1 -0
  482. package/dist/modules/tool-registry/read-only-hints.js +212 -0
  483. package/dist/modules/tool-registry/read-only-hints.js.map +1 -0
  484. package/dist/modules/tool-registry/tool.contract.d.ts +8 -0
  485. package/dist/modules/tool-registry/tool.contract.d.ts.map +1 -1
  486. package/dist/modules/tool-registry/tool.contract.js +10 -1
  487. package/dist/modules/tool-registry/tool.contract.js.map +1 -1
  488. package/dist/modules/update-check/update-check.routes.d.ts +2 -2
  489. package/dist/modules/update-check/update-check.routes.d.ts.map +1 -1
  490. package/dist/modules/update-check/update-check.routes.js +1 -1
  491. package/dist/modules/update-check/update-check.routes.js.map +1 -1
  492. package/dist/modules/workflow/agent-tools/change-request-read-shape.d.ts +9 -104
  493. package/dist/modules/workflow/agent-tools/change-request-read-shape.d.ts.map +1 -1
  494. package/dist/modules/workflow/agent-tools/change-request-read-shape.js +8 -118
  495. package/dist/modules/workflow/agent-tools/change-request-read-shape.js.map +1 -1
  496. package/dist/modules/workflow/agent-tools/change-request-read.tools.d.ts +16 -17
  497. package/dist/modules/workflow/agent-tools/change-request-read.tools.d.ts.map +1 -1
  498. package/dist/modules/workflow/agent-tools/change-request-read.tools.js +19 -86
  499. package/dist/modules/workflow/agent-tools/change-request-read.tools.js.map +1 -1
  500. package/dist/modules/workflow/agent-tools/change-request-summary.d.ts +5 -1
  501. package/dist/modules/workflow/agent-tools/change-request-summary.d.ts.map +1 -1
  502. package/dist/modules/workflow/agent-tools/change-request-summary.js +10 -1
  503. package/dist/modules/workflow/agent-tools/change-request-summary.js.map +1 -1
  504. package/dist/modules/workflow/agent-tools/workflow.tools.d.ts +7 -5
  505. package/dist/modules/workflow/agent-tools/workflow.tools.d.ts.map +1 -1
  506. package/dist/modules/workflow/agent-tools/workflow.tools.js +46 -68
  507. package/dist/modules/workflow/agent-tools/workflow.tools.js.map +1 -1
  508. package/dist/modules/workflow/change-request-hooks.d.ts +1 -1
  509. package/dist/modules/workflow/event-bus.d.ts.map +1 -1
  510. package/dist/modules/workflow/event-bus.js +3 -1
  511. package/dist/modules/workflow/event-bus.js.map +1 -1
  512. package/dist/modules/workflow/events-delivery.d.ts +120 -0
  513. package/dist/modules/workflow/events-delivery.d.ts.map +1 -0
  514. package/dist/modules/workflow/events-delivery.js +202 -0
  515. package/dist/modules/workflow/events-delivery.js.map +1 -0
  516. package/dist/modules/workflow/events.routes.d.ts +16 -7
  517. package/dist/modules/workflow/events.routes.d.ts.map +1 -1
  518. package/dist/modules/workflow/events.routes.js +23 -4
  519. package/dist/modules/workflow/events.routes.js.map +1 -1
  520. package/dist/modules/workflow/file-lock.service.d.ts +1 -1
  521. package/dist/modules/workflow/file-lock.service.d.ts.map +1 -1
  522. package/dist/modules/workflow/file-lock.service.js +1 -1
  523. package/dist/modules/workflow/file-lock.service.js.map +1 -1
  524. package/dist/modules/workflow/git/git.service.d.ts +2 -2
  525. package/dist/modules/workflow/git/git.service.d.ts.map +1 -1
  526. package/dist/modules/workflow/git/git.service.js +3 -6
  527. package/dist/modules/workflow/git/git.service.js.map +1 -1
  528. package/dist/modules/workflow/git/node-git-runner.js +1 -1
  529. package/dist/modules/workflow/git/node-git-runner.js.map +1 -1
  530. package/dist/modules/workflow/git/pull-request.service.d.ts +6 -7
  531. package/dist/modules/workflow/git/pull-request.service.d.ts.map +1 -1
  532. package/dist/modules/workflow/git/pull-request.service.js +40 -33
  533. package/dist/modules/workflow/git/pull-request.service.js.map +1 -1
  534. package/dist/modules/workflow/index.d.ts +14 -2
  535. package/dist/modules/workflow/index.d.ts.map +1 -1
  536. package/dist/modules/workflow/index.js +11 -2
  537. package/dist/modules/workflow/index.js.map +1 -1
  538. package/dist/modules/workflow/pending-commits.service.d.ts +1 -1
  539. package/dist/modules/workflow/pending-commits.service.d.ts.map +1 -1
  540. package/dist/modules/workflow/pending-commits.service.js +1 -1
  541. package/dist/modules/workflow/pending-commits.service.js.map +1 -1
  542. package/dist/modules/workflow/read-on-branch.d.ts +1 -1
  543. package/dist/modules/workflow/read-on-branch.d.ts.map +1 -1
  544. package/dist/modules/workflow/recovery-bot.d.ts +1 -1
  545. package/dist/modules/workflow/recovery-bot.d.ts.map +1 -1
  546. package/dist/modules/workflow/recovery-bot.js +1 -1
  547. package/dist/modules/workflow/recovery-bot.js.map +1 -1
  548. package/dist/modules/workflow/review-workflow/approval-lock.d.ts +1 -1
  549. package/dist/modules/workflow/review-workflow/approval-lock.d.ts.map +1 -1
  550. package/dist/modules/workflow/review-workflow/review-workflow.interface.d.ts +4 -20
  551. package/dist/modules/workflow/review-workflow/review-workflow.interface.d.ts.map +1 -1
  552. package/dist/modules/workflow/review-workflow/review-workflow.service.d.ts +4 -8
  553. package/dist/modules/workflow/review-workflow/review-workflow.service.d.ts.map +1 -1
  554. package/dist/modules/workflow/review-workflow/review-workflow.service.js +3 -138
  555. package/dist/modules/workflow/review-workflow/review-workflow.service.js.map +1 -1
  556. package/dist/modules/workflow/workflow.routes.d.ts +5 -5
  557. package/dist/modules/workflow/workflow.routes.d.ts.map +1 -1
  558. package/dist/modules/workflow/workflow.routes.js +42 -94
  559. package/dist/modules/workflow/workflow.routes.js.map +1 -1
  560. package/dist/modules/workflow/workflow.service.d.ts +40 -50
  561. package/dist/modules/workflow/workflow.service.d.ts.map +1 -1
  562. package/dist/modules/workflow/workflow.service.js +218 -154
  563. package/dist/modules/workflow/workflow.service.js.map +1 -1
  564. package/dist/modules/workspace/agent-access.gate.d.ts +3 -3
  565. package/dist/modules/workspace/agent-access.gate.d.ts.map +1 -1
  566. package/dist/modules/workspace/agent-download.builder.d.ts +1 -1
  567. package/dist/modules/workspace/agent-download.builder.d.ts.map +1 -1
  568. package/dist/modules/workspace/agent-download.builder.js +1 -1
  569. package/dist/modules/workspace/agent-download.builder.js.map +1 -1
  570. package/dist/modules/workspace/agent-upload.routes.d.ts.map +1 -1
  571. package/dist/modules/workspace/agent-upload.routes.js +19 -0
  572. package/dist/modules/workspace/agent-upload.routes.js.map +1 -1
  573. package/dist/modules/workspace/agent-upload.store.d.ts +11 -0
  574. package/dist/modules/workspace/agent-upload.store.d.ts.map +1 -1
  575. package/dist/modules/workspace/agent-upload.store.js +18 -0
  576. package/dist/modules/workspace/agent-upload.store.js.map +1 -1
  577. package/dist/modules/workspace/bounded-matcher.d.ts +5 -11
  578. package/dist/modules/workspace/bounded-matcher.d.ts.map +1 -1
  579. package/dist/modules/workspace/bounded-matcher.js +26 -87
  580. package/dist/modules/workspace/bounded-matcher.js.map +1 -1
  581. package/dist/modules/workspace/file-readers/doc-extract.service.d.ts +54 -10
  582. package/dist/modules/workspace/file-readers/doc-extract.service.d.ts.map +1 -1
  583. package/dist/modules/workspace/file-readers/doc-extract.service.js +69 -17
  584. package/dist/modules/workspace/file-readers/doc-extract.service.js.map +1 -1
  585. package/dist/modules/workspace/file-readers/doc-extract.types.d.ts +9 -2
  586. package/dist/modules/workspace/file-readers/doc-extract.types.d.ts.map +1 -1
  587. package/dist/modules/workspace/file-readers/doc-extract.types.js.map +1 -1
  588. package/dist/modules/workspace/file-readers/document-extractor.contract.d.ts +41 -0
  589. package/dist/modules/workspace/file-readers/document-extractor.contract.d.ts.map +1 -0
  590. package/dist/modules/workspace/file-readers/document-extractor.contract.js +5 -0
  591. package/dist/modules/workspace/file-readers/document-extractor.contract.js.map +1 -0
  592. package/dist/modules/workspace/file-readers/document-extractors.d.ts +9 -0
  593. package/dist/modules/workspace/file-readers/document-extractors.d.ts.map +1 -0
  594. package/dist/modules/workspace/file-readers/document-extractors.js +26 -0
  595. package/dist/modules/workspace/file-readers/document-extractors.js.map +1 -0
  596. package/dist/modules/workspace/file-readers/document-formats.d.ts +12 -0
  597. package/dist/modules/workspace/file-readers/document-formats.d.ts.map +1 -0
  598. package/dist/modules/workspace/file-readers/document-formats.js +11 -0
  599. package/dist/modules/workspace/file-readers/document-formats.js.map +1 -0
  600. package/dist/modules/workspace/file-readers/document-reader.d.ts +21 -17
  601. package/dist/modules/workspace/file-readers/document-reader.d.ts.map +1 -1
  602. package/dist/modules/workspace/file-readers/document-reader.js +38 -34
  603. package/dist/modules/workspace/file-readers/document-reader.js.map +1 -1
  604. package/dist/modules/workspace/file-readers/extract-in-worker.d.ts +60 -0
  605. package/dist/modules/workspace/file-readers/extract-in-worker.d.ts.map +1 -0
  606. package/dist/modules/workspace/file-readers/extract-in-worker.js +140 -0
  607. package/dist/modules/workspace/file-readers/extract-in-worker.js.map +1 -0
  608. package/dist/modules/workspace/file-readers/extract-pdf.d.ts +2 -0
  609. package/dist/modules/workspace/file-readers/extract-pdf.d.ts.map +1 -1
  610. package/dist/modules/workspace/file-readers/extract-pdf.js +20 -3
  611. package/dist/modules/workspace/file-readers/extract-pdf.js.map +1 -1
  612. package/dist/modules/workspace/file-readers/extract.worker.d.ts +2 -0
  613. package/dist/modules/workspace/file-readers/extract.worker.d.ts.map +1 -0
  614. package/dist/modules/workspace/file-readers/extract.worker.js +5 -0
  615. package/dist/modules/workspace/file-readers/extract.worker.js.map +1 -0
  616. package/dist/modules/workspace/file-readers/extraction-cache.d.ts +21 -5
  617. package/dist/modules/workspace/file-readers/extraction-cache.d.ts.map +1 -1
  618. package/dist/modules/workspace/file-readers/extraction-cache.js +24 -10
  619. package/dist/modules/workspace/file-readers/extraction-cache.js.map +1 -1
  620. package/dist/modules/workspace/file-readers/extraction-worker.d.ts +42 -0
  621. package/dist/modules/workspace/file-readers/extraction-worker.d.ts.map +1 -0
  622. package/dist/modules/workspace/file-readers/extraction-worker.js +69 -0
  623. package/dist/modules/workspace/file-readers/extraction-worker.js.map +1 -0
  624. package/dist/modules/workspace/file-readers/file-reader.d.ts +13 -4
  625. package/dist/modules/workspace/file-readers/file-reader.d.ts.map +1 -1
  626. package/dist/modules/workspace/file-readers/file-reader.js.map +1 -1
  627. package/dist/modules/workspace/file-readers/file-reader.registry.d.ts +3 -2
  628. package/dist/modules/workspace/file-readers/file-reader.registry.d.ts.map +1 -1
  629. package/dist/modules/workspace/file-readers/file-reader.registry.js +6 -20
  630. package/dist/modules/workspace/file-readers/file-reader.registry.js.map +1 -1
  631. package/dist/modules/workspace/first-run.js +1 -1
  632. package/dist/modules/workspace/first-run.js.map +1 -1
  633. package/dist/modules/workspace/git-internals.middleware.d.ts +1 -1
  634. package/dist/modules/workspace/git-internals.middleware.d.ts.map +1 -1
  635. package/dist/modules/workspace/git-internals.middleware.js +1 -1
  636. package/dist/modules/workspace/git-internals.middleware.js.map +1 -1
  637. package/dist/modules/workspace/index.d.ts +16 -0
  638. package/dist/modules/workspace/index.d.ts.map +1 -1
  639. package/dist/modules/workspace/index.js +13 -0
  640. package/dist/modules/workspace/index.js.map +1 -1
  641. package/dist/modules/workspace/kb-repository.d.ts.map +1 -1
  642. package/dist/modules/workspace/kb-repository.js +1 -1
  643. package/dist/modules/workspace/kb-repository.js.map +1 -1
  644. package/dist/modules/workspace/not-found.d.ts +1 -1
  645. package/dist/modules/workspace/not-found.d.ts.map +1 -1
  646. package/dist/modules/workspace/not-found.js +1 -1
  647. package/dist/modules/workspace/not-found.js.map +1 -1
  648. package/dist/modules/workspace/pattern-matcher.contract.d.ts +1 -1
  649. package/dist/modules/workspace/pattern-matcher.contract.d.ts.map +1 -1
  650. package/dist/modules/workspace/pattern-matcher.contract.js +1 -1
  651. package/dist/modules/workspace/pattern-matcher.contract.js.map +1 -1
  652. package/dist/modules/workspace/routine-write-policy.js +1 -1
  653. package/dist/modules/workspace/routine-write-policy.js.map +1 -1
  654. package/dist/modules/workspace/startup/kb-git.js +1 -1
  655. package/dist/modules/workspace/startup/kb-git.js.map +1 -1
  656. package/dist/modules/workspace/startup/kb-startup-runner.d.ts.map +1 -1
  657. package/dist/modules/workspace/startup/kb-startup-runner.js +1 -2
  658. package/dist/modules/workspace/startup/kb-startup-runner.js.map +1 -1
  659. package/dist/modules/workspace/startup/steps/groups-to-plugins.step.js +2 -2
  660. package/dist/modules/workspace/startup/steps/groups-to-plugins.step.js.map +1 -1
  661. package/dist/modules/workspace/startup/steps/personal-spaces.step.js +2 -2
  662. package/dist/modules/workspace/startup/steps/personal-spaces.step.js.map +1 -1
  663. package/dist/modules/workspace/startup/steps/plugin-layout.js +1 -1
  664. package/dist/modules/workspace/startup/steps/plugin-layout.js.map +1 -1
  665. package/dist/modules/workspace/startup/steps/roles-yaml.step.js +1 -1
  666. package/dist/modules/workspace/startup/steps/roles-yaml.step.js.map +1 -1
  667. package/dist/modules/workspace/startup/steps/seed-tree.js +2 -2
  668. package/dist/modules/workspace/startup/steps/seed-tree.js.map +1 -1
  669. package/dist/modules/workspace/startup/steps/template-files.step.d.ts +1 -1
  670. package/dist/modules/workspace/startup/steps/template-files.step.d.ts.map +1 -1
  671. package/dist/modules/workspace/startup/steps/template-files.step.js +2 -2
  672. package/dist/modules/workspace/startup/steps/template-files.step.js.map +1 -1
  673. package/dist/modules/workspace/startup/steps/template-source.js +2 -2
  674. package/dist/modules/workspace/startup/steps/template-source.js.map +1 -1
  675. package/dist/modules/workspace/worker-pool.d.ts +100 -0
  676. package/dist/modules/workspace/worker-pool.d.ts.map +1 -0
  677. package/dist/modules/workspace/worker-pool.js +156 -0
  678. package/dist/modules/workspace/worker-pool.js.map +1 -0
  679. package/dist/modules/workspace/workspace.routes.d.ts +7 -8
  680. package/dist/modules/workspace/workspace.routes.d.ts.map +1 -1
  681. package/dist/modules/workspace/workspace.routes.js +4 -6
  682. package/dist/modules/workspace/workspace.routes.js.map +1 -1
  683. package/dist/modules/workspace/workspace.service.d.ts +1 -1
  684. package/dist/modules/workspace/workspace.service.d.ts.map +1 -1
  685. package/dist/modules/workspace/workspace.service.js +3 -6
  686. package/dist/modules/workspace/workspace.service.js.map +1 -1
  687. package/dist/modules/workspace/workspace.tools.d.ts +7 -7
  688. package/dist/modules/workspace/workspace.tools.d.ts.map +1 -1
  689. package/dist/modules/workspace/workspace.tools.js +45 -27
  690. package/dist/modules/workspace/workspace.tools.js.map +1 -1
  691. package/dist/modules/workspace/write-denial.d.ts +4 -4
  692. package/dist/modules/workspace/write-denial.d.ts.map +1 -1
  693. package/dist/modules/workspace/write-denial.js +2 -3
  694. package/dist/modules/workspace/write-denial.js.map +1 -1
  695. package/dist/modules/write-access/index.d.ts +8 -0
  696. package/dist/modules/write-access/index.d.ts.map +1 -0
  697. package/dist/modules/write-access/index.js +7 -0
  698. package/dist/modules/write-access/index.js.map +1 -0
  699. package/migrations/0020_change_request_body_is_the_description.sql +20 -0
  700. package/migrations/0021_data_migrations_ledger.sql +11 -0
  701. package/migrations/meta/0020_snapshot.json +2321 -0
  702. package/migrations/meta/0021_snapshot.json +2353 -0
  703. package/migrations/meta/_journal.json +14 -0
  704. package/package.json +3 -3
  705. package/src/core/__tests__/damaged-document.tools.test.ts +374 -0
  706. package/src/core/__tests__/public-config.test.ts +5 -0
  707. package/src/core/create-core-server.ts +32 -3
  708. package/src/core/create-core-services.ts +32 -5
  709. package/src/core/lifecycle.ts +10 -0
  710. package/src/core/public-config.ts +10 -0
  711. package/src/modules/access/__tests__/access-requests.routes.test.ts +29 -15
  712. package/src/modules/access/access-control.service.ts +5 -6
  713. package/src/modules/access/access-declarations.ts +1 -1
  714. package/src/modules/access/access-mutation.service.ts +10 -4
  715. package/src/modules/access/access-requests.contract.ts +1 -1
  716. package/src/modules/access/access-requests.routes.ts +10 -15
  717. package/src/modules/access/access-requests.service.ts +29 -71
  718. package/src/modules/access/access-view.ts +1 -1
  719. package/src/modules/access/access.routes.ts +9 -11
  720. package/src/modules/access/admin-locked-commit.ts +3 -2
  721. package/src/modules/access/capability-registry.ts +1 -1
  722. package/src/modules/access/change-read-gate.ts +3 -5
  723. package/src/modules/access/creator-access.ts +3 -5
  724. package/src/modules/access/directory-sync-bot.ts +2 -2
  725. package/src/modules/access/groups-admin.routes.ts +3 -3
  726. package/src/modules/access/groups-admin.service.ts +3 -4
  727. package/src/modules/access/groups-edit.ts +2 -2
  728. package/src/modules/access/index.ts +17 -0
  729. package/src/modules/access/reference-scan.ts +1 -1
  730. package/src/modules/access/roles-admin.service.ts +3 -6
  731. package/src/modules/access/roles-edit.ts +1 -1
  732. package/src/modules/access/synced-groups-committer.ts +4 -4
  733. package/src/modules/access/synced-groups-writer.ts +2 -2
  734. package/src/modules/access/user-access-removal.service.ts +3 -6
  735. package/src/modules/access-model/index.ts +21 -5
  736. package/src/modules/access-model/roles-yaml-guard.ts +1 -1
  737. package/src/modules/admin/admin-access.routes.ts +1 -1
  738. package/src/modules/admin/admin-access.service.ts +2 -2
  739. package/src/modules/admin/index.ts +7 -0
  740. package/src/modules/agent-guide/__tests__/agent-guide.test.ts +5 -0
  741. package/src/modules/agent-guide/agent-guide.tools.ts +4 -6
  742. package/src/modules/agent-guide/agent-guide.ts +1 -1
  743. package/src/modules/agent-guide/index.ts +1 -1
  744. package/src/modules/agent-instructions/read-preamble.ts +1 -1
  745. package/src/modules/audit/agent-audit.service.ts +3 -3
  746. package/src/modules/audit/agent-connection.routes.ts +1 -1
  747. package/src/modules/audit/agent-rest-audit.middleware.ts +1 -1
  748. package/src/modules/audit/audit.routes.ts +4 -4
  749. package/src/modules/auth/account-erasure.service.ts +4 -9
  750. package/src/modules/auth/account-switch-lock.ts +2 -2
  751. package/src/modules/auth/account.routes.ts +3 -3
  752. package/src/modules/auth/auth.service.ts +4 -4
  753. package/src/modules/auth/index.ts +3 -0
  754. package/src/modules/auth/oidc-auth-provider.ts +1 -1
  755. package/src/modules/code-mode/code-mode.tool.ts +1 -1
  756. package/src/modules/connection-probe/connection-probe.service.ts +3 -6
  757. package/src/modules/database/__tests__/legacy-change-request-body.test.ts +118 -0
  758. package/src/modules/database/__tests__/legacy-request-bodies.pg.test.ts +258 -0
  759. package/src/modules/database/__tests__/pii-backfill.pg.test.ts +15 -18
  760. package/src/modules/database/core-schema.ts +43 -36
  761. package/src/modules/database/index.ts +9 -0
  762. package/src/modules/database/migrate.ts +79 -3
  763. package/src/modules/declared-variables/declared-variables.routes.ts +2 -2
  764. package/src/modules/diff/diff.routes.ts +5 -5
  765. package/src/modules/diff/diff.service.ts +2 -2
  766. package/src/modules/diff/index.ts +6 -0
  767. package/src/modules/embed/account-link.service.ts +2 -2
  768. package/src/modules/embed/embed.routes.ts +2 -2
  769. package/src/modules/embed/embed.service.ts +1 -1
  770. package/src/modules/embed/embed.tools.ts +6 -9
  771. package/src/modules/github-app/github-app.connection.ts +1 -1
  772. package/src/modules/github-app/github-app.routes.ts +3 -3
  773. package/src/modules/kb-fs/index.ts +11 -0
  774. package/src/modules/kb-fs/locking-filesystem.ts +1 -1
  775. package/src/modules/kb-sync/kb-sync.routes.ts +3 -3
  776. package/src/modules/kb-sync/kb-sync.service.ts +1 -1
  777. package/src/modules/kb-sync/sync-auth.ts +1 -1
  778. package/src/modules/kb-sync/sync-payload.ts +1 -1
  779. package/src/modules/marketplace/git-http.routes.ts +1 -1
  780. package/src/modules/marketplace/github-facade/github-facade-admin.routes.ts +1 -1
  781. package/src/modules/marketplace/github-facade/github-facade-codes.store.ts +2 -2
  782. package/src/modules/marketplace/github-facade/github-facade-credentials.service.ts +2 -2
  783. package/src/modules/marketplace/github-facade/github-facade.routes.ts +2 -2
  784. package/src/modules/marketplace/github-facade/github-facade.service.ts +2 -2
  785. package/src/modules/marketplace/marketplace-repo.service.ts +2 -2
  786. package/src/modules/mcp/__tests__/read-only-hint.e2e.test.ts +213 -0
  787. package/src/modules/mcp/index.ts +7 -0
  788. package/src/modules/mcp/mcp-auth.middleware.ts +6 -7
  789. package/src/modules/mcp/mcp.routes.ts +3 -5
  790. package/src/modules/mcp/mcp.service.ts +30 -13
  791. package/src/modules/mcp/oauth/bevel-oauth-provider.ts +2 -2
  792. package/src/modules/mcp/oauth/oauth-consent.routes.ts +1 -1
  793. package/src/modules/onboarding/onboarding.routes.ts +1 -1
  794. package/src/modules/onboarding/starter-pack.service.ts +5 -6
  795. package/src/modules/plugins/__tests__/bundle-dialect.e2e.test.ts +2 -1
  796. package/src/modules/plugins/__tests__/plugin-links.service.test.ts +2 -1
  797. package/src/modules/plugins/compile/compile-marketplace.ts +2 -2
  798. package/src/modules/plugins/compile/marketplace-compiler.service.ts +3 -3
  799. package/src/modules/plugins/discovery/bundle-dialect/registry.ts +1 -1
  800. package/src/modules/plugins/index.ts +2 -0
  801. package/src/modules/plugins/join-proposals.ts +2 -2
  802. package/src/modules/plugins/join-request-jobs.service.ts +3 -3
  803. package/src/modules/plugins/join-request-records.store.ts +2 -2
  804. package/src/modules/plugins/join-requests.service.ts +4 -4
  805. package/src/modules/plugins/plugin-links.service.ts +10 -11
  806. package/src/modules/plugins/plugin-links.ts +4 -4
  807. package/src/modules/plugins/plugin-provision.service.ts +4 -5
  808. package/src/modules/plugins/plugin-rename.service.ts +3 -3
  809. package/src/modules/plugins/plugins.contract.ts +1 -1
  810. package/src/modules/plugins/plugins.routes.ts +4 -4
  811. package/src/modules/plugins/plugins.service.ts +5 -5
  812. package/src/modules/plugins/plugins.tools.ts +4 -4
  813. package/src/modules/plugins/teams.routes.ts +3 -3
  814. package/src/modules/secrets-vault/db-secrets-vault.service.ts +2 -2
  815. package/src/modules/secrets-vault/index.ts +2 -0
  816. package/src/modules/secrets-vault/secrets-vault.routes.ts +4 -4
  817. package/src/modules/settings/__tests__/deployment-settings.service.test.ts +88 -1
  818. package/src/modules/settings/connection-check.ts +1 -1
  819. package/src/modules/settings/deployment-settings.service.ts +44 -4
  820. package/src/modules/settings/git-root-folders.ts +1 -1
  821. package/src/modules/settings/index.ts +12 -0
  822. package/src/modules/settings/setup.routes.ts +5 -4
  823. package/src/modules/skills/__tests__/allowed-tools-warn.tools.test.ts +2 -2
  824. package/src/modules/skills/__tests__/skill-access-requests.routes.test.ts +6 -3
  825. package/src/modules/skills/allowed-tools-check.ts +2 -6
  826. package/src/modules/skills/index.ts +2 -0
  827. package/src/modules/skills/pending-skills.service.ts +3 -4
  828. package/src/modules/skills/skill-access-requests.routes.ts +10 -17
  829. package/src/modules/skills/skills.routes.ts +1 -1
  830. package/src/modules/skills/skills.service.ts +2 -2
  831. package/src/modules/skills/skills.tools.ts +5 -9
  832. package/src/modules/tool-auth/connection-key-rejection.ts +1 -1
  833. package/src/modules/tool-auth/connection-keys-admin.routes.ts +2 -2
  834. package/src/modules/tool-auth/external-api-key.service.ts +2 -2
  835. package/src/modules/tool-auth/index.ts +14 -0
  836. package/src/modules/tool-auth/tool-auth.middleware.ts +3 -3
  837. package/src/modules/tool-helpers/__tests__/agent-roles-write.test.ts +2 -2
  838. package/src/modules/tool-helpers/__tests__/can-write.tools.test.ts +2 -2
  839. package/src/modules/tool-helpers/__tests__/phase4-tools.test.ts +2 -2
  840. package/src/modules/tool-helpers/default-branch-write.ts +1 -1
  841. package/src/modules/tool-helpers/index.ts +5 -1
  842. package/src/modules/tool-helpers/route-argument-check.ts +1 -1
  843. package/src/modules/tool-helpers/route-tool-schemas.ts +1 -1
  844. package/src/modules/tool-helpers/tool-context.ts +8 -10
  845. package/src/modules/tool-helpers/tool-def.ts +7 -3
  846. package/src/modules/tool-helpers/tool-handler.ts +2 -2
  847. package/src/modules/tool-helpers/tool.contract.ts +2 -2
  848. package/src/modules/tool-helpers/validate-token.ts +2 -3
  849. package/src/modules/tool-manuals/index.ts +6 -0
  850. package/src/modules/tool-manuals/mcp-server-edit.service.ts +2 -2
  851. package/src/modules/tool-manuals/pending-tools.service.ts +2 -2
  852. package/src/modules/tool-manuals/tool-delete.service.ts +5 -6
  853. package/src/modules/tool-manuals/tool-manuals.routes.ts +5 -5
  854. package/src/modules/tool-manuals/tool-manuals.service.ts +3 -3
  855. package/src/modules/tool-manuals/tool-manuals.tools.ts +4 -6
  856. package/src/modules/tool-registry/__tests__/read-only-hints.test.ts +439 -0
  857. package/src/modules/tool-registry/__tests__/tool-registry.test.ts +9 -2
  858. package/src/modules/tool-registry/description-length.ts +2 -2
  859. package/src/modules/tool-registry/index.ts +22 -0
  860. package/src/modules/tool-registry/manual.routes.ts +14 -8
  861. package/src/modules/tool-registry/read-only-hints.contract.ts +54 -0
  862. package/src/modules/tool-registry/read-only-hints.ts +225 -0
  863. package/src/modules/tool-registry/tool.contract.ts +11 -0
  864. package/src/modules/update-check/update-check.routes.ts +2 -2
  865. package/src/modules/workflow/__tests__/event-bus.test.ts +14 -2
  866. package/src/modules/workflow/__tests__/events-delivery.test.ts +778 -0
  867. package/src/modules/workflow/__tests__/workflow.service.facade.test.ts +84 -21
  868. package/src/modules/workflow/__tests__/workflow.service.update-change-request.pg.test.ts +120 -0
  869. package/src/modules/workflow/__tests__/workflow.service.update-change-request.test.ts +346 -0
  870. package/src/modules/workflow/agent-tools/__tests__/change-request-read-shape.test.ts +32 -209
  871. package/src/modules/workflow/agent-tools/__tests__/change-request-read.tools.test.ts +16 -245
  872. package/src/modules/workflow/agent-tools/__tests__/update-change-request.parity.test.ts +306 -0
  873. package/src/modules/workflow/agent-tools/__tests__/workflow.tools.test.ts +33 -57
  874. package/src/modules/workflow/agent-tools/change-request-read-shape.ts +18 -153
  875. package/src/modules/workflow/agent-tools/change-request-read.tools.ts +24 -96
  876. package/src/modules/workflow/agent-tools/change-request-summary.ts +16 -2
  877. package/src/modules/workflow/agent-tools/workflow.tools.ts +49 -75
  878. package/src/modules/workflow/change-request-hooks.ts +1 -1
  879. package/src/modules/workflow/event-bus.ts +3 -1
  880. package/src/modules/workflow/events-delivery.ts +278 -0
  881. package/src/modules/workflow/events.routes.ts +30 -9
  882. package/src/modules/workflow/file-lock.service.ts +2 -2
  883. package/src/modules/workflow/git/__tests__/pull-request.service.getPrDetail.test.ts +24 -9
  884. package/src/modules/workflow/git/git.service.ts +5 -8
  885. package/src/modules/workflow/git/node-git-runner.ts +1 -1
  886. package/src/modules/workflow/git/pull-request.service.ts +34 -29
  887. package/src/modules/workflow/index.ts +15 -2
  888. package/src/modules/workflow/pending-commits.service.ts +2 -2
  889. package/src/modules/workflow/read-on-branch.ts +1 -1
  890. package/src/modules/workflow/recovery-bot.ts +2 -2
  891. package/src/modules/workflow/review-workflow/approval-lock.ts +1 -1
  892. package/src/modules/workflow/review-workflow/review-workflow.interface.ts +3 -35
  893. package/src/modules/workflow/review-workflow/review-workflow.service.ts +6 -165
  894. package/src/modules/workflow/workflow.routes.ts +46 -100
  895. package/src/modules/workflow/workflow.service.ts +272 -191
  896. package/src/modules/workspace/__tests__/agent-downloads.test.ts +2 -1
  897. package/src/modules/workspace/__tests__/agent-uploads.test.ts +87 -1
  898. package/src/modules/workspace/__tests__/escape-sequences.routes.test.ts +2 -1
  899. package/src/modules/workspace/__tests__/file-stat-access.test.ts +2 -1
  900. package/src/modules/workspace/__tests__/git-internals.security.test.ts +2 -1
  901. package/src/modules/workspace/__tests__/rest-tool-arguments.test.ts +2 -1
  902. package/src/modules/workspace/__tests__/worker-pool.test.ts +118 -0
  903. package/src/modules/workspace/__tests__/workspace-paths-inside-the-repo.test.ts +3 -2
  904. package/src/modules/workspace/__tests__/workspace.service.ensure-remotes-fetched.test.ts +30 -0
  905. package/src/modules/workspace/__tests__/workspace.tools.agents-file.test.ts +2 -1
  906. package/src/modules/workspace/__tests__/workspace.tools.branch-errors.test.ts +2 -1
  907. package/src/modules/workspace/__tests__/workspace.tools.test.ts +30 -4
  908. package/src/modules/workspace/agent-access.gate.ts +3 -3
  909. package/src/modules/workspace/agent-download.builder.ts +1 -1
  910. package/src/modules/workspace/agent-upload.routes.ts +19 -0
  911. package/src/modules/workspace/agent-upload.store.ts +18 -0
  912. package/src/modules/workspace/bounded-matcher.ts +32 -89
  913. package/src/modules/workspace/file-readers/README.md +9 -0
  914. package/src/modules/workspace/file-readers/__tests__/doc-extract.service.test.ts +165 -0
  915. package/src/modules/workspace/file-readers/__tests__/doc-extract.test.ts +21 -16
  916. package/src/modules/workspace/file-readers/__tests__/extract-in-worker.test.ts +229 -0
  917. package/src/modules/workspace/file-readers/__tests__/file-reader.registry.test.ts +2 -1
  918. package/src/modules/workspace/file-readers/__tests__/fixtures/damaged-pdf.ts +34 -0
  919. package/src/modules/workspace/file-readers/__tests__/fixtures/misbehaving-extract.worker.ts +57 -0
  920. package/src/modules/workspace/file-readers/__tests__/fixtures/pdf-in-trouble.worker.ts +20 -0
  921. package/src/modules/workspace/file-readers/__tests__/fixtures/unloadable-extract.worker.ts +2 -0
  922. package/src/modules/workspace/file-readers/doc-extract.service.ts +95 -20
  923. package/src/modules/workspace/file-readers/doc-extract.types.ts +13 -3
  924. package/src/modules/workspace/file-readers/document-extractor.contract.ts +42 -0
  925. package/src/modules/workspace/file-readers/document-extractors.ts +28 -0
  926. package/src/modules/workspace/file-readers/document-formats.ts +13 -0
  927. package/src/modules/workspace/file-readers/document-reader.ts +40 -36
  928. package/src/modules/workspace/file-readers/extract-in-worker.ts +183 -0
  929. package/src/modules/workspace/file-readers/extract-pdf.ts +23 -4
  930. package/src/modules/workspace/file-readers/extract.worker.ts +5 -0
  931. package/src/modules/workspace/file-readers/extraction-cache.ts +33 -12
  932. package/src/modules/workspace/file-readers/extraction-worker.ts +86 -0
  933. package/src/modules/workspace/file-readers/file-reader.registry.ts +6 -20
  934. package/src/modules/workspace/file-readers/file-reader.ts +14 -4
  935. package/src/modules/workspace/first-run.ts +1 -1
  936. package/src/modules/workspace/git-internals.middleware.ts +1 -1
  937. package/src/modules/workspace/index.ts +17 -0
  938. package/src/modules/workspace/kb-repository.ts +3 -2
  939. package/src/modules/workspace/not-found.ts +1 -1
  940. package/src/modules/workspace/pattern-matcher.contract.ts +1 -1
  941. package/src/modules/workspace/routine-write-policy.ts +1 -1
  942. package/src/modules/workspace/startup/kb-git.ts +1 -1
  943. package/src/modules/workspace/startup/kb-startup-runner.ts +1 -2
  944. package/src/modules/workspace/startup/steps/groups-to-plugins.step.ts +3 -3
  945. package/src/modules/workspace/startup/steps/personal-spaces.step.ts +2 -2
  946. package/src/modules/workspace/startup/steps/plugin-layout.ts +1 -1
  947. package/src/modules/workspace/startup/steps/roles-yaml.step.ts +1 -1
  948. package/src/modules/workspace/startup/steps/seed-tree.ts +2 -2
  949. package/src/modules/workspace/startup/steps/template-files.step.ts +2 -2
  950. package/src/modules/workspace/startup/steps/template-source.ts +2 -2
  951. package/src/modules/workspace/worker-pool.ts +193 -0
  952. package/src/modules/workspace/workspace.routes.ts +9 -12
  953. package/src/modules/workspace/workspace.service.ts +4 -7
  954. package/src/modules/workspace/workspace.tools.ts +53 -34
  955. package/src/modules/workspace/write-denial.ts +4 -5
  956. package/src/modules/write-access/index.ts +7 -0
  957. package/src/shared/__tests__/module-boundaries.lint.test.ts +301 -0
  958. package/src/modules/workflow/__tests__/format-affected-owners.test.ts +0 -85
@@ -7,8 +7,8 @@ import {
7
7
  EmbedTokenError,
8
8
  } from './embed.errors.js';
9
9
  import { EmbedRefParseError } from './embed-link.js';
10
- import { rawExtensionOf, rawMimeFor } from '../workspace/file-readers/raw-mime.js';
11
- import '../auth/auth.middleware.js'; // Express Request augmentation
10
+ import { rawExtensionOf, rawMimeFor } from '../workspace/index.js';
11
+ import '../auth/index.js'; // Express Request augmentation
12
12
 
13
13
  /**
14
14
  * What `/api/embed/raw` answers as `Content-Type`, by extension — the types a
@@ -6,7 +6,7 @@ import { suggestionsBranchPrefixFor } from '@bevel-software/platform-shared';
6
6
  import { logger } from '../../shared/logging.js';
7
7
  import { workspaceIdForBranch } from '../../shared/workspace-id.js';
8
8
  import type { KbContext } from '../../shared/kb-context.js';
9
- import type { IAccessControl } from '../access/access-control.interface.js';
9
+ import type { IAccessControl } from '../access/index.js';
10
10
  import { changeRequestLink, changeRequestLinkBase } from '../workflow/index.js';
11
11
  import type { FileReaderRegistry } from '../workspace/index.js';
12
12
  import type { WriteValidator } from '../kb-fs/index.js';
@@ -1,15 +1,12 @@
1
1
  import type { Router, RequestHandler } from 'express';
2
- import type { IToolRegistry } from '../tool-registry/tool.contract.js';
3
- import { ToolError } from '../tool-helpers/tool.contract.js';
4
- import { toolDef } from '../tool-helpers/tool-def.js';
5
- import type { ToolHandlerFactory } from '../tool-helpers/tool-handler.js';
6
- import type { ToolContext } from '../tool-helpers/tool.contract.js';
2
+ import type { IToolRegistry } from '../tool-registry/index.js';
3
+ import { ToolError, toolDef } from '../tool-helpers/index.js';
4
+ import type { ToolHandlerFactory, ToolContext } from '../tool-helpers/index.js';
7
5
  import type { KbContext } from '../../shared/kb-context.js';
8
- import type { ReadForTool } from '../workspace/workspace.tools.js';
6
+ import type { ReadForTool } from '../workspace/index.js';
9
7
  import type { IEmbedService } from './embed.interface.js';
10
- import { requireExternalSource } from '../tool-auth/tool-auth.middleware.js';
11
- import { SESSION_ID_INPUT, type ToolDescriptionNotes } from '../workspace/agent-access.gate.js';
12
- import { sessionIdInputOf } from '../workspace/workspace.tools.js';
8
+ import { requireExternalSource } from '../tool-auth/index.js';
9
+ import { SESSION_ID_INPUT, type ToolDescriptionNotes, sessionIdInputOf } from '../workspace/index.js';
13
10
 
14
11
  /** The tool name, in one place: the app manifest keys its view by it. */
15
12
  export const OPEN_PAGE_TOOL = 'open_page';
@@ -1,5 +1,5 @@
1
1
  import { logger } from '../../shared/logging.js';
2
- import type { GitHubAppRepository, SettingReader } from '../settings/repository-source.js';
2
+ import type { GitHubAppRepository, SettingReader } from '../settings/index.js';
3
3
  import {
4
4
  GitHubAppClient,
5
5
  type GitHubAppCredentials,
@@ -1,11 +1,11 @@
1
1
  import { randomBytes, timingSafeEqual } from 'node:crypto';
2
2
  import express from 'express';
3
- import type { IAdminAccessService } from '../admin/admin.interface.js';
3
+ import type { IAdminAccessService } from '../admin/index.js';
4
4
  import { logger } from '../../shared/logging.js';
5
- import type { DeploymentSettingsService } from '../settings/deployment-settings.service.js';
5
+ import type { DeploymentSettingsService } from '../settings/index.js';
6
6
  import { GitHubAppClient, GitHubAppError } from './github-app.client.js';
7
7
  import { repositoriesAsSetting, type GitHubAppConnection } from './github-app.connection.js';
8
- import '../auth/auth.middleware.js'; // Express Request augmentation
8
+ import '../auth/index.js'; // Express Request augmentation
9
9
 
10
10
  const log = logger('github-app');
11
11
 
@@ -7,3 +7,14 @@ export type { WriteValidator } from './locking-filesystem.js';
7
7
  export { WorkspaceMutex, WorkspaceIdMutex } from './mutex.js';
8
8
  export { readRefSha, readRevSha, type RefFileAnswer } from './ref-files.js';
9
9
  export { gitDirOf, readGitfile } from './git-dir.js';
10
+ export { normalizeWorkspacePath } from './repo-path.js';
11
+ // Reached by other modules; exported here so they stop importing the files.
12
+ export { BevelIgnoreStack } from './bevel-ignore.js';
13
+ export { assertValidBranchName, assertValidRelativePath, isBranchAuthoredBy, isOwnSuggestionsBranch } from './branch-name.js';
14
+ export { ORIGIN_FETCH_REFSPEC, SAFE_IMPLICIT_FETCH_ARGS, cloneCredentialArgs, cloneCredentialConfigArgs, cloneTrackingConfigArgs, credentialHelperValue } from './clone-config.js';
15
+ export type { FileChangeNotifier } from './file-change-notifier.js';
16
+ export { GitGuardedFilesystem } from './git-guarded-filesystem.js';
17
+ export { LockingFilesystem, MoveLockedError, MoveRacedError } from './locking-filesystem.js';
18
+ export { ReadOnlyFilesystem } from './read-only-filesystem.js';
19
+ export { normalizeRepositoryAddress, sameRepository } from './remote-url.js';
20
+ export { assertInsideRepo, assertKbDirNameFree, assertRepoRootNameFree, assertRepoRootNameFreeArgs, hasControlCharacter, isInsideRepo, normalizePathArgs } from './repo-path.js';
@@ -55,7 +55,7 @@ import { DestinationTakenError, lstatOrNull, renameNoReplace, takenError } from
55
55
  import { linkedAncestor } from '../../shared/no-link-below.js';
56
56
  import { assertInsideRepo } from './repo-path.js';
57
57
  import { GitGuardedFilesystem } from './git-guarded-filesystem.js';
58
- import type { CreationGrantPlan, ICreatorAccess } from '../access-model/creator.js';
58
+ import type { CreationGrantPlan, ICreatorAccess } from '../access-model/index.js';
59
59
 
60
60
  /** How many times to retry a contended acquire before giving up. */
61
61
  const ACQUIRE_RETRY_ATTEMPTS = 3;
@@ -2,12 +2,12 @@ import express from 'express';
2
2
  import { logger } from '../../shared/logging.js';
3
3
 
4
4
  const log = logger('sync');
5
- import type { IAdminAccessService } from '../admin/admin.interface.js';
6
- import { assertValidBranchName } from '../kb-fs/branch-name.js';
5
+ import type { IAdminAccessService } from '../admin/index.js';
6
+ import { assertValidBranchName } from '../kb-fs/index.js';
7
7
  import type { IKbSyncService, SyncResult } from './kb-sync.interface.js';
8
8
  import { parseSyncPayload, type SyncPayloadSource } from './sync-payload.js';
9
9
  import { verifySyncCredential } from './sync-auth.js';
10
- import { AuthBackendError } from '../auth/account-admission.js';
10
+ import { AuthBackendError } from '../auth/index.js';
11
11
 
12
12
  /**
13
13
  * Remote sync — a git host or a pipeline tells Hexis the repository changed.
@@ -2,7 +2,7 @@ import type { BranchSyncOutcome } from '@bevel-software/platform-shared';
2
2
  import { logger } from '../../shared/logging.js';
3
3
 
4
4
  const log = logger('sync');
5
- import { sanitizeError } from '../workflow/sanitize-error.js';
5
+ import { sanitizeError } from '../workflow/index.js';
6
6
  import type {
7
7
  IKbSyncService,
8
8
  LastSync,
@@ -1,5 +1,5 @@
1
1
  import { createHmac } from 'node:crypto';
2
- import { timingSafeStringEqual } from '../auth/password-hash.js';
2
+ import { timingSafeStringEqual } from '../auth/index.js';
3
3
 
4
4
  /**
5
5
  * Who may call `POST /api/sync`, decided from the request's credentials.
@@ -1,4 +1,4 @@
1
- import { assertValidBranchName } from '../kb-fs/branch-name.js';
1
+ import { assertValidBranchName } from '../kb-fs/index.js';
2
2
 
3
3
  /**
4
4
  * Turn whatever a caller POSTed to `/api/sync` into the branches to sync.
@@ -5,7 +5,7 @@ const log = logger('marketplace');
5
5
  import { spawn } from 'node:child_process';
6
6
  import type { AuthUser } from '@bevel-software/platform-shared';
7
7
  import type { MarketplaceRepoService } from './marketplace-repo.service.js';
8
- import '../tool-auth/external-api-key.interface.js'; // Express Request augmentation (req.externalApiKeyId)
8
+ import '../tool-auth/index.js'; // Express Request augmentation (req.externalApiKeyId)
9
9
 
10
10
  /** How a bearer string resolves to a user — the connection-key service's shape. */
11
11
  export interface MarketplaceKeyResolver {
@@ -2,7 +2,7 @@ import express from 'express';
2
2
  import { logger } from '../../../shared/logging.js';
3
3
 
4
4
  const log = logger('github-facade');
5
- import '../../auth/auth.middleware.js'; // Express Request.userId / userEmail augmentation
5
+ import '../../auth/index.js'; // Express Request.userId / userEmail augmentation
6
6
  import {
7
7
  GitHubFacadeUnavailableError,
8
8
  type GitHubFacadeCredentialsService,
@@ -1,6 +1,6 @@
1
1
  import { and, eq, gt, isNull } from 'drizzle-orm';
2
- import type { Database } from '../../database/connection.js';
3
- import { githubFacadeCodes } from '../../database/schema.js';
2
+ import type { Database } from '../../database/index.js';
3
+ import { githubFacadeCodes } from '../../database/index.js';
4
4
 
5
5
  /**
6
6
  * A one-time code the consent page issued, waiting for Anthropic's backend
@@ -1,7 +1,7 @@
1
1
  import { generateKeyPairSync, randomBytes, randomInt } from 'node:crypto';
2
2
  import { and, eq } from 'drizzle-orm';
3
- import type { Database } from '../../database/connection.js';
4
- import { githubFacadeIdentity } from '../../database/schema.js';
3
+ import type { Database } from '../../database/index.js';
4
+ import { githubFacadeIdentity } from '../../database/index.js';
5
5
  import type { TokenCrypto } from '../../../shared/token-crypto.js';
6
6
 
7
7
  /**
@@ -3,8 +3,8 @@ import { logger } from '../../../shared/logging.js';
3
3
 
4
4
  const log = logger('github-facade');
5
5
  import type { AuthUser } from '@bevel-software/platform-shared';
6
- import '../../auth/auth.middleware.js'; // Express Request.userId / userEmail augmentation
7
- import '../../tool-auth/external-api-key.interface.js'; // Express Request augmentation (req.externalApiKeyId)
6
+ import '../../auth/index.js'; // Express Request.userId / userEmail augmentation
7
+ import '../../tool-auth/index.js'; // Express Request augmentation (req.externalApiKeyId)
8
8
  import type { MarketplaceRepoService } from '../marketplace-repo.service.js';
9
9
  import type { MarketplaceKeyResolver } from '../git-http.routes.js';
10
10
  import { GitHubFacadeRequestError, type GitHubFacade } from './github-facade.service.js';
@@ -2,8 +2,8 @@ import { createHash, randomBytes, timingSafeEqual } from 'node:crypto';
2
2
  import { logger } from '../../../shared/logging.js';
3
3
 
4
4
  const log = logger('github-facade');
5
- import type { KeyKindSpec, MintedExternalApiKey } from '../../tool-auth/external-api-key.interface.js';
6
- import { signAuthRequest, type McpAuthRequestState } from '../../mcp/oauth/oauth-state.js';
5
+ import type { KeyKindSpec, MintedExternalApiKey } from '../../tool-auth/index.js';
6
+ import { signAuthRequest, type McpAuthRequestState } from '../../mcp/index.js';
7
7
  import type { GitHubFacadeCredentialsService } from './github-facade-credentials.service.js';
8
8
  import type { GitHubFacadeCodeStore } from './github-facade-codes.store.js';
9
9
  import { printable } from '../../../shared/printable.js';
@@ -2,8 +2,8 @@ import fs from 'node:fs/promises';
2
2
  import os from 'node:os';
3
3
  import path from 'node:path';
4
4
  import { spawn, type ChildProcess } from 'node:child_process';
5
- import { WorkspaceMutex } from '../kb-fs/mutex.js';
6
- import type { VirtualTree } from '../plugins/compile/compile-marketplace.js';
5
+ import { WorkspaceMutex } from '../kb-fs/index.js';
6
+ import type { VirtualTree } from '../plugins/index.js';
7
7
  import { type IGitRunner } from '../../shared/git.contract.js';
8
8
 
9
9
  /** What the repo service asks the compiler for — the one seam it has. */
@@ -0,0 +1,213 @@
1
+ import type { Server as HttpServer } from 'node:http';
2
+ import type { AddressInfo } from 'node:net';
3
+ import { tmpdir } from 'node:os';
4
+ import { join } from 'node:path';
5
+ import express, { type RequestHandler } from 'express';
6
+ import { afterEach, describe, expect, it } from 'vitest';
7
+ import { Client } from '@modelcontextprotocol/sdk/client/index.js';
8
+ import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
9
+ import { createMcpRoutes } from '../mcp.routes.js';
10
+ import { McpService } from '../mcp.service.js';
11
+ import { SpillStore } from '../../workspace/index.js';
12
+ import { TOOL_READ_ONLY_SETTING, ToolReadOnlyHints, ToolRegistry, createManualRoutes } from '../../tool-registry/index.js';
13
+ import { toolDef } from '../../tool-helpers/index.js';
14
+ import { createCatalogRevisionRoutes } from '../../../core/catalog-revision.js';
15
+ import { startFakeDownstreamMcpServer, type FakeDownstreamMcpServer } from './fake-downstream-mcp-server.js';
16
+
17
+ /**
18
+ * The read-only hint as the HOSTED MCP endpoint lists it, over the real
19
+ * Streamable-HTTP transport: the real `McpService` discovering the real agent
20
+ * manual over loopback, with the real hints applied to it. What a client such
21
+ * as Claude Cowork reads to decide whether a call needs approval.
22
+ */
23
+
24
+ const KEY = 'bevel_key_interactive';
25
+ const fakeAuth: RequestHandler = (req, res, next) => {
26
+ if ((req.headers.authorization ?? '') !== `Bearer ${KEY}`) {
27
+ res.status(401).json({ error: 'unauthorized' });
28
+ return;
29
+ }
30
+ // An interactive caller (no connection-key id): the full listing, no credential filter.
31
+ req.userId = 'user-A';
32
+ next();
33
+ };
34
+ const pass: RequestHandler = (_req, _res, next) => next();
35
+
36
+ const stops: Array<() => Promise<void>> = [];
37
+ afterEach(async () => {
38
+ for (const stop of stops.splice(0).reverse()) await stop().catch(() => {});
39
+ });
40
+
41
+ async function startPlatform(opts: { downstream?: FakeDownstreamMcpServer; catalogRevision?: boolean } = {}) {
42
+ const registry = new ToolRegistry();
43
+ registry.registerExternalTool(
44
+ toolDef({ name: 'read_file', description: 'Read a file.', path: '/api/agent/tools/read_file', inputs: { type: 'object', properties: {} } }),
45
+ );
46
+ registry.registerExternalTool(
47
+ toolDef({
48
+ name: 'write_file',
49
+ description: 'Write a file.',
50
+ path: '/api/agent/tools/write_file',
51
+ inputs: { type: 'object', properties: {} },
52
+ tags: ['write'],
53
+ }),
54
+ );
55
+ // One stored row, as the deployment-settings table would hold it.
56
+ const row = { value: '' };
57
+ const hints = new ToolReadOnlyHints(registry, {
58
+ reload: async (key) => (key === TOOL_READ_ONLY_SETTING ? row.value : ''),
59
+ recordIfAbsent: async (_key, value) => {
60
+ if (row.value) return false;
61
+ row.value = value;
62
+ return true;
63
+ },
64
+ swapIfValue: async (_key, expected, next) => {
65
+ if (row.value !== expected) return false;
66
+ row.value = next ?? '';
67
+ return true;
68
+ },
69
+ });
70
+
71
+ const app = express();
72
+ app.use(express.json());
73
+ app.get('/api/agent/all-tools', (_req, res) => {
74
+ res.json({
75
+ manuals: [
76
+ {
77
+ name: 'KNOWLEDGE_BASE',
78
+ call_template_type: 'http',
79
+ http_method: 'GET',
80
+ url: '${API_URL}/api/agent/utcp',
81
+ content_type: 'application/json',
82
+ headers: { Authorization: 'Bearer ${CONNECTION_KEY}' },
83
+ },
84
+ // A plugin's MCP server: a tool from the knowledge base, not the platform's.
85
+ ...(opts.downstream
86
+ ? [{ name: 'notion', call_template_type: 'mcp', config: { mcpServers: { srv: { transport: 'http', url: opts.downstream.url } } } }]
87
+ : []),
88
+ ],
89
+ });
90
+ });
91
+ const httpServer = await new Promise<HttpServer>((resolve) => {
92
+ const s = app.listen(0, '127.0.0.1', () => resolve(s));
93
+ });
94
+ const baseUrl = `http://127.0.0.1:${(httpServer.address() as AddressInfo).port}`;
95
+ const service = new McpService({
96
+ loopbackBaseUrl: baseUrl,
97
+ manualName: 'KNOWLEDGE_BASE',
98
+ spillStore: new SpillStore(join(tmpdir(), 'bevel-test-spills')),
99
+ publicFrontendUrl: 'http://localhost:5173',
100
+ readOnlyOverrides: () => hints.overrides(),
101
+ });
102
+ const stub = {} as never;
103
+ app.use('/api', createMcpRoutes(service, stub, fakeAuth, fakeAuth, stub, stub, stub, ''));
104
+ app.use('/api', createManualRoutes(registry, pass, undefined, hints));
105
+ // The route the endpoint keys its cached tool surface by. Served, a listing
106
+ // reuses the surface it built until the revision moves; absent (404), every
107
+ // request builds its own. An override does not move it: the hints are
108
+ // joined on per listing, so the cached surface never holds one.
109
+ if (opts.catalogRevision) {
110
+ const asCaller: RequestHandler = (req, _res, next) => {
111
+ req.toolAuth = { userId: 'user-A' } as never;
112
+ next();
113
+ };
114
+ app.use(
115
+ '/api',
116
+ createCatalogRevisionRoutes({
117
+ toolManuals: { catalogFingerprints: async () => [] },
118
+ skills: { listSkills: async () => [] },
119
+ manualAuth: asCaller,
120
+ resolveUserEmail: async () => 'a@example.test',
121
+ }),
122
+ );
123
+ }
124
+ stops.push(async () => {
125
+ service.onSecretsChanged(null);
126
+ httpServer.closeAllConnections();
127
+ await new Promise<void>((r) => httpServer.close(() => r()));
128
+ });
129
+ return { baseUrl, hints };
130
+ }
131
+
132
+ async function connect(baseUrl: string): Promise<Client> {
133
+ const transport = new StreamableHTTPClientTransport(new URL(`${baseUrl}/api/mcp`), {
134
+ requestInit: { headers: { Authorization: `Bearer ${KEY}` } },
135
+ });
136
+ const client = new Client({ name: 'hint-client', version: '0.0.0' }, { capabilities: {} });
137
+ await client.connect(transport);
138
+ stops.push(() => client.close());
139
+ return client;
140
+ }
141
+
142
+ const annotationsOf = async (client: Client) =>
143
+ Object.fromEntries((await client.listTools()).tools.map((t) => [t.name, t.annotations]));
144
+
145
+ describe('the hosted MCP endpoint lists the read-only hint', () => {
146
+ it('on every platform tool and every meta-tool, and no other annotation', async () => {
147
+ const { baseUrl } = await startPlatform();
148
+ expect(await annotationsOf(await connect(baseUrl))).toEqual({
149
+ list_tools: { readOnlyHint: true },
150
+ tools_info: { readOnlyHint: true },
151
+ call_tool_chain: { readOnlyHint: false },
152
+ read_file: { readOnlyHint: true },
153
+ write_file: { readOnlyHint: false },
154
+ });
155
+ });
156
+
157
+ it("lists an admin's change on the client's NEXT tools/list, with no reconnect, and a reset undoes it", async () => {
158
+ const { baseUrl, hints } = await startPlatform();
159
+ const client = await connect(baseUrl);
160
+ expect((await annotationsOf(client)).read_file).toEqual({ readOnlyHint: true });
161
+
162
+ await hints.set('read_file', false, '00000000-0000-4000-8000-00000000000a');
163
+ await hints.set('write_file', true, '00000000-0000-4000-8000-00000000000a');
164
+ await hints.set('call_tool_chain', true, '00000000-0000-4000-8000-00000000000a');
165
+ let listed = await annotationsOf(client);
166
+ expect(listed.read_file).toEqual({ readOnlyHint: false });
167
+ expect(listed.write_file).toEqual({ readOnlyHint: true });
168
+ expect(listed.call_tool_chain).toEqual({ readOnlyHint: true });
169
+
170
+ for (const name of ['read_file', 'write_file', 'call_tool_chain']) await hints.set(name, null, '00000000-0000-4000-8000-00000000000a');
171
+ listed = await annotationsOf(client);
172
+ expect(listed.read_file).toEqual({ readOnlyHint: true });
173
+ expect(listed.write_file).toEqual({ readOnlyHint: false });
174
+ expect(listed.call_tool_chain).toEqual({ readOnlyHint: false });
175
+ });
176
+
177
+ it("lists an admin's change and its reset on the next tools/list when the tool surface is cached", async () => {
178
+ const { baseUrl, hints } = await startPlatform({ catalogRevision: true });
179
+ const client = await connect(baseUrl);
180
+ expect((await annotationsOf(client)).read_file).toEqual({ readOnlyHint: true });
181
+
182
+ await hints.set('read_file', false, '00000000-0000-4000-8000-00000000000a');
183
+ await hints.set('write_file', true, '00000000-0000-4000-8000-00000000000a');
184
+ let listed = await annotationsOf(client);
185
+ expect(listed.read_file).toEqual({ readOnlyHint: false });
186
+ expect(listed.write_file).toEqual({ readOnlyHint: true });
187
+
188
+ for (const name of ['read_file', 'write_file']) await hints.set(name, null, '00000000-0000-4000-8000-00000000000a');
189
+ listed = await annotationsOf(client);
190
+ expect(listed.read_file).toEqual({ readOnlyHint: true });
191
+ expect(listed.write_file).toEqual({ readOnlyHint: false });
192
+ });
193
+
194
+ it('does not keep an override in the cached surface: one set before the surface is built is undone by its reset', async () => {
195
+ const { baseUrl, hints } = await startPlatform({ catalogRevision: true });
196
+ await hints.set('read_file', false, '00000000-0000-4000-8000-00000000000a');
197
+ const client = await connect(baseUrl);
198
+ expect((await annotationsOf(client)).read_file).toEqual({ readOnlyHint: false });
199
+
200
+ await hints.set('read_file', null, '00000000-0000-4000-8000-00000000000a');
201
+ expect((await annotationsOf(client)).read_file).toEqual({ readOnlyHint: true });
202
+ });
203
+
204
+ it('leaves a tool from a plugin MCP server unannotated, as before', async () => {
205
+ const downstream = await startFakeDownstreamMcpServer();
206
+ stops.push(() => downstream.stop());
207
+ const { baseUrl } = await startPlatform({ downstream });
208
+ const tools = (await (await connect(baseUrl)).listTools()).tools;
209
+ const proxied = tools.find((t) => t.name.endsWith('echo'));
210
+ expect(proxied).toBeDefined();
211
+ expect(proxied).not.toHaveProperty('annotations');
212
+ });
213
+ });
@@ -0,0 +1,7 @@
1
+ /**
2
+ * What the mcp module offers the other modules. A consumer outside the
3
+ * module imports from here, never from the files: they are the module's own
4
+ * layout and free to move. Export what another module needs; nothing more.
5
+ */
6
+ export { signAuthRequest } from './oauth/oauth-state.js';
7
+ export type { McpAuthRequestState } from './oauth/oauth-state.js';
@@ -3,14 +3,13 @@ import { logger } from '../../shared/logging.js';
3
3
 
4
4
  const log = logger('mcp-auth');
5
5
  import { InvalidTokenError } from '@modelcontextprotocol/sdk/server/auth/errors.js';
6
- import type { AuthService } from '../auth/auth.service.js';
7
- import { ACCOUNT_DEACTIVATED_MESSAGE, AccountDeactivatedError, AuthBackendError } from '../auth/account-admission.js';
8
- import type { IExternalApiKeyService } from '../tool-auth/external-api-key.interface.js';
9
- import type { InternalTokenService } from '../tool-auth/internal-token.service.js';
10
- import { rejectConnectionKey } from '../tool-auth/connection-key-rejection.js';
6
+ import type { AuthService } from '../auth/index.js';
7
+ import { ACCOUNT_DEACTIVATED_MESSAGE, AccountDeactivatedError, AuthBackendError } from '../auth/index.js';
8
+ import type { IExternalApiKeyService, InternalTokenService } from '../tool-auth/index.js';
9
+ import { rejectConnectionKey } from '../tool-auth/index.js';
11
10
  import type { BevelOAuthProvider } from './oauth/bevel-oauth-provider.js';
12
- import '../tool-auth/external-api-key.interface.js'; // Express Request augmentation (req.externalApiKeyId)
13
- import '../audit/audit.contract.js'; // Express Request augmentation (req.agentConnectionId)
11
+ import '../tool-auth/index.js'; // Express Request augmentation (req.externalApiKeyId)
12
+ import '../audit/index.js'; // Express Request augmentation (req.agentConnectionId)
14
13
 
15
14
  /** Which of the four credentials below an MCP request was authenticated with. */
16
15
  export type McpCallerKind = 'key' | 'oauth' | 'internal' | 'session';
@@ -9,13 +9,11 @@ import {
9
9
  InvalidTokenLabelError,
10
10
  TokenNotFoundError,
11
11
  TokenStillActiveError,
12
- } from '../tool-auth/external-api-key.errors.js';
13
- import type { IExternalApiKeyService } from '../tool-auth/external-api-key.interface.js';
14
- import type { InternalTokenService } from '../tool-auth/internal-token.service.js';
12
+ } from '../tool-auth/index.js';
13
+ import type { IExternalApiKeyService, InternalTokenService, ILlmUsageMeter } from '../tool-auth/index.js';
15
14
  import { MCP_LOOPBACK_TOKEN_TTL_MS, type McpService } from './mcp.service.js';
16
15
  import type { BevelOAuthProvider } from './oauth/bevel-oauth-provider.js';
17
- import type { ILlmUsageMeter } from '../tool-auth/llm-usage-meter.js';
18
- import '../tool-auth/external-api-key.interface.js'; // req.externalApiKeyId augmentation
16
+ import '../tool-auth/index.js'; // req.externalApiKeyId augmentation
19
17
  import './mcp-auth.middleware.js'; // req.mcpCallerKind augmentation
20
18
  import { isPagePath } from '../audit/index.js';
21
19
 
@@ -37,6 +37,7 @@ import {
37
37
  installSessionRecovery,
38
38
  flattenManualTool,
39
39
  toListedTool,
40
+ withReadOnlyOverride,
40
41
  toolError,
41
42
  retiredToolMessage,
42
43
  needsAuthorizationResult,
@@ -49,18 +50,13 @@ import {
49
50
  type LoadedSkill,
50
51
  } from '@bevel-software/platform-mcp-core';
51
52
  import type { KbLayout } from '@bevel-software/platform-shared';
52
- import { bevelSecretsLoaderConfig } from '../secrets-vault/index.js';
53
- import {
54
- scopesCovered,
55
- type ForcedRefreshOutcome,
56
- type ISecretsVaultService,
57
- } from '../secrets-vault/secrets-vault.contract.js';
58
- import { EXTERNAL_KB_MANUAL_NAME } from '../tool-manuals/tool-manuals.contract.js';
59
- import type { IToolManualService } from '../tool-manuals/tool-manuals.contract.js';
60
- import type { SpillStore } from '../workspace/spill-store.js';
53
+ import { bevelSecretsLoaderConfig, type ForcedRefreshOutcome, type ISecretsVaultService, scopesCovered } from '../secrets-vault/index.js';
54
+ import { EXTERNAL_KB_MANUAL_NAME } from '../tool-manuals/index.js';
55
+ import type { IToolManualService } from '../tool-manuals/index.js';
56
+ import type { SpillStore } from '../workspace/index.js';
61
57
  import type { HiddenToolSource } from '../../shared/hidden-tools.js';
62
58
  import { seedBevelHostedManualVars } from '../../shared/utcp-namespace.js';
63
- import type { InternalTokenService } from '../tool-auth/internal-token.service.js';
59
+ import type { InternalTokenService } from '../tool-auth/index.js';
64
60
  import { RequestAudit, type IAgentEventRecorder, type RecordedPrincipal } from '../audit/index.js';
65
61
  import { ManualFailureMemo } from './manual-failure-memo.js';
66
62
  import { DownstreamPool, POOL_KEY_SEPARATOR, type DownstreamPoolOptions, type Lease } from './downstream-pool.js';
@@ -78,7 +74,7 @@ import {
78
74
  type AgentPreambleReader,
79
75
  type ComposedAgentInstructions,
80
76
  } from '../agent-instructions/index.js';
81
- import { guideFirstDescription } from '../tool-registry/guide-first.js';
77
+ import { guideFirstDescription } from '../tool-registry/index.js';
82
78
 
83
79
  /**
84
80
  * Configuration for the loopback proxy. `loopbackBaseUrl` is the backend's own
@@ -123,6 +119,16 @@ export interface McpProxyOptions {
123
119
  * knowledge base's.
124
120
  */
125
121
  secretsScope?: string;
122
+ /**
123
+ * The deployment's read-only overrides, by tool name, read per listing so an
124
+ * admin's change on the Tools page is in the next `tools/list`. Joined on
125
+ * here, at listing time, for the platform tools and the code-mode meta-tools
126
+ * alike: the platform tools' BUILT-IN hint arrives as the manual's
127
+ * `read-only` tag, in a surface that is cached across requests, so an
128
+ * override baked into it would outlive the toggle that set it. Absent, every
129
+ * tool lists its built-in hint.
130
+ */
131
+ readOnlyOverrides?: () => Promise<Readonly<Record<string, boolean>>>;
126
132
  }
127
133
 
128
134
  /** Who a request is from — everything the proxy needs, resolved from that request's own bearer. */
@@ -553,7 +559,15 @@ export class McpService {
553
559
  );
554
560
 
555
561
  server.setRequestHandler(ListToolsRequestSchema, async () => inRequest(async () => {
556
- const [{ tools, catalogNames }, { toolPrefix }] = await Promise.all([requestSurface(), agentInstructions()]);
562
+ const [{ tools, catalogNames }, { toolPrefix }, readOnly] = await Promise.all([
563
+ requestSurface(),
564
+ agentInstructions(),
565
+ // A failed read lists the built-in hints rather than no listing at all.
566
+ this.opts.readOnlyOverrides?.().catch((err: unknown) => {
567
+ log.warn('tools/list: could not read the read-only overrides; listing built-in hints.', { err });
568
+ return undefined;
569
+ }),
570
+ ]);
557
571
  // A discovered tool whose name collides with a meta-tool would be
558
572
  // listed but never callable (the dispatcher routes the name to the
559
573
  // meta-tool first), so drop it from the listing entirely.
@@ -590,7 +604,9 @@ export class McpService {
590
604
  // place for it), so it is joined on here — the one point where a
591
605
  // discovered tool becomes a listing entry.
592
606
  const ui = apps && Object.hasOwn(apps.tools, t.mcpName) ? apps.tools[t.mcpName] : undefined;
593
- const entry = toListedTool(ui ? { ...t, ui } : t); // logs its own reason on a name/schema drop
607
+ // An admin's override of a platform tool's hint, read for THIS listing.
608
+ const hinted = withReadOnlyOverride(t, readOnly);
609
+ const entry = toListedTool(ui ? { ...hinted, ui } : hinted); // logs its own reason on a name/schema drop
594
610
  if (!entry) {
595
611
  dropped.push(t.mcpName);
596
612
  continue;
@@ -641,6 +657,7 @@ export class McpService {
641
657
  // built here, so here it is.
642
658
  const metaTools = codeModeMetaTools(EXTERNAL_KB_MANUAL_NAME, examplePool, {
643
659
  sharedRulesPointer: '',
660
+ ...(readOnly ? { readOnly } : {}),
644
661
  }).map((tool) => ({ ...tool, description: guideFirstDescription(tool.description) }));
645
662
  // Log only when a tool was dropped (name/schema/duplicate) — that's the
646
663
  // anomaly worth surfacing, since a downstream client would otherwise hide
@@ -21,8 +21,8 @@ import type {
21
21
  OAuthTokens,
22
22
  } from '@modelcontextprotocol/sdk/shared/auth.js';
23
23
  import type { AgentConnectedEvent } from '@bevel-software/platform-shared';
24
- import type { Database } from '../../database/connection.js';
25
- import { agentConnections, oauthAuthCodes, oauthClients, oauthTokens, users } from '../../database/schema.js';
24
+ import type { Database } from '../../database/index.js';
25
+ import { agentConnections, oauthAuthCodes, oauthClients, oauthTokens, users } from '../../database/index.js';
26
26
  import type { TokenCrypto } from '../../../shared/token-crypto.js';
27
27
  import { signAuthRequest, type McpAuthRequestState } from './oauth-state.js';
28
28
 
@@ -4,7 +4,7 @@ import { logger } from '../../../shared/logging.js';
4
4
  const log = logger('mcp-oauth');
5
5
  import type { BevelOAuthProvider } from './bevel-oauth-provider.js';
6
6
  import { verifyAuthRequest, type McpAuthRequestState } from './oauth-state.js';
7
- import '../../auth/auth.middleware.js'; // Express Request augmentation (req.userId / req.userEmail)
7
+ import '../../auth/index.js'; // Express Request augmentation (req.userId / req.userEmail)
8
8
 
9
9
  export interface OAuthConsentRoutesDeps {
10
10
  provider: BevelOAuthProvider;
@@ -3,7 +3,7 @@ import type { AuthUser } from '@bevel-software/platform-shared';
3
3
  import { logger } from '../../shared/logging.js';
4
4
  import { WorkflowDomainError } from '../../shared/domain-errors.js';
5
5
  import type { IStarterPackService } from './onboarding.contract.js';
6
- import '../auth/auth.middleware.js'; // Express Request augmentation (req.userId)
6
+ import '../auth/index.js'; // Express Request augmentation (req.userId)
7
7
 
8
8
  const log = logger('starter-packs');
9
9
 
@@ -64,11 +64,10 @@ import {
64
64
  import { logger } from '../../shared/logging.js';
65
65
  import { PushNeedsAgentResolutionError, WorkflowDomainError } from '../../shared/domain-errors.js';
66
66
  import type { KbContext } from '../../shared/kb-context.js';
67
- import type { IAdminAccessService } from '../admin/admin.interface.js';
68
- import type { IAccessControl } from '../access/access-control.interface.js';
69
- import type { FileChangeNotifier } from '../kb-fs/file-change-notifier.js';
70
- import { LockingFilesystem } from '../kb-fs/locking-filesystem.js';
71
- import type { WorkspaceMutex } from '../kb-fs/mutex.js';
67
+ import type { IAdminAccessService } from '../admin/index.js';
68
+ import type { IAccessControl } from '../access/index.js';
69
+ import type { FileChangeNotifier, WorkspaceMutex } from '../kb-fs/index.js';
70
+ import { LockingFilesystem } from '../kb-fs/index.js';
72
71
  import type { IFsProbe, ITreeWalker } from '../../shared/fs.contract.js';
73
72
  import {
74
73
  isUntouchedStarterPage,
@@ -76,7 +75,7 @@ import {
76
75
  type FirstRunStarter,
77
76
  type FirstRunStarterSource,
78
77
  type MayRead,
79
- } from '../workspace/first-run.js';
78
+ } from '../workspace/index.js';
80
79
  import { pluginAccessMd, withCreatorGrants, type PluginSource } from '../plugins/index.js';
81
80
  import {
82
81
  NO_STARTER_PACK,