@braidhq/server 0.2.1 → 0.4.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 (84) hide show
  1. package/README.md +47 -2
  2. package/dist/app.d.ts.map +1 -1
  3. package/dist/app.js +47 -8
  4. package/dist/app.js.map +1 -1
  5. package/dist/composeApp.d.ts +15 -3
  6. package/dist/composeApp.d.ts.map +1 -1
  7. package/dist/composeApp.js +28 -2
  8. package/dist/composeApp.js.map +1 -1
  9. package/dist/composeFsApp.d.ts +52 -3
  10. package/dist/composeFsApp.d.ts.map +1 -1
  11. package/dist/composeFsApp.js +237 -64
  12. package/dist/composeFsApp.js.map +1 -1
  13. package/dist/defaultOntologyPlugins.d.ts +9 -0
  14. package/dist/defaultOntologyPlugins.d.ts.map +1 -0
  15. package/dist/defaultOntologyPlugins.js +11 -0
  16. package/dist/defaultOntologyPlugins.js.map +1 -0
  17. package/dist/index.d.ts +3 -0
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +1 -0
  20. package/dist/index.js.map +1 -1
  21. package/dist/infrastructure/_shared/paths.d.ts +2 -0
  22. package/dist/infrastructure/_shared/paths.d.ts.map +1 -1
  23. package/dist/infrastructure/_shared/paths.js +6 -0
  24. package/dist/infrastructure/_shared/paths.js.map +1 -1
  25. package/dist/infrastructure/oauth/GitHubOAuth.d.ts +45 -0
  26. package/dist/infrastructure/oauth/GitHubOAuth.d.ts.map +1 -0
  27. package/dist/infrastructure/oauth/GitHubOAuth.js +85 -0
  28. package/dist/infrastructure/oauth/GitHubOAuth.js.map +1 -0
  29. package/dist/infrastructure/oauth/providers.d.ts +19 -0
  30. package/dist/infrastructure/oauth/providers.d.ts.map +1 -0
  31. package/dist/infrastructure/oauth/providers.js +22 -0
  32. package/dist/infrastructure/oauth/providers.js.map +1 -0
  33. package/dist/infrastructure/skill/FsSkillRegistry.d.ts +6 -0
  34. package/dist/infrastructure/skill/FsSkillRegistry.d.ts.map +1 -1
  35. package/dist/infrastructure/skill/FsSkillRegistry.js +7 -1
  36. package/dist/infrastructure/skill/FsSkillRegistry.js.map +1 -1
  37. package/dist/infrastructure/skill/SubprocessSkillRunner.d.ts +28 -5
  38. package/dist/infrastructure/skill/SubprocessSkillRunner.d.ts.map +1 -1
  39. package/dist/infrastructure/skill/SubprocessSkillRunner.js +133 -13
  40. package/dist/infrastructure/skill/SubprocessSkillRunner.js.map +1 -1
  41. package/dist/infrastructure/source/FsSourceSyncStateRepository.d.ts +24 -0
  42. package/dist/infrastructure/source/FsSourceSyncStateRepository.d.ts.map +1 -0
  43. package/dist/infrastructure/source/FsSourceSyncStateRepository.js +71 -0
  44. package/dist/infrastructure/source/FsSourceSyncStateRepository.js.map +1 -0
  45. package/dist/infrastructure/source/unitScan.d.ts.map +1 -1
  46. package/dist/infrastructure/source/unitScan.js +51 -3
  47. package/dist/infrastructure/source/unitScan.js.map +1 -1
  48. package/dist/infrastructure/workspace/productManifestWriter.d.ts +5 -1
  49. package/dist/infrastructure/workspace/productManifestWriter.d.ts.map +1 -1
  50. package/dist/infrastructure/workspace/productManifestWriter.js +5 -2
  51. package/dist/infrastructure/workspace/productManifestWriter.js.map +1 -1
  52. package/dist/middleware/auth.d.ts.map +1 -1
  53. package/dist/middleware/auth.js +8 -1
  54. package/dist/middleware/auth.js.map +1 -1
  55. package/dist/routes/oauth.d.ts +51 -10
  56. package/dist/routes/oauth.d.ts.map +1 -1
  57. package/dist/routes/oauth.js +174 -62
  58. package/dist/routes/oauth.js.map +1 -1
  59. package/dist/routes/skillInputOptions.js +4 -1
  60. package/dist/routes/skillInputOptions.js.map +1 -1
  61. package/dist/routes/skills.d.ts +7 -1
  62. package/dist/routes/skills.d.ts.map +1 -1
  63. package/dist/routes/skills.js +10 -0
  64. package/dist/routes/skills.js.map +1 -1
  65. package/dist/routes/sourceConnection.d.ts +30 -0
  66. package/dist/routes/sourceConnection.d.ts.map +1 -0
  67. package/dist/routes/sourceConnection.js +51 -0
  68. package/dist/routes/sourceConnection.js.map +1 -0
  69. package/dist/routes/sourceWebhooks.d.ts +10 -2
  70. package/dist/routes/sourceWebhooks.d.ts.map +1 -1
  71. package/dist/routes/sourceWebhooks.js +23 -11
  72. package/dist/routes/sourceWebhooks.js.map +1 -1
  73. package/dist/routes/workspaces.d.ts +10 -1
  74. package/dist/routes/workspaces.d.ts.map +1 -1
  75. package/dist/routes/workspaces.js +50 -7
  76. package/dist/routes/workspaces.js.map +1 -1
  77. package/dist/startServer.d.ts +7 -1
  78. package/dist/startServer.d.ts.map +1 -1
  79. package/dist/startServer.js +18 -3
  80. package/dist/startServer.js.map +1 -1
  81. package/dist/startup.d.ts.map +1 -1
  82. package/dist/startup.js +7 -1
  83. package/dist/startup.js.map +1 -1
  84. package/package.json +17 -15
@@ -24,7 +24,7 @@ import { WorkspaceIdParam } from './_shared.js';
24
24
  *
25
25
  * The receiver is loader-agnostic and does not switch on `loader.kind`.
26
26
  * A new loader extends the webhook surface from its plugin definition,
27
- * via `webhook: { repoIdentity, shouldDispatch }`.
27
+ * via `webhook: { upstream, shouldDispatch }`.
28
28
  *
29
29
  * Secrets live in the existing `SecretStore`,
30
30
  * under namespace `webhook-github`, keyed by `<workspaceId>--<sourceId>`.
@@ -32,7 +32,11 @@ import { WorkspaceIdParam } from './_shared.js';
32
32
  * which already use the same `--` separator.
33
33
  */
34
34
  const SECRET_NAMESPACE = 'webhook-github';
35
- const PROVIDER = 'github';
35
+ // Hosts this receiver knows how to verify deliveries from.
36
+ // A source whose upstream lives elsewhere is not webhook-capable here,
37
+ // and says so with a 400,
38
+ // rather than minting a secret that could never authenticate anything.
39
+ const GITHUB_HOSTS = new Set(['github.com']);
36
40
  function secretKey(workspaceId, sourceId) {
37
41
  return `${workspaceId}--${sourceId}`;
38
42
  }
@@ -92,15 +96,15 @@ async function verifyDelivery(deps, context, workspaceId, sourceId) {
92
96
  const resolved = resolveWebhookCapability(deps.pluginRegistry, source);
93
97
  if (!resolved)
94
98
  return undefined;
95
- const identity = resolved.capability.repoIdentity(resolved.config);
96
- if (!identity || identity.provider !== PROVIDER)
99
+ const upstream = resolved.capability.upstream(resolved.config);
100
+ if (!upstream || !GITHUB_HOSTS.has(upstream.host))
97
101
  return undefined;
98
102
  const record = await deps.secretStore.read(SECRET_NAMESPACE, secretKey(workspaceId, sourceId));
99
103
  if (!record)
100
104
  return undefined;
101
105
  if (!verifySignature(rawBody, signature, record.secret))
102
106
  return undefined;
103
- return { workspace, resolved, identity, rawBody };
107
+ return { workspace, resolved, upstream, rawBody };
104
108
  }
