@codemation/host 0.6.0 → 0.7.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.
- package/CHANGELOG.md +431 -0
- package/LICENSE +1 -37
- package/dist/{ApiPaths-CLTHphYZ.js → ApiPaths-Dv1dcHu_.js} +4 -4
- package/dist/ApiPaths-Dv1dcHu_.js.map +1 -0
- package/dist/{AppConfigFactory-C6q-CSKb.js → AppConfigFactory-Cx4qQvRk.js} +112 -52
- package/dist/AppConfigFactory-Cx4qQvRk.js.map +1 -0
- package/dist/{AppConfigFactory-YnveXE9k.d.ts → AppConfigFactory-DnLoQ9Li.d.ts} +8490 -5548
- package/dist/{AppContainerFactory-qaqc-R1D.js → AppContainerFactory-DqKYCRNP.js} +7641 -2083
- package/dist/AppContainerFactory-DqKYCRNP.js.map +1 -0
- package/dist/{CodemationAppContext-DRu1Dpri.d.ts → CodemationAppContext-CKVv9W9q.d.ts} +8 -4
- package/dist/{CodemationAuthoring.types-fBRppnmi.d.ts → CodemationAuthoring.types-DA3G3s6d.d.ts} +25 -5
- package/dist/{CodemationAuthoring.types-DZl-sJaM.js → CodemationAuthoring.types-NGkBcmmT.js} +18 -6
- package/dist/CodemationAuthoring.types-NGkBcmmT.js.map +1 -0
- package/dist/{CodemationConfigNormalizer-DVko3cVN.d.ts → CodemationConfigNormalizer-BAKjetJ6.d.ts} +3 -3
- package/dist/{CodemationConsumerConfigLoader-BeAUS144.js → CodemationConsumerConfigLoader-GYpBBvqE.js} +79 -10
- package/dist/CodemationConsumerConfigLoader-GYpBBvqE.js.map +1 -0
- package/dist/{CodemationConsumerConfigLoader-DJWr86f-.d.ts → CodemationConsumerConfigLoader-nxOqvv46.d.ts} +17 -2
- package/dist/{CodemationPluginListMerger-B-W5Fa_X.js → CodemationPluginListMerger-D1B1IEbt.js} +1 -1
- package/dist/{CodemationPluginListMerger-B-W5Fa_X.js.map → CodemationPluginListMerger-D1B1IEbt.js.map} +1 -1
- package/dist/{CodemationPluginListMerger-DGc-jfa2.d.ts → CodemationPluginListMerger-DKLAHT2b.d.ts} +123 -16
- package/dist/CodemationTsyringeTypeInfoRegistrar-Bj6FJYFz.js +97 -0
- package/dist/CodemationTsyringeTypeInfoRegistrar-Bj6FJYFz.js.map +1 -0
- package/dist/{CodemationWhitelabelConfig-CWbcyQqn.d.ts → CodemationWhitelabelConfig-Ca2mCUeC.d.ts} +2 -2
- package/dist/{CollectionContracts.types-DdpHft0i.d.ts → CollectionContracts.types-DDyFYT_D.d.ts} +1 -1
- package/dist/{CredentialContractsRegistry-DrMIDSw8.d.ts → CredentialContractsRegistry-Bq2bq28t.d.ts} +2 -2
- package/dist/{CredentialServices-UfvHB-rN.d.ts → CredentialServices-Be2I60Th.d.ts} +65 -20
- package/dist/{CredentialServices-CgxwguAv.js → CredentialServices-Dk8yypeL.js} +310 -51
- package/dist/CredentialServices-Dk8yypeL.js.map +1 -0
- package/dist/InternalHonoApiRouteRegistrar-Ce1yxpnO.d.ts +17 -0
- package/dist/InternalPingRegistrar-DY3kSfxP.js +221 -0
- package/dist/InternalPingRegistrar-DY3kSfxP.js.map +1 -0
- package/dist/{ItemsInputNormalizer-C-KHg9Mo.d.ts → ItemsInputNormalizer-_RwIfRIQ.d.ts} +89 -25
- package/dist/{LogLevelPolicyFactory-CampWO0l.d.ts → LogLevelPolicyFactory-ewCHLDLn.d.ts} +2 -2
- package/dist/{PublicFrontendBootstrap-DzBgwOnG.d.ts → PublicFrontendBootstrap-Cev3qK46.d.ts} +9 -2
- package/dist/PublicFrontendBootstrapFactory-CY2FS-5g.d.ts +82 -0
- package/dist/{PublicFrontendBootstrapJsonCodec-Cl_DLRh0.d.ts → PublicFrontendBootstrapJsonCodec-CXG9Dxft.d.ts} +3 -3
- package/dist/{PublicFrontendBootstrapJsonCodec-DzqvA0uo.js → PublicFrontendBootstrapJsonCodec-CegIF_ne.js} +7 -2
- package/dist/PublicFrontendBootstrapJsonCodec-CegIF_ne.js.map +1 -0
- package/dist/ServerLoggerFactory-Ckk52S3w.js +223 -0
- package/dist/ServerLoggerFactory-Ckk52S3w.js.map +1 -0
- package/dist/{TelemetryContracts-DbaNomrH.d.ts → TelemetryContracts-BtDx84Cp.d.ts} +13 -4
- package/dist/{WorkflowPolicyUiPresentationFactory-DQEY-h_S.d.ts → WorkflowPolicyUiPresentationFactory-6MyjCvBO.d.ts} +2 -2
- package/dist/{WorkflowPolicyUiPresentationFactory-DhPqQ9aB.js → WorkflowPolicyUiPresentationFactory-Bb-ae_Zh.js} +1 -1
- package/dist/{WorkflowPolicyUiPresentationFactory-DhPqQ9aB.js.map → WorkflowPolicyUiPresentationFactory-Bb-ae_Zh.js.map} +1 -1
- package/dist/{WorkflowViewContracts-CzK2KFuz.d.ts → WorkflowViewContracts-B7aFQcIw.d.ts} +10 -1
- package/dist/authoring.d.ts +5 -5
- package/dist/authoring.js +1 -1
- package/dist/client.d.ts +4 -4
- package/dist/client.js +2 -2
- package/dist/consumer.d.ts +6 -6
- package/dist/consumer.js +2 -2
- package/dist/credentials.d.ts +6 -6
- package/dist/credentials.js +1 -1
- package/dist/devServerSidecar.d.ts +2 -2
- package/dist/devServerSidecar.js +1 -94
- package/dist/devServerSidecar.js.map +1 -1
- package/dist/dto.d.ts +6 -6
- package/dist/{index-BbBk26m0.d.ts → index-DilAYwnH.d.ts} +49 -3
- package/dist/index.d.ts +110 -21
- package/dist/index.js +15 -13
- package/dist/mapping.d.ts +2 -2
- package/dist/mapping.js +1 -1
- package/dist/nextServer.d.ts +43 -88
- package/dist/nextServer.js +9 -7
- package/dist/pairing.d.ts +93 -0
- package/dist/pairing.js +5 -0
- package/dist/pairing.types-snfZ_OzB.d.ts +19 -0
- package/dist/{persistenceServer-CmsIKnO9.js → persistenceServer-C-hH4z6l.js} +2 -2
- package/dist/{persistenceServer-CmsIKnO9.js.map → persistenceServer-C-hH4z6l.js.map} +1 -1
- package/dist/persistenceServer-CeTHtC6E.d.ts +30 -0
- package/dist/persistenceServer.d.ts +8 -8
- package/dist/persistenceServer.js +3 -3
- package/dist/{server-MUNGsBYK.d.ts → server-C4bS62rg.d.ts} +21 -6
- package/dist/{server-CJFfY67o.js → server-Y7kxwtCK.js} +7 -6
- package/dist/{server-CJFfY67o.js.map → server-Y7kxwtCK.js.map} +1 -1
- package/dist/server.d.ts +14 -14
- package/dist/server.js +13 -11
- package/package.json +29 -42
- package/prisma/migrations/20260519000000_workflow_audit_log/migration.sql +23 -0
- package/prisma/migrations/20260519100000_storage_growth_fixes/migration.sql +61 -0
- package/prisma/migrations.sqlite/20260519000000_workflow_audit_log/migration.sql +21 -0
- package/prisma/migrations.sqlite/20260519100000_storage_growth_fixes/migration.sql +29 -0
- package/prisma/schema.postgresql.prisma +55 -17
- package/prisma/schema.sqlite.prisma +55 -17
- package/prisma-generated/prisma-postgresql-client/edge.js +33 -5
- package/prisma-generated/prisma-postgresql-client/index-browser.js +29 -1
- package/prisma-generated/prisma-postgresql-client/index.d.ts +8933 -5716
- package/prisma-generated/prisma-postgresql-client/index.js +33 -5
- package/prisma-generated/prisma-postgresql-client/package.json +1 -1
- package/prisma-generated/prisma-postgresql-client/schema.prisma +38 -0
- package/prisma-generated/prisma-sqlite-client/edge.js +33 -5
- package/prisma-generated/prisma-sqlite-client/index-browser.js +29 -1
- package/prisma-generated/prisma-sqlite-client/index.d.ts +8925 -5713
- package/prisma-generated/prisma-sqlite-client/index.js +33 -5
- package/prisma-generated/prisma-sqlite-client/package.json +1 -1
- package/prisma-generated/prisma-sqlite-client/schema.prisma +38 -0
- package/scripts/check-collections.mjs +18 -0
- package/scripts/generate-prisma-clients.mjs +20 -11
- package/src/application/WorkflowAuditLogPruneScheduler.ts +96 -0
- package/src/application/auth/AuthenticatedPrincipal.ts +4 -0
- package/src/application/commands/StartWorkflowRunCommandHandler.ts +4 -0
- package/src/application/contracts/WorkflowViewContracts.ts +6 -0
- package/src/application/contracts/WorkflowWebsocketMessage.ts +3 -1
- package/src/application/mapping/WorkflowDefinitionMapper.ts +40 -1
- package/src/application/runs/WorkflowRunRetentionPruneScheduler.ts +7 -1
- package/src/application/telemetry/OtelExecutionTelemetry.types.ts +5 -0
- package/src/application/telemetry/OtelExecutionTelemetryFactory.ts +4 -0
- package/src/application/telemetry/StoredTelemetrySpanScope.ts +6 -2
- package/src/application/telemetry/TelemetryRetentionTimestampFactory.ts +27 -17
- package/src/application/telemetry/TelemetrySpanPublisher.ts +11 -0
- package/src/application/websocket/TelemetrySpanWebsocketRelay.ts +31 -0
- package/src/applicationTokens.ts +20 -1
- package/src/audit/IAuditEmitter.ts +32 -0
- package/src/audit/PrismaWorkflowAuditLogRepository.ts +34 -0
- package/src/audit/WorkflowAuditLogWriter.ts +125 -0
- package/src/auth/managed/ManagedAuthConfig.ts +29 -0
- package/src/auth/managed/ManagedAuthMiddleware.ts +52 -0
- package/src/auth/managed/ManagedCorsMiddleware.ts +43 -0
- package/src/auth/managed/ManagedModeBootGuard.ts +27 -0
- package/src/auth/managed/index.ts +5 -0
- package/src/bootstrap/AppContainerFactory.ts +277 -29
- package/src/bootstrap/AppContainerLifecycle.ts +31 -0
- package/src/bootstrap/perf/BootTimer.ts +168 -0
- package/src/bootstrap/runtime/AppConfigFactory.ts +21 -65
- package/src/bootstrap/runtime/FrontendRuntime.ts +4 -1
- package/src/bootstrap/runtime/WorkerRuntime.ts +2 -1
- package/src/credentials/BrokerClient.ts +49 -0
- package/src/credentials/BrokerRefreshError.ts +12 -0
- package/src/credentials/BrokerRefreshInvalidGrantError.ts +13 -0
- package/src/credentials/ControlPlaneCatalogFetcher.ts +261 -0
- package/src/credentials/CredentialOAuth2MaterialReader.ts +136 -0
- package/src/credentials/InternalCredentialsListRegistrar.ts +48 -0
- package/src/credentials/InternalCredentialsPushRegistrar.ts +125 -0
- package/src/credentials/LocalOAuthFlowExecutor.ts +316 -0
- package/src/credentials/ManagedOAuthFlowExecutor.ts +94 -0
- package/src/credentials/ManagedOAuthRefreshInvalidGrantError.ts +13 -0
- package/src/credentials/catalogTypes.ts +4 -0
- package/src/credentials/refresh/CredentialDisconnectedError.ts +11 -0
- package/src/domain/credentials/CredentialBindingService.ts +54 -2
- package/src/domain/credentials/CredentialKeyRotatedError.ts +22 -0
- package/src/domain/credentials/CredentialSecretCipher.ts +68 -6
- package/src/domain/credentials/CredentialTypeRegistryImpl.ts +117 -10
- package/src/domain/credentials/OAuth2RedirectUriResolver.ts +79 -0
- package/src/domain/credentials/WorkflowCredentialNodeResolver.ts +14 -5
- package/src/domain/telemetry/TelemetryContracts.ts +7 -1
- package/src/domain/workflows/WorkflowActivationPreflight.ts +24 -1
- package/src/domain/workflows/WorkflowActivationPreflightRules.ts +40 -1
- package/src/index.ts +6 -0
- package/src/infrastructure/binary/LocalFilesystemBinaryStorageRegistry.ts +29 -1
- package/src/infrastructure/binary/S3BinaryStorage.ts +169 -0
- package/src/infrastructure/binary/S3BinaryStorageConfig.ts +17 -0
- package/src/infrastructure/config/CodemationPluginRegistrar.ts +3 -1
- package/src/infrastructure/persistence/CodemationDatabaseUrlParser.ts +41 -0
- package/src/infrastructure/persistence/InMemoryTelemetryArtifactStore.ts +8 -3
- package/src/infrastructure/persistence/PrismaMigrationDeployer.ts +21 -13
- package/src/infrastructure/persistence/PrismaTelemetryArtifactStore.ts +43 -8
- package/src/infrastructure/persistence/PrismaWorkflowRunRepository.ts +26 -3
- package/src/infrastructure/persistence/PrismaWorkflowSnapshotRepository.ts +48 -0
- package/src/mcp/AgentMcpIntegrationImpl.ts +344 -0
- package/src/mcp/McpClientFactory.ts +29 -0
- package/src/mcp/McpConnectionPool.ts +184 -0
- package/src/mcp/McpConnectionPool.types.ts +12 -0
- package/src/mcp/McpServerCatalog.ts +104 -0
- package/src/mcp/index.ts +5 -0
- package/src/pairing/HmacRequestSigner.ts +32 -0
- package/src/pairing/IncomingHmacVerifier.ts +82 -0
- package/src/pairing/InternalHmacAuthMiddleware.ts +33 -0
- package/src/pairing/InternalPingRegistrar.ts +25 -0
- package/src/pairing/PairedFetch.ts +33 -0
- package/src/pairing/PairingConfigFactory.ts +35 -0
- package/src/pairing/PairingConfigToken.ts +6 -0
- package/src/pairing/index.ts +14 -0
- package/src/pairing/pairing.types.ts +18 -0
- package/src/pairing.ts +17 -0
- package/src/persistenceServer.ts +1 -0
- package/src/presentation/config/AppConfig.ts +7 -1
- package/src/presentation/config/CodemationAuthConfig.ts +1 -1
- package/src/presentation/config/CodemationAuthoring.types.ts +54 -5
- package/src/presentation/config/CodemationConfig.ts +3 -0
- package/src/presentation/config/CodemationConfigNormalizer.ts +39 -1
- package/src/presentation/config/CodemationPlugin.ts +2 -1
- package/src/presentation/frontend/CodemationFrontendAuthSnapshot.ts +5 -0
- package/src/presentation/frontend/CodemationFrontendAuthSnapshotFactory.ts +7 -1
- package/src/presentation/frontend/PublicFrontendBootstrap.ts +2 -0
- package/src/presentation/frontend/PublicFrontendBootstrapFactory.ts +5 -1
- package/src/presentation/frontend/PublicFrontendBootstrapJsonCodec.ts +4 -1
- package/src/presentation/http/ApiPaths.ts +4 -4
- package/src/presentation/http/ServerHttpErrorResponseFactory.ts +39 -2
- package/src/presentation/http/hono/CodemationHonoApiAppFactory.ts +33 -8
- package/src/presentation/http/hono/InternalHonoApiRouteRegistrar.ts +12 -0
- package/src/presentation/http/hono/registrars/ManagedMeHonoApiRouteRegistrar.ts +35 -0
- package/src/presentation/http/hono/registrars/OAuth2HonoApiRouteRegistrar.ts +2 -2
- package/src/presentation/http/routeHandlers/CredentialHttpRouteHandler.ts +28 -0
- package/src/presentation/http/routeHandlers/OAuth2HttpRouteHandlerFactory.ts +98 -41
- package/src/presentation/server/CodemationConsumerConfigLoader.ts +54 -7
- package/src/presentation/server/CodemationPluginDiscovery.ts +5 -0
- package/src/presentation/server/WorkflowDefinitionExportsResolver.ts +18 -0
- package/src/presentation/server/WorkflowModulePathFinder.ts +12 -1
- package/src/presentation/websocket/ManagedWebsocketAuthenticator.ts +50 -0
- package/src/presentation/websocket/WebsocketAuthenticator.types.ts +12 -0
- package/src/presentation/websocket/WorkflowWebsocketServer.ts +24 -3
- package/src/process/ExecaProcessRunner.ts +41 -0
- package/src/process/ProcessRunner.types.ts +39 -0
- package/src/server.ts +2 -0
- package/src/workflows/InternalWorkflowActivationRegistrar.ts +42 -0
- package/src/workflows/InternalWorkflowDetailRegistrar.ts +33 -0
- package/src/workflows/InternalWorkflowTestRunRegistrar.ts +91 -0
- package/src/workflows/InternalWorkflowsListRegistrar.ts +28 -0
- package/src/workflows/discovery/WorkflowDirectoryDiscoverer.ts +79 -0
- package/tsconfig.json +2 -0
- package/vitest.shared.ts +5 -0
- package/dist/ApiPaths-CLTHphYZ.js.map +0 -1
- package/dist/AppConfigFactory-C6q-CSKb.js.map +0 -1
- package/dist/AppContainerFactory-qaqc-R1D.js.map +0 -1
- package/dist/CodemationAuthoring.types-DZl-sJaM.js.map +0 -1
- package/dist/CodemationConsumerConfigLoader-BeAUS144.js.map +0 -1
- package/dist/CredentialServices-CgxwguAv.js.map +0 -1
- package/dist/PublicFrontendBootstrapFactory-Cb2pLmDd.d.ts +0 -45
- package/dist/PublicFrontendBootstrapJsonCodec-DzqvA0uo.js.map +0 -1
- package/dist/ServerLoggerFactory-BKSIh9Xv.js +0 -98
- package/dist/ServerLoggerFactory-BKSIh9Xv.js.map +0 -1
- package/dist/persistenceServer-vtJAGDat.d.ts +0 -9
- package/src/domain/credentials/OAuth2ConnectServiceFactory.ts +0 -411
package/dist/{CodemationPluginListMerger-DGc-jfa2.d.ts → CodemationPluginListMerger-DKLAHT2b.d.ts}
RENAMED
|
@@ -1,13 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { $ as
|
|
3
|
-
import { C as CodemationContainerRegistration, l as CodemationPluginPackageMetadata, o as CodemationPlugin, r as AppConfig } from "./CodemationAppContext-
|
|
4
|
-
import { a as CodemationAuthConfig, l as Logger, t as CodemationWhitelabelConfig, u as LoggerFactory } from "./CodemationWhitelabelConfig-
|
|
5
|
-
import { t as LogLevelPolicyFactory } from "./LogLevelPolicyFactory-
|
|
6
|
-
import { t as CredentialStore } from "./CredentialServices-
|
|
7
|
-
import { i as TelemetryMetricPointStore, n as TelemetryArtifactStore, o as TelemetrySpanStore, r as TelemetryExporter, t as RunTraceContextRepository } from "./TelemetryContracts-
|
|
8
|
-
import { n as PrismaMigrationDeployer, r as PrismaDatabaseClient } from "./AppConfigFactory-
|
|
1
|
+
import { c as Clock, i as CollectionDefinition, r as Engine, t as OAuthFlowExecutor } from "./index-DilAYwnH.js";
|
|
2
|
+
import { $ as PersistedRunState, A as WorkflowRunDetailDto, G as PersistedRunPolicySnapshot, K as RunId, T as McpServerDeclaration, X as WorkflowDefinition, b as TestCaseRunStatus, d as NodeExecutionRequestHandler, f as NodeExecutionScheduler, g as TypeToken, h as Container, kt as WorkflowId, o as BinaryStorage, p as WorkflowRepository, rt as RunPruneCandidate, st as RunSummary, tt as RunCurrentState, ut as AnyCredentialType, v as RunEvent, w as WorkflowActivationPolicy, y as RunEventBus } from "./ItemsInputNormalizer-_RwIfRIQ.js";
|
|
3
|
+
import { C as CodemationContainerRegistration, l as CodemationPluginPackageMetadata, o as CodemationPlugin, r as AppConfig } from "./CodemationAppContext-CKVv9W9q.js";
|
|
4
|
+
import { a as CodemationAuthConfig, l as Logger, t as CodemationWhitelabelConfig, u as LoggerFactory } from "./CodemationWhitelabelConfig-Ca2mCUeC.js";
|
|
5
|
+
import { t as LogLevelPolicyFactory } from "./LogLevelPolicyFactory-ewCHLDLn.js";
|
|
6
|
+
import { t as CredentialStore } from "./CredentialServices-Be2I60Th.js";
|
|
7
|
+
import { i as TelemetryMetricPointStore, n as TelemetryArtifactStore, o as TelemetrySpanStore, r as TelemetryExporter, s as TelemetrySpanUpsert, t as RunTraceContextRepository } from "./TelemetryContracts-BtDx84Cp.js";
|
|
8
|
+
import { n as PrismaMigrationDeployer, r as PrismaDatabaseClient } from "./AppConfigFactory-DnLoQ9Li.js";
|
|
9
|
+
import { s as ProcessRunner } from "./PublicFrontendBootstrapFactory-CY2FS-5g.js";
|
|
10
|
+
import { t as InternalHonoApiRouteRegistrar } from "./InternalHonoApiRouteRegistrar-Ce1yxpnO.js";
|
|
9
11
|
import "reflect-metadata";
|
|
10
|
-
import { Hono } from "hono";
|
|
12
|
+
import { Hono, MiddlewareHandler } from "hono";
|
|
13
|
+
import "jose";
|
|
11
14
|
|
|
12
15
|
//#region src/application/bus/Command.d.ts
|
|
13
16
|
declare abstract class Command<TResult> {
|
|
@@ -37,6 +40,7 @@ declare class CodemationPluginRegistrar {
|
|
|
37
40
|
appConfig: AppConfig;
|
|
38
41
|
registerCredentialType: (type: AnyCredentialType) => void;
|
|
39
42
|
registerCollection: (definition: CollectionDefinition) => void;
|
|
43
|
+
mergeMcpServers: (declarations: ReadonlyArray<McpServerDeclaration>) => void;
|
|
40
44
|
loggerFactory: LoggerFactory;
|
|
41
45
|
}>): Promise<void>;
|
|
42
46
|
}
|
|
@@ -60,6 +64,10 @@ type WorkflowWebsocketMessage = Readonly<{
|
|
|
60
64
|
kind: "devBuildFailed";
|
|
61
65
|
workflowId: string;
|
|
62
66
|
message: string;
|
|
67
|
+
}> | Readonly<{
|
|
68
|
+
kind: "telemetryEvent";
|
|
69
|
+
runId: string;
|
|
70
|
+
span: TelemetrySpanUpsert;
|
|
63
71
|
}>;
|
|
64
72
|
//#endregion
|
|
65
73
|
//#region src/application/websocket/WorkflowWebsocketPublisher.d.ts
|
|
@@ -67,16 +75,41 @@ interface WorkflowWebsocketPublisher {
|
|
|
67
75
|
publishToRoom(roomId: string, message: WorkflowWebsocketMessage): Promise<void>;
|
|
68
76
|
}
|
|
69
77
|
//#endregion
|
|
78
|
+
//#region ../managed-auth/src/types.d.ts
|
|
79
|
+
/**
|
|
80
|
+
* A successfully verified CP-signed JWT principal.
|
|
81
|
+
* `userId` maps to the JWT `sub` claim; `workspaceId` maps to `aud`.
|
|
82
|
+
*/
|
|
83
|
+
interface VerifiedManagedPrincipal {
|
|
84
|
+
readonly userId: string;
|
|
85
|
+
readonly workspaceId: string;
|
|
86
|
+
}
|
|
87
|
+
//#endregion
|
|
88
|
+
//#region src/presentation/websocket/WebsocketAuthenticator.types.d.ts
|
|
89
|
+
/**
|
|
90
|
+
* Authenticates an incoming WebSocket upgrade request.
|
|
91
|
+
*
|
|
92
|
+
* Implementations parse the upgrade URL (e.g. `?token=<jwt>`) and verify the
|
|
93
|
+
* credential. Returns the verified principal on success, or `null` when the
|
|
94
|
+
* request must be rejected with close-code 4401.
|
|
95
|
+
*/
|
|
96
|
+
interface WebsocketAuthenticator {
|
|
97
|
+
authenticate(requestUrl: string | undefined): Promise<VerifiedManagedPrincipal | null>;
|
|
98
|
+
}
|
|
99
|
+
//#endregion
|
|
70
100
|
//#region src/presentation/websocket/WorkflowWebsocketServer.d.ts
|
|
71
101
|
declare class WorkflowWebsocketServer implements WorkflowWebsocketPublisher {
|
|
72
102
|
private readonly port;
|
|
73
103
|
private readonly bindHost;
|
|
74
104
|
private readonly logger;
|
|
105
|
+
private readonly authenticator;
|
|
75
106
|
private websocketServer;
|
|
76
107
|
private readonly sockets;
|
|
77
108
|
private readonly roomIdsBySocket;
|
|
78
109
|
private started;
|
|
79
|
-
constructor(port: number, bindHost: string, logger: Logger);
|
|
110
|
+
constructor(port: number, bindHost: string, logger: Logger, authenticator?: WebsocketAuthenticator | null);
|
|
111
|
+
/** Returns the actual port the server is listening on (useful when constructed with port 0). */
|
|
112
|
+
get listeningPort(): number;
|
|
80
113
|
start(): Promise<void>;
|
|
81
114
|
stop(): Promise<void>;
|
|
82
115
|
publishToRoom(roomId: string, message: WorkflowWebsocketMessage): Promise<void>;
|
|
@@ -109,14 +142,20 @@ declare class AppContainerFactory {
|
|
|
109
142
|
constructor(containerRegistrationRegistrar?: CodemationContainerRegistrationRegistrar, pluginRegistrar?: CodemationPluginRegistrar);
|
|
110
143
|
create(inputs: AppContainerInputs): Promise<Container>;
|
|
111
144
|
private collectCredentialTypes;
|
|
145
|
+
private registerMcpCatalog;
|
|
146
|
+
private mergeConfigMcpServers;
|
|
112
147
|
private applyPlugins;
|
|
113
148
|
private registerCredentialTypes;
|
|
149
|
+
private registerControlPlaneCatalogFetcher;
|
|
114
150
|
private registerConfiguredRegistrations;
|
|
115
151
|
private registerCollectionsInfrastructure;
|
|
116
152
|
private registerCoreInfrastructure;
|
|
117
153
|
private registerRepositoriesAndBuses;
|
|
118
154
|
private registerApplicationServicesAndRoutes;
|
|
155
|
+
private registerManagedAuthInfrastructure;
|
|
156
|
+
private registerPairingInfrastructure;
|
|
119
157
|
private registerOperationalInfrastructure;
|
|
158
|
+
private registerWorkflowAuditWriter;
|
|
120
159
|
private registerRuntimeInfrastructure;
|
|
121
160
|
private resolvePrismaOwnership;
|
|
122
161
|
private registerRuntimeNodeActivationScheduler;
|
|
@@ -133,6 +172,8 @@ declare class AppContainerLifecycle {
|
|
|
133
172
|
private readonly container;
|
|
134
173
|
private readonly ownedPrismaClient;
|
|
135
174
|
constructor(container: Container, ownedPrismaClient: PrismaDatabaseClient | null);
|
|
175
|
+
start(): Promise<void>;
|
|
176
|
+
startWorkerSubscribers(): Promise<void>;
|
|
136
177
|
stop(args?: Readonly<{
|
|
137
178
|
stopWebsocketServer?: boolean;
|
|
138
179
|
}>): Promise<void>;
|
|
@@ -406,10 +447,16 @@ declare class TelemetryEnricherChain {
|
|
|
406
447
|
//#endregion
|
|
407
448
|
//#region src/application/telemetry/TelemetryRetentionTimestampFactory.d.ts
|
|
408
449
|
declare class TelemetryRetentionTimestampFactory {
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
450
|
+
/** Default span retention: 7 days (overridden by policySnapshot). */
|
|
451
|
+
static readonly defaultSpanRetentionSeconds: number;
|
|
452
|
+
/** Default artifact retention: 3 days (overridden by policySnapshot). */
|
|
453
|
+
static readonly defaultArtifactRetentionSeconds: number;
|
|
454
|
+
/** Default metric retention: 30 days (overridden by policySnapshot). */
|
|
455
|
+
static readonly defaultMetricRetentionSeconds: number;
|
|
456
|
+
createSpanExpiry(policySnapshot: PersistedRunPolicySnapshot | undefined, observedAt: Date): string;
|
|
457
|
+
createArtifactExpiry(policySnapshot: PersistedRunPolicySnapshot | undefined, observedAt: Date): string;
|
|
458
|
+
createMetricExpiry(policySnapshot: PersistedRunPolicySnapshot | undefined, observedAt: Date): string;
|
|
459
|
+
createTraceContextExpiry(policySnapshot: PersistedRunPolicySnapshot | undefined, observedAt: Date): string;
|
|
413
460
|
private createExpiry;
|
|
414
461
|
}
|
|
415
462
|
//#endregion
|
|
@@ -542,6 +589,10 @@ type AuthenticatedPrincipal = Readonly<{
|
|
|
542
589
|
id: string;
|
|
543
590
|
email: string | null;
|
|
544
591
|
name: string | null;
|
|
592
|
+
/** Set to "managed-jwt" when the principal was verified from a CP-signed bearer token. */
|
|
593
|
+
source?: "managed-jwt";
|
|
594
|
+
/** The workspace ID from the JWT `aud` claim. Present when source === "managed-jwt". */
|
|
595
|
+
workspaceId?: string;
|
|
545
596
|
}>;
|
|
546
597
|
//#endregion
|
|
547
598
|
//#region src/application/auth/SessionVerifier.d.ts
|
|
@@ -572,6 +623,11 @@ declare abstract class QueryHandler<TQuery extends Query<TResult>, TResult> {
|
|
|
572
623
|
abstract execute(query: TQuery): Promise<TResult>;
|
|
573
624
|
}
|
|
574
625
|
//#endregion
|
|
626
|
+
//#region src/application/telemetry/TelemetrySpanPublisher.d.ts
|
|
627
|
+
interface TelemetrySpanPublisher {
|
|
628
|
+
publishSpan(span: TelemetrySpanUpsert): Promise<void>;
|
|
629
|
+
}
|
|
630
|
+
//#endregion
|
|
575
631
|
//#region src/domain/workflows/WorkflowDebuggerOverlayState.d.ts
|
|
576
632
|
type WorkflowDebuggerOverlayState = Readonly<{
|
|
577
633
|
workflowId: string;
|
|
@@ -591,6 +647,50 @@ interface HonoApiRouteRegistrar {
|
|
|
591
647
|
register(app: Hono): void;
|
|
592
648
|
}
|
|
593
649
|
//#endregion
|
|
650
|
+
//#region src/auth/managed/ManagedCorsMiddleware.d.ts
|
|
651
|
+
/**
|
|
652
|
+
* CORS allowlist middleware for managed mode.
|
|
653
|
+
*
|
|
654
|
+
* Only the single `CP_WEB_ORIGIN` value (provisioner-injected) is permitted.
|
|
655
|
+
* All other origins are refused on preflight with a 403.
|
|
656
|
+
*/
|
|
657
|
+
declare class ManagedCorsMiddleware {
|
|
658
|
+
private readonly allowedOrigin;
|
|
659
|
+
constructor(allowedOrigin: string);
|
|
660
|
+
handle(): MiddlewareHandler;
|
|
661
|
+
}
|
|
662
|
+
//#endregion
|
|
663
|
+
//#region src/audit/IAuditEmitter.d.ts
|
|
664
|
+
/**
|
|
665
|
+
* Workspace-local audit emitter contract.
|
|
666
|
+
* Mirror of the CP-side IAuditEmitter shape; kept separate to avoid cross-repo coupling.
|
|
667
|
+
*/
|
|
668
|
+
interface WorkflowAuditActor {
|
|
669
|
+
readonly userId: string;
|
|
670
|
+
readonly sessionId?: string;
|
|
671
|
+
}
|
|
672
|
+
interface WorkflowAuditResource {
|
|
673
|
+
readonly type: string;
|
|
674
|
+
readonly id: string;
|
|
675
|
+
}
|
|
676
|
+
interface WorkflowAuditEntry {
|
|
677
|
+
readonly id: string;
|
|
678
|
+
readonly occurredAt: string;
|
|
679
|
+
readonly actor: WorkflowAuditActor;
|
|
680
|
+
readonly action: string;
|
|
681
|
+
readonly resource: WorkflowAuditResource;
|
|
682
|
+
readonly outcome: "success" | "failure";
|
|
683
|
+
readonly errorCode?: string;
|
|
684
|
+
readonly correlationId?: string;
|
|
685
|
+
/** Denormalised on every row for query convenience. */
|
|
686
|
+
readonly workflowId: string;
|
|
687
|
+
readonly runId?: string;
|
|
688
|
+
readonly nodeId?: string;
|
|
689
|
+
}
|
|
690
|
+
interface IWorkflowAuditEmitter {
|
|
691
|
+
emit(entry: WorkflowAuditEntry): Promise<void>;
|
|
692
|
+
}
|
|
693
|
+
//#endregion
|
|
594
694
|
//#region src/applicationTokens.d.ts
|
|
595
695
|
declare const ApplicationTokens: {
|
|
596
696
|
readonly CodemationAuthConfig: TypeToken<CodemationAuthConfig | undefined>;
|
|
@@ -605,7 +705,11 @@ declare const ApplicationTokens: {
|
|
|
605
705
|
readonly CommandHandler: TypeToken<CommandHandler<Command<unknown>, unknown>>;
|
|
606
706
|
readonly DomainEventHandler: TypeToken<DomainEventHandler<DomainEvent>>;
|
|
607
707
|
readonly HonoApiRouteRegistrar: TypeToken<HonoApiRouteRegistrar>;
|
|
708
|
+
readonly InternalHonoApiRouteRegistrar: TypeToken<InternalHonoApiRouteRegistrar>;
|
|
709
|
+
readonly ManagedCorsMiddleware: TypeToken<ManagedCorsMiddleware>;
|
|
710
|
+
readonly WebsocketAuthenticator: TypeToken<WebsocketAuthenticator | null>;
|
|
608
711
|
readonly WorkflowWebsocketPublisher: TypeToken<WorkflowWebsocketPublisher>;
|
|
712
|
+
readonly TelemetrySpanPublisher: TypeToken<TelemetrySpanPublisher>;
|
|
609
713
|
readonly WorkerRuntimeScheduler: TypeToken<WorkerRuntimeScheduler>;
|
|
610
714
|
readonly WorkflowDefinitionRepository: TypeToken<WorkflowDefinitionRepository>;
|
|
611
715
|
readonly WorkflowActivationRepository: TypeToken<WorkflowActivationRepository>;
|
|
@@ -625,6 +729,9 @@ declare const ApplicationTokens: {
|
|
|
625
729
|
readonly PrismaClient: TypeToken<PrismaDatabaseClient>;
|
|
626
730
|
readonly SessionVerifier: TypeToken<SessionVerifier>;
|
|
627
731
|
readonly Clock: TypeToken<Clock>;
|
|
732
|
+
readonly WorkflowAuditEmitter: TypeToken<IWorkflowAuditEmitter>;
|
|
733
|
+
readonly ProcessRunner: TypeToken<ProcessRunner>;
|
|
734
|
+
readonly OAuthFlowExecutor: TypeToken<OAuthFlowExecutor>;
|
|
628
735
|
};
|
|
629
736
|
//#endregion
|
|
630
737
|
//#region src/bootstrap/CodemationBootstrapRequest.d.ts
|
|
@@ -656,5 +763,5 @@ declare class CodemationPluginListMerger {
|
|
|
656
763
|
private tryAdd;
|
|
657
764
|
}
|
|
658
765
|
//#endregion
|
|
659
|
-
export {
|
|
660
|
-
//# sourceMappingURL=CodemationPluginListMerger-
|
|
766
|
+
export { Command as S, AppContainerFactory as _, HonoApiRouteRegistrar as a, Query as b, WorkerRuntime as c, ServerLoggerFactory as d, LogFilter as f, AppContainerLifecycle as g, DatabaseMigrations as h, ManagedCorsMiddleware as i, FrontendRuntime as l, CollectionSchemaSyncerHolder as m, CodemationBootstrapRequest as n, WorkflowDebuggerOverlayRepository as o, WorkflowRunRepository as p, ApplicationTokens as r, SessionVerifier as s, CodemationPluginListMerger as t, WorkflowRunRetentionPruneScheduler as u, WorkflowWebsocketServer as v, CommandBus as x, QueryBus as y };
|
|
767
|
+
//# sourceMappingURL=CodemationPluginListMerger-DKLAHT2b.d.ts.map
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
//#region src/presentation/server/CodemationTsyringeParamInfoReader.ts
|
|
2
|
+
var CodemationTsyringeParamInfoReader = class {
|
|
3
|
+
static injectionTokenMetadataKey = "injectionTokens";
|
|
4
|
+
static designParamTypesMetadataKey = "design:paramtypes";
|
|
5
|
+
static read(target) {
|
|
6
|
+
const designParamTypes = this.readDesignParamTypes(target);
|
|
7
|
+
const injectionTokens = this.readInjectionTokens(target);
|
|
8
|
+
Object.keys(injectionTokens).forEach((key) => {
|
|
9
|
+
designParamTypes[Number(key)] = injectionTokens[key];
|
|
10
|
+
});
|
|
11
|
+
return designParamTypes;
|
|
12
|
+
}
|
|
13
|
+
static readDesignParamTypes(target) {
|
|
14
|
+
const reflected = Reflect.getMetadata?.(this.designParamTypesMetadataKey, target);
|
|
15
|
+
return Array.isArray(reflected) ? [...reflected] : [];
|
|
16
|
+
}
|
|
17
|
+
static readInjectionTokens(target) {
|
|
18
|
+
const reflected = Reflect.getOwnMetadata?.(this.injectionTokenMetadataKey, target);
|
|
19
|
+
if (!reflected || typeof reflected !== "object") return {};
|
|
20
|
+
return reflected;
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
//#endregion
|
|
25
|
+
//#region src/presentation/server/CodemationTsyringeTypeInfoRegistrar.ts
|
|
26
|
+
var CodemationTsyringeTypeInfoRegistrar = class {
|
|
27
|
+
visitedTokens = /* @__PURE__ */ new Set();
|
|
28
|
+
visitedConfigObjects = /* @__PURE__ */ new Set();
|
|
29
|
+
constructor(container) {
|
|
30
|
+
this.container = container;
|
|
31
|
+
}
|
|
32
|
+
registerWorkflowDefinitions(workflows) {
|
|
33
|
+
for (const workflow of workflows) for (const node of workflow.nodes) {
|
|
34
|
+
this.registerTypeToken(node.type);
|
|
35
|
+
this.registerConfigTokens(node.config);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
registerTypeToken(token) {
|
|
39
|
+
if (typeof token !== "function" || this.visitedTokens.has(token)) return;
|
|
40
|
+
this.visitedTokens.add(token);
|
|
41
|
+
const paramInfo = CodemationTsyringeParamInfoReader.read(token);
|
|
42
|
+
for (const dependency of paramInfo) this.registerDependency(dependency);
|
|
43
|
+
this.registerFactoryProvider(token, paramInfo);
|
|
44
|
+
}
|
|
45
|
+
registerDependency(dependency) {
|
|
46
|
+
const token = this.resolveDependencyToken(dependency);
|
|
47
|
+
if (typeof token !== "function") return;
|
|
48
|
+
if (!this.container.isRegistered(token, true)) return;
|
|
49
|
+
this.registerTypeToken(token);
|
|
50
|
+
}
|
|
51
|
+
registerConfigTokens(value) {
|
|
52
|
+
if (Array.isArray(value)) {
|
|
53
|
+
value.forEach((entry) => this.registerConfigTokens(entry));
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
if (!value || typeof value !== "object") return;
|
|
57
|
+
if (this.visitedConfigObjects.has(value)) return;
|
|
58
|
+
this.visitedConfigObjects.add(value);
|
|
59
|
+
if ("type" in value && typeof value.type === "function") this.registerTypeToken(value.type);
|
|
60
|
+
Object.values(value).forEach((entry) => this.registerConfigTokens(entry));
|
|
61
|
+
}
|
|
62
|
+
registerFactoryProvider(token, paramInfo) {
|
|
63
|
+
if (this.container.isRegistered(token, true)) return;
|
|
64
|
+
const classToken = token;
|
|
65
|
+
const constructorToken = token;
|
|
66
|
+
this.container.register(classToken, { useFactory: (dependencyContainer) => {
|
|
67
|
+
return new constructorToken(...paramInfo.map((dependency) => this.resolveFactoryDependency(dependencyContainer, dependency)));
|
|
68
|
+
} });
|
|
69
|
+
}
|
|
70
|
+
resolveDependencyToken(dependency) {
|
|
71
|
+
if (this.isInjectionDescriptor(dependency)) return dependency.token;
|
|
72
|
+
return dependency;
|
|
73
|
+
}
|
|
74
|
+
resolveFactoryDependency(dependencyContainer, dependency) {
|
|
75
|
+
const token = this.resolveDependencyToken(dependency);
|
|
76
|
+
if (typeof token === "function") {
|
|
77
|
+
if (dependencyContainer.isRegistered(token, true)) try {
|
|
78
|
+
return dependencyContainer.resolve(token);
|
|
79
|
+
} catch (error) {
|
|
80
|
+
if (!this.isMissingTypeInfoError(error)) throw error;
|
|
81
|
+
}
|
|
82
|
+
this.registerTypeToken(token);
|
|
83
|
+
return new token(...CodemationTsyringeParamInfoReader.read(token).map((entry) => this.resolveFactoryDependency(dependencyContainer, entry)));
|
|
84
|
+
}
|
|
85
|
+
return dependencyContainer.resolve(token);
|
|
86
|
+
}
|
|
87
|
+
isInjectionDescriptor(value) {
|
|
88
|
+
return value !== null && typeof value === "object" && "token" in value;
|
|
89
|
+
}
|
|
90
|
+
isMissingTypeInfoError(error) {
|
|
91
|
+
return error instanceof Error && error.message.includes("TypeInfo not known for");
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
//#endregion
|
|
96
|
+
export { CodemationTsyringeParamInfoReader as n, CodemationTsyringeTypeInfoRegistrar as t };
|
|
97
|
+
//# sourceMappingURL=CodemationTsyringeTypeInfoRegistrar-Bj6FJYFz.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CodemationTsyringeTypeInfoRegistrar-Bj6FJYFz.js","names":["container: Container"],"sources":["../src/presentation/server/CodemationTsyringeParamInfoReader.ts","../src/presentation/server/CodemationTsyringeTypeInfoRegistrar.ts"],"sourcesContent":["export class CodemationTsyringeParamInfoReader {\n private static readonly injectionTokenMetadataKey = \"injectionTokens\";\n private static readonly designParamTypesMetadataKey = \"design:paramtypes\";\n\n static read(target: object): ReadonlyArray<unknown> {\n const designParamTypes = this.readDesignParamTypes(target);\n const injectionTokens = this.readInjectionTokens(target);\n Object.keys(injectionTokens).forEach((key: string) => {\n designParamTypes[Number(key)] = injectionTokens[key];\n });\n return designParamTypes;\n }\n\n private static readDesignParamTypes(target: object): unknown[] {\n const reflected = Reflect.getMetadata?.(this.designParamTypesMetadataKey, target);\n return Array.isArray(reflected) ? [...reflected] : [];\n }\n\n private static readInjectionTokens(target: object): Record<string, unknown> {\n const reflected = Reflect.getOwnMetadata?.(this.injectionTokenMetadataKey, target);\n if (!reflected || typeof reflected !== \"object\") {\n return {};\n }\n return reflected as Record<string, unknown>;\n }\n}\n","import type { Container, TypeToken, WorkflowDefinition } from \"@codemation/core\";\n\nimport { CodemationTsyringeParamInfoReader } from \"./CodemationTsyringeParamInfoReader\";\n\ntype InjectionDescriptor = Readonly<{\n token?: unknown;\n}>;\n\nexport class CodemationTsyringeTypeInfoRegistrar {\n private readonly visitedTokens = new Set<unknown>();\n private readonly visitedConfigObjects = new Set<object>();\n\n constructor(private readonly container: Container) {}\n\n registerWorkflowDefinitions(workflows: ReadonlyArray<WorkflowDefinition>): void {\n for (const workflow of workflows) {\n for (const node of workflow.nodes) {\n this.registerTypeToken(node.type);\n this.registerConfigTokens(node.config);\n }\n }\n }\n\n registerTypeToken(token: unknown): void {\n if (typeof token !== \"function\" || this.visitedTokens.has(token)) {\n return;\n }\n this.visitedTokens.add(token);\n const paramInfo = CodemationTsyringeParamInfoReader.read(token);\n for (const dependency of paramInfo) {\n this.registerDependency(dependency);\n }\n this.registerFactoryProvider(token as new (...args: ReadonlyArray<unknown>) => unknown, paramInfo);\n }\n\n private registerDependency(dependency: unknown): void {\n const token = this.resolveDependencyToken(dependency);\n if (typeof token !== \"function\") {\n return;\n }\n if (!this.container.isRegistered(token as TypeToken<unknown>, true)) {\n return;\n }\n this.registerTypeToken(token);\n }\n\n private registerConfigTokens(value: unknown): void {\n if (Array.isArray(value)) {\n value.forEach((entry: unknown) => this.registerConfigTokens(entry));\n return;\n }\n if (!value || typeof value !== \"object\") {\n return;\n }\n if (this.visitedConfigObjects.has(value)) {\n return;\n }\n this.visitedConfigObjects.add(value);\n if (\"type\" in value && typeof value.type === \"function\") {\n this.registerTypeToken(value.type);\n }\n Object.values(value).forEach((entry: unknown) => this.registerConfigTokens(entry));\n }\n\n private registerFactoryProvider(\n token: new (...args: ReadonlyArray<unknown>) => unknown,\n paramInfo: ReadonlyArray<unknown>,\n ): void {\n if (this.container.isRegistered(token as TypeToken<unknown>, true)) {\n return;\n }\n const classToken = token as unknown as TypeToken<unknown>;\n const constructorToken = token as unknown as new (...args: ReadonlyArray<unknown>) => unknown;\n this.container.register(classToken, {\n useFactory: (dependencyContainer) => {\n const dependencies = paramInfo.map((dependency: unknown) =>\n this.resolveFactoryDependency(dependencyContainer, dependency),\n );\n return new constructorToken(...dependencies);\n },\n });\n }\n\n private resolveDependencyToken(dependency: unknown): unknown {\n if (this.isInjectionDescriptor(dependency)) {\n return dependency.token;\n }\n return dependency;\n }\n\n private resolveFactoryDependency(dependencyContainer: Container, dependency: unknown): unknown {\n const token = this.resolveDependencyToken(dependency);\n if (typeof token === \"function\") {\n if (dependencyContainer.isRegistered(token as TypeToken<unknown>, true)) {\n try {\n return dependencyContainer.resolve(token as TypeToken<unknown>);\n } catch (error) {\n if (!this.isMissingTypeInfoError(error)) {\n throw error;\n }\n }\n }\n this.registerTypeToken(token);\n const constructorToken = token as unknown as new (...args: ReadonlyArray<unknown>) => unknown;\n const paramInfo = CodemationTsyringeParamInfoReader.read(token);\n const nestedDependencies = paramInfo.map((entry: unknown) =>\n this.resolveFactoryDependency(dependencyContainer, entry),\n );\n return new constructorToken(...nestedDependencies);\n }\n return dependencyContainer.resolve(token as TypeToken<unknown>);\n }\n\n private isInjectionDescriptor(value: unknown): value is InjectionDescriptor {\n return value !== null && typeof value === \"object\" && \"token\" in value;\n }\n\n private isMissingTypeInfoError(error: unknown): boolean {\n return error instanceof Error && error.message.includes(\"TypeInfo not known for\");\n }\n}\n"],"mappings":"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"}
|
package/dist/{CodemationWhitelabelConfig-CWbcyQqn.d.ts → CodemationWhitelabelConfig-Ca2mCUeC.d.ts}
RENAMED
|
@@ -16,7 +16,7 @@ interface LoggerFactory {
|
|
|
16
16
|
* Consumer-declared authentication profile for the hosted UI + HTTP API.
|
|
17
17
|
* Social provider ids intentionally match Better Auth's provider ids so config stays 1:1 with the auth runtime.
|
|
18
18
|
*/
|
|
19
|
-
type CodemationAuthKind = "local" | "oauth" | "oidc";
|
|
19
|
+
type CodemationAuthKind = "local" | "oauth" | "oidc" | "managed";
|
|
20
20
|
type CodemationAuthOAuthProviderId = Extract<keyof NonNullable<BetterAuthOptions["socialProviders"]>, "github" | "google" | "microsoft">;
|
|
21
21
|
interface CodemationAuthOAuthProviderConfig {
|
|
22
22
|
readonly provider: CodemationAuthOAuthProviderId;
|
|
@@ -78,4 +78,4 @@ interface CodemationWhitelabelConfig {
|
|
|
78
78
|
}
|
|
79
79
|
//#endregion
|
|
80
80
|
export { CodemationAuthConfig as a, CodemationAuthOidcProviderConfig as c, CodemationLogRule as i, Logger as l, CodemationLogConfig as n, CodemationAuthKind as o, CodemationLogLevelName as r, CodemationAuthOAuthProviderConfig as s, CodemationWhitelabelConfig as t, LoggerFactory as u };
|
|
81
|
-
//# sourceMappingURL=CodemationWhitelabelConfig-
|
|
81
|
+
//# sourceMappingURL=CodemationWhitelabelConfig-Ca2mCUeC.d.ts.map
|
package/dist/{CollectionContracts.types-DdpHft0i.d.ts → CollectionContracts.types-DDyFYT_D.d.ts}
RENAMED
|
@@ -84,4 +84,4 @@ interface SyncCollectionsResponseDto {
|
|
|
84
84
|
}
|
|
85
85
|
//#endregion
|
|
86
86
|
export { withInviteUserResponseLoginMethodsDefaults as _, CollectionSummaryDto as a, AcceptUserInviteRequestDto as c, UpdateUserAccountStatusRequestDto as d, UpsertLocalBootstrapUserResultDto as f, VerifyUserInviteResponseDto as g, UserAccountStatus as h, CollectionRowDto as i, InviteUserRequestDto as l, UserAccountDtoInput as m, CollectionFieldDto as n, ListCollectionRowsResponseDto as o, UserAccountDto as p, CollectionIndexDto as r, SyncCollectionsResponseDto as s, CollectionDetailDto as t, InviteUserResponseDto as u, withUserAccountLoginMethodsDefaults as v };
|
|
87
|
-
//# sourceMappingURL=CollectionContracts.types-
|
|
87
|
+
//# sourceMappingURL=CollectionContracts.types-DDyFYT_D.d.ts.map
|
package/dist/{CredentialContractsRegistry-DrMIDSw8.d.ts → CredentialContractsRegistry-Bq2bq28t.d.ts}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Ct as CredentialSetupStatus, Et as CredentialTypeId, bt as CredentialRequirement, ht as CredentialInstanceId, mt as CredentialHealth, vt as CredentialMaterialSourceKind } from "./ItemsInputNormalizer-_RwIfRIQ.js";
|
|
2
2
|
|
|
3
3
|
//#region src/application/contracts/CredentialContractsRegistry.d.ts
|
|
4
4
|
type CredentialInstanceDto = Readonly<{
|
|
@@ -67,4 +67,4 @@ type UpsertCredentialBindingRequest = Readonly<{
|
|
|
67
67
|
}>;
|
|
68
68
|
//#endregion
|
|
69
69
|
export { UpdateCredentialInstanceRequest as a, WorkflowCredentialHealthSlotDto as c, CredentialOAuth2ConnectionDto as i, CredentialInstanceDto as n, UpsertCredentialBindingRequest as o, CredentialInstanceWithSecretsDto as r, WorkflowCredentialHealthDto as s, CreateCredentialInstanceRequest as t };
|
|
70
|
-
//# sourceMappingURL=CredentialContractsRegistry-
|
|
70
|
+
//# sourceMappingURL=CredentialContractsRegistry-Bq2bq28t.d.ts.map
|
|
@@ -1,14 +1,40 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { r as AppConfig } from "./CodemationAppContext-
|
|
3
|
-
import {
|
|
1
|
+
import { Dt as CredentialTypeRegistry, Et as CredentialTypeId, St as CredentialSessionService, T as McpServerDeclaration, Tt as CredentialTypeDefinition, X as WorkflowDefinition, _t as CredentialJsonRecord, bt as CredentialRequirement, dt as CredentialBinding, ft as CredentialBindingKey, gt as CredentialInstanceRecord, ht as CredentialInstanceId, mt as CredentialHealth, p as WorkflowRepository, pt as CredentialFieldSchema, ut as AnyCredentialType, wt as CredentialType, yt as CredentialOAuth2AuthDefinition } from "./ItemsInputNormalizer-_RwIfRIQ.js";
|
|
2
|
+
import { r as AppConfig } from "./CodemationAppContext-CKVv9W9q.js";
|
|
3
|
+
import { u as LoggerFactory } from "./CodemationWhitelabelConfig-Ca2mCUeC.js";
|
|
4
|
+
import { a as UpdateCredentialInstanceRequest, n as CredentialInstanceDto, r as CredentialInstanceWithSecretsDto, s as WorkflowCredentialHealthDto, t as CreateCredentialInstanceRequest } from "./CredentialContractsRegistry-Bq2bq28t.js";
|
|
4
5
|
|
|
5
6
|
//#region src/domain/credentials/CredentialTypeRegistryImpl.d.ts
|
|
7
|
+
type CredentialTypeSource = "plugin" | "config" | "controlPlane";
|
|
6
8
|
declare class CredentialTypeRegistryImpl implements CredentialTypeRegistry {
|
|
7
|
-
private readonly
|
|
8
|
-
|
|
9
|
+
private readonly loggers;
|
|
10
|
+
private readonly entries;
|
|
11
|
+
private readonly bySource;
|
|
12
|
+
constructor(loggers: LoggerFactory);
|
|
13
|
+
merge(source: CredentialTypeSource, types: ReadonlyArray<AnyCredentialType>): void;
|
|
14
|
+
mergeDefinitions(source: CredentialTypeSource, definitions: ReadonlyArray<CredentialTypeDefinition>): void;
|
|
15
|
+
clear(source: CredentialTypeSource): void;
|
|
9
16
|
listTypes(): ReadonlyArray<CredentialTypeDefinition>;
|
|
10
17
|
getType(typeId: CredentialTypeId): CredentialTypeDefinition | undefined;
|
|
11
18
|
getCredentialType(typeId: CredentialTypeId): AnyCredentialType | undefined;
|
|
19
|
+
private insert;
|
|
20
|
+
private recordEntry;
|
|
21
|
+
private createUnsupportedSessionFactory;
|
|
22
|
+
private createUnsupportedHealthTester;
|
|
23
|
+
}
|
|
24
|
+
//#endregion
|
|
25
|
+
//#region src/mcp/McpServerCatalog.d.ts
|
|
26
|
+
type McpServerDeclarationSource = "plugin" | "config" | "controlPlane";
|
|
27
|
+
declare class McpServerCatalog {
|
|
28
|
+
private readonly loggers;
|
|
29
|
+
private readonly entries;
|
|
30
|
+
private readonly bySource;
|
|
31
|
+
private readonly env;
|
|
32
|
+
constructor(loggers: LoggerFactory, appConfig: AppConfig);
|
|
33
|
+
merge(source: McpServerDeclarationSource, declarations: ReadonlyArray<McpServerDeclaration>): void;
|
|
34
|
+
get(id: string): McpServerDeclaration | undefined;
|
|
35
|
+
getAll(): readonly McpServerDeclaration[];
|
|
36
|
+
clear(source: McpServerDeclarationSource): void;
|
|
37
|
+
private validate;
|
|
12
38
|
}
|
|
13
39
|
//#endregion
|
|
14
40
|
//#region src/domain/credentials/WorkflowCredentialNodeResolver.d.ts
|
|
@@ -22,6 +48,8 @@ type WorkflowCredentialSlotRef = Readonly<{
|
|
|
22
48
|
* Resolves credential requirements for workflow node ids, including connection-owned LLM/tool children.
|
|
23
49
|
*/
|
|
24
50
|
declare class WorkflowCredentialNodeResolver {
|
|
51
|
+
private readonly mcpCatalog?;
|
|
52
|
+
constructor(mcpCatalog?: McpServerCatalog | undefined);
|
|
25
53
|
/**
|
|
26
54
|
* Human-readable label for credential errors (workflow node name or agent › attachment).
|
|
27
55
|
*/
|
|
@@ -57,11 +85,22 @@ declare class CredentialFieldEnvOverlayService {
|
|
|
57
85
|
}
|
|
58
86
|
//#endregion
|
|
59
87
|
//#region src/domain/credentials/CredentialSecretCipher.d.ts
|
|
88
|
+
/**
|
|
89
|
+
* Schema versions:
|
|
90
|
+
* 1 — key = SHA-256(rawValue) (legacy, read-only support retained for migration)
|
|
91
|
+
* 2 — key = HKDF-SHA-256(rawKey32Bytes, ...) (current)
|
|
92
|
+
*
|
|
93
|
+
* All new encryptions are written as v2. Existing v1 records can still be
|
|
94
|
+
* decrypted so operators can re-encrypt at their own pace (re-bind the
|
|
95
|
+
* credential in the UI, or run the one-shot re-encrypt script).
|
|
96
|
+
*/
|
|
60
97
|
declare class CredentialSecretCipher {
|
|
61
98
|
private readonly appConfig;
|
|
62
99
|
private static readonly algorithm;
|
|
63
|
-
private static readonly
|
|
100
|
+
private static readonly currentSchemaVersion;
|
|
64
101
|
private static readonly ivLength;
|
|
102
|
+
private static readonly HKDF_SALT;
|
|
103
|
+
private static readonly HKDF_INFO;
|
|
65
104
|
constructor(appConfig: AppConfig);
|
|
66
105
|
encrypt(value: JsonRecord): Readonly<{
|
|
67
106
|
encryptedJson: string;
|
|
@@ -73,7 +112,21 @@ declare class CredentialSecretCipher {
|
|
|
73
112
|
encryptionKeyId: string;
|
|
74
113
|
schemaVersion: number;
|
|
75
114
|
}>): JsonRecord;
|
|
76
|
-
|
|
115
|
+
/**
|
|
116
|
+
* Current (v2) key derivation: HKDF-SHA-256 with a fixed application salt and info label.
|
|
117
|
+
* Input must be a base64-encoded 32-byte value (`CODEMATION_CREDENTIALS_MASTER_KEY`).
|
|
118
|
+
*/
|
|
119
|
+
private resolveKeyMaterialV2;
|
|
120
|
+
/**
|
|
121
|
+
* Legacy (v1) key derivation: SHA-256 of the raw env string.
|
|
122
|
+
* Retained for decrypt-side backward compatibility only.
|
|
123
|
+
*/
|
|
124
|
+
private resolveKeyMaterialV1;
|
|
125
|
+
/**
|
|
126
|
+
* Validates and returns the raw 32-byte key material from the env var.
|
|
127
|
+
* Throws if the env var is absent or does not decode to exactly 32 bytes.
|
|
128
|
+
*/
|
|
129
|
+
private resolveBase64Key32Bytes;
|
|
77
130
|
private resolveKeyId;
|
|
78
131
|
}
|
|
79
132
|
//#endregion
|
|
@@ -132,29 +185,21 @@ declare class CredentialBindingService {
|
|
|
132
185
|
private readonly workflowRepository;
|
|
133
186
|
private readonly credentialSessionService;
|
|
134
187
|
private readonly workflowCredentialNodeResolver;
|
|
135
|
-
|
|
188
|
+
private readonly logger;
|
|
189
|
+
constructor(credentialStore: CredentialStore, credentialInstanceService: CredentialInstanceService, workflowRepository: WorkflowRepository, credentialSessionService: MutableCredentialSessionService, workflowCredentialNodeResolver: WorkflowCredentialNodeResolver, loggerFactory: LoggerFactory);
|
|
136
190
|
upsertBinding(args: Readonly<{
|
|
137
191
|
workflowId: string;
|
|
138
192
|
nodeId: string;
|
|
139
193
|
slotKey: string;
|
|
140
194
|
instanceId: CredentialInstanceId;
|
|
141
195
|
}>): Promise<CredentialBinding>;
|
|
196
|
+
assertRequiredCredentialsBound(workflowId: string): Promise<void>;
|
|
142
197
|
listWorkflowHealth(workflowId: string): Promise<WorkflowCredentialHealthDto>;
|
|
143
198
|
private requireWorkflow;
|
|
144
199
|
private requireRequirement;
|
|
145
200
|
private toBindingKeyString;
|
|
146
201
|
}
|
|
147
202
|
//#endregion
|
|
148
|
-
//#region src/domain/credentials/CredentialRuntimeMaterialService.d.ts
|
|
149
|
-
declare class CredentialRuntimeMaterialService {
|
|
150
|
-
private readonly credentialStore;
|
|
151
|
-
private readonly credentialMaterialResolver;
|
|
152
|
-
private readonly credentialSecretCipher;
|
|
153
|
-
private readonly credentialTypeRegistry;
|
|
154
|
-
constructor(credentialStore: CredentialStore, credentialMaterialResolver: CredentialMaterialResolver, credentialSecretCipher: CredentialSecretCipher, credentialTypeRegistry: CredentialTypeRegistryImpl);
|
|
155
|
-
compose(instance: CredentialInstanceRecord$1): Promise<JsonRecord>;
|
|
156
|
-
}
|
|
157
|
-
//#endregion
|
|
158
203
|
//#region src/domain/credentials/CredentialServices.d.ts
|
|
159
204
|
type JsonRecord = CredentialJsonRecord;
|
|
160
205
|
type CredentialSecretRef = Readonly<{
|
|
@@ -238,5 +283,5 @@ type MutableCredentialSessionService = CredentialSessionService & Readonly<{
|
|
|
238
283
|
evictBinding(bindingKey: CredentialBindingKey): void;
|
|
239
284
|
}>;
|
|
240
285
|
//#endregion
|
|
241
|
-
export {
|
|
242
|
-
//# sourceMappingURL=CredentialServices-
|
|
286
|
+
export { CredentialSecretCipher as a, CredentialInstanceService as i, CredentialType$1 as n, McpServerCatalog as o, CredentialBindingService as r, CredentialStore as t };
|
|
287
|
+
//# sourceMappingURL=CredentialServices-Be2I60Th.d.ts.map
|