@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
@@ -6,14 +6,15 @@ import { fileURLToPath } from 'node:url';
6
6
  import { claudeCodeAgentPlugin } from '@braidhq/agent-claude-code';
7
7
  import { builtinSkillsRoot, NotFoundError, PluginRegistry, ValidationError, WorkspaceBootstrapService, } from '@braidhq/core';
8
8
  import { InMemoryWorkspaceEventBus } from '@braidhq/core/in-memory';
9
- import { dddOntology } from '@braidhq/ontology-ddd';
10
9
  import { AgentId, AgentKind, StorageKind as StorageKindSchema } from '@braidhq/schema';
11
10
  import { createGoogleDriveLoader } from '@braidhq/source-loader-gdrive';
12
11
  import { gitLoader } from '@braidhq/source-loader-git';
13
12
  import { createGithubLoader } from '@braidhq/source-loader-github';
13
+ import { createMcpLoader } from '@braidhq/source-loader-mcp';
14
14
  import { kuzuStoragePlugin } from '@braidhq/storage-kuzu';
15
15
  import { authenticated, localTrust } from './authMode.js';
16
16
  import { composeApp } from './composeApp.js';
17
+ import { defaultOntologyPlugins } from './defaultOntologyPlugins.js';
17
18
  import { parseBoolEnv } from './infrastructure/_shared/env.js';
18
19
  import { AccessPolicy } from './infrastructure/auth/AccessPolicy.js';
19
20
  import { FsSessionStore } from './infrastructure/auth/SessionStore.js';
@@ -22,12 +23,15 @@ import { GitWorkspaceHistory } from './infrastructure/history/GitWorkspaceHistor
22
23
  import { FsClarificationRepository } from './infrastructure/hitl/FsClarificationRepository.js';
23
24
  import { FsProposalRepository } from './infrastructure/hitl/FsProposalRepository.js';
24
25
  import { FsModelSerializer } from './infrastructure/model/FsModelSerializer.js';
26
+ import { GitHubOAuth } from './infrastructure/oauth/GitHubOAuth.js';
25
27
  import { GoogleOAuth } from './infrastructure/oauth/GoogleOAuth.js';
28
+ import { oauthNamespace } from './infrastructure/oauth/providers.js';
26
29
  import { FsReactorCycleRepository } from './infrastructure/reactor/FsReactorCycleRepository.js';
27
30
  import { FsSecretStore } from './infrastructure/secrets/SecretStore.js';
28
31
  import { FsRunRepository } from './infrastructure/skill/FsRunRepository.js';
29
- import { FsSkillRegistry } from './infrastructure/skill/FsSkillRegistry.js';
32
+ import { BUILTIN_SKILL_NAMESPACE, FsSkillRegistry } from './infrastructure/skill/FsSkillRegistry.js';
30
33
  import { SubprocessSkillRunner } from './infrastructure/skill/SubprocessSkillRunner.js';
34
+ import { FsSourceSyncStateRepository } from './infrastructure/source/FsSourceSyncStateRepository.js';
31
35
  import { FsSourceUnitDigest } from './infrastructure/source/FsSourceUnitDigest.js';
32
36
  import { FsSourceUnitObservationRepository } from './infrastructure/source/FsSourceUnitObservationRepository.js';
33
37
  import { listUnitItems, unitBearingRolesOf } from './infrastructure/source/unitScan.js';
@@ -41,11 +45,77 @@ import { ensureServiceAccount, REACTOR_USER_ID } from './serviceAccounts.js';
41
45
  import { startupBeforeServe } from './startup.js';
42
46
  // The coding preset's default plugin identities, its worldview in one place.
43
47
  // A caller overrides any of these through ComposeFsOptions,
44
- // or drops to composeApp with its own PluginRegistry for a different worldview.
48
+ // or hands composeFsAppWithRegistry its own PluginRegistry,
49
+ // for a different worldview over the same runtime.
45
50
  const DEFAULT_STORAGE_KIND = 'kuzu';
46
51
  const DEFAULT_AGENT_KIND = 'claude-code';
47
52
  const DEFAULT_AGENT_MODEL = 'opus';
48
53
  const DEFAULT_AGENT_EFFORT = 'high';
