@braidhq/server 0.2.0 → 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 (110) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +3 -1
  3. package/dist/app.d.ts.map +1 -1
  4. package/dist/app.js +32 -6
  5. package/dist/app.js.map +1 -1
  6. package/dist/composeApp.d.ts +9 -4
  7. package/dist/composeApp.d.ts.map +1 -1
  8. package/dist/composeApp.js +13 -6
  9. package/dist/composeApp.js.map +1 -1
  10. package/dist/composeFsApp.d.ts +49 -3
  11. package/dist/composeFsApp.d.ts.map +1 -1
  12. package/dist/composeFsApp.js +156 -61
  13. package/dist/composeFsApp.js.map +1 -1
  14. package/dist/defaultOntologyPlugins.d.ts +9 -0
  15. package/dist/defaultOntologyPlugins.d.ts.map +1 -0
  16. package/dist/defaultOntologyPlugins.js +11 -0
  17. package/dist/defaultOntologyPlugins.js.map +1 -0
  18. package/dist/index.d.ts +3 -0
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +1 -0
  21. package/dist/index.js.map +1 -1
  22. package/dist/infrastructure/auth/AccessPolicy.d.ts +1 -1
  23. package/dist/infrastructure/auth/SessionStore.d.ts.map +1 -1
  24. package/dist/infrastructure/auth/SessionStore.js +5 -2
  25. package/dist/infrastructure/auth/SessionStore.js.map +1 -1
  26. package/dist/infrastructure/batch/FsBatchPlanRepository.d.ts +2 -67
  27. package/dist/infrastructure/batch/FsBatchPlanRepository.d.ts.map +1 -1
  28. package/dist/infrastructure/batch/FsBatchPlanRepository.js +8 -6
  29. package/dist/infrastructure/batch/FsBatchPlanRepository.js.map +1 -1
  30. package/dist/infrastructure/hitl/FsClarificationRepository.d.ts +1 -1
  31. package/dist/infrastructure/hitl/FsClarificationRepository.d.ts.map +1 -1
  32. package/dist/infrastructure/hitl/FsClarificationRepository.js +8 -7
  33. package/dist/infrastructure/hitl/FsClarificationRepository.js.map +1 -1
  34. package/dist/infrastructure/hitl/FsProposalRepository.d.ts.map +1 -1
  35. package/dist/infrastructure/hitl/FsProposalRepository.js +2 -1
  36. package/dist/infrastructure/hitl/FsProposalRepository.js.map +1 -1
  37. package/dist/infrastructure/model/FsModelSerializer.d.ts +2 -4
  38. package/dist/infrastructure/model/FsModelSerializer.d.ts.map +1 -1
  39. package/dist/infrastructure/oauth/GitHubOAuth.d.ts +45 -0
  40. package/dist/infrastructure/oauth/GitHubOAuth.d.ts.map +1 -0
  41. package/dist/infrastructure/oauth/GitHubOAuth.js +85 -0
  42. package/dist/infrastructure/oauth/GitHubOAuth.js.map +1 -0
  43. package/dist/infrastructure/oauth/providers.d.ts +19 -0
  44. package/dist/infrastructure/oauth/providers.d.ts.map +1 -0
  45. package/dist/infrastructure/oauth/providers.js +22 -0
  46. package/dist/infrastructure/oauth/providers.js.map +1 -0
  47. package/dist/infrastructure/skill/FsSkillRegistry.d.ts +6 -0
  48. package/dist/infrastructure/skill/FsSkillRegistry.d.ts.map +1 -1
  49. package/dist/infrastructure/skill/FsSkillRegistry.js +7 -1
  50. package/dist/infrastructure/skill/FsSkillRegistry.js.map +1 -1
  51. package/dist/infrastructure/skill/SubprocessSkillRunner.d.ts +26 -5
  52. package/dist/infrastructure/skill/SubprocessSkillRunner.d.ts.map +1 -1
  53. package/dist/infrastructure/skill/SubprocessSkillRunner.js +125 -13
  54. package/dist/infrastructure/skill/SubprocessSkillRunner.js.map +1 -1
  55. package/dist/infrastructure/source/unitScan.d.ts +11 -0
  56. package/dist/infrastructure/source/unitScan.d.ts.map +1 -0
  57. package/dist/infrastructure/source/{intentScan.js → unitScan.js} +19 -12
  58. package/dist/infrastructure/source/unitScan.js.map +1 -0
  59. package/dist/infrastructure/users/UserDirectoryFromRegistry.d.ts.map +1 -1
  60. package/dist/infrastructure/users/UserDirectoryFromRegistry.js +1 -0
  61. package/dist/infrastructure/users/UserDirectoryFromRegistry.js.map +1 -1
  62. package/dist/infrastructure/workspace/productManifestWriter.d.ts +5 -1
  63. package/dist/infrastructure/workspace/productManifestWriter.d.ts.map +1 -1
  64. package/dist/infrastructure/workspace/productManifestWriter.js +5 -2
  65. package/dist/infrastructure/workspace/productManifestWriter.js.map +1 -1
  66. package/dist/middleware/auth.d.ts.map +1 -1
  67. package/dist/middleware/auth.js +18 -1
  68. package/dist/middleware/auth.js.map +1 -1
  69. package/dist/routes/clarifications.d.ts.map +1 -1
  70. package/dist/routes/clarifications.js +25 -22
  71. package/dist/routes/clarifications.js.map +1 -1
  72. package/dist/routes/oauth.d.ts +51 -10
  73. package/dist/routes/oauth.d.ts.map +1 -1
  74. package/dist/routes/oauth.js +174 -62
  75. package/dist/routes/oauth.js.map +1 -1
  76. package/dist/routes/ontologies.d.ts +7 -0
  77. package/dist/routes/ontologies.d.ts.map +1 -0
  78. package/dist/routes/ontologies.js +29 -0
  79. package/dist/routes/ontologies.js.map +1 -0
  80. package/dist/routes/ontology.d.ts.map +1 -1
  81. package/dist/routes/ontology.js +2 -1
  82. package/dist/routes/ontology.js.map +1 -1
  83. package/dist/routes/proposals.d.ts.map +1 -1
  84. package/dist/routes/proposals.js +5 -2
  85. package/dist/routes/proposals.js.map +1 -1
  86. package/dist/routes/skillInputOptions.js +16 -14
  87. package/dist/routes/skillInputOptions.js.map +1 -1
  88. package/dist/routes/skills.d.ts.map +1 -1
  89. package/dist/routes/skills.js +7 -5
  90. package/dist/routes/skills.js.map +1 -1
  91. package/dist/routes/sourceConnection.d.ts +30 -0
  92. package/dist/routes/sourceConnection.d.ts.map +1 -0
  93. package/dist/routes/sourceConnection.js +51 -0
  94. package/dist/routes/sourceConnection.js.map +1 -0
  95. package/dist/routes/sourceUnitObservations.d.ts +3 -3
  96. package/dist/routes/sourceUnitObservations.d.ts.map +1 -1
  97. package/dist/routes/sourceUnitObservations.js +3 -3
  98. package/dist/routes/sourceUnitObservations.js.map +1 -1
  99. package/dist/routes/workspaces.d.ts +6 -0
  100. package/dist/routes/workspaces.d.ts.map +1 -1
  101. package/dist/routes/workspaces.js +12 -7
  102. package/dist/routes/workspaces.js.map +1 -1
  103. package/dist/serviceAccounts.d.ts +13 -0
  104. package/dist/serviceAccounts.d.ts.map +1 -0
  105. package/dist/serviceAccounts.js +26 -0
  106. package/dist/serviceAccounts.js.map +1 -0
  107. package/package.json +34 -39
  108. package/dist/infrastructure/source/intentScan.d.ts +0 -13
  109. package/dist/infrastructure/source/intentScan.d.ts.map +0 -1
  110. package/dist/infrastructure/source/intentScan.js.map +0 -1
