@codemation/host 0.3.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/CHANGELOG.md +75 -0
  2. package/dist/{AppConfigFactory-Dq7ttwQ_.d.ts → AppConfigFactory-PFmDg5Sg.d.ts} +3 -3
  3. package/dist/{AppContainerFactory-D9je1sSV.js → AppContainerFactory-Cr3JeVmg.js} +85 -132
  4. package/dist/AppContainerFactory-Cr3JeVmg.js.map +1 -0
  5. package/dist/{CodemationAppContext-P7P-xZhQ.d.ts → CodemationAppContext-DP_-56c6.d.ts} +2 -2
  6. package/dist/{CodemationAuthoring.types-OMYu7vKP.d.ts → CodemationAuthoring.types-zJ2t73Bn.d.ts} +4 -3
  7. package/dist/{CodemationConfigNormalizer-BCtBrJDe.d.ts → CodemationConfigNormalizer-B8RGUwAe.d.ts} +2 -2
  8. package/dist/{CodemationConsumerConfigLoader-evvw4b_a.d.ts → CodemationConsumerConfigLoader-C_QVwcI3.d.ts} +2 -2
  9. package/dist/{CodemationPluginListMerger-PSTtEQjC.d.ts → CodemationPluginListMerger-Bgn1CIX9.d.ts} +5 -5
  10. package/dist/{CredentialServices-0Hk8RFY1.d.ts → CredentialServices-95DPogx-.d.ts} +3 -3
  11. package/dist/{PublicFrontendBootstrapFactory-D0_ds7nS.d.ts → PublicFrontendBootstrapFactory-C_iLgPV-.d.ts} +2 -2
  12. package/dist/authoring.d.ts +3 -3
  13. package/dist/consumer.d.ts +4 -4
  14. package/dist/credentials.d.ts +3 -3
  15. package/dist/devServerSidecar.d.ts +1 -1
  16. package/dist/{index-CeS2saCe.d.ts → index-W4eSjdCM.d.ts} +26 -15
  17. package/dist/index.d.ts +11 -11
  18. package/dist/index.js +2 -2
  19. package/dist/nextServer.d.ts +7 -7
  20. package/dist/nextServer.js +1 -1
  21. package/dist/{persistenceServer-CJeu1STC.d.ts → persistenceServer-_pqP_0nw.d.ts} +2 -2
  22. package/dist/persistenceServer.d.ts +5 -5
  23. package/dist/{server-C_ZIEOTY.js → server-BE4PLhcb.js} +2 -2
  24. package/dist/{server-C_ZIEOTY.js.map → server-BE4PLhcb.js.map} +1 -1
  25. package/dist/{server-Clvg5x1w.d.ts → server-Q5uwa6iR.d.ts} +5 -5
  26. package/dist/server.d.ts +8 -8
  27. package/dist/server.js +2 -2
  28. package/package.json +7 -5
  29. package/src/bootstrap/AppContainerFactory.ts +77 -81
  30. package/src/bootstrap/CodemationContainerRegistrationRegistrar.ts +1 -3
  31. package/src/infrastructure/config/CodemationPluginRegistrar.ts +2 -6
  32. package/src/infrastructure/di/HandlesDomainEventRegistry.ts +5 -7
  33. package/src/infrastructure/persistence/PrismaWorkflowRunRepository.ts +8 -0
  34. package/src/presentation/http/hono/registrars/AuthHonoApiRouteRegistrar.ts +1 -3
  35. package/src/presentation/http/hono/registrars/BinaryHonoApiRouteRegistrar.ts +1 -3
  36. package/src/presentation/http/hono/registrars/BootstrapHonoApiRouteRegistrar.ts +1 -3
  37. package/src/presentation/http/hono/registrars/CredentialHonoApiRouteRegistrar.ts +1 -3
  38. package/src/presentation/http/hono/registrars/DevHonoApiRouteRegistrar.ts +1 -3
  39. package/src/presentation/http/hono/registrars/OAuth2HonoApiRouteRegistrar.ts +1 -3
  40. package/src/presentation/http/hono/registrars/RunHonoApiRouteRegistrar.ts +1 -3
  41. package/src/presentation/http/hono/registrars/TelemetryHonoApiRouteRegistrar.ts +1 -3
  42. package/src/presentation/http/hono/registrars/UserHonoApiRouteRegistrar.ts +1 -3
  43. package/src/presentation/http/hono/registrars/WebhookHonoApiRouteRegistrar.ts +1 -3
  44. package/src/presentation/http/hono/registrars/WhitelabelHonoApiRouteRegistrar.ts +1 -3
  45. package/src/presentation/http/hono/registrars/WorkflowHonoApiRouteRegistrar.ts +1 -3
  46. package/dist/AppContainerFactory-D9je1sSV.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,80 @@
1
1
  # @codemation/host
2
2
 
