@braidhq/server 0.1.0 → 0.2.1
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.
- package/LICENSE +21 -0
- package/README.md +134 -106
- package/dist/app.d.ts +7 -15
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +74 -45
- package/dist/app.js.map +1 -1
- package/dist/authMode.d.ts +39 -0
- package/dist/authMode.d.ts.map +1 -0
- package/dist/authMode.js +50 -0
- package/dist/authMode.js.map +1 -0
- package/dist/composeApp.d.ts +80 -0
- package/dist/composeApp.d.ts.map +1 -0
- package/dist/composeApp.js +137 -0
- package/dist/composeApp.js.map +1 -0
- package/dist/composeFsApp.d.ts +27 -0
- package/dist/composeFsApp.d.ts.map +1 -0
- package/dist/{composeFs.js → composeFsApp.js} +127 -126
- package/dist/composeFsApp.js.map +1 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/infrastructure/_shared/env.d.ts +10 -0
- package/dist/infrastructure/_shared/env.d.ts.map +1 -0
- package/dist/infrastructure/{env.js → _shared/env.js} +5 -6
- package/dist/infrastructure/_shared/env.js.map +1 -0
- package/dist/infrastructure/_shared/frontmatter.d.ts +13 -0
- package/dist/infrastructure/_shared/frontmatter.d.ts.map +1 -0
- package/dist/infrastructure/{fs → _shared}/frontmatter.js +5 -5
- package/dist/infrastructure/_shared/frontmatter.js.map +1 -0
- package/dist/infrastructure/_shared/jsonFileStore.d.ts.map +1 -0
- package/dist/infrastructure/_shared/jsonFileStore.js.map +1 -0
- package/dist/infrastructure/{fs → _shared}/paths.d.ts +17 -10
- package/dist/infrastructure/_shared/paths.d.ts.map +1 -0
- package/dist/infrastructure/{fs → _shared}/paths.js +27 -20
- package/dist/infrastructure/_shared/paths.js.map +1 -0
- package/dist/infrastructure/auth/AccessPolicy.d.ts +33 -58
- package/dist/infrastructure/auth/AccessPolicy.d.ts.map +1 -1
- package/dist/infrastructure/auth/AccessPolicy.js +35 -42
- package/dist/infrastructure/auth/AccessPolicy.js.map +1 -1
- package/dist/infrastructure/auth/SessionStore.d.ts +22 -12
- package/dist/infrastructure/auth/SessionStore.d.ts.map +1 -1
- package/dist/infrastructure/auth/SessionStore.js +20 -20
- package/dist/infrastructure/auth/SessionStore.js.map +1 -1
- package/dist/infrastructure/batch/FsBatchPlanRepository.d.ts +14 -0
- package/dist/infrastructure/batch/FsBatchPlanRepository.d.ts.map +1 -0
- package/dist/infrastructure/{fs → batch}/FsBatchPlanRepository.js +9 -7
- package/dist/infrastructure/batch/FsBatchPlanRepository.js.map +1 -0
- package/dist/infrastructure/history/GitWorkspaceHistory.d.ts.map +1 -0
- package/dist/infrastructure/{git → history}/GitWorkspaceHistory.js +31 -24
- package/dist/infrastructure/history/GitWorkspaceHistory.js.map +1 -0
- package/dist/infrastructure/history/commitMessage.d.ts.map +1 -0
- package/dist/infrastructure/history/commitMessage.js +90 -0
- package/dist/infrastructure/history/commitMessage.js.map +1 -0
- package/dist/infrastructure/hitl/FsClarificationRepository.d.ts +13 -0
- package/dist/infrastructure/hitl/FsClarificationRepository.d.ts.map +1 -0
- package/dist/infrastructure/hitl/FsClarificationRepository.js +40 -0
- package/dist/infrastructure/hitl/FsClarificationRepository.js.map +1 -0
- package/dist/infrastructure/hitl/FsProposalRepository.d.ts.map +1 -0
- package/dist/infrastructure/{fs → hitl}/FsProposalRepository.js +8 -8
- package/dist/infrastructure/hitl/FsProposalRepository.js.map +1 -0
- package/dist/infrastructure/hitl/StatusedJsonStore.d.ts +30 -0
- package/dist/infrastructure/hitl/StatusedJsonStore.d.ts.map +1 -0
- package/dist/infrastructure/{fs/FsStatusedJsonRepository.js → hitl/StatusedJsonStore.js} +3 -3
- package/dist/infrastructure/hitl/StatusedJsonStore.js.map +1 -0
- package/dist/infrastructure/model/FsModelSerializer.d.ts +94 -0
- package/dist/infrastructure/model/FsModelSerializer.d.ts.map +1 -0
- package/dist/infrastructure/{fs/FsGraphSerializer.js → model/FsModelSerializer.js} +11 -11
- package/dist/infrastructure/model/FsModelSerializer.js.map +1 -0
- package/dist/infrastructure/oauth/GoogleOAuth.d.ts +20 -38
- package/dist/infrastructure/oauth/GoogleOAuth.d.ts.map +1 -1
- package/dist/infrastructure/oauth/GoogleOAuth.js +21 -22
- package/dist/infrastructure/oauth/GoogleOAuth.js.map +1 -1
- package/dist/infrastructure/reactor/FsReactorCycleRepository.d.ts +29 -0
- package/dist/infrastructure/reactor/FsReactorCycleRepository.d.ts.map +1 -0
- package/dist/infrastructure/reactor/FsReactorCycleRepository.js +94 -0
- package/dist/infrastructure/reactor/FsReactorCycleRepository.js.map +1 -0
- package/dist/infrastructure/secrets/SecretStore.d.ts +11 -14
- package/dist/infrastructure/secrets/SecretStore.d.ts.map +1 -1
- package/dist/infrastructure/secrets/SecretStore.js +4 -4
- package/dist/infrastructure/secrets/SecretStore.js.map +1 -1
- package/dist/infrastructure/{fs → skill}/FsRunRepository.d.ts +5 -3
- package/dist/infrastructure/skill/FsRunRepository.d.ts.map +1 -0
- package/dist/infrastructure/{fs → skill}/FsRunRepository.js +11 -9
- package/dist/infrastructure/skill/FsRunRepository.js.map +1 -0
- package/dist/infrastructure/{fs → skill}/FsSkillRegistry.d.ts +4 -13
- package/dist/infrastructure/skill/FsSkillRegistry.d.ts.map +1 -0
- package/dist/infrastructure/{fs → skill}/FsSkillRegistry.js +28 -20
- package/dist/infrastructure/skill/FsSkillRegistry.js.map +1 -0
- package/dist/infrastructure/skill/SubprocessSkillRunner.d.ts +52 -0
- package/dist/infrastructure/skill/SubprocessSkillRunner.d.ts.map +1 -0
- package/dist/infrastructure/{agent → skill}/SubprocessSkillRunner.js +107 -55
- package/dist/infrastructure/skill/SubprocessSkillRunner.js.map +1 -0
- package/dist/infrastructure/skill/asyncQueue.d.ts +20 -0
- package/dist/infrastructure/skill/asyncQueue.d.ts.map +1 -0
- package/dist/infrastructure/{agent → skill}/asyncQueue.js +2 -3
- package/dist/infrastructure/{agent → skill}/asyncQueue.js.map +1 -1
- package/dist/infrastructure/skill/lineBuffer.d.ts +15 -0
- package/dist/infrastructure/skill/lineBuffer.d.ts.map +1 -0
- package/dist/infrastructure/{agent/streamJsonParser.js → skill/lineBuffer.js} +5 -17
- package/dist/infrastructure/skill/lineBuffer.js.map +1 -0
- package/dist/infrastructure/skill/orphanReaper.d.ts +20 -0
- package/dist/infrastructure/skill/orphanReaper.d.ts.map +1 -0
- package/dist/infrastructure/{orphanReaper.js → skill/orphanReaper.js} +7 -5
- package/dist/infrastructure/skill/orphanReaper.js.map +1 -0
- package/dist/infrastructure/skill/subprocessEventStream.d.ts +16 -0
- package/dist/infrastructure/skill/subprocessEventStream.d.ts.map +1 -0
- package/dist/infrastructure/skill/subprocessEventStream.js +29 -0
- package/dist/infrastructure/skill/subprocessEventStream.js.map +1 -0
- package/dist/infrastructure/source/FsSourceUnitDigest.d.ts +19 -0
- package/dist/infrastructure/source/FsSourceUnitDigest.d.ts.map +1 -0
- package/dist/infrastructure/{fs → source}/FsSourceUnitDigest.js +9 -9
- package/dist/infrastructure/source/FsSourceUnitDigest.js.map +1 -0
- package/dist/infrastructure/source/FsSourceUnitObservationRepository.d.ts +31 -0
- package/dist/infrastructure/source/FsSourceUnitObservationRepository.d.ts.map +1 -0
- package/dist/infrastructure/{fs/FsSourceUnitStateRepository.js → source/FsSourceUnitObservationRepository.js} +18 -17
- package/dist/infrastructure/source/FsSourceUnitObservationRepository.js.map +1 -0
- package/dist/infrastructure/source/unitScan.d.ts +11 -0
- package/dist/infrastructure/source/unitScan.d.ts.map +1 -0
- package/dist/infrastructure/{fs/intentScan.js → source/unitScan.js} +36 -27
- package/dist/infrastructure/source/unitScan.js.map +1 -0
- package/dist/infrastructure/users/UserDirectoryFromRegistry.d.ts +2 -2
- package/dist/infrastructure/users/UserDirectoryFromRegistry.d.ts.map +1 -1
- package/dist/infrastructure/users/UserDirectoryFromRegistry.js +3 -2
- package/dist/infrastructure/users/UserDirectoryFromRegistry.js.map +1 -1
- package/dist/infrastructure/users/UserRegistryFile.d.ts +4 -5
- package/dist/infrastructure/users/UserRegistryFile.d.ts.map +1 -1
- package/dist/infrastructure/users/UserRegistryFile.js +6 -8
- package/dist/infrastructure/users/UserRegistryFile.js.map +1 -1
- package/dist/infrastructure/users/ensureWorkspaceOwners.d.ts +9 -6
- package/dist/infrastructure/users/ensureWorkspaceOwners.d.ts.map +1 -1
- package/dist/infrastructure/users/ensureWorkspaceOwners.js +10 -7
- package/dist/infrastructure/users/ensureWorkspaceOwners.js.map +1 -1
- package/dist/infrastructure/workspace/FsWorkspaceRepository.d.ts.map +1 -0
- package/dist/infrastructure/{fs → workspace}/FsWorkspaceRepository.js +7 -6
- package/dist/infrastructure/workspace/FsWorkspaceRepository.js.map +1 -0
- package/dist/infrastructure/workspace/WorkspaceDiscovery.d.ts +18 -0
- package/dist/infrastructure/workspace/WorkspaceDiscovery.d.ts.map +1 -0
- package/dist/infrastructure/{fs → workspace}/WorkspaceDiscovery.js +15 -11
- package/dist/infrastructure/workspace/WorkspaceDiscovery.js.map +1 -0
- package/dist/infrastructure/{fs → workspace}/WorkspaceRegistryFile.d.ts +10 -9
- package/dist/infrastructure/workspace/WorkspaceRegistryFile.d.ts.map +1 -0
- package/dist/infrastructure/{fs → workspace}/WorkspaceRegistryFile.js +15 -17
- package/dist/infrastructure/workspace/WorkspaceRegistryFile.js.map +1 -0
- package/dist/infrastructure/workspace/productManifestWriter.d.ts +24 -0
- package/dist/infrastructure/workspace/productManifestWriter.d.ts.map +1 -0
- package/dist/infrastructure/{fs → workspace}/productManifestWriter.js +14 -26
- package/dist/infrastructure/workspace/productManifestWriter.js.map +1 -0
- package/dist/middleware/auth.d.ts +27 -17
- package/dist/middleware/auth.d.ts.map +1 -1
- package/dist/middleware/auth.js +69 -53
- package/dist/middleware/auth.js.map +1 -1
- package/dist/middleware/cors.d.ts.map +1 -1
- package/dist/middleware/cors.js +4 -1
- package/dist/middleware/cors.js.map +1 -1
- package/dist/middleware/error.d.ts.map +1 -1
- package/dist/middleware/error.js +15 -13
- package/dist/middleware/error.js.map +1 -1
- package/dist/middleware/workspaceAccess.d.ts +23 -19
- package/dist/middleware/workspaceAccess.d.ts.map +1 -1
- package/dist/middleware/workspaceAccess.js +31 -26
- package/dist/middleware/workspaceAccess.js.map +1 -1
- package/dist/policy/CapabilityCheck.d.ts +5 -5
- package/dist/policy/PermissionRegistry.d.ts +11 -9
- package/dist/policy/PermissionRegistry.d.ts.map +1 -1
- package/dist/policy/PermissionRegistry.js +10 -8
- package/dist/policy/PermissionRegistry.js.map +1 -1
- package/dist/policy/ViewerContext.d.ts +13 -11
- package/dist/policy/ViewerContext.d.ts.map +1 -1
- package/dist/policy/checks.d.ts +9 -9
- package/dist/policy/checks.d.ts.map +1 -1
- package/dist/policy/checks.js +14 -11
- package/dist/policy/checks.js.map +1 -1
- package/dist/policy/defaultRegistry.d.ts +3 -4
- package/dist/policy/defaultRegistry.d.ts.map +1 -1
- package/dist/policy/defaultRegistry.js +3 -4
- package/dist/policy/defaultRegistry.js.map +1 -1
- package/dist/policy/index.d.ts +2 -2
- package/dist/policy/index.d.ts.map +1 -1
- package/dist/policy/index.js +1 -1
- package/dist/policy/index.js.map +1 -1
- package/dist/policy/resolveViewer.d.ts +9 -9
- package/dist/policy/resolveViewer.js +9 -9
- package/dist/routes/_shared.d.ts +93 -153
- package/dist/routes/_shared.d.ts.map +1 -1
- package/dist/routes/_shared.js +9 -5
- package/dist/routes/_shared.js.map +1 -1
- package/dist/routes/admin.d.ts +1 -1
- package/dist/routes/admin.d.ts.map +1 -1
- package/dist/routes/admin.js +13 -12
- package/dist/routes/admin.js.map +1 -1
- package/dist/routes/auth.d.ts +12 -10
- package/dist/routes/auth.d.ts.map +1 -1
- package/dist/routes/auth.js +32 -34
- package/dist/routes/auth.js.map +1 -1
- package/dist/routes/clarifications.d.ts +8 -0
- package/dist/routes/clarifications.d.ts.map +1 -0
- package/dist/routes/clarifications.js +246 -0
- package/dist/routes/clarifications.js.map +1 -0
- package/dist/routes/edges.d.ts.map +1 -1
- package/dist/routes/edges.js +2 -6
- package/dist/routes/edges.js.map +1 -1
- package/dist/routes/history.d.ts.map +1 -1
- package/dist/routes/history.js +12 -10
- package/dist/routes/history.js.map +1 -1
- package/dist/routes/nodes.d.ts.map +1 -1
- package/dist/routes/nodes.js +4 -8
- package/dist/routes/nodes.js.map +1 -1
- package/dist/routes/oauth.d.ts +6 -7
- package/dist/routes/oauth.d.ts.map +1 -1
- package/dist/routes/oauth.js +6 -7
- package/dist/routes/oauth.js.map +1 -1
- package/dist/routes/ontologies.d.ts +7 -0
- package/dist/routes/ontologies.d.ts.map +1 -0
- package/dist/routes/ontologies.js +29 -0
- package/dist/routes/ontologies.js.map +1 -0
- package/dist/routes/ontology.d.ts.map +1 -1
- package/dist/routes/ontology.js +2 -1
- package/dist/routes/ontology.js.map +1 -1
- package/dist/routes/proposals.d.ts +2 -2
- package/dist/routes/proposals.d.ts.map +1 -1
- package/dist/routes/proposals.js +35 -30
- package/dist/routes/proposals.js.map +1 -1
- package/dist/routes/reactorCycles.d.ts +7 -0
- package/dist/routes/reactorCycles.d.ts.map +1 -0
- package/dist/routes/reactorCycles.js +60 -0
- package/dist/routes/reactorCycles.js.map +1 -0
- package/dist/routes/runs.d.ts.map +1 -1
- package/dist/routes/runs.js +22 -19
- package/dist/routes/runs.js.map +1 -1
- package/dist/routes/skillInputOptions.d.ts +2 -2
- package/dist/routes/skillInputOptions.d.ts.map +1 -1
- package/dist/routes/skillInputOptions.js +53 -53
- package/dist/routes/skillInputOptions.js.map +1 -1
- package/dist/routes/skills.d.ts +19 -1
- package/dist/routes/skills.d.ts.map +1 -1
- package/dist/routes/skills.js +141 -7
- package/dist/routes/skills.js.map +1 -1
- package/dist/routes/sourceLoaders.d.ts.map +1 -1
- package/dist/routes/sourceLoaders.js +1 -0
- package/dist/routes/sourceLoaders.js.map +1 -1
- package/dist/routes/sourceUnitObservations.d.ts +20 -0
- package/dist/routes/sourceUnitObservations.d.ts.map +1 -0
- package/dist/routes/sourceUnitObservations.js +80 -0
- package/dist/routes/sourceUnitObservations.js.map +1 -0
- package/dist/routes/sourceWebhooks.d.ts +26 -0
- package/dist/routes/sourceWebhooks.d.ts.map +1 -0
- package/dist/routes/sourceWebhooks.js +301 -0
- package/dist/routes/sourceWebhooks.js.map +1 -0
- package/dist/routes/users.d.ts +0 -2
- package/dist/routes/users.d.ts.map +1 -1
- package/dist/routes/users.js +15 -33
- package/dist/routes/users.js.map +1 -1
- package/dist/routes/workspaceEvents.d.ts +5 -4
- package/dist/routes/workspaceEvents.d.ts.map +1 -1
- package/dist/routes/workspaceEvents.js +7 -6
- package/dist/routes/workspaceEvents.js.map +1 -1
- package/dist/routes/workspaceMembers.d.ts +1 -1
- package/dist/routes/workspaceMembers.d.ts.map +1 -1
- package/dist/routes/workspaceMembers.js +2 -2
- package/dist/routes/workspaceMembers.js.map +1 -1
- package/dist/routes/workspaces.d.ts +21 -10
- package/dist/routes/workspaces.d.ts.map +1 -1
- package/dist/routes/workspaces.js +95 -69
- package/dist/routes/workspaces.js.map +1 -1
- package/dist/server.js +6 -70
- package/dist/server.js.map +1 -1
- package/dist/serviceAccounts.d.ts +13 -0
- package/dist/serviceAccounts.d.ts.map +1 -0
- package/dist/serviceAccounts.js +26 -0
- package/dist/serviceAccounts.js.map +1 -0
- package/dist/startServer.d.ts +17 -0
- package/dist/startServer.d.ts.map +1 -0
- package/dist/startServer.js +81 -0
- package/dist/startServer.js.map +1 -0
- package/dist/startup.d.ts +28 -0
- package/dist/startup.d.ts.map +1 -0
- package/dist/startup.js +94 -0
- package/dist/startup.js.map +1 -0
- package/package.json +35 -40
- package/dist/composeFs.d.ts +0 -55
- package/dist/composeFs.d.ts.map +0 -1
- package/dist/composeFs.js.map +0 -1
- package/dist/composition.d.ts +0 -133
- package/dist/composition.d.ts.map +0 -1
- package/dist/composition.js +0 -113
- package/dist/composition.js.map +0 -1
- package/dist/infrastructure/agent/SubprocessSkillRunner.d.ts +0 -75
- package/dist/infrastructure/agent/SubprocessSkillRunner.d.ts.map +0 -1
- package/dist/infrastructure/agent/SubprocessSkillRunner.js.map +0 -1
- package/dist/infrastructure/agent/asyncQueue.d.ts +0 -22
- package/dist/infrastructure/agent/asyncQueue.d.ts.map +0 -1
- package/dist/infrastructure/agent/mcpConfig.d.ts +0 -38
- package/dist/infrastructure/agent/mcpConfig.d.ts.map +0 -1
- package/dist/infrastructure/agent/mcpConfig.js +0 -55
- package/dist/infrastructure/agent/mcpConfig.js.map +0 -1
- package/dist/infrastructure/agent/streamJsonParser.d.ts +0 -20
- package/dist/infrastructure/agent/streamJsonParser.d.ts.map +0 -1
- package/dist/infrastructure/agent/streamJsonParser.js.map +0 -1
- package/dist/infrastructure/agent/subprocessEventStream.d.ts +0 -26
- package/dist/infrastructure/agent/subprocessEventStream.d.ts.map +0 -1
- package/dist/infrastructure/agent/subprocessEventStream.js +0 -112
- package/dist/infrastructure/agent/subprocessEventStream.js.map +0 -1
- package/dist/infrastructure/auth/ensureApprovedEmails.d.ts +0 -16
- package/dist/infrastructure/auth/ensureApprovedEmails.d.ts.map +0 -1
- package/dist/infrastructure/auth/ensureApprovedEmails.js +0 -20
- package/dist/infrastructure/auth/ensureApprovedEmails.js.map +0 -1
- package/dist/infrastructure/env.d.ts +0 -11
- package/dist/infrastructure/env.d.ts.map +0 -1
- package/dist/infrastructure/env.js.map +0 -1
- package/dist/infrastructure/fs/FsBatchPlanRepository.d.ts +0 -300
- package/dist/infrastructure/fs/FsBatchPlanRepository.d.ts.map +0 -1
- package/dist/infrastructure/fs/FsBatchPlanRepository.js.map +0 -1
- package/dist/infrastructure/fs/FsClarifyTicketRepository.d.ts +0 -13
- package/dist/infrastructure/fs/FsClarifyTicketRepository.d.ts.map +0 -1
- package/dist/infrastructure/fs/FsClarifyTicketRepository.js +0 -39
- package/dist/infrastructure/fs/FsClarifyTicketRepository.js.map +0 -1
- package/dist/infrastructure/fs/FsDecisionRepository.d.ts +0 -13
- package/dist/infrastructure/fs/FsDecisionRepository.d.ts.map +0 -1
- package/dist/infrastructure/fs/FsDecisionRepository.js +0 -56
- package/dist/infrastructure/fs/FsDecisionRepository.js.map +0 -1
- package/dist/infrastructure/fs/FsGraphSerializer.d.ts +0 -629
- package/dist/infrastructure/fs/FsGraphSerializer.d.ts.map +0 -1
- package/dist/infrastructure/fs/FsGraphSerializer.js.map +0 -1
- package/dist/infrastructure/fs/FsProposalRepository.d.ts.map +0 -1
- package/dist/infrastructure/fs/FsProposalRepository.js.map +0 -1
- package/dist/infrastructure/fs/FsRunRepository.d.ts.map +0 -1
- package/dist/infrastructure/fs/FsRunRepository.js.map +0 -1
- package/dist/infrastructure/fs/FsSkillRegistry.d.ts.map +0 -1
- package/dist/infrastructure/fs/FsSkillRegistry.js.map +0 -1
- package/dist/infrastructure/fs/FsSourceUnitDigest.d.ts +0 -19
- package/dist/infrastructure/fs/FsSourceUnitDigest.d.ts.map +0 -1
- package/dist/infrastructure/fs/FsSourceUnitDigest.js.map +0 -1
- package/dist/infrastructure/fs/FsSourceUnitStateRepository.d.ts +0 -30
- package/dist/infrastructure/fs/FsSourceUnitStateRepository.d.ts.map +0 -1
- package/dist/infrastructure/fs/FsSourceUnitStateRepository.js.map +0 -1
- package/dist/infrastructure/fs/FsStatusedJsonRepository.d.ts +0 -35
- package/dist/infrastructure/fs/FsStatusedJsonRepository.d.ts.map +0 -1
- package/dist/infrastructure/fs/FsStatusedJsonRepository.js.map +0 -1
- package/dist/infrastructure/fs/FsWorkspaceRepository.d.ts.map +0 -1
- package/dist/infrastructure/fs/FsWorkspaceRepository.js.map +0 -1
- package/dist/infrastructure/fs/WorkspaceDiscovery.d.ts +0 -15
- package/dist/infrastructure/fs/WorkspaceDiscovery.d.ts.map +0 -1
- package/dist/infrastructure/fs/WorkspaceDiscovery.js.map +0 -1
- package/dist/infrastructure/fs/WorkspaceRegistryFile.d.ts.map +0 -1
- package/dist/infrastructure/fs/WorkspaceRegistryFile.js.map +0 -1
- package/dist/infrastructure/fs/frontmatter.d.ts +0 -13
- package/dist/infrastructure/fs/frontmatter.d.ts.map +0 -1
- package/dist/infrastructure/fs/frontmatter.js.map +0 -1
- package/dist/infrastructure/fs/intentScan.d.ts +0 -9
- package/dist/infrastructure/fs/intentScan.d.ts.map +0 -1
- package/dist/infrastructure/fs/intentScan.js.map +0 -1
- package/dist/infrastructure/fs/jsonFileStore.d.ts.map +0 -1
- package/dist/infrastructure/fs/jsonFileStore.js.map +0 -1
- package/dist/infrastructure/fs/paths.d.ts.map +0 -1
- package/dist/infrastructure/fs/paths.js.map +0 -1
- package/dist/infrastructure/fs/productManifestWriter.d.ts +0 -22
- package/dist/infrastructure/fs/productManifestWriter.d.ts.map +0 -1
- package/dist/infrastructure/fs/productManifestWriter.js.map +0 -1
- package/dist/infrastructure/git/GitWorkspaceHistory.d.ts.map +0 -1
- package/dist/infrastructure/git/GitWorkspaceHistory.js.map +0 -1
- package/dist/infrastructure/git/commitMessage.d.ts.map +0 -1
- package/dist/infrastructure/git/commitMessage.js +0 -71
- package/dist/infrastructure/git/commitMessage.js.map +0 -1
- package/dist/infrastructure/orphanReaper.d.ts +0 -18
- package/dist/infrastructure/orphanReaper.d.ts.map +0 -1
- package/dist/infrastructure/orphanReaper.js.map +0 -1
- package/dist/infrastructure/users/ensureLocalUser.d.ts +0 -15
- package/dist/infrastructure/users/ensureLocalUser.d.ts.map +0 -1
- package/dist/infrastructure/users/ensureLocalUser.js +0 -38
- package/dist/infrastructure/users/ensureLocalUser.js.map +0 -1
- package/dist/middleware/requireAdmin.d.ts +0 -10
- package/dist/middleware/requireAdmin.d.ts.map +0 -1
- package/dist/middleware/requireAdmin.js +0 -24
- package/dist/middleware/requireAdmin.js.map +0 -1
- package/dist/middleware/userId.d.ts +0 -16
- package/dist/middleware/userId.d.ts.map +0 -1
- package/dist/middleware/userId.js +0 -27
- package/dist/middleware/userId.js.map +0 -1
- package/dist/policy/Capability.d.ts +0 -12
- package/dist/policy/Capability.d.ts.map +0 -1
- package/dist/policy/Capability.js +0 -31
- package/dist/policy/Capability.js.map +0 -1
- package/dist/routes/clarify.d.ts +0 -9
- package/dist/routes/clarify.d.ts.map +0 -1
- package/dist/routes/clarify.js +0 -274
- package/dist/routes/clarify.js.map +0 -1
- package/dist/routes/decisions.d.ts +0 -7
- package/dist/routes/decisions.d.ts.map +0 -1
- package/dist/routes/decisions.js +0 -68
- package/dist/routes/decisions.js.map +0 -1
- package/dist/routes/sourceUnitStates.d.ts +0 -7
- package/dist/routes/sourceUnitStates.d.ts.map +0 -1
- package/dist/routes/sourceUnitStates.js +0 -45
- package/dist/routes/sourceUnitStates.js.map +0 -1
- /package/dist/infrastructure/{fs → _shared}/jsonFileStore.d.ts +0 -0
- /package/dist/infrastructure/{fs → _shared}/jsonFileStore.js +0 -0
- /package/dist/infrastructure/{git → history}/GitWorkspaceHistory.d.ts +0 -0
- /package/dist/infrastructure/{git → history}/commitMessage.d.ts +0 -0
- /package/dist/infrastructure/{fs → hitl}/FsProposalRepository.d.ts +0 -0
- /package/dist/infrastructure/{fs → workspace}/FsWorkspaceRepository.d.ts +0 -0
package/dist/routes/runs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runs.js","sourceRoot":"","sources":["../../src/routes/runs.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAA;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAQhD,MAAM,UAAU,gBAAgB,CAAC,IAAoB;IACnD,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAA;IAEzB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAChC,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAA;QAC5F,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;QAC7D,OAAO,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;IAChC,CAAC,CAAC,CAAA;IAEF,
|
|
1
|
+
{"version":3,"file":"runs.js","sourceRoot":"","sources":["../../src/routes/runs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ClarificationRepository, ModelRepository, PluginRegistry, WorkspaceRepository } from '@braidhq/core';
|
|
2
2
|
import { OpenAPIHono } from '@hono/zod-openapi';
|
|
3
3
|
export interface SkillInputOptionsRouterDeps {
|
|
4
4
|
readonly modelRepository: ModelRepository;
|
|
5
|
-
readonly
|
|
5
|
+
readonly clarificationRepository: ClarificationRepository;
|
|
6
6
|
readonly workspaceRepository: WorkspaceRepository;
|
|
7
7
|
readonly pluginRegistry: PluginRegistry;
|
|
8
8
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skillInputOptions.d.ts","sourceRoot":"","sources":["../../src/routes/skillInputOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,eAAe,EAAE,cAAc,EAAa,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAG7H,OAAO,EAAe,WAAW,EAAK,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"skillInputOptions.d.ts","sourceRoot":"","sources":["../../src/routes/skillInputOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,eAAe,EAAE,cAAc,EAAa,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAG7H,OAAO,EAAe,WAAW,EAAK,MAAM,mBAAmB,CAAA;AAkD/D,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAA;IACzC,QAAQ,CAAC,uBAAuB,EAAE,uBAAuB,CAAA;IACzD,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB,CAAA;IACjD,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAA;CACxC;AAED,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,2BAA2B,GAAG,WAAW,CAgB5F"}
|
|
@@ -1,34 +1,30 @@
|
|
|
1
|
-
import { SkillInputOptionsResponse } from '@braidhq/schema';
|
|
1
|
+
import { SkillInputOptionsResponse, SourceId, SourceRole } from '@braidhq/schema';
|
|
2
2
|
import { createRoute, OpenAPIHono, z } from '@hono/zod-openapi';
|
|
3
|
-
import {
|
|
3
|
+
import { listUnitItems, unitBearingRolesOf } from '../infrastructure/source/unitScan.js';
|
|
4
4
|
import { getWorkspaceId } from '../middleware/workspaceId.js';
|
|
5
5
|
import { WorkspaceIdParam } from './_shared.js';
|
|
6
6
|
import { loadWorkspaceById } from './helpers.js';
|
|
7
7
|
/**
|
|
8
|
-
* Studio-facing endpoint that resolves a skill input provider
|
|
9
|
-
*
|
|
10
|
-
* a given workspace.
|
|
11
|
-
*
|
|
12
|
-
* `
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* Studio-metadata routes; it's mounted under
|
|
16
|
-
* `/workspaces/:workspaceId/skill-input-options`.
|
|
8
|
+
* Studio-facing endpoint that resolves a skill input provider kind,
|
|
9
|
+
* declared in a SKILL.md frontmatter, to the current option list,
|
|
10
|
+
* for a given workspace.
|
|
11
|
+
* The typed Actions form uses it to populate pickers,
|
|
12
|
+
* backed by `graph-node`, `source`, or `clarify` (not static).
|
|
13
|
+
* Read-only, and lives alongside other Studio-metadata routes.
|
|
14
|
+
* Mounted under `/workspaces/:workspaceId/skill-input-options`.
|
|
17
15
|
*/
|
|
18
|
-
const
|
|
16
|
+
const ProviderKind = z.enum(['graph-node', 'source', 'clarify']);
|
|
19
17
|
const QuerySchema = z.object({
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
* intended caller; humans drafting URLs by hand will rarely need it.
|
|
31
|
-
*/
|
|
18
|
+
kind: ProviderKind.openapi({ param: { name: 'kind', in: 'query' } }),
|
|
19
|
+
// JSON-encoded filter object whose shape depends on the provider.
|
|
20
|
+
// graph-node uses `{ types?, statuses?, renderHint?: { container? } }`,
|
|
21
|
+
// source uses `{ role?, loaderKind? }`,
|
|
22
|
+
// and clarify uses `{ status?: pending | answered | applied | skipped }`.
|
|
23
|
+
//
|
|
24
|
+
// Query-string-encoded JSON keeps the schema simple,
|
|
25
|
+
// while letting each provider carry a different filter shape.
|
|
26
|
+
// Studio is the only intended caller.
|
|
27
|
+
// Humans drafting URLs by hand will rarely need it.
|
|
32
28
|
filter: z.string().optional().openapi({ param: { name: 'filter', in: 'query' } }),
|
|
33
29
|
});
|
|
34
30
|
const route = createRoute({
|
|
@@ -53,29 +49,23 @@ export function createSkillInputOptionsRouter(deps) {
|
|
|
53
49
|
router.openapi(route, async (context) => {
|
|
54
50
|
const workspaceId = getWorkspaceId(context);
|
|
55
51
|
const workspace = await loadWorkspaceById(workspaceId, deps.workspaceRepository);
|
|
56
|
-
const {
|
|
52
|
+
const { kind, filter } = context.req.valid('query');
|
|
57
53
|
const parsedFilter = filter
|
|
58
54
|
? safeParseJson(filter)
|
|
59
55
|
: {};
|
|
60
|
-
const items = await resolveProvider(
|
|
56
|
+
const items = await resolveProvider(kind, parsedFilter, workspace, deps);
|
|
61
57
|
return context.json({ items }, 200);
|
|
62
58
|
});
|
|
63
59
|
return router;
|
|
64
60
|
}
|
|
65
|
-
async function resolveProvider(
|
|
66
|
-
switch (
|
|
61
|
+
async function resolveProvider(kind, filter, workspace, deps) {
|
|
62
|
+
switch (kind) {
|
|
67
63
|
case 'graph-node':
|
|
68
64
|
return resolveGraphNode(filter, workspace, deps);
|
|
69
|
-
case 'source
|
|
70
|
-
return
|
|
65
|
+
case 'source':
|
|
66
|
+
return resolveSource(filter, workspace, deps);
|
|
71
67
|
case 'clarify':
|
|
72
|
-
return
|
|
73
|
-
case 'proposal':
|
|
74
|
-
// Phase 2 leaves the proposal provider as a stub; no SKILL.md
|
|
75
|
-
// wires it yet. Returning empty keeps the endpoint contract
|
|
76
|
-
// stable while signalling "implement when a skill actually
|
|
77
|
-
// declares it".
|
|
78
|
-
return [];
|
|
68
|
+
return resolveClarification(filter, workspace.id, deps.clarificationRepository);
|
|
79
69
|
}
|
|
80
70
|
}
|
|
81
71
|
async function resolveGraphNode(filter, workspace, deps) {
|
|
@@ -85,9 +75,9 @@ async function resolveGraphNode(filter, workspace, deps) {
|
|
|
85
75
|
const wantContainerOnly = renderHint?.container === true;
|
|
86
76
|
let typesToInclude = types;
|
|
87
77
|
if (wantContainerOnly) {
|
|
88
|
-
// Container-ness is an ontology concern
|
|
89
|
-
// descriptors carry `renderHint.container`.
|
|
90
|
-
// explicit `types` filter so both axes compose.
|
|
78
|
+
// Container-ness is an ontology concern.
|
|
79
|
+
// Its node-type descriptors carry `renderHint.container`.
|
|
80
|
+
// Intersect with any explicit `types` filter so both axes compose.
|
|
91
81
|
const ontology = deps.pluginRegistry.requireOntology(workspace.productManifest.ontologyId);
|
|
92
82
|
const containerTypeIds = ontology.nodeTypes
|
|
93
83
|
.filter(descriptor => descriptor.renderHint?.container === true)
|
|
@@ -110,9 +100,11 @@ async function resolveGraphNode(filter, workspace, deps) {
|
|
|
110
100
|
...(node.description ? { description: firstLine(node.description) } : {}),
|
|
111
101
|
}));
|
|
112
102
|
}
|
|
113
|
-
async function
|
|
103
|
+
async function resolveSource(filter, workspace, deps) {
|
|
114
104
|
const loaderKindFilter = typeof filter.loaderKind === 'string' ? filter.loaderKind : undefined;
|
|
115
|
-
const
|
|
105
|
+
const roleFilter = typeof filter.role === 'string' ? SourceRole.parse(filter.role) : undefined;
|
|
106
|
+
const roles = roleFilter ? [roleFilter] : unitBearingRolesOf(deps.pluginRegistry, workspace);
|
|
107
|
+
const items = await listUnitItems(workspace, roles);
|
|
116
108
|
return items
|
|
117
109
|
.filter((item) => {
|
|
118
110
|
if (!loaderKindFilter)
|
|
@@ -120,22 +112,30 @@ async function resolveSourceIntent(filter, workspace) {
|
|
|
120
112
|
const source = workspace.sources.find(s => s.id === item.sourceId);
|
|
121
113
|
return source?.kind === 'filesystem' && source.loader?.kind === loaderKindFilter;
|
|
122
114
|
})
|
|
123
|
-
.map(item =>
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
115
|
+
.map((item) => {
|
|
116
|
+
// Use safeParse here.
|
|
117
|
+
// A hand-edited PRODUCT.md may carry an invalid sourceId,
|
|
118
|
+
// which should not 500 the whole dropdown.
|
|
119
|
+
// Drop the field on parse failure so the option still shows up.
|
|
120
|
+
const parsed = SourceId.safeParse(item.sourceId);
|
|
121
|
+
return {
|
|
122
|
+
value: item.value,
|
|
123
|
+
label: item.label,
|
|
124
|
+
description: item.sourceName,
|
|
125
|
+
...(parsed.success ? { sourceId: parsed.data } : {}),
|
|
126
|
+
};
|
|
127
|
+
});
|
|
128
128
|
}
|
|
129
|
-
async function
|
|
129
|
+
async function resolveClarification(filter, workspaceId, clarificationRepository) {
|
|
130
130
|
const status = typeof filter.status === 'string' ? filter.status : undefined;
|
|
131
|
-
const
|
|
131
|
+
const clarifications = await clarificationRepository.list({
|
|
132
132
|
workspaceId,
|
|
133
133
|
...(status ? { statuses: [status] } : {}),
|
|
134
134
|
});
|
|
135
|
-
return
|
|
136
|
-
value:
|
|
137
|
-
label: truncate(
|
|
138
|
-
description:
|
|
135
|
+
return clarifications.map(clarification => ({
|
|
136
|
+
value: clarification.id,
|
|
137
|
+
label: truncate(clarification.question, 80),
|
|
138
|
+
description: clarification.status,
|
|
139
139
|
}));
|
|
140
140
|
}
|
|
141
141
|
function safeParseJson(value) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skillInputOptions.js","sourceRoot":"","sources":["../../src/routes/skillInputOptions.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"skillInputOptions.js","sourceRoot":"","sources":["../../src/routes/skillInputOptions.ts"],"names":[],"mappings":"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"}
|
package/dist/routes/skills.d.ts
CHANGED
|
@@ -1,9 +1,27 @@
|
|
|
1
|
-
import type { SkillRegistry, SkillRunner, WorkspaceRepository } from '@braidhq/core';
|
|
1
|
+
import type { PluginRegistry, RunRepository, SkillRegistry, SkillRunner, SourceUnitObservationService, WorkspaceRepository } from '@braidhq/core';
|
|
2
2
|
import { OpenAPIHono } from '@hono/zod-openapi';
|
|
3
3
|
export interface SkillsRouterDeps {
|
|
4
4
|
readonly skillRegistry: SkillRegistry;
|
|
5
5
|
readonly skillRunner: SkillRunner;
|
|
6
6
|
readonly workspaceRepository: WorkspaceRepository;
|
|
7
|
+
/**
|
|
8
|
+
* Records a SourceUnitObservation after a successful per-unit run,
|
|
9
|
+
* named by the active ontology's `perUnit.skillId` binding.
|
|
10
|
+
*/
|
|
11
|
+
readonly sourceUnitObservationService: SourceUnitObservationService;
|
|
12
|
+
/**
|
|
13
|
+
* Backfills a run's terminal exit state.
|
|
14
|
+
* A run can finish after `skillRunner.start` returns,
|
|
15
|
+
* but before the hook subscribes, missing the terminal event.
|
|
16
|
+
* Without it the hook only listens forward, so that race leaks silently.
|
|
17
|
+
*/
|
|
18
|
+
readonly runRepository: RunRepository;
|
|
19
|
+
/**
|
|
20
|
+
* Resolves the active ontology for the workspace,
|
|
21
|
+
* so the route reads its `batch.perUnit.skillId`,
|
|
22
|
+
* instead of hard-coding the extract skill.
|
|
23
|
+
*/
|
|
24
|
+
readonly pluginRegistry: PluginRegistry;
|
|
7
25
|
}
|
|
8
26
|
export declare function createSkillsRouter(deps: SkillsRouterDeps): OpenAPIHono;
|
|
9
27
|
//# sourceMappingURL=skills.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/routes/skills.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,WAAW,EACX,mBAAmB,EACpB,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/routes/skills.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,aAAa,EACb,WAAW,EACX,4BAA4B,EAE5B,mBAAmB,EACpB,MAAM,eAAe,CAAA;AAItB,OAAO,EAAe,WAAW,EAAK,MAAM,mBAAmB,CAAA;AAmC/D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAA;IACrC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAA;IACjC,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB,CAAA;IACjD;;;OAGG;IACH,QAAQ,CAAC,4BAA4B,EAAE,4BAA4B,CAAA;IACnE;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAA;IACrC;;;;OAIG;IACH,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAA;CACxC;AAyDD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,GAAG,WAAW,CAmFtE"}
|
package/dist/routes/skills.js
CHANGED
|
@@ -1,14 +1,24 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createLogger, unitBearingRoleIds, ValidationError } from '@braidhq/core';
|
|
2
|
+
import { SkillId as SkillIdSchema, SkillManifest, SkillRunId, SourceId } from '@braidhq/schema';
|
|
2
3
|
import { createRoute, OpenAPIHono, z } from '@hono/zod-openapi';
|
|
3
4
|
import { extractBearerToken } from '../middleware/auth.js';
|
|
4
5
|
import { requirePermission } from '../middleware/workspaceAccess.js';
|
|
5
6
|
import { getWorkspaceId } from '../middleware/workspaceId.js';
|
|
6
7
|
import { NotFoundResponse, WorkspaceIdParam } from './_shared.js';
|
|
7
8
|
import { loadWorkspaceById } from './helpers.js';
|
|
9
|
+
const SourceUnitRef = z.object({
|
|
10
|
+
sourceId: SourceId,
|
|
11
|
+
path: z.string().min(1),
|
|
12
|
+
}).openapi('SourceUnitRef');
|
|
8
13
|
const RunBody = z.object({
|
|
9
14
|
args: z.string().default(''),
|
|
10
|
-
|
|
15
|
+
// Continue a prior claude conversation from a session-started event.
|
|
11
16
|
resumeSessionId: z.string().min(1).optional(),
|
|
17
|
+
// Identifies the source unit this run will process,
|
|
18
|
+
// so the server records an observation against it after a clean run.
|
|
19
|
+
// Studio sends this when the user picks a `source` option.
|
|
20
|
+
// Only `ddd:extract` consumes it today, other skills ignore it.
|
|
21
|
+
sourceUnit: SourceUnitRef.optional(),
|
|
12
22
|
}).openapi('SkillRunBody');
|
|
13
23
|
const SkillIdParam = WorkspaceIdParam.extend({
|
|
14
24
|
skillId: SkillIdSchema.openapi({ param: { name: 'skillId', in: 'path' } }),
|
|
@@ -53,7 +63,7 @@ const runSkillRoute = createRoute({
|
|
|
53
63
|
path: '/{skillId}/run',
|
|
54
64
|
operationId: 'runSkill',
|
|
55
65
|
summary: 'Fire-and-forget run of a skill. Returns the runId to subscribe to via SSE.',
|
|
56
|
-
description: 'The subprocess + event drain runs in the background
|
|
66
|
+
description: 'The subprocess + event drain runs in the background. Events are persisted to JSONL and broadcast to subscribers regardless of whether the client stays connected. Tail progress via GET /workspaces/{workspaceId}/runs/{runId}/events.',
|
|
57
67
|
tags: ['skills'],
|
|
58
68
|
request: {
|
|
59
69
|
params: SkillIdParam,
|
|
@@ -73,9 +83,10 @@ const runSkillRoute = createRoute({
|
|
|
73
83
|
});
|
|
74
84
|
export function createSkillsRouter(deps) {
|
|
75
85
|
const router = new OpenAPIHono();
|
|
76
|
-
// skill.run is the only capability
|
|
77
|
-
//
|
|
78
|
-
//
|
|
86
|
+
// skill.run is the only capability needing a per-request resource,
|
|
87
|
+
// the skill manifest.
|
|
88
|
+
// The builder fetches workspace and manifest once,
|
|
89
|
+
// then hands the result to the policy check.
|
|
79
90
|
router.use('/:skillId/run', requirePermission('skill.run', async (context) => {
|
|
80
91
|
const workspace = await loadWorkspaceById(getWorkspaceId(context), deps.workspaceRepository);
|
|
81
92
|
const skillId = SkillIdSchema.parse(context.req.param('skillId'));
|
|
@@ -98,15 +109,138 @@ export function createSkillsRouter(deps) {
|
|
|
98
109
|
router.openapi(runSkillRoute, async (context) => {
|
|
99
110
|
const workspace = await loadWorkspaceById(getWorkspaceId(context), deps.workspaceRepository);
|
|
100
111
|
const { skillId } = context.req.valid('param');
|
|
101
|
-
const { args, resumeSessionId } = context.req.valid('json');
|
|
112
|
+
const { args, resumeSessionId, sourceUnit } = context.req.valid('json');
|
|
102
113
|
const callerToken = extractBearerToken(context);
|
|
103
114
|
const options = {
|
|
104
115
|
...(resumeSessionId ? { resumeSessionId } : {}),
|
|
105
116
|
...(callerToken ? { callerToken } : {}),
|
|
106
117
|
};
|
|
118
|
+
const perUnitSkillId = resolvePerUnitSkillId(deps.pluginRegistry, workspace);
|
|
119
|
+
if (sourceUnit) {
|
|
120
|
+
// The sourceUnit applies only to the ontology's per-unit step,
|
|
121
|
+
// so reject it for any other skill.
|
|
122
|
+
// Otherwise the run-skill route advertises support uniformly,
|
|
123
|
+
// then silently drops it for every skill except extract.
|
|
124
|
+
if (!perUnitSkillId || skillId !== perUnitSkillId) {
|
|
125
|
+
throw new ValidationError(perUnitSkillId
|
|
126
|
+
? `The \`sourceUnit\` field is only accepted for "${perUnitSkillId}", the active ontology's per-unit skill.`
|
|
127
|
+
: `The \`sourceUnit\` field is not accepted, the active ontology declares no per-unit skill.`);
|
|
128
|
+
}
|
|
129
|
+
// Reject a sourceUnit whose sourceId is not a unit-bearing source here.
|
|
130
|
+
// Recording against a ghost sourceId would pollute the ledger,
|
|
131
|
+
// and confuse the Reactor and BatchService diff.
|
|
132
|
+
const ontology = deps.pluginRegistry.findOntology(workspace.productManifest.ontologyId);
|
|
133
|
+
const unitRoles = ontology ? unitBearingRoleIds(ontology) : [];
|
|
134
|
+
const known = workspace.sources.find(s => s.id === sourceUnit.sourceId && unitRoles.includes(s.role));
|
|
135
|
+
if (!known)
|
|
136
|
+
throw new ValidationError(`Source-unit id "${sourceUnit.sourceId}" does not name a unit-bearing source in workspace "${workspace.id}"`);
|
|
137
|
+
}
|
|
107
138
|
const runId = await deps.skillRunner.start(workspace, skillId, args, options);
|
|
139
|
+
// The observation hook runs in the background,
|
|
140
|
+
// so the route still returns 202 promptly.
|
|
141
|
+
// Any failure (skill error, cancel, repository write) is logged,
|
|
142
|
+
// but does not bubble up to the client.
|
|
143
|
+
if (sourceUnit && perUnitSkillId && skillId === perUnitSkillId) {
|
|
144
|
+
void recordObservationOnSuccess({
|
|
145
|
+
runner: deps.skillRunner,
|
|
146
|
+
runRepository: deps.runRepository,
|
|
147
|
+
sourceUnitObservationService: deps.sourceUnitObservationService,
|
|
148
|
+
workspace,
|
|
149
|
+
runId,
|
|
150
|
+
sourceUnit,
|
|
151
|
+
});
|
|
152
|
+
}
|
|
108
153
|
return context.json({ runId }, 202);
|
|
109
154
|
});
|
|
110
155
|
return router;
|
|
111
156
|
}
|
|
157
|
+
function resolvePerUnitSkillId(pluginRegistry, workspace) {
|
|
158
|
+
const ontology = pluginRegistry.findOntology(workspace.productManifest.ontologyId);
|
|
159
|
+
return ontology?.batch?.perUnit?.skillId;
|
|
160
|
+
}
|
|
161
|
+
const recordLogger = createLogger('skills.recordObservation');
|
|
162
|
+
// Stop waiting after this many ms, even if no terminal event arrives.
|
|
163
|
+
// Real ddd:extract runs settle in seconds to minutes.
|
|
164
|
+
// This backstops orphan subscriptions on crashed runners,
|
|
165
|
+
// or upstream queues that quietly drop events.
|
|
166
|
+
const OBSERVATION_TIMEOUT_MS = 60 * 60 * 1000;
|
|
167
|
+
// Subscribe to a run and wait for it to terminate.
|
|
168
|
+
// Record a SourceUnitObservation only if it exits cleanly (code 0).
|
|
169
|
+
// On cancellation, non-zero exit, error, or timeout,
|
|
170
|
+
// the previously recorded state is left untouched.
|
|
171
|
+
//
|
|
172
|
+
// Two race-safety measures matter here.
|
|
173
|
+
// First, we subscribe before checking `isActive`.
|
|
174
|
+
// A run finishing between those steps would miss the terminal event,
|
|
175
|
+
// so we backfill from the persisted RunRecord exit code.
|
|
176
|
+
// Second, the Promise has a hard timeout.
|
|
177
|
+
// A run that never emits a terminal event cannot leak the closure.
|
|
178
|
+
async function recordObservationOnSuccess(params) {
|
|
179
|
+
const { runner, runRepository, sourceUnitObservationService, workspace, runId, sourceUnit } = params;
|
|
180
|
+
const workspaceId = workspace.id;
|
|
181
|
+
try {
|
|
182
|
+
const outcome = await waitForTerminalOutcome(runner, runRepository, workspace, runId);
|
|
183
|
+
if (outcome !== 'success')
|
|
184
|
+
return;
|
|
185
|
+
await sourceUnitObservationService.recordObservation(workspaceId, sourceUnit.sourceId, sourceUnit.path, runId);
|
|
186
|
+
}
|
|
187
|
+
catch (err) {
|
|
188
|
+
recordLogger.warn({
|
|
189
|
+
runId,
|
|
190
|
+
workspaceId,
|
|
191
|
+
sourceId: sourceUnit.sourceId,
|
|
192
|
+
path: sourceUnit.path,
|
|
193
|
+
err: err instanceof Error ? err.message : String(err),
|
|
194
|
+
}, 'failed to record observation after ddd:extract run');
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
async function waitForTerminalOutcome(runner, runRepository, workspace, runId) {
|
|
198
|
+
return new Promise((resolve) => {
|
|
199
|
+
let settled = false;
|
|
200
|
+
let timeout;
|
|
201
|
+
// Subscribe first, so future events from a still-active run reach us.
|
|
202
|
+
// Checking `isActive` first would race.
|
|
203
|
+
// A run finishing between the two steps would miss the terminal event.
|
|
204
|
+
const sub = runner.subscribe(runId, (event) => {
|
|
205
|
+
if (event.type === 'completed')
|
|
206
|
+
settle(event.exitCode === 0 ? 'success' : 'failure');
|
|
207
|
+
else if (event.type === 'error')
|
|
208
|
+
settle('failure');
|
|
209
|
+
});
|
|
210
|
+
function settle(outcome) {
|
|
211
|
+
if (settled)
|
|
212
|
+
return;
|
|
213
|
+
settled = true;
|
|
214
|
+
sub.unsubscribe();
|
|
215
|
+
if (timeout)
|
|
216
|
+
clearTimeout(timeout);
|
|
217
|
+
resolve(outcome);
|
|
218
|
+
}
|
|
219
|
+
// Backfill for an already-finished run.
|
|
220
|
+
// Its subscription never receives a terminal event,
|
|
221
|
+
// because the runner clears subscribers when drain exits.
|
|
222
|
+
// Read the persisted RunRecord instead.
|
|
223
|
+
if (!runner.isActive(runId)) {
|
|
224
|
+
;
|
|
225
|
+
(async () => {
|
|
226
|
+
try {
|
|
227
|
+
const records = await runRepository.listRecords(workspace);
|
|
228
|
+
const record = records.find(r => r.runId === runId);
|
|
229
|
+
if (record?.exitCode !== undefined)
|
|
230
|
+
settle(record.exitCode === 0 ? 'success' : 'failure');
|
|
231
|
+
else
|
|
232
|
+
settle('failure');
|
|
233
|
+
}
|
|
234
|
+
catch {
|
|
235
|
+
settle('failure');
|
|
236
|
+
}
|
|
237
|
+
})();
|
|
238
|
+
}
|
|
239
|
+
// Timeout backstop. .unref() lets Node exit while the timer pends.
|
|
240
|
+
// Observation recording is best-effort,
|
|
241
|
+
// not a reason to hold the process open.
|
|
242
|
+
timeout = setTimeout(() => settle('failure'), OBSERVATION_TIMEOUT_MS);
|
|
243
|
+
timeout.unref?.();
|
|
244
|
+
});
|
|
245
|
+
}
|
|
112
246
|
//# sourceMappingURL=skills.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/routes/skills.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/routes/skills.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sourceLoaders.d.ts","sourceRoot":"","sources":["../../src/routes/sourceLoaders.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAEnD,OAAO,EAAe,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE5D,MAAM,WAAW,uBAAuB;IACtC,cAAc,EAAE,cAAc,CAAA;CAC/B;AAiBD,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,uBAAuB,GAAG,WAAW,
|
|
1
|
+
{"version":3,"file":"sourceLoaders.d.ts","sourceRoot":"","sources":["../../src/routes/sourceLoaders.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAEnD,OAAO,EAAe,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE5D,MAAM,WAAW,uBAAuB;IACtC,cAAc,EAAE,cAAc,CAAA;CAC/B;AAiBD,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,uBAAuB,GAAG,WAAW,CAcpF"}
|
|
@@ -21,6 +21,7 @@ export function createSourceLoadersRouter(deps) {
|
|
|
21
21
|
const loaders = plugins.map(plugin => ({
|
|
22
22
|
kind: plugin.kind,
|
|
23
23
|
pluginId: plugin.id,
|
|
24
|
+
webhook: plugin.webhook !== undefined,
|
|
24
25
|
}));
|
|
25
26
|
return context.json(ListSourceLoadersResponse.parse({ loaders }), 200);
|
|
26
27
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sourceLoaders.js","sourceRoot":"","sources":["../../src/routes/sourceLoaders.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAM5D,MAAM,sBAAsB,GAAG,WAAW,CAAC;IACzC,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,GAAG;IACT,WAAW,EAAE,mBAAmB;IAChC,OAAO,EAAE,uDAAuD;IAChE,WAAW,EAAE,wRAAwR;IACrS,IAAI,EAAE,CAAC,SAAS,CAAC;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,WAAW,EAAE,6CAA6C;YAC1D,OAAO,EAAE,EAAE,kBAAkB,EAAE,EAAE,MAAM,EAAE,yBAAyB,EAAE,EAAE;SACvE;KACF;CACF,CAAC,CAAA;AAEF,MAAM,UAAU,yBAAyB,CAAC,IAA6B;IACrE,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAA;IAEhC,MAAM,CAAC,OAAO,CAAC,sBAAsB,EAAE,CAAC,OAAO,EAAE,EAAE;QACjD,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAA;QACnD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACrC,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,QAAQ,EAAE,MAAM,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"sourceLoaders.js","sourceRoot":"","sources":["../../src/routes/sourceLoaders.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAM5D,MAAM,sBAAsB,GAAG,WAAW,CAAC;IACzC,MAAM,EAAE,KAAK;IACb,IAAI,EAAE,GAAG;IACT,WAAW,EAAE,mBAAmB;IAChC,OAAO,EAAE,uDAAuD;IAChE,WAAW,EAAE,wRAAwR;IACrS,IAAI,EAAE,CAAC,SAAS,CAAC;IACjB,SAAS,EAAE;QACT,GAAG,EAAE;YACH,WAAW,EAAE,6CAA6C;YAC1D,OAAO,EAAE,EAAE,kBAAkB,EAAE,EAAE,MAAM,EAAE,yBAAyB,EAAE,EAAE;SACvE;KACF;CACF,CAAC,CAAA;AAEF,MAAM,UAAU,yBAAyB,CAAC,IAA6B;IACrE,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAA;IAEhC,MAAM,CAAC,OAAO,CAAC,sBAAsB,EAAE,CAAC,OAAO,EAAE,EAAE;QACjD,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAA;QACnD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACrC,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,QAAQ,EAAE,MAAM,CAAC,EAAE;YACnB,OAAO,EAAE,MAAM,CAAC,OAAO,KAAK,SAAS;SACtC,CAAC,CAAC,CAAA;QACH,OAAO,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,CAAC,CAAA;IACxE,CAAC,CAAC,CAAA;IAEF,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { SourceUnitDigest, SourceUnitObservationService, UnitLister, WorkspaceService } from '@braidhq/core';
|
|
2
|
+
import { OpenAPIHono } from '@hono/zod-openapi';
|
|
3
|
+
export interface SourceUnitObservationsRouterDeps {
|
|
4
|
+
sourceUnitObservationService: SourceUnitObservationService;
|
|
5
|
+
/**
|
|
6
|
+
* Optional `(workspaceService, unitLister, digest)` triple.
|
|
7
|
+
* When all three are present, the router exposes the `:sourceId/diff` route.
|
|
8
|
+
* When any is missing, the route is simply not registered,
|
|
9
|
+
* so callers see a 404 from Hono's router.
|
|
10
|
+
* That matches the unsupported-operation semantics,
|
|
11
|
+
* other partially-wired surfaces follow (Batch, Skills).
|
|
12
|
+
*/
|
|
13
|
+
diffSupport?: {
|
|
14
|
+
workspaceService: WorkspaceService;
|
|
15
|
+
unitLister: UnitLister;
|
|
16
|
+
digest: SourceUnitDigest;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
export declare function createSourceUnitObservationsRouter(deps: SourceUnitObservationsRouterDeps): OpenAPIHono;
|
|
20
|
+
//# sourceMappingURL=sourceUnitObservations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sourceUnitObservations.d.ts","sourceRoot":"","sources":["../../src/routes/sourceUnitObservations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,4BAA4B,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAGjH,OAAO,EAAe,WAAW,EAAK,MAAM,mBAAmB,CAAA;AAkB/D,MAAM,WAAW,gCAAgC;IAC/C,4BAA4B,EAAE,4BAA4B,CAAA;IAC1D;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE;QACZ,gBAAgB,EAAE,gBAAgB,CAAA;QAClC,UAAU,EAAE,UAAU,CAAA;QACtB,MAAM,EAAE,gBAAgB,CAAA;KACzB,CAAA;CACF;AA0CD,wBAAgB,kCAAkC,CAAC,IAAI,EAAE,gCAAgC,GAAG,WAAW,CAgCtG"}
|