105
109
  catch (err) {
106
110
  receiverLogger.warn({ workspaceId, sourceId, err: err instanceof Error ? err.message : String(err) }, 'webhook: pre-signature check failed');
@@ -126,7 +130,7 @@ export function createGithubWebhookReceiver(deps) {
126
130
  const verified = await verifyDelivery(deps, context, workspaceId, sourceId);
127
131
  if (!verified)
128
132
  return unauthorized();
129
- const { workspace, resolved, identity, rawBody } = verified;
133
+ const { workspace, resolved, upstream, rawBody } = verified;
130
134
  // Parse the body only after the signature check,
131
135
  // so an attacker who can't forge the HMAC, never reaches our JSON parser.
132
136
  let payload;
@@ -137,7 +141,7 @@ export function createGithubWebhookReceiver(deps) {
137
141
  throw new ValidationError('Invalid JSON payload.');
138
142
  }
139
143
  const fullName = extractFullName(payload);
140
- const expectedFullName = `${identity.owner}/${identity.repo}`.toLowerCase();
144
+ const expectedFullName = upstream.path.toLowerCase();
141
145
  // GitHub repo names are case-insensitive,
142
146
  // (a stored `Owner/Repo` may arrive as `owner/repo`, or vice versa).
143
147
  // Compare normalised. Also REQUIRE full_name to be present.
@@ -159,6 +163,14 @@ export function createGithubWebhookReceiver(deps) {
159
163
  // and back off retries, deliberately accepting and dropping.
160
164
  return context.json({ accepted: true, event, workspaceId, sourceId, skipped: true }, 202);
161
165
  }
166
+ // A run holds this workspace's files,
167
+ // and a refresh rewrites them under the agent mid-read.
168
+ // Nobody is waiting on a delivery, so drop it and let the next one,
169
+ // or the poller, pick the change up once the run is done.
170
+ if (deps.isWorkspaceBusy?.(workspaceId)) {
171
+ receiverLogger.info({ workspaceId, sourceId }, 'skipped webhook sync, a run holds this workspace');
172
+ return context.json({ ok: true, skipped: true }, 202);
173
+ }
162
174
  // Fire-and-forget. Deliveries time out at ~10s,
163
175
  // and a clean repo with many issues can take minutes to poll.
164
176
  // Errors are logged so a failing sync doesn't silently disappear,
@@ -166,7 +178,7 @@ export function createGithubWebhookReceiver(deps) {
166
178
  // Concurrent deliveries are allowed to race, loaders are idempotent,
167
179
  // (last-writer-wins per file) so the result still converges,
168
180
  // to the latest remote state.
169
- void deps.sourceLoaderRunner.syncOne(workspace, sourceId).catch((err) => {
181
+ void deps.sourceSyncService.syncNow(workspace, sourceId).catch((err) => {
170
182
  receiverLogger.warn({
171
183
  workspaceId,
172
184
  sourceId,
@@ -283,14 +295,14 @@ async function guardWebhookSource(deps, workspaceId, sourceId) {
283
295
  if (!resolved)
284
296
  throw new ValidationError(`Source "${sourceId}" has no webhook-capable loader.`);
285
297
  try {
286
- const identity = resolved.capability.repoIdentity(resolved.config);
287
- if (!identity || identity.provider !== PROVIDER)
298
+ const upstream = resolved.capability.upstream(resolved.config);
299
+ if (!upstream || !GITHUB_HOSTS.has(upstream.host))
288
300
  throw new ValidationError(`Source "${sourceId}" is not bound to a github repo.`);
289
301
  }
290
302
  catch (err) {
291
303
  if (err instanceof ValidationError)
292
304
  throw err;
293
- adminLogger.warn({ workspaceId, sourceId, err: err instanceof Error ? err.message : String(err) }, 'admin: repoIdentity threw');
305
+ adminLogger.warn({ workspaceId, sourceId, err: err instanceof Error ? err.message : String(err) }, 'admin: upstream lookup threw');
294
306
  throw new ValidationError(`Source "${sourceId}" loader config does not match the loader's schema.`);
295
307
  }
296
308
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sourceWebhooks.js","sourceRoot":"","sources":["../../src/routes/sourceWebhooks.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AACtE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AACxH,OAAO,EAAyB,QAAQ,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC9E,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAA;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAE/C;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,MAAM,gBAAgB,GAAG,gBAAgB,CAAA;AACzC,MAAM,QAAQ,GAAG,QAAiB,CAAA;AAOlC,SAAS,SAAS,CAAC,WAAwB,EAAE,QAAkB;IAC7D,OAAO,GAAG,WAAW,KAAK,QAAQ,EAAE,CAAA;AACtC,CAAC;AASD,MAAM,cAAc,GAAG,YAAY,CAAC,0BAA0B,CAAC,CAAA;AAE/D,gDAAgD;AAChD,oEAAoE;AACpE,6CAA6C;AAC7C,wCAAwC;AACxC,mDAAmD;AACnD,SAAS,eAAe,CAAC,OAAe,EAAE,MAA0B,EAAE,MAAc;IAClF,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;QACxD,OAAO,KAAK,CAAA;IACd,yCAAyC;IACzC,8DAA8D;IAC9D,oBAAoB;IACpB,MAAM,QAAQ,GAAG,UAAU,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE,CAAA;IACzE,MAAM,QAAQ,GAAG,UAAU,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAA;IACvF,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAC/B,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAC/B,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;QACvB,OAAO,KAAK,CAAA;IACd,OAAO,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAC9B,CAAC;AAED,iEAAiE;AACjE,0EAA0E;AAC1E,SAAS,wBAAwB,CAC/B,cAA8B,EAC9B,MAAwB;IAExB,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,MAAM,CAAC,MAAM;QAChD,OAAO,SAAS,CAAA;IAClB,MAAM,MAAM,GAAG,cAAc,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAClE,IAAI,CAAC,MAAM,EAAE,OAAO;QAClB,OAAO,SAAS,CAAA;IAClB,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAA;AACrE,CAAC;AAED,4DAA4D;AAC5D,oEAAoE;AACpE,sDAAsD;AACtD,6DAA6D;AAC7D,+CAA+C;AAC/C,SAAS,YAAY;IACnB,MAAM,IAAI,iBAAiB,CAAC,4BAA4B,CAAC,CAAA;AAC3D,CAAC;AASD,iEAAiE;AACjE,4DAA4D;AAC5D,uEAAuE;AACvE,uEAAuE;AACvE,oDAAoD;AACpD,KAAK,UAAU,cAAc,CAC3B,IAA+B,EAC/B,OAA4F,EAC5F,WAAwB,EACxB,QAAkB;IAElB,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAA;QAC3D,IAAI,CAAC,SAAS;YACZ,OAAO,SAAS,CAAA;QAClB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;QACxC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;QACnE,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAA;QAC7D,IAAI,CAAC,MAAM;YACT,OAAO,SAAS,CAAA;QAClB,MAAM,QAAQ,GAAG,wBAAwB,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;QACtE,IAAI,CAAC,QAAQ;YACX,OAAO,SAAS,CAAA;QAClB,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QAClE,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,KAAK,QAAQ;YAC7C,OAAO,SAAS,CAAA;QAClB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAsB,gBAAgB,EAAE,SAAS,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAA;QACnH,IAAI,CAAC,MAAM;YACT,OAAO,SAAS,CAAA;QAClB,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC;YACrD,OAAO,SAAS,CAAA;QAClB,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnD,CAAC;IACD,OAAO,GAAG,EAAE,CAAC;QACX,cAAc,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,qCAAqC,CAAC,CAAA;QAC5I,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,IAA+B;IACzE,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAA;IAEzB,oDAAoD;IACpD,wCAAwC;IACxC,6DAA6D;IAC7D,+BAA+B;IAC/B,0DAA0D;IAC1D,uCAAuC;IACvC,MAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC9D,MAAM,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAA;QACvE,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAA;QAC9D,yEAAyE;QACzE,mEAAmE;QACnE,+CAA+C;QAC/C,2DAA2D;QAC3D,6DAA6D;QAC7D,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAA;QAC3E,IAAI,CAAC,QAAQ;YACX,OAAO,YAAY,EAAE,CAAA;QACvB,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAA;QAE3D,iDAAiD;QACjD,0EAA0E;QAC1E,IAAI,OAAgB,CAAA;QACpB,IAAI,CAAC;YACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAC/B,CAAC;QACD,MAAM,CAAC;YACL,MAAM,IAAI,eAAe,CAAC,uBAAuB,CAAC,CAAA;QACpD,CAAC;QAED,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA;QACzC,MAAM,gBAAgB,GAAG,GAAG,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;QAC3E,0CAA0C;QAC1C,qEAAqE;QACrE,4DAA4D;QAC5D,+CAA+C;QAC/C,qCAAqC;QACrC,mDAAmD;QACnD,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,WAAW,EAAE,KAAK,gBAAgB;YAC7E,MAAM,IAAI,eAAe,CAAC,uBAAuB,QAAQ,IAAI,WAAW,gCAAgC,gBAAgB,IAAI,CAAC,CAAA;QAE/H,qDAAqD;QACrD,0CAA0C;QAC1C,yDAAyD;QACzD,oDAAoD;QACpD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAA;QAClD,IAAI,CAAC,KAAK;YACR,MAAM,IAAI,eAAe,CAAC,gCAAgC,CAAC,CAAA;QAE7D,MAAM,cAAc,GAAG,QAAQ,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,IAAI,IAAI,CAAA;QACxG,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,iEAAiE;YACjE,6DAA6D;YAC7D,OAAO,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,CAAA;QAC3F,CAAC;QAED,gDAAgD;QAChD,8DAA8D;QAC9D,kEAAkE;QAClE,6BAA6B;QAC7B,qEAAqE;QACrE,6DAA6D;QAC7D,8BAA8B;QAC9B,KAAK,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACtE,cAAc,CAAC,IAAI,CACjB;gBACE,WAAW;gBACX,QAAQ;gBACR,GAAG,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACtD,EACD,uDAAuD,CACxD,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,OAAO,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG,CAAC,CAAA;IAC5F,CAAC,CAAC,CAAA;IAEF,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,eAAe,CAAC,OAAgB;IACvC,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI;QACjD,OAAO,SAAS,CAAA;IAClB,MAAM,UAAU,GAAI,OAAoC,CAAC,UAAU,CAAA;IACnE,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,IAAI;QACvD,OAAO,SAAS,CAAA;IAClB,MAAM,QAAQ,GAAI,UAAsC,CAAC,SAAS,CAAA;IAClE,OAAO,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAA;AAC5D,CAAC;AAgBD,MAAM,WAAW,GAAG,YAAY,CAAC,uBAAuB,CAAC,CAAA;AAEzD,MAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,CAAC;IAC5C,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC;CACxE,CAAC,CAAA;AAEF,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;IACtB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAA;AAEzC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACf,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;CACtB,CAAC,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAA;AAEzC,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAA;AAEnF,MAAM,cAAc,GAAG,WAAW,CAAC;IACjC,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,oBAAoB;IAC1B,WAAW,EAAE,wBAAwB;IACrC,OAAO,EAAE,qFAAqF;IAC9F,IAAI,EAAE,CAAC,iBAAiB,CAAC;IACzB,OAAO,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE;IAClC,SAAS,EAAE;QACT,GAAG,EAAE;YACH,WAAW,EAAE,sFAAsF;YACnG,OAAO,EAAE,EAAE,kBAAkB,EAAE,EAAE,MAAM,EAAE,qBAAqB,EAAE,EAAE;SACnE;QACD,GAAG,EAAE,EAAE,WAAW,EAAE,gCAAgC,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE;QAC9G,GAAG,EAAE,EAAE,WAAW,EAAE,mBAAmB,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE;QACjG,GAAG,EAAE,EAAE,WAAW,EAAE,wCAAwC,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE;KACvH;CACF,CAAC,CAAA;AAEF,MAAM,WAAW,GAAG,WAAW,CAAC;IAC9B,MAAM,EAAE,MAAM;IACd,IAAI,EAAE,2BAA2B;IACjC,WAAW,EAAE,2BAA2B;IACxC,OAAO,EAAE,gFAAgF;IACzF,WAAW,EAAE,6JAA6J;IAC1K,IAAI,EAAE,CAAC,iBAAiB,CAAC;IACzB,OAAO,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE;IAClC,SAAS,EAAE;QACT,GAAG,EAAE;YACH,WAAW,EAAE,+BAA+B;YAC5C,OAAO,EAAE,EAAE,kBAAkB,EAAE,EAAE,MAAM,EAAE,qBAAqB,EAAE,EAAE;SACnE;QACD,GAAG,EAAE,EAAE,WAAW,EAAE,gCAAgC,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE;QAC9G,GAAG,EAAE,EAAE,WAAW,EAAE,mBAAmB,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE;QACjG,GAAG,EAAE,EAAE,WAAW,EAAE,wCAAwC,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE;KACvH;CACF,CAAC,CAAA;AAEF,MAAM,UAAU,+BAA+B,CAAC,IAA6B;IAC3E,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAA;IAEhC,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC/C,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAC5D,IAAI,CAAC,IAAI,CAAC,MAAM;YACd,MAAM,IAAI,uBAAuB,CAAC,iFAAiF,CAAC,CAAA;QACtH,MAAM,kBAAkB,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAA;QACrD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAsB,gBAAgB,EAAE,SAAS,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAA;QACnH,OAAO,OAAO,CAAC,IAAI,CAAC;YAClB,GAAG,EAAE,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC;YACxD,SAAS,EAAE,MAAM,KAAK,SAAS;YAC/B,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9D,EAAE,GAAG,CAAC,CAAA;IACT,CAAC,CAAC,CAAA;IAEF,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC5C,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAC5D,IAAI,CAAC,IAAI,CAAC,MAAM;YACd,MAAM,IAAI,uBAAuB,CAAC,iFAAiF,CAAC,CAAA;QACtH,MAAM,kBAAkB,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAA;QAErD,8CAA8C;QAC9C,sDAAsD;QACtD,MAAM,MAAM,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QAC9C,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;QAC1C,MAAM,MAAM,GAAwB,EAAE,MAAM,EAAE,SAAS,EAAE,CAAA;QACzD,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,gBAAgB,EAAE,SAAS,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAA;QACxF,OAAO,OAAO,CAAC,IAAI,CAAC;YAClB,GAAG,EAAE,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC;YACxD,MAAM;YACN,SAAS;SACV,EAAE,GAAG,CAAC,CAAA;IACT,CAAC,CAAC,CAAA;IAEF,OAAO,MAAM,CAAA;AACf,CAAC;AAED,mCAAmC;AACnC,wEAAwE;AACxE,uDAAuD;AACvD,sEAAsE;AACtE,2DAA2D;AAC3D,KAAK,UAAU,kBAAkB,CAC/B,IAA6B,EAC7B,WAAwB,EACxB,QAAkB;IAElB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;IACnE,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAA;IAC7D,IAAI,CAAC,MAAM;QACT,MAAM,IAAI,aAAa,CAAC,WAAW,QAAQ,aAAa,CAAC,CAAA;IAC3D,MAAM,QAAQ,GAAG,wBAAwB,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;IACtE,IAAI,CAAC,QAAQ;QACX,MAAM,IAAI,eAAe,CAAC,WAAW,QAAQ,kCAAkC,CAAC,CAAA;IAClF,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QAClE,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,KAAK,QAAQ;YAC7C,MAAM,IAAI,eAAe,CAAC,WAAW,QAAQ,kCAAkC,CAAC,CAAA;IACpF,CAAC;IACD,OAAO,GAAG,EAAE,CAAC;QACX,IAAI,GAAG,YAAY,eAAe;YAChC,MAAM,GAAG,CAAA;QACX,WAAW,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,2BAA2B,CAAC,CAAA;QAC/H,MAAM,IAAI,eAAe,CAAC,WAAW,QAAQ,qDAAqD,CAAC,CAAA;IACrG,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,MAAc,EAAE,WAAwB,EAAE,QAAkB;IACnF,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IACtC,OAAO,GAAG,IAAI,oBAAoB,WAAW,IAAI,QAAQ,EAAE,CAAA;AAC7D,CAAC"}
1
+ {"version":3,"file":"sourceWebhooks.js","sourceRoot":"","sources":["../../src/routes/sourceWebhooks.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,26 @@
1
- import type { HistoryService, PluginRegistry, SourceLoaderRunner, WorkspaceBootstrapService, WorkspaceService } from '@braidhq/core';
1
+ import type { HistoryService, PluginRegistry, SourceLoaderRunner, SourcePollingService, SourceSyncService, SourceSyncStateRepository, WorkspaceBootstrapService, WorkspaceService } from '@braidhq/core';
2
2
  import type { AbsolutePath } from '@braidhq/schema';
3
3
  import type { UserRegistryFile } from '../infrastructure/users/UserRegistryFile.js';
4
4
  import type { WorkspaceRegistryFile } from '../infrastructure/workspace/WorkspaceRegistryFile.js';
5
+ import { OntologyId } from '@braidhq/schema';
5
6
  import { Hono } from 'hono';
6
7
  export interface WorkspacesRouterDeps {
7
8
  workspaceService: WorkspaceService;
8
9
  sourceLoaderRunner: SourceLoaderRunner;
10
+ sourceSyncService: SourceSyncService;
11
+ sourcePollingService: SourcePollingService;
12
+ syncStateRepository: SourceSyncStateRepository;
9
13
  workspacesRoot: AbsolutePath;
10
14
  /**
11
15
  * Used at scaffold time to look up the chosen ontology,
12
16
  * and validate that the manifest carries every role it requires.
13
17
  */
14
18
  pluginRegistry: PluginRegistry;
19
+ /**
20
+ * What a scaffold writes when the submitted manifest names no ontology.
21
+ * Absent falls to the coding preset's `ddd`.
22
+ */
23
+ defaultOntologyId?: OntologyId;
15
24
  bootstrap?: WorkspaceBootstrapService;
16
25
  /**
17
26
  * Optional. When present, `GET /workspaces` filters to member ones,
@@ -1 +1 @@
1
- {"version":3,"file":"workspaces.d.ts","sourceRoot":"","sources":["../../src/routes/workspaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AACpI,OAAO,KAAK,EAAE,YAAY,EAA+F,MAAM,iBAAiB,CAAA;AAEhJ,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6CAA6C,CAAA;AACnF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sDAAsD,CAAA;AAcjG,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAwC3B,MAAM,WAAW,oBAAoB;IACnC,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,kBAAkB,EAAE,kBAAkB,CAAA;IACtC,cAAc,EAAE,YAAY,CAAA;IAC5B;;;OAGG;IACH,cAAc,EAAE,cAAc,CAAA;IAC9B,SAAS,CAAC,EAAE,yBAAyB,CAAA;IACrC;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,qBAAqB,CAAA;IACzC;;;;OAIG;IACH,YAAY,CAAC,EAAE,gBAAgB,CAAA;IAC/B;;;;;OAKG;IACH,cAAc,CAAC,EAAE,cAAc,CAAA;CAChC;AAmBD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,oBAAoB,GAAG,IAAI,CAgQvE"}
1
+ {"version":3,"file":"workspaces.d.ts","sourceRoot":"","sources":["../../src/routes/workspaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AACxM,OAAO,KAAK,EAAE,YAAY,EAA+F,MAAM,iBAAiB,CAAA;AAEhJ,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6CAA6C,CAAA;AACnF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sDAAsD,CAAA;AAIjG,OAAO,EAGL,UAAU,EAOX,MAAM,iBAAiB,CAAA;AAExB,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AA2C3B,MAAM,WAAW,oBAAoB;IACnC,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,kBAAkB,EAAE,kBAAkB,CAAA;IAGtC,iBAAiB,EAAE,iBAAiB,CAAA;IAGpC,oBAAoB,EAAE,oBAAoB,CAAA;IAC1C,mBAAmB,EAAE,yBAAyB,CAAA;IAC9C,cAAc,EAAE,YAAY,CAAA;IAC5B;;;OAGG;IACH,cAAc,EAAE,cAAc,CAAA;IAC9B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,UAAU,CAAA;IAC9B,SAAS,CAAC,EAAE,yBAAyB,CAAA;IACrC;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,qBAAqB,CAAA;IACzC;;;;OAIG;IACH,YAAY,CAAC,EAAE,gBAAgB,CAAA;IAC/B;;;;;OAKG;IACH,cAAc,CAAC,EAAE,cAAc,CAAA;CAChC;AAmBD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,oBAAoB,GAAG,IAAI,CA4SvE"}
@@ -1,7 +1,7 @@
1
1
  import { rm } from 'node:fs/promises';
2
2
  import { isAbsolute, join, resolve } from 'node:path';
3
3
  import { NotFoundError, ValidationError, Workspace } from '@braidhq/core';
4
- import { McpServerConfig, McpServerId, OntologyId, ProductManifestCreate, SourceDescriptor as SourceDescriptorSchema, SourceId, StorageDescriptor, } from '@braidhq/schema';
4
+ import { McpServerConfig, McpServerId, OntologyId, ProductManifestCreate, SourceDescriptor as SourceDescriptorSchema, SourceId, SourceSyncPolicy, StorageDescriptor, WorkspacePollingConfig, } from '@braidhq/schema';
5
5
  import { zValidator } from '@hono/zod-validator';
6
6
  import { Hono } from 'hono';
7
7
  import { z } from 'zod';
@@ -25,11 +25,14 @@ const PatchWorkspaceBodySchema = z.object({
25
25
  ontologyId: OntologyId.optional(),
26
26
  storage: StorageDescriptor.optional(),
27
27
  mcpServers: z.array(McpServerConfig).optional(),
28
+ polling: WorkspacePollingConfig.optional(),
28
29
  }).refine(body => Object.keys(body).length > 0, { message: 'PATCH body must contain at least one field' });
29
30
  // Per-item PATCH bodies. An empty string for `description` clears the field,
30
31
  // absent means leave as-is.
31
32
  const PatchSourceBodySchema = z.object({
32
33
  description: z.string().optional(),
34
+ // `null` turns automatic refresh off, mirroring how `description: ''` clears.
35
+ sync: SourceSyncPolicy.nullable().optional(),
33
36
  }).refine(body => Object.keys(body).length > 0, { message: 'PATCH body must contain at least one field' });
34
37
  const PatchMcpServerBodySchema = z.object({
35
38
  description: z.string().optional(),
@@ -102,12 +105,19 @@ export function createWorkspacesRouter(deps) {
102
105
  if (await pathExists(productPath)) {
103
106
  throw new ValidationError(`A workspace named "${name}" already exists. Open it from the sidebar, or delete it first to recreate with the same name.`);
104
107
  }
105
- const manifest = fillManifestDefaults(draft);
108
+ const manifest = fillManifestDefaults(draft, deps.defaultOntologyId);
106
109
  // Each ontology declares which source roles it needs to function.
107
110
  // Reject scaffolds that omit a role the ontology declares required,
108
111
  // before any writes, so the wizard can show a precise "you also need
109
112
  // a source of role x", rather than a post-scaffold validation error.
110
113
  const ontology = deps.pluginRegistry.findOntology(manifest.ontologyId);
114
+ // An unregistered ontology only surfaces later, at the first batch,
115
+ // so a build that registers any at all rejects the mismatch here.
116
+ const registeredOntologies = deps.pluginRegistry.ontologies();
117
+ if (!ontology && registeredOntologies.length > 0) {
118
+ throw new ValidationError(`Ontology "${manifest.ontologyId}" is not registered on this server. `
119
+ + `Available: ${registeredOntologies.map(o => `"${o.ontologyId}"`).join(', ')}.`);
120
+ }
111
121
  const requiredRoles = (ontology?.sourceRoles ?? []).filter(role => role.required).map(role => role.id);
112
122
  if (requiredRoles.length > 0) {
113
123
  const presentRoles = new Set(manifest.sources.map(s => s.role));
@@ -122,6 +132,9 @@ export function createWorkspacesRouter(deps) {
122
132
  const workspace = await deps.workspaceService.load(rootPath);
123
133
  const provisionOutcomes = await deps.sourceLoaderRunner.provisionAll(workspace);
124
134
  await deps.workspaceService.save(workspace);
135
+ // After save, since the sync-state store resolves a workspace's path,
136
+ // through the registration this call writes.
137
+ await deps.sourceSyncService.recordProvisioned(workspace, provisionOutcomes);
125
138
  await deps.bootstrap?.ensure(workspace);
126
139
  await ensureCallerOwner(deps.workspaceRegistry, workspace.rootPath, getUserId(context));
127
140
  return context.json({
@@ -150,7 +163,7 @@ export function createWorkspacesRouter(deps) {
150
163
  const updated = await reload(deps.workspaceService, workspace.rootPath);
151
164
  let provision;
152
165
  if (source.kind === 'filesystem' && source.loader) {
153
- const report = await deps.sourceLoaderRunner.syncOne(updated, source.id);
166
+ const report = await deps.sourceSyncService.syncNow(updated, source.id);
154
167
  provision = { sourceId: source.id, ...report };
155
168
  }
156
169
  return context.json({ workspace: updated.toData(), ...(provision ? { provision } : {}) }, 201);
@@ -195,13 +208,24 @@ export function createWorkspacesRouter(deps) {
195
208
  const existing = workspace.sources.find(entry => entry.id === sourceId);
196
209
  if (!existing)
197
210
  throw new NotFoundError(`Source "${sourceId}" not found in workspace "${workspaceId}"`);
198
- const patched = patch.description === ''
199
- ? stripField(existing, 'description')
200
- : { ...existing, ...(patch.description !== undefined ? { description: patch.description } : {}) };
211
+ if (patch.sync !== undefined && (existing.kind !== 'filesystem' || !existing.loader))
212
+ throw new ValidationError(`Source "${sourceId}" has no loader, so there is nothing to refresh on a schedule`);
213
+ let patched = existing;
214
+ if (patch.description !== undefined) {
215
+ patched = patch.description === ''
216
+ ? stripField(patched, 'description')
217
+ : { ...patched, description: patch.description };
218
+ }
219
+ if (patch.sync !== undefined && patched.kind === 'filesystem')
220
+ patched = patch.sync === null ? stripField(patched, 'sync') : { ...patched, sync: patch.sync };
201
221
  const nextManifest = withSources(workspace.productManifest, workspace.sources.map(s => (s.id === sourceId ? patched : s)));
202
222
  await updateProductManifest(workspace.rootPath, nextManifest);
203
223
  await commitConfigChange(deps, workspaceId, getUserId(context), `updated source ${existing.name}`, sourceId);
204
224
  const updated = await reload(deps.workspaceService, workspace.rootPath);
225
+ // The loop only runs for workspaces with something to warm,
226
+ // so setting the first schedule is what starts it.
227
+ if (patch.sync !== undefined && updated.isPollingEnabled())
228
+ await deps.sourcePollingService.start(updated.id);
205
229
  return context.json({ workspace: updated.toData() });
206
230
  });
207
231
  // Edit an MCP server's editable metadata.
@@ -229,13 +253,21 @@ export function createWorkspacesRouter(deps) {
229
253
  const updated = await reload(deps.workspaceService, workspace.rootPath);
230
254
  return context.json({ workspace: updated.toData() });
231
255
  });
256
+ // Freshness and failure state per source,
257
+ // so Studio can show a stale or failing mirror without opening each source,
258
+ // and monitoring can alert on one that has not succeeded in a while.
259
+ // Read-only, so any member sees it, matching the source-connection route.
260
+ router.get('/:workspaceId/source-sync-states', workspaceIdMiddleware, wsAccess, requirePermission('workspace.read'), async (context) => {
261
+ const states = await deps.syncStateRepository.listByWorkspace(getWorkspaceId(context));
262
+ return context.json({ states });
263
+ });
232
264
  // Per-source sync. Looks up the source's loader and invokes `sync`,
233
265
  // or falls back to `provision` if the destination doesn't exist yet.
234
266
  router.post('/:workspaceId/sources/:sourceId/sync', workspaceIdMiddleware, wsAccess, requirePermission('workspace.write'), async (context) => {
235
267
  const workspaceId = getWorkspaceId(context);
236
268
  const sourceId = SourceId.parse(context.req.param('sourceId'));
237
269
  const workspace = await deps.workspaceService.findById(workspaceId);
238
- const report = await deps.sourceLoaderRunner.syncOne(workspace, sourceId);
270
+ const report = await deps.sourceSyncService.syncNow(workspace, sourceId);
239
271
  return context.json(report);
240
272
  });
241
273
  // Update workspace-level manifest fields.
@@ -252,11 +284,22 @@ export function createWorkspacesRouter(deps) {
252
284
  ...(patch.ontologyId !== undefined ? { ontologyId: patch.ontologyId } : {}),
253
285
  ...(patch.storage !== undefined ? { storage: patch.storage } : {}),
254
286
  ...(patch.mcpServers !== undefined ? { mcpServers: patch.mcpServers } : {}),
287
+ ...(patch.polling !== undefined ? { polling: patch.polling } : {}),
255
288
  };
256
289
  await updateProductManifest(workspace.rootPath, nextManifest);
257
290
  const renamed = patch.name !== undefined && patch.name !== workspace.productManifest.name;
258
291
  await commitConfigChange(deps, workspaceId, getUserId(context), renamed ? `renamed to ${patch.name}` : 'updated workspace config');
259
292
  const updated = await reload(deps.workspaceService, workspace.rootPath);
293
+ // Match the running loop to what was just saved.
294
+ // A tick already re-reads the manifest,
295
+ // so turning it off would take effect anyway,
296
+ // but turning it back on would otherwise wait for a restart.
297
+ if (patch.polling !== undefined) {
298
+ if (updated.isPollingEnabled())
299
+ await deps.sourcePollingService.start(updated.id);
300
+ else
301
+ deps.sourcePollingService.stop(updated.id);
302
+ }
260
303
  return context.json({
261
304
  workspace: updated.toData(),
262
305
  ...(renamed ? { renamed: true, previousId: workspace.id, newId: updated.id } : {}),
@@ -1 +1 @@
1
- {"version":3,"file":"workspaces.js","sourceRoot":"","sources":["../../src/routes/workspaces.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspaces.js","sourceRoot":"","sources":["../../src/routes/workspaces.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACrD,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACzE,OAAO,EACL,eAAe,EACf,WAAW,EACX,UAAU,EACV,qBAAqB,EACrB,gBAAgB,IAAI,sBAAsB,EAC1C,QAAQ,EACR,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAA;AACxE,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,sDAAsD,CAAA;AACxI,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACjD,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAA;AACxH,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AAEpF,kEAAkE;AAClE,kCAAkC;AAClC,+CAA+C;AAC/C,oDAAoD;AACpD,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CACjD,sBAAsB,EACtB,iGAAiG,CAClG,CAAA;AAED,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,IAAI,EAAE,mBAAmB;IACzB,QAAQ,EAAE,qBAAqB;CAChC,CAAC,CAAA;AAEF,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAClC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,UAAU,EAAE,UAAU,CAAC,QAAQ,EAAE;IACjC,OAAO,EAAE,iBAAiB,CAAC,QAAQ,EAAE;IACrC,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,QAAQ,EAAE;IAC/C,OAAO,EAAE,sBAAsB,CAAC,QAAQ,EAAE;CAC3C,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,4CAA4C,EAAE,CAAC,CAAA;AAE1G,6EAA6E;AAC7E,4BAA4B;AAC5B,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,8EAA8E;IAC9E,IAAI,EAAE,gBAAgB,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAC7C,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,4CAA4C,EAAE,CAAC,CAAA;AAE1G,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,4CAA4C,EAAE,CAAC,CAAA;AA6C1G,8DAA8D;AAC9D,+DAA+D;AAC/D,KAAK,UAAU,kBAAkB,CAC/B,IAA0B,EAC1B,WAAwB,EACxB,MAAc,EACd,OAAe,EACf,QAAuB;IAEvB,MAAM,IAAI,CAAC,cAAc,EAAE,qBAAqB,CAAC,WAAW,EAAE;QAC5D,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;QAC9B,MAAM;QACN,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAClC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAA0B;IAC/D,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAA;IAEzB,8CAA8C;IAC9C,4DAA4D;IAC5D,MAAM,YAAY,GAAG,uBAAuB,CAAC,kBAAkB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;IAEnF,qEAAqE;IACrE,oEAAoE;IACpE,+CAA+C;IAC/C,8DAA8D;IAC9D,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,YAAY,CAAC;QAC5D,CAAC,CAAC,yBAAyB,CAAC;YACxB,QAAQ,EAAE,IAAI,CAAC,iBAAiB;YAChC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC;QACJ,CAAC,CAAC,CAAC,KAAK,EAAE,EAAW,EAAE,IAAyB,EAAE,EAAE,GAAG,MAAM,IAAI,EAAE,CAAA,CAAC,CAAC,CAAsB,CAAA;IAE7F,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAChC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAA;QAC9C,IAAI,CAAC,IAAI,CAAC,iBAAiB;YACzB,OAAO,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAA;QAC1E,+DAA+D;QAC/D,iDAAiD;QACjD,+CAA+C;QAC/C,wDAAwD;QACxD,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,CAAA;QACjC,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;QAC/C,IAAI,EAAE,EAAE,UAAU,KAAK,OAAO;YAC5B,OAAO,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAA;QAC1E,MAAM,OAAO,GAAgB,EAAE,CAAA;QAC/B,KAAK,MAAM,SAAS,IAAI,GAAG,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;YACjF,IAAI,MAAM;gBACR,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAC3B,CAAC;QACD,OAAO,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAA;IAC9E,CAAC,CAAC,CAAA;IAEF,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QACnE,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;QAC3C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;QACnE,OAAO,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAA;IACzC,CAAC,CAAC,CAAA;IAEF,2EAA2E;IAC3E,kEAAkE;IAClE,qDAAqD;IACrD,6DAA6D;IAC7D,EAAE;IACF,iDAAiD;IACjD,iEAAiE;IACjE,gEAAgE;IAChE,kEAAkE;IAClE,uEAAuE;IACvE,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,UAAU,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC/F,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAiB,CAAA;QAChE,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;QAEhD,IAAI,MAAM,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,eAAe,CACvB,sBAAsB,IAAI,gGAAgG,CAC3H,CAAA;QACH,CAAC;QAED,MAAM,QAAQ,GAAG,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAA;QACpE,kEAAkE;QAClE,oEAAoE;QACpE,qEAAqE;QACrE,qEAAqE;QACrE,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;QACtE,oEAAoE;QACpE,kEAAkE;QAClE,MAAM,oBAAoB,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAA;QAC7D,IAAI,CAAC,QAAQ,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,eAAe,CACvB,aAAa,QAAQ,CAAC,UAAU,sCAAsC;kBACpE,cAAc,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACjF,CAAA;QACH,CAAC;QACD,MAAM,aAAa,GAAG,CAAC,QAAQ,EAAE,WAAW,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACtG,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;YAC/D,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;YAC/D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,MAAM,IAAI,eAAe,CACvB,iCAAiC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;sBAC1G,iBAAiB,QAAQ,CAAC,UAAU,6DAA6D,CACpG,CAAA;YACH,CAAC;QACH,CAAC;QACD,MAAM,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAA;QACpE,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YAC5D,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAA;YAC/E,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YAC3C,sEAAsE;YACtE,6CAA6C;YAC7C,MAAM,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAA;YAC5E,MAAM,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,CAAA;YACvC,MAAM,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;YACvF,OAAO,OAAO,CAAC,IAAI,CAAC;gBAClB,SAAS,EAAE,SAAS,CAAC,MAAM,EAAE;gBAC7B,SAAS,EAAE,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;aAC/E,EAAE,GAAG,CAAC,CAAA;QACT,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,EAAE,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;YACtC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;YAC1C,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,8DAA8D;IAC9D,uDAAuD;IACvD,kEAAkE;IAClE,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,qBAAqB,EAAE,QAAQ,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,EAAE,UAAU,CAAC,MAAM,EAAE,sBAAsB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QACxK,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;QAC3C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAqB,CAAA;QAC5D,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;QACnE,IAAI,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC;YACnC,MAAM,IAAI,eAAe,CAAC,WAAW,MAAM,CAAC,IAAI,kCAAkC,WAAW,GAAG,CAAC,CAAA;QAEnG,MAAM,YAAY,GAAG,WAAW,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC,GAAG,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAA;QAC3F,MAAM,qBAAqB,CAAC,SAAS,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;QAC7D,MAAM,kBAAkB,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,gBAAgB,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAA;QACzG,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAA;QAEvE,IAAI,SAAuC,CAAA;QAC3C,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,CAAA;YACvE,SAAS,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,MAAM,EAAE,CAAA;QAChD,CAAC;QACD,OAAO,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;IAChG,CAAC,CAAC,CAAA;IAEF,qCAAqC;IACrC,sEAAsE;IACtE,uEAAuE;IACvE,0DAA0D;IAC1D,4BAA4B;IAC5B,wEAAwE;IACxE,MAAM,CAAC,MAAM,CAAC,iCAAiC,EAAE,qBAAqB,EAAE,QAAQ,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QACxI,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;QAC3C,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAA;QAC9D,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;QACnE,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAA;QACrE,IAAI,CAAC,MAAM;YACT,MAAM,IAAI,aAAa,CAAC,WAAW,QAAQ,6BAA6B,WAAW,GAAG,CAAC,CAAA;QAEzF,MAAM,YAAY,GAAG,WAAW,CAAC,SAAS,CAAC,eAAe,EAAE,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAA;QACrH,IAAI,CAAC,gBAAgB,CAAC,yBAAyB,CAAC,IAAI,SAAS,CAAC,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,EAAE,eAAe,EAAE,YAAY,EAAE,CAAC,CAAC,CAAA;QACxH,MAAM,qBAAqB,CAAC,SAAS,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;QAC7D,MAAM,kBAAkB,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,kBAAkB,MAAM,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAA;QAE1G,IAAI,YAAY,GAAG,KAAK,CAAA;QACxB,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;YACjG,IAAI,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,IAAI,QAAQ,KAAK,SAAS,CAAC,QAAQ,EAAE,CAAC;gBAC7E,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;gBACpD,YAAY,GAAG,IAAI,CAAA;YACrB,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAA;QACvE,OAAO,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,YAAY,EAAE,CAAC,CAAA;IACpE,CAAC,CAAC,CAAA;IAEF,0DAA0D;IAC1D,0DAA0D;IAC1D,sDAAsD;IACtD,qEAAqE;IACrE,MAAM,CAAC,KAAK,CAAC,iCAAiC,EAAE,qBAAqB,EAAE,QAAQ,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,EAAE,UAAU,CAAC,MAAM,EAAE,qBAAqB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAClL,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;QAC3C,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAA;QAC9D,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACvC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;QACnE,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAA;QACvE,IAAI,CAAC,QAAQ;YACX,MAAM,IAAI,aAAa,CAAC,WAAW,QAAQ,6BAA6B,WAAW,GAAG,CAAC,CAAA;QAEzF,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YAClF,MAAM,IAAI,eAAe,CAAC,WAAW,QAAQ,+DAA+D,CAAC,CAAA;QAE/G,IAAI,OAAO,GAAqB,QAAQ,CAAA;QACxC,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACpC,OAAO,GAAG,KAAK,CAAC,WAAW,KAAK,EAAE;gBAChC,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,aAAa,CAAC;gBACpC,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAA;QACpD,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,KAAK,YAAY;YAC3D,OAAO,GAAG,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAA;QAChG,MAAM,YAAY,GAAG,WAAW,CAAC,SAAS,CAAC,eAAe,EAAE,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC1H,MAAM,qBAAqB,CAAC,SAAS,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;QAC7D,MAAM,kBAAkB,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,kBAAkB,QAAQ,CAAC,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAA;QAC5G,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAA;QACvE,4DAA4D;QAC5D,mDAAmD;QACnD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,gBAAgB,EAAE;YACxD,MAAM,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACnD,OAAO,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IACtD,CAAC,CAAC,CAAA;IAEF,0CAA0C;IAC1C,qEAAqE;IACrE,8CAA8C;IAC9C,8DAA8D;IAC9D,iDAAiD;IACjD,MAAM,CAAC,KAAK,CAAC,uCAAuC,EAAE,qBAAqB,EAAE,QAAQ,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,EAAE,UAAU,CAAC,MAAM,EAAE,wBAAwB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC3L,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;QAC3C,MAAM,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAA;QACvE,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACvC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;QACnE,MAAM,QAAQ,GAAG,SAAS,CAAC,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,WAAW,CAAC,CAAA;QACrF,IAAI,CAAC,QAAQ;YACX,MAAM,IAAI,aAAa,CAAC,eAAe,WAAW,6BAA6B,WAAW,GAAG,CAAC,CAAA;QAEhG,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,KAAK,EAAE;YACtC,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,aAAa,CAAC;YACrC,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAA;QACnG,MAAM,YAAY,GAAoB;YACpC,GAAG,SAAS,CAAC,eAAe;YAC5B,UAAU,EAAE,SAAS,CAAC,eAAe,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAChG,CAAA;QACD,MAAM,qBAAqB,CAAC,SAAS,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;QAC7D,MAAM,kBAAkB,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,sBAAsB,WAAW,EAAE,CAAC,CAAA;QACpG,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAA;QACvE,OAAO,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IACtD,CAAC,CAAC,CAAA;IAEF,0CAA0C;IAC1C,4EAA4E;IAC5E,qEAAqE;IACrE,0EAA0E;IAC1E,MAAM,CAAC,GAAG,CAAC,kCAAkC,EAAE,qBAAqB,EAAE,QAAQ,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QACrI,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAA;QACtF,OAAO,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;IACjC,CAAC,CAAC,CAAA;IAEF,oEAAoE;IACpE,qEAAqE;IACrE,MAAM,CAAC,IAAI,CAAC,sCAAsC,EAAE,qBAAqB,EAAE,QAAQ,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC3I,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;QAC3C,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAA;QAC9D,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;QACnE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;QACxE,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC7B,CAAC,CAAC,CAAA;IAEF,0CAA0C;IAC1C,kEAAkE;IAClE,gEAAgE;IAChE,MAAM,CAAC,KAAK,CAAC,eAAe,EAAE,qBAAqB,EAAE,QAAQ,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,EAAE,UAAU,CAAC,MAAM,EAAE,wBAAwB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QACnK,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;QAC3C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QACvC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;QACnE,MAAM,YAAY,GAAoB;YACpC,GAAG,SAAS,CAAC,eAAe;YAC5B,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzD,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9E,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3E,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClE,GAAG,CAAC,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3E,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACnE,CAAA;QACD,MAAM,qBAAqB,CAAC,SAAS,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;QAC7D,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,eAAe,CAAC,IAAI,CAAA;QACzF,MAAM,kBAAkB,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,cAAc,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAA;QAClI,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAA;QACvE,iDAAiD;QACjD,wCAAwC;QACxC,8CAA8C;QAC9C,6DAA6D;QAC7D,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAChC,IAAI,OAAO,CAAC,gBAAgB,EAAE;gBAC5B,MAAM,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;;gBAEjD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QAC9C,CAAC;QACD,OAAO,OAAO,CAAC,IAAI,CAAC;YAClB,SAAS,EAAE,OAAO,CAAC,MAAM,EAAE;YAC3B,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACnF,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,gDAAgD;IAChD,yDAAyD;IACzD,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,qBAAqB,EAAE,QAAQ,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QACtH,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;QAC3C,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,MAAM,CAAA;QACnD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;QACnE,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;QACtD,IAAI,KAAK;YACP,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QAChE,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAChC,CAAC,CAAC,CAAA;IAEF,OAAO,MAAM,CAAA;AACf,CAAC;AAWD,SAAS,WAAW,CAAC,QAAyB,EAAE,OAAoC;IAClF,OAAO,EAAE,GAAG,QAAQ,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE,CAAA;AAC/C,CAAC;AAED,8DAA8D;AAC9D,wEAAwE;AACxE,SAAS,UAAU,CAAuD,KAAQ,EAAE,KAAQ;IAC1F,MAAM,IAAI,GAAG,EAAE,GAAG,KAAK,EAAE,CAAA;IACzB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAA;IAClB,OAAO,IAAI,CAAA;AACb,CAAC;AAED,KAAK,UAAU,MAAM,CAAC,gBAAkC,EAAE,QAAsB;IAC9E,gBAAgB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;IACrC,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACtD,MAAM,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACrC,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,+DAA+D;AAC/D,2DAA2D;AAC3D,2EAA2E;AAC3E,KAAK,UAAU,iBAAiB,CAC9B,QAA2C,EAC3C,QAAsB,EACtB,MAAoC;IAEpC,IAAI,CAAC,QAAQ;QACX,OAAM;IACR,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;IACpD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QACpB,OAAM;IACR,MAAM,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE;QACjC,MAAM;QACN,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAe;KAChD,CAAC,CAAA;AACJ,CAAC"}
@@ -1,10 +1,11 @@
1
+ import type { ExtraPluginOptions } from './composeFsApp.js';
1
2
  /**
2
3
  * Walk up from the working directory to the first `.env`, and load it,
3
4
  * before anything reads process.env.
4
5
  * A missing file is silent, production boots from real env, not dotfiles.
5
6
  */
6
7
  export declare function loadRootEnv(): void;
7
- export interface StartServerOptions {
8
+ export interface StartServerOptions extends ExtraPluginOptions {
8
9
  readonly port: number;
9
10
  readonly onListen?: (url: string) => void;
10
11
  }
@@ -12,6 +13,11 @@ export interface StartServerOptions {
12
13
  * Boot the coding-preset app and start serving, shared by the standalone
13
14
  * entry and the cli `serve` command so both wire identically.
14
15
  * Resolves once the socket is listening, then keeps running under signal handlers.
16
+ *
17
+ * A deployment with its own plugins passes them here,
18
+ * rather than assembling a server itself.
19
+ * Doing that by hand means reproducing the shutdown,
20
+ * which closes the graph store, and forgetting it is silent.
15
21
  */
16
22
  export declare function startServer(options: StartServerOptions): Promise<void>;
17
23
  //# sourceMappingURL=startServer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"startServer.d.ts","sourceRoot":"","sources":["../src/startServer.ts"],"names":[],"mappings":"AAYA;;;;GAIG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAalC;AAYD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IAErB,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;CAC1C;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB5E"}
1
+ {"version":3,"file":"startServer.d.ts","sourceRoot":"","sources":["../src/startServer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAoB,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAW7E;;;;GAIG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAalC;AAYD,MAAM,WAAW,kBAAmB,SAAQ,kBAAkB;IAC5D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IAErB,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;CAC1C;AAED;;;;;;;;;GASG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuB5E"}
@@ -5,7 +5,7 @@ import { createLogger } from '@braidhq/core';
5
5
  import { AgentEffort } from '@braidhq/schema';
6
6
  import { serve } from '@hono/node-server';
7
7
  import { createApp } from './app.js';
8
- import { composeFsApp } from './composeFsApp.js';
8
+ import { composeFsApp, withoutTrailingSlash } from './composeFsApp.js';
9
9
  import { startupAfterServe } from './startup.js';
10
10
  /**
11
11
  * Walk up from the working directory to the first `.env`, and load it,
@@ -39,10 +39,22 @@ function fsOptionsFromEnv() {
39
39
  * Boot the coding-preset app and start serving, shared by the standalone
40
40
  * entry and the cli `serve` command so both wire identically.
41
41
  * Resolves once the socket is listening, then keeps running under signal handlers.
42
+ *
43
+ * A deployment with its own plugins passes them here,
44
+ * rather than assembling a server itself.
45
+ * Doing that by hand means reproducing the shutdown,
46
+ * which closes the graph store, and forgetting it is silent.
42
47
  */
43
48
  export async function startServer(options) {
44
- const apiUrl = `http://localhost:${options.port}`;
45
- const deps = await composeFsApp({ apiUrl, ...fsOptionsFromEnv() });
49
+ // Two addresses for one server.
50
+ // Callers outside the host reach it at `BRAID_API_URL`,
51
+ // which is also what OAuth redirects and webhook URLs have to name.
52
+ // A subprocess on the host reaches it on loopback,
53
+ // which stays true whatever the deployment is called from outside.
54
+ const loopbackApiUrl = `http://localhost:${options.port}`;
55
+ const apiUrl = withoutTrailingSlash(process.env.BRAID_API_URL ?? loopbackApiUrl);
56
+ const { port: _port, onListen: _onListen, ...extraPlugins } = options;
57
+ const deps = await composeFsApp({ apiUrl, loopbackApiUrl, ...fsOptionsFromEnv(), ...extraPlugins });
46
58
  const app = createApp(deps, { apiUrl });
47
59
  const log = createLogger('server');
48
60
  const server = await new Promise((resolveBoot) => {
@@ -67,6 +79,9 @@ function installShutdown(server, deps, log) {
67
79
  shuttingDown = true;
68
80
  log.info({ signal }, 'shutting down');
69
81
  server.close();
82
+ // Drop pending refresh timers before the store closes,
83
+ // so a tick cannot fire against a repository that is going away.
84
+ deps.sourcePollingService.stopAll();
70
85
  try {
71
86
  await deps.modelRepository.close?.();
72
87
  }
@@ -1 +1 @@
1
- {"version":3,"file":"startServer.js","sourceRoot":"","sources":["../src/startServer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,OAAO,MAAM,cAAc,CAAA;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAEhD;;;;GAIG;AACH,MAAM,UAAU,WAAW;IACzB,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;IACvB,SAAS,CAAC;QACR,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;QACnC,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;YAC9B,OAAM;QACR,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;QAC3B,IAAI,MAAM,KAAK,GAAG;YAChB,OAAM;QACR,GAAG,GAAG,MAAM,CAAA;IACd,CAAC;AACH,CAAC;AAED,sEAAsE;AACtE,8EAA8E;AAC9E,SAAS,gBAAgB;IACvB,OAAO;QACL,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvF,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9G,CAAA;AACH,CAAC;AAQD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAA2B;IAC3D,MAAM,MAAM,GAAG,oBAAoB,OAAO,CAAC,IAAI,EAAE,CAAA;IACjD,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,gBAAgB,EAAE,EAAE,CAAC,CAAA;IAClE,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;IACvC,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;IAElC,MAAM,MAAM,GAAG,MAAM,IAAI,OAAO,CAA2B,CAAC,WAAW,EAAE,EAAE;QACzE,MAAM,MAAM,GAAG,KAAK,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;YAC1E,OAAO,CAAC,QAAQ,EAAE,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAA;YAC9C,WAAW,CAAC,MAAM,CAAC,CAAA;QACrB,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,eAAe,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,CAAA;IAClC,4EAA4E;IAC5E,KAAK,iBAAiB,CAAC,IAAI,CAAC,CAAA;AAC9B,CAAC;AAED,iFAAiF;AACjF,iDAAiD;AACjD,SAAS,eAAe,CACtB,MAAgC,EAChC,IAAqB,EACrB,GAAoC;IAEpC,IAAI,YAAY,GAAG,KAAK,CAAA;IACxB,KAAK,UAAU,QAAQ,CAAC,MAAc;QACpC,IAAI,YAAY,EAAE,CAAC;YACjB,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,8CAA8C,CAAC,CAAA;YACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QACD,YAAY,GAAG,IAAI,CAAA;QACnB,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,eAAe,CAAC,CAAA;QACrC,MAAM,CAAC,KAAK,EAAE,CAAA;QACd,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,EAAE,CAAA;QACtC,CAAC;QACD,OAAO,GAAG,EAAE,CAAC;YACX,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,8BAA8B,CAAC,CAAA;QACpD,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IACD,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAA;IACnD,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,KAAK,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAA;AACvD,CAAC"}
1
+ {"version":3,"file":"startServer.js","sourceRoot":"","sources":["../src/startServer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,OAAO,MAAM,cAAc,CAAA;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACpC,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAEhD;;;;GAIG;AACH,MAAM,UAAU,WAAW;IACzB,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;IACvB,SAAS,CAAC;QACR,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;QACnC,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;YAC9B,OAAM;QACR,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;QAC3B,IAAI,MAAM,KAAK,GAAG;YAChB,OAAM;QACR,GAAG,GAAG,MAAM,CAAA;IACd,CAAC;AACH,CAAC;AAED,sEAAsE;AACtE,8EAA8E;AAC9E,SAAS,gBAAgB;IACvB,OAAO;QACL,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvF,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9G,CAAA;AACH,CAAC;AAQD;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAA2B;IAC3D,gCAAgC;IAChC,wDAAwD;IACxD,oEAAoE;IACpE,mDAAmD;IACnD,mEAAmE;IACnE,MAAM,cAAc,GAAG,oBAAoB,OAAO,CAAC,IAAI,EAAE,CAAA;IACzD,MAAM,MAAM,GAAG,oBAAoB,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,cAAc,CAAC,CAAA;IAChF,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,YAAY,EAAE,GAAG,OAAO,CAAA;IACrE,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,gBAAgB,EAAE,EAAE,GAAG,YAAY,EAAE,CAAC,CAAA;IACnG,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;IACvC,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;IAElC,MAAM,MAAM,GAAG,MAAM,IAAI,OAAO,CAA2B,CAAC,WAAW,EAAE,EAAE;QACzE,MAAM,MAAM,GAAG,KAAK,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;YAC1E,OAAO,CAAC,QAAQ,EAAE,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAA;YAC9C,WAAW,CAAC,MAAM,CAAC,CAAA;QACrB,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,eAAe,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,CAAA;IAClC,4EAA4E;IAC5E,KAAK,iBAAiB,CAAC,IAAI,CAAC,CAAA;AAC9B,CAAC;AAED,iFAAiF;AACjF,iDAAiD;AACjD,SAAS,eAAe,CACtB,MAAgC,EAChC,IAAqB,EACrB,GAAoC;IAEpC,IAAI,YAAY,GAAG,KAAK,CAAA;IACxB,KAAK,UAAU,QAAQ,CAAC,MAAc;QACpC,IAAI,YAAY,EAAE,CAAC;YACjB,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,8CAA8C,CAAC,CAAA;YACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QACD,YAAY,GAAG,IAAI,CAAA;QACnB,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,eAAe,CAAC,CAAA;QACrC,MAAM,CAAC,KAAK,EAAE,CAAA;QACd,uDAAuD;QACvD,iEAAiE;QACjE,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,CAAA;QACnC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,EAAE,CAAA;QACtC,CAAC;QACD,OAAO,GAAG,EAAE,CAAC;YACX,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,8BAA8B,CAAC,CAAA;QACpD,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IACD,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAA;IACnD,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,KAAK,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAA;AACvD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"startup.d.ts","sourceRoot":"","sources":["../src/startup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAMtD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAkC7E;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAkB5E"}
1
+ {"version":3,"file":"startup.d.ts","sourceRoot":"","sources":["../src/startup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAMtD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAwC7E;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAkB5E"}
package/dist/startup.js CHANGED
@@ -32,6 +32,12 @@ export async function startupBeforeServe(deps) {
32
32
  // Reactor opt-in is per workspace, subscribe only when PRODUCT.md sets it.
33
33
  if (workspace.productManifest.reactor?.enabled)
34
34
  await deps.reactorService?.start(workspace.id);
35
+ // Warms sources between reads.
36
+ // The freshness check at read time is what guarantees the budget,
37
+ // so a workspace that opts out of polling is slower on first use,
38
+ // never staler.
39
+ if (workspace.productManifest.polling?.enabled !== false)
40
+ await deps.sourcePollingService.start(workspace.id, workspace);
35
41
  // Catch deliveries missed while the server was down.
36
42
  // GitHub drops webhook retries after a few hours,
37
43
  // so every boot fires one syncOne per loader source.
@@ -42,7 +48,7 @@ export async function startupBeforeServe(deps) {
42
48
  for (const source of workspace.sources) {
43
49
  if (source.kind !== 'filesystem' || !source.loader)
44
50
  continue;
45
- void deps.sourceLoaderRunner.syncOne(workspace, source.id).catch((err) => {
51
+ void deps.sourceSyncService.syncNow(workspace, source.id).catch((err) => {
46
52
  log.warn({ workspaceId: workspace.id, sourceId: source.id, err: err instanceof Error ? err.message : String(err) }, 'boot syncOne failed, will retry on next webhook or manual sync');
47
53
  });
48
54
  }
@@ -1 +1 @@
1
- {"version":3,"file":"startup.js","sourceRoot":"","sources":["../src/startup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"startup.js","sourceRoot":"","sources":["../src/startup.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@braidhq/server",
3
3
  "type": "module",
4
- "version": "0.2.1",
4
+ "version": "0.4.0",
5
5
  "description": "REST + SSE server for Braid.",
6
6
  "license": "MIT",
7
7
  "repository": {
@@ -22,29 +22,30 @@
22
22
  "dist"
23
23
  ],
24
24
  "dependencies": {
25
- "@hono/node-server": "^2.0.12",
26
- "@hono/zod-openapi": "^1.5.1",
25
+ "@hono/node-server": "^2.1.0",
26
+ "@hono/zod-openapi": "^1.5.3",
27
27
  "@hono/zod-validator": "^0.9.0",
28
- "hono": "^4.12.32",
28
+ "hono": "^4.12.34",
29
29
  "pino": "^10.3.1",
30
30
  "simple-git": "^3.36.0",
31
31
  "yaml": "^2.9.0",
32
32
  "zod": "^4.2.1",
33
- "@braidhq/agent-claude-code": "0.2.1",
34
- "@braidhq/core": "0.2.1",
35
- "@braidhq/ontology-ddd": "0.2.1",
36
- "@braidhq/source-loader-gdrive": "0.2.1",
37
- "@braidhq/schema": "0.2.1",
38
- "@braidhq/source-loader-git": "0.2.1",
39
- "@braidhq/source-loader-github": "0.2.1",
40
- "@braidhq/storage-kuzu": "0.2.1"
33
+ "@braidhq/agent-claude-code": "0.4.0",
34
+ "@braidhq/ontology-ddd": "0.4.0",
35
+ "@braidhq/source-loader-gdrive": "0.4.0",
36
+ "@braidhq/schema": "0.4.0",
37
+ "@braidhq/core": "0.4.0",
38
+ "@braidhq/source-loader-git": "0.4.0",
39
+ "@braidhq/source-loader-github": "0.4.0",
40
+ "@braidhq/storage-kuzu": "0.4.0",
41
+ "@braidhq/source-loader-mcp": "0.4.0"
41
42
  },
42
43
  "devDependencies": {
43
- "esbuild": "^0.28.1",
44
- "tsx": "^4.23.1",
44
+ "esbuild": "^0.28.2",
45
+ "tsx": "^4.23.12",
45
46
  "typescript": "^6.0.3",
46
47
  "vitest": "^4.1.10",
47
- "@braidhq/test-utils": "0.2.1"
48
+ "@braidhq/test-utils": "0.4.0"
48
49
  },
49
50
  "publishConfig": {
50
51
  "access": "public"
@@ -56,6 +57,7 @@
56
57
  "test": "vitest run",
57
58
  "test:coverage": "vitest run --coverage",
58
59
  "dev": "tsx watch src/server.ts",
60
+ "start": "tsx src/server.ts",
59
61
  "clean": "rm -rf dist bundle .turbo *.tsbuildinfo coverage"
60
62
  }
61
63
  }