@braidhq/server 0.2.1 → 0.3.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 (56) hide show
  1. package/README.md +3 -1
  2. package/dist/app.d.ts.map +1 -1
  3. package/dist/app.js +28 -4
  4. package/dist/app.js.map +1 -1
  5. package/dist/composeApp.d.ts +5 -1
  6. package/dist/composeApp.d.ts.map +1 -1
  7. package/dist/composeApp.js +6 -0
  8. package/dist/composeApp.js.map +1 -1
  9. package/dist/composeFsApp.d.ts +49 -3
  10. package/dist/composeFsApp.d.ts.map +1 -1
  11. package/dist/composeFsApp.js +146 -59
  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/oauth/GitHubOAuth.d.ts +45 -0
  22. package/dist/infrastructure/oauth/GitHubOAuth.d.ts.map +1 -0
  23. package/dist/infrastructure/oauth/GitHubOAuth.js +85 -0
  24. package/dist/infrastructure/oauth/GitHubOAuth.js.map +1 -0
  25. package/dist/infrastructure/oauth/providers.d.ts +19 -0
  26. package/dist/infrastructure/oauth/providers.d.ts.map +1 -0
  27. package/dist/infrastructure/oauth/providers.js +22 -0
  28. package/dist/infrastructure/oauth/providers.js.map +1 -0
  29. package/dist/infrastructure/skill/FsSkillRegistry.d.ts +6 -0
  30. package/dist/infrastructure/skill/FsSkillRegistry.d.ts.map +1 -1
  31. package/dist/infrastructure/skill/FsSkillRegistry.js +7 -1
  32. package/dist/infrastructure/skill/FsSkillRegistry.js.map +1 -1
  33. package/dist/infrastructure/skill/SubprocessSkillRunner.d.ts +26 -5
  34. package/dist/infrastructure/skill/SubprocessSkillRunner.d.ts.map +1 -1
  35. package/dist/infrastructure/skill/SubprocessSkillRunner.js +125 -13
  36. package/dist/infrastructure/skill/SubprocessSkillRunner.js.map +1 -1
  37. package/dist/infrastructure/workspace/productManifestWriter.d.ts +5 -1
  38. package/dist/infrastructure/workspace/productManifestWriter.d.ts.map +1 -1
  39. package/dist/infrastructure/workspace/productManifestWriter.js +5 -2
  40. package/dist/infrastructure/workspace/productManifestWriter.js.map +1 -1
  41. package/dist/middleware/auth.d.ts.map +1 -1
  42. package/dist/middleware/auth.js +8 -1
  43. package/dist/middleware/auth.js.map +1 -1
  44. package/dist/routes/oauth.d.ts +51 -10
  45. package/dist/routes/oauth.d.ts.map +1 -1
  46. package/dist/routes/oauth.js +174 -62
  47. package/dist/routes/oauth.js.map +1 -1
  48. package/dist/routes/sourceConnection.d.ts +30 -0
  49. package/dist/routes/sourceConnection.d.ts.map +1 -0
  50. package/dist/routes/sourceConnection.js +51 -0
  51. package/dist/routes/sourceConnection.js.map +1 -0
  52. package/dist/routes/workspaces.d.ts +6 -0
  53. package/dist/routes/workspaces.d.ts.map +1 -1
  54. package/dist/routes/workspaces.js +8 -1
  55. package/dist/routes/workspaces.js.map +1 -1
  56. package/package.json +15 -15
@@ -1,86 +1,198 @@
1
+ import { ForbiddenError, NotFoundError } from '@braidhq/core';
2
+ import { WorkspaceId } from '@braidhq/schema';
1
3
  import { zValidator } from '@hono/zod-validator';
2
4
  import { Hono } from 'hono';
3
5
  import { z } from 'zod';
4
6
  import { createOAuthState, createPkceVerifier } from '../infrastructure/oauth/GoogleOAuth.js';
7
+ import { oauthProvider } from '../infrastructure/oauth/providers.js';
8
+ import { getUserId } from '../middleware/auth.js';
9
+ import { defaultPermissionRegistry, resolveViewer } from '../policy/index.js';
5
10
  const DRIVE_READONLY_SCOPE = 'https://www.googleapis.com/auth/drive.readonly';
6
11
  const StartBodySchema = z.object({
7
12
  workspaceId: z.string().min(1),
8
13
  sourceId: z.string().min(1),
9
14
  });
