@bevel-software/platform-core-backend 0.21.0 → 0.22.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 (177) hide show
  1. package/dist/core/create-core-server.d.ts.map +1 -1
  2. package/dist/core/create-core-server.js +32 -2
  3. package/dist/core/create-core-server.js.map +1 -1
  4. package/dist/core/create-core-services.d.ts +13 -1
  5. package/dist/core/create-core-services.d.ts.map +1 -1
  6. package/dist/core/create-core-services.js +51 -5
  7. package/dist/core/create-core-services.js.map +1 -1
  8. package/dist/modules/access/access-requests.contract.d.ts +75 -0
  9. package/dist/modules/access/access-requests.contract.d.ts.map +1 -0
  10. package/dist/modules/access/access-requests.contract.js +20 -0
  11. package/dist/modules/access/access-requests.contract.js.map +1 -0
  12. package/dist/modules/access/access-requests.routes.d.ts +35 -0
  13. package/dist/modules/access/access-requests.routes.d.ts.map +1 -0
  14. package/dist/modules/access/access-requests.routes.js +237 -0
  15. package/dist/modules/access/access-requests.routes.js.map +1 -0
  16. package/dist/modules/access/access-requests.service.d.ts +123 -0
  17. package/dist/modules/access/access-requests.service.d.ts.map +1 -0
  18. package/dist/modules/access/access-requests.service.js +337 -0
  19. package/dist/modules/access/access-requests.service.js.map +1 -0
  20. package/dist/modules/access-model/access-grammar.d.ts +12 -0
  21. package/dist/modules/access-model/access-grammar.d.ts.map +1 -1
  22. package/dist/modules/access-model/access-grammar.js +24 -0
  23. package/dist/modules/access-model/access-grammar.js.map +1 -1
  24. package/dist/modules/auth/auth.service.d.ts +26 -1
  25. package/dist/modules/auth/auth.service.d.ts.map +1 -1
  26. package/dist/modules/auth/auth.service.js +11 -2
  27. package/dist/modules/auth/auth.service.js.map +1 -1
  28. package/dist/modules/github-app/github-app.client.d.ts +101 -0
  29. package/dist/modules/github-app/github-app.client.d.ts.map +1 -0
  30. package/dist/modules/github-app/github-app.client.js +222 -0
  31. package/dist/modules/github-app/github-app.client.js.map +1 -0
  32. package/dist/modules/github-app/github-app.connection.d.ts +102 -0
  33. package/dist/modules/github-app/github-app.connection.d.ts.map +1 -0
  34. package/dist/modules/github-app/github-app.connection.js +185 -0
  35. package/dist/modules/github-app/github-app.connection.js.map +1 -0
  36. package/dist/modules/github-app/github-app.routes.d.ts +59 -0
  37. package/dist/modules/github-app/github-app.routes.d.ts.map +1 -0
  38. package/dist/modules/github-app/github-app.routes.js +323 -0
  39. package/dist/modules/github-app/github-app.routes.js.map +1 -0
  40. package/dist/modules/github-app/index.d.ts +4 -0
  41. package/dist/modules/github-app/index.d.ts.map +1 -0
  42. package/dist/modules/github-app/index.js +4 -0
  43. package/dist/modules/github-app/index.js.map +1 -0
  44. package/dist/modules/kb-fs/remote-url.d.ts +22 -0
  45. package/dist/modules/kb-fs/remote-url.d.ts.map +1 -0
  46. package/dist/modules/kb-fs/remote-url.js +35 -0
  47. package/dist/modules/kb-fs/remote-url.js.map +1 -0
  48. package/dist/modules/plugins/join-proposals.d.ts +17 -5
  49. package/dist/modules/plugins/join-proposals.d.ts.map +1 -1
  50. package/dist/modules/plugins/join-proposals.js +76 -22
  51. package/dist/modules/plugins/join-proposals.js.map +1 -1
  52. package/dist/modules/plugins/join-requests.service.d.ts +111 -18
  53. package/dist/modules/plugins/join-requests.service.d.ts.map +1 -1
  54. package/dist/modules/plugins/join-requests.service.js +173 -29
  55. package/dist/modules/plugins/join-requests.service.js.map +1 -1
  56. package/dist/modules/plugins/plugins.routes.d.ts.map +1 -1
  57. package/dist/modules/plugins/plugins.routes.js +3 -2
  58. package/dist/modules/plugins/plugins.routes.js.map +1 -1
  59. package/dist/modules/settings/deployment-settings.service.d.ts +22 -1
  60. package/dist/modules/settings/deployment-settings.service.d.ts.map +1 -1
  61. package/dist/modules/settings/deployment-settings.service.js +93 -4
  62. package/dist/modules/settings/deployment-settings.service.js.map +1 -1
  63. package/dist/modules/settings/managed-repository.d.ts +43 -0
  64. package/dist/modules/settings/managed-repository.d.ts.map +1 -0
  65. package/dist/modules/settings/managed-repository.js +60 -0
  66. package/dist/modules/settings/managed-repository.js.map +1 -0
  67. package/dist/modules/settings/repository-source.d.ts +128 -0
  68. package/dist/modules/settings/repository-source.d.ts.map +1 -0
  69. package/dist/modules/settings/repository-source.js +150 -0
  70. package/dist/modules/settings/repository-source.js.map +1 -0
  71. package/dist/modules/settings/setup.routes.d.ts +27 -4
  72. package/dist/modules/settings/setup.routes.d.ts.map +1 -1
  73. package/dist/modules/settings/setup.routes.js +187 -13
  74. package/dist/modules/settings/setup.routes.js.map +1 -1
  75. package/dist/modules/skills/skill-access-requests.routes.d.ts +6 -8
  76. package/dist/modules/skills/skill-access-requests.routes.d.ts.map +1 -1
  77. package/dist/modules/skills/skill-access-requests.routes.js +24 -63
  78. package/dist/modules/skills/skill-access-requests.routes.js.map +1 -1
  79. package/dist/modules/tool-helpers/tool-context.d.ts.map +1 -1
  80. package/dist/modules/tool-helpers/tool-context.js +15 -0
  81. package/dist/modules/tool-helpers/tool-context.js.map +1 -1
  82. package/dist/modules/workflow/agent-tools/workflow.tools.d.ts.map +1 -1
  83. package/dist/modules/workflow/agent-tools/workflow.tools.js +38 -2
  84. package/dist/modules/workflow/agent-tools/workflow.tools.js.map +1 -1
  85. package/dist/modules/workflow/git/git.service.d.ts +3 -1
  86. package/dist/modules/workflow/git/git.service.d.ts.map +1 -1
  87. package/dist/modules/workflow/git/git.service.js +17 -4
  88. package/dist/modules/workflow/git/git.service.js.map +1 -1
  89. package/dist/modules/workflow/git/node-git-runner.d.ts.map +1 -1
  90. package/dist/modules/workflow/git/node-git-runner.js +5 -0
  91. package/dist/modules/workflow/git/node-git-runner.js.map +1 -1
  92. package/dist/modules/workflow/git/pull-request.service.d.ts +45 -0
  93. package/dist/modules/workflow/git/pull-request.service.d.ts.map +1 -1
  94. package/dist/modules/workflow/git/pull-request.service.js +99 -0
  95. package/dist/modules/workflow/git/pull-request.service.js.map +1 -1
  96. package/dist/modules/workflow/workflow.routes.d.ts.map +1 -1
  97. package/dist/modules/workflow/workflow.routes.js +3 -1
  98. package/dist/modules/workflow/workflow.routes.js.map +1 -1
  99. package/dist/modules/workflow/workflow.service.d.ts +34 -7
  100. package/dist/modules/workflow/workflow.service.d.ts.map +1 -1
  101. package/dist/modules/workflow/workflow.service.js +148 -48
  102. package/dist/modules/workflow/workflow.service.js.map +1 -1
  103. package/dist/modules/workspace/startup/kb-startup-runner.d.ts +66 -0
  104. package/dist/modules/workspace/startup/kb-startup-runner.d.ts.map +1 -1
  105. package/dist/modules/workspace/startup/kb-startup-runner.js +148 -0
  106. package/dist/modules/workspace/startup/kb-startup-runner.js.map +1 -1
  107. package/dist/modules/workspace/workspace.service.d.ts.map +1 -1
  108. package/dist/modules/workspace/workspace.service.js +17 -1
  109. package/dist/modules/workspace/workspace.service.js.map +1 -1
  110. package/dist/modules/workspace/workspace.tools.d.ts.map +1 -1
  111. package/dist/modules/workspace/workspace.tools.js +28 -2
  112. package/dist/modules/workspace/workspace.tools.js.map +1 -1
  113. package/dist/shared/domain-errors.d.ts +39 -0
  114. package/dist/shared/domain-errors.d.ts.map +1 -1
  115. package/dist/shared/domain-errors.js +55 -0
  116. package/dist/shared/domain-errors.js.map +1 -1
  117. package/dist/shared/git.contract.d.ts +10 -0
  118. package/dist/shared/git.contract.d.ts.map +1 -1
  119. package/dist/shared/git.contract.js.map +1 -1
  120. package/package.json +3 -3
  121. package/src/core/create-core-server.ts +37 -1
  122. package/src/core/create-core-services.ts +65 -8
  123. package/src/modules/access/__tests__/access-requests.recut.test.ts +134 -0
  124. package/src/modules/access/__tests__/access-requests.routes.test.ts +610 -0
  125. package/src/modules/access/access-requests.contract.ts +93 -0
  126. package/src/modules/access/access-requests.routes.ts +286 -0
  127. package/src/modules/access/access-requests.service.ts +420 -0
  128. package/src/modules/access-model/access-grammar.ts +22 -0
  129. package/src/modules/auth/__tests__/auth.service.test.ts +38 -0
  130. package/src/modules/auth/auth.service.ts +28 -1
  131. package/src/modules/github-app/__tests__/github-app.test.ts +848 -0
  132. package/src/modules/github-app/github-app.client.ts +268 -0
  133. package/src/modules/github-app/github-app.connection.ts +204 -0
  134. package/src/modules/github-app/github-app.routes.ts +359 -0
  135. package/src/modules/github-app/index.ts +19 -0
  136. package/src/modules/kb-fs/__tests__/remote-url.test.ts +38 -0
  137. package/src/modules/kb-fs/remote-url.ts +35 -0
  138. package/src/modules/plugins/__tests__/join-proposals.test.ts +100 -19
  139. package/src/modules/plugins/__tests__/join-requests.service.test.ts +27 -11
  140. package/src/modules/plugins/__tests__/join-requests.settlement.test.ts +371 -0
  141. package/src/modules/plugins/__tests__/plugins.routes.test.ts +1 -1
  142. package/src/modules/plugins/join-proposals.ts +87 -19
  143. package/src/modules/plugins/join-requests.service.ts +199 -39
  144. package/src/modules/plugins/plugins.routes.ts +3 -2
  145. package/src/modules/settings/__tests__/repository-source.test.ts +191 -0
  146. package/src/modules/settings/__tests__/setup.routes.git-mode.test.ts +353 -0
  147. package/src/modules/settings/__tests__/setup.routes.github-app.test.ts +282 -0
  148. package/src/modules/settings/__tests__/setup.routes.managed-phase.test.ts +233 -0
  149. package/src/modules/settings/deployment-settings.service.ts +109 -3
  150. package/src/modules/settings/managed-repository.ts +68 -0
  151. package/src/modules/settings/repository-source.ts +197 -0
  152. package/src/modules/settings/setup.routes.ts +214 -10
  153. package/src/modules/skills/__tests__/skill-access-requests.routes.test.ts +5 -1
  154. package/src/modules/skills/skill-access-requests.routes.ts +25 -75
  155. package/src/modules/tool-helpers/tool-context.ts +15 -0
  156. package/src/modules/workflow/__tests__/apply-failure.test.ts +9 -1
  157. package/src/modules/workflow/__tests__/workflow.service.facade.test.ts +159 -8
  158. package/src/modules/workflow/__tests__/workflow.service.update-from-target.test.ts +146 -40
  159. package/src/modules/workflow/agent-tools/__tests__/workflow.tools.test.ts +141 -1
  160. package/src/modules/workflow/agent-tools/workflow.tools.ts +49 -3
  161. package/src/modules/workflow/git/__tests__/git.service.pull.test.ts +121 -0
  162. package/src/modules/workflow/git/__tests__/pull-request.service.getPrDetail.test.ts +145 -2
  163. package/src/modules/workflow/git/__tests__/pull-request.service.viewer-can-delete.test.ts +166 -0
  164. package/src/modules/workflow/git/git.service.ts +25 -4
  165. package/src/modules/workflow/git/node-git-runner.ts +6 -0
  166. package/src/modules/workflow/git/pull-request.service.ts +119 -0
  167. package/src/modules/workflow/workflow.routes.ts +3 -1
  168. package/src/modules/workflow/workflow.service.ts +170 -52
  169. package/src/modules/workspace/__tests__/workspace.service.unknown-branch.test.ts +43 -0
  170. package/src/modules/workspace/__tests__/workspace.tools.branch-errors.test.ts +233 -7
  171. package/src/modules/workspace/__tests__/workspace.tools.test.ts +35 -3
  172. package/src/modules/workspace/startup/__tests__/kb-startup-runner.test.ts +211 -0
  173. package/src/modules/workspace/startup/kb-startup-runner.ts +159 -0
  174. package/src/modules/workspace/workspace.service.ts +17 -1
  175. package/src/modules/workspace/workspace.tools.ts +35 -0
  176. package/src/shared/domain-errors.ts +58 -0
  177. package/src/shared/git.contract.ts +10 -0