@@ -6,7 +6,6 @@ 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';
@@ -14,6 +13,7 @@ import { createGithubLoader } from '@braidhq/source-loader-github';
14
13
  import { kuzuStoragePlugin } from '@braidhq/storage-kuzu';
15
14
  import { authenticated, localTrust } from './authMode.js';
16
15
  import { composeApp } from './composeApp.js';
16
+ import { defaultOntologyPlugins } from './defaultOntologyPlugins.js';
17
17
  import { parseBoolEnv } from './infrastructure/_shared/env.js';
18
18
  import { AccessPolicy } from './infrastructure/auth/AccessPolicy.js';
19
19
  import { FsSessionStore } from './infrastructure/auth/SessionStore.js';
@@ -22,29 +22,92 @@ import { GitWorkspaceHistory } from './infrastructure/history/GitWorkspaceHistor
22
22
  import { FsClarificationRepository } from './infrastructure/hitl/FsClarificationRepository.js';
23
23
  import { FsProposalRepository } from './infrastructure/hitl/FsProposalRepository.js';
24
24
  import { FsModelSerializer } from './infrastructure/model/FsModelSerializer.js';
25
+ import { GitHubOAuth } from './infrastructure/oauth/GitHubOAuth.js';
25
26
  import { GoogleOAuth } from './infrastructure/oauth/GoogleOAuth.js';
27
+ import { oauthNamespace } from './infrastructure/oauth/providers.js';
26
28
  import { FsReactorCycleRepository } from './infrastructure/reactor/FsReactorCycleRepository.js';
27
29
  import { FsSecretStore } from './infrastructure/secrets/SecretStore.js';
28
30
  import { FsRunRepository } from './infrastructure/skill/FsRunRepository.js';
29
- import { FsSkillRegistry } from './infrastructure/skill/FsSkillRegistry.js';
31
+ import { BUILTIN_SKILL_NAMESPACE, FsSkillRegistry } from './infrastructure/skill/FsSkillRegistry.js';
30
32
  import { SubprocessSkillRunner } from './infrastructure/skill/SubprocessSkillRunner.js';
31
33
  import { FsSourceUnitDigest } from './infrastructure/source/FsSourceUnitDigest.js';
32
34
  import { FsSourceUnitObservationRepository } from './infrastructure/source/FsSourceUnitObservationRepository.js';