3
+ ## 1.0.0
4
+
5
+ ### Major Changes
6
+
7
+ - [#93](https://github.com/MadeRelevant/codemation/pull/93) [`640e303`](https://github.com/MadeRelevant/codemation/commit/640e3032b1386568df725980a27761b6e230302c) Thanks [@cblokland90](https://github.com/cblokland90)! - Replace LangChain with the Vercel AI SDK for all AIAgent flows.
8
+
9
+ Codemation no longer depends on `@langchain/core` or `@langchain/openai`. Chat model providers, the turn loop, structured output, and tool calls now run on top of the Vercel **AI SDK** (`ai`, `@ai-sdk/openai`, `@ai-sdk/provider`). Custom Codemation behaviors that LangChain did not cover — the **tool-args repair loop**, the **structured-output repair loop**, **connection-invocation tracking**, and our **telemetry / cost-tracking spans** — are preserved and built on top of the new primitives.
10
+
11
+ ### Dependency changes
12
+ - **Removed**: `@langchain/core`, `@langchain/openai` (from `@codemation/core-nodes`).
13
+ - **Added**: `ai` `^6.0.168`, `@ai-sdk/openai` `^3.0.53`, `@ai-sdk/provider` `^3.0.8` (to `@codemation/core-nodes`). `@codemation/host` picks up `ai` + `@ai-sdk/provider` for its test harness only.
14
+
15
+ ### Public API renames (`@codemation/core`)
16
+
17
+ | Before | After |
18
+ | ---------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
19
+ | `LangChainChatModelLike` | `ChatLanguageModel` |
20
+ | `LangChainStructuredOutputModelLike` | _(removed — replaced by `StructuredOutputOptions` + `generateText({ experimental_output: Output.object(...) })`)_ |
21
+ | `ChatModelFactory.create` → `LangChainChatModelLike` | `ChatModelFactory.create` → `ChatLanguageModel` (thin wrapper around an AI SDK `LanguageModelV2`) |
22
+
23
+ `ChatLanguageModel` exposes the underlying AI SDK `LanguageModel` via `languageModel` plus `modelName`, `provider`, and optional `defaultCallOptions` (`maxOutputTokens`, `temperature`, `providerOptions`). `StructuredOutputOptions` mirrors `generateText({ output: Output.object(...) })` and carries an optional `schemaName` plus `strict` flag.
24
+
25
+ ### Custom behavior preserved (not delegated to the AI SDK)
26
+ - **Tool dispatch + tool-args repair**: tools are passed to `generateText` **without `execute`** so tool calls surface back to Codemation; `AgentToolExecutionCoordinator` still drives parallel execution, per-tool Zod-input validation, repair prompts, and retry accounting via `repairAttemptsByToolName`.
27
+ - **Structured output repair**: `AgentStructuredOutputRunner` still runs the `OpenAiStrictJsonSchemaFactory` + `AgentStructuredOutputRepairPromptFactory` loop; AI SDK's `Output.object(...)` is used only for the **first** structured attempt when the provider supports it.
28
+ - **Connection-invocation tracking**: `ConnectionInvocationIdFactory` + synthetic `LanguageModelConnectionNode` / tool connection node states (`queued` / `running` / `completed` / `failed`) are still emitted per turn and per tool call.
29
+ - **Telemetry span names (intentional, short-term)**: LLM calls stay on `gen_ai.chat.completion`, tool calls on `agent.tool.call`, metrics on `codemation.ai.turns` / `codemation.ai.tool_calls` / `codemation.cost.estimated`. We disable AI SDK's built-in telemetry (`experimental_telemetry`) for this cut so host-side telemetry aggregations keep working unchanged. Migrating to AI SDK native span names is intentionally deferred.
30
+ - **Engine-level retry control**: every `generateText` call uses `maxRetries: 0` so Codemation's own retry / repair policy is the single source of truth.
31
+
32
+ ### New test utilities
33
+
34
+ Tests that previously scripted `LangChainChatModelLike` now script AI SDK `LanguageModelV3` via `MockLanguageModelV3` from `ai/test`. `@codemation/core-nodes` and `@codemation/host` test files ship small adapters (`ScriptedResponseConverter`, `ScriptedDoGenerateFactory`, `TelemetryResponseConverter`) that translate Codemation's legacy `{ content, tool_calls, usage_metadata }` fixtures into `LanguageModelV3GenerateResult`.
35
+
36
+ ### Migration notes for consumers
37
+ - If you implemented a **custom `ChatModelFactory`**, return a `ChatLanguageModel` (wrap an AI SDK `LanguageModelV2`) instead of a LangChain-shaped chat model. The `name` / `modelName` / `provider` on your config still drive cost tracking.
38
+ - If you imported the type `LangChainChatModelLike` (or `LangChainStructuredOutputModelLike`) from `@codemation/core`, switch to `ChatLanguageModel` (and drop structured-output-method imports — `generateText({ experimental_output })` covers it).
39
+ - `OpenAIChatModelFactory` now builds an AI SDK OpenAI provider under the hood; behavior for end users (model presets, credential resolution, token accounting, structured output against strict mode) is unchanged.
40
+ - Telemetry dashboards, trace views, and cost-tracking queries continue to work against the existing Codemation span / metric names.
41
+
42
+ ### Patch Changes
43
+
44
+ - [#93](https://github.com/MadeRelevant/codemation/pull/93) [`640e303`](https://github.com/MadeRelevant/codemation/commit/640e3032b1386568df725980a27761b6e230302c) Thanks [@cblokland90](https://github.com/cblokland90)! - Fix `Unique constraint failed on the fields: (instance_id)` crash when rerunning a workflow that contains an AI agent.
45
+
46
+ Reproduction: build `Manual trigger → AI agent → node → node`, click play on the agent, then click play on the next node (sometimes twice). The second run would fail at `PrismaWorkflowRunRepository.saveOnce` with a Postgres PK violation on the `ExecutionInstance` table.
47
+
48
+ Root cause: `RunStartService.createRunCurrentState` was deep-copying the prior run's `connectionInvocations` verbatim into the new run's initial state. Each record kept its original globally-unique `invocationId`, which is the primary key in `ExecutionInstance`. `saveOnce`'s existing-row lookup is scoped to the current `runId`, so the collision against the prior run's rows was only detected by Postgres when the insert fired.
49
+
50
+ Beyond the crash, the old behavior was also a data-model lie for compliance / OTEL: a `ConnectionInvocationRecord` represents a single auditable LLM / tool call and must belong to exactly one run. Copying it into another run made the same event appear to have happened twice.
51
+
52
+ Fix (domain + defense-in-depth):
53
+ - `@codemation/core` — `RunStartService.createRunCurrentState` now starts new runs with an empty invocation ledger. The prior run's invocations remain queryable on that run's persisted state (their true owner).
54
+ - `@codemation/host` — `PrismaWorkflowRunRepository.buildExecutionInstances` skips any invocation whose `runId` differs from the run being saved, so a stray carry-over from any other code path self-heals instead of crashing the save.
55
+
56
+ UI impact: none for the historical-run view (it reads invocations directly from the selected run). The client-side debugger overlay continues to surface the prior run's invocations locally during a rerun, and inspector telemetry already fetches against each invocation's original `runId`.
57
+
58
+ - Updated dependencies [[`640e303`](https://github.com/MadeRelevant/codemation/commit/640e3032b1386568df725980a27761b6e230302c), [`640e303`](https://github.com/MadeRelevant/codemation/commit/640e3032b1386568df725980a27761b6e230302c)]:
59
+ - @codemation/core-nodes@1.0.0
60
+ - @codemation/core@1.0.0
61
+ - @codemation/eventbus-redis@0.0.32
62
+
63
+ ## 0.3.1
64
+
65
+ ### Patch Changes
66
+
67
+ - [`7eaa288`](https://github.com/MadeRelevant/codemation/commit/7eaa288737f2d126218dac84fa4fde2a4113b7f3) Thanks [@cblokland90](https://github.com/cblokland90)! - Default DI container registrations to singletons so framework services that own long-lived resources (timers, subscriptions, sockets) have deterministic lifecycles. Previously `container.register(Class, { useClass: Class })` produced a new instance per resolution, which caused the `WorkflowRunRetentionPruneScheduler` `setInterval` timer to leak across HMR reloads and blocked `pnpm dev` from shutting down on Ctrl+C.
68
+
69
+ Public registration DTOs still accept `useClass` as a shape hint, but the host applies every class-based registration as a singleton. Plugin authors using `plugin.register({ registerNode, registerClass })` and consumers using `containerRegistrations: [{ token, useClass }]` no longer need to reason about lifecycle. Redundant `@registry([{ useClass }])` decorators on Hono route registrars and domain event handlers have been removed.
70
+
71
+ A new ESLint rule (`codemation/no-transient-container-register`) prevents reintroducing `.register(token, { useClass: Class })` and `@registry([{ useClass: Class }])` patterns across `packages/**` and `apps/**`.
72
+
73
+ - Updated dependencies [[`7eaa288`](https://github.com/MadeRelevant/codemation/commit/7eaa288737f2d126218dac84fa4fde2a4113b7f3)]:
74
+ - @codemation/core@0.8.1
75
+ - @codemation/core-nodes@0.4.3
76
+ - @codemation/eventbus-redis@0.0.31
77
+
3
78
  ## 0.3.0
4
79
 
5
80
  ### Minor Changes
@@ -1,5 +1,5 @@
1
- import { i as AppPersistenceConfig, r as AppConfig } from "./CodemationAppContext-P7P-xZhQ.js";
2
- import { t as NormalizedCodemationConfig } from "./CodemationConfigNormalizer-BCtBrJDe.js";
1
+ import { i as AppPersistenceConfig, r as AppConfig } from "./CodemationAppContext-DP_-56c6.js";
2
+ import { t as NormalizedCodemationConfig } from "./CodemationConfigNormalizer-B8RGUwAe.js";
3
3
  import { AnyNull, AnyNullClass, DbNull, DbNullClass, Decimal, JsonNull, JsonNullClass, NullTypes as NullTypes$1, ObjectEnumValue, PrismaClientInitializationError, PrismaClientKnownRequestError, PrismaClientRustPanicError, PrismaClientUnknownRequestError, PrismaClientValidationError, RawValue, Sql, Value, empty, isAnyNull, isDbNull, isJsonNull, isObjectEnumValue, join, raw, sql as sqltag } from "@prisma/client-runtime-utils";
4
4
 
5
5
  //#region src/infrastructure/persistence/generated/prisma-postgresql-client/runtime/client.d.ts
@@ -34760,4 +34760,4 @@ declare class AppConfigFactory {
34760
34760
  }
34761
34761
  //#endregion
34762
34762
  export { PrismaClient as i, PrismaMigrationDeployer as n, PrismaDatabaseClient as r, AppConfigFactory as t };
34763
- //# sourceMappingURL=AppConfigFactory-Dq7ttwQ_.d.ts.map
34763
+ //# sourceMappingURL=AppConfigFactory-PFmDg5Sg.d.ts.map
@@ -8,7 +8,7 @@ import { AIAgentConnectionWorkflowExpander, ConnectionCredentialNodeConfigFactor
8
8
  import { mkdir, rm, stat } from "node:fs/promises";
9
9
  import path from "node:path";
10
10
  import { pathToFileURL } from "node:url";
11
- import { AgentConfigInspector, AgentConnectionNodeCollector, CoreTokens, CostTrackingTelemetryAttributeNames, CostTrackingTelemetryMetricNames, DefaultExecutionBinaryService, EventPublishingWorkflowExecutionRepository, GenAiTelemetryAttributeNames, InMemoryLiveWorkflowRepository, InMemoryRunEventBus, ItemsInputNormalizer, NoOpTelemetryArtifactReference, RunFinishedAtFactory, SystemClock, container, getPersistedRuntimeTypeMetadata, inject, injectAll, injectable, instanceCachingFactory, registry } from "@codemation/core";
11
+ import { AgentConfigInspector, AgentConnectionNodeCollector, CoreTokens, CostTrackingTelemetryAttributeNames, CostTrackingTelemetryMetricNames, DefaultExecutionBinaryService, EventPublishingWorkflowExecutionRepository, GenAiTelemetryAttributeNames, InMemoryLiveWorkflowRepository, InMemoryRunEventBus, ItemsInputNormalizer, NoOpTelemetryArtifactReference, RunFinishedAtFactory, SystemClock, container, getPersistedRuntimeTypeMetadata, inject, injectAll, injectable, instanceCachingFactory } from "@codemation/core";
12
12
  import { createHash, randomBytes } from "node:crypto";
13
13
  import "reflect-metadata";
14
14
  import { CatalogBackedCostTrackingTelemetryFactory, ConfigDrivenOffloadPolicy, DefaultDrivingScheduler, DefaultExecutionContextFactory, Engine, EngineRuntimeRegistrar, InMemoryBinaryStorage, InMemoryRunDataFactory, InlineDrivingScheduler, MissingRuntimeTriggerToken, PersistedWorkflowTokenRegistry, RunIntentService, RunSummaryMapper, StaticCostCatalog, WorkflowRepositoryWebhookTriggerMatcher } from "@codemation/core/bootstrap";
@@ -2708,13 +2708,13 @@ var CodemationPluginRegistrar = class {
2708
2708
  loggerFactory: args.loggerFactory,
2709
2709
  registerCredentialType: (type) => args.registerCredentialType(type),
2710
2710
  registerNode: (token, implementation) => {
2711
- args.container.register(token, { useClass: implementation ?? token });
2711
+ args.container.registerSingleton(token, implementation ?? token);
2712
2712
  },
2713
2713
  registerValue: (token, value) => {
2714
2714
  args.container.registerInstance(token, value);
2715
2715
  },
2716
2716
  registerClass: (token, implementation) => {
2717
- args.container.register(token, { useClass: implementation });
2717
+ args.container.registerSingleton(token, implementation);
2718
2718
  },
2719
2719
  registerFactory: (token, factory) => {
2720
2720
  args.container.register(token, { useFactory: (dependencyContainer) => factory(dependencyContainer) });
@@ -5356,10 +5356,6 @@ let AuthHonoApiRouteRegistrar = class AuthHonoApiRouteRegistrar$1 {
5356
5356
  };
5357
5357
  AuthHonoApiRouteRegistrar = __decorate([
5358
5358
  injectable(),
5359
- registry([{
5360
- token: ApplicationTokens.HonoApiRouteRegistrar,
5361
- useClass: AuthHonoApiRouteRegistrar
5362
- }]),
5363
5359
  __decorateParam(0, inject(AuthHttpRouteHandler)),
5364
5360
  __decorateParam(1, inject(CodemationBetterAuthRuntime)),
5365
5361
  __decorateMetadata("design:paramtypes", [typeof (_ref$29 = typeof AuthHttpRouteHandler !== "undefined" && AuthHttpRouteHandler) === "function" ? _ref$29 : Object, typeof (_ref2$5 = typeof CodemationBetterAuthRuntime !== "undefined" && CodemationBetterAuthRuntime) === "function" ? _ref2$5 : Object])
@@ -5381,10 +5377,6 @@ let BinaryHonoApiRouteRegistrar = class BinaryHonoApiRouteRegistrar$1 {
5381
5377
  };
5382
5378
  BinaryHonoApiRouteRegistrar = __decorate([
5383
5379
  injectable(),
5384
- registry([{
5385
- token: ApplicationTokens.HonoApiRouteRegistrar,
5386
- useClass: BinaryHonoApiRouteRegistrar
5387
- }]),
5388
5380
  __decorateParam(0, inject(BinaryHttpRouteHandler)),
5389
5381
  __decorateMetadata("design:paramtypes", [typeof (_ref$28 = typeof BinaryHttpRouteHandler !== "undefined" && BinaryHttpRouteHandler) === "function" ? _ref$28 : Object])
5390
5382
  ], BinaryHonoApiRouteRegistrar);
@@ -5407,10 +5399,6 @@ let BootstrapHonoApiRouteRegistrar = class BootstrapHonoApiRouteRegistrar$1 {
5407
5399
  };
5408
5400
  BootstrapHonoApiRouteRegistrar = __decorate([
5409
5401
  injectable(),
5410
- registry([{
5411
- token: ApplicationTokens.HonoApiRouteRegistrar,
5412
- useClass: BootstrapHonoApiRouteRegistrar
5413
- }]),
5414
5402
  __decorateParam(0, inject(PublicFrontendBootstrapHttpRouteHandler)),
5415
5403
  __decorateParam(1, inject(InternalAuthBootstrapHttpRouteHandler)),
5416
5404
  __decorateMetadata("design:paramtypes", [typeof (_ref$27 = typeof PublicFrontendBootstrapHttpRouteHandler !== "undefined" && PublicFrontendBootstrapHttpRouteHandler) === "function" ? _ref$27 : Object, typeof (_ref2$4 = typeof InternalAuthBootstrapHttpRouteHandler !== "undefined" && InternalAuthBootstrapHttpRouteHandler) === "function" ? _ref2$4 : Object])
@@ -5541,10 +5529,6 @@ let CredentialHonoApiRouteRegistrar = class CredentialHonoApiRouteRegistrar$1 {
5541
5529
  };
5542
5530
  CredentialHonoApiRouteRegistrar = __decorate([
5543
5531
  injectable(),
5544
- registry([{
5545
- token: ApplicationTokens.HonoApiRouteRegistrar,
5546
- useClass: CredentialHonoApiRouteRegistrar
5547
- }]),
5548
5532
  __decorateParam(0, inject(CredentialHttpRouteHandler)),
5549
5533
  __decorateMetadata("design:paramtypes", [typeof (_ref$26 = typeof CredentialHttpRouteHandler !== "undefined" && CredentialHttpRouteHandler) === "function" ? _ref$26 : Object])
5550
5534
  ], CredentialHonoApiRouteRegistrar);
@@ -5562,10 +5546,6 @@ let DevHonoApiRouteRegistrar = class DevHonoApiRouteRegistrar$1 {
5562
5546
  };
5563
5547
  DevHonoApiRouteRegistrar = __decorate([
5564
5548
  injectable(),
5565
- registry([{
5566
- token: ApplicationTokens.HonoApiRouteRegistrar,
5567
- useClass: DevHonoApiRouteRegistrar
5568
- }]),
5569
5549
  __decorateParam(0, inject(DevBootstrapSummaryHttpRouteHandler)),
5570
5550
  __decorateMetadata("design:paramtypes", [typeof (_ref$25 = typeof DevBootstrapSummaryHttpRouteHandler !== "undefined" && DevBootstrapSummaryHttpRouteHandler) === "function" ? _ref$25 : Object])
5571
5551
  ], DevHonoApiRouteRegistrar);
@@ -5691,10 +5671,6 @@ let OAuth2HonoApiRouteRegistrar = class OAuth2HonoApiRouteRegistrar$1 {
5691
5671
  };
5692
5672
  OAuth2HonoApiRouteRegistrar = __decorate([
5693
5673
  injectable(),
5694
- registry([{
5695
- token: ApplicationTokens.HonoApiRouteRegistrar,
5696
- useClass: OAuth2HonoApiRouteRegistrar
5697
- }]),
5698
5674
  __decorateParam(0, inject(OAuth2HttpRouteHandler)),
5699
5675
  __decorateMetadata("design:paramtypes", [typeof (_ref$23 = typeof OAuth2HttpRouteHandler !== "undefined" && OAuth2HttpRouteHandler) === "function" ? _ref$23 : Object])
5700
5676
  ], OAuth2HonoApiRouteRegistrar);
@@ -5788,10 +5764,6 @@ let RunHonoApiRouteRegistrar = class RunHonoApiRouteRegistrar$1 {
5788
5764
  };
5789
5765
  RunHonoApiRouteRegistrar = __decorate([
5790
5766
  injectable(),
5791
- registry([{
5792
- token: ApplicationTokens.HonoApiRouteRegistrar,
5793
- useClass: RunHonoApiRouteRegistrar
5794
- }]),
5795
5767
  __decorateParam(0, inject(RunHttpRouteHandler)),
5796
5768
  __decorateMetadata("design:paramtypes", [typeof (_ref$22 = typeof RunHttpRouteHandler !== "undefined" && RunHttpRouteHandler) === "function" ? _ref$22 : Object])
5797
5769
  ], RunHonoApiRouteRegistrar);
@@ -5931,10 +5903,6 @@ let TelemetryHonoApiRouteRegistrar = class TelemetryHonoApiRouteRegistrar$1 {
5931
5903
  };
5932
5904
  TelemetryHonoApiRouteRegistrar = __decorate([
5933
5905
  injectable(),
5934
- registry([{
5935
- token: ApplicationTokens.HonoApiRouteRegistrar,
5936
- useClass: TelemetryHonoApiRouteRegistrar
5937
- }]),
5938
5906
  __decorateParam(0, inject(TelemetryHttpRouteHandler)),
5939
5907
  __decorateMetadata("design:paramtypes", [typeof (_ref$21 = typeof TelemetryHttpRouteHandler !== "undefined" && TelemetryHttpRouteHandler) === "function" ? _ref$21 : Object])
5940
5908
  ], TelemetryHonoApiRouteRegistrar);
@@ -6036,10 +6004,6 @@ let UserHonoApiRouteRegistrar = class UserHonoApiRouteRegistrar$1 {
6036
6004
  };
6037
6005
  UserHonoApiRouteRegistrar = __decorate([
6038
6006
  injectable(),
6039
- registry([{
6040
- token: ApplicationTokens.HonoApiRouteRegistrar,
6041
- useClass: UserHonoApiRouteRegistrar
6042
- }]),
6043
6007
  __decorateParam(0, inject(UserHttpRouteHandler)),
6044
6008
  __decorateMetadata("design:paramtypes", [typeof (_ref$20 = typeof UserHttpRouteHandler !== "undefined" && UserHttpRouteHandler) === "function" ? _ref$20 : Object])
6045
6009
  ], UserHonoApiRouteRegistrar);
@@ -6197,10 +6161,6 @@ let WebhookHonoApiRouteRegistrar = class WebhookHonoApiRouteRegistrar$1 {
6197
6161
  };
6198
6162
  WebhookHonoApiRouteRegistrar = __decorate([
6199
6163
  injectable(),
6200
- registry([{
6201
- token: ApplicationTokens.HonoApiRouteRegistrar,
6202
- useClass: WebhookHonoApiRouteRegistrar
6203
- }]),
6204
6164
  __decorateParam(0, inject(WebhookHttpRouteHandler)),
6205
6165
  __decorateMetadata("design:paramtypes", [typeof (_ref$18 = typeof WebhookHttpRouteHandler !== "undefined" && WebhookHttpRouteHandler) === "function" ? _ref$18 : Object])
6206
6166
  ], WebhookHonoApiRouteRegistrar);
@@ -6218,10 +6178,6 @@ let WhitelabelHonoApiRouteRegistrar = class WhitelabelHonoApiRouteRegistrar$1 {
6218
6178
  };
6219
6179
  WhitelabelHonoApiRouteRegistrar = __decorate([
6220
6180
  injectable(),
6221
- registry([{
6222
- token: ApplicationTokens.HonoApiRouteRegistrar,
6223
- useClass: WhitelabelHonoApiRouteRegistrar
6224
- }]),
6225
6181
  __decorateParam(0, inject(WhitelabelLogoHttpRouteHandler)),
6226
6182
  __decorateMetadata("design:paramtypes", [typeof (_ref$17 = typeof WhitelabelLogoHttpRouteHandler !== "undefined" && WhitelabelLogoHttpRouteHandler) === "function" ? _ref$17 : Object])
6227
6183
  ], WhitelabelHonoApiRouteRegistrar);
@@ -6325,10 +6281,6 @@ let WorkflowHonoApiRouteRegistrar = class WorkflowHonoApiRouteRegistrar$1 {
6325
6281
  };
6326
6282
  WorkflowHonoApiRouteRegistrar = __decorate([
6327
6283
  injectable(),
6328
- registry([{
6329
- token: ApplicationTokens.HonoApiRouteRegistrar,
6330
- useClass: WorkflowHonoApiRouteRegistrar
6331
- }]),
6332
6284
  __decorateParam(0, inject(WorkflowHttpRouteHandler)),
6333
6285
  __decorateMetadata("design:paramtypes", [typeof (_ref$15 = typeof WorkflowHttpRouteHandler !== "undefined" && WorkflowHttpRouteHandler) === "function" ? _ref$15 : Object])
6334
6286
  ], WorkflowHonoApiRouteRegistrar);
@@ -16619,6 +16571,7 @@ let PrismaWorkflowRunRepository = class PrismaWorkflowRunRepository$1 {
16619
16571
  }
16620
16572
  let cIdx = 0;
16621
16573
  for (const inv of state.connectionInvocations ?? []) {
16574
+ if (inv.runId !== state.runId) continue;
16622
16575
  rows.push({
16623
16576
  instanceId: inv.invocationId,
16624
16577
  runId: state.runId,
@@ -16930,7 +16883,7 @@ var CodemationContainerRegistrationRegistrar = class {
16930
16883
  return;
16931
16884
  }
16932
16885
  if (this.isClassRegistration(registration)) {
16933
- container$1.register(registration.token, { useClass: registration.useClass });
16886
+ container$1.registerSingleton(registration.token, registration.useClass);
16934
16887
  return;
16935
16888
  }
16936
16889
  container$1.register(registration.token, { useFactory: (dependencyContainer) => registration.useFactory(dependencyContainer) });
@@ -17528,8 +17481,8 @@ var AppContainerFactory = class AppContainerFactory {
17528
17481
  });
17529
17482
  }
17530
17483
  registerCredentialTypes(container$1, credentialTypes) {
17531
- const registry$1 = container$1.resolve(CredentialTypeRegistryImpl);
17532
- for (const credentialType of credentialTypes) registry$1.register(credentialType);
17484
+ const registry = container$1.resolve(CredentialTypeRegistryImpl);
17485
+ for (const credentialType of credentialTypes) registry.register(credentialType);
17533
17486
  }
17534
17487
  registerConfiguredRegistrations(container$1, appConfig) {
17535
17488
  if (appConfig.containerRegistrations.length === 0) return;
@@ -17547,7 +17500,7 @@ var AppContainerFactory = class AppContainerFactory {
17547
17500
  container$1.registerInstance(CoreTokens.PersistedWorkflowTokenRegistry, container$1.resolve(PersistedWorkflowTokenRegistry));
17548
17501
  container$1.register(CredentialTypeRegistryImpl, { useFactory: instanceCachingFactory(() => new CredentialTypeRegistryImpl()) });
17549
17502
  container$1.register(CoreTokens.CredentialTypeRegistry, { useFactory: instanceCachingFactory((dependencyContainer) => dependencyContainer.resolve(CredentialTypeRegistryImpl)) });
17550
- container$1.register(CodemationIdFactory, { useClass: CodemationIdFactory });
17503
+ container$1.registerSingleton(CodemationIdFactory, CodemationIdFactory);
17551
17504
  container$1.register(CoreTokens.RunIdFactory, { useFactory: instanceCachingFactory((dependencyContainer) => dependencyContainer.resolve(CodemationIdFactory)) });
17552
17505
  container$1.register(CoreTokens.ActivationIdFactory, { useFactory: instanceCachingFactory((dependencyContainer) => dependencyContainer.resolve(CodemationIdFactory)) });
17553
17506
  container$1.register(CoreTokens.LiveWorkflowRepository, { useFactory: instanceCachingFactory(() => new LiveWorkflowRepository(new AIAgentConnectionWorkflowExpander(new ConnectionCredentialNodeConfigFactory()))) });
@@ -17575,46 +17528,46 @@ var AppContainerFactory = class AppContainerFactory {
17575
17528
  } }
17576
17529
  });
17577
17530
  container$1.registerInstance(LogLevelPolicyFactory, logLevelPolicyFactory);
17578
- container$1.register(ServerLoggerFactory, { useClass: ServerLoggerFactory });
17531
+ container$1.registerSingleton(ServerLoggerFactory, ServerLoggerFactory);
17579
17532
  container$1.register(ApplicationTokens.LoggerFactory, { useFactory: instanceCachingFactory((dependencyContainer) => dependencyContainer.resolve(ServerLoggerFactory)) });
17580
17533
  container$1.register(ApplicationTokens.PerformanceDiagnosticsLogger, { useFactory: instanceCachingFactory((dependencyContainer) => dependencyContainer.resolve(ServerLoggerFactory).createPerformanceDiagnostics("codemation.performance")) });
17581
17534
  container$1.register(WorkflowWebsocketServer, { useFactory: instanceCachingFactory((dependencyContainer) => {
17582
17535
  if (inputs.sharedWorkflowWebsocketServer) return inputs.sharedWorkflowWebsocketServer;
17583
17536
  return new WorkflowWebsocketServer(dependencyContainer.resolve(ApplicationTokens.WebSocketPort), dependencyContainer.resolve(ApplicationTokens.WebSocketBindHost), dependencyContainer.resolve(ServerLoggerFactory).create("codemation-websocket.server"));
17584
17537
  }) });
17585
- container$1.register(PrismaClientFactory, { useClass: PrismaClientFactory });
17586
- container$1.register(WorkflowPolicyUiPresentationFactory, { useClass: WorkflowPolicyUiPresentationFactory });
17587
- container$1.register(WorkflowDefinitionMapper, { useClass: WorkflowDefinitionMapper });
17588
- container$1.register(RequestToWebhookItemMapper, { useClass: RequestToWebhookItemMapper });
17589
- container$1.register(WebhookEndpointPathValidator, { useClass: WebhookEndpointPathValidator });
17590
- container$1.register(CredentialSecretCipher, { useClass: CredentialSecretCipher });
17591
- container$1.register(CredentialMaterialResolver, { useClass: CredentialMaterialResolver });
17592
- container$1.register(CredentialFieldEnvOverlayService, { useClass: CredentialFieldEnvOverlayService });
17593
- container$1.register(CredentialRuntimeMaterialService, { useClass: CredentialRuntimeMaterialService });
17594
- container$1.register(WorkflowCredentialNodeResolver, { useClass: WorkflowCredentialNodeResolver });
17595
- container$1.register(CredentialInstanceService, { useClass: CredentialInstanceService });
17596
- container$1.register(CredentialBindingService, { useClass: CredentialBindingService });
17597
- container$1.register(WorkflowActivationPreflightRules, { useClass: WorkflowActivationPreflightRules });
17598
- container$1.register(WorkflowActivationPreflight, { useClass: WorkflowActivationPreflight });
17599
- container$1.register(CredentialTestService, { useClass: CredentialTestService });
17600
- container$1.register(CredentialSessionServiceImpl, { useClass: CredentialSessionServiceImpl });
17538
+ container$1.registerSingleton(PrismaClientFactory, PrismaClientFactory);
17539
+ container$1.registerSingleton(WorkflowPolicyUiPresentationFactory, WorkflowPolicyUiPresentationFactory);
17540
+ container$1.registerSingleton(WorkflowDefinitionMapper, WorkflowDefinitionMapper);
17541
+ container$1.registerSingleton(RequestToWebhookItemMapper, RequestToWebhookItemMapper);
17542
+ container$1.registerSingleton(WebhookEndpointPathValidator, WebhookEndpointPathValidator);
17543
+ container$1.registerSingleton(CredentialSecretCipher, CredentialSecretCipher);
17544
+ container$1.registerSingleton(CredentialMaterialResolver, CredentialMaterialResolver);
17545
+ container$1.registerSingleton(CredentialFieldEnvOverlayService, CredentialFieldEnvOverlayService);
17546
+ container$1.registerSingleton(CredentialRuntimeMaterialService, CredentialRuntimeMaterialService);
17547
+ container$1.registerSingleton(WorkflowCredentialNodeResolver, WorkflowCredentialNodeResolver);
17548
+ container$1.registerSingleton(CredentialInstanceService, CredentialInstanceService);
17549
+ container$1.registerSingleton(CredentialBindingService, CredentialBindingService);
17550
+ container$1.registerSingleton(WorkflowActivationPreflightRules, WorkflowActivationPreflightRules);
17551
+ container$1.registerSingleton(WorkflowActivationPreflight, WorkflowActivationPreflight);
17552
+ container$1.registerSingleton(CredentialTestService, CredentialTestService);
17553
+ container$1.registerSingleton(CredentialSessionServiceImpl, CredentialSessionServiceImpl);
17601
17554
  if (!inputs.appConfig.hasConfiguredCredentialSessionServiceRegistration) container$1.register(CoreTokens.CredentialSessionService, { useToken: CredentialSessionServiceImpl });
17602
- container$1.register(OAuth2ProviderRegistry, { useClass: OAuth2ProviderRegistry });
17603
- container$1.register(OAuth2ConnectService, { useClass: OAuth2ConnectService });
17604
- container$1.register(CodemationFrontendAuthSnapshotFactory, { useClass: CodemationFrontendAuthSnapshotFactory });
17605
- container$1.register(FrontendAppConfigFactory, { useClass: FrontendAppConfigFactory });
17606
- container$1.register(PublicFrontendBootstrapFactory, { useClass: PublicFrontendBootstrapFactory });
17607
- container$1.register(InternalAuthBootstrapFactory, { useClass: InternalAuthBootstrapFactory });
17608
- container$1.register(DatabaseMigrations, { useClass: DatabaseMigrations });
17609
- container$1.register(FrontendRuntime, { useClass: FrontendRuntime });
17610
- container$1.register(WorkerRuntime, { useClass: WorkerRuntime });
17611
- container$1.register(DevelopmentSessionBypassVerifier, { useClass: DevelopmentSessionBypassVerifier });
17612
- container$1.register(SecureRequestDetector, { useClass: SecureRequestDetector });
17613
- container$1.register(InAppCallbackUrlPolicy, { useClass: InAppCallbackUrlPolicy });
17614
- container$1.register(AuthSessionCookieFactory, { useClass: AuthSessionCookieFactory });
17615
- container$1.register(CodemationBetterAuthBcryptPasswordCodec, { useClass: CodemationBetterAuthBcryptPasswordCodec });
17616
- container$1.register(CodemationBetterAuthDatabaseOptionsFactory, { useClass: CodemationBetterAuthDatabaseOptionsFactory });
17617
- container$1.register(UserAccountSessionPolicy, { useClass: UserAccountSessionPolicy });
17555
+ container$1.registerSingleton(OAuth2ProviderRegistry, OAuth2ProviderRegistry);
17556
+ container$1.registerSingleton(OAuth2ConnectService, OAuth2ConnectService);
17557
+ container$1.registerSingleton(CodemationFrontendAuthSnapshotFactory, CodemationFrontendAuthSnapshotFactory);
17558
+ container$1.registerSingleton(FrontendAppConfigFactory, FrontendAppConfigFactory);
17559
+ container$1.registerSingleton(PublicFrontendBootstrapFactory, PublicFrontendBootstrapFactory);
17560
+ container$1.registerSingleton(InternalAuthBootstrapFactory, InternalAuthBootstrapFactory);
17561
+ container$1.registerSingleton(DatabaseMigrations, DatabaseMigrations);
17562
+ container$1.registerSingleton(FrontendRuntime, FrontendRuntime);
17563
+ container$1.registerSingleton(WorkerRuntime, WorkerRuntime);
17564
+ container$1.registerSingleton(DevelopmentSessionBypassVerifier, DevelopmentSessionBypassVerifier);
17565
+ container$1.registerSingleton(SecureRequestDetector, SecureRequestDetector);
17566
+ container$1.registerSingleton(InAppCallbackUrlPolicy, InAppCallbackUrlPolicy);
17567
+ container$1.registerSingleton(AuthSessionCookieFactory, AuthSessionCookieFactory);
17568
+ container$1.registerSingleton(CodemationBetterAuthBcryptPasswordCodec, CodemationBetterAuthBcryptPasswordCodec);
17569
+ container$1.registerSingleton(CodemationBetterAuthDatabaseOptionsFactory, CodemationBetterAuthDatabaseOptionsFactory);
17570
+ container$1.registerSingleton(UserAccountSessionPolicy, UserAccountSessionPolicy);
17618
17571
  container$1.register(CodemationBetterAuthBaseUrlPolicy, { useFactory: instanceCachingFactory((dependencyContainer) => new CodemationBetterAuthBaseUrlPolicy(dependencyContainer.resolve(ServerLoggerFactory).create("codemation.auth.better-auth.base-url"))) });
17619
17572
  container$1.register(CodemationBetterAuthServerFactory, { useFactory: instanceCachingFactory((dependencyContainer) => new CodemationBetterAuthServerFactory(dependencyContainer.resolve(ApplicationTokens.AppConfig), dependencyContainer.resolve(CodemationBetterAuthDatabaseOptionsFactory), dependencyContainer.resolve(CodemationBetterAuthBcryptPasswordCodec), dependencyContainer.resolve(UserAccountSessionPolicy), dependencyContainer.resolve(CodemationBetterAuthBaseUrlPolicy))) });
17620
17573
  container$1.register(CodemationBetterAuthRuntime, { useFactory: instanceCachingFactory((dependencyContainer) => {
@@ -17628,7 +17581,7 @@ var AppContainerFactory = class AppContainerFactory {
17628
17581
  const policy = dependencyContainer.resolve(UserAccountSessionPolicy);
17629
17582
  return new BetterAuthApiSessionVerifier(runtime, prismaClient ? new PrismaUserAccountSessionEligibilityChecker(prismaClient, policy) : void 0);
17630
17583
  }) });
17631
- container$1.register(CodemationSessionVerifier, { useClass: CodemationSessionVerifier });
17584
+ container$1.registerSingleton(CodemationSessionVerifier, CodemationSessionVerifier);
17632
17585
  container$1.register(ApplicationTokens.SessionVerifier, { useFactory: instanceCachingFactory((dependencyContainer) => {
17633
17586
  const appConfig = dependencyContainer.resolve(ApplicationTokens.AppConfig);
17634
17587
  const isPackagedDevRuntime = Boolean(appConfig.env.CODEMATION_RUNTIME_DEV_URL?.trim());
@@ -17647,59 +17600,59 @@ var AppContainerFactory = class AppContainerFactory {
17647
17600
  }) });
17648
17601
  }
17649
17602
  registerRepositoriesAndBuses(container$1) {
17650
- container$1.register(OtelIdentityFactory, { useClass: OtelIdentityFactory });
17651
- container$1.register(TelemetryPrivacyPolicy, { useClass: TelemetryPrivacyPolicy });
17652
- container$1.register(TelemetryEnricherChain, { useClass: TelemetryEnricherChain });
17653
- container$1.register(TelemetryRetentionTimestampFactory, { useClass: TelemetryRetentionTimestampFactory });
17654
- container$1.register(TelemetryQueryService, { useClass: TelemetryQueryService });
17655
- container$1.register(NoOpTelemetryExporter, { useClass: NoOpTelemetryExporter });
17603
+ container$1.registerSingleton(OtelIdentityFactory, OtelIdentityFactory);
17604
+ container$1.registerSingleton(TelemetryPrivacyPolicy, TelemetryPrivacyPolicy);
17605
+ container$1.registerSingleton(TelemetryEnricherChain, TelemetryEnricherChain);
17606
+ container$1.registerSingleton(TelemetryRetentionTimestampFactory, TelemetryRetentionTimestampFactory);
17607
+ container$1.registerSingleton(TelemetryQueryService, TelemetryQueryService);
17608
+ container$1.registerSingleton(NoOpTelemetryExporter, NoOpTelemetryExporter);
17656
17609
  container$1.register(CompositeTelemetryExporter, { useFactory: instanceCachingFactory((dependencyContainer) => new CompositeTelemetryExporter([dependencyContainer.resolve(NoOpTelemetryExporter)])) });
17657
- container$1.register(OtelExecutionTelemetryFactory, { useClass: OtelExecutionTelemetryFactory });
17658
- container$1.register(InMemoryRunTraceContextRepository, { useClass: InMemoryRunTraceContextRepository });
17659
- container$1.register(InMemoryTelemetrySpanStore, { useClass: InMemoryTelemetrySpanStore });
17660
- container$1.register(InMemoryTelemetryArtifactStore, { useClass: InMemoryTelemetryArtifactStore });
17661
- container$1.register(InMemoryTelemetryMetricPointStore, { useClass: InMemoryTelemetryMetricPointStore });
17662
- container$1.register(PrismaRunTraceContextRepository, { useClass: PrismaRunTraceContextRepository });
17663
- container$1.register(PrismaTelemetrySpanStore, { useClass: PrismaTelemetrySpanStore });
17664
- container$1.register(PrismaTelemetryArtifactStore, { useClass: PrismaTelemetryArtifactStore });
17665
- container$1.register(PrismaTelemetryMetricPointStore, { useClass: PrismaTelemetryMetricPointStore });
17666
- container$1.register(WorkflowDefinitionRepositoryAdapter, { useClass: WorkflowDefinitionRepositoryAdapter });
17667
- container$1.register(InMemoryWorkflowRunRepository, { useClass: InMemoryWorkflowRunRepository });
17668
- container$1.register(InMemoryTriggerSetupStateRepository, { useClass: InMemoryTriggerSetupStateRepository });
17669
- container$1.register(InMemoryCredentialStore, { useClass: InMemoryCredentialStore });
17670
- container$1.register(WorkflowRunRepository, { useClass: WorkflowRunRepository });
17671
- container$1.register(InMemoryWorkflowDebuggerOverlayRepository, { useClass: InMemoryWorkflowDebuggerOverlayRepository });
17672
- container$1.register(PrismaTriggerSetupStateRepository, { useClass: PrismaTriggerSetupStateRepository });
17673
- container$1.register(PrismaWorkflowDebuggerOverlayRepository, { useClass: PrismaWorkflowDebuggerOverlayRepository });
17674
- container$1.register(PrismaWorkflowActivationRepository, { useClass: PrismaWorkflowActivationRepository });
17675
- container$1.register(InMemoryWorkflowActivationRepository, { useClass: InMemoryWorkflowActivationRepository });
17676
- container$1.register(PrismaCredentialStore, { useClass: PrismaCredentialStore });
17610
+ container$1.registerSingleton(OtelExecutionTelemetryFactory, OtelExecutionTelemetryFactory);
17611
+ container$1.registerSingleton(InMemoryRunTraceContextRepository, InMemoryRunTraceContextRepository);
17612
+ container$1.registerSingleton(InMemoryTelemetrySpanStore, InMemoryTelemetrySpanStore);
17613
+ container$1.registerSingleton(InMemoryTelemetryArtifactStore, InMemoryTelemetryArtifactStore);
17614
+ container$1.registerSingleton(InMemoryTelemetryMetricPointStore, InMemoryTelemetryMetricPointStore);
17615
+ container$1.registerSingleton(PrismaRunTraceContextRepository, PrismaRunTraceContextRepository);
17616
+ container$1.registerSingleton(PrismaTelemetrySpanStore, PrismaTelemetrySpanStore);
17617
+ container$1.registerSingleton(PrismaTelemetryArtifactStore, PrismaTelemetryArtifactStore);
17618
+ container$1.registerSingleton(PrismaTelemetryMetricPointStore, PrismaTelemetryMetricPointStore);
17619
+ container$1.registerSingleton(WorkflowDefinitionRepositoryAdapter, WorkflowDefinitionRepositoryAdapter);
17620
+ container$1.registerSingleton(InMemoryWorkflowRunRepository, InMemoryWorkflowRunRepository);
17621
+ container$1.registerSingleton(InMemoryTriggerSetupStateRepository, InMemoryTriggerSetupStateRepository);
17622
+ container$1.registerSingleton(InMemoryCredentialStore, InMemoryCredentialStore);
17623
+ container$1.registerSingleton(WorkflowRunRepository, WorkflowRunRepository);
17624
+ container$1.registerSingleton(InMemoryWorkflowDebuggerOverlayRepository, InMemoryWorkflowDebuggerOverlayRepository);
17625
+ container$1.registerSingleton(PrismaTriggerSetupStateRepository, PrismaTriggerSetupStateRepository);
17626
+ container$1.registerSingleton(PrismaWorkflowDebuggerOverlayRepository, PrismaWorkflowDebuggerOverlayRepository);
17627
+ container$1.registerSingleton(PrismaWorkflowActivationRepository, PrismaWorkflowActivationRepository);
17628
+ container$1.registerSingleton(InMemoryWorkflowActivationRepository, InMemoryWorkflowActivationRepository);
17629
+ container$1.registerSingleton(PrismaCredentialStore, PrismaCredentialStore);
17677
17630
  container$1.register(ApplicationTokens.WorkflowDefinitionRepository, { useFactory: instanceCachingFactory((dependencyContainer) => dependencyContainer.resolve(WorkflowDefinitionRepositoryAdapter)) });
17678
- container$1.register(InMemoryQueryBus, { useClass: InMemoryQueryBus });
17679
- container$1.register(InMemoryCommandBus, { useClass: InMemoryCommandBus });
17680
- container$1.register(InMemoryDomainEventBus, { useClass: InMemoryDomainEventBus });
17681
- for (const handler of AppContainerFactory.queryHandlers) container$1.register(ApplicationTokens.QueryHandler, { useClass: handler });
17682
- for (const handler of AppContainerFactory.commandHandlers) container$1.register(ApplicationTokens.CommandHandler, { useClass: handler });
17631
+ container$1.registerSingleton(InMemoryQueryBus, InMemoryQueryBus);
17632
+ container$1.registerSingleton(InMemoryCommandBus, InMemoryCommandBus);
17633
+ container$1.registerSingleton(InMemoryDomainEventBus, InMemoryDomainEventBus);
17634
+ for (const handler of AppContainerFactory.queryHandlers) container$1.registerSingleton(ApplicationTokens.QueryHandler, handler);
17635
+ for (const handler of AppContainerFactory.commandHandlers) container$1.registerSingleton(ApplicationTokens.CommandHandler, handler);
17683
17636
  container$1.register(ApplicationTokens.QueryBus, { useFactory: instanceCachingFactory((dependencyContainer) => dependencyContainer.resolve(InMemoryQueryBus)) });
17684
17637
  container$1.register(ApplicationTokens.CommandBus, { useFactory: instanceCachingFactory((dependencyContainer) => dependencyContainer.resolve(InMemoryCommandBus)) });
17685
17638
  container$1.register(ApplicationTokens.DomainEventBus, { useFactory: instanceCachingFactory((dependencyContainer) => dependencyContainer.resolve(InMemoryDomainEventBus)) });
17686
17639
  container$1.register(ApplicationTokens.TelemetryExporter, { useFactory: instanceCachingFactory((dependencyContainer) => dependencyContainer.resolve(CompositeTelemetryExporter)) });
17687
17640
  }
17688
17641
  registerApplicationServicesAndRoutes(container$1) {
17689
- container$1.register(DevBootstrapSummaryAssembler, { useClass: DevBootstrapSummaryAssembler });
17690
- container$1.register(DevBootstrapSummaryHttpRouteHandler, { useClass: DevBootstrapSummaryHttpRouteHandler });
17691
- container$1.register(AuthHttpRouteHandler, { useClass: AuthHttpRouteHandler });
17692
- container$1.register(PublicFrontendBootstrapHttpRouteHandler, { useClass: PublicFrontendBootstrapHttpRouteHandler });
17693
- container$1.register(InternalAuthBootstrapHttpRouteHandler, { useClass: InternalAuthBootstrapHttpRouteHandler });
17694
- container$1.register(WhitelabelLogoHttpRouteHandler, { useClass: WhitelabelLogoHttpRouteHandler });
17695
- for (const registrar of AppContainerFactory.honoRouteRegistrars) container$1.register(ApplicationTokens.HonoApiRouteRegistrar, { useClass: registrar });
17696
- container$1.register(CodemationHonoApiApp, { useClass: CodemationHonoApiApp });
17642
+ container$1.registerSingleton(DevBootstrapSummaryAssembler, DevBootstrapSummaryAssembler);
17643
+ container$1.registerSingleton(DevBootstrapSummaryHttpRouteHandler, DevBootstrapSummaryHttpRouteHandler);
17644
+ container$1.registerSingleton(AuthHttpRouteHandler, AuthHttpRouteHandler);
17645
+ container$1.registerSingleton(PublicFrontendBootstrapHttpRouteHandler, PublicFrontendBootstrapHttpRouteHandler);
17646
+ container$1.registerSingleton(InternalAuthBootstrapHttpRouteHandler, InternalAuthBootstrapHttpRouteHandler);
17647
+ container$1.registerSingleton(WhitelabelLogoHttpRouteHandler, WhitelabelLogoHttpRouteHandler);
17648
+ for (const registrar of AppContainerFactory.honoRouteRegistrars) container$1.registerSingleton(ApplicationTokens.HonoApiRouteRegistrar, registrar);
17649
+ container$1.registerSingleton(CodemationHonoApiApp, CodemationHonoApiApp);
17697
17650
  }
17698
17651
  registerOperationalInfrastructure(container$1) {
17699
17652
  container$1.register(ApplicationTokens.WorkflowWebsocketPublisher, { useFactory: instanceCachingFactory((dependencyContainer) => dependencyContainer.resolve(WorkflowWebsocketServer)) });
17700
- container$1.register(WorkflowRunEventWebsocketRelay, { useClass: WorkflowRunEventWebsocketRelay });
17701
- container$1.register(RunEventBusTelemetryReporter, { useClass: RunEventBusTelemetryReporter });
17702
- container$1.register(WorkflowRunRetentionPruneScheduler, { useClass: WorkflowRunRetentionPruneScheduler });
17653
+ container$1.registerSingleton(WorkflowRunEventWebsocketRelay, WorkflowRunEventWebsocketRelay);
17654
+ container$1.registerSingleton(RunEventBusTelemetryReporter, RunEventBusTelemetryReporter);
17655
+ container$1.registerSingleton(WorkflowRunRetentionPruneScheduler, WorkflowRunRetentionPruneScheduler);
17703
17656
  }
17704
17657
  async registerRuntimeInfrastructure(container$1, appConfig) {
17705
17658
  const queuePrefix = appConfig.scheduler.queuePrefix ?? appConfig.eventing.queuePrefix ?? "codemation";
@@ -17819,4 +17772,4 @@ var AppContainerFactory = class AppContainerFactory {
17819
17772
 
17820
17773
  //#endregion
17821
17774
  export { GetWorkflowSummariesQuery as C, ListUserAccountsQuery as D, UpsertLocalBootstrapUserCommand as E, WorkflowPolicyUiPresentationFactory as S, RunBinaryAttachmentLookupService as T, FrontendAppConfigFactory as _, AppContainerLifecycle as a, ApiPaths as b, WebhookHttpRouteHandler as c, OAuth2HttpRouteHandler as d, CredentialHttpRouteHandler as f, InternalAuthBootstrapFactory as g, PublicFrontendBootstrapFactory as h, DatabaseMigrations as i, RequestToWebhookItemMapper as l, BinaryHttpRouteHandler as m, WorkerRuntime as n, WorkflowRunRetentionPruneScheduler as o, CodemationHonoApiApp as p, FrontendRuntime as r, WorkflowHttpRouteHandler as s, AppContainerFactory as t, RunHttpRouteHandler as u, CodemationFrontendAuthSnapshotFactory as v, GetWorkflowDetailQuery as w, WorkflowDefinitionMapper as x, WorkflowWebsocketServer as y };
17822
- //# sourceMappingURL=AppContainerFactory-D9je1sSV.js.map
17775
+ //# sourceMappingURL=AppContainerFactory-Cr3JeVmg.js.map