54
+ /**
55
+ * The source loaders a default Braid build ships with.
56
+ * Exported so a third-party composition can take the git, github, and drive
57
+ * loaders without inheriting the rest of the coding preset.
58
+ */
59
+ export function defaultSourceLoaderPlugins(context) {
60
+ const { secretStore, githubOAuth, googleOAuth } = context;
61
+ return [
62
+ gitLoader,
63
+ createGithubLoader({
64
+ resolveAccessToken: makeOAuthTokenResolver({
65
+ secretStore,
66
+ namespace: oauthNamespace('github'),
67
+ refresh: githubOAuth ? refreshToken => githubOAuth.refreshAccessToken(refreshToken) : undefined,
68
+ notConfigured: sourceId => new ValidationError(`GitHub source "${sourceId}" cannot be loaded: set BRAID_GITHUB_CLIENT_ID and BRAID_GITHUB_CLIENT_SECRET on the server, restart, then reconnect.`),
69
+ notConnected: (workspaceId, sourceId) => new NotFoundError(`GitHub source "${sourceId}" on workspace "${workspaceId}" is not connected. `
70
+ + `Connect it from the source settings in Studio.`),
71
+ }),
72
+ }),
73
+ // Drive is listed even when its OAuth env is unset,
74
+ // so a `kind: gdrive` source resolves a loader instead of failing lookup.
75
+ // The token resolver then throws at provision time,
76
+ // naming the env vars the user has to set.
77
+ createGoogleDriveLoader({
78
+ resolveAccessToken: makeOAuthTokenResolver({
79
+ secretStore,
80
+ namespace: oauthNamespace('google'),
81
+ refresh: googleOAuth ? refreshToken => googleOAuth.refreshAccessToken(refreshToken) : undefined,
82
+ notConfigured: sourceId => new ValidationError(`Google Drive source "${sourceId}" cannot be loaded: set BRAID_GOOGLE_CLIENT_ID and BRAID_GOOGLE_CLIENT_SECRET on the server, restart, then re-sync.`),
83
+ notConnected: (workspaceId, sourceId) => new NotFoundError(`Google Drive source "${sourceId}" on workspace "${workspaceId}" is not connected. `
84
+ + `Connect it from the source settings in Studio.`),
85
+ }),
86
+ }),
87
+ // Reaches whatever an MCP server exposes,
88
+ // so the tracker or wiki a team already runs becomes a source,
89
+ // without a package per product.
90
+ // Its credential rides in the source's own config,
91
+ // so there is nothing for the composition root to inject.
92
+ createMcpLoader(),
93
+ ];
94
+ }
95
+ /**
96
+ * The registry `composeFsApp` runs on, the coding preset's whole bundle.
97
+ * Defaults register first, then the caller's extras,
98
+ * so `extraOntologyPlugins: [c4]` yields both ddd and c4.
99
+ * The active one is chosen per-workspace via PRODUCT.md.ontologyId.
100
+ */
101
+ export function defaultPluginRegistry(context, options = {}) {
102
+ const pluginRegistry = new PluginRegistry();
103
+ pluginRegistry.register(kuzuStoragePlugin);
104
+ for (const plugin of options.extraStoragePlugins ?? [])
105
+ pluginRegistry.register(plugin);
106
+ for (const plugin of defaultOntologyPlugins())
107
+ pluginRegistry.register(plugin);
108
+ for (const plugin of options.extraOntologyPlugins ?? [])
109
+ pluginRegistry.register(plugin);
110
+ for (const plugin of defaultSourceLoaderPlugins(context))
111
+ pluginRegistry.register(plugin);
112
+ for (const plugin of options.extraSourceLoaderPlugins ?? [])
113
+ pluginRegistry.register(plugin);
114
+ pluginRegistry.register(claudeCodeAgentPlugin);
115
+ for (const plugin of options.extraAgentPlugins ?? [])
116
+ pluginRegistry.register(plugin);
117
+ return pluginRegistry;
118
+ }
49
119
  /**
50
120
  * Opinionated production composition, the coding preset.
51
121
  * Filesystem-persists workspaces, proposals, and clarifications,
@@ -53,11 +123,26 @@ const DEFAULT_AGENT_EFFORT = 'high';
53
123
  * loaders, and the claude-code agent.
54
124
  *
55
125
  * To run a different plugin set, either pass `extraXxxPlugins` and flip
56
- * `storageKind` or `agentKind`, or call `composeApp` with your own registry.
126
+ * `storageKind` or `agentKind`, or hand `composeFsAppWithRegistry` a registry
127
+ * holding only the plugins you want.
57
128
  */