33
- import { listIntentItems } from './infrastructure/source/intentScan.js';
35
+ import { listUnitItems, unitBearingRolesOf } from './infrastructure/source/unitScan.js';
34
36
  import { ensureWorkspaceOwners } from './infrastructure/users/ensureWorkspaceOwners.js';
35
37
  import { UserDirectoryFromRegistry } from './infrastructure/users/UserDirectoryFromRegistry.js';
36
38
  import { UserRegistryFile } from './infrastructure/users/UserRegistryFile.js';
37
39
  import { FsWorkspaceRepository } from './infrastructure/workspace/FsWorkspaceRepository.js';
38
40
  import { discoverCanonicalWorkspaces } from './infrastructure/workspace/WorkspaceDiscovery.js';
39
41
  import { WorkspaceRegistryFile } from './infrastructure/workspace/WorkspaceRegistryFile.js';
42
+ import { ensureServiceAccount, REACTOR_USER_ID } from './serviceAccounts.js';
40
43
  import { startupBeforeServe } from './startup.js';
41
44
  // The coding preset's default plugin identities, its worldview in one place.
42
45
  // A caller overrides any of these through ComposeFsOptions,
43
- // or drops to composeApp with its own PluginRegistry for a different worldview.
46
+ // or hands composeFsAppWithRegistry its own PluginRegistry,
47
+ // for a different worldview over the same runtime.
44
48
  const DEFAULT_STORAGE_KIND = 'kuzu';
45
49
  const DEFAULT_AGENT_KIND = 'claude-code';
46
50
  const DEFAULT_AGENT_MODEL = 'opus';
47
51
  const DEFAULT_AGENT_EFFORT = 'high';
52
+ /**
53
+ * The source loaders a default Braid build ships with.
54
+ * Exported so a third-party composition can take the git, github, and drive
55
+ * loaders without inheriting the rest of the coding preset.
56
+ */
57
+ export function defaultSourceLoaderPlugins(context) {
58
+ const { secretStore, githubOAuth, googleOAuth } = context;
59
+ return [
60
+ gitLoader,
61
+ createGithubLoader({
62
+ resolveAccessToken: makeOAuthTokenResolver({
63
+ secretStore,
64
+ namespace: oauthNamespace('github'),
65
+ refresh: githubOAuth ? refreshToken => githubOAuth.refreshAccessToken(refreshToken) : undefined,
66
+ 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.`),
67
+ notConnected: (workspaceId, sourceId) => new NotFoundError(`GitHub source "${sourceId}" on workspace "${workspaceId}" is not connected. `
68
+ + `Connect it from the source settings in Studio.`),
69
+ }),
70
+ }),
71
+ // Drive is listed even when its OAuth env is unset,
72
+ // so a `kind: gdrive` source resolves a loader instead of failing lookup.
73
+ // The token resolver then throws at provision time,
74
+ // naming the env vars the user has to set.
75
+ createGoogleDriveLoader({
76
+ resolveAccessToken: makeOAuthTokenResolver({
77
+ secretStore,
78
+ namespace: oauthNamespace('google'),
79
+ refresh: googleOAuth ? refreshToken => googleOAuth.refreshAccessToken(refreshToken) : undefined,
80
+ 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.`),
81
+ notConnected: (workspaceId, sourceId) => new NotFoundError(`Google Drive source "${sourceId}" on workspace "${workspaceId}" is not connected. `
82
+ + `Connect it from the source settings in Studio.`),
83
+ }),
84
+ }),
85
+ ];
86
+ }
87
+ /**
88
+ * The registry `composeFsApp` runs on, the coding preset's whole bundle.
89
+ * Defaults register first, then the caller's extras,
90
+ * so `extraOntologyPlugins: [c4]` yields both ddd and c4.
91
+ * The active one is chosen per-workspace via PRODUCT.md.ontologyId.
92
+ */
93
+ export function defaultPluginRegistry(context, options = {}) {
94
+ const pluginRegistry = new PluginRegistry();
95
+ pluginRegistry.register(kuzuStoragePlugin);
96
+ for (const plugin of options.extraStoragePlugins ?? [])
97
+ pluginRegistry.register(plugin);
98
+ for (const plugin of defaultOntologyPlugins())
99
+ pluginRegistry.register(plugin);
100
+ for (const plugin of options.extraOntologyPlugins ?? [])
101
+ pluginRegistry.register(plugin);
102
+ for (const plugin of defaultSourceLoaderPlugins(context))
103
+ pluginRegistry.register(plugin);
104
+ for (const plugin of options.extraSourceLoaderPlugins ?? [])
105
+ pluginRegistry.register(plugin);
106
+ pluginRegistry.register(claudeCodeAgentPlugin);
107
+ for (const plugin of options.extraAgentPlugins ?? [])
108
+ pluginRegistry.register(plugin);
109
+ return pluginRegistry;
110
+ }
48
111
  /**
49
112
  * Opinionated production composition, the coding preset.
50
113
  * Filesystem-persists workspaces, proposals, and clarifications,
@@ -52,9 +115,20 @@ const DEFAULT_AGENT_EFFORT = 'high';
52
115
  * loaders, and the claude-code agent.
53
116
  *
54
117
  * To run a different plugin set, either pass `extraXxxPlugins` and flip
55
- * `storageKind` or `agentKind`, or call `composeApp` with your own registry.
118
+ * `storageKind` or `agentKind`, or hand `composeFsAppWithRegistry` a registry
119
+ * holding only the plugins you want.
56
120
  */