10
15
  /**
11
- * OAuth routes for source-loader providers that need user consent.
12
- * `POST /oauth/google/start` returns an authorizationUrl.
13
- * `GET /oauth/google/callback` returns an HTML page that closes the popup.
14
- *
15
- * Pending state is kept in process memory. The flow is short-lived,
16
- * a single browser round-trip, and a server restart cancels it,
17
- * acceptable for a local desktop or single-user install.
18
- * SaaS deployments should swap `pending` for a shared store.
16
+ * In-process store of pending OAuth flows, keyed by the state token.
17
+ * The start and callback routers mount at different prefixes,
18
+ * so they share one instance,
19
+ * and a flow opened by `start` is resolved by `callback`.
20
+ * A flow is short-lived, one browser round-trip, and a restart cancels it.
21
+ * SaaS deployments should swap this for a shared store.
19
22
  */
20
- export function createOAuthRouter(deps) {
21
- const router = new Hono();
22
- const pending = new Map();
23
- router.post('/google/start', zValidator('json', StartBodySchema), async (context) => {
24
- if (!deps.google) {
25
- return context.json({
26
- error: 'Google OAuth is not configured on this server. Set BRAID_GOOGLE_CLIENT_ID + BRAID_GOOGLE_CLIENT_SECRET (and BRAID_GOOGLE_REDIRECT_URI if not the default) and restart.',
27
- }, 503);
23
+ export class OAuthFlowStore {
24
+ pending = new Map();
25
+ put(state, flow) {
26
+ this.pending.set(state, flow);
27
+ this.sweep();
28
+ }
29
+ take(state) {
30
+ const flow = this.pending.get(state);
31
+ this.pending.delete(state);
32
+ return flow;
33
+ }
34
+ sweep() {
35
+ const cutoff = Date.now() - 10 * 60 * 1000;
36
+ for (const [state, flow] of this.pending) {
37
+ if (flow.createdAt < cutoff)
38
+ this.pending.delete(state);
28
39
  }
29
- const { workspaceId, sourceId } = context.req.valid('json');
30
- const state = createOAuthState();
31
- const codeVerifier = createPkceVerifier();
32
- pending.set(state, { workspaceId, sourceId, codeVerifier, createdAt: Date.now() });
33
- sweepStale(pending);
34
- const authorizationUrl = deps.google.buildAuthorizationUrl({
35
- scopes: [DRIVE_READONLY_SCOPE],
36
- state,
37
- codeVerifier,
40
+ }
41
+ }
42
+ function providersOf(deps) {
43
+ const google = oauthProvider('google');
44
+ const github = oauthProvider('github');
45
+ return [
46
+ {
47
+ id: google.id,
48
+ label: google.label,
49
+ namespace: google.namespace,
50
+ notConfigured: 'Google OAuth is not configured on this server. Set BRAID_GOOGLE_CLIENT_ID + BRAID_GOOGLE_CLIENT_SECRET (and BRAID_GOOGLE_REDIRECT_URI if not the default) and restart.',
51
+ ...(deps.google
52
+ ? {
53
+ begin: (state) => {
54
+ const codeVerifier = createPkceVerifier();
55
+ return { authorizationUrl: deps.google.buildAuthorizationUrl({ scopes: [DRIVE_READONLY_SCOPE], state, codeVerifier }), codeVerifier };
56
+ },
57
+ complete: (flow, code) => {
58
+ if (!flow.codeVerifier)
59
+ throw new Error('Google flow is missing its PKCE verifier.');
60
+ return deps.google.exchangeCode({ code, codeVerifier: flow.codeVerifier });
61
+ },
62
+ }
63
+ : {}),
64
+ },
65
+ {
66
+ id: github.id,
67
+ label: github.label,
68
+ namespace: github.namespace,
69
+ notConfigured: 'GitHub OAuth is not configured on this server. Set BRAID_GITHUB_CLIENT_ID + BRAID_GITHUB_CLIENT_SECRET (and BRAID_GITHUB_REDIRECT_URI if not the default) and restart.',
70
+ ...(deps.github
71
+ ? {
72
+ begin: (state) => ({ authorizationUrl: deps.github.buildAuthorizationUrl({ state }) }),
73
+ complete: (_flow, code) => deps.github.exchangeCode({ code }),
74
+ }
75
+ : {}),
76
+ },
77
+ ];
78
+ }
79
+ /**
80
+ * Source-connection start routes. `workspace.write` is owner-only,
81
+ * so only an owner connects or reconnects a source on an existing workspace,
82
+ * and the authorising member is recorded as `connectedBy`.
83
+ * A not-yet-scaffolded workspace is allowed,
84
+ * since the Wizard connects a source before it creates the workspace,
85
+ * and the caller becomes its owner.
86
+ */
87
+ export function createOAuthStartRouter(deps) {
88
+ const router = new Hono();
89
+ for (const provider of providersOf(deps)) {
90
+ router.post(`/${provider.id}/start`, zValidator('json', StartBodySchema), async (context) => {
91
+ if (!provider.begin)
92
+ return context.json({ error: provider.notConfigured }, 503);
93
+ const { workspaceId, sourceId } = context.req.valid('json');
94
+ const connectedBy = await authoriseConnect(deps, workspaceId, getUserId(context));
95
+ const state = createOAuthState();
96
+ const started = provider.begin(state);
97
+ deps.flowStore.put(state, pendingFlow(workspaceId, sourceId, connectedBy, started.codeVerifier));
98
+ return context.json({ authorizationUrl: started.authorizationUrl });
38
99
  });
39
- return context.json({ authorizationUrl });
40
- });
41
- router.get('/google/callback', async (context) => {
42
- const state = context.req.query('state');
43
- const code = context.req.query('code');
44
- const error = context.req.query('error');
45
- if (error)
46
- return context.html(renderCallbackPage({ ok: false, message: `Google returned: ${error}` }), 400);
47
- if (!state || !code)
48
- return context.html(renderCallbackPage({ ok: false, message: 'Missing state or code query parameter.' }), 400);
49
- if (!deps.google)
50
- return context.html(renderCallbackPage({ ok: false, message: 'OAuth not configured.' }), 503);
51
- const flow = pending.get(state);
52
- pending.delete(state);
53
- if (!flow)
54
- return context.html(renderCallbackPage({ ok: false, message: 'State token not recognised (probably expired or already used).' }), 400);
55
- try {
56
- const tokens = await deps.google.exchangeCode({ code, codeVerifier: flow.codeVerifier });
57
- await persistTokens(deps.secretStore, flow.workspaceId, flow.sourceId, tokens);
58
- return context.html(renderCallbackPage({ ok: true, message: 'Connected. You can close this window.' }));
59
- }
60
- catch (err) {
61
- return context.html(renderCallbackPage({
62
- ok: false,
63
- message: err instanceof Error ? err.message : String(err),
64
- }), 500);
65
- }
66
- });
100
+ }
67
101
  return router;
68
102
  }
69
- async function persistTokens(store, workspaceId, sourceId, tokens) {
70
- await store.write('oauth-google', `${workspaceId}--${sourceId}`, tokens);
103
+ /**
104
+ * Gate a connect on `workspace.write` when the workspace exists,
105
+ * allow it before scaffold, and return who is connecting.
106
+ * Returns undefined in the in-memory composition,
107
+ * which wires no user or workspace registry and stays open,
108
+ * matching how the other workspace routes behave there.
109
+ */
110
+ async function authoriseConnect(deps, workspaceId, userId) {
111
+ if (!deps.userRegistry || !deps.workspaceService || !deps.workspaceRegistry)
112
+ return undefined;
113
+ const user = await deps.userRegistry.get(userId);
114
+ if (!user)
115
+ throw new ForbiddenError(`Unknown user "${userId}".`);
116
+ const workspace = await findWorkspaceOrUndefined(deps.workspaceService, workspaceId);
117
+ if (workspace) {
118
+ const member = await deps.workspaceRegistry.getMember(workspace.rootPath, userId);
119
+ if (!defaultPermissionRegistry.can('workspace.write', resolveViewer(user, member)))
120
+ throw new ForbiddenError(`Only an owner can connect a source on workspace "${workspaceId}".`);
121
+ }
122
+ return { userId: user.id, displayName: user.displayName };
71
123
  }
72
- function sweepStale(pending) {
73
- const cutoff = Date.now() - 10 * 60 * 1000;
74
- for (const [state, flow] of pending) {
75
- if (flow.createdAt < cutoff)
76
- pending.delete(state);
124
+ async function findWorkspaceOrUndefined(service, workspaceId) {
125
+ try {
126
+ return await service.findById(WorkspaceId.parse(workspaceId));
127
+ }
128
+ catch (error) {
129
+ if (error instanceof NotFoundError)
130
+ return undefined;
131
+ throw error;
132
+ }
133
+ }
134
+ /**
135
+ * OAuth callback routes, mounted at `/oauth`,
136
+ * so the redirect URI stays one fixed path per provider,
137
+ * which is what the OAuth app registers.
138
+ * The state token carries the flow back to its workspace and source.
139
+ */
140
+ export function createOAuthCallbackRouter(deps) {
141
+ const router = new Hono();
142
+ for (const provider of providersOf(deps)) {
143
+ router.get(`/${provider.id}/callback`, async (context) => {
144
+ const parsed = parseCallback(context, provider);
145
+ if (!parsed.ok)
146
+ return parsed.response;
147
+ if (!provider.complete)
148
+ return context.html(renderCallbackPage({ ok: false, provider, message: 'OAuth not configured.' }), 503);
149
+ const flow = deps.flowStore.take(parsed.state);
150
+ if (!flow)
151
+ return context.html(renderCallbackPage({ ok: false, provider, message: 'State token not recognised (probably expired or already used).' }), 400);
152
+ try {
153
+ const tokens = await provider.complete(flow, parsed.code);
154
+ await persistTokens(deps.secretStore, provider, flow, tokens);
155
+ return context.html(renderCallbackPage({ ok: true, provider, message: 'Connected. You can close this window.' }));
156
+ }
157
+ catch (err) {
158
+ return context.html(renderCallbackPage({ ok: false, provider, message: err instanceof Error ? err.message : String(err) }), 500);
159
+ }
160
+ });
77
161
  }
162
+ return router;
163
+ }
164
+ function pendingFlow(workspaceId, sourceId, connectedBy, codeVerifier) {
165
+ return {
166
+ workspaceId,
167
+ sourceId,
168
+ createdAt: Date.now(),
169
+ ...(connectedBy ? { connectedBy } : {}),
170
+ ...(codeVerifier ? { codeVerifier } : {}),
171
+ };
172
+ }
173
+ function parseCallback(context, provider) {
174
+ const error = context.req.query('error');
175
+ if (error)
176
+ return { ok: false, response: context.html(renderCallbackPage({ ok: false, provider, message: `${provider.label} returned: ${error}` }), 400) };
177
+ const state = context.req.query('state');
178
+ const code = context.req.query('code');
179
+ if (!state || !code)
180
+ return { ok: false, response: context.html(renderCallbackPage({ ok: false, provider, message: 'Missing state or code query parameter.' }), 400) };
181
+ return { ok: true, state, code };
182
+ }
183
+ async function persistTokens(store, provider, flow, tokens) {
184
+ await store.write(provider.namespace, `${flow.workspaceId}--${flow.sourceId}`, {
185
+ ...tokens,
186
+ connectedAt: new Date().toISOString(),
187
+ ...(flow.connectedBy ? { connectedBy: flow.connectedBy } : {}),
188
+ });
78
189
  }
79
190
  function renderCallbackPage(input) {
80
191
  // Tiny self-contained HTML. Tells the popup opener and closes itself.
81
192
  // Inline style so the page works without any asset pipeline.
82
193
  const colour = input.ok ? '#16a34a' : '#dc2626';
83
194
  const status = input.ok ? 'success' : 'error';
195
+ const heading = input.ok ? `Connected to ${input.provider.label}` : 'Authorization failed';
84
196
  return `<!doctype html>
85
197
  <html><head><meta charset="utf-8"><title>Braid OAuth</title>
86
198
  <style>
@@ -91,11 +203,11 @@ function renderCallbackPage(input) {
91
203
  </style>
92
204
  </head><body>
93
205
  <div class="card">
94
- <h1>${status === 'success' ? 'Connected to Google' : 'Authorization failed'}</h1>
206
+ <h1>${heading}</h1>
95
207
  <p>${escapeHtml(input.message)}</p>
96
208
  </div>
97
209
  <script>
98
- try { window.opener?.postMessage({ source: 'braid-oauth', provider: 'google', status: ${JSON.stringify(status)} }, '*'); } catch (_e) {}
210
+ try { window.opener?.postMessage({ source: 'braid-oauth', provider: ${JSON.stringify(input.provider.id)}, status: ${JSON.stringify(status)} }, '*'); } catch (_e) {}
99
211
  setTimeout(() => { try { window.close(); } catch (_e) {} }, 1500);
100
212
  </script>
101
213
  </body></html>`;
@@ -1 +1 @@
1
- {"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../src/routes/oauth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../src/routes/oauth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import type { WorkspaceService } from '@braidhq/core';
2
+ import type { Hono as HonoType } from 'hono';
3
+ import type { SecretStore } from '../infrastructure/secrets/SecretStore.js';
4
+ export interface SourceConnectionStatus {
5
+ readonly connected: boolean;
6
+ readonly needsAuth: boolean;
7
+ readonly connectedBy?: {
8
+ userId: string;
9
+ displayName: string;
10
+ };
11
+ readonly connectedAt?: string;
12
+ }
13
+ export type SourceConnectionSummary = SourceConnectionStatus & {
14
+ readonly sourceId: string;
15
+ readonly name: string;
16
+ readonly kind: string;
17
+ };
18
+ export interface SourceConnectionRouterDeps {
19
+ readonly secretStore: SecretStore;
20
+ readonly workspaceService: WorkspaceService;
21
+ }
22
+ /**
23
+ * Reports whether a source has a live OAuth connection, who linked it,
24
+ * and whether its token has gone stale.
25
+ * Read-only, so any workspace member can see the status,
26
+ * the reconnect action stays owner-gated on the start route.
27
+ * The collection route lets a banner flag a stale source without opening it.
28
+ */
29
+ export declare function createSourceConnectionRouter(deps: SourceConnectionRouterDeps): HonoType;
30
+ //# sourceMappingURL=sourceConnection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sourceConnection.d.ts","sourceRoot":"","sources":["../../src/routes/sourceConnection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AACrD,OAAO,KAAK,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,MAAM,CAAA;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAA;AAmB3E,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAI3B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAA;IAC9D,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAC9B;AAED,MAAM,MAAM,uBAAuB,GAAG,sBAAsB,GAAG;IAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAE1I,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAA;IACjC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAA;CAC5C;AAED;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,0BAA0B,GAAG,QAAQ,CAoBvF"}
@@ -0,0 +1,51 @@
1
+ import { SourceId, WorkspaceId } from '@braidhq/schema';
2
+ import { Hono } from 'hono';
3
+ import { OAUTH_PROVIDERS } from '../infrastructure/oauth/providers.js';
4
+ import { requirePermission } from '../middleware/workspaceAccess.js';
5
+ import { getWorkspaceId } from '../middleware/workspaceId.js';
6
+ // OAuth namespaces a source credential can live under,
7
+ // keyed by `${workspaceId}--${sourceId}`. A source uses at most one.
8
+ const OAUTH_NAMESPACES = OAUTH_PROVIDERS.map(provider => provider.namespace);
9
+ // Loader kinds whose sources authenticate over OAuth.
10
+ const OAUTH_LOADER_KINDS = new Set(OAUTH_PROVIDERS.map(provider => provider.loaderKind));
11
+ /**
12
+ * Reports whether a source has a live OAuth connection, who linked it,
13
+ * and whether its token has gone stale.
14
+ * Read-only, so any workspace member can see the status,
15
+ * the reconnect action stays owner-gated on the start route.
16
+ * The collection route lets a banner flag a stale source without opening it.
17
+ */
18
+ export function createSourceConnectionRouter(deps) {
19
+ const router = new Hono();
20
+ router.get('/', requirePermission('workspace.read'), async (context) => {
21
+ const workspaceId = getWorkspaceId(context);
22
+ const workspace = await deps.workspaceService.findById(WorkspaceId.parse(workspaceId));
23
+ const connections = [];
24
+ for (const source of workspace.productManifest.sources) {
25
+ if (source.kind !== 'filesystem' || !source.loader || !OAUTH_LOADER_KINDS.has(source.loader.kind))
26
+ continue;
27
+ connections.push({ sourceId: source.id, name: source.name, kind: source.loader.kind, ...await readStatus(deps.secretStore, workspaceId, source.id) });
28
+ }
29
+ return context.json({ connections });
30
+ });
31
+ router.get('/:sourceId', requirePermission('workspace.read'), async (context) => {
32
+ return context.json(await readStatus(deps.secretStore, getWorkspaceId(context), SourceId.parse(context.req.param('sourceId'))));
33
+ });
34
+ return router;
35
+ }
36
+ async function readStatus(secretStore, workspaceId, sourceId) {
37
+ const key = `${workspaceId}--${sourceId}`;
38
+ for (const namespace of OAUTH_NAMESPACES) {
39
+ const stored = await secretStore.read(namespace, key);
40
+ if (stored) {
41
+ return {
42
+ connected: true,
43
+ needsAuth: stored.needsAuth === true,
44
+ ...(stored.connectedBy ? { connectedBy: stored.connectedBy } : {}),
45
+ ...(stored.connectedAt ? { connectedAt: stored.connectedAt } : {}),
46
+ };
47
+ }
48
+ }
49
+ return { connected: false, needsAuth: false };
50
+ }
51
+ //# sourceMappingURL=sourceConnection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sourceConnection.js","sourceRoot":"","sources":["../../src/routes/sourceConnection.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import type { HistoryService, PluginRegistry, SourceLoaderRunner, WorkspaceBoots
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;
@@ -12,6 +13,11 @@ export interface WorkspacesRouterDeps {
12
13
  * and validate that the manifest carries every role it requires.
13
14
  */
14
15
  pluginRegistry: PluginRegistry;
16
+ /**
17
+ * What a scaffold writes when the submitted manifest names no ontology.
18
+ * Absent falls to the coding preset's `ddd`.
19
+ */
20
+ defaultOntologyId?: OntologyId;
15
21
  bootstrap?: WorkspaceBootstrapService;
16
22
  /**
17
23
  * 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,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;AAIjG,OAAO,EAGL,UAAU,EAKX,MAAM,iBAAiB,CAAA;AAExB,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;;;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,CAyQvE"}
@@ -102,12 +102,19 @@ export function createWorkspacesRouter(deps) {
102
102
  if (await pathExists(productPath)) {
103
103
  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
104
  }
105
- const manifest = fillManifestDefaults(draft);
105
+ const manifest = fillManifestDefaults(draft, deps.defaultOntologyId);
106
106
  // Each ontology declares which source roles it needs to function.
107
107
  // Reject scaffolds that omit a role the ontology declares required,
108
108
  // before any writes, so the wizard can show a precise "you also need
109
109
  // a source of role x", rather than a post-scaffold validation error.
110
110
  const ontology = deps.pluginRegistry.findOntology(manifest.ontologyId);
111
+ // An unregistered ontology only surfaces later, at the first batch,
112
+ // so a build that registers any at all rejects the mismatch here.
113
+ const registeredOntologies = deps.pluginRegistry.ontologies();
114
+ if (!ontology && registeredOntologies.length > 0) {
115
+ throw new ValidationError(`Ontology "${manifest.ontologyId}" is not registered on this server. `
116
+ + `Available: ${registeredOntologies.map(o => `"${o.ontologyId}"`).join(', ')}.`);
117
+ }
111
118
  const requiredRoles = (ontology?.sourceRoles ?? []).filter(role => role.required).map(role => role.id);
112
119
  if (requiredRoles.length > 0) {
113
120
  const presentRoles = new Set(manifest.sources.map(s => s.role));
@@ -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":"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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.3.0",
5
5
  "description": "REST + SSE server for Braid.",
6
6
  "license": "MIT",
7
7
  "repository": {
@@ -22,29 +22,29 @@
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.3.0",
34
+ "@braidhq/ontology-ddd": "0.3.0",
35
+ "@braidhq/schema": "0.3.0",
36
+ "@braidhq/core": "0.3.0",
37
+ "@braidhq/source-loader-gdrive": "0.3.0",
38
+ "@braidhq/source-loader-git": "0.3.0",
39
+ "@braidhq/source-loader-github": "0.3.0",
40
+ "@braidhq/storage-kuzu": "0.3.0"
41
41
  },
42
42
  "devDependencies": {
43
- "esbuild": "^0.28.1",
44
- "tsx": "^4.23.1",
43
+ "esbuild": "^0.28.2",
44
+ "tsx": "^4.23.12",
45
45
  "typescript": "^6.0.3",
46
46
  "vitest": "^4.1.10",
47
- "@braidhq/test-utils": "0.2.1"
47
+ "@braidhq/test-utils": "0.3.0"
48
48
  },
49
49
  "publishConfig": {
50
50
  "access": "public"