58
129
  export async function composeFsApp(options = {}) {
130
+ return composeFsAppWithRegistry(context => defaultPluginRegistry(context, options), options);
131
+ }
132
+ /**
133
+ * The same filesystem runtime as `composeFsApp`, over a registry you build.
134
+ * Storage and agent resolve from whatever `buildRegistry` registered, under
135
+ * `storageKind` and `agentKind`, so a composition that omits the coding
136
+ * preset's ontology and loaders still gets the subprocess skill runner, the
137
+ * fs unit lister, and every fs repository, and so a batch runs unchanged.
138
+ */
139
+ export async function composeFsAppWithRegistry(buildRegistry, options = {}) {
59
140
  const braidHome = options.braidHome ?? process.env.BRAID_HOME ?? join(homedir(), '.braid');
60
- const apiUrl = options.apiUrl ?? 'http://localhost:4321';
141
+ // Everything below appends a path to this,
142
+ // so a trailing slash would double the separator,
143
+ // and leave an OAuth redirect no console entry matches.
144
+ const apiUrl = withoutTrailingSlash(options.apiUrl ?? 'http://localhost:4321');
145
+ const loopbackApiUrl = withoutTrailingSlash(options.loopbackApiUrl ?? apiUrl);
61
146
  const secretStore = new FsSecretStore(join(braidHome, 'secrets'));
62
147
  const googleClientId = process.env.BRAID_GOOGLE_CLIENT_ID;
63
148
  const googleClientSecret = process.env.BRAID_GOOGLE_CLIENT_SECRET;
@@ -71,6 +156,16 @@ export async function composeFsApp(options = {}) {
71
156
  loginRedirectUri: googleLoginRedirect,
72
157
  })
73
158
  : undefined;
159
+ const githubClientId = process.env.BRAID_GITHUB_CLIENT_ID;
160
+ const githubClientSecret = process.env.BRAID_GITHUB_CLIENT_SECRET;
161
+ const githubRedirect = process.env.BRAID_GITHUB_REDIRECT_URI ?? `${apiUrl}/oauth/github/callback`;
162
+ const githubOAuth = githubClientId && githubClientSecret
163
+ ? new GitHubOAuth({
164
+ clientId: githubClientId,
165
+ clientSecret: githubClientSecret,
166
+ redirectUri: githubRedirect,
167
+ })
168
+ : undefined;
74
169
  const registry = new WorkspaceRegistryFile(join(braidHome, 'workspaces.json'));
75
170
  const workspaceRepository = new FsWorkspaceRepository({ registry });
76
171
  // Server-side user roster, distinct from any workspace's git history.