@@ -8,6 +8,8 @@ import { isDefaultKbLayout, validateBranchModel, validateKbLayout, } from '@beve
8
8
  import { failureOf } from '../../shared/git-failure.js';
9
9
  import { redactSecret, urlQuerySecrets } from '../../shared/redact-secret.js';
10
10
  import { listRootFolders, pickListingBranch } from './git-root-folders.js';
11
+ import { MANAGED_DEFAULT_BRANCH } from './managed-repository.js';
12
+ import { GIT_MODES } from './repository-source.js';
11
13
  import '../auth/auth.middleware.js'; // Express Request augmentation
12
14
  /** Which name a host expects beside the token when none is configured. */
13
15
  const DEFAULT_GIT_USERNAME = 'x-access-token';
@@ -79,8 +81,14 @@ oidcRedirectUri = '',
79
81
  /** The single sign-on check. Injected so route tests can answer for the provider. */
80
82
  checkOidc = checkOidcConfiguration,
81
83
  /** The issuer-only half, for a test with no application id or secret yet. */
82
- checkIssuer = (url) => checkOidcIssuer(url)) {
84
+ checkIssuer = (url) => checkOidcIssuer(url),
85
+ /**
86
+ * The ways a deployment can be given its repository. Absent, there is the
87
+ * one there always was: an address and a token, read from the settings.
88
+ */
89
+ repository) {
83
90
  const router = express.Router();
91
+ const source = repository?.source;
84
92
  /**
85
93
  * Why the last setup-time run of the KB startup phase FAILED, or null. While
86
94
  * set the deployment stays GATED: the settings are saved but the KB was
@@ -124,7 +132,28 @@ checkIssuer = (url) => checkOidcIssuer(url)) {
124
132
  return kbStartupRunner.lastFailureKind?.() ?? failureOf(message);
125
133
  };
126
134
  /** The app-gate answer: settings complete AND the KB phase settled clean, whoever ran it. */
127
- const kbReady = () => isComplete(settings, kb) && kbInit === null && kbInitInFlight === null && bootFailure() === null;
135
+ const kbReady = () => isComplete(settings, kb, source) && kbInit === null && kbInitInFlight === null && bootFailure() === null;
136
+ /**
137
+ * Which ways of having a repository this deployment offers and which one
138
+ * it is on, for the setup screen. `mode` is the one IN EFFECT, inferred
139
+ * for a deployment that never chose; `chosen` is the one the settings
140
+ * say, which differs from it between a move and the restart the move
141
+ * owes. The screen opens on what was chosen, says a restart is pending
142
+ * when the two differ, and offers the first of `modes` to a deployment
143
+ * that has none. `pinned` names the variable that chose for the
144
+ * deployment, when one did. Nothing at all from a mount without the
145
+ * choice, which the screen reads as the one way there was.
146
+ */
147
+ const repositoryStatus = () => source
148
+ ? {
149
+ repository: {
150
+ mode: source.mode(),
151
+ chosen: source.chosen(),
152
+ ...(settings.sourceOf('gitMode') === 'env' ? { pinned: 'GIT_MODE' } : {}),
153
+ modes: GIT_MODES.filter((mode) => mode !== 'github-app' || repository?.githubApp !== undefined),
154
+ },
155
+ }
156
+ : {};
128
157
  const requireAdmin = async (req, res, next) => {
129
158
  if (!(await adminAccess.isAdmin(req.userEmail))) {
130
159
  res.status(403).json({ error: 'Admins only' });
@@ -157,9 +186,10 @@ checkIssuer = (url) => checkOidcIssuer(url)) {
157
186
  }
158
187
  res.json({
159
188
  complete: kbReady(),
160
- awaitingRestart: awaitingRestart(settings, kb),
189
+ awaitingRestart: awaitingRestart(settings, kb, source),
161
190
  isAdmin: true,
162
191
  settings: settings.describe(),
192
+ ...repositoryStatus(),
163
193
  oidcVerification: await settings.oidcVerification(),
164
194
  ...(kbInit ? { kbInit } : bootFailure() !== null ? { kbInit: bootFailureKind() } : {}),
165
195
  ...(sync ? { sync: { url: sync.url, last: sync.lastSync() } } : {}),
@@ -200,7 +230,13 @@ checkIssuer = (url) => checkOidcIssuer(url)) {
200
230
  // save that flips it false→true — whichever field arrives last — is the
201
231
  // one that must run the KB startup phase, regardless of which save
202
232
  // configured the branch model.
203
- const wasComplete = isComplete(settings, kb);
233
+ const wasComplete = isComplete(settings, kb, source);
234
+ // A different question, asked of the GATE: whether anyone is being
235
+ // served. Settings that are answered are not a deployment that works
236
+ // — one whose first clone failed has answered everything and serves
237
+ // nobody.
238
+ const wasServing = kbReady();
239
+ nameBranchesOfManagedRepository(entries);
204
240
  if (!(await connectionHoldsFor(entries, wasComplete, res)))
205
241
  return;
206
242
  const oidc = await signInHoldsFor(entries, res);
@@ -214,7 +250,36 @@ checkIssuer = (url) => checkOidcIssuer(url)) {
214
250
  if (oidc.record) {
215
251
  await settings.recordOidcVerification(oidc.record.state, oidc.record.credentials);
216
252
  }
217
- const { restartRequired, restartKeys } = await settings.save(entries, req.userId ?? null);
253
+ const saved = await settings.save(entries, req.userId ?? null);
254
+ /**
255
+ * A deployment that was not serving has nothing on the mode it had:
256
+ * the mode chosen takes effect now, and the startup phase below is
257
+ * what a restart would have run. One that WAS serving stays on the
258
+ * mode it is on, working copies and credential alike, until it is
259
+ * started again.
260
+ *
261
+ * SERVING, not answered. The pin protects what is running on the
262
+ * mode in effect, and behind a shut gate nothing is: a first run
263
+ * whose initialisation failed, a boot that found its repository
264
+ * unreachable. Pinned there, the way out of a repository that does
265
+ * not work would be closed — the admin chooses another, the retry
266
+ * below runs against the one that just failed, and the screen asks
267
+ * for a restart that changes nothing.
268
+ */
269
+ if (source && !wasServing)
270
+ source.takeEffect();
271
+ /**
272
+ * The restart the mode owes is read off the two modes themselves, not
273
+ * off what this save wrote: it is owed for as long as the mode chosen
274
+ * is not the one in effect, whichever save chose it, and no longer
275
+ * once a save chooses the mode in effect back.
276
+ */
277
+ const modePending = source !== undefined && source.chosen() !== source.mode();
278
+ const restartKeys = [
279
+ ...saved.restartKeys.filter((key) => key !== 'gitMode'),
280
+ ...(modePending ? ['gitMode'] : []),
281
+ ];
282
+ const restartRequired = restartKeys.length > 0;
218
283
  /** Whether this save put the stored folder names into the running process. */
219
284
  let layoutApplied = false;
220
285
  /** Whether this save put the stored branch model into the running process. */
@@ -257,7 +322,7 @@ checkIssuer = (url) => checkOidcIssuer(url)) {
257
322
  * on a re-save of a complete, healthy setup: with the gate open,
258
323
  * sessions may be live and that is no longer a quiet moment.
259
324
  */
260
- if ((!wasComplete || kbInit !== null || bootFailure() !== null) && isComplete(settings, kb)) {
325
+ if ((!wasComplete || kbInit !== null || bootFailure() !== null) && isComplete(settings, kb, source)) {
261
326
  /**
262
327
  * The folder names, applied BEFORE the phase for the same reason as
263
328
  * the branch model above: they are otherwise applied once at boot, so
@@ -298,6 +363,7 @@ checkIssuer = (url) => checkOidcIssuer(url)) {
298
363
  const raw = initErr instanceof Error ? initErr.message : String(initErr);
299
364
  const msg = redactSecret(raw, [
300
365
  settings.resolve('gitToken'),
366
+ source?.credentials.token() ?? '',
301
367
  ...urlQuerySecrets(settings.resolve('kbRepoUrl')),
302
368
  ]);
303
369
  log.error(`KB initialization failed after setup completed: ${msg}`);
@@ -321,8 +387,9 @@ checkIssuer = (url) => checkOidcIssuer(url)) {
321
387
  !(branchModelApplied && BRANCH_KEYS.includes(key)))
322
388
  : restartRequired,
323
389
  complete: kbReady(),
324
- awaitingRestart: awaitingRestart(settings, kb),
390
+ awaitingRestart: awaitingRestart(settings, kb, source),
325
391
  settings: settings.describe(),
392
+ ...repositoryStatus(),
326
393
  oidcVerification: await settings.oidcVerification(),
327
394
  });
328
395
  }
@@ -337,6 +404,92 @@ checkIssuer = (url) => checkOidcIssuer(url)) {
337
404
  res.status(500).json({ error: 'Could not save these settings.' });
338
405
  }
339
406
  }
407
+ /**
408
+ * A repository the deployment keeps for itself is new, and empty, and has
409
+ * no branches for anyone to look up: the branch model is ours to name. It
410
+ * is named only when nobody has — an admin's own answer, or one the
411
+ * environment supplies, stands. Every other mode has a repository that
412
+ * already exists, whose branches are asked for, never guessed.
413
+ */
414
+ function nameBranchesOfManagedRepository(entries) {
415
+ if (!source)
416
+ return;
417
+ const after = settings.resolveAfter(entries);
418
+ if (source.mode(after) !== 'managed')
419
+ return;
420
+ if (after('defaultBranch') || after('protectedBranches'))
421
+ return;
422
+ entries.defaultBranch = MANAGED_DEFAULT_BRANCH;
423
+ entries.protectedBranches = MANAGED_DEFAULT_BRANCH;
424
+ }
425
+ /**
426
+ * The same rule for a repository reached through a GitHub App: a saved
427
+ * connection is one GitHub has accepted for reading and writing, asked
428
+ * with the token git will present, which is the installation's.
429
+ *
430
+ * That token is also what keeps the repository's NAME honest. It is the
431
+ * one part of this connection an admin types, and a name the installation
432
+ * does not reach is refused here by GitHub, not by a list of ours.
433
+ *
434
+ * The repository has just said what it calls its trunk, so a deployment
435
+ * with no branch model is given that one: the same answer the setup
436
+ * screen fills in for a repository reached by its address.
437
+ */
438
+ async function githubConnectionHoldsFor(setup, entries, after, wasComplete, res) {
439
+ const refuse = (problem, field = 'githubRepository') => {
440
+ res.status(400).json({ error: problem, problems: { [field]: problem } });
441
+ return false;
442
+ };
443
+ const app = setup.githubApp;
444
+ if (!app)
445
+ return refuse('This deployment cannot connect to GitHub through a GitHub App.', 'gitMode');
446
+ if (!app.answered(after)) {
447
+ return refuse(after('githubRepository')
448
+ ? 'Connect GitHub before choosing a repository.'
449
+ : 'Choose the repository the knowledge base lives in.');
450
+ }
451
+ const url = app.url(after);
452
+ const unanswered = validateBranchModel({ defaultBranch: after('defaultBranch'), protectedBranches: after('protectedBranches') }) !== null;
453
+ // Against what is CHOSEN now, not what is in effect: a repository that
454
+ // was proven by the save that chose it is not proven again by the next.
455
+ const stored = (key) => settings.resolve(key);
456
+ const changes = setup.source.chosen() !== 'github-app' || url !== setup.source.url(stored);
457
+ if (!changes && (wasComplete || unanswered))
458
+ return true;
459
+ // BEFORE GitHub is asked anything with the installation token: that
460
+ // token reaches every repository the installation covers, and would
461
+ // answer for one the person connecting it could never have written to.
462
+ if (!app.permits(after('githubRepository'), after)) {
463
+ log.warn('a repository was named that the person who connected GitHub could not push to');
464
+ return refuse('Choose a repository your own GitHub account can write to. If this one should be, press “Refresh the list” so it is brought up to date.');
465
+ }
466
+ try {
467
+ await app.prepare({ asked: true });
468
+ }
469
+ catch (err) {
470
+ log.error('GitHub gave no token for the installation:', { detail: err instanceof Error ? err.message : String(err) });
471
+ }
472
+ const token = app.token();
473
+ if (!token) {
474
+ return refuse('GitHub gave this deployment no access. The app may have been uninstalled: connect it again.', 'gitMode');
475
+ }
476
+ const check = await checkConnection({ url, token, username: DEFAULT_GIT_USERNAME });
477
+ if (check.outcome !== 'connected') {
478
+ return refuse(check.outcome === 'read-only'
479
+ ? 'The GitHub App can read that repository but not write to it. Grant it write access to the repository’s contents.'
480
+ : check.reason === 'unreachable'
481
+ ? 'GitHub could not be reached. Try again shortly.'
482
+ : 'The GitHub App cannot reach that repository. Add the repository to the app’s installation on GitHub.');
483
+ }
484
+ if (!after('defaultBranch') && !after('protectedBranches')) {
485
+ const trunk = check.defaultBranch || check.branches[0] || (check.empty ? MANAGED_DEFAULT_BRANCH : '');
486
+ if (trunk) {
487
+ entries.defaultBranch = trunk;
488
+ entries.protectedBranches = trunk;
489
+ }
490
+ }
491
+ return true;
492
+ }
340
493
  /**
341
494
  * A SAVED CONNECTION IS ONE THE HOST HAS ACCEPTED FOR READING AND WRITING.
342
495
  *
@@ -358,6 +511,25 @@ checkIssuer = (url) => checkOidcIssuer(url)) {
358
511
  */
359
512
  async function connectionHoldsFor(entries, wasComplete, res) {
360
513
  const after = settings.resolveAfter(entries);
514
+ if (repository && repository.source.mode(after) === 'managed') {
515
+ // Nothing to prove to a host: the repository is the deployment's own.
516
+ // What has to hold is that it EXISTS before the save that points
517
+ // everything at it, so a disk that cannot take it refuses the choice
518
+ // instead of failing the first clone.
519
+ try {
520
+ await repository.ensureManaged(after('defaultBranch') || MANAGED_DEFAULT_BRANCH);
521
+ return true;
522
+ }
523
+ catch (err) {
524
+ log.error('the managed repository could not be created:', { err });
525
+ const problem = 'The repository could not be created on this deployment’s storage. Check that its backups folder is writable, or connect a repository of your own.';
526
+ res.status(400).json({ error: problem, problems: { gitMode: problem } });
527
+ return false;
528
+ }
529
+ }
530
+ if (repository && repository.source.mode(after) === 'github-app') {
531
+ return githubConnectionHoldsFor(repository, entries, after, wasComplete, res);
532
+ }
361
533
  const now = {
362
534
  url: settings.resolve('kbRepoUrl'),
363
535
  token: settings.resolve('gitToken'),
@@ -670,8 +842,10 @@ checkIssuer = (url) => checkOidcIssuer(url)) {
670
842
  * deployment signs in perfectly well without it, and gating on it would lock
671
843
  * an admin out of the screen where they would set it up.
672
844
  */
673
- export function settingsAnswered(settings) {
674
- const kb = Boolean(settings.resolve('kbRepoUrl') && settings.resolve('gitToken'));
845
+ export function settingsAnswered(settings,
846
+ /** What answers for the repository. Absent: an address and a token, the one way there was. */
847
+ source) {
848
+ const kb = source ? source.answered() : Boolean(settings.resolve('kbRepoUrl') && settings.resolve('gitToken'));
675
849
  const branches = validateBranchModel({
676
850
  defaultBranch: settings.resolve('defaultBranch'),
677
851
  protectedBranches: settings.resolve('protectedBranches'),
@@ -693,11 +867,11 @@ export function settingsAnswered(settings) {
693
867
  * that puts it there. {@link awaitingRestart} is what tells the screen to ask
694
868
  * for one rather than claim a field is missing.
695
869
  */
696
- export function isComplete(settings, kb) {
697
- return settingsAnswered(settings) && kb.isBranchModelConfigured();
870
+ export function isComplete(settings, kb, source) {
871
+ return settingsAnswered(settings, source) && kb.isBranchModelConfigured();
698
872
  }
699
873
  /** Answered, but not yet in effect: everything is stored, the process is stale. */
700
- export function awaitingRestart(settings, kb) {
701
- return settingsAnswered(settings) && !kb.isBranchModelConfigured();
874
+ export function awaitingRestart(settings, kb, source) {
875
+ return settingsAnswered(settings, source) && !kb.isBranchModelConfigured();
702
876
  }
703
877
  //# sourceMappingURL=setup.routes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"setup.routes.js","sourceRoot":"","sources":["../../../src/modules/settings/setup.routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.routes.js","sourceRoot":"","sources":["../../../src/modules/settings/setup.routes.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import express from 'express';
2
2
  import '../auth/auth.middleware.js';
3
- import { type AuthUser, type IWorkflowService } from '@bevel-software/platform-shared';
3
+ import type { AuthUser, IWorkflowService } from '@bevel-software/platform-shared';
4
4
  import type { IAccessControl } from '../access/access-control.interface.js';
5
5
  import type { KbContext } from '../../shared/kb-context.js';
6
6
  import type { WorkspaceService } from '../workspace/workspace.service.js';
@@ -16,13 +16,11 @@ import type { ISkillService } from './skills.contract.js';
16
16
  *
17
17
  * Why it exists: linking a skill into a plugin needs write on the skill's
18
18
  * rules (the link grants the plugin's principal there), and a plugin manager
19
- * often has no say over a skill some other scope owns. The request is a plain
20
- * change request whose branch splices `write: <requester>` into the skill
21
- * folder's `access.md`; the skill's editors see its proposals and accept
22
- * through the ordinary grant path, and it retires itself once the default
23
- * branch carries the grant (`JoinRequestsService`, keyed on the skill FOLDER
24
- * path rather than a plugin name — the branch-name convention takes any
25
- * exact string).
19
+ * often has no say over a skill some other scope owns. The request is opened
20
+ * by the shared `AccessRequestsService` — the same one the Manage access
21
+ * dialog's Request access uses — keyed on the skill FOLDER path, so this
22
+ * button and a Can edit request on that same folder are ONE request, shown in
23
+ * the skill page's banner and in the folder's dialog alike.
26
24
  *
27
25
  * Fail-closed like the skill catalog: a skill the caller cannot read answers
28
26
  * as unknown, and the editors' listing answers `[]` to anyone else.
@@ -1 +1 @@
1
- {"version":3,"file":"skill-access-requests.routes.d.ts","sourceRoot":"","sources":["../../../src/modules/skills/skill-access-requests.routes.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAI9B,OAAO,4BAA4B,CAAC;AACpC,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,gBAAgB,EACtB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAK5E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,8BAA8B,CAAC,IAAI,EAAE;IACnD,YAAY,EAAE,aAAa,CAAC;IAC5B,aAAa,EAAE,cAAc,CAAC;IAC9B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,YAAY,EAAE,mBAAmB,CAAC;IAClC,EAAE,EAAE,SAAS,CAAC;IACd,WAAW,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;CACjE,GAAG,OAAO,CAAC,MAAM,CAyJjB"}
1
+ {"version":3,"file":"skill-access-requests.routes.d.ts","sourceRoot":"","sources":["../../../src/modules/skills/skill-access-requests.routes.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAI9B,OAAO,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAClF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAK5E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,8BAA8B,CAAC,IAAI,EAAE;IACnD,YAAY,EAAE,aAAa,CAAC;IAC5B,aAAa,EAAE,cAAc,CAAC;IAC9B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,YAAY,EAAE,mBAAmB,CAAC;IAClC,EAAE,EAAE,SAAS,CAAC;IACd,WAAW,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;CACjE,GAAG,OAAO,CAAC,MAAM,CA6GjB"}
@@ -2,11 +2,10 @@ import express from 'express';
2
2
  import { logger } from '../../shared/logging.js';
3
3
  const log = logger('skills');
4
4
  import '../auth/auth.middleware.js'; // Express Request.userId / userEmail augmentation
5
- import { joinBranchFor, } from '@bevel-software/platform-shared';
6
- import { spliceGrant } from '../access-model/access-splice.js';
5
+ import { folderTarget } from '../access/access-requests.contract.js';
6
+ import { AccessRequestsService } from '../access/access-requests.service.js';
7
7
  import { WorkflowDomainError } from '../../shared/domain-errors.js';
8
8
  import { domainErrorBody } from '../../shared/http-errors.js';
9
- import { isAbsence } from '../../shared/fs.contract.js';
10
9
  /**
11
10
  * Asking for WRITE on a shared skill — the same machinery as asking to join a
12
11
  * plugin, pointed at a skill folder instead of a plugin folder.
@@ -17,23 +16,29 @@ import { isAbsence } from '../../shared/fs.contract.js';
17
16
  *
18
17
  * Why it exists: linking a skill into a plugin needs write on the skill's
19
18
  * rules (the link grants the plugin's principal there), and a plugin manager
20
- * often has no say over a skill some other scope owns. The request is a plain
21
- * change request whose branch splices `write: <requester>` into the skill
22
- * folder's `access.md`; the skill's editors see its proposals and accept
23
- * through the ordinary grant path, and it retires itself once the default
24
- * branch carries the grant (`JoinRequestsService`, keyed on the skill FOLDER
25
- * path rather than a plugin name — the branch-name convention takes any
26
- * exact string).
19
+ * often has no say over a skill some other scope owns. The request is opened
20
+ * by the shared `AccessRequestsService` — the same one the Manage access
21
+ * dialog's Request access uses — keyed on the skill FOLDER path, so this
22
+ * button and a Can edit request on that same folder are ONE request, shown in
23
+ * the skill page's banner and in the folder's dialog alike.
27
24
  *
28
25
  * Fail-closed like the skill catalog: a skill the caller cannot read answers
29
26
  * as unknown, and the editors' listing answers `[]` to anyone else.
30
27
  */
31
28
  export function createSkillAccessRequestRoutes(deps) {
32
29
  const { skillService, accessControl, workflow, workspaceService, joinRequests, kb, resolveUser } = deps;
33
- const { kbDirName } = kb;
34
30
  const router = express.Router();
35
31
  const wsId = () => kb.defaultWorkspaceId();
36
32
  const rulesOf = (folder) => `${folder}/access.md`;
33
+ // The same opener the Manage access dialog uses, pointed at a skill's
34
+ // folder. Keyed on that folder's PATH, which is what makes this button and
35
+ // a Can edit request on the same folder one request rather than two.
36
+ const requests = new AccessRequestsService({
37
+ workflow,
38
+ workspaceService,
39
+ lifecycle: joinRequests,
40
+ kb,
41
+ });
37
42
  /** The skill the caller may read, by name — or null after answering 404. */
38
43
  async function readableSkill(req, res) {
39
44
  const user = await resolveUser(req);
@@ -59,57 +64,13 @@ export function createSkillAccessRequestRoutes(deps) {
59
64
  res.status(409).json({ error: 'You can already edit this skill', kind: 'already-writable' });
60
65
  return;
61
66
  }
62
- const branch = joinBranchFor(user.email, folder);
63
- // FRESH: a repeated click must find the request the previous one opened,
64
- // and the cached listing can trail it — a miss here would send the
65
- // retry into a duplicate refusal.
66
- const existing = (await workflow.listChangeRequestsAuthoredBy(user.email, { fresh: true })).find((cr) => cr.state === 'open' && cr.branch === branch);
67
- if (existing) {
68
- res.json({ ok: true, number: existing.number });
69
- return;
70
- }
71
- // The branch may already exist (a request listed as closed, a retry
72
- // after a failed open). Existence is PROBED, before and — if creation
73
- // fails — after: the race shows up as "already exists" locally or as a
74
- // rejected push when origin got there first, and a message is not a
75
- // contract. A branch that is there is proceeded against; anything else
76
- // is a real failure, and a proposal on a branch that was not made would
77
- // be worse than the error. STRICT: the list proves absence, and a
78
- // listing that could not fetch proves nothing — it throws instead of
79
- // serving refs from before the branch was made (or deleted).
80
- const branchExists = async () => (await workflow.listBranches(wsId(), { freshFetch: true, strictFetch: true })).some((b) => b.name === branch);
81
- if (!(await branchExists())) {
82
- try {
83
- await workflow.createBranch(wsId(), branch, kb.defaultBranch);
84
- }
85
- catch (err) {
86
- if (!(await branchExists()))
87
- throw err;
88
- }
89
- }
90
- const ws = await workspaceService.getOrCreateForBranch(branch);
91
- const accessPath = `${kbDirName}/${rulesOf(folder)}`;
92
- // Only a PROVEN absence reads as "no rules yet": any other failure must
93
- // not be turned into an empty file that a splice then overwrites.
94
- const current = await workspaceService.readFile(ws.id, accessPath).catch((err) => {
95
- if (!isAbsence(err))
96
- throw err;
97
- return '';
98
- });
99
- const spliced = spliceGrant(current, 'write', { kind: 'user', email: user.email, displayName: user.name }, { target: 'folder' });
100
- if (spliced.changed) {
101
- await workspaceService.writeFile(ws.id, accessPath, spliced.text);
102
- await workflow.commitChanges(ws.id, user, `Request write access to ${name}`);
103
- }
104
- const detail = await workflow.openChangeRequest(ws.id, user, {
105
- sourceBranch: branch,
106
- targetBranch: kb.defaultBranch,
107
- title: `Access request: ${name}`,
108
- description: `${user.name} asked to edit the skill ${name}. An editor of the skill accepts by ` +
109
- `granting the access this branch proposes; the request closes itself once ` +
110
- `every proposal has landed.`,
67
+ const { number } = await requests.open({
68
+ user,
69
+ target: folderTarget(folder),
70
+ itemName: name,
71
+ level: 'write',
111
72
  });
112
- res.json({ ok: true, number: detail.number });
73
+ res.json({ ok: true, number });
113
74
  }
114
75
  catch (err) {
115
76
  if (err instanceof WorkflowDomainError) {
@@ -137,7 +98,7 @@ export function createSkillAccessRequestRoutes(deps) {
137
98
  if (!ctx)
138
99
  return;
139
100
  const crs = await workflow.listChangeRequests();
140
- res.json({ requests: await joinRequests.list(ctx.folder, ctx.folder, crs, ctx.user) });
101
+ res.json({ requests: await joinRequests.list(ctx.folder, folderTarget(ctx.folder), crs, ctx.user) });
141
102
  }
142
103
  catch (err) {
143
104
  log.error('failed to list access requests:', { err });
@@ -159,7 +120,7 @@ export function createSkillAccessRequestRoutes(deps) {
159
120
  res.status(404).json({ error: 'Not found' });
160
121
  return;
161
122
  }
162
- res.json({ closed: await joinRequests.reconcile(ctx.folder, ctx.folder, cr, ctx.user) });
123
+ res.json({ closed: await joinRequests.reconcile(ctx.folder, folderTarget(ctx.folder), cr, ctx.user) });
163
124
  }
164
125
  catch (err) {
165
126
  log.error('failed to reconcile an access request:', { err });
@@ -1 +1 @@
1
- {"version":3,"file":"skill-access-requests.routes.js","sourceRoot":"","sources":["../../../src/modules/skills/skill-access-requests.routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skill-access-requests.routes.js","sourceRoot":"","sources":["../../../src/modules/skills/skill-access-requests.routes.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tool-context.d.ts","sourceRoot":"","sources":["../../../src/modules/tool-helpers/tool-context.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAOxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAG1E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAa,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAErE,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,WAAW,CAAC;IACzB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,eAAe,EAAE,gBAAgB,CAAC;IAClC,MAAM,EAAE,gBAAgB,CAAC;IACzB,6EAA6E;IAC7E,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,aAAa,EAAE,cAAc,CAAC;IAC9B;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,CACjB,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,KAC/C,OAAO,CAAC;QAAE,MAAM,EAAE,WAAW,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE;YAAE,EAAE,EAAE,OAAO,CAAA;SAAE,CAAA;KAAE,CAAC,CAAC;CACpF;AAYD,MAAM,MAAM,kBAAkB,GAAG,CAC/B,IAAI,EAAE,QAAQ,EACd,WAAW,EAAE,WAAW,EACxB,SAAS,CAAC,EAAE,MAAM,KACf,OAAO,CAAC,WAAW,CAAC,CAAC;AAE1B;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,eAAe,GAAG,kBAAkB,CAyEnF"}
1
+ {"version":3,"file":"tool-context.d.ts","sourceRoot":"","sources":["../../../src/modules/tool-helpers/tool-context.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAOxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAI1E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAa,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAErE,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,WAAW,CAAC;IACzB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,eAAe,EAAE,gBAAgB,CAAC;IAClC,MAAM,EAAE,gBAAgB,CAAC;IACzB,6EAA6E;IAC7E,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,aAAa,EAAE,cAAc,CAAC;IAC9B;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,CACjB,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,KAC/C,OAAO,CAAC;QAAE,MAAM,EAAE,WAAW,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE;YAAE,EAAE,EAAE,OAAO,CAAA;SAAE,CAAA;KAAE,CAAC,CAAC;CACpF;AAYD,MAAM,MAAM,kBAAkB,GAAG,CAC/B,IAAI,EAAE,QAAQ,EACd,WAAW,EAAE,WAAW,EACxB,SAAS,CAAC,EAAE,MAAM,KACf,OAAO,CAAC,WAAW,CAAC,CAAC;AAE1B;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,eAAe,GAAG,kBAAkB,CAuFnF"}
@@ -4,6 +4,7 @@ import { LockingFilesystem } from '../kb-fs/locking-filesystem.js';
4
4
  import { ReadOnlyFilesystem } from '../kb-fs/read-only-filesystem.js';
5
5
  import { makeAgentRolesYamlWriteValidator, ROLES_YAML_BASENAME, } from '../access-model/roles-yaml-guard.js';
6
6
  import { isAbsence } from '../../shared/fs.contract.js';
7
+ import { assertBranchProvided } from '../../shared/domain-errors.js';
7
8
  import { branchForWorkspaceId } from '../../shared/workspace-id.js';
8
9
  import { ToolError } from './tool.contract.js';
9
10
  /** A file's text, or null when it does not exist. Any other failure throws. */
@@ -36,6 +37,20 @@ export function createToolContextResolver(deps) {
36
37
  const { loadActiveGroups } = deps;
37
38
  const fsCache = new Map();
38
39
  const getFilesystem = async (branch) => {
40
+ // THE choke point: every knowledge-base tool resolves its workspace
41
+ // through here, and a `call_tool_chain` call reaches the very same route
42
+ // over loopback — so refusing a branch-less call here refuses it on both
43
+ // paths at once, with no per-tool guard to keep in step.
44
+ //
45
+ // Before ANY workspace work, because both things downstream do with this
46
+ // value are wrong when it is absent: `getOrCreateForUser` defaults a
47
+ // missing branch to the deployment's default (protected) branch, so an
48
+ // omitted argument would silently act on `main`; and a present-but-absent
49
+ // value like the string "undefined" goes to `workspaceIdForBranch`, which
50
+ // makes it a workspace directory of that name and then tries to clone a
51
+ // branch nobody ever pushed. Failing closed here means no workspace is
52
+ // created and no clone is attempted.
53
+ assertBranchProvided(branch);
39
54
  const cached = fsCache.get(branch);
40
55
  if (cached)
41
56
  return cached;