57
121
  export async function composeFsApp(options = {}) {
122
+ return composeFsAppWithRegistry(context => defaultPluginRegistry(context, options), options);
123
+ }
124
+ /**
125
+ * The same filesystem runtime as `composeFsApp`, over a registry you build.
126
+ * Storage and agent resolve from whatever `buildRegistry` registered, under
127
+ * `storageKind` and `agentKind`, so a composition that omits the coding
128
+ * preset's ontology and loaders still gets the subprocess skill runner, the
129
+ * fs unit lister, and every fs repository, and so a batch runs unchanged.
130
+ */
131
+ export async function composeFsAppWithRegistry(buildRegistry, options = {}) {
58
132
  const braidHome = options.braidHome ?? process.env.BRAID_HOME ?? join(homedir(), '.braid');
59
133
  const apiUrl = options.apiUrl ?? 'http://localhost:4321';
60
134
  const secretStore = new FsSecretStore(join(braidHome, 'secrets'));
@@ -70,6 +144,16 @@ export async function composeFsApp(options = {}) {
70
144
  loginRedirectUri: googleLoginRedirect,
71
145
  })
72
146
  : undefined;
147
+ const githubClientId = process.env.BRAID_GITHUB_CLIENT_ID;
148
+ const githubClientSecret = process.env.BRAID_GITHUB_CLIENT_SECRET;
149
+ const githubRedirect = process.env.BRAID_GITHUB_REDIRECT_URI ?? `${apiUrl}/oauth/github/callback`;
150
+ const githubOAuth = githubClientId && githubClientSecret
151
+ ? new GitHubOAuth({
152
+ clientId: githubClientId,
153
+ clientSecret: githubClientSecret,
154
+ redirectUri: githubRedirect,
155
+ })
156
+ : undefined;
73
157
  const registry = new WorkspaceRegistryFile(join(braidHome, 'workspaces.json'));
74
158
  const workspaceRepository = new FsWorkspaceRepository({ registry });
75
159
  // Server-side user roster, distinct from any workspace's git history.