@@ -94,72 +189,40 @@ export async function composeFsApp(options = {}) {
94
189
  accessPolicyConfig.adminEmails = adminEmails;
95
190
  const accessPolicy = new AccessPolicy(join(braidHome, 'access.json'), accessPolicyConfig);
96
191
  // Boot, part one, provision host identity, who may use this server.
192
+ const studioUrl = process.env.BRAID_STUDIO_URL ?? 'http://localhost:5173';
97
193
  // Local trust is the default.
98
194
  // Production sets `BRAID_LOCAL_TRUST=false` to require real authentication.
99
195
  // We do not flip the default when Google OAuth env is present,
100
196
  // those creds also feed the Drive loader,
101
197
  // and a dev pulling from Drive should not hit Login on every reload.
102
- const authMode = parseBoolEnv(process.env.BRAID_LOCAL_TRUST, true) ? localTrust : authenticated;
198
+ const locallyTrusted = parseBoolEnv(process.env.BRAID_LOCAL_TRUST, true);
199
+ assertLocalTrustIsLocal(locallyTrusted, studioUrl);
200
+ const authMode = locallyTrusted ? localTrust : authenticated;
103
201
  // Local trust seeds `local-user`, authenticated mode syncs the login allowlist.
104
202
  await authMode.provision({ userRegistry, accessPolicy });
105
203
  // The reactor is an autonomous component, so it seeds its own service account.
106
204
  // Its kind=service rides onto every proposal it submits,
107
205
  // so the HITL views classify it without a read-time lookup.
108
206
  await ensureServiceAccount(userRegistry, REACTOR_USER_ID, 'Reactor');
109
- const studioUrl = process.env.BRAID_STUDIO_URL ?? 'http://localhost:5173';
207
+ // Serving Studio ourselves puts the UI and the API on one origin,
208
+ // so the browser never reaches for CORS on the path that matters.
209
+ const studioRoot = process.env.BRAID_STUDIO_ROOT;
210
+ // A deployment that sets its own studio origin has left dev behind,
211
+ // so localhost stops being allowed unless it is named explicitly.
212
+ const corsOrigins = resolveCorsOrigins(studioUrl, process.env.BRAID_CORS_ORIGINS);
110
213
  const workspaceRoots = async () => {
111
214
  const workspaces = await workspaceRepository.list();
112
215
  return new Map(workspaces.map(ws => [ws.id, ws.rootPath]));
113
216
  };
114
217
  const proposalRepository = new FsProposalRepository({ workspaceRoots });
115
218
  const clarificationRepository = new FsClarificationRepository({ workspaceRoots });
116
- // Plugin registration. Defaults bundle first, then extras,
117
- // so a caller passing `extraOntologyPlugins: [c4]` gets both ddd and c4.
118
- // The active one is chosen per-workspace via PRODUCT.md.ontologyId.
119
- const pluginRegistry = new PluginRegistry();
120
- pluginRegistry.register(kuzuStoragePlugin);
121
- for (const plugin of options.extraStoragePlugins ?? [])
122
- pluginRegistry.register(plugin);
123
- pluginRegistry.register(dddOntology);
124
- for (const plugin of options.extraOntologyPlugins ?? [])
125
- pluginRegistry.register(plugin);
126
- pluginRegistry.register(gitLoader);
127
- pluginRegistry.register(createGithubLoader());
128
- for (const plugin of options.extraSourceLoaderPlugins ?? [])
129
- pluginRegistry.register(plugin);
130
- pluginRegistry.register(claudeCodeAgentPlugin);
131
- for (const plugin of options.extraAgentPlugins ?? [])
132
- pluginRegistry.register(plugin);
133
- // The gdrive loader is always registered,
134
- // so a `kind: gdrive` source doesn't crash at plugin lookup.
135
- // If OAuth env vars aren't configured,
136
- // the token resolver throws an actionable error at provision time,
137
- // so the user knows exactly what to set.
138
- const oauth = googleOAuth;
139
- pluginRegistry.register(createGoogleDriveLoader({
140
- resolveAccessToken: async ({ workspaceId, sourceId }) => {
141
- if (!oauth) {
142
- throw new ValidationError(`Google Drive source "${sourceId}" cannot be loaded: set BRAID_GOOGLE_CLIENT_ID and BRAID_GOOGLE_CLIENT_SECRET on the server, restart, then re-sync.`);
143
- }
144
- const key = `${workspaceId}--${sourceId}`;
145
- const stored = await secretStore.read('oauth-google', key);
146
- if (!stored) {
147
- throw new NotFoundError(`Google Drive source "${sourceId}" on workspace "${workspaceId}" is not connected. `
148
- + `Authorise via POST /oauth/google/start.`);
149
- }
150
- // 60-second skew, so we don't hand out a token about to expire mid-request.
151
- const stillValidUntil = new Date(stored.expiresAt).getTime() - 60_000;
152
- if (Date.now() < stillValidUntil)
153
- return stored.accessToken;
154
- const refreshed = await oauth.refreshAccessToken(stored.refreshToken);
155
- await secretStore.write('oauth-google', key, {
156
- ...stored,
157
- accessToken: refreshed.accessToken,
158
- expiresAt: refreshed.expiresAt,
159
- });
160
- return refreshed.accessToken;
161
- },
162
- }));
219
+ const pluginRegistry = await buildRegistry({
220
+ braidHome,
221
+ apiUrl,
222
+ secretStore,
223
+ ...(googleOAuth ? { googleOAuth } : {}),
224
+ ...(githubOAuth ? { githubOAuth } : {}),
225
+ });
163
226
  // Resolve the active storage plugin and ask it for a ModelRepository.
164
227
  const storageKind = StorageKindSchema.parse(options.storageKind ?? process.env.BRAID_STORAGE_KIND ?? DEFAULT_STORAGE_KIND);
165
228
  const modelRepository = await pluginRegistry.requireStoragePlugin(storageKind).createModelRepository({ kind: storageKind, config: {} }, {
@@ -206,31 +269,40 @@ export async function composeFsApp(options = {}) {
206
269
  console.warn('[braid] `uv` not found on PATH; the built-in braid-core MCP gateway will not be available. '
207
270
  + 'Install via `brew install uv` or https://docs.astral.sh/uv/ to enable.');
208
271
  }
209
- // Build the list of reference dirs symlinked into every skill session:
210
- // - builtin `shared/` from @braidhq/core,
211
- // format docs for Proposal, Clarification, Validator, content conventions,
212
- // and drift-detection guidance.
213
- // - whatever each registered plugin contributes,
214
- // for example the concept doc from ontology-ddd.
272
+ // Reference dirs mounted into every skill session,
273
+ // keyed by the namespace that owns them, so each stays paired with its skills.
274
+ // Core's `shared/` lands under the builtin namespace,
275
+ // carrying the Proposal, Clarification, Validator, batch-plan, drift contracts.
276
+ // Each plugin's own dir lands under its namespace,
277
+ // the DDD concept doc under `ddd` for example.
215
278
  // Plugin contributions resolve `URL` to an absolute path.
216
279
  const pluginReferenceDirs = pluginRegistry.pluginReferenceDirs().map((ref) => {
217
280
  const dir = typeof ref.directory === 'string' ? ref.directory : fileURLToPath(ref.directory);
218
- return { name: ref.name, path: dir };
281
+ return { skillNamespace: ref.skillNamespace, path: dir };
219
282
  });
220
283
  const skillRunner = new SubprocessSkillRunner({
221
284
  skillRegistry,
222
285
  buildAgentBinding: descriptor => pluginRegistry.requireAgentPlugin(descriptor.kind).createBinding(descriptor),
223
286
  defaultAgent,
224
- apiUrl,
287
+ // The agent and the gateway both run on this host,
288
+ // so they call back on loopback rather than through the public name.
289
+ apiUrl: loopbackApiUrl,
225
290
  runRepository,
226
291
  eventBus,
227
292
  ...(uvxBin
228
- ? { coreGateway: { specUrl: `${apiUrl}/openapi.json`, uvxBin } }
293
+ ? { coreGateway: { specUrl: `${loopbackApiUrl}/openapi.json`, uvxBin } }
229
294
  : {}),
230
295
  referenceDirs: [
231
- { name: 'shared', path: join(builtinSkillsRoot, 'shared') },
296
+ { skillNamespace: BUILTIN_SKILL_NAMESPACE, path: join(builtinSkillsRoot, 'shared') },
232
297
  ...pluginReferenceDirs,
233
298
  ],
299
+ // Resolve the workspace's active ontology to its declared source roles.
300
+ // The runner serialises these into BRAID_SOURCE_ROLES,
301
+ // so a generic prompt reads the role vocabulary instead of naming role ids.
302
+ resolveSourceRoles: (workspace) => {
303
+ const ontology = pluginRegistry.findOntology(workspace.productManifest.ontologyId);
304
+ return ontology?.sourceRoles ?? [];
305
+ },
234
306
  });
235
307
  // Shared by WorkspaceBootstrapService (boot reconciliation),
236
308
  // and HITLService (per-mutation commits).
@@ -259,10 +331,13 @@ export async function composeFsApp(options = {}) {
259
331
  bootstrap,
260
332
  batchPlanRepository: new FsBatchPlanRepository(),
261
333
  unitLister: workspace => listUnitItems(workspace, unitBearingRolesOf(pluginRegistry, workspace)),
334
+ ...(options.defaultOntologyId ? { defaultOntologyId: options.defaultOntologyId } : {}),
262
335
  // The reactor has no human caller, so it acts as the `reactor` service account,
263
336
  // minting a short-lived session so its API calls authenticate.
264
337
  reactorToken: async () => (await sessionStore.issue(REACTOR_USER_ID, { ttlSeconds: 3600 })).token,
265
338
  sourceUnitObservationRepository: new FsSourceUnitObservationRepository({ workspaceRoots }),
339
+ sourceSyncStateRepository: new FsSourceSyncStateRepository({ workspaceRoots }),
340
+ isWorkspaceBusy: workspaceId => skillRunner.hasActiveRun(workspaceId),
266
341
  reactorCycleRepository: new FsReactorCycleRepository({ workspaceRoots }),
267
342
  sourceUnitDigest: new FsSourceUnitDigest(),
268
343
  userDirectory,
@@ -289,9 +364,107 @@ export async function composeFsApp(options = {}) {
289
364
  sessionStore,
290
365
  accessPolicy,
291
366
  studioUrl,
367
+ ...(studioRoot ? { studioRoot } : {}),
368
+ ...(corsOrigins ? { corsOrigins } : {}),
292
369
  ...(googleOAuth ? { googleOAuth } : {}),
370
+ ...(githubOAuth ? { githubOAuth } : {}),
371
+ };
372
+ }
373
+ /**
374
+ * Build a token resolver for an OAuth-backed loader.
375
+ * Returns a still-valid access token, or refreshes when it is near expiry.
376
+ * A failed refresh flags the source `needsAuth` so Studio prompts a reconnect,
377
+ * a fresh refresh clears that flag.
378
+ * `refresh` is absent when the provider's server env is unset,
379
+ * then the resolver throws `notConfigured`.
380
+ */
381
+ function makeOAuthTokenResolver(deps) {
382
+ return async ({ workspaceId, sourceId }) => {
383
+ if (!deps.refresh)
384
+ throw deps.notConfigured(sourceId);
385
+ const key = `${workspaceId}--${sourceId}`;
386
+ const stored = await deps.secretStore.read(deps.namespace, key);
387
+ if (!stored)
388
+ throw deps.notConnected(workspaceId, sourceId);
389
+ // 60-second skew, so we don't hand out a token about to expire mid-request.
390
+ const stillValidUntil = new Date(stored.expiresAt).getTime() - 60_000;
391
+ if (Date.now() < stillValidUntil)
392
+ return stored.accessToken;
393
+ try {
394
+ // A fresh set clears any prior needs-auth marker.
395
+ // GitHub rotates its refresh token, so spreading `refreshed` keeps it.
396
+ const refreshed = await deps.refresh(stored.refreshToken);
397
+ await deps.secretStore.write(deps.namespace, key, { ...stored, ...refreshed, needsAuth: false });
398
+ return refreshed.accessToken;
399
+ }
400
+ catch (error) {
401
+ // The refresh token is dead, revoked or expired.
402
+ // Flag the source so Studio prompts a reconnect instead of only logging.
403
+ await deps.secretStore.write(deps.namespace, key, { ...stored, needsAuth: true });
404
+ throw error;
405
+ }
293
406
  };
294
407
  }
408
+ /**
409
+ * Refuse to trust every caller on a deployment reachable by other people.
410
+ *
411
+ * The default is local trust and suits a laptop,
412
+ * but it is catastrophic on a shared host. Nothing else tells the two apart,
413
+ * and naming a Studio origin that is not loopback is a deployment saying so out loud.
414
+ */
415
+ function assertLocalTrustIsLocal(locallyTrusted, studioUrl) {
416
+ if (!locallyTrusted)
417
+ return;
418
+ const host = hostOf(studioUrl);
419
+ const isLoopback = host === undefined
420
+ || host === 'localhost'
421
+ || host === '127.0.0.1'
422
+ || host === '[::1]'
423
+ || host.endsWith('.localhost');
424
+ if (isLoopback)
425
+ return;
426
+ throw new Error(`BRAID_STUDIO_URL is "${studioUrl}", so this server is reachable by other people, `
427
+ + 'but BRAID_LOCAL_TRUST is on and every caller would be trusted without signing in. '
428
+ + 'Set BRAID_LOCAL_TRUST=false.');
429
+ }
430
+ /** A base URL a path can be appended to, whatever the operator typed. */
431
+ export function withoutTrailingSlash(url) {
432
+ return url.replace(/\/+$/, '');
433
+ }
434
+ /** The hostname of a URL, without the port. */
435
+ function hostOf(url) {
436
+ try {
437
+ return new URL(url).hostname.toLowerCase();
438
+ }
439
+ catch {
440
+ return undefined;
441
+ }
442
+ }
443
+ /**
444
+ * Which browser origins may call this API.
445
+ *
446
+ * A deployment that names its own Studio origin has left dev behind,
447
+ * so the localhost defaults stop applying and only that origin,
448
+ * plus anything named explicitly, gets through.
449
+ * Leaving both unset keeps a local install on the dev defaults.
450
+ */
451
+ function resolveCorsOrigins(studioUrl, extra) {
452
+ const named = parseCsv(extra) ?? [];
453
+ const studioOrigin = originOf(studioUrl);
454
+ const isDevDefault = studioOrigin === 'http://localhost:5173';
455
+ if (isDevDefault && named.length === 0)
456
+ return undefined;
457
+ return [...new Set([...(studioOrigin ? [studioOrigin] : []), ...named])];
458
+ }
459
+ /** The scheme and authority of a URL, the shape a browser sends as `Origin`. */
460
+ function originOf(url) {
461
+ try {
462
+ return new URL(url).origin;
463
+ }
464
+ catch {
465
+ return undefined;
466
+ }
467
+ }
295
468
  function parseCsv(input) {
296
469
  if (!input)
297
470
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"composeFsApp.js","sourceRoot":"","sources":["../src/composeFsApp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"composeFsApp.js","sourceRoot":"","sources":["../src/composeFsApp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { OntologyPlugin } from '@braidhq/core';
2
+ /**
3
+ * The ontology plugins a default Braid build ships with.
4
+ * This is the single composition point where a concrete ontology is named,
5
+ * so swapping or adding one touches only this file.
6
+ * composeFsApp registers these, and `braid init` reads their sourceRoles.
7
+ */
8
+ export declare function defaultOntologyPlugins(): readonly OntologyPlugin[];
9
+ //# sourceMappingURL=defaultOntologyPlugins.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultOntologyPlugins.d.ts","sourceRoot":"","sources":["../src/defaultOntologyPlugins.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAGnD;;;;;GAKG;AACH,wBAAgB,sBAAsB,IAAI,SAAS,cAAc,EAAE,CAElE"}
@@ -0,0 +1,11 @@
1
+ import { dddOntology } from '@braidhq/ontology-ddd';
2
+ /**
3
+ * The ontology plugins a default Braid build ships with.
4
+ * This is the single composition point where a concrete ontology is named,
5
+ * so swapping or adding one touches only this file.
6
+ * composeFsApp registers these, and `braid init` reads their sourceRoles.
7
+ */
8
+ export function defaultOntologyPlugins() {
9
+ return [dddOntology];
10
+ }
11
+ //# sourceMappingURL=defaultOntologyPlugins.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultOntologyPlugins.js","sourceRoot":"","sources":["../src/defaultOntologyPlugins.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAEnD;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB;IACpC,OAAO,CAAC,WAAW,CAAC,CAAA;AACtB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,9 @@
1
1
  export * from './app.js';
2
2
  export * from './composeApp.js';
3
3
  export * from './composeFsApp.js';
4
+ export * from './defaultOntologyPlugins.js';
4
5
  export * from './middleware/error.js';
5
6
  export * from './startServer.js';
7
+ export type { OntologyPlugin } from '@braidhq/core';
8
+ export type { SourceRoleDescriptor } from '@braidhq/schema';
6
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,uBAAuB,CAAA;AACrC,cAAc,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,uBAAuB,CAAA;AACrC,cAAc,kBAAkB,CAAA;AAIhC,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AACnD,YAAY,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA"}
package/dist/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  export * from './app.js';
2
2
  export * from './composeApp.js';
3
3
  export * from './composeFsApp.js';
4
+ export * from './defaultOntologyPlugins.js';
4
5
  export * from './middleware/error.js';
5
6
  export * from './startServer.js';
6
7
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,uBAAuB,CAAA;AACrC,cAAc,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,uBAAuB,CAAA;AACrC,cAAc,kBAAkB,CAAA"}
@@ -15,6 +15,8 @@ export declare function batchPlanPath(workspaceRoot: AbsolutePath): string;
15
15
  export declare function sourceUnitObservationDir(workspaceRoot: AbsolutePath): string;
16
16
  export declare function sourceUnitObservationFilePath(workspaceRoot: AbsolutePath, sourceId: string, relativePath: string): string;
17
17
  export declare function sourceUnitObservationSourceDir(workspaceRoot: AbsolutePath, sourceId: string): string;
18
+ export declare function sourceSyncStateDir(workspaceRoot: AbsolutePath): string;
19
+ export declare function sourceSyncStateFilePath(workspaceRoot: AbsolutePath, sourceId: string): string;
18
20
  export declare function proposalsDir(workspaceRoot: AbsolutePath, status: ProposalStatus): string;
19
21
  export declare function clarificationDir(workspaceRoot: AbsolutePath, status: ClarificationStatus): string;
20
22
  export declare function viewsDir(workspaceRoot: AbsolutePath, kind: string): string;
@@ -1 +1 @@
1
- {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/_shared/paths.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAIrG,eAAO,MAAM,iBAAiB,EAAE,SAAS,cAAc,EAAuC,CAAA;AAC9F,eAAO,MAAM,gBAAgB,EAAE,SAAS,mBAAmB,EAAkD,CAAA;AAE7G;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAGlE;AAED,oEAAoE;AACpE,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAQ/D;AAED,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,YAAY,GAAG,MAAM,CAEzE;AAED,wBAAgB,aAAa,CAAC,aAAa,EAAE,YAAY,GAAG,MAAM,CAEjE;AAED,wBAAgB,aAAa,CAAC,aAAa,EAAE,YAAY,GAAG,MAAM,CAEjE;AAED,wBAAgB,wBAAwB,CAAC,aAAa,EAAE,YAAY,GAAG,MAAM,CAE5E;AAED,wBAAgB,6BAA6B,CAC3C,aAAa,EAAE,YAAY,EAC3B,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,GACnB,MAAM,CAQR;AAED,wBAAgB,8BAA8B,CAC5C,aAAa,EAAE,YAAY,EAC3B,QAAQ,EAAE,MAAM,GACf,MAAM,CAER;AAED,wBAAgB,YAAY,CAAC,aAAa,EAAE,YAAY,EAAE,MAAM,EAAE,cAAc,GAAG,MAAM,CAExF;AAED,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,YAAY,EAAE,MAAM,EAAE,mBAAmB,GAAG,MAAM,CAEjG;AAED,wBAAgB,QAAQ,CAAC,aAAa,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE1E;AAED,wBAAgB,OAAO,CAAC,aAAa,EAAE,YAAY,GAAG,MAAM,CAE3D;AAED,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,YAAY,GAAG,MAAM,CAEpE;AAED,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEzF;AAED,wBAAgB,YAAY,CAAC,aAAa,EAAE,YAAY,GAAG,MAAM,CAEhE;AAED,wBAAgB,aAAa,CAAC,aAAa,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhF;AAED,wBAAgB,uBAAuB,CAAC,aAAa,EAAE,YAAY,GAAG,MAAM,CAE3E;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,aAAa,EAAE,YAAY,GAAG,MAAM,CAE/D;AAED,wBAAgB,cAAc,CAAC,aAAa,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEjF;AAED,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,YAAY,GAAG,MAAM,CAEtE;AAED,wBAAgB,2BAA2B,CAAC,aAAa,EAAE,YAAY,GAAG,MAAM,CAE/E;AAED,wBAAgB,4BAA4B,CAAC,aAAa,EAAE,YAAY,GAAG,MAAM,CAEhF;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;IAC3B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAA;IACjC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;CAC9B"}
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/_shared/paths.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAIrG,eAAO,MAAM,iBAAiB,EAAE,SAAS,cAAc,EAAuC,CAAA;AAC9F,eAAO,MAAM,gBAAgB,EAAE,SAAS,mBAAmB,EAAkD,CAAA;AAE7G;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAGlE;AAED,oEAAoE;AACpE,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAQ/D;AAED,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,YAAY,GAAG,MAAM,CAEzE;AAED,wBAAgB,aAAa,CAAC,aAAa,EAAE,YAAY,GAAG,MAAM,CAEjE;AAED,wBAAgB,aAAa,CAAC,aAAa,EAAE,YAAY,GAAG,MAAM,CAEjE;AAED,wBAAgB,wBAAwB,CAAC,aAAa,EAAE,YAAY,GAAG,MAAM,CAE5E;AAED,wBAAgB,6BAA6B,CAC3C,aAAa,EAAE,YAAY,EAC3B,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,GACnB,MAAM,CAQR;AAED,wBAAgB,8BAA8B,CAC5C,aAAa,EAAE,YAAY,EAC3B,QAAQ,EAAE,MAAM,GACf,MAAM,CAER;AAED,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,YAAY,GAAG,MAAM,CAEtE;AAED,wBAAgB,uBAAuB,CAAC,aAAa,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE7F;AAED,wBAAgB,YAAY,CAAC,aAAa,EAAE,YAAY,EAAE,MAAM,EAAE,cAAc,GAAG,MAAM,CAExF;AAED,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,YAAY,EAAE,MAAM,EAAE,mBAAmB,GAAG,MAAM,CAEjG;AAED,wBAAgB,QAAQ,CAAC,aAAa,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE1E;AAED,wBAAgB,OAAO,CAAC,aAAa,EAAE,YAAY,GAAG,MAAM,CAE3D;AAED,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,YAAY,GAAG,MAAM,CAEpE;AAED,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEzF;AAED,wBAAgB,YAAY,CAAC,aAAa,EAAE,YAAY,GAAG,MAAM,CAEhE;AAED,wBAAgB,aAAa,CAAC,aAAa,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhF;AAED,wBAAgB,uBAAuB,CAAC,aAAa,EAAE,YAAY,GAAG,MAAM,CAE3E;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,aAAa,EAAE,YAAY,GAAG,MAAM,CAE/D;AAED,wBAAgB,cAAc,CAAC,aAAa,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEjF;AAED,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,YAAY,GAAG,MAAM,CAEtE;AAED,wBAAgB,2BAA2B,CAAC,aAAa,EAAE,YAAY,GAAG,MAAM,CAE/E;AAED,wBAAgB,4BAA4B,CAAC,aAAa,EAAE,YAAY,GAAG,MAAM,CAEhF;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;IAC3B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAA;IACjC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;CAC9B"}
@@ -45,6 +45,12 @@ export function sourceUnitObservationFilePath(workspaceRoot, sourceId, relativeP
45
45
  export function sourceUnitObservationSourceDir(workspaceRoot, sourceId) {
46
46
  return join(sourceUnitObservationDir(workspaceRoot), sourceId);
47
47
  }
48
+ export function sourceSyncStateDir(workspaceRoot) {
49
+ return join(workspaceArtifactsDir(workspaceRoot), 'source-sync-state');
50
+ }
51
+ export function sourceSyncStateFilePath(workspaceRoot, sourceId) {
52
+ return join(sourceSyncStateDir(workspaceRoot), `${sourceId}.json`);
53
+ }
48
54
  export function proposalsDir(workspaceRoot, status) {
49
55
  return join(workspaceArtifactsDir(workspaceRoot), 'proposals', status);
50
56
  }
@@ -1 +1 @@
1
- {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../../src/infrastructure/_shared/paths.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../../src/infrastructure/_shared/paths.ts"],"names":[],"mappings":"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"}