@@ -101,6 +185,10 @@ export async function composeFsApp(options = {}) {
101
185
  const authMode = parseBoolEnv(process.env.BRAID_LOCAL_TRUST, true) ? localTrust : authenticated;
102
186
  // Local trust seeds `local-user`, authenticated mode syncs the login allowlist.
103
187
  await authMode.provision({ userRegistry, accessPolicy });
188
+ // The reactor is an autonomous component, so it seeds its own service account.
189
+ // Its kind=service rides onto every proposal it submits,
190
+ // so the HITL views classify it without a read-time lookup.
191
+ await ensureServiceAccount(userRegistry, REACTOR_USER_ID, 'Reactor');
104
192
  const studioUrl = process.env.BRAID_STUDIO_URL ?? 'http://localhost:5173';
105
193
  const workspaceRoots = async () => {
106
194
  const workspaces = await workspaceRepository.list();
@@ -108,53 +196,13 @@ export async function composeFsApp(options = {}) {
108
196
  };
109
197
  const proposalRepository = new FsProposalRepository({ workspaceRoots });
110
198
  const clarificationRepository = new FsClarificationRepository({ workspaceRoots });
111
- // Plugin registration. Defaults bundle first, then extras,
112
- // so a caller passing `extraOntologyPlugins: [c4]` gets both ddd and c4.
113
- // The active one is chosen per-workspace via PRODUCT.md.ontologyId.
114
- const pluginRegistry = new PluginRegistry();
115
- pluginRegistry.register(kuzuStoragePlugin);
116
- for (const plugin of options.extraStoragePlugins ?? [])
117
- pluginRegistry.register(plugin);
118
- pluginRegistry.register(dddOntology);
119
- for (const plugin of options.extraOntologyPlugins ?? [])
120
- pluginRegistry.register(plugin);
121
- pluginRegistry.register(gitLoader);
122
- pluginRegistry.register(createGithubLoader());
123
- for (const plugin of options.extraSourceLoaderPlugins ?? [])
124
- pluginRegistry.register(plugin);
125
- pluginRegistry.register(claudeCodeAgentPlugin);
126
- for (const plugin of options.extraAgentPlugins ?? [])
127
- pluginRegistry.register(plugin);
128
- // The gdrive loader is always registered,
129
- // so a `kind: gdrive` source doesn't crash at plugin lookup.
130
- // If OAuth env vars aren't configured,
131
- // the token resolver throws an actionable error at provision time,
132
- // so the user knows exactly what to set.
133
- const oauth = googleOAuth;
134
- pluginRegistry.register(createGoogleDriveLoader({
135
- resolveAccessToken: async ({ workspaceId, sourceId }) => {
136
- if (!oauth) {
137
- 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.`);
138
- }
139
- const key = `${workspaceId}--${sourceId}`;
140
- const stored = await secretStore.read('oauth-google', key);
141
- if (!stored) {
142
- throw new NotFoundError(`Google Drive source "${sourceId}" on workspace "${workspaceId}" is not connected. `
143
- + `Authorise via POST /oauth/google/start.`);
144
- }
145
- // 60-second skew, so we don't hand out a token about to expire mid-request.
146
- const stillValidUntil = new Date(stored.expiresAt).getTime() - 60_000;
147
- if (Date.now() < stillValidUntil)
148
- return stored.accessToken;
149
- const refreshed = await oauth.refreshAccessToken(stored.refreshToken);
150
- await secretStore.write('oauth-google', key, {
151
- ...stored,
152
- accessToken: refreshed.accessToken,
153
- expiresAt: refreshed.expiresAt,
154
- });
155
- return refreshed.accessToken;
156
- },
157
- }));
199
+ const pluginRegistry = await buildRegistry({
200
+ braidHome,
201
+ apiUrl,
202
+ secretStore,
203
+ ...(googleOAuth ? { googleOAuth } : {}),
204
+ ...(githubOAuth ? { githubOAuth } : {}),
205
+ });
158
206
  // Resolve the active storage plugin and ask it for a ModelRepository.
159
207
  const storageKind = StorageKindSchema.parse(options.storageKind ?? process.env.BRAID_STORAGE_KIND ?? DEFAULT_STORAGE_KIND);
160
208
  const modelRepository = await pluginRegistry.requireStoragePlugin(storageKind).createModelRepository({ kind: storageKind, config: {} }, {
@@ -201,16 +249,16 @@ export async function composeFsApp(options = {}) {
201
249
  console.warn('[braid] `uv` not found on PATH; the built-in braid-core MCP gateway will not be available. '
202
250
  + 'Install via `brew install uv` or https://docs.astral.sh/uv/ to enable.');
203
251
  }
204
- // Build the list of reference dirs symlinked into every skill session:
205
- // - builtin `shared/` from @braidhq/core,
206
- // format docs for Proposal, Clarification, Validator, content conventions,
207
- // and drift-detection guidance.
208
- // - whatever each registered plugin contributes,
209
- // for example the concept doc from ontology-ddd.
252
+ // Reference dirs mounted into every skill session,
253
+ // keyed by the namespace that owns them, so each stays paired with its skills.
254
+ // Core's `shared/` lands under the builtin namespace,
255
+ // carrying the Proposal, Clarification, Validator, batch-plan, drift contracts.
256
+ // Each plugin's own dir lands under its namespace,
257
+ // the DDD concept doc under `ddd` for example.
210
258
  // Plugin contributions resolve `URL` to an absolute path.
211
259
  const pluginReferenceDirs = pluginRegistry.pluginReferenceDirs().map((ref) => {
212
260
  const dir = typeof ref.directory === 'string' ? ref.directory : fileURLToPath(ref.directory);
213
- return { name: ref.name, path: dir };
261
+ return { skillNamespace: ref.skillNamespace, path: dir };
214
262
  });
215
263
  const skillRunner = new SubprocessSkillRunner({
216
264
  skillRegistry,
@@ -223,9 +271,16 @@ export async function composeFsApp(options = {}) {
223
271
  ? { coreGateway: { specUrl: `${apiUrl}/openapi.json`, uvxBin } }
224
272
  : {}),
225
273
  referenceDirs: [
226
- { name: 'shared', path: join(builtinSkillsRoot, 'shared') },
274
+ { skillNamespace: BUILTIN_SKILL_NAMESPACE, path: join(builtinSkillsRoot, 'shared') },
227
275
  ...pluginReferenceDirs,
228
276
  ],
277
+ // Resolve the workspace's active ontology to its declared source roles.
278
+ // The runner serialises these into BRAID_SOURCE_ROLES,
279
+ // so a generic prompt reads the role vocabulary instead of naming role ids.
280
+ resolveSourceRoles: (workspace) => {
281
+ const ontology = pluginRegistry.findOntology(workspace.productManifest.ontologyId);
282
+ return ontology?.sourceRoles ?? [];
283
+ },
229
284
  });
230
285
  // Shared by WorkspaceBootstrapService (boot reconciliation),
231
286
  // and HITLService (per-mutation commits).
@@ -253,7 +308,11 @@ export async function composeFsApp(options = {}) {
253
308
  modelSerializer,
254
309
  bootstrap,
255
310
  batchPlanRepository: new FsBatchPlanRepository(),
256
- intentLister: listIntentItems,
311
+ unitLister: workspace => listUnitItems(workspace, unitBearingRolesOf(pluginRegistry, workspace)),
312
+ ...(options.defaultOntologyId ? { defaultOntologyId: options.defaultOntologyId } : {}),
313
+ // The reactor has no human caller, so it acts as the `reactor` service account,
314
+ // minting a short-lived session so its API calls authenticate.
315
+ reactorToken: async () => (await sessionStore.issue(REACTOR_USER_ID, { ttlSeconds: 3600 })).token,
257
316
  sourceUnitObservationRepository: new FsSourceUnitObservationRepository({ workspaceRoots }),
258
317
  reactorCycleRepository: new FsReactorCycleRepository({ workspaceRoots }),
259
318
  sourceUnitDigest: new FsSourceUnitDigest(),
@@ -282,6 +341,42 @@ export async function composeFsApp(options = {}) {
282
341
  accessPolicy,
283
342
  studioUrl,
284
343
  ...(googleOAuth ? { googleOAuth } : {}),
344
+ ...(githubOAuth ? { githubOAuth } : {}),
345
+ };
346
+ }
347
+ /**
348
+ * Build a token resolver for an OAuth-backed loader.
349
+ * Returns a still-valid access token, or refreshes when it is near expiry.
350
+ * A failed refresh flags the source `needsAuth` so Studio prompts a reconnect,
351
+ * a fresh refresh clears that flag.
352
+ * `refresh` is absent when the provider's server env is unset,
353
+ * then the resolver throws `notConfigured`.
354
+ */
355
+ function makeOAuthTokenResolver(deps) {
356
+ return async ({ workspaceId, sourceId }) => {
357
+ if (!deps.refresh)
358
+ throw deps.notConfigured(sourceId);
359
+ const key = `${workspaceId}--${sourceId}`;
360
+ const stored = await deps.secretStore.read(deps.namespace, key);
361
+ if (!stored)
362
+ throw deps.notConnected(workspaceId, sourceId);
363
+ // 60-second skew, so we don't hand out a token about to expire mid-request.
364
+ const stillValidUntil = new Date(stored.expiresAt).getTime() - 60_000;
365
+ if (Date.now() < stillValidUntil)
366
+ return stored.accessToken;
367
+ try {
368
+ // A fresh set clears any prior needs-auth marker.
369
+ // GitHub rotates its refresh token, so spreading `refreshed` keeps it.
370
+ const refreshed = await deps.refresh(stored.refreshToken);
371
+ await deps.secretStore.write(deps.namespace, key, { ...stored, ...refreshed, needsAuth: false });
372
+ return refreshed.accessToken;
373
+ }
374
+ catch (error) {
375
+ // The refresh token is dead, revoked or expired.
376
+ // Flag the source so Studio prompts a reconnect instead of only logging.
377
+ await deps.secretStore.write(deps.namespace, key, { ...stored, needsAuth: true });
378
+ throw error;
379
+ }
285
380
  };
286
381
  }
287
382
  function parseCsv(input) {
@@ -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"}
@@ -3,8 +3,8 @@ declare const Invite: z.ZodObject<{
3
3
  email: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
4
4
  invitedAt: z.ZodString;
5
5
  serverRole: z.ZodDefault<z.ZodEnum<{
6
- user: "user";
7
6
  admin: "admin";
7
+ user: "user";
8
8
  }>>;
9
9
  }, z.core.$strip>;
10
10
  export type Invite = z.infer<typeof Invite>;
@@ -1 +1 @@
1
- {"version":3,"file":"SessionStore.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/auth/SessionStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AA2B7C,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,aAAa,CAAC,CAAA;IACpF,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAAA;IAC3D,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACxC,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACpD;AAED;;;;;;;;;GASG;AACH,qBAAa,cAAe,YAAW,YAAY;IACrC,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,MAAM;IAEvC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,aAAa,CAAC;IAa1F;;;;OAIG;IACG,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAevD,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASpC,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAQvC,IAAI;YAeJ,KAAK;CAIpB"}
1
+ {"version":3,"file":"SessionStore.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/auth/SessionStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AA2B7C,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,aAAa,CAAC,CAAA;IACpF,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAAA;IAC3D,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACxC,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACpD;AAED;;;;;;;;;GASG;AACH,qBAAa,cAAe,YAAW,YAAY;IACrC,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,MAAM;IAEvC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,aAAa,CAAC;IAgB1F;;;;OAIG;IACG,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAevD,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASpC,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAQvC,IAAI;YAeJ,KAAK;CAIpB"}
@@ -37,10 +37,13 @@ export class FsSessionStore {
37
37
  const content = await this.read();
38
38
  const token = randomBytes(32).toString('base64url');
39
39
  const tokenHash = sha256Hex(token);
40
- const createdAt = new Date().toISOString();
40
+ const now = Date.now();
41
+ const createdAt = new Date(now).toISOString();
41
42
  const expiresAt = options.ttlSeconds
42
- ? new Date(Date.now() + options.ttlSeconds * 1000).toISOString()
43
+ ? new Date(now + options.ttlSeconds * 1000).toISOString()
43
44
  : undefined;
45
+ // Drop already-expired rows so short-lived service tokens do not accumulate.
46
+ content.sessions = content.sessions.filter(s => !s.expiresAt || Date.parse(s.expiresAt) >= now);
44
47
  content.sessions.push({ tokenHash, userId, createdAt, ...(expiresAt ? { expiresAt } : {}) });
45
48
  await this.write(content);
46
49
  return { token, userId, ...(expiresAt ? { expiresAt } : {}) };
@@ -1 +1 @@
1
- {"version":3,"file":"SessionStore.js","sourceRoot":"","sources":["../../../src/infrastructure/auth/SessionStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SessionStore.js","sourceRoot":"","sources":["../../../src/infrastructure/auth/SessionStore.ts"],"names":[],"mappings":"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"}
@@ -1,75 +1,10 @@
1
1
  import type { BatchPlanRepository, Workspace } from '@braidhq/core';
2
2
  import { BatchPlan } from '@braidhq/core';
3
3
  import { z } from 'zod';
4
- export declare const BATCH_PLAN_VERSION = 1;
4
+ export declare const BATCH_PLAN_VERSION = 2;
5
5
  export declare const BatchPlanFile: z.ZodObject<{
6
6
  version: z.ZodNumber;
7
- plan: z.ZodObject<{
8
- id: z.core.$ZodBranded<z.ZodString, "BatchPlanId", "out">;
9
- workspaceId: z.core.$ZodBranded<z.ZodString, "WorkspaceId", "out">;
10
- createdAt: z.ZodString;
11
- updatedAt: z.ZodString;
12
- mode: z.ZodEnum<{
13
- intent: "intent";
14
- derive: "derive";
15
- }>;
16
- status: z.ZodEnum<{
17
- running: "running";
18
- completed: "completed";
19
- failed: "failed";
20
- idle: "idle";
21
- deriving: "deriving";
22
- stopped: "stopped";
23
- archived: "archived";
24
- }>;
25
- autoApply: z.ZodBoolean;
26
- baselineTag: z.ZodOptional<z.ZodString>;
27
- units: z.ZodArray<z.ZodObject<{
28
- id: z.core.$ZodBranded<z.ZodString, "BatchUnitId", "out">;
29
- name: z.ZodString;
30
- description: z.ZodString;
31
- sourceId: z.ZodOptional<z.core.$ZodBranded<z.ZodString, "SourceId", "out">>;
32
- scopeHint: z.ZodOptional<z.ZodString>;
33
- status: z.ZodEnum<{
34
- pending: "pending";
35
- running: "running";
36
- completed: "completed";
37
- failed: "failed";
38
- skipped: "skipped";
39
- }>;
40
- skillRunId: z.ZodOptional<z.core.$ZodBranded<z.ZodString, "SkillRunId", "out">>;
41
- startedAt: z.ZodOptional<z.ZodString>;
42
- completedAt: z.ZodOptional<z.ZodString>;
43
- proposalIds: z.ZodDefault<z.ZodArray<z.core.$ZodBranded<z.ZodString, "ProposalId", "out">>>;
44
- clarificationIds: z.ZodDefault<z.ZodArray<z.core.$ZodBranded<z.ZodString, "ClarificationId", "out">>>;
45
- error: z.ZodOptional<z.ZodString>;
46
- }, z.core.$strip>>;
47
- running: z.ZodOptional<z.ZodObject<{
48
- unitId: z.core.$ZodBranded<z.ZodString, "BatchUnitId", "out">;
49
- skillRunId: z.core.$ZodBranded<z.ZodString, "SkillRunId", "out">;
50
- }, z.core.$strip>>;
51
- error: z.ZodOptional<z.ZodString>;
52
- checkpointPhases: z.ZodDefault<z.ZodArray<z.ZodObject<{
53
- status: z.ZodEnum<{
54
- running: "running";
55
- completed: "completed";
56
- failed: "failed";
57
- }>;
58
- unitIds: z.ZodArray<z.core.$ZodBranded<z.ZodString, "BatchUnitId", "out">>;
59
- startedAt: z.ZodOptional<z.ZodString>;
60
- completedAt: z.ZodOptional<z.ZodString>;
61
- skillRunId: z.ZodOptional<z.core.$ZodBranded<z.ZodString, "SkillRunId", "out">>;
62
- error: z.ZodOptional<z.ZodString>;
63
- }, z.core.$strip>>>;
64
- batchPolicy: z.ZodOptional<z.ZodObject<{
65
- perUnitSkillId: z.core.$ZodBranded<z.ZodString, "SkillId", "out">;
66
- perUnitLabel: z.ZodOptional<z.ZodString>;
67
- checkpointSkillId: z.ZodOptional<z.core.$ZodBranded<z.ZodString, "SkillId", "out">>;
68
- checkpointLabel: z.ZodOptional<z.ZodString>;
69
- checkpointChunkSize: z.ZodOptional<z.ZodNumber>;
70
- checkpointRunAtEnd: z.ZodOptional<z.ZodBoolean>;
71
- }, z.core.$strip>>;
72
- }, z.core.$strip>;
7
+ plan: z.ZodUnknown;
73
8
  }, z.core.$strip>;
74
9
  export declare class FsBatchPlanRepository implements BatchPlanRepository {
75
10
  load(workspace: Workspace): Promise<BatchPlan | null>;
@@ -1 +1 @@
1
- {"version":3,"file":"FsBatchPlanRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/batch/FsBatchPlanRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAGnE,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAEzC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,eAAO,MAAM,kBAAkB,IAAI,CAAA;AAEnC,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAGxB,CAAA;AAEF,qBAAa,qBAAsB,YAAW,mBAAmB;IACzD,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAmBrD,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAU1D,KAAK,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;CAGjD"}
1
+ {"version":3,"file":"FsBatchPlanRepository.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/batch/FsBatchPlanRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAGnE,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAEzC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,eAAO,MAAM,kBAAkB,IAAI,CAAA;AAGnC,eAAO,MAAM,aAAa;;;iBAGxB,CAAA;AAEF,qBAAa,qBAAsB,YAAW,mBAAmB;IACzD,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAmBrD,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAU1D,KAAK,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;CAGjD"}
@@ -4,10 +4,12 @@ import { BatchPlan } from '@braidhq/core';
4
4
  import { BatchPlan as BatchPlanData } from '@braidhq/schema';
5
5
  import { z } from 'zod';
6
6
  import { batchPlanPath, workspaceArtifactsDir } from '../_shared/paths.js';
7
- export const BATCH_PLAN_VERSION = 1;
7
+ // On-disk envelope version. Bumped only when the plan payload shape changes.
8
+ export const BATCH_PLAN_VERSION = 2;
9
+ // Envelope only. The plan itself is validated by its schema below.
8
10
  export const BatchPlanFile = z.object({
9
11
  version: z.number().int(),
10
- plan: BatchPlanData,
12
+ plan: z.unknown(),
11
13
  });
12
14
  export class FsBatchPlanRepository {
13
15
  async load(workspace) {
@@ -20,11 +22,11 @@ export class FsBatchPlanRepository {
20
22
  return null;
21
23
  throw error;
22
24
  }
23
- const parsed = BatchPlanFile.parse(JSON.parse(raw));
24
- if (parsed.version !== BATCH_PLAN_VERSION) {
25
- throw new Error(`batch-plan.json version mismatch in ${workspace.rootPath}: expected ${BATCH_PLAN_VERSION}, got ${parsed.version}`);
25
+ const file = BatchPlanFile.parse(JSON.parse(raw));
26
+ if (file.version > BATCH_PLAN_VERSION) {
27
+ throw new Error(`batch-plan.json in ${workspace.rootPath} is version ${file.version}, newer than supported ${BATCH_PLAN_VERSION}`);
26
28
  }
27
- return new BatchPlan(parsed.plan);
29
+ return new BatchPlan(BatchPlanData.parse(file.plan));
28
30
  }
29
31
  async save(workspace, plan) {
30
32
  const path = batchPlanPath(workspace.rootPath);
@@ -1 +1 @@
1
- {"version":3,"file":"FsBatchPlanRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/batch/FsBatchPlanRepository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACzE,OAAO,OAAO,MAAM,cAAc,CAAA;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACzC,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC5D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAE1E,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAA;AAEnC,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACzB,IAAI,EAAE,aAAa;CACpB,CAAC,CAAA;AAEF,MAAM,OAAO,qBAAqB;IAChC,KAAK,CAAC,IAAI,CAAC,SAAoB;QAC7B,IAAI,GAAW,CAAA;QACf,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAA;QAClE,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YACb,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;gBACpD,OAAO,IAAI,CAAA;YACb,MAAM,KAAK,CAAA;QACb,CAAC;QACD,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;QACnD,IAAI,MAAM,CAAC,OAAO,KAAK,kBAAkB,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CACb,uCAAuC,SAAS,CAAC,QAAQ,cAAc,kBAAkB,SAAS,MAAM,CAAC,OAAO,EAAE,CACnH,CAAA;QACH,CAAC;QACD,OAAO,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACnC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,SAAoB,EAAE,IAAe;QAC9C,MAAM,IAAI,GAAG,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;QAC9C,MAAM,KAAK,CAAC,qBAAqB,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC3E,MAAM,OAAO,GAAG,EAAE,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAA;QACpE,oEAAoE;QACpE,MAAM,GAAG,GAAG,GAAG,IAAI,QAAQ,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAA;QACtD,MAAM,SAAS,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QACtE,MAAM,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IACzB,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,SAAoB;QAC9B,MAAM,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IAC9D,CAAC;CACF"}
1
+ {"version":3,"file":"FsBatchPlanRepository.js","sourceRoot":"","sources":["../../../src/infrastructure/batch/FsBatchPlanRepository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACzE,OAAO,OAAO,MAAM,cAAc,CAAA;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACzC,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC5D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAE1E,6EAA6E;AAC7E,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAA;AAEnC,mEAAmE;AACnE,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACzB,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE;CAClB,CAAC,CAAA;AAEF,MAAM,OAAO,qBAAqB;IAChC,KAAK,CAAC,IAAI,CAAC,SAAoB;QAC7B,IAAI,GAAW,CAAA;QACf,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAA;QAClE,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YACb,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;gBACpD,OAAO,IAAI,CAAA;YACb,MAAM,KAAK,CAAA;QACb,CAAC;QACD,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;QACjD,IAAI,IAAI,CAAC,OAAO,GAAG,kBAAkB,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CACb,sBAAsB,SAAS,CAAC,QAAQ,eAAe,IAAI,CAAC,OAAO,0BAA0B,kBAAkB,EAAE,CAClH,CAAA;QACH,CAAC;QACD,OAAO,IAAI,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IACtD,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,SAAoB,EAAE,IAAe;QAC9C,MAAM,IAAI,GAAG,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;QAC9C,MAAM,KAAK,CAAC,qBAAqB,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC3E,MAAM,OAAO,GAAG,EAAE,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAA;QACpE,oEAAoE;QACpE,MAAM,GAAG,GAAG,GAAG,IAAI,QAAQ,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAA;QACtD,MAAM,SAAS,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QACtE,MAAM,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IACzB,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,SAAoB;QAC9B,MAAM,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IAC9D,CAAC;